refactor(FE): Support add/edit type and use ProductPrice for add

This commit is contained in:
rstubryan
2026-01-06 20:24:29 +07:00
parent fd868eaa0c
commit 46c06ea548
2 changed files with 22 additions and 7 deletions
@@ -312,7 +312,8 @@ export const PurchaseRequestStaffApprovalFormInitialValues: PurchaseRequestStaff
}; };
export const PurchaseRequestStaffApprovalFormDefaultValues = ( export const PurchaseRequestStaffApprovalFormDefaultValues = (
purchase?: Purchase purchase?: Purchase,
type?: 'add' | 'edit'
): PurchaseRequestStaffApprovalFormSchemaType => { ): PurchaseRequestStaffApprovalFormSchemaType => {
return { return {
action: 'APPROVED', action: 'APPROVED',
@@ -331,8 +332,12 @@ export const PurchaseRequestStaffApprovalFormDefaultValues = (
label: item.warehouse?.name || '', label: item.warehouse?.name || '',
}, },
qty: item.sub_qty || item.qty || 0, qty: item.sub_qty || item.qty || 0,
price: item.price, price: type === 'add'
total_price: item.total_price, ? ('ProductPrice' in item.product ? (item.product.ProductPrice || item.price || '') : item.price)
: item.price,
total_price: type === 'add'
? (('ProductPrice' in item.product ? (item.product.ProductPrice || item.price || 0) : item.price) * (item.sub_qty || item.qty || 0))
: item.total_price,
})) }))
: [ : [
{ {
@@ -294,9 +294,9 @@ const PurchaseOrderStaffApprovalForm = ({
// ===== FORM CONFIGURATION ===== // ===== FORM CONFIGURATION =====
const formikInitialValues = useMemo(() => { const formikInitialValues = useMemo(() => {
return initialValues return initialValues
? PurchaseRequestStaffApprovalFormDefaultValues(initialValues) ? PurchaseRequestStaffApprovalFormDefaultValues(initialValues, type)
: PurchaseRequestStaffApprovalFormInitialValues; : PurchaseRequestStaffApprovalFormInitialValues;
}, [initialValues]); }, [initialValues, type]);
const formik = useFormik({ const formik = useFormik({
initialValues: formikInitialValues, initialValues: formikInitialValues,
@@ -485,9 +485,18 @@ const PurchaseOrderStaffApprovalForm = ({
}, },
warehouse_id: purchaseItem.warehouse_id || 0, warehouse_id: purchaseItem.warehouse_id || 0,
qty: originalItem?.qty || purchaseItem.quantity || 0, qty: originalItem?.qty || purchaseItem.quantity || 0,
price: type === 'edit' && originalItem ? originalItem.price : '', price:
type === 'edit' && originalItem
? originalItem.price
: originalItem?.product && 'ProductPrice' in originalItem.product
? originalItem.product.ProductPrice || ''
: '',
total_price: total_price:
type === 'edit' && originalItem ? originalItem.total_price : '', type === 'edit' && originalItem
? originalItem.total_price
: (originalItem?.product && 'ProductPrice' in originalItem.product
? originalItem.product.ProductPrice || 0
: 0) * (originalItem?.qty || purchaseItem.quantity || 0),
}; };
return itemData; return itemData;
}); });
@@ -1140,6 +1149,7 @@ const PurchaseOrderStaffApprovalForm = ({
color='warning' color='warning'
className='px-4' className='px-4'
onClick={() => { onClick={() => {
formik.setValues(formikInitialValues);
formik.resetForm(); formik.resetForm();
setPurchaseOrderFormErrorMessage(''); setPurchaseOrderFormErrorMessage('');
onCancel?.(); onCancel?.();