From 6322e8c708fdaeb642f2bf996ffb33ca37bd6347 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Fri, 25 Jul 2025 12:06:11 +0800 Subject: [PATCH] update --- src/components/PoDetail/PoQcStockInModal.tsx | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/components/PoDetail/PoQcStockInModal.tsx b/src/components/PoDetail/PoQcStockInModal.tsx index 25d846b..f256027 100644 --- a/src/components/PoDetail/PoQcStockInModal.tsx +++ b/src/components/PoDetail/PoQcStockInModal.tsx @@ -40,6 +40,8 @@ import { fetchPoQrcode } from "@/app/api/pdf/actions"; import UploadContext from "../UploadProvider/UploadProvider"; import useUploadContext from "../UploadProvider/useUploadContext"; import RejectForm from "./RejectForm"; +import { isNullOrUndefined } from "html5-qrcode/esm/core"; +import { isEmpty, isFinite } from "lodash"; dayjs.extend(arraySupport); interface CommonProps extends Omit { @@ -153,9 +155,37 @@ const PoQcStockInModal: React.FC = ({ // } // return date; // }, []); + const accQty = formProps.watch("acceptedQty"); + const productLotNo = formProps.watch("productLotNo"); const checkStockIn = useCallback( (data: ModalFormInput): boolean => { let hasErrors = false; + if (!isFinite(accQty) || accQty!! <= 0 ) { + formProps.setError("acceptedQty", { + message: `${t("Accepted qty must greater than")} ${ + 0 + }`, + type: "required", + }); + hasErrors = true; + } else if (accQty!! > itemDetail.acceptedQty) { + formProps.setError("acceptedQty", { + message: `${t("Accepted qty must not greater than")} ${ + itemDetail.acceptedQty + }`, + type: "required", + }); + hasErrors = true; + } + + if (isEmpty(productLotNo)) { + formProps.setError("productLotNo", { + message: `${t("Product Lot No must not be empty")}`, + type: "required", + }); + hasErrors = true; + } + if (itemDetail.shelfLife && !data.productionDate && !data.expiryDate) { formProps.setError("productionDate", { message: "Please provide at least one",