Browse Source

update

master
CANCERYS\kw093 2 months ago
parent
commit
6915e01dae
8 changed files with 54 additions and 15 deletions
  1. +2
    -2
      src/app/(main)/jodetail/page.tsx
  2. +2
    -2
      src/components/Jodetail/FinishedGoodSearchWrapper.tsx
  3. +3
    -3
      src/components/Jodetail/JobPickExecution.tsx
  4. +3
    -3
      src/components/Jodetail/JobPickExecutionsecondscan.tsx
  5. +2
    -2
      src/components/Jodetail/JodetailSearch.tsx
  6. +1
    -1
      src/components/NavigationContent/NavigationContent.tsx
  7. +15
    -1
      src/i18n/zh/common.json
  8. +26
    -1
      src/i18n/zh/jo.json

+ 2
- 2
src/app/(main)/jodetail/page.tsx View File

@@ -7,7 +7,7 @@ import React, { Suspense } from "react";
import GeneralLoading from "@/components/General/GeneralLoading"; import GeneralLoading from "@/components/General/GeneralLoading";


export const metadata: Metadata = { export const metadata: Metadata = {
title: "Job Order detail"
title: "Job Order Detail"
} }


const jo: React.FC = async () => { const jo: React.FC = async () => {
@@ -24,7 +24,7 @@ const jo: React.FC = async () => {
rowGap={2} rowGap={2}
> >
<Typography variant="h4" marginInlineEnd={2}> <Typography variant="h4" marginInlineEnd={2}>
{t("Job Order detail")}
{t("Job Order Detail")}
</Typography> </Typography>
</Stack> </Stack>
<I18nProvider namespaces={["jo", "common"]}> <I18nProvider namespaces={["jo", "common"]}>


+ 2
- 2
src/components/Jodetail/FinishedGoodSearchWrapper.tsx View File

@@ -1,6 +1,6 @@
import { fetchPickOrders } from "@/app/api/pickOrder"; import { fetchPickOrders } from "@/app/api/pickOrder";
import GeneralLoading from "../General/GeneralLoading"; import GeneralLoading from "../General/GeneralLoading";
import PickOrderSearch from "./FinishedGoodSearch";
import PickOrderSearch from "./FinishedGoodSearchWrapper";


interface SubComponents { interface SubComponents {
Loading: typeof GeneralLoading; Loading: typeof GeneralLoading;
@@ -18,7 +18,7 @@ const FinishedGoodSearchWrapper: React.FC & SubComponents = async () => {
}), }),
]); ]);


return <PickOrderSearch pickOrders={pickOrders} />;
return <FinishedGoodSearchWrapper pickOrders={pickOrders} />;
}; };


FinishedGoodSearchWrapper.Loading = GeneralLoading; FinishedGoodSearchWrapper.Loading = GeneralLoading;


+ 3
- 3
src/components/Jodetail/JobPickExecution.tsx View File

@@ -68,7 +68,7 @@ const QrCodeModal: React.FC<{
onQrCodeSubmit: (lotNo: string) => void; onQrCodeSubmit: (lotNo: string) => void;
combinedLotData: any[]; combinedLotData: any[];
}> = ({ open, onClose, lot, onQrCodeSubmit, combinedLotData }) => { }> = ({ open, onClose, lot, onQrCodeSubmit, combinedLotData }) => {
const { t } = useTranslation("pickOrder");
const { t } = useTranslation("jo");
const { values: qrValues, isScanning, startScan, stopScan, resetScan } = useQrCodeScannerContext(); const { values: qrValues, isScanning, startScan, stopScan, resetScan } = useQrCodeScannerContext();
const [manualInput, setManualInput] = useState<string>(''); const [manualInput, setManualInput] = useState<string>('');
@@ -315,7 +315,7 @@ const QrCodeModal: React.FC<{
}; };


