|
@@ -160,11 +160,11 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
headerName: "uom", |
|
|
headerName: "uom", |
|
|
flex: 1, |
|
|
flex: 1, |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
|
|
|
field: "lotLineId", |
|
|
|
|
|
headerName: "lotLineId", |
|
|
|
|
|
flex: 1, |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
// { |
|
|
|
|
|
// field: "lotLineId", |
|
|
|
|
|
// headerName: "lotLineId", |
|
|
|
|
|
// flex: 1, |
|
|
|
|
|
// }, |
|
|
{ |
|
|
{ |
|
|
field: "warehouse", |
|
|
field: "warehouse", |
|
|
headerName: "location", |
|
|
headerName: "location", |
|
@@ -187,10 +187,22 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
return FitAllCell(suggestedLotNoList); |
|
|
return FitAllCell(suggestedLotNoList); |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
field: "status", |
|
|
|
|
|
headerName: t("status"), |
|
|
|
|
|
flex: 0.5, |
|
|
|
|
|
renderCell: (params) => { |
|
|
|
|
|
return t(`${params.row.status}`); |
|
|
|
|
|
}, |
|
|
|
|
|
}, |
|
|
], |
|
|
], |
|
|
[] |
|
|
[] |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
const [isCompletedOrder, setIsCompletedOrder] = useState<boolean>(() => { |
|
|
|
|
|
return pickOrderLine.every((line) => line.status == "completed") |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
const fetchPickOrderLine = useCallback( |
|
|
const fetchPickOrderLine = useCallback( |
|
|
async (params: Record<string, any>) => { |
|
|
async (params: Record<string, any>) => { |
|
|
setIsLoadingModel((prev) => ({ |
|
|
setIsLoadingModel((prev) => ({ |
|
@@ -203,7 +215,12 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
}); |
|
|
}); |
|
|
if (res) { |
|
|
if (res) { |
|
|
console.log(res); |
|
|
console.log(res); |
|
|
|
|
|
console.log(res.records.every((line) => line.status == "completed")) |
|
|
|
|
|
setIsCompletedOrder(() => |
|
|
|
|
|
res.records.every((line) => line.status == "completed") |
|
|
|
|
|
) |
|
|
setPickOrderLine(res.records); |
|
|
setPickOrderLine(res.records); |
|
|
|
|
|
|
|
|
setPolTotalCount(res.total); |
|
|
setPolTotalCount(res.total); |
|
|
} else { |
|
|
} else { |
|
|
console.log("error"); |
|
|
console.log("error"); |
|
@@ -224,7 +241,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
confirmButtonText: t("Complete"), |
|
|
confirmButtonText: t("Complete"), |
|
|
successTitle: t("Complete Success"), |
|
|
successTitle: t("Complete Success"), |
|
|
errorTitle: t("Complete Fail"), |
|
|
errorTitle: t("Complete Fail"), |
|
|
buttonText: t("Complete PO"), |
|
|
|
|
|
|
|
|
buttonText: t("Complete Pick Order"), |
|
|
buttonIcon: <DoneIcon />, |
|
|
buttonIcon: <DoneIcon />, |
|
|
buttonColor: "info", |
|
|
buttonColor: "info", |
|
|
disabled: true, |
|
|
disabled: true, |
|
@@ -330,16 +347,16 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
setOpenScanner((prev) => !prev); |
|
|
setOpenScanner((prev) => !prev); |
|
|
console.log(id); |
|
|
console.log(id); |
|
|
setIsChangeLotSolId((prev) => { |
|
|
setIsChangeLotSolId((prev) => { |
|
|
if (prev != undefined) return undefined |
|
|
|
|
|
return id as number |
|
|
|
|
|
|
|
|
if (prev != undefined) return undefined; |
|
|
|
|
|
return id as number; |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
[] |
|
|
[] |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
console.log(isChangeLotSolId) |
|
|
|
|
|
}, [isChangeLotSolId]) |
|
|
|
|
|
|
|
|
console.log(isChangeLotSolId); |
|
|
|
|
|
}, [isChangeLotSolId]); |
|
|
|
|
|
|
|
|
const handleComplete = useCallback( |
|
|
const handleComplete = useCallback( |
|
|
(id: GridRowId, params: any) => async () => { |
|
|
(id: GridRowId, params: any) => async () => { |
|
@@ -477,7 +494,8 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
disabled={ |
|
|
disabled={ |
|
|
!params.row.inventoryLotLineId || |
|
|
!params.row.inventoryLotLineId || |
|
|
stockOutLineStatusMap[status] === 2 || |
|
|
stockOutLineStatusMap[status] === 2 || |
|
|
stockOutLineStatusMap[status] === 5 |
|
|
|
|
|
|
|
|
stockOutLineStatusMap[status] >= 4 || |
|
|
|
|
|
stockOutLineStatusMap[status] === 0 |
|
|
} |
|
|
} |
|
|
// set _isNew to false after posting |
|
|
// set _isNew to false after posting |
|
|
// or check status |
|
|
// or check status |
|
@@ -494,14 +512,14 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
disabled={stockOutLineStatusMap[status] > 0} |
|
|
disabled={stockOutLineStatusMap[status] > 0} |
|
|
onClick={handleDelete(params.row.id)} |
|
|
onClick={handleDelete(params.row.id)} |
|
|
/>, |
|
|
/>, |
|
|
<GridActionsCellItem |
|
|
|
|
|
icon={<InfoIcon />} |
|
|
|
|
|
label="debug button" |
|
|
|
|
|
sx={{ |
|
|
|
|
|
color: "error.main", |
|
|
|
|
|
}} |
|
|
|
|
|
onClick={() => console.log(params.row)} |
|
|
|
|
|
/>, |
|
|
|
|
|
|
|
|
// <GridActionsCellItem |
|
|
|
|
|
// icon={<InfoIcon />} |
|
|
|
|
|
// label="debug button" |
|
|
|
|
|
// sx={{ |
|
|
|
|
|
// color: "error.main", |
|
|
|
|
|
// }} |
|
|
|
|
|
// onClick={() => console.log(params.row)} |
|
|
|
|
|
// />, |
|
|
]; |
|
|
]; |
|
|
}, |
|
|
}, |
|
|
}, |
|
|
}, |
|
@@ -570,17 +588,14 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
[stockOutLine, getRowId] |
|
|
[stockOutLine, getRowId] |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
fetchPickOrderLine(polCriteriaArgs); |
|
|
|
|
|
}, [polCriteriaArgs]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// handle refetch all data |
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
|
if (!qcOpen || !approvalOpen) { |
|
|
if (!qcOpen || !approvalOpen) { |
|
|
console.log("triggering") |
|
|
|
|
|
triggerRefetch(); |
|
|
triggerRefetch(); |
|
|
|
|
|
fetchPickOrderLine(polCriteriaArgs); |
|
|
} |
|
|
} |
|
|
if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow); |
|
|
if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow); |
|
|
}, [qcOpen, approvalOpen, solCriteriaArgs, selectedRow, triggerRefetch]); |
|
|
|
|
|
|
|
|
}, [qcOpen, approvalOpen, solCriteriaArgs, selectedRow, triggerRefetch, polCriteriaArgs]); |
|
|
|
|
|
|
|
|
const getLotDetail = useCallback( |
|
|
const getLotDetail = useCallback( |
|
|
async (stockInLineId: number): Promise<LotLineInfo> => { |
|
|
async (stockInLineId: number): Promise<LotLineInfo> => { |
|
@@ -617,8 +632,8 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
}, [isOpenScanner]); |
|
|
}, [isOpenScanner]); |
|
|
|
|
|
|
|
|
const homemade_Qrcode = { |
|
|
const homemade_Qrcode = { |
|
|
stockInLineId: 156, // eggs |
|
|
|
|
|
// stockInLineId: 162, // chicken wings |
|
|
|
|
|
|
|
|
// stockInLineId: 156, // eggs |
|
|
|
|
|
stockInLineId: 162, // chicken wings |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
useEffect(() => { |
|
@@ -725,7 +740,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
<Grid item xs={8}> |
|
|
<Grid item xs={8}> |
|
|
<Button |
|
|
<Button |
|
|
// onClick={buttonData.onClick} |
|
|
// onClick={buttonData.onClick} |
|
|
disabled={buttonData.disabled} |
|
|
|
|
|
|
|
|
disabled={!isCompletedOrder} |
|
|
color={buttonData.buttonColor as ButtonProps["color"]} |
|
|
color={buttonData.buttonColor as ButtonProps["color"]} |
|
|
startIcon={buttonData.buttonIcon} |
|
|
startIcon={buttonData.buttonIcon} |
|
|
> |
|
|
> |
|
@@ -750,7 +765,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
</Button> |
|
|
</Button> |
|
|
</Grid> |
|
|
</Grid> |
|
|
{/* homemade qrcode for testing purpose */} |
|
|
{/* homemade qrcode for testing purpose */} |
|
|
{/* <Grid |
|
|
|
|
|
|
|
|
<Grid |
|
|
item |
|
|
item |
|
|
xs={12} |
|
|
xs={12} |
|
|
style={{ display: "flex", justifyContent: "center" }} |
|
|
style={{ display: "flex", justifyContent: "center" }} |
|
@@ -759,7 +774,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => { |
|
|
content={homemade_Qrcode} |
|
|
content={homemade_Qrcode} |
|
|
sx={{ width: 200, height: 200 }} |
|
|
sx={{ width: 200, height: 200 }} |
|
|
/> |
|
|
/> |
|
|
</Grid> */} |
|
|
|
|
|
|
|
|
</Grid> |
|
|
</Grid> |
|
|
</Grid> |
|
|
<Grid container xs={12} justifyContent="space-between"> |
|
|
<Grid container xs={12} justifyContent="space-between"> |
|
|
{/* <Grid item xs={12} sx={{ height: 400 }}> |
|
|
{/* <Grid item xs={12} sx={{ height: 400 }}> |
|
|