mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-25 15:55:48 +00:00
feat(FE-113): create Transfer to Laying Create Form Schema
This commit is contained in:
+83
@@ -0,0 +1,83 @@
|
|||||||
|
import * as Yup from 'yup';
|
||||||
|
|
||||||
|
type TransferToLayingFormSchemaType = {
|
||||||
|
transfer_date?: string;
|
||||||
|
flockSource?: {
|
||||||
|
value: number;
|
||||||
|
label: string;
|
||||||
|
};
|
||||||
|
flockDestination?: {
|
||||||
|
value: number;
|
||||||
|
label: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
totalQuantity?: number;
|
||||||
|
maxTotalQuantity?: number; // original cap (hidden), helper
|
||||||
|
|
||||||
|
kandangs: {
|
||||||
|
kandang: {
|
||||||
|
value: number;
|
||||||
|
label: string;
|
||||||
|
};
|
||||||
|
quantity: number | string; // editable
|
||||||
|
maxQuantity?: number; // original cap (hidden), helper
|
||||||
|
}[];
|
||||||
|
reason?: string;
|
||||||
|
};
|
||||||
|
|
||||||
|
export const TransferToLayingFormSchema: Yup.ObjectSchema<TransferToLayingFormSchemaType> =
|
||||||
|
Yup.object({
|
||||||
|
transfer_date: Yup.string().required('Tanggal transfer wajib diisi!'),
|
||||||
|
|
||||||
|
flockSource: Yup.object({
|
||||||
|
value: Yup.number().min(1).required(),
|
||||||
|
label: Yup.string().required(),
|
||||||
|
}).required('Flock asal wajib diisi!'),
|
||||||
|
|
||||||
|
flockDestination: Yup.object({
|
||||||
|
value: Yup.number().min(1).required(),
|
||||||
|
label: Yup.string().required(),
|
||||||
|
}).required('Flock tujuan wajib diisi!'),
|
||||||
|
|
||||||
|
totalQuantity: Yup.number()
|
||||||
|
.min(1, 'Jumlah transfer minimal 1')
|
||||||
|
.max(
|
||||||
|
Yup.ref('maxTotalQuantity'),
|
||||||
|
({ max }) => `Kuantitas maksimal ${max}!`
|
||||||
|
)
|
||||||
|
.required('Jumlah transfer wajib diisi!'),
|
||||||
|
|
||||||
|
maxTotalQuantity: Yup.number()
|
||||||
|
.min(1, 'Jumlah transfer minimal 1')
|
||||||
|
.required('Jumlah transfer wajib diisi!'),
|
||||||
|
|
||||||
|
kandangs: Yup.array()
|
||||||
|
.of(
|
||||||
|
Yup.object({
|
||||||
|
kandang: Yup.object({
|
||||||
|
value: Yup.number().min(1).required(),
|
||||||
|
label: Yup.string().required(),
|
||||||
|
}).required('Kandang wajib diisi!'),
|
||||||
|
|
||||||
|
quantity: Yup.number()
|
||||||
|
.min(0, 'Kuantitas minimal 0!')
|
||||||
|
.max(
|
||||||
|
Yup.ref('maxQuantity'),
|
||||||
|
({ max }) => `Kuantitas maksimal ${max}!`
|
||||||
|
)
|
||||||
|
.required('Kuantitas wajib diisi!'),
|
||||||
|
|
||||||
|
maxQuantity: Yup.number().min(1).required(), // internal helper field
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.min(1, 'Minimal 1 kandang terisi!')
|
||||||
|
.required('Kandang wajib diisi!'),
|
||||||
|
|
||||||
|
reason: Yup.string().required('Alasan transfer wajib diisi!'),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const UpdateTransferToLayingFormSchema = TransferToLayingFormSchema;
|
||||||
|
|
||||||
|
export type TransferToLayingFormValues = Yup.InferType<
|
||||||
|
typeof TransferToLayingFormSchema
|
||||||
|
>;
|
||||||
Reference in New Issue
Block a user