| @@ -10,13 +10,15 @@ import Link from "next/link"; | |||||
| import { Suspense } from "react"; | import { Suspense } from "react"; | ||||
| import RoughScheduleLoading from "@/components/RoughScheduleSetting/RoughScheduleLoading"; | import RoughScheduleLoading from "@/components/RoughScheduleSetting/RoughScheduleLoading"; | ||||
| import RoughScheduleSetting from "@/components/RoughScheduleSetting/RoughScheduleSetting"; | import RoughScheduleSetting from "@/components/RoughScheduleSetting/RoughScheduleSetting"; | ||||
| import RoughScheduleSettingWrapper from "@/components/RoughScheduleSetting/RoughScheduleSettingWrapper"; | |||||
| import { I18nProvider } from "@/i18n"; | import { I18nProvider } from "@/i18n"; | ||||
| export const metadata: Metadata = { | export const metadata: Metadata = { | ||||
| title: "Demand Forecast Setting", | title: "Demand Forecast Setting", | ||||
| }; | }; | ||||
| const roughScheduleSetting: React.FC = async () => { | const roughScheduleSetting: React.FC = async () => { | ||||
| const project = TypeEnum.PRODUCT | |||||
| //const project = TypeEnum.PRODUCT | |||||
| const project = "common" | |||||
| const { t } = await getServerI18n(project); | const { t } = await getServerI18n(project); | ||||
| // preloadClaims(); | // preloadClaims(); | ||||
| @@ -40,11 +42,11 @@ const roughScheduleSetting: React.FC = async () => { | |||||
| {t("Create product")} | {t("Create product")} | ||||
| </Button> */} | </Button> */} | ||||
| </Stack> | </Stack> | ||||
| <I18nProvider namespaces={[ "common", "project"]}> | |||||
| <Suspense fallback={<RoughScheduleLoading.Loading />}> | |||||
| <RoughScheduleSetting /> | |||||
| </Suspense> | |||||
| <Suspense fallback={<RoughScheduleSettingWrapper.Loading />}> | |||||
| <I18nProvider namespaces={[ "common", "project",]}> | |||||
| <RoughScheduleSetting items={[]} /> | |||||
| </I18nProvider> | </I18nProvider> | ||||
| </Suspense> | |||||
| </> | </> | ||||
| ); | ); | ||||
| }; | }; | ||||
| @@ -7,6 +7,10 @@ import { BASE_API_URL } from "../../../../config/api"; | |||||
| export { default } from "../../../../components/CreateEquipmentType/CreateEquipmentType"; | export { default } from "../../../../components/CreateEquipmentType/CreateEquipmentType"; | ||||
| // import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | // import { TypeInputs, UomInputs, WeightUnitInputs } from "./actions"; | ||||
| export type EquipmentTypeResultResponse = { | |||||
| records: EquipmentTypeResult[]; | |||||
| total: number; | |||||
| } | |||||
| export type EquipmentTypeResult = { | export type EquipmentTypeResult = { | ||||
| id: string | number | id: string | number | ||||
| @@ -42,4 +42,4 @@ export const saveItem = async (data: CreateItemInputs) => { | |||||
| }); | }); | ||||
| revalidateTag("items"); | revalidateTag("items"); | ||||
| return item | return item | ||||
| }; | |||||
| }; | |||||
| @@ -18,6 +18,11 @@ export type ItemQc = { | |||||
| isActive: boolean | undefined; | isActive: boolean | undefined; | ||||
| } | } | ||||
| export type ItemsResultResponse = { | |||||
| records: ItemsResult[]; | |||||
| total: number; | |||||
| } | |||||
| export type ItemsResult = { | export type ItemsResult = { | ||||
| id: string | number | id: string | number | ||||
| code: string; | code: string; | ||||
| @@ -12,7 +12,7 @@ import PendingInspectionChart from "./chart/PendingInspectionChart"; | |||||
| import PendingStorageChart from "./chart/PendingStorageChart"; | import PendingStorageChart from "./chart/PendingStorageChart"; | ||||
| import ApplicationCompletionChart from "./chart/ApplicationCompletionChart"; | import ApplicationCompletionChart from "./chart/ApplicationCompletionChart"; | ||||
| import OrderCompletionChart from "./chart/OrderCompletionChart"; | import OrderCompletionChart from "./chart/OrderCompletionChart"; | ||||
| import DashboardBox from "./DashboardBox"; | |||||
| import DashboardBox from "./Dashboardbox"; | |||||
| import CollapsibleCard from "./CollapsibleCard"; | import CollapsibleCard from "./CollapsibleCard"; | ||||
| type Props = {}; | type Props = {}; | ||||
| @@ -4,7 +4,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; | |||||
| import { useRouter, useSearchParams } from "next/navigation"; | import { useRouter, useSearchParams } from "next/navigation"; | ||||
| import { useTranslation } from "react-i18next"; | import { useTranslation } from "react-i18next"; | ||||
| import { | import { | ||||
| SaveDetailSchedule, | |||||
| //SaveDetailSchedule, | |||||
| saveItem, | saveItem, | ||||
| } from "@/app/api/settings/item/actions"; | } from "@/app/api/settings/item/actions"; | ||||
| import { | import { | ||||
| @@ -157,7 +157,7 @@ const DetailScheduleDetailView: React.FC<Props> = ({ | |||||
| {/* </Typography>*/} | {/* </Typography>*/} | ||||
| {/*</Grid>*/} | {/*</Grid>*/} | ||||
| <DetailInfoCard | <DetailInfoCard | ||||
| recordDetails={formProps.formState.defaultValues} | |||||
| recordDetails={formProps.formState.defaultValues as SaveDetailSchedule} | |||||
| isEditing={isEdit} | isEditing={isEdit} | ||||
| /> | /> | ||||
| <Stack | <Stack | ||||
| @@ -24,6 +24,7 @@ import { GridRenderCellParams } from "@mui/x-data-grid"; | |||||
| type Props = { | type Props = { | ||||
| apiRef: MutableRefObject<GridApiCommunity> | apiRef: MutableRefObject<GridApiCommunity> | ||||
| isEdit: boolean | |||||
| }; | }; | ||||
| type EntryError = | type EntryError = | ||||
| | { | | { | ||||
| @@ -214,43 +215,81 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
| { id: 1, code: "MH0040", type: "Material", name: "大豆油(1噸/桶)", inStockQty: 54.44 , | { id: 1, code: "MH0040", type: "Material", name: "大豆油(1噸/桶)", inStockQty: 54.44 , | ||||
| purchaseQty1: 972.12, purchaseQty2: 972.12, purchaseQty3: 972.12, | purchaseQty1: 972.12, purchaseQty2: 972.12, purchaseQty3: 972.12, | ||||
| purchaseQty4: 972.12, purchaseQty5: 972.12, purchaseQty6: 972.12, | purchaseQty4: 972.12, purchaseQty5: 972.12, purchaseQty6: 972.12, | ||||
| purchaseQty7: 972.12, overallPurchaseQty: 6804.84 | |||||
| purchaseQty7: 972.12, overallPurchaseQty: 6804.84, | |||||
| purchaseQty: 972.12 | |||||
| }, | }, | ||||
| { id: 2, code: "GI3236", type: "Material", name: "清水(煮過牛腩)", inStockQty: 317.52 , | { id: 2, code: "GI3236", type: "Material", name: "清水(煮過牛腩)", inStockQty: 317.52 , | ||||
| purchaseQty1: 3175.2, purchaseQty2: 3175.2, purchaseQty3: 3175.2, | purchaseQty1: 3175.2, purchaseQty2: 3175.2, purchaseQty3: 3175.2, | ||||
| purchaseQty4: 3175.2, purchaseQty5: 3175.2, purchaseQty6: 3175.2, | purchaseQty4: 3175.2, purchaseQty5: 3175.2, purchaseQty6: 3175.2, | ||||
| purchaseQty7: 3175.2, overallPurchaseQty: 22226.4 | |||||
| purchaseQty7: 3175.2, overallPurchaseQty: 22226.4, | |||||
| purchaseQty: 3175.2 | |||||
| }, | }, | ||||
| { id: 3, code: "MG1700", type: "Material", name: "STERILTOM 意大利茄粒", inStockQty: 9.00 , | { id: 3, code: "MG1700", type: "Material", name: "STERILTOM 意大利茄粒", inStockQty: 9.00 , | ||||
| purchaseQty1: 90, purchaseQty2: 90, purchaseQty3: 90, | purchaseQty1: 90, purchaseQty2: 90, purchaseQty3: 90, | ||||
| purchaseQty4: 90, purchaseQty5: 90, purchaseQty6: 90, | purchaseQty4: 90, purchaseQty5: 90, purchaseQty6: 90, | ||||
| purchaseQty7: 90, overallPurchaseQty: 630 | |||||
| purchaseQty7: 90, overallPurchaseQty: 630, | |||||
| purchaseQty: 90 | |||||
| }, | }, | ||||
| { id: 4, code: "FA0533", type: "Material", name: "乾蔥茸", inStockQty: 6.04 , | { id: 4, code: "FA0533", type: "Material", name: "乾蔥茸", inStockQty: 6.04 , | ||||
| purchaseQty1: 60.4, purchaseQty2: 60.4, purchaseQty3: 60.4, | purchaseQty1: 60.4, purchaseQty2: 60.4, purchaseQty3: 60.4, | ||||
| purchaseQty4: 60.4, purchaseQty5: 60.4, purchaseQty6: 60.4, | purchaseQty4: 60.4, purchaseQty5: 60.4, purchaseQty6: 60.4, | ||||
| purchaseQty7: 60.4, overallPurchaseQty: 422.8 | |||||
| purchaseQty7: 60.4, overallPurchaseQty: 422.8, | |||||
| purchaseQty: 60.4 | |||||
| }, | }, | ||||
| { id: 5, code: "FA0210", type: "Material", name: "薑茸", inStockQty: 6.04 , | { id: 5, code: "FA0210", type: "Material", name: "薑茸", inStockQty: 6.04 , | ||||
| purchaseQty1: 66.45, purchaseQty2: 66.45, purchaseQty3: 66.45, | purchaseQty1: 66.45, purchaseQty2: 66.45, purchaseQty3: 66.45, | ||||
| purchaseQty4: 66.45, purchaseQty5: 66.45, purchaseQty6: 66.45, | purchaseQty4: 66.45, purchaseQty5: 66.45, purchaseQty6: 66.45, | ||||
| purchaseQty7: 66.45, overallPurchaseQty: 465.15 | |||||
| purchaseQty7: 66.45, overallPurchaseQty: 465.15, | |||||
| purchaseQty: 66.45 | |||||
| }, | }, | ||||
| { id: 6, code: "FA0608", type: "Material", name: "粗蒜茸", inStockQty: 6.04 , | { id: 6, code: "FA0608", type: "Material", name: "粗蒜茸", inStockQty: 6.04 , | ||||
| purchaseQty1: 78.55, purchaseQty2: 78.55, purchaseQty3: 78.55, | purchaseQty1: 78.55, purchaseQty2: 78.55, purchaseQty3: 78.55, | ||||
| purchaseQty4: 78.55, purchaseQty5: 78.55, purchaseQty6: 78.55, | purchaseQty4: 78.55, purchaseQty5: 78.55, purchaseQty6: 78.55, | ||||
| purchaseQty7: 78.55, overallPurchaseQty: 549.85 | |||||
| purchaseQty7: 78.55, overallPurchaseQty: 549.85, | |||||
| purchaseQty: 78.55 | |||||
| }, | |||||
| { id: 7, code: "FA0056", type: "Material", name: "洋蔥肉", inStockQty: 241.98 , | |||||
| purchaseQty1: 2419.8, purchaseQty2: 2419.8, purchaseQty3: 2419.8, | |||||
| purchaseQty4: 2419.8, purchaseQty5: 2419.8, purchaseQty6: 2419.8, | |||||
| purchaseQty7: 2419.8, overallPurchaseQty: 17038.4, | |||||
| purchaseQty: 2419.8 | |||||
| }, | |||||
| { id: 8, code: "PP1188", type: "Material", name: "咖喱膽", inStockQty: 36.00 , | |||||
| purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
| purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
| purchaseQty7: 0, overallPurchaseQty: 0, | |||||
| purchaseQty: 0 | |||||
| }, | |||||
| { id: 11, code: "NA0476", type: "Material", name: "2磅份量三邊覆合袋 (0.1x225x260mm)個計", inStockQty: 600.00 , | |||||
| purchaseQty1: 6000, purchaseQty2: 6000, purchaseQty3: 6000, | |||||
| purchaseQty4: 6000, purchaseQty5: 6000, purchaseQty6: 6000, | |||||
| purchaseQty7: 6000, overallPurchaseQty: 42000, | |||||
| purchaseQty: 6000 | |||||
| }, | |||||
| { id: 12, code: "MH0040",type: "Material", name: "大豆油(1噸/桶)", inStockQty: 0, | |||||
| purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
| purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
| purchaseQty7: 0, overallPurchaseQty: 0, | |||||
| purchaseQty: 0 | |||||
| }, | |||||
| { id: 13, code: "FA0161",type: "Material", name: "洋蔥粒", inStockQty: 0, | |||||
| purchaseQty1: 28.15, purchaseQty2: 28.15, purchaseQty3: 28.15, | |||||
| purchaseQty4: 28.15, purchaseQty5: 28.15, purchaseQty6: 28.15, | |||||
| purchaseQty7: 28.15, overallPurchaseQty: 197.05, | |||||
| purchaseQty: 28.15 | |||||
| }, | |||||
| { id: 14, code: "MG1288", type: "Material",name: "炸紅蔥頭", inStockQty: 0, | |||||
| purchaseQty1: 0, purchaseQty2: 0, purchaseQty3: 0, | |||||
| purchaseQty4: 0, purchaseQty5: 0, purchaseQty6: 0, | |||||
| purchaseQty7: 0, overallPurchaseQty: 0, | |||||
| purchaseQty: 0 | |||||
| }, | |||||
| { id: 15, code: "MG0066", type: "Material",name: "咖哩料(5斤x16包+2斤/包)", inStockQty: 0, | |||||
| purchaseQty1: 241.98, purchaseQty2: 241.98, purchaseQty3: 241.98, | |||||
| purchaseQty4: 241.98, purchaseQty5: 241.98, purchaseQty6: 241.98, | |||||
| purchaseQty7: 241.98, overallPurchaseQty: 17038.4, | |||||
| purchaseQty: 241.98 | |||||
| }, | }, | ||||
| { id: 7, code: "FA0056", type: "Material", name: "洋蔥肉", inStockQty: 241.98 , purchaseQty: 2419.8 }, | |||||
| { id: 8, code: "PP1188", type: "Material", name: "咖喱膽", inStockQty: 36.00 , purchaseQty: 0 }, | |||||
| { id: 9, code: "PP8001", type: "Material", name: "咖哩汁箱料粉", inStockQty: 77.42 , purchaseQty: 774.2 }, | |||||
| { id: 10, code: "PP1096", type: "Material", name: "白麵撈", inStockQty: 60.00 , purchaseQty: 0 }, | |||||
| { id: 11, code: "NA0476", type: "Material", name: "2磅份量三邊覆合袋 (0.1x225x260mm)個計", inStockQty: 600.00 , purchaseQty: 6000 }, | |||||
| { id: 12, code: "MH0040",type: "Material", name: "大豆油(1噸/桶)", inStockQty: 0, purchaseQty: 972.12 }, | |||||
| { id: 13, code: "FA0161",type: "Material", name: "洋蔥粒", inStockQty: 0, purchaseQty: 28.15 }, | |||||
| { id: 14, code: "MG1288", type: "Material",name: "炸紅蔥頭", inStockQty: 0, purchaseQty: 6.05 }, | |||||
| { id: 15, code: "MG0066", type: "Material",name: "咖哩料(5斤x16包+2斤/包)", inStockQty: 0, purchaseQty: 241.98 }, | |||||
| { id: 16, code: "MH0040", type: "Material",name: "星加坡綠富貴花牌幼白麵粉 (50磅/包)", inStockQty: 0, purchaseQty: 250.00 }, | |||||
| ], | ], | ||||
| [] | [] | ||||
| ); | ); | ||||
| @@ -298,7 +337,7 @@ const ViewByBomDetails: React.FC<Props> = ({ apiRef, isEdit }) => { | |||||
| }, | }, | ||||
| ]) | ]) | ||||
| const updatePagingController = (updatedObj) => { | |||||
| const updatePagingController = (updatedObj: { index: number, pageNum: number, pageSize: number, totalCount: number }) => { | |||||
| setPagingController((prevState) => { | setPagingController((prevState) => { | ||||
| return prevState.map((item, index) => { | return prevState.map((item, index) => { | ||||
| if (index === updatedObj?.index){ | if (index === updatedObj?.index){ | ||||
| @@ -77,11 +77,17 @@ const EquipmentSearch: React.FC<Props> = ({ equipments }) => { | |||||
| [filteredEquipments] | [filteredEquipments] | ||||
| ); | ); | ||||
| interface ApiResponse<T> { | |||||
| records: T[]; | |||||
| total: number; | |||||
| } | |||||
| const refetchData = useCallback( | const refetchData = useCallback( | ||||
| async (filterObj: SearchQuery) => { | async (filterObj: SearchQuery) => { | ||||
| const authHeader = axiosInstance.defaults.headers["Authorization"]; | const authHeader = axiosInstance.defaults.headers["Authorization"]; | ||||
| if (!authHeader) { | if (!authHeader) { | ||||
| return; // Exit the function if the token is not set | |||||
| return; | |||||
| } | } | ||||
| const params = { | const params = { | ||||
| pageNum: pagingController.pageNum, | pageNum: pagingController.pageNum, | ||||
| @@ -89,21 +95,21 @@ const EquipmentSearch: React.FC<Props> = ({ equipments }) => { | |||||
| ...filterObj, | ...filterObj, | ||||
| }; | }; | ||||
| try { | try { | ||||
| const response = await axiosInstance.get<EquipmentResult[]>( | |||||
| const response = await axiosInstance.get<ApiResponse<EquipmentResult>>( | |||||
| `${NEXT_PUBLIC_API_URL}/Equipment/getRecordByPage`, | `${NEXT_PUBLIC_API_URL}/Equipment/getRecordByPage`, | ||||
| { params } | { params } | ||||
| ); | ); | ||||
| console.log(response); | console.log(response); | ||||
| if (response.status == 200) { | if (response.status == 200) { | ||||
| setFilteredEquipments(response.data.records); | setFilteredEquipments(response.data.records); | ||||
| setTotalCount(response.data.total) | |||||
| return response; // Return the data from the response | |||||
| setTotalCount(response.data.total); | |||||
| return response; | |||||
| } else { | } else { | ||||
| throw "400"; | throw "400"; | ||||
| } | } | ||||
| } catch (error) { | } catch (error) { | ||||
| console.error("Error fetching equipment types:", error); | console.error("Error fetching equipment types:", error); | ||||
| throw error; // Rethrow the error for further handling | |||||
| throw error; | |||||
| } | } | ||||
| }, | }, | ||||
| [axiosInstance, pagingController.pageNum, pagingController.pageSize] | [axiosInstance, pagingController.pageNum, pagingController.pageSize] | ||||
| @@ -12,7 +12,7 @@ import { TypeEnum } from "@/app/utils/typeEnum"; | |||||
| import axios from "axios"; | import axios from "axios"; | ||||
| import { BASE_API_URL, NEXT_PUBLIC_API_URL } from "@/config/api"; | import { BASE_API_URL, NEXT_PUBLIC_API_URL } from "@/config/api"; | ||||
| import axiosInstance from "@/app/(main)/axios/axiosInstance"; | import axiosInstance from "@/app/(main)/axios/axiosInstance"; | ||||
| import { EquipmentTypeResultResponse } from "@/app/api/settings/equipmentType"; | |||||
| type Props = { | type Props = { | ||||
| equipmentTypes: EquipmentTypeResult[]; | equipmentTypes: EquipmentTypeResult[]; | ||||
| }; | }; | ||||
| @@ -85,7 +85,7 @@ const EquipmentTypeSearch: React.FC<Props> = ({ equipmentTypes }) => { | |||||
| ...filterObj, | ...filterObj, | ||||
| }; | }; | ||||
| try { | try { | ||||
| const response = await axiosInstance.get<EquipmentTypeResult[]>( | |||||
| const response = await axiosInstance.get<EquipmentTypeResultResponse>( | |||||
| `${NEXT_PUBLIC_API_URL}/EquipmentType/getRecordByPage`, | `${NEXT_PUBLIC_API_URL}/EquipmentType/getRecordByPage`, | ||||
| { params } | { params } | ||||
| ); | ); | ||||
| @@ -29,8 +29,8 @@ import { QcItemWithChecks } from "@/app/api/qc"; | |||||
| import { GridEditInputCell } from "@mui/x-data-grid"; | import { GridEditInputCell } from "@mui/x-data-grid"; | ||||
| import { StockInLine } from "@/app/api/po"; | import { StockInLine } from "@/app/api/po"; | ||||
| import { stockInLineStatusMap } from "@/app/utils/formatUtil"; | import { stockInLineStatusMap } from "@/app/utils/formatUtil"; | ||||
| import { PickOrderApprovalInput } from "@/app/api/pickorder/actions"; | |||||
| import { StockOutLine } from "@/app/api/pickorder"; | |||||
| import { PickOrderApprovalInput } from "@/app/api/pickOrder/actions"; | |||||
| import { StockOutLine } from "@/app/api/pickOrder"; | |||||
| interface Props { | interface Props { | ||||
| // approvalDefaultValues: StockInLine; | // approvalDefaultValues: StockInLine; | ||||
| @@ -40,11 +40,11 @@ import { | |||||
| fetchStockOutLineClient, | fetchStockOutLineClient, | ||||
| PickOrderApprovalInput, | PickOrderApprovalInput, | ||||
| PickOrderQcInput, | PickOrderQcInput, | ||||
| } from "@/app/api/pickorder/actions"; | |||||
| } from "@/app/api/pickOrder/actions"; | |||||
| import { | import { | ||||
| PickOrderLineWithSuggestedLot, | PickOrderLineWithSuggestedLot, | ||||
| StockOutLine, | StockOutLine, | ||||
| } from "@/app/api/pickorder"; | |||||
| } from "@/app/api/pickOrder"; | |||||
| import { Pageable } from "@/app/utils/fetchUtil"; | import { Pageable } from "@/app/utils/fetchUtil"; | ||||
| import { QrCodeInfo } from "@/app/api/qrcode"; | import { QrCodeInfo } from "@/app/api/qrcode"; | ||||
| import { QrCode } from "../QrCode"; | import { QrCode } from "../QrCode"; | ||||
| @@ -37,7 +37,7 @@ type SearchParamNames = keyof SearchQuery; | |||||
| const RSOverview: React.FC<Props> = ({ type, defaultInputs }) => { | const RSOverview: React.FC<Props> = ({ type, defaultInputs }) => { | ||||
| const [filteredSchedules, setFilteredSchedules] = useState<ProdScheduleResult[]>([]); | const [filteredSchedules, setFilteredSchedules] = useState<ProdScheduleResult[]>([]); | ||||
| const { t } = useTranslation("scheduling"); | |||||
| const { t } = useTranslation("schedule"); | |||||
| const router = useRouter(); | const router = useRouter(); | ||||
| // const [filterObj, setFilterObj] = useState({}); | // const [filterObj, setFilterObj] = useState({}); | ||||
| // const [tempSelectedValue, setTempSelectedValue] = useState({}); | // const [tempSelectedValue, setTempSelectedValue] = useState({}); | ||||
| @@ -14,7 +14,7 @@ import { useTranslation } from "react-i18next"; | |||||
| import axiosInstance from "@/app/(main)/axios/axiosInstance"; | import axiosInstance from "@/app/(main)/axios/axiosInstance"; | ||||
| import Qs from 'qs'; | import Qs from 'qs'; | ||||
| import EditableSearchResults from "@/components/SearchResults/EditableSearchResults"; // Make sure to import Qs | import EditableSearchResults from "@/components/SearchResults/EditableSearchResults"; // Make sure to import Qs | ||||
| import { ItemsResultResponse } from "@/app/api/settings/item"; | |||||
| type Props = { | type Props = { | ||||
| items: ItemsResult[]; | items: ItemsResult[]; | ||||
| }; | }; | ||||
| @@ -63,7 +63,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
| const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | const searchCriteria: Criterion<SearchParamNames>[] = useMemo( | ||||
| () => { | () => { | ||||
| var searchCriteria: Criterion<SearchParamNames>[] = [ | var searchCriteria: Criterion<SearchParamNames>[] = [ | ||||
| { label: t("Finished Goods Name"), paramName: "fgName", type: "text" }, | |||||
| { label: t("Finished Goods Name"), paramName: "name", type: "text" }, | |||||
| { | { | ||||
| label: t("Exclude Date"), | label: t("Exclude Date"), | ||||
| paramName: "excludeDate", | paramName: "excludeDate", | ||||
| @@ -100,7 +100,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
| // }, | // }, | ||||
| { | { | ||||
| field: "name", | field: "name", | ||||
| label: "Finished Goods Name", | |||||
| label: t("Finished Goods Name"), | |||||
| type: 'input', | type: 'input', | ||||
| }, | }, | ||||
| { | { | ||||
| @@ -153,7 +153,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
| } | } | ||||
| try { | try { | ||||
| const response = await axiosInstance.get<ItemsResult[]>(`${NEXT_PUBLIC_API_URL}/items/getRecordByPage`, { | |||||
| const response = await axiosInstance.get<ItemsResultResponse>(`${NEXT_PUBLIC_API_URL}/items/getRecordByPage`, { | |||||
| params, | params, | ||||
| paramsSerializer: (params) => { | paramsSerializer: (params) => { | ||||
| return Qs.stringify(params, { arrayFormat: 'repeat' }); | return Qs.stringify(params, { arrayFormat: 'repeat' }); | ||||
| @@ -175,7 +175,7 @@ const RSSOverview: React.FC<Props> = ({ items }) => { | |||||
| //setFilteredItems(items ?? []); | //setFilteredItems(items ?? []); | ||||
| setFilterObj({}); | setFilterObj({}); | ||||
| setTempSelectedValue({}); | setTempSelectedValue({}); | ||||
| refetchData(); | |||||
| refetchData(filterObj); | |||||
| }, [items]); | }, [items]); | ||||
| return ( | return ( | ||||
| @@ -10,7 +10,7 @@ type Props = { | |||||
| // type: TypeEnum; | // type: TypeEnum; | ||||
| }; | }; | ||||
| const RoughScheduleSettingWrapper: ({}: {}) => Promise<JSX.Element> = async ({ | |||||
| const RoughScheduleSettingWrapper: React.FC & SubComponents = async ({ | |||||
| // type, | // type, | ||||
| }) => { | }) => { | ||||
| // console.log(type) | // console.log(type) | ||||
| @@ -66,5 +66,8 @@ | |||||
| "Equipment Type Details":"設備類型詳情", | "Equipment Type Details":"設備類型詳情", | ||||
| "Save":"儲存", | "Save":"儲存", | ||||
| "Cancel":"取消", | "Cancel":"取消", | ||||
| "Equipment Details":"設備詳情" | |||||
| "Equipment Details":"設備詳情", | |||||
| "Exclude Date":"排除日期", | |||||
| "Finished Goods Name":"成品名稱" | |||||
| } | } | ||||
| @@ -78,5 +78,7 @@ | |||||
| "Job Priority": "工單優先順序", | "Job Priority": "工單優先順序", | ||||
| "Job Date": "工單日期", | "Job Date": "工單日期", | ||||
| "Job Qty": "工單數量", | "Job Qty": "工單數量", | ||||
| "mat": "物料" | |||||
| "mat": "物料", | |||||
| "Product Count(s)": "產品數量", | |||||
| "Schedule Period To": "排程期間至" | |||||
| } | } | ||||