Browse Source

update

master
MSI\derek 1 month ago
parent
commit
d2858d106a
2 changed files with 38 additions and 9 deletions
  1. +10
    -0
      src/app/api/pickOrder/actions.ts
  2. +28
    -9
      src/components/PickOrderDetail/PickOrderDetail.tsx

+ 10
- 0
src/app/api/pickOrder/actions.ts View File

@@ -169,4 +169,14 @@ export const consolidatePickOrder_revert = async (ids: number[]) => {
}); });
revalidateTag("pickorder"); revalidateTag("pickorder");
return po return po
}

export const completeConsoPickOrder = async (consoCode: string) => {
const po = await serverFetchJson<PostStockOutLiineResponse<StockOutLine>>
(`${BASE_API_URL}/pickOrder/consoPickOrder/complete/${consoCode}`, {
method: "POST",
headers: { "Content-Type": "application/json" },
});
revalidateTag("pickorder");
return po
} }

+ 28
- 9
src/components/PickOrderDetail/PickOrderDetail.tsx View File

@@ -33,6 +33,7 @@ import DoneIcon from "@mui/icons-material/Done";
import { GridRowSelectionModel } from "@mui/x-data-grid"; import { GridRowSelectionModel } from "@mui/x-data-grid";
import { useQcCodeScanner } from "../QrCodeScannerProvider/QrCodeScannerProvider"; import { useQcCodeScanner } from "../QrCodeScannerProvider/QrCodeScannerProvider";
import { import {
completeConsoPickOrder,
CreateStockOutLine, CreateStockOutLine,
createStockOutLine, createStockOutLine,
fetchPickOrderLineClient, fetchPickOrderLineClient,
@@ -199,9 +200,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
[] []
); );


const [isCompletedOrder, setIsCompletedOrder] = useState<boolean>(() => {
return pickOrderLine.every((line) => line.status == "completed")
})
const [isCompletedOrder, setIsCompletedOrder] = useState(false);


const fetchPickOrderLine = useCallback( const fetchPickOrderLine = useCallback(
async (params: Record<string, any>) => { async (params: Record<string, any>) => {
@@ -215,12 +214,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(() =>
console.log(res.records.every((line) => line.status == "completed"));
setIsCompletedOrder(() =>
res.records.every((line) => line.status == "completed") 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");
@@ -595,7 +594,14 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
fetchPickOrderLine(polCriteriaArgs); fetchPickOrderLine(polCriteriaArgs);
} }
if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow); if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow);
}, [qcOpen, approvalOpen, solCriteriaArgs, selectedRow, triggerRefetch, polCriteriaArgs]);
}, [
qcOpen,
approvalOpen,
solCriteriaArgs,
selectedRow,
triggerRefetch,
polCriteriaArgs,
]);


const getLotDetail = useCallback( const getLotDetail = useCallback(
async (stockInLineId: number): Promise<LotLineInfo> => { async (stockInLineId: number): Promise<LotLineInfo> => {
@@ -633,7 +639,8 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {


const homemade_Qrcode = { const homemade_Qrcode = {
// stockInLineId: 156, // eggs // stockInLineId: 156, // eggs
stockInLineId: 162, // chicken wings
// stockInLineId: 162, // chicken wings
stockInLineId: 168, // sesame
}; };


useEffect(() => { useEffect(() => {
@@ -728,6 +735,16 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
[apiRef] [apiRef]
); );


const handleCompleteOrder = useCallback(async () => {
const res = await completeConsoPickOrder(consoCode)
if (res) {
// completed
triggerRefetch()
} else {
// not completed
triggerRefetch()
}
}, [consoCode, triggerRefetch])
return ( return (
<> <>
<Stack spacing={2}> <Stack spacing={2}>
@@ -743,6 +760,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
disabled={!isCompletedOrder} disabled={!isCompletedOrder}
color={buttonData.buttonColor as ButtonProps["color"]} color={buttonData.buttonColor as ButtonProps["color"]}
startIcon={buttonData.buttonIcon} startIcon={buttonData.buttonIcon}
onClick={handleCompleteOrder}
> >
{buttonData.buttonText} {buttonData.buttonText}
</Button> </Button>
@@ -815,6 +833,7 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
)} )}
</Grid> </Grid>
<Grid item xs={12} sx={{ height: 400 }}> <Grid item xs={12} sx={{ height: 400 }}>
{isChangeLotSolId}
<StyledDataGrid <StyledDataGrid
apiRef={apiRef} apiRef={apiRef}
rows={stockOutLine} rows={stockOutLine}


Loading…
Cancel
Save