diff --git a/src/app/api/pickOrder/actions.ts b/src/app/api/pickOrder/actions.ts index 6991c39..45c5473 100644 --- a/src/app/api/pickOrder/actions.ts +++ b/src/app/api/pickOrder/actions.ts @@ -181,7 +181,7 @@ export const fetchConsoDetail = cache(async (consoCode: string) => { export const releasePickOrder = async (data: ReleasePickOrderInputs) => { console.log(data); console.log(JSON.stringify(data)); - const po = await serverFetchJson<{ body: any; status: number }>( + const po = await serverFetchJson<{ consoCode: string }>( `${BASE_API_URL}/pickOrder/releaseConso`, { method: "POST", @@ -232,3 +232,13 @@ export const completeConsoPickOrder = async (consoCode: string) => { revalidateTag("pickorder"); return po; }; + +export const fetchConsoStatus = cache(async (consoCode: string) => { + return serverFetchJson<{ status: string }>( + `${BASE_API_URL}/stockOut/get-status/${consoCode}`, + { + method: "GET", + next: { tags: ["pickorder"] }, + }, + ); +}); diff --git a/src/app/api/pickOrder/index.ts b/src/app/api/pickOrder/index.ts index 850614e..b868ec3 100644 --- a/src/app/api/pickOrder/index.ts +++ b/src/app/api/pickOrder/index.ts @@ -80,6 +80,7 @@ export interface PreReleasePickOrderSummary { } export interface PickOrderLineWithSuggestedLot { + poStatus: string; id: number; itemName: string; qty: number; diff --git a/src/app/api/settings/item/actions.ts b/src/app/api/settings/item/actions.ts index bdd6b9f..c09abeb 100644 --- a/src/app/api/settings/item/actions.ts +++ b/src/app/api/settings/item/actions.ts @@ -37,7 +37,6 @@ export type CreateItemInputs = { }; export const saveItem = async (data: CreateItemInputs) => { - // try { const item = await serverFetchJson>( `${BASE_API_URL}/items/new`, { diff --git a/src/app/api/settings/item/index.ts b/src/app/api/settings/item/index.ts index c0b0559..5d224c2 100644 --- a/src/app/api/settings/item/index.ts +++ b/src/app/api/settings/item/index.ts @@ -35,6 +35,8 @@ export type ItemsResult = { type: string; qcChecks: ItemQc[]; action?: any; + fgName?: string; + excludeDate?: string; }; export type Result = { diff --git a/src/components/PickOrderDetail/ApprovalForm.tsx b/src/components/PickOrderDetail/ApprovalForm.tsx index 763f7ce..afe74e1 100644 --- a/src/components/PickOrderDetail/ApprovalForm.tsx +++ b/src/components/PickOrderDetail/ApprovalForm.tsx @@ -63,7 +63,7 @@ const ApprovalForm: React.FC = ({ [onClose], ); - const onSubmit = useCallback>( + const onSubmit = useCallback>( async (data, event) => { console.log(data); // checking later diff --git a/src/components/PickOrderDetail/PickOrderDetail.tsx b/src/components/PickOrderDetail/PickOrderDetail.tsx index 13cb466..1569a75 100644 --- a/src/components/PickOrderDetail/PickOrderDetail.tsx +++ b/src/components/PickOrderDetail/PickOrderDetail.tsx @@ -28,7 +28,6 @@ import { GridEditInputCell, GridRowParams, } from "@mui/x-data-grid"; -import { PlayArrow } from "@mui/icons-material"; import DoneIcon from "@mui/icons-material/Done"; import { GridRowSelectionModel } from "@mui/x-data-grid"; import { useQrCodeScannerContext } from "../QrCodeScannerProvider/QrCodeScannerProvider"; @@ -36,6 +35,7 @@ import { completeConsoPickOrder, CreateStockOutLine, createStockOutLine, + fetchConsoStatus, fetchPickOrderLineClient, fetchStockOutLineClient, PickOrderApprovalInput, @@ -63,6 +63,7 @@ import AutoFixNormalIcon from "@mui/icons-material/AutoFixNormal"; import ApprovalForm from "./ApprovalForm"; import InfoIcon from "@mui/icons-material/Info"; import VerifiedIcon from "@mui/icons-material/Verified"; +import { isNullOrUndefined } from "html5-qrcode/esm/core"; interface Props { qc: QcItemWithChecks[]; @@ -171,9 +172,16 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { headerName: "location", flex: 1, renderCell: (params) => { - if (!params.row.warehouse) return <>; - const warehouseList = JSON.parse(params.row.warehouse) as string[]; - return FitAllCell(warehouseList); + // console.log(params.row.warehouse) + return params.row.warehouse; + if (isNullOrUndefined(params.row.warehouse)) { + return <>; + } else { + const warehouseList = JSON.parse( + `{${params.row.warehouse}}`, + ) as string[]; + return FitAllCell(warehouseList); + } }, }, { @@ -181,7 +189,8 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { headerName: "suggestedLotNo", flex: 1.2, renderCell: (params) => { - if (!params.row.suggestedLotNo) return <>; + return params.row.suggestedLotNo; + if (isNullOrUndefined(params.row.suggestedLotNo)) return <>; const suggestedLotNoList = JSON.parse( params.row.suggestedLotNo, ) as string[]; @@ -200,7 +209,14 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { [], ); - const [isCompletedOrder, setIsCompletedOrder] = useState(false); + const [isDisableComplete, setIsDisableComplete] = useState(true); + const [status, setStatus] = useState(""); + + const getConsoStatus = useCallback(async () => { + const status = await fetchConsoStatus(consoCode); + console.log(status); + setStatus(status.status); + }, [fetchConsoStatus]); const fetchPickOrderLine = useCallback( async (params: Record) => { @@ -215,9 +231,10 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { if (res) { console.log(res); console.log(res.records.every((line) => line.status == "completed")); - setIsCompletedOrder(() => - res.records.every((line) => line.status == "completed"), - ); + setIsDisableComplete(res.records[0].poStatus === "completed"); + // setIsDisableComplete(() => + // res.records.every((line) => line.status !== "completed"), + // ); setPickOrderLine(res.records); setPolTotalCount(res.total); @@ -233,21 +250,6 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { [fetchPickOrderLineClient, consoCode], ); - const buttonData = useMemo( - () => ({ - buttonName: "complete", - title: t("Do you want to complete?"), - confirmButtonText: t("Complete"), - successTitle: t("Complete Success"), - errorTitle: t("Complete Fail"), - buttonText: t("Complete Pick Order"), - buttonIcon: , - buttonColor: "info", - disabled: true, - }), - [], - ); - const [stockOutLine, setStockOutLine] = useState([]); const getRowId = useCallback>( @@ -505,6 +507,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { key="edit" />, } label="Delete" sx={{ @@ -593,7 +596,9 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { useEffect(() => { if (!qcOpen || !approvalOpen) { triggerRefetch(); + getConsoStatus(); fetchPickOrderLine(polCriteriaArgs); + // getConsoStatus() } if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow); }, [ @@ -603,6 +608,7 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { selectedRow, triggerRefetch, polCriteriaArgs, + getConsoStatus, ]); const getLotDetail = useCallback( @@ -739,32 +745,35 @@ const PickOrderDetail: React.FC = ({ consoCode, qc }) => { const handleCompleteOrder = useCallback(async () => { const res = await completeConsoPickOrder(consoCode); - if (res) { + if (res.message === "completed") { + console.log(res); // completed triggerRefetch(); + // setIsCompletedOrder(false) } else { // not completed triggerRefetch(); } - }, [consoCode, triggerRefetch]); + }, [consoCode, triggerRefetch, completeConsoPickOrder]); + return ( <> - {consoCode} + {consoCode} - {status} = ({ consoCode, qc }) => { justifyContent="end" alignItems="end" > - - */} + diff --git a/src/components/PickOrderDetail/QcForm.tsx b/src/components/PickOrderDetail/QcForm.tsx index 5061b8f..f3a92dc 100644 --- a/src/components/PickOrderDetail/QcForm.tsx +++ b/src/components/PickOrderDetail/QcForm.tsx @@ -60,7 +60,7 @@ const QcForm: React.FC = ({ [onClose], ); - const onSubmit = useCallback>( + const onSubmit = useCallback>( async (data, event) => { console.log(data); console.log(qcDefaultValues); diff --git a/src/components/PickOrderSearch/ConsolidatedPickOrders.tsx b/src/components/PickOrderSearch/ConsolidatedPickOrders.tsx index 7fb33fc..593313e 100644 --- a/src/components/PickOrderSearch/ConsolidatedPickOrders.tsx +++ b/src/components/PickOrderSearch/ConsolidatedPickOrders.tsx @@ -218,15 +218,15 @@ const ConsolidatedPickOrders: React.FC = ({ filterArgs }) => { [], ); - const onSubmit = useCallback>( + const onSubmit = useCallback>( async (data, event) => { console.log(data); try { const res = await releasePickOrder(data); console.log(res); - console.log(res.status); - if (res.status === 200) { - router.push(`/pickorder/detail?consoCode=${data.consoCode}`); + if (res.consoCode.length > 0) { + console.log(res); + router.push(`/pickorder/detail?consoCode=${res.consoCode}`); } else { console.log(res); } diff --git a/src/components/PoDetail/PoQcStockInModal.tsx b/src/components/PoDetail/PoQcStockInModal.tsx index f55e4a8..25d846b 100644 --- a/src/components/PoDetail/PoQcStockInModal.tsx +++ b/src/components/PoDetail/PoQcStockInModal.tsx @@ -203,7 +203,7 @@ const PoQcStockInModal: React.FC = ({ [itemDetail, formProps], ); - const onSubmit = useCallback>( + const onSubmit = useCallback>( async (data, event) => { setBtnIsLoading(true); setIsUploading(true); diff --git a/src/components/PoDetail/QrModal.tsx b/src/components/PoDetail/QrModal.tsx index 6da0df2..33bef84 100644 --- a/src/components/PoDetail/QrModal.tsx +++ b/src/components/PoDetail/QrModal.tsx @@ -136,7 +136,7 @@ const QrModal: React.FC = ({ open, onClose, warehouse }) => { if (stockInLineId) fetchStockInLine(stockInLineId); }, [stockInLineId]); - const onSubmit = useCallback>( + const onSubmit = useCallback>( async (data, event) => { const hasErrors = false; console.log("errors");