diff --git a/src/app/api/do/actions.tsx b/src/app/api/do/actions.tsx index aabc77b..a94c79b 100644 --- a/src/app/api/do/actions.tsx +++ b/src/app/api/do/actions.tsx @@ -77,12 +77,11 @@ export interface AssignByStoreResponse { } export interface PrintDeliveryNoteRequest{ - deliveryOrderId: number; + doPickOrderId: number; printerId: number; printQty: number; numOfCarton: number; isDraft: boolean; - pickOrderId: number; } export interface PrintDeliveryNoteResponse{ @@ -91,10 +90,10 @@ export interface PrintDeliveryNoteResponse{ } export interface PrintDNLabelsRequest{ - deliveryOrderId: number, - printerId: number, - printQty: number, - numOfCarton: number + doPickOrderId: number; + printerId: number; + printQty: number; + numOfCarton: number; } export interface PrintDNLabelsRespone{ @@ -186,14 +185,13 @@ export const fetchDoSearch = cache(async (code: string, shopName: string, status export async function printDN(request: PrintDeliveryNoteRequest){ const params = new URLSearchParams(); - params.append('deliveryOrderId', request.deliveryOrderId.toString()); + params.append('doPickOrderId', request.doPickOrderId.toString()); params.append('printerId', request.printerId.toString()); if (request.printQty !== null && request.printQty !== undefined) { params.append('printQty', request.printQty.toString()); } params.append('numOfCarton', request.numOfCarton.toString()); params.append('isDraft', request.isDraft.toString()); - params.append('pickOrderId', request.pickOrderId.toString()); const response = await serverFetchWithNoContent(`${BASE_API_URL}/do/print-DN?${params.toString()}`,{ method: "GET", @@ -204,7 +202,7 @@ export async function printDN(request: PrintDeliveryNoteRequest){ export async function printDNLabels(request: PrintDNLabelsRequest){ const params = new URLSearchParams(); - params.append('deliveryOrderId', request.deliveryOrderId.toString()); + params.append('doPickOrderId', request.doPickOrderId.toString()); params.append('printerId', request.printerId.toString()); if (request.printQty !== null && request.printQty !== undefined) { params.append('printQty', request.printQty.toString()); diff --git a/src/components/FinishedGoodSearch/FinishedGoodSearch.tsx b/src/components/FinishedGoodSearch/FinishedGoodSearch.tsx index e6b43df..8c3ec12 100644 --- a/src/components/FinishedGoodSearch/FinishedGoodSearch.tsx +++ b/src/components/FinishedGoodSearch/FinishedGoodSearch.tsx @@ -77,7 +77,7 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { const fetchReleasedOrderCount = useCallback(async () => { try { const releasedOrders = await fetchReleasedDoPickOrders(); - const validCount = releasedOrders.filter(order => order.doOrderId).length; + const validCount = releasedOrders.length; setReleasedOrderCount(validCount); } catch (error) { console.error("Error fetching released order count:", error); @@ -111,6 +111,11 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { try{ if (fgPickOrdersData.length === 0) { console.error("No FG Pick order data available"); + Swal.fire({ + title: "", + text: t("Please take one pick order before printing the draft."), + icon: "info" + }) return; } @@ -121,8 +126,7 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { printQty: 1, isDraft: true, numOfCarton: 0, - deliveryOrderId: currentFgOrder.deliveryOrderId, - pickOrderId: currentFgOrder.pickOrderId + doPickOrderId: currentFgOrder.doPickOrderId }; console.log("Printing draft with request: ", printRequest); @@ -149,11 +153,16 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { const handleAllDraft = useCallback(async () =>{ try { - const releasedOrders = await fetchReleasedDoPickOrders(); + const releasedOrders = await fetchReleasedDoPickOrders(); + console.log('fgPickOrdersData length:' + releasedOrders.length) if(releasedOrders.length === 0) { console.log("No released do_pick_order records found"); - + Swal.fire({ + title: "", + text: t("No released pick order records found."), + icon: "info" + }) return; } console.log("Found released orders:", releasedOrders); @@ -184,17 +193,16 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { }); for (const order of releasedOrders) { - const { doOrderId, pickOrderId } = order; + const doPickOrderId = order.id - console.log(`Processing order - DO Order ID: ${doOrderId}, Pick order ID: ${pickOrderId}`); + console.log(`Processing order - DoPickOrder ID: ${doPickOrderId}, Ticket No: ${order.ticketNo}`); const printRequest = { printerId: 1, printQty: 1, isDraft: true, numOfCarton: 0, - deliveryOrderId: doOrderId, - pickOrderId: pickOrderId + doPickOrderId: doPickOrderId }; console.log("Printing draft with request:", printRequest) @@ -216,7 +224,7 @@ const PickOrderSearch: React.FC = ({ pickOrders }) => { console.error("Error in handleAllDraft:",error); } - },[t]); + },[t, fgPickOrdersData]); diff --git a/src/components/FinishedGoodSearch/GoodPickExecution.tsx b/src/components/FinishedGoodSearch/GoodPickExecution.tsx index 9b04ae9..4f2ba06 100644 --- a/src/components/FinishedGoodSearch/GoodPickExecution.tsx +++ b/src/components/FinishedGoodSearch/GoodPickExecution.tsx @@ -371,10 +371,19 @@ const fetchFgPickOrdersData = useCallback(async () => { setFgPickOrders(fgPickOrders); + if (onFgPickOrdersChange) { + onFgPickOrdersChange(fgPickOrders); + } + } catch (error) { console.error("❌ Error fetching FG pick orders:", error); setFgPickOrders([]); + + if (onFgPickOrdersChange) { + onFgPickOrdersChange([]); + } + } finally { setFgPickOrdersLoading(false); } diff --git a/src/components/FinishedGoodSearch/GoodPickExecutionRecord.tsx b/src/components/FinishedGoodSearch/GoodPickExecutionRecord.tsx index 1338ec6..4bf50ba 100644 --- a/src/components/FinishedGoodSearch/GoodPickExecutionRecord.tsx +++ b/src/components/FinishedGoodSearch/GoodPickExecutionRecord.tsx @@ -111,8 +111,7 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { const formProps = useForm(); const errors = formProps.formState.errors; - // ✅ Print handler functions - const handleDN = useCallback(async (deliveryOrderId: number, pickOrderId: number) => { + const handleDN = useCallback(async (doPickOrderId: number) => { const askNumofCarton = await Swal.fire({ title: t("Enter the number of cartons: "), icon: "info", @@ -148,8 +147,7 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { printQty: 1, isDraft: false, numOfCarton: numOfCartons, - deliveryOrderId: deliveryOrderId, - pickOrderId: pickOrderId + doPickOrderId: doPickOrderId }; console.log("Printing Delivery Note with request: ", printRequest); @@ -173,7 +171,7 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { } }, [t]); - const handleDNandLabel = useCallback(async (deliveryOrderId: number, pickOrderId: number) => { + const handleDNandLabel = useCallback(async (doPickOrderId: number) => { const askNumofCarton = await Swal.fire({ title: t("Enter the number of cartons: "), icon: "info", @@ -205,19 +203,18 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { const numOfCartons = askNumofCarton.value; try{ const printDNRequest = { - printerId: 1, - printQty: 1, - isDraft: false, - numOfCarton: numOfCartons, - deliveryOrderId: deliveryOrderId, - pickOrderId: pickOrderId + printerId: 1, + printQty: 1, + isDraft: false, + numOfCarton: numOfCartons, + doPickOrderId: doPickOrderId, }; const printDNLabelsRequest = { printerId: 1, printQty: 1, numOfCarton: numOfCartons, - deliveryOrderId: deliveryOrderId + doPickOrderId: doPickOrderId }; console.log("Printing Labels with request: ", printDNLabelsRequest); @@ -251,7 +248,7 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { } }, [t]); - const handleLabel = useCallback(async (deliveryOrderId: number) => { + const handleLabel = useCallback(async (doPickOrderId: number) => { const askNumofCarton = await Swal.fire({ title: t("Enter the number of cartons: "), icon: "info", @@ -286,7 +283,7 @@ const GoodPickExecutionRecord: React.FC = ({ filterArgs }) => { printerId: 1, printQty: 1, numOfCarton: numOfCartons, - deliveryOrderId: deliveryOrderId, + doPickOrderId: doPickOrderId }; console.log("Printing Labels with request: ", printRequest); @@ -687,14 +684,12 @@ if (showDetailView && selectedDoPickOrder) { > {t("View Details")} - - {doPickOrder.fgPickOrders && doPickOrder.fgPickOrders.length > 0 && ( + <> - )} + ) ))} diff --git a/src/i18n/zh/pickOrder.json b/src/i18n/zh/pickOrder.json index 226b26c..3678ca2 100644 --- a/src/i18n/zh/pickOrder.json +++ b/src/i18n/zh/pickOrder.json @@ -403,5 +403,7 @@ "Select Date": "請選擇日期", "Print DN & Label": "列印提料單和送貨單標籤", "Print Label": "列印送貨單標籤", - "Ticket Release Table": "查看提貨情況" + "Ticket Release Table": "查看提貨情況", + "Please take one pick order before printing the draft.": "請先從下方選取提料單,再列印草稿。", + "No released pick order records found.": "目前沒有可用的提料單。" } \ No newline at end of file