mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 15:55:48 +00:00
chore: adjust getFilledTransferToLayingFormInitialValues function to set max quantity for flock destination kandang
This commit is contained in:
+42
-27
@@ -1,7 +1,10 @@
|
|||||||
import * as Yup from 'yup';
|
import * as Yup from 'yup';
|
||||||
import { TransferToLaying } from '@/types/api/production/transfer-to-laying';
|
import { TransferToLaying } from '@/types/api/production/transfer-to-laying';
|
||||||
import { TransferToLayingApi } from '@/services/api/production/transfer-to-laying';
|
import { TransferToLayingApi } from '@/services/api/production/transfer-to-laying';
|
||||||
import { formatDate } from '@/lib/helper';
|
import { formatDate, formatNumber } from '@/lib/helper';
|
||||||
|
import { ProjectFlock } from '@/types/api/production/project-flock';
|
||||||
|
import { ProjectFlockApi } from '@/services/api/production/project-flock';
|
||||||
|
import { isResponseSuccess } from '@/lib/api-helper';
|
||||||
|
|
||||||
type TransferToLayingFormSchemaType = {
|
type TransferToLayingFormSchemaType = {
|
||||||
transfer_date?: string;
|
transfer_date?: string;
|
||||||
@@ -14,7 +17,7 @@ type TransferToLayingFormSchemaType = {
|
|||||||
label: string;
|
label: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
totalQuantity?: number;
|
totalQuantity?: number | string;
|
||||||
maxTotalQuantity?: number; // original cap (hidden), helper
|
maxTotalQuantity?: number; // original cap (hidden), helper
|
||||||
|
|
||||||
flockSourceKandangs: {
|
flockSourceKandangs: {
|
||||||
@@ -53,15 +56,15 @@ export const TransferToLayingFormSchema: Yup.ObjectSchema<TransferToLayingFormSc
|
|||||||
}).required('Flock tujuan wajib diisi!'),
|
}).required('Flock tujuan wajib diisi!'),
|
||||||
|
|
||||||
totalQuantity: Yup.number()
|
totalQuantity: Yup.number()
|
||||||
.min(1, 'Jumlah transfer minimal 1')
|
.min(0, 'Jumlah transfer minimal 0')
|
||||||
.max(
|
.max(
|
||||||
Yup.ref('maxTotalQuantity'),
|
Yup.ref('maxTotalQuantity'),
|
||||||
({ max }) => `Kuantitas maksimal ${max}!`
|
({ max }) => `Kuantitas maksimal ${formatNumber(max)}!`
|
||||||
)
|
)
|
||||||
.required('Jumlah transfer wajib diisi!'),
|
.required('Jumlah transfer wajib diisi!'),
|
||||||
|
|
||||||
maxTotalQuantity: Yup.number()
|
maxTotalQuantity: Yup.number()
|
||||||
.min(1, 'Jumlah transfer minimal 1')
|
.min(0, 'Jumlah transfer minimal 0')
|
||||||
.required('Jumlah transfer wajib diisi!'),
|
.required('Jumlah transfer wajib diisi!'),
|
||||||
|
|
||||||
flockSourceKandangs: Yup.array()
|
flockSourceKandangs: Yup.array()
|
||||||
@@ -76,7 +79,7 @@ export const TransferToLayingFormSchema: Yup.ObjectSchema<TransferToLayingFormSc
|
|||||||
.min(0, 'Kuantitas minimal 0!')
|
.min(0, 'Kuantitas minimal 0!')
|
||||||
.max(
|
.max(
|
||||||
Yup.ref('maxQuantity'),
|
Yup.ref('maxQuantity'),
|
||||||
({ max }) => `Kuantitas maksimal ${max}!`
|
({ max }) => `Kuantitas maksimal ${formatNumber(max)}!`
|
||||||
)
|
)
|
||||||
.required('Kuantitas wajib diisi!'),
|
.required('Kuantitas wajib diisi!'),
|
||||||
|
|
||||||
@@ -98,7 +101,7 @@ export const TransferToLayingFormSchema: Yup.ObjectSchema<TransferToLayingFormSc
|
|||||||
.min(0, 'Kuantitas minimal 0!')
|
.min(0, 'Kuantitas minimal 0!')
|
||||||
.max(
|
.max(
|
||||||
Yup.ref('maxQuantity'),
|
Yup.ref('maxQuantity'),
|
||||||
({ max }) => `Kuantitas maksimal ${max}!`
|
({ max }) => `Kuantitas maksimal ${formatNumber(max)}!`
|
||||||
)
|
)
|
||||||
.required('Kuantitas wajib diisi!'),
|
.required('Kuantitas wajib diisi!'),
|
||||||
|
|
||||||
@@ -137,12 +140,12 @@ export const getTransferToLayingFormInitialValues = (
|
|||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
totalQuantity:
|
totalQuantity:
|
||||||
initialValues?.usage_qty ?? initialValues?.pending_usage_qty ?? undefined,
|
initialValues?.usage_qty ?? initialValues?.pending_usage_qty ?? '',
|
||||||
|
|
||||||
flockSourceKandangs: initialValues?.sources
|
flockSourceKandangs: initialValues?.sources
|
||||||
? initialValues.sources.map((sourceKandang) => ({
|
? initialValues.sources.map((sourceKandang) => ({
|
||||||
kandang: {
|
kandang: {
|
||||||
value: sourceKandang.source_project_flock_kandang.kandang.id,
|
value: sourceKandang.source_project_flock_kandang.id,
|
||||||
label: sourceKandang.source_project_flock_kandang.kandang.name,
|
label: sourceKandang.source_project_flock_kandang.kandang.name,
|
||||||
},
|
},
|
||||||
quantity: sourceKandang.qty,
|
quantity: sourceKandang.qty,
|
||||||
@@ -152,7 +155,7 @@ export const getTransferToLayingFormInitialValues = (
|
|||||||
flockDestinationKandangs: initialValues?.targets
|
flockDestinationKandangs: initialValues?.targets
|
||||||
? initialValues.targets.map((targetKandang) => ({
|
? initialValues.targets.map((targetKandang) => ({
|
||||||
kandang: {
|
kandang: {
|
||||||
value: targetKandang.target_project_flock_kandang.kandang.id,
|
value: targetKandang.target_project_flock_kandang.id,
|
||||||
label: targetKandang.target_project_flock_kandang.kandang.name,
|
label: targetKandang.target_project_flock_kandang.kandang.name,
|
||||||
},
|
},
|
||||||
quantity: targetKandang.qty,
|
quantity: targetKandang.qty,
|
||||||
@@ -174,7 +177,7 @@ export const getFilledTransferToLayingFormInitialValues = async (
|
|||||||
const formattedFlockSourceKandangs = initialValues?.sources
|
const formattedFlockSourceKandangs = initialValues?.sources
|
||||||
? initialValues.sources.map((sourceKandang) => ({
|
? initialValues.sources.map((sourceKandang) => ({
|
||||||
kandang: {
|
kandang: {
|
||||||
value: sourceKandang.source_project_flock_kandang.kandang.id,
|
value: sourceKandang.source_project_flock_kandang.id,
|
||||||
label: sourceKandang.source_project_flock_kandang.kandang.name,
|
label: sourceKandang.source_project_flock_kandang.kandang.name,
|
||||||
},
|
},
|
||||||
quantity: sourceKandang.qty,
|
quantity: sourceKandang.qty,
|
||||||
@@ -189,9 +192,35 @@ export const getFilledTransferToLayingFormInitialValues = async (
|
|||||||
|
|
||||||
let maxTotalQuantity = 0;
|
let maxTotalQuantity = 0;
|
||||||
formattedFlockSourceKandangs.forEach((item) => {
|
formattedFlockSourceKandangs.forEach((item) => {
|
||||||
maxTotalQuantity += item.maxQuantity;
|
maxTotalQuantity += item.quantity;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const flockDestination = await ProjectFlockApi.getSingle(
|
||||||
|
initialValues?.to_project_flock.id as number
|
||||||
|
);
|
||||||
|
|
||||||
|
const formattedFlockDestinationKandangs = initialValues?.targets
|
||||||
|
? initialValues.targets.map((targetKandang) => {
|
||||||
|
const kandang = isResponseSuccess(flockDestination)
|
||||||
|
? flockDestination?.data?.kandangs.find(
|
||||||
|
(kandang) =>
|
||||||
|
String(kandang.project_flock_kandang_id) ===
|
||||||
|
String(targetKandang.target_project_flock_kandang.id)
|
||||||
|
)
|
||||||
|
: undefined;
|
||||||
|
|
||||||
|
return {
|
||||||
|
kandang: {
|
||||||
|
value: targetKandang.target_project_flock_kandang.id,
|
||||||
|
label: targetKandang.target_project_flock_kandang.kandang.name,
|
||||||
|
},
|
||||||
|
quantity: targetKandang.qty,
|
||||||
|
|
||||||
|
maxQuantity: kandang?.capacity ?? 0,
|
||||||
|
};
|
||||||
|
})
|
||||||
|
: [];
|
||||||
|
|
||||||
return {
|
return {
|
||||||
transfer_date: initialValues?.transfer_date
|
transfer_date: initialValues?.transfer_date
|
||||||
? formatDate(initialValues.transfer_date, 'YYYY-MM-DD')
|
? formatDate(initialValues.transfer_date, 'YYYY-MM-DD')
|
||||||
@@ -214,21 +243,7 @@ export const getFilledTransferToLayingFormInitialValues = async (
|
|||||||
|
|
||||||
flockSourceKandangs: formattedFlockSourceKandangs,
|
flockSourceKandangs: formattedFlockSourceKandangs,
|
||||||
|
|
||||||
flockDestinationKandangs: initialValues?.targets
|
flockDestinationKandangs: formattedFlockDestinationKandangs,
|
||||||
? initialValues.targets.map((targetKandang) => ({
|
|
||||||
kandang: {
|
|
||||||
value: targetKandang.target_project_flock_kandang.kandang.id,
|
|
||||||
label: targetKandang.target_project_flock_kandang.kandang.name,
|
|
||||||
},
|
|
||||||
quantity: targetKandang.qty,
|
|
||||||
|
|
||||||
// maxQuantity:
|
|
||||||
// targetKandang.target_project_flock_kandang.kandang.capacity,
|
|
||||||
|
|
||||||
// TODO: integrate this to real API kandang capacity
|
|
||||||
maxQuantity: Infinity,
|
|
||||||
}))
|
|
||||||
: [],
|
|
||||||
|
|
||||||
reason: initialValues?.notes ?? undefined,
|
reason: initialValues?.notes ?? undefined,
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user