mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +00:00
fix(FE): adding standard fcr to growing production standard
This commit is contained in:
+1
-1
@@ -32,7 +32,7 @@ const GrowingRepeaterFormSchema = Yup.object({
|
||||
target_hen_house_production: Yup.number().optional(),
|
||||
target_egg_weight: Yup.number().optional(),
|
||||
target_egg_mass: Yup.number().optional(),
|
||||
standard_fcr: Yup.number().optional(),
|
||||
standard_fcr: Yup.number().required('Wajib diisi!'),
|
||||
}).optional(),
|
||||
});
|
||||
|
||||
|
||||
+38
-18
@@ -386,14 +386,6 @@ const ProductionStandardForm = ({
|
||||
`${row.original.production_standard_details?.target_egg_mass} kg`,
|
||||
enableSorting: false,
|
||||
},
|
||||
{
|
||||
header: 'FCR',
|
||||
accessorFn: (row) =>
|
||||
row.production_standard_details?.standard_fcr,
|
||||
cell: ({ row }) =>
|
||||
`${row.original.production_standard_details?.standard_fcr} g`,
|
||||
enableSorting: false,
|
||||
},
|
||||
]
|
||||
: [];
|
||||
|
||||
@@ -468,6 +460,13 @@ const ProductionStandardForm = ({
|
||||
return [
|
||||
...baseColumns,
|
||||
...productionColumns,
|
||||
{
|
||||
header: 'FCR',
|
||||
accessorFn: (row) => row.production_standard_details?.standard_fcr,
|
||||
cell: ({ row }) =>
|
||||
`${row.original.production_standard_details?.standard_fcr} g`,
|
||||
enableSorting: false,
|
||||
},
|
||||
...uniformityColumns,
|
||||
...(formType !== 'detail' ? [actionColumn] : []),
|
||||
];
|
||||
@@ -753,24 +752,46 @@ const ProductionStandardForm = ({
|
||||
e.preventDefault();
|
||||
|
||||
// For GROWING category, clear production_standard_details errors and set default values
|
||||
// but preserve standard_fcr since it's used for both LAYING and GROWING
|
||||
if (formik.values.project_category === 'GROWING') {
|
||||
// Set default values for production_standard_details
|
||||
// Set default values for production_standard_details, preserving standard_fcr
|
||||
formik.values.details?.forEach((detail) => {
|
||||
detail.production_standard_details = {
|
||||
target_hen_day_production: 0,
|
||||
target_hen_house_production: 0,
|
||||
target_egg_weight: 0,
|
||||
target_egg_mass: 0,
|
||||
standard_fcr: 0,
|
||||
standard_fcr:
|
||||
detail.production_standard_details?.standard_fcr || 0,
|
||||
};
|
||||
});
|
||||
|
||||
// Clear any errors related to production_standard_details
|
||||
// Clear errors only for LAYING-specific fields in production_standard_details
|
||||
// Preserve standard_fcr error since it's required for both categories
|
||||
const currentErrors = { ...formik.errors };
|
||||
if (currentErrors.details && Array.isArray(currentErrors.details)) {
|
||||
const cleanedDetails = currentErrors.details
|
||||
.map((detailError) => {
|
||||
if (detailError && typeof detailError === 'object') {
|
||||
const prodDetails = (
|
||||
detailError as {
|
||||
production_standard_details?: ProductionDetailsErrors;
|
||||
}
|
||||
).production_standard_details;
|
||||
|
||||
// If there's standard_fcr error, preserve it
|
||||
if (prodDetails && prodDetails.standard_fcr) {
|
||||
const { production_standard_details, ...rest } =
|
||||
detailError;
|
||||
return {
|
||||
...rest,
|
||||
production_standard_details: {
|
||||
standard_fcr: prodDetails.standard_fcr,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// Otherwise, remove entire production_standard_details errors
|
||||
const { production_standard_details, ...rest } = detailError;
|
||||
return Object.keys(rest).length > 0 ? rest : undefined;
|
||||
}
|
||||
@@ -896,7 +917,7 @@ const ProductionStandardForm = ({
|
||||
gridTemplateColumns:
|
||||
formik.values.project_category === 'LAYING'
|
||||
? 'repeat(10, minmax(auto, 1fr)) minmax(auto, auto)'
|
||||
: 'repeat(4, minmax(auto, 1fr)) minmax(auto, auto)',
|
||||
: 'repeat(5, minmax(auto, 1fr)) minmax(auto, auto)',
|
||||
}}
|
||||
>
|
||||
<NumberInput
|
||||
@@ -1042,20 +1063,21 @@ const ProductionStandardForm = ({
|
||||
)
|
||||
}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
<NumberInput
|
||||
name='production_standard_details.standard_fcr'
|
||||
label='FCR'
|
||||
placeholder='1'
|
||||
value={
|
||||
repeaterFormik.values
|
||||
.production_standard_details?.standard_fcr
|
||||
repeaterFormik.values.production_standard_details
|
||||
?.standard_fcr
|
||||
}
|
||||
onChange={repeaterFormik.handleChange}
|
||||
onBlur={repeaterFormik.handleBlur}
|
||||
bottomLabel='Gram (g)'
|
||||
errorMessage={getProductionDetailsError(
|
||||
repeaterFormik.errors
|
||||
.production_standard_details,
|
||||
repeaterFormik.errors.production_standard_details,
|
||||
'standard_fcr'
|
||||
)}
|
||||
isError={
|
||||
@@ -1073,8 +1095,6 @@ const ProductionStandardForm = ({
|
||||
)
|
||||
}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
<NumberInput
|
||||
name='production_standard_uniformity_details.target_mean_bw'
|
||||
label='Mean BW'
|
||||
|
||||
Reference in New Issue
Block a user