From c977921f02308af769af37f6b7d37b21869797f2 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 5 Dec 2023 10:53:52 +0700 Subject: Add externalId on import and export --- src/app/api/product/import/route.tsx | 1 + src/app/api/stock-opname/export/route.tsx | 1 + src/app/api/stock-opname/route.tsx | 11 +---------- src/modules/result/components/ImportModal.tsx | 23 +++++++++++++++++++---- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/app/api/product/import/route.tsx b/src/app/api/product/import/route.tsx index eb87f07..e4e38c6 100644 --- a/src/app/api/product/import/route.tsx +++ b/src/app/api/product/import/route.tsx @@ -25,6 +25,7 @@ export async function POST(request: NextRequest) { onhandQty: row[3], differenceQty: row[4], companyId: row[5], + externalId: row[6] ?? null })); const whereCompany = { companyId: intCompanyId } diff --git a/src/app/api/stock-opname/export/route.tsx b/src/app/api/stock-opname/export/route.tsx index 650ceba..2537070 100644 --- a/src/app/api/stock-opname/export/route.tsx +++ b/src/app/api/stock-opname/export/route.tsx @@ -46,6 +46,7 @@ export async function GET(request: NextRequest) { for (const opname of stockOpnames) { const defaultItems = { + externalId: opname?.externalId, itemCode: opname?.itemCode, barcode: opname?.barcode, name: opname.name, diff --git a/src/app/api/stock-opname/route.tsx b/src/app/api/stock-opname/route.tsx index e98c3b2..cba16e2 100644 --- a/src/app/api/stock-opname/route.tsx +++ b/src/app/api/stock-opname/route.tsx @@ -40,16 +40,7 @@ export async function GET(request: NextRequest) { const products = await prisma.product.findMany({ skip: (intPage - 1) * PAGE_SIZE, take: PAGE_SIZE, - where, - select: { - id: true, - name: true, - itemCode: true, - barcode: true, - onhandQty: true, - differenceQty: true, - isDifferent: true - } + where }) const productCount = await prisma.product.count({ where }) diff --git a/src/modules/result/components/ImportModal.tsx b/src/modules/result/components/ImportModal.tsx index fd4c7d3..1bb7b26 100644 --- a/src/modules/result/components/ImportModal.tsx +++ b/src/modules/result/components/ImportModal.tsx @@ -1,6 +1,6 @@ import toast from '@/common/libs/toast' import { useResultStore } from '@/common/stores/useResultStore' -import { Button, Modal, ModalBody, ModalContent, ModalHeader } from '@nextui-org/react' +import { Button, Input, Modal, ModalBody, ModalContent, ModalHeader, Spacer } from '@nextui-org/react' import { useMutation } from '@tanstack/react-query' import { AlertTriangleIcon } from 'lucide-react' import React, { ChangeEvent, FormEvent, useMemo, useState } from 'react' @@ -14,6 +14,7 @@ type Props = { const ImportModal = ({ modal }: Props) => { const [file, setFile] = useState() + const [confirmation, setConfirmation] = useState('') const { companies, filter } = useResultStore() const selectedCompany = useMemo(() => { @@ -47,20 +48,34 @@ const ImportModal = ({ modal }: Props) => { const handleSubmit = (e: FormEvent) => { e.preventDefault() importMutation.mutate() + setConfirmation('') } + const confirmationText = `Hapus produk dan hasil so ${selectedCompany?.label}` + const isConfirmed = confirmation.toLowerCase() === confirmationText.toLowerCase() + return ( - Import Product + Import Product {selectedCompany?.label}
- -
+
-- cgit v1.2.3