fix: make depletion and egg optional

This commit is contained in:
ValdiANS
2026-05-05 16:10:44 +07:00
parent 3945142966
commit 35001ff422
2 changed files with 21 additions and 21 deletions
@@ -42,7 +42,7 @@ type RecordingGrowingFormSchemaType = {
product_warehouse_id?: {
value: number;
label: string;
};
} | null;
source_product_warehouse_id?: number;
qty?: number | string;
}[];
@@ -53,7 +53,7 @@ type RecordingLayingFormSchemaType = RecordingGrowingFormSchemaType & {
product_warehouse_id?: {
value: number;
label: string;
};
} | null;
qty?: number | string;
weight?: number | string;
}[];
@@ -71,7 +71,7 @@ export type DepletionSchema = {
product_warehouse_id?: {
value: number;
label: string;
};
} | null;
source_product_warehouse_id?: number;
qty?: number | string;
};
@@ -80,7 +80,7 @@ export type EggSchema = {
product_warehouse_id?: {
value: number;
label: string;
};
} | null;
qty?: number | string;
weight?: number | string;
};
@@ -104,7 +104,7 @@ const DepletionObjectSchema: Yup.ObjectSchema<DepletionSchema> = Yup.object({
label: Yup.string().required(),
})
.optional()
.typeError('Depletions harus berupa angka!'),
.nullable(),
source_product_warehouse_id: Yup.number()
.optional()
.typeError('Gudang sumber harus berupa angka!'),
@@ -119,7 +119,7 @@ const EggObjectSchema: Yup.ObjectSchema<EggSchema> = Yup.object({
label: Yup.string().required(),
})
.optional()
.typeError('Kondisi telur harus berupa angka!'),
.nullable(),
qty: Yup.number().optional().typeError('Jumlah telur harus berupa angka!'),
weight: Yup.number().optional().typeError('Berat telur harus berupa angka!'),
});
@@ -324,7 +324,7 @@ export const getRecordingLayingFormInitialValues = (
weight: egg.weight,
})) ?? [
{
product_warehouse_id: undefined,
product_warehouse_id: null,
qty: '',
weight: '',
},
@@ -1472,7 +1472,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
(productWarehouseId: number) => {
if ((type === 'edit' || type === 'detail') && initialValues?.stocks) {
const existingStock = initialValues.stocks.find(
(s) => s.product_warehouse_id === productWarehouseId
(s) => Number(s.product_warehouse_id) === Number(productWarehouseId)
) as RecordingStock | undefined;
if (existingStock) {
return {
@@ -1731,14 +1731,14 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('stocks', false, false);
formik.setFieldValue('stocks', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
formik.setFieldTouched('depletions', false, false);
formik.setFieldValue('depletions', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
@@ -1746,7 +1746,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('eggs', false, false);
formik.setFieldValue('eggs', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
weight: '',
},
@@ -1795,14 +1795,14 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('stocks', false, false);
formik.setFieldValue('stocks', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
formik.setFieldTouched('depletions', false, false);
formik.setFieldValue('depletions', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
@@ -1810,7 +1810,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('eggs', false, false);
formik.setFieldValue('eggs', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
weight: '',
},
@@ -1848,14 +1848,14 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('stocks', false, false);
formik.setFieldValue('stocks', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
formik.setFieldTouched('depletions', false, false);
formik.setFieldValue('depletions', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
]);
@@ -1863,7 +1863,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
formik.setFieldTouched('eggs', false, false);
formik.setFieldValue('eggs', [
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
weight: '',
},
@@ -2076,7 +2076,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
const newStocks = [
...(formik.values.stocks || []),
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
];
@@ -2108,7 +2108,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
const newDepletions = [
...(formik.values.depletions || []),
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
];
@@ -2142,7 +2142,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
const newEggs = [
...((formik.values as RecordingLayingFormValues).eggs || []),
{
product_warehouse_id: 0,
product_warehouse_id: null,
qty: '',
},
];
@@ -2185,7 +2185,7 @@ const RecordingForm = ({ type = 'add', initialValues }: RecordingFormProps) => {
if (isLayingCategory && (type as 'add' | 'edit' | 'detail') !== 'detail') {
const layingValues = formik.values as RecordingLayingFormValues;
if (!layingValues.eggs || layingValues.eggs.length === 0) {
setFieldValue('eggs', [{ product_warehouse_id: 0, qty: '' }]);
setFieldValue('eggs', [{ product_warehouse_id: null, qty: '' }]);
}
}
}, [isLayingCategory, type, formik.values, setFieldValue]);