From a896ed999779e7e3ee9fba1b22173117e104a213 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Fri, 25 Jul 2025 16:21:44 +0800 Subject: [PATCH] update --- src/app/api/po/actions.ts | 2 ++ .../PickOrderDetail/PickOrderDetail.tsx | 4 +-- src/components/PoDetail/EscalationForm.tsx | 32 ++++++++++++++++++- src/components/PoDetail/PoDetail.tsx | 10 +++--- src/components/PoDetail/PoQcStockInModal.tsx | 6 ++-- src/components/PoDetail/QcForm.tsx | 2 +- 6 files changed, 44 insertions(+), 12 deletions(-) diff --git a/src/app/api/po/actions.ts b/src/app/api/po/actions.ts index 159d08b..779d9f1 100644 --- a/src/app/api/po/actions.ts +++ b/src/app/api/po/actions.ts @@ -57,7 +57,9 @@ export interface PurchaseQCInput { } export interface EscalationInput { status: string; + remarks?: string; handler: string; + productLotNo: string; acceptedQty: number; // this is the qty to be escalated // escalationQty: number } diff --git a/src/components/PickOrderDetail/PickOrderDetail.tsx b/src/components/PickOrderDetail/PickOrderDetail.tsx index d7703fa..c0da032 100644 --- a/src/components/PickOrderDetail/PickOrderDetail.tsx +++ b/src/components/PickOrderDetail/PickOrderDetail.tsx @@ -795,7 +795,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { {/* homemade qrcode for testing purpose */} - = ({ consoCode, qc }) => { content={homemade_Qrcode} sx={{ width: 200, height: 200 }} /> - + */} {/* diff --git a/src/components/PoDetail/EscalationForm.tsx b/src/components/PoDetail/EscalationForm.tsx index dbce837..d73768d 100644 --- a/src/components/PoDetail/EscalationForm.tsx +++ b/src/components/PoDetail/EscalationForm.tsx @@ -87,7 +87,7 @@ const EscalationForm: React.FC = ({ useEffect(() => { console.log("triggered"); setValue("status", status); - }, []); + }, [setValue, status]); return ( @@ -108,6 +108,18 @@ const EscalationForm: React.FC = ({ spacing={2} sx={{ mt: 0.5 }} > + + + = ({ helperText={errors.acceptedQty?.message} /> + + + + + + = ({ po, qc, warehouse }) => { console.log(checkRes); const newPo = await fetchPoInClient(purchaseOrder.id); setPurchaseOrder(newPo); - }, [checkPolAndCompletePo, fetchPoInClient]); + }, [purchaseOrder.id]); const handleStartPo = useCallback(async () => { const startRes = await startPo(purchaseOrder.id); console.log(startRes); const newPo = await fetchPoInClient(purchaseOrder.id); setPurchaseOrder(newPo); - }, [startPo, fetchPoInClient]); + }, [purchaseOrder.id]); useEffect(() => { setRows(purchaseOrder.pol || []); @@ -127,11 +127,11 @@ const PoDetail: React.FC = ({ po, qc, warehouse }) => { const [stockInLine, setStockInLine] = useState(row.stockInLine); const totalWeight = useMemo( () => calculateWeight(row.qty, row.uom), - [calculateWeight], + [row.qty, row.uom], ); const weightUnit = useMemo( () => returnWeightUnit(row.uom), - [returnWeightUnit], + [row.uom], ); useEffect(() => { @@ -142,7 +142,7 @@ const PoDetail: React.FC = ({ po, qc, warehouse }) => { } else { setCurrStatus("pending".toUpperCase()); } - }, [processedQty]); + }, [processedQty, row.qty]); return ( <> diff --git a/src/components/PoDetail/PoQcStockInModal.tsx b/src/components/PoDetail/PoQcStockInModal.tsx index f256027..a867f79 100644 --- a/src/components/PoDetail/PoQcStockInModal.tsx +++ b/src/components/PoDetail/PoQcStockInModal.tsx @@ -160,7 +160,7 @@ const PoQcStockInModal: React.FC = ({ const checkStockIn = useCallback( (data: ModalFormInput): boolean => { let hasErrors = false; - if (!isFinite(accQty) || accQty!! <= 0 ) { + if (!isFinite(accQty) || accQty! <= 0 ) { formProps.setError("acceptedQty", { message: `${t("Accepted qty must greater than")} ${ 0 @@ -168,7 +168,7 @@ const PoQcStockInModal: React.FC = ({ type: "required", }); hasErrors = true; - } else if (accQty!! > itemDetail.acceptedQty) { + } else if (accQty! > itemDetail.acceptedQty) { formProps.setError("acceptedQty", { message: `${t("Accepted qty must not greater than")} ${ itemDetail.acceptedQty @@ -214,7 +214,7 @@ const PoQcStockInModal: React.FC = ({ } return hasErrors; }, - [itemDetail, formProps], + [accQty, itemDetail.acceptedQty, itemDetail.shelfLife, productLotNo, formProps, t], ); const checkPutaway = useCallback( diff --git a/src/components/PoDetail/QcForm.tsx b/src/components/PoDetail/QcForm.tsx index 9b19e53..cfc4b77 100644 --- a/src/components/PoDetail/QcForm.tsx +++ b/src/components/PoDetail/QcForm.tsx @@ -97,7 +97,7 @@ const QcForm: React.FC = ({ qc, itemDetail, disabled }) => { useEffect(() => { clearErrors(); validateForm(); - }, [validateForm]); + }, [clearErrors, validateForm]); const columns = useMemo( () => [