diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-12-01 10:16:12 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-12-01 10:16:12 +0700 |
| commit | ae3207e9778c3f2fb01d64714ff15fc073ec093d (patch) | |
| tree | 7b4c8cd8c00fec4d9eeafec8e01e938917cbee2e /src/app/api/product | |
| parent | 812e4ac0afc56ee3121a5673af35bf8be2f4432c (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.tsx | 16 | ||||
| -rw-r--r-- | src/app/api/product/route.tsx | 11 |
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 }) |
