MSI\derek 1 місяць тому
джерело
коміт
d2858d106a
2 змінених файлів з 38 додано та 9 видалено
  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 Переглянути файл

@@ -169,4 +169,14 @@ export const consolidatePickOrder_revert = async (ids: number[]) => {
});
revalidateTag("pickorder");
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 Переглянути файл

@@ -33,6 +33,7 @@ import DoneIcon from "@mui/icons-material/Done";
import { GridRowSelectionModel } from "@mui/x-data-grid";
import { useQcCodeScanner } from "../QrCodeScannerProvider/QrCodeScannerProvider";
import {
completeConsoPickOrder,
CreateStockOutLine,
createStockOutLine,
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(
async (params: Record<string, any>) => {
@@ -215,12 +214,12 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
});
if (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")
)
);
setPickOrderLine(res.records);
setPolTotalCount(res.total);
} else {
console.log("error");
@@ -595,7 +594,14 @@ const PickOrderDetail: React.FC<Props> = ({ consoCode, qc }) => {
fetchPickOrderLine(polCriteriaArgs);
}
if (selectedRow.length > 0) fetchStockOutLine(solCriteriaArgs, selectedRow);
}, [qcOpen, approvalOpen, solCriteriaArgs, selectedRow, triggerRefetch, polCriteriaArgs]);
}, [
qcOpen,
approvalOpen,
solCriteriaArgs,
selectedRow,
triggerRefetch,
polCriteriaArgs,
]);

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

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

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

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


Завантаження…
Відмінити
Зберегти