summaryrefslogtreecommitdiff
path: root/src/app/api/product
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-12-01 10:16:12 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-12-01 10:16:12 +0700
commitae3207e9778c3f2fb01d64714ff15fc073ec093d (patch)
tree7b4c8cd8c00fec4d9eeafec8e01e938917cbee2e /src/app/api/product
parent812e4ac0afc56ee3121a5673af35bf8be2f4432c (diff)
Update compute different, result, and product list feature
Diffstat (limited to 'src/app/api/product')
-rw-r--r--src/app/api/product/[id]/toggle-different/route.tsx16
-rw-r--r--src/app/api/product/route.tsx11
2 files changed, 25 insertions, 2 deletions
diff --git a/src/app/api/product/[id]/toggle-different/route.tsx b/src/app/api/product/[id]/toggle-different/route.tsx
new file mode 100644
index 0000000..987dbf3
--- /dev/null
+++ b/src/app/api/product/[id]/toggle-different/route.tsx
@@ -0,0 +1,16 @@
+import { NextRequest, NextResponse } from "next/server";
+import { prisma } from "prisma/client";
+
+type Params = { params: { id: string } }
+export async function POST(request: NextRequest, { params }: Params) {
+ const intId = parseInt(params.id)
+ const product = await prisma.product.findUnique({ where: { id: intId } })
+ const updatedProduct = await prisma.product.update({
+ where: { id: intId },
+ data: {
+ isDifferent: !product?.isDifferent
+ }
+ })
+
+ return NextResponse.json(updatedProduct)
+} \ No newline at end of file
diff --git a/src/app/api/product/route.tsx b/src/app/api/product/route.tsx
index 63813aa..de8a482 100644
--- a/src/app/api/product/route.tsx
+++ b/src/app/api/product/route.tsx
@@ -8,11 +8,15 @@ export async function GET(request: NextRequest) {
const searchParams = request.nextUrl.searchParams;
const search = searchParams.get('search');
+
const page = searchParams.get('page');
const intPage: number = page ? parseInt(page) : 1;
+
const paramCompanyId = searchParams.get('companyId')
const companyId = paramCompanyId ? parseInt(paramCompanyId) : null
+ const show = searchParams.get('show')
+
const credential = getServerCredential()
if (!credential) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
@@ -24,8 +28,10 @@ export async function GET(request: NextRequest) {
{ barcode: { mode: 'insensitive', contains: search ?? '' } },
{ itemCode: { mode: 'insensitive', contains: search ?? '' } },
],
- companyId: companyId ?? credential.companyId
- }
+ companyId: companyId ?? credential.companyId,
+ stockOpnames: { none: show === 'not-count' ? {} : undefined },
+ onhandQty: { gt: show === 'not-count' ? 0 : undefined },
+ },
}
const products = await prisma.product.findMany({
@@ -40,6 +46,7 @@ export async function GET(request: NextRequest) {
const pagination = {
page: intPage,
totalPage: Math.ceil(count / PAGE_SIZE),
+ count
}
return NextResponse.json({ products, ...pagination })