const JobPickExecution: React.FC<Props> = ({ filterArgs }) => { const JobPickExecution: React.FC<Props> = ({ filterArgs }) => {
const { t } = useTranslation("pickOrder");
const { t } = useTranslation("jo");
const router = useRouter(); const router = useRouter();
const { data: session } = useSession() as { data: SessionWithTokens | null }; const { data: session } = useSession() as { data: SessionWithTokens | null };
@@ -1301,7 +1301,7 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs }) => {
<TableCell>{t("Route")}</TableCell> <TableCell>{t("Route")}</TableCell>
<TableCell>{t("Item Code")}</TableCell> <TableCell>{t("Item Code")}</TableCell>
<TableCell>{t("Item Name")}</TableCell> <TableCell>{t("Item Name")}</TableCell>
<TableCell>{t("Lot#")}</TableCell>
<TableCell>{t("Lot No")}</TableCell>
<TableCell align="right">{t("Lot Required Pick Qty")}</TableCell> <TableCell align="right">{t("Lot Required Pick Qty")}</TableCell>
<TableCell align="center">{t("Scan Result")}</TableCell> <TableCell align="center">{t("Scan Result")}</TableCell>
<TableCell align="center">{t("Submit Required Pick Qty")}</TableCell> <TableCell align="center">{t("Submit Required Pick Qty")}</TableCell>


+ 3
- 3
src/components/Jodetail/JobPickExecutionsecondscan.tsx View File

@@ -61,7 +61,7 @@ const QrCodeModal: React.FC<{
onQrCodeSubmit: (lotNo: string) => void; onQrCodeSubmit: (lotNo: string) => void;
combinedLotData: any[]; combinedLotData: any[];
}> = ({ open, onClose, lot, onQrCodeSubmit, combinedLotData }) => { }> = ({ open, onClose, lot, onQrCodeSubmit, combinedLotData }) => {
const { t } = useTranslation("pickOrder");
const { t } = useTranslation("jo");
const { values: qrValues, isScanning, startScan, stopScan, resetScan } = useQrCodeScannerContext(); const { values: qrValues, isScanning, startScan, stopScan, resetScan } = useQrCodeScannerContext();
const [manualInput, setManualInput] = useState<string>(''); const [manualInput, setManualInput] = useState<string>('');
@@ -308,7 +308,7 @@ const QrCodeModal: React.FC<{
}; };


const JobPickExecution: React.FC<Props> = ({ filterArgs }) => { const JobPickExecution: React.FC<Props> = ({ filterArgs }) => {
const { t } = useTranslation("pickOrder");
const { t } = useTranslation("jo");
const router = useRouter(); const router = useRouter();
const { data: session } = useSession() as { data: SessionWithTokens | null }; const { data: session } = useSession() as { data: SessionWithTokens | null };
@@ -1082,7 +1082,7 @@ const paginatedData = useMemo(() => {
<TableCell>{t("Route")}</TableCell> <TableCell>{t("Route")}</TableCell>
<TableCell>{t("Item Code")}</TableCell> <TableCell>{t("Item Code")}</TableCell>
<TableCell>{t("Item Name")}</TableCell> <TableCell>{t("Item Name")}</TableCell>
<TableCell>{t("Lot#")}</TableCell>
<TableCell>{t("Lot No")}</TableCell>
<TableCell align="right">{t("Lot Required Pick Qty")}</TableCell> <TableCell align="right">{t("Lot Required Pick Qty")}</TableCell>
<TableCell align="center">{t("Scan Result")}</TableCell> <TableCell align="center">{t("Scan Result")}</TableCell>
<TableCell align="center">{t("Submit Required Pick Qty")}</TableCell> <TableCell align="center">{t("Submit Required Pick Qty")}</TableCell>


+ 2
- 2
src/components/Jodetail/JodetailSearch.tsx View File

@@ -43,7 +43,7 @@ type SearchQuery = Partial<
type SearchParamNames = keyof SearchQuery; type SearchParamNames = keyof SearchQuery;


const JodetailSearch: React.FC<Props> = ({ pickOrders }) => { const JodetailSearch: React.FC<Props> = ({ pickOrders }) => {
const { t } = useTranslation("pickOrder");
const { t } = useTranslation("jo");
const { data: session } = useSession() as { data: SessionWithTokens | null }; const { data: session } = useSession() as { data: SessionWithTokens | null };
const currentUserId = session?.id ? parseInt(session.id) : undefined; const currentUserId = session?.id ? parseInt(session.id) : undefined;


@@ -422,7 +422,7 @@ const [isLoadingUnassigned, setIsLoadingUnassigned] = useState(false);
}}> }}>
<Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable"> <Tabs value={tabIndex} onChange={handleTabChange} variant="scrollable">
<Tab label={t("Pick Order Detail")} iconPosition="end" /> <Tab label={t("Pick Order Detail")} iconPosition="end" />
<Tab label={t("Job order match")} iconPosition="end" />
<Tab label={t("Job Order Match")} iconPosition="end" />
<Tab label={t("Finished Job Order Record")} iconPosition="end" /> <Tab label={t("Finished Job Order Record")} iconPosition="end" />
</Tabs> </Tabs>


+ 1
- 1
src/components/NavigationContent/NavigationContent.tsx View File

@@ -210,7 +210,7 @@ const NavigationContent: React.FC = () => {
}, },
{ {
icon: <RequestQuote />, icon: <RequestQuote />,
label: "Job Order detail",
label: "Job Order Detail",
path: "/jodetail", path: "/jodetail",
}, },
], ],


