Browse Source

update

master
MSI\derek 1 month ago
parent
commit
a896ed9997
6 changed files with 44 additions and 12 deletions
  1. +2
    -0
      src/app/api/po/actions.ts
  2. +2
    -2
      src/components/PickOrderDetail/PickOrderDetail.tsx
  3. +31
    -1
      src/components/PoDetail/EscalationForm.tsx
  4. +5
    -5
      src/components/PoDetail/PoDetail.tsx
  5. +3
    -3
      src/components/PoDetail/PoQcStockInModal.tsx
  6. +1
    -1
      src/components/PoDetail/QcForm.tsx

+ 2
- 0
src/app/api/po/actions.ts View File

@@ -57,7 +57,9 @@ export interface PurchaseQCInput {
} }
export interface EscalationInput { export interface EscalationInput {
status: string; status: string;
remarks?: string;
handler: string; handler: string;
productLotNo: string;
acceptedQty: number; // this is the qty to be escalated acceptedQty: number; // this is the qty to be escalated
// escalationQty: number // escalationQty: number
} }


+ 2
- 2
src/components/PickOrderDetail/PickOrderDetail.tsx View File

@@ -795,7 +795,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" }}
@@ -804,7 +804,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 }}>


+ 31
- 1
src/components/PoDetail/EscalationForm.tsx View File

@@ -87,7 +87,7 @@ const EscalationForm: React.FC<Props> = ({
useEffect(() => { useEffect(() => {
console.log("triggered"); console.log("triggered");
setValue("status", status); setValue("status", status);
}, []);
}, [setValue, status]);


return ( return (
<Grid container justifyContent="flex-start" alignItems="flex-start"> <Grid container justifyContent="flex-start" alignItems="flex-start">
@@ -108,6 +108,18 @@ const EscalationForm: React.FC<Props> = ({
spacing={2} spacing={2}
sx={{ mt: 0.5 }} sx={{ mt: 0.5 }}
> >
<Grid item xs={12}>
<TextField
label={t("productLotNo")}
fullWidth
{...register("productLotNo", {
required: "productLotNo required!",
})}
disabled={disabled}
error={Boolean(errors.productLotNo)}
helperText={errors.productLotNo?.message}
/>
</Grid>
<Grid item xs={6}> <Grid item xs={6}>
<TextField <TextField
label={t("reportQty")} label={t("reportQty")}
@@ -124,6 +136,24 @@ const EscalationForm: React.FC<Props> = ({
helperText={errors.acceptedQty?.message} helperText={errors.acceptedQty?.message}
/> />
</Grid> </Grid>
<Grid item xs={6}>
<TextField
label={t("uom")}
fullWidth
disabled={true}
defaultValue={itemDetail.uom.code}
/>
</Grid>
<Grid item xs={12}>
<TextField
label={t("remarks")}
fullWidth
{...register("remarks", {

})}
disabled={disabled}
/>
</Grid>
</Grid> </Grid>
<Grid <Grid
container container


+ 5
- 5
src/components/PoDetail/PoDetail.tsx View File

@@ -106,14 +106,14 @@ const PoDetail: React.FC<Props> = ({ po, qc, warehouse }) => {
console.log(checkRes); console.log(checkRes);
const newPo = await fetchPoInClient(purchaseOrder.id); const newPo = await fetchPoInClient(purchaseOrder.id);
setPurchaseOrder(newPo); setPurchaseOrder(newPo);
}, [checkPolAndCompletePo, fetchPoInClient]);
}, [purchaseOrder.id]);


const handleStartPo = useCallback(async () => { const handleStartPo = useCallback(async () => {
const startRes = await startPo(purchaseOrder.id); const startRes = await startPo(purchaseOrder.id);
console.log(startRes); console.log(startRes);
const newPo = await fetchPoInClient(purchaseOrder.id); const newPo = await fetchPoInClient(purchaseOrder.id);
setPurchaseOrder(newPo); setPurchaseOrder(newPo);
}, [startPo, fetchPoInClient]);
}, [purchaseOrder.id]);


useEffect(() => { useEffect(() => {
setRows(purchaseOrder.pol || []); setRows(purchaseOrder.pol || []);
@@ -127,11 +127,11 @@ const PoDetail: React.FC<Props> = ({ po, qc, warehouse }) => {
const [stockInLine, setStockInLine] = useState(row.stockInLine); const [stockInLine, setStockInLine] = useState(row.stockInLine);
const totalWeight = useMemo( const totalWeight = useMemo(
() => calculateWeight(row.qty, row.uom), () => calculateWeight(row.qty, row.uom),
[calculateWeight],
[row.qty, row.uom],
); );
const weightUnit = useMemo( const weightUnit = useMemo(
() => returnWeightUnit(row.uom), () => returnWeightUnit(row.uom),
[returnWeightUnit],
[row.uom],
); );


useEffect(() => { useEffect(() => {
@@ -142,7 +142,7 @@ const PoDetail: React.FC<Props> = ({ po, qc, warehouse }) => {
} else { } else {
setCurrStatus("pending".toUpperCase()); setCurrStatus("pending".toUpperCase());
} }
}, [processedQty]);
}, [processedQty, row.qty]);


return ( return (
<> <>


+ 3
- 3
src/components/PoDetail/PoQcStockInModal.tsx View File

@@ -160,7 +160,7 @@ const PoQcStockInModal: React.FC<Props> = ({
const checkStockIn = useCallback( const checkStockIn = useCallback(
(data: ModalFormInput): boolean => { (data: ModalFormInput): boolean => {
let hasErrors = false; let hasErrors = false;
if (!isFinite(accQty) || accQty!! <= 0 ) {
if (!isFinite(accQty) || accQty! <= 0 ) {
formProps.setError("acceptedQty", { formProps.setError("acceptedQty", {
message: `${t("Accepted qty must greater than")} ${ message: `${t("Accepted qty must greater than")} ${
0 0
@@ -168,7 +168,7 @@ const PoQcStockInModal: React.FC<Props> = ({
type: "required", type: "required",
}); });
hasErrors = true; hasErrors = true;
} else if (accQty!! > itemDetail.acceptedQty) {
} else if (accQty! > itemDetail.acceptedQty) {
formProps.setError("acceptedQty", { formProps.setError("acceptedQty", {
message: `${t("Accepted qty must not greater than")} ${ message: `${t("Accepted qty must not greater than")} ${
itemDetail.acceptedQty itemDetail.acceptedQty
@@ -214,7 +214,7 @@ const PoQcStockInModal: React.FC<Props> = ({
} }
return hasErrors; return hasErrors;
}, },
[itemDetail, formProps],
[accQty, itemDetail.acceptedQty, itemDetail.shelfLife, productLotNo, formProps, t],
); );


const checkPutaway = useCallback( const checkPutaway = useCallback(


+ 1
- 1
src/components/PoDetail/QcForm.tsx View File

@@ -97,7 +97,7 @@ const QcForm: React.FC<Props> = ({ qc, itemDetail, disabled }) => {
useEffect(() => { useEffect(() => {
clearErrors(); clearErrors();
validateForm(); validateForm();
}, [validateForm]);
}, [clearErrors, validateForm]);


const columns = useMemo<GridColDef[]>( const columns = useMemo<GridColDef[]>(
() => [ () => [


Loading…
Cancel
Save