From 570b867dec4832c201e70ae8a756db70d6af4ac4 Mon Sep 17 00:00:00 2001
From: Rafi Zadanly <zadanlyr@gmail.com>
Date: Tue, 21 Nov 2023 10:16:21 +0700
Subject: Fix stock opname and product search where

---
 src/app/api/product/route.tsx | 36 ++++++++++++++----------------------
 1 file changed, 14 insertions(+), 22 deletions(-)

(limited to 'src/app/api/product/route.tsx')

diff --git a/src/app/api/product/route.tsx b/src/app/api/product/route.tsx
index eea6162..d28a543 100644
--- a/src/app/api/product/route.tsx
+++ b/src/app/api/product/route.tsx
@@ -1,4 +1,5 @@
 import getServerCredential from "@/common/libs/getServerCredential";
+import { Prisma } from "@prisma/client";
 import { NextRequest, NextResponse } from "next/server";
 import { prisma } from "prisma/client";
 
@@ -16,34 +17,25 @@ export async function GET(request: NextRequest) {
 
   if (!credential) return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
 
+  const where: Prisma.ProductWhereInput = {
+    AND: {
+      OR: [
+        { name: { mode: 'insensitive', contains: search ?? '' } },
+        { barcode: { mode: 'insensitive', contains: search ?? '' } },
+        { itemCode: { mode: 'insensitive', contains: search ?? '' } },
+      ],
+      companyId: companyId ?? credential.companyId
+    }
+  }
+
   const products = await prisma.product.findMany({
-    where: {
-      AND: {
-        OR: [
-          { name: { mode: 'insensitive', contains: search ?? '' } },
-          { barcode: { mode: 'insensitive', contains: search ?? '' } },
-          { itemCode: { mode: 'insensitive', contains: search ?? '' } },
-        ],
-        companyId: companyId ?? credential.companyId
-      }
-    },
+    where,
     include: { company: true },
     take: PAGE_SIZE,
     skip: (intPage - 1) * PAGE_SIZE
   })
 
-  const count = await prisma.product.count({
-    where: {
-      AND: {
-        OR: [
-          { name: { mode: 'insensitive', contains: search ?? '' } },
-          { barcode: { mode: 'insensitive', contains: search ?? '' } },
-          { itemCode: { mode: 'insensitive', contains: search ?? '' } },
-        ],
-        companyId: companyId ?? credential.companyId
-      }
-    }
-  })
+  const count = await prisma.product.count({ where })
   const pagination = {
     page: intPage,
     totalPage: Math.ceil(count / PAGE_SIZE),
-- 
cgit v1.2.3