+ 15
- 1
src/i18n/zh/common.json View File

@@ -89,6 +89,20 @@
"Put Away Scan": "上架掃碼", "Put Away Scan": "上架掃碼",
"Finished Good Order": "成品出倉", "Finished Good Order": "成品出倉",
"finishedGood": "成品", "finishedGood": "成品",
"Router": "執貨路線"
"Router": "執貨路線",
"Job Order Detail": "工單細節",
"No data available": "沒有資料",
"Start Scan": "開始掃碼",
"Stop Scan": "停止掃碼",
"Scan Result": "掃碼結果",
"Expiry Date": "有效期",
"Pick Order Code": "提料單編號",
"Target Date": "需求日期",
"Lot Required Pick Qty": "批號需求數量",
"Job Order Match": "工單匹配",
"All Pick Order Lots": "所有提料單批號",
"Row per page": "每頁行數",
"No data available": "沒有資料",
"jodetail": "工單細節"


} }

+ 26
- 1
src/i18n/zh/jo.json View File

@@ -17,5 +17,30 @@
"Planning": "計劃中", "Planning": "計劃中",
"Scanned": "已掃碼", "Scanned": "已掃碼",
"Scan Status": "掃碼狀態", "Scan Status": "掃碼狀態",
"Start Job Order": "開始工單"
"Start Job Order": "開始工單",
"Job Order Detail": "工單細節",
"Pick Order Detail": "提料單細節",
"Finished Job Order Record": "已完成工單記錄",
"Index": "索引",
"Route": "路線",
"Item Code": "物料編號",
"Item Name": "物料名稱",
"Qty": "數量",
"Unit": "單位",
"Location": "位置",
"Scan Result": "掃碼結果",
"Expiry Date": "有效期",
"Pick Order Code": "提料單編號",
"Target Date": "需求日期",
"Lot Required Pick Qty": "批號需求數量",
"Job Order Match": "工單匹配",
"Lot No": "批號",
"Submit Required Pick Qty": "提交需求數量",
"All Pick Order Lots": "所有提料單批號",
"Row per page": "每頁行數",
"No data available": "沒有資料",
"jodetail": "工單細節",
"Start QR Scan": "開始QR掃碼",
"Stop QR Scan": "停止QR掃碼",
"Rows per page": "每頁行數"
} }

Loading…
Cancel
Save