diff --git a/src/app/api/pickOrder/actions.ts b/src/app/api/pickOrder/actions.ts index 7980d51..501f0a2 100644 --- a/src/app/api/pickOrder/actions.ts +++ b/src/app/api/pickOrder/actions.ts @@ -169,4 +169,14 @@ export const consolidatePickOrder_revert = async (ids: number[]) => { }); revalidateTag("pickorder"); return po + } + + export const completeConsoPickOrder = async (consoCode: string) => { + const po = await serverFetchJson> + (`${BASE_API_URL}/pickOrder/consoPickOrder/complete/${consoCode}`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + }); + revalidateTag("pickorder"); + return po } \ No newline at end of file diff --git a/src/components/PickOrderDetail/PickOrderDetail.tsx b/src/components/PickOrderDetail/PickOrderDetail.tsx index f6f3425..9e7a814 100644 --- a/src/components/PickOrderDetail/PickOrderDetail.tsx +++ b/src/components/PickOrderDetail/PickOrderDetail.tsx @@ -33,6 +33,7 @@ import DoneIcon from "@mui/icons-material/Done"; import { GridRowSelectionModel } from "@mui/x-data-grid"; import { useQcCodeScanner } from "../QrCodeScannerProvider/QrCodeScannerProvider"; import { + completeConsoPickOrder, CreateStockOutLine, createStockOutLine, fetchPickOrderLineClient, @@ -199,9 +200,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { [] ); - const [isCompletedOrder, setIsCompletedOrder] = useState(() => { - return pickOrderLine.every((line) => line.status == "completed") - }) + const [isCompletedOrder, setIsCompletedOrder] = useState(false); const fetchPickOrderLine = useCallback( async (params: Record) => { @@ -215,12 +214,12 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { }); if (res) { console.log(res); - console.log(res.records.every((line) => line.status == "completed")) - setIsCompletedOrder(() => + console.log(res.records.every((line) => line.status == "completed")); + setIsCompletedOrder(() => res.records.every((line) => line.status == "completed") - ) + ); setPickOrderLine(res.records); - + setPolTotalCount(res.total); } else { console.log("error"); @@ -595,7 +594,14 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { fetchPickOrderLine(polCriteriaArgs); } if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow); - }, [qcOpen, approvalOpen, solCriteriaArgs, selectedRow, triggerRefetch, polCriteriaArgs]); + }, [ + qcOpen, + approvalOpen, + solCriteriaArgs, + selectedRow, + triggerRefetch, + polCriteriaArgs, + ]); const getLotDetail = useCallback( async (stockInLineId: number): Promise => { @@ -633,7 +639,8 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { const homemade_Qrcode = { // stockInLineId: 156, // eggs - stockInLineId: 162, // chicken wings + // stockInLineId: 162, // chicken wings + stockInLineId: 168, // sesame }; useEffect(() => { @@ -728,6 +735,16 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { [apiRef] ); + const handleCompleteOrder = useCallback(async () => { + const res = await completeConsoPickOrder(consoCode) + if (res) { + // completed + triggerRefetch() + } else { + // not completed + triggerRefetch() + } + }, [consoCode, triggerRefetch]) return ( <> @@ -743,6 +760,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { disabled={!isCompletedOrder} color={buttonData.buttonColor as ButtonProps["color"]} startIcon={buttonData.buttonIcon} + onClick={handleCompleteOrder} > {buttonData.buttonText} @@ -815,6 +833,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { )} + {isChangeLotSolId}