refactor(FE-208,212): remove warehouse-related fields and logic from PurchaseOrder forms and schema

This commit is contained in:
rstubryan
2025-11-19 09:17:17 +07:00
parent 17378d8408
commit 89d9d40713
3 changed files with 0 additions and 106 deletions
@@ -49,15 +49,6 @@ const PurchaseOrderAcceptApprovalForm = ({
name: string; name: string;
}; };
}; };
warehouse: {
name: string;
};
}
interface WarehouseOptionType {
value: number;
label: string;
id: number;
} }
interface ExpeditionVendorOptionType { interface ExpeditionVendorOptionType {
@@ -72,7 +63,6 @@ const PurchaseOrderAcceptApprovalForm = ({
field: field:
| 'purchase_item_id' | 'purchase_item_id'
| 'received_date' | 'received_date'
| 'warehouse_id'
| 'travel_number' | 'travel_number'
| 'travel_document_path' | 'travel_document_path'
| 'vehicle_number' | 'vehicle_number'
@@ -161,10 +151,6 @@ const PurchaseOrderAcceptApprovalForm = ({
? parseInt(item.purchase_item_id) || 0 ? parseInt(item.purchase_item_id) || 0
: item.purchase_item_id || 0, : item.purchase_item_id || 0,
received_date: item.received_date || '', received_date: item.received_date || '',
warehouse_id:
typeof item.warehouse_id === 'string'
? parseInt(item.warehouse_id) || 0
: item.warehouse_id || 0,
travel_number: item.travel_number || '', travel_number: item.travel_number || '',
travel_document_path: item.travel_document_path || '', travel_document_path: item.travel_document_path || '',
vehicle_number: item.vehicle_number || '', vehicle_number: item.vehicle_number || '',
@@ -214,35 +200,12 @@ const PurchaseOrderAcceptApprovalForm = ({
product_category: item.product.product_category, product_category: item.product.product_category,
uom: item.product.uom, uom: item.product.uom,
}, },
warehouse: {
name: item.warehouse?.name || '',
},
})); }));
} }
return []; return [];
}, [initialValues?.items]); }, [initialValues?.items]);
const warehouses: WarehouseOptionType[] = useMemo(() => {
if (initialValues?.items) {
const uniqueWarehouses = new Map();
initialValues.items.forEach((item) => {
if (item.warehouse && !uniqueWarehouses.has(item.warehouse.id)) {
uniqueWarehouses.set(item.warehouse.id, {
value: item.warehouse.id,
label: item.warehouse.name,
id: item.warehouse.id,
});
}
});
return Array.from(uniqueWarehouses.values());
}
return [];
}, [initialValues?.items]);
const expeditionVendors: ExpeditionVendorOptionType[] = useMemo(() => { const expeditionVendors: ExpeditionVendorOptionType[] = useMemo(() => {
return []; return [];
}, []); }, []);
@@ -251,10 +214,6 @@ const PurchaseOrderAcceptApprovalForm = ({
return purchaseItems; return purchaseItems;
}, [purchaseItems]); }, [purchaseItems]);
const getWarehouseOptions = useCallback(() => {
return warehouses;
}, [warehouses]);
const getExpeditionVendorOptions = useCallback(() => { const getExpeditionVendorOptions = useCallback(() => {
return expeditionVendors; return expeditionVendors;
}, [expeditionVendors]); }, [expeditionVendors]);
@@ -274,17 +233,6 @@ const PurchaseOrderAcceptApprovalForm = ({
); );
}; };
const warehouseChangeHandler = (
idx: number,
val: OptionType | OptionType[] | null
) => {
const warehouse = val as WarehouseOptionType | null;
formik.setFieldTouched(`items.${idx}.warehouse`, true);
formik.setFieldValue(`items.${idx}.warehouse`, warehouse);
formik.setFieldTouched(`items.${idx}.warehouse_id`, true);
formik.setFieldValue(`items.${idx}.warehouse_id`, warehouse?.value || 0);
};
const expeditionVendorChangeHandler = ( const expeditionVendorChangeHandler = (
idx: number, idx: number,
val: OptionType | OptionType[] | null val: OptionType | OptionType[] | null
@@ -362,10 +310,6 @@ const PurchaseOrderAcceptApprovalForm = ({
Tanggal Diterima Tanggal Diterima
<span className='text-error'>*</span> <span className='text-error'>*</span>
</th> </th>
<th>
Gudang Tujuan
<span className='text-error'>*</span>
</th>
<th> <th>
No. Surat Jalan No. Surat Jalan
<span className='text-error'>*</span> <span className='text-error'>*</span>
@@ -447,26 +391,6 @@ const PurchaseOrderAcceptApprovalForm = ({
}} }}
/> />
</td> </td>
<td>
<SelectInput
required
isClearable={true}
value={item.warehouse}
key={`warehouse-${idx}`}
onChange={(val) => warehouseChangeHandler(idx, val)}
options={getWarehouseOptions()}
isError={
isRepeaterInputError(idx, 'warehouse_id').isError
}
errorMessage={
isRepeaterInputError(idx, 'warehouse_id').errorMessage
}
placeholder='Pilih Gudang...'
className={{
wrapper: 'min-w-52 md:min-w-72 lg:min-w-80',
}}
/>
</td>
<td> <td>
<TextInput <TextInput
required required
@@ -26,11 +26,6 @@ type PurchaseRequestAcceptApprovalFormSchemaType = {
} | null; } | null;
purchase_item_id: number; purchase_item_id: number;
received_date: string; received_date: string;
warehouse?: {
value: number;
label: string;
} | null;
warehouse_id: number;
travel_number: string; travel_number: string;
travel_document_path: string; travel_document_path: string;
vehicle_number: string; vehicle_number: string;
@@ -61,11 +56,6 @@ export type PurchaseAcceptApprovalItemSchema = {
} | null; } | null;
purchase_item_id: number; purchase_item_id: number;
received_date: string; received_date: string;
warehouse?: {
value: number;
label: string;
} | null;
warehouse_id: number;
travel_number: string; travel_number: string;
travel_document_path: string; travel_document_path: string;
vehicle_number: string; vehicle_number: string;
@@ -157,22 +147,6 @@ const PurchaseAcceptApprovalItemObjectSchema: Yup.ObjectSchema<PurchaseAcceptApp
received_date: Yup.string() received_date: Yup.string()
.required('Tanggal penerimaan wajib diisi!') .required('Tanggal penerimaan wajib diisi!')
.typeError('Tanggal penerimaan wajib diisi!'), .typeError('Tanggal penerimaan wajib diisi!'),
warehouse: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
warehouse_id: Yup.number()
.min(1, 'Gudang tujuan wajib diisi!')
.required('Gudang tujuan wajib diisi!')
.test(
'is-valid-warehouse',
'Gudang tujuan harus dipilih!',
function (value) {
if (!this.parent.warehouse) return true;
return Boolean(value && value > 0);
}
)
.typeError('Gudang tujuan harus dipilih!'),
travel_number: Yup.string() travel_number: Yup.string()
.required('No. Surat jalan wajib diisi!') .required('No. Surat jalan wajib diisi!')
.typeError('No. Surat jalan wajib diisi!'), .typeError('No. Surat jalan wajib diisi!'),
@@ -342,7 +316,6 @@ export const PurchaseRequestAcceptApprovalFormInitialValues: PurchaseRequestAcce
{ {
purchase_item_id: 0, purchase_item_id: 0,
received_date: '', received_date: '',
warehouse_id: 0,
travel_number: '', travel_number: '',
travel_document_path: '', travel_document_path: '',
vehicle_number: '', vehicle_number: '',
@@ -363,7 +336,6 @@ export const PurchaseRequestAcceptApprovalFormDefaultValues = (
? purchase.items.map((item) => ({ ? purchase.items.map((item) => ({
purchase_item_id: item.id, purchase_item_id: item.id,
received_date: '', received_date: '',
warehouse_id: 0,
travel_number: '', travel_number: '',
travel_document_path: '', travel_document_path: '',
vehicle_number: '', vehicle_number: '',
@@ -376,7 +348,6 @@ export const PurchaseRequestAcceptApprovalFormDefaultValues = (
{ {
purchase_item_id: 0, purchase_item_id: 0,
received_date: '', received_date: '',
warehouse_id: 0,
travel_number: '', travel_number: '',
travel_document_path: '', travel_document_path: '',
vehicle_number: '', vehicle_number: '',
-1
View File
@@ -103,7 +103,6 @@ export type CreateAcceptApprovalRequestPayload = {
items: { items: {
purchase_item_id: number; purchase_item_id: number;
received_date: string; received_date: string;
warehouse_id: number;
travel_number: string; travel_number: string;
travel_document_path: string; travel_document_path: string;
vehicle_number: string; vehicle_number: string;