mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
fix(FE): fixing issue form not reset after success submit
This commit is contained in:
@@ -296,6 +296,7 @@ const SalesOrderFormModal = ({
|
|||||||
|
|
||||||
// ================== HANDLER ==================
|
// ================== HANDLER ==================
|
||||||
const nextButtonHandler = () => {
|
const nextButtonHandler = () => {
|
||||||
|
setSelectedMarketingProduct(null);
|
||||||
setStep(step + 1);
|
setStep(step + 1);
|
||||||
};
|
};
|
||||||
const prevButtonHandler = () => {
|
const prevButtonHandler = () => {
|
||||||
@@ -667,6 +668,7 @@ const SalesOrderFormModal = ({
|
|||||||
</div>
|
</div>
|
||||||
<div className='flex flex-1 flex-col'>
|
<div className='flex flex-1 flex-col'>
|
||||||
<MemoizedSalesOrderProductForm
|
<MemoizedSalesOrderProductForm
|
||||||
|
key={selectedMarketingProduct?.id ?? 'new'}
|
||||||
onSubmitForm={handleAddSubmitSO}
|
onSubmitForm={handleAddSubmitSO}
|
||||||
initialValues={selectedMarketingProduct ?? undefined}
|
initialValues={selectedMarketingProduct ?? undefined}
|
||||||
exisitingValues={memoSalesOrder}
|
exisitingValues={memoSalesOrder}
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ export const SalesProductToFieldValues = (
|
|||||||
value: product.product_warehouse.id,
|
value: product.product_warehouse.id,
|
||||||
label: product.product_warehouse.product.name,
|
label: product.product_warehouse.product.name,
|
||||||
},
|
},
|
||||||
|
product_warehouse_data: product.product_warehouse,
|
||||||
product_warehouse_id: product.product_warehouse.id,
|
product_warehouse_id: product.product_warehouse.id,
|
||||||
unit_price: product.unit_price,
|
unit_price: product.unit_price,
|
||||||
total_weight: product.total_weight,
|
total_weight: product.total_weight,
|
||||||
@@ -135,6 +136,7 @@ export const SalesProductToFieldValues = (
|
|||||||
: null,
|
: null,
|
||||||
total_peti: product.total_peti,
|
total_peti: product.total_peti,
|
||||||
weight_per_convertion: product.weight_per_convertion,
|
weight_per_convertion: product.weight_per_convertion,
|
||||||
|
uom: product.product_warehouse.product.uom.name,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
export const DeliveryProductToFieldValues = (
|
export const DeliveryProductToFieldValues = (
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { ProductWarehouse } from '@/types/api/inventory/product-warehouse';
|
||||||
import * as Yup from 'yup';
|
import * as Yup from 'yup';
|
||||||
|
|
||||||
type SalesOrderProductSchemaType = {
|
type SalesOrderProductSchemaType = {
|
||||||
@@ -11,6 +12,7 @@ type SalesOrderProductSchemaType = {
|
|||||||
value: number;
|
value: number;
|
||||||
label: string;
|
label: string;
|
||||||
} | null;
|
} | null;
|
||||||
|
product_warehouse_data?: ProductWarehouse | null | undefined;
|
||||||
product_warehouse_id?: number;
|
product_warehouse_id?: number;
|
||||||
unit_price: string | number | undefined;
|
unit_price: string | number | undefined;
|
||||||
total_weight: string | number | undefined;
|
total_weight: string | number | undefined;
|
||||||
@@ -63,6 +65,10 @@ export const SalesOrderProductSchema: Yup.ObjectSchema<SalesOrderProductSchemaTy
|
|||||||
.required('Produk wajib diisi!'),
|
.required('Produk wajib diisi!'),
|
||||||
label: Yup.string().required('Produk wajib diisi!'),
|
label: Yup.string().required('Produk wajib diisi!'),
|
||||||
}).nullable(),
|
}).nullable(),
|
||||||
|
product_warehouse_data: Yup.mixed<ProductWarehouse>()
|
||||||
|
.nullable()
|
||||||
|
.optional()
|
||||||
|
.notRequired(),
|
||||||
product_warehouse_id: Yup.number()
|
product_warehouse_id: Yup.number()
|
||||||
.min(1, 'Produk wajib diisi!')
|
.min(1, 'Produk wajib diisi!')
|
||||||
.required('Produk wajib diisi!'),
|
.required('Produk wajib diisi!'),
|
||||||
|
|||||||
@@ -179,14 +179,18 @@ const SalesOrderProductForm = ({
|
|||||||
);
|
);
|
||||||
setSelectedProductWarehouse(productWarehouse || null);
|
setSelectedProductWarehouse(productWarehouse || null);
|
||||||
formik.setFieldValue('qty', productWarehouse?.quantity);
|
formik.setFieldValue('qty', productWarehouse?.quantity);
|
||||||
|
formik.setFieldValue('uom', productWarehouse?.product?.uom?.name || '');
|
||||||
handleBlurField('qty');
|
handleBlurField('qty');
|
||||||
} else {
|
} else {
|
||||||
formik.setFieldValue('qty', '');
|
formik.setFieldValue('qty', '');
|
||||||
|
formik.setFieldValue('uom', '');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleResetForm = () => {
|
const handleResetForm = () => {
|
||||||
setFormErrorMessage('');
|
setFormErrorMessage('');
|
||||||
|
setHasSisaBerat(false);
|
||||||
|
setSelectedProductWarehouse(null);
|
||||||
formik.resetForm({
|
formik.resetForm({
|
||||||
values: {
|
values: {
|
||||||
vehicle_number: '',
|
vehicle_number: '',
|
||||||
@@ -569,11 +573,13 @@ const SalesOrderProductForm = ({
|
|||||||
errorMessage={formik.errors.qty}
|
errorMessage={formik.errors.qty}
|
||||||
placeholder='Masukan Kuantitas'
|
placeholder='Masukan Kuantitas'
|
||||||
endAdornment={
|
endAdornment={
|
||||||
<div className='flex items-center gap-2'>
|
formik.values.uom ? (
|
||||||
<span className='text-sm text-base-content/50'>
|
<div className='flex items-center gap-2'>
|
||||||
{selectedProductWarehouse?.product?.uom?.name}
|
<span className='text-sm text-base-content/50'>
|
||||||
</span>
|
{formik.values.uom}
|
||||||
</div>
|
</span>
|
||||||
|
</div>
|
||||||
|
) : undefined
|
||||||
}
|
}
|
||||||
bottomLabel={
|
bottomLabel={
|
||||||
isResponseSuccess(warehouseSourceRawData) &&
|
isResponseSuccess(warehouseSourceRawData) &&
|
||||||
@@ -582,7 +588,7 @@ const SalesOrderProductForm = ({
|
|||||||
warehouseSourceRawData?.data?.find(
|
warehouseSourceRawData?.data?.find(
|
||||||
(item) => item.id === formik.values.product_warehouse_id
|
(item) => item.id === formik.values.product_warehouse_id
|
||||||
)?.quantity ?? 0
|
)?.quantity ?? 0
|
||||||
)} ${selectedProductWarehouse?.product?.uom?.name}`
|
)} ${formik.values.uom}`
|
||||||
: ''
|
: ''
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user