diff --git a/src/app/(main)/jodetail/page.tsx b/src/app/(main)/jodetail/page.tsx
index a9a8d79..37a61eb 100644
--- a/src/app/(main)/jodetail/page.tsx
+++ b/src/app/(main)/jodetail/page.tsx
@@ -5,7 +5,7 @@ import { Stack, Typography } from "@mui/material";
import { Metadata } from "next";
import React, { Suspense } from "react";
import GeneralLoading from "@/components/General/GeneralLoading";
-
+import JodetailSearchWrapper from "@/components/Jodetail/FinishedGoodSearchWrapper";
export const metadata: Metadata = {
title: "Job Order Pickexcution"
}
@@ -29,7 +29,7 @@ const jo: React.FC = async () => {
}>
-
+
>
diff --git a/src/app/api/jo/actions.ts b/src/app/api/jo/actions.ts
index f3ba859..805b1cf 100644
--- a/src/app/api/jo/actions.ts
+++ b/src/app/api/jo/actions.ts
@@ -769,7 +769,8 @@ export async function PrintPickRecord(request: PrintPickRecordRequest){
params.append('printQty', request.printQty.toString());
}
- const response = await serverFetchWithNoContent(`${BASE_API_URL}/jo/print-PickRecord?${params.toString()}`,{
+ //const response = await serverFetchWithNoContent(`${BASE_API_URL}/jo/print-PickRecord?${params.toString()}`,{
+ const response = await serverFetchWithNoContent(`${BASE_API_URL}/jo/newPrint-PickRecord?${params.toString()}`,{
method: "GET"
});
diff --git a/src/components/Jodetail/FInishedJobOrderRecord.tsx b/src/components/Jodetail/FInishedJobOrderRecord.tsx
index 2590801..a4900b1 100644
--- a/src/components/Jodetail/FInishedJobOrderRecord.tsx
+++ b/src/components/Jodetail/FInishedJobOrderRecord.tsx
@@ -42,7 +42,7 @@ import {
import SearchBox, { Criterion } from "../SearchBox";
import { useSession } from "next-auth/react";
import { SessionWithTokens } from "@/config/authConfig";
-
+import { PrinterCombo } from "@/app/api/settings/printer";
interface Props {
filterArgs: Record;
}
diff --git a/src/components/Jodetail/FinishedGoodSearchWrapper.tsx b/src/components/Jodetail/FinishedGoodSearchWrapper.tsx
index da633c5..dd7c64d 100644
--- a/src/components/Jodetail/FinishedGoodSearchWrapper.tsx
+++ b/src/components/Jodetail/FinishedGoodSearchWrapper.tsx
@@ -1,13 +1,14 @@
import { fetchPickOrders } from "@/app/api/pickOrder";
+import { fetchPrinterCombo } from "@/app/api/settings/printer";
import GeneralLoading from "../General/GeneralLoading";
-import PickOrderSearch from "./FinishedGoodSearchWrapper";
+import JodetailSearch from "./JodetailSearch";
interface SubComponents {
Loading: typeof GeneralLoading;
}
-const FinishedGoodSearchWrapper: React.FC & SubComponents = async () => {
- const [pickOrders] = await Promise.all([
+const JodetailSearchWrapper: React.FC & SubComponents = async () => {
+ const [pickOrders, printerCombo] = await Promise.all([
fetchPickOrders({
code: undefined,
targetDateFrom: undefined,
@@ -16,11 +17,13 @@ const FinishedGoodSearchWrapper: React.FC & SubComponents = async () => {
status: undefined,
itemName: undefined,
}),
+ fetchPrinterCombo(),
]);
+ console.log("%c printerCombo:", "color:green", printerCombo);
- return ;
+ return ;
};
-FinishedGoodSearchWrapper.Loading = GeneralLoading;
+JodetailSearchWrapper.Loading = GeneralLoading;
-export default FinishedGoodSearchWrapper;
+export default JodetailSearchWrapper;
\ No newline at end of file
diff --git a/src/components/Jodetail/JodetailSearch.tsx b/src/components/Jodetail/JodetailSearch.tsx
index 0fd11d4..77275bb 100644
--- a/src/components/Jodetail/JodetailSearch.tsx
+++ b/src/components/Jodetail/JodetailSearch.tsx
@@ -37,6 +37,7 @@ import { fetchPrinterCombo } from "@/app/api/settings/printer";
import { PrinterCombo } from "@/app/api/settings/printer";
interface Props {
pickOrders: PickOrderResult[];
+ printerCombo: PrinterCombo[];
}
type SearchQuery = Partial<
@@ -45,7 +46,7 @@ type SearchQuery = Partial<
type SearchParamNames = keyof SearchQuery;
-const JodetailSearch: React.FC = ({ pickOrders }) => {
+const JodetailSearch: React.FC = ({ pickOrders, printerCombo }) => {
const { t } = useTranslation("jo");
const { data: session } = useSession() as { data: SessionWithTokens | null };
const currentUserId = session?.id ? parseInt(session.id) : undefined;
@@ -65,7 +66,7 @@ const [hasAssignedJobOrders, setHasAssignedJobOrders] = useState(false);
const [hasDataTab0, setHasDataTab0] = useState(false);
const [hasDataTab1, setHasDataTab1] = useState(false);
const hasAnyAssignedData = hasDataTab0 || hasDataTab1;
-const [printers, setPrinters] = useState([]);
+//const [printers, setPrinters] = useState([]);
const [hideCompletedUntilNext, setHideCompletedUntilNext] = useState(
typeof window !== 'undefined' && localStorage.getItem('hideCompletedUntilNext') === 'true'
);
@@ -95,6 +96,7 @@ const [printers, setPrinters] = useState([]);
window.removeEventListener('jobOrderDataStatus', handleJobOrderDataChange as EventListener);
};
}, []);
+ /*
useEffect(() => {
const fetchPrinters = async () => {
try {
@@ -108,6 +110,7 @@ const [printers, setPrinters] = useState([]);
};
fetchPrinters();
}, []);
+ */
useEffect(() => {
const onAssigned = () => {
localStorage.removeItem('hideCompletedUntilNext');
@@ -482,7 +485,7 @@ const [printers, setPrinters] = useState([]);
p: 2
}}>
{tabIndex === 0 && }
- {tabIndex === 1 && }
+ {tabIndex === 1 && }
{tabIndex === 2 && }
{/* {tabIndex === 3 && } */}
diff --git a/src/components/Jodetail/completeJobOrderRecord.tsx b/src/components/Jodetail/completeJobOrderRecord.tsx
index 31213f3..f54d545 100644
--- a/src/components/Jodetail/completeJobOrderRecord.tsx
+++ b/src/components/Jodetail/completeJobOrderRecord.tsx
@@ -101,7 +101,7 @@ interface LotDetail {
uomDesc: string;
}
-const CompleteJobOrderRecord: React.FC = ({ filterArgs ,printerCombo=[]}) => {
+const CompleteJobOrderRecord: React.FC = ({ filterArgs ,printerCombo}) => {
const { t } = useTranslation("jo");
const router = useRouter();
const { data: session } = useSession() as { data: SessionWithTokens | null };
@@ -131,6 +131,7 @@ const CompleteJobOrderRecord: React.FC = ({ filterArgs ,printerCombo=[]})
};
const availablePrinters = useMemo(() => {
if (printerCombo.length === 0) {
+ console.log("No printers available, using default demo printer");
return [defaultDemoPrinter];
}
return printerCombo;
diff --git a/src/components/ProductionProcess/ProductionProcessJobOrderDetail.tsx b/src/components/ProductionProcess/ProductionProcessJobOrderDetail.tsx
index c51754c..56635ff 100644
--- a/src/components/ProductionProcess/ProductionProcessJobOrderDetail.tsx
+++ b/src/components/ProductionProcess/ProductionProcessJobOrderDetail.tsx
@@ -221,10 +221,13 @@ const handleRelease = useCallback(() => {
diff --git a/src/components/ProductionProcess/ProductionProcessStepExecution.tsx b/src/components/ProductionProcess/ProductionProcessStepExecution.tsx
index 086651d..c8d8fb3 100644
--- a/src/components/ProductionProcess/ProductionProcessStepExecution.tsx
+++ b/src/components/ProductionProcess/ProductionProcessStepExecution.tsx
@@ -276,7 +276,7 @@ const ProductionProcessStepExecution: React.FC
{/* By-product */}
-
+ {/*
{t("By-product")}
@@ -293,7 +293,7 @@ const ProductionProcessStepExecution: React.FC{lineDetail.byproductUom || "-"}
-
+ */}
{/* Defect */}
@@ -398,9 +398,10 @@ const ProductionProcessStepExecution: React.FC
- {t("Type")}
- {t("Quantity")}
- {t("Unit")}
+ {t("Type")}
+ {t("Quantity")}
+ {t("Unit")}
+ {t(" ")}
@@ -432,8 +433,13 @@ const ProductionProcessStepExecution: React.FC
+
+ {t("Description")}
+
+
{/* byproduct */}
+ {/*
@@ -464,11 +470,11 @@ const ProductionProcessStepExecution: React.FC
-
- {/* defect */}
+ */}
+ {/* defect 1 */}
- {t("Defect")}
+ {t("Defect")}{t("(1)")}
+
+ setOutputData({
+ ...outputData,
+ defectUom: e.target.value
+ })}
+ />
+
+
+ {/* defect 2 */}
+
+
+ {t("Defect")}{t("(2)")}
+
+
+ setOutputData({
+ ...outputData,
+ defectQty: parseInt(e.target.value) || 0
+ })}
+ />
+
+
+ setOutputData({
+ ...outputData,
+ defectUom: e.target.value
+ })}
+ />
+
+
+ setOutputData({
+ ...outputData,
+ defectUom: e.target.value
+ })}
+ />
+
+
+ {/* defect 3 */}
+
+
+ {t("Defect")}{t("(3)")}
+
+
+ setOutputData({
+ ...outputData,
+ defectQty: parseInt(e.target.value) || 0
+ })}
+ />
+
+
+ setOutputData({
+ ...outputData,
+ defectUom: e.target.value
+ })}
+ />
+
+
+ setOutputData({
+ ...outputData,
+ defectUom: e.target.value
+ })}
+ />
+
-
{/* scrap */}
diff --git a/src/i18n/zh/common.json b/src/i18n/zh/common.json
index 0458ee3..15ddb61 100644
--- a/src/i18n/zh/common.json
+++ b/src/i18n/zh/common.json
@@ -103,6 +103,7 @@
"Stop Scan": "停止掃碼",
"Scan Result": "掃碼結果",
"Expiry Date": "有效期",
+ "Is Dark | Dense | Float| Scrap Rate| Allergic Substance": "顔色深淺度 | 濃淡 | 浮沉 | 損耗率 | 過敏原",
"Pick Order Code": "提料單編號",
"Target Date": "需求日期",
"Lot Required Pick Qty": "批號需求數量",
@@ -116,10 +117,10 @@
"By-product": "副產品",
"Complete Step": "完成步驟",
- "Defect": "缺陷",
- "Output from Process": "流程輸出",
+ "Defect": "不良品",
+ "Output from Process": "工序產出",
"Quantity": "數量",
- "Scrap": "廢料",
+ "Scrap": "損耗",
"Unit": "單位",
"Back to List": "返回列表",
"Production Output Data Entry": "生產輸出數據輸入",
@@ -166,7 +167,7 @@
"View": "查看",
"Back": "返回",
"BoM Material": "物料清單",
- "Is Dark | Dense | Float": "顔色深淺度 | 濃淡 | 浮沉",
+ "Is Dark | Dense | Float | Scrap Rate | Allergic Substance": "顔色深淺度 | 濃淡 | 浮沉 | 損耗率 | 過敏原",
"Item Code": "物料編號",
"Item Name": "物料名稱",
"Job Order Info": "工單信息",