|
|
|
@@ -5,7 +5,7 @@ import { useTranslation } from "react-i18next"; |
|
|
|
import { Criterion } from "../SearchBox"; |
|
|
|
import SearchResults, { Column, defaultPagingController } from "../SearchResults/SearchResults"; |
|
|
|
import { EditNote } from "@mui/icons-material"; |
|
|
|
import { arrayToDateString, arrayToDateTimeString, integerFormatter } from "@/app/utils/formatUtil"; |
|
|
|
import { arrayToDateString, arrayToDateTimeString, integerFormatter, dayjsToDateString } from "@/app/utils/formatUtil"; |
|
|
|
import { orderBy, uniqBy, upperFirst } from "lodash"; |
|
|
|
import SearchBox from "../SearchBox/SearchBox"; |
|
|
|
import { useRouter } from "next/navigation"; |
|
|
|
@@ -139,7 +139,7 @@ const JoSearch: React.FC<Props> = ({ defaultInputs, bomCombo, printerCombo }) => |
|
|
|
const searchCriteria: Criterion<SearchParamNames>[] = useMemo(() => [ |
|
|
|
{ label: t("Code"), paramName: "code", type: "text" }, |
|
|
|
{ label: t("Item Name"), paramName: "itemName", type: "text" }, |
|
|
|
{ label: t("Plan Start"), label2: t("Plan Start To"), paramName: "planStart", type: "datetimeRange" }, |
|
|
|
{ label: t("Plan Start"), label2: t("Plan Start To"), paramName: "planStart", type: "dateRange", preFilledValue: dayjsToDateString(dayjs(), "input") }, |
|
|
|
], [t]) |
|
|
|
|
|
|
|
const columns = useMemo<Column<JobOrder>[]>( |
|
|
|
@@ -151,16 +151,9 @@ const JoSearch: React.FC<Props> = ({ defaultInputs, bomCombo, printerCombo }) => |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "item", |
|
|
|
label: t("Item Code"), |
|
|
|
label: `${t("Item Name")}`, |
|
|
|
renderCell: (row) => { |
|
|
|
return row.item ? t(row.item.code) : '-' |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: "itemName", |
|
|
|
label: t("Item Name"), |
|
|
|
renderCell: (row) => { |
|
|
|
return row.item ? t(row.item.name) : '-' |
|
|
|
return row.item ? <>{t(row.item.code)} {t(row.item.name)}</> : '-' |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
@@ -195,7 +188,7 @@ const JoSearch: React.FC<Props> = ({ defaultInputs, bomCombo, printerCombo }) => |
|
|
|
align: "left", |
|
|
|
headerAlign: "left", |
|
|
|
renderCell: (row) => { |
|
|
|
return row.planStart ? arrayToDateTimeString(row.planStart) : '-' |
|
|
|
return row.planStart ? arrayToDateString(row.planStart) : '-' |
|
|
|
} |
|
|
|
}, |
|
|
|
{ |
|
|
|
@@ -233,7 +226,7 @@ const JoSearch: React.FC<Props> = ({ defaultInputs, bomCombo, printerCombo }) => |
|
|
|
) |
|
|
|
} |
|
|
|
}, |
|
|
|
], [inventoryData] |
|
|
|
], [inventoryData, detailedJos] |
|
|
|
) |
|
|
|
|
|
|
|
const handleUpdate = useCallback(async (jo: JobOrder) => { |
|
|
|
@@ -364,14 +357,21 @@ const JoSearch: React.FC<Props> = ({ defaultInputs, bomCombo, printerCombo }) => |
|
|
|
refetchData(defaultInputs, "search"); |
|
|
|
}, []); |
|
|
|
|
|
|
|
|
|
|
|
const onSearch = useCallback((query: Record<SearchParamNames, string>) => { |
|
|
|
const transformedQuery = { |
|
|
|
...query, |
|
|
|
planStart: query.planStart ? `${query.planStart}T00:00:00` : query.planStart, |
|
|
|
planStartTo: query.planStartTo ? `${query.planStartTo}T23:59:59` : query.planStartTo |
|
|
|
}; |
|
|
|
|
|
|
|
setInputs(() => ({ |
|
|
|
code: query.code, |
|
|
|
itemName: query.itemName, |
|
|
|
planStart: query.planStart, |
|
|
|
planStartTo: query.planStartTo |
|
|
|
code: transformedQuery.code, |
|
|
|
itemName: transformedQuery.itemName, |
|
|
|
planStart: transformedQuery.planStart, |
|
|
|
planStartTo: transformedQuery.planStartTo |
|
|
|
})) |
|
|
|
refetchData(query, "search"); |
|
|
|
refetchData(transformedQuery, "search"); |
|
|
|
}, []) |
|
|
|
|
|
|
|
const onReset = useCallback(() => { |
|
|
|
|