diff --git a/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx b/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx index 5736368a..f233521c 100644 --- a/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx +++ b/src/components/pages/marketing/form/repeater/delivery-order/DeliverOrderProduct.tsx @@ -180,6 +180,25 @@ const DeliveryOrderProductForm = ({ }, }); + const hasWeekField = useMemo(() => { + const marketingType = formik.values.marketing_type?.value?.toLowerCase(); + if (marketingType === 'ayam_pullet') { + return true; + } + + if (formik.values.marketing_product?.product_warehouse_data) { + return Boolean( + formik.values.marketing_product?.product_warehouse_data?.week !== + undefined && + formik.values.marketing_product?.product_warehouse_data?.week !== + null && + formik.values.marketing_product?.product_warehouse_data?.week > 0 + ); + } + + return false; + }, [formik.values.marketing_product, formik.values.marketing_type]); + const handleResetForm = () => { setFormErrorMessage(''); formik.resetForm({ @@ -364,20 +383,24 @@ const DeliveryOrderProductForm = ({ avg_weight: '', total_weight: '', vehicle_number: '', + week: null, }); return; } + const soFieldValues = SalesProductToFieldValues(so); + formik.setValues({ ...formik.values, marketing_product_id: selected.value as number, - marketing_product: SalesProductToFieldValues(so), + marketing_product: soFieldValues, qty: so.qty, unit_price: so.unit_price, total_price: so.total_price, avg_weight: so.avg_weight, total_weight: so.total_weight, vehicle_number: so.vehicle_number, + week: soFieldValues.week ?? null, }); }} startAdornment={ @@ -511,10 +534,14 @@ const DeliveryOrderProductForm = ({ )} {/* Konversi Satuan Week Pullet */} - {formik.values.marketing_type?.value.toLowerCase() === - 'ayam_pullet' && ( + {(formik.values.marketing_type?.value.toLowerCase() === + 'ayam_pullet' || + hasWeekField) && ( { + const marketingType = formik.values.marketing_type?.value?.toLowerCase(); + if (marketingType === 'ayam_pullet') { + return true; + } + + return Boolean( + selectedProductWarehouse?.week !== undefined && + selectedProductWarehouse?.week !== null && + selectedProductWarehouse?.week > 0 + ); + }, [selectedProductWarehouse, formik.values.marketing_type]); + // ===== Options ===== const { options: kandangSourceOptions, @@ -180,10 +193,20 @@ const SalesOrderProductForm = ({ setSelectedProductWarehouse(productWarehouse || null); formik.setFieldValue('qty', productWarehouse?.quantity); formik.setFieldValue('uom', productWarehouse?.product?.uom?.name || ''); + if ( + productWarehouse?.week !== undefined && + productWarehouse?.week !== null && + productWarehouse?.week > 0 + ) { + formik.setFieldValue('week', productWarehouse.week); + } else { + formik.setFieldValue('week', null); + } handleBlurField('qty'); } else { formik.setFieldValue('qty', ''); formik.setFieldValue('uom', ''); + formik.setFieldValue('week', null); } }; @@ -465,10 +488,14 @@ const SalesOrderProductForm = ({ )} {/* Konversi Satuan Week Pullet */} - {formik.values.marketing_type?.value.toLowerCase() === - 'ayam_pullet' && ( + {(formik.values.marketing_type?.value.toLowerCase() === + 'ayam_pullet' || + hasWeekField) && (