diff --git a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx index 4bc101f0..3051d863 100644 --- a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx +++ b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx @@ -360,6 +360,40 @@ const InventoryAdjustmentForm = ({ setSelectedProduct(product); }; + useEffect(() => { + const transactionType = formik.values.transaction_type; + + if (!transactionType) { + setSelectedTransactionSubtype(null); + formik.setFieldValue('transaction_subtype', ''); + return; + } + + setSelectedTransactionSubtype(null); + formik.setFieldValue('transaction_subtype', ''); + formik.setFieldTouched('transaction_subtype', true); + + if (transactionType === 'PEMBELIAN') { + formik.setFieldValue( + 'transaction_subtype', + TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.value + ); + setSelectedTransactionSubtype({ + value: TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.value, + label: TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.label, + }); + } else if (transactionType === 'PENJUALAN') { + formik.setFieldValue( + 'transaction_subtype', + TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.value + ); + setSelectedTransactionSubtype({ + value: TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.value, + label: TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.label, + }); + } + }, [formik.values.transaction_type]); + const transactionTypeChangeHandler = ( val: OptionType | OptionType[] | null ) => { @@ -370,29 +404,6 @@ const InventoryAdjustmentForm = ({ formik.setFieldTouched('transaction_type', true); setSelectedTransactionType(typeOption); - setSelectedTransactionSubtype(null); - - formik.setFieldValue('transaction_subtype', ''); - - if (selectedType === 'PEMBELIAN') { - formik.setFieldValue( - 'transaction_subtype', - TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.value - ); - setSelectedTransactionSubtype({ - value: TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.value, - label: TRANSACTION_SUBTYPE_OPTIONS.PEMBELIAN.label, - }); - } else if (selectedType === 'PENJUALAN') { - formik.setFieldValue( - 'transaction_subtype', - TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.value - ); - setSelectedTransactionSubtype({ - value: TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.value, - label: TRANSACTION_SUBTYPE_OPTIONS.PENJUALAN.label, - }); - } }; const transactionSubtypeChangeHandler = ( @@ -527,7 +538,6 @@ const InventoryAdjustmentForm = ({ // ===== Formik Error List ===== const { formErrorList, close, handleFormSubmit } = useFormikErrorList(formik); - // Render return ( <>