mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 05:22:02 +00:00
refactor(FE-114,136): update RecordingForm schema and types to include location and coop fields
This commit is contained in:
@@ -8,63 +8,73 @@ export const RecordingFormSchema = Yup.object({
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
flock_id: Yup.number().required('Flock wajib diisi!'),
|
||||
tanggal_recording: Yup.date()
|
||||
location: Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
location_id: Yup.number().required('Lokasi wajib diisi!'),
|
||||
coop: Yup.object({
|
||||
value: Yup.number().min(1).required(),
|
||||
label: Yup.string().required(),
|
||||
}).nullable(),
|
||||
coop_id: Yup.number().required('Kandang wajib diisi!'),
|
||||
recording_date: Yup.date()
|
||||
.required('Tanggal recording wajib diisi')
|
||||
.typeError('Format tanggal tidak valid'),
|
||||
data_pakan: Yup.array()
|
||||
feed_data: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
nama_pakan: Yup.string().required('Nama pakan wajib diisi!'),
|
||||
qty_pakan: Yup.number()
|
||||
feed_name: Yup.string().required('Nama pakan wajib diisi!'),
|
||||
feed_qty: Yup.number()
|
||||
.required('Qty pakan wajib diisi!')
|
||||
.min(1, 'Qty minimal 1!'),
|
||||
stock_pakan: Yup.number()
|
||||
feed_stock: Yup.number()
|
||||
.required('Stock pakan wajib diisi!')
|
||||
.min(0, 'Stock minimal 0!'),
|
||||
})
|
||||
)
|
||||
.min(1, 'Minimal harus ada 1 data pakan!')
|
||||
.required('Data pakan wajib diisi!'),
|
||||
bobot_badan: Yup.array()
|
||||
body_weight: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
berat_ayam: Yup.number()
|
||||
chicken_weight: Yup.number()
|
||||
.required('Berat ayam wajib diisi!')
|
||||
.min(1, 'Berat minimal 1!'),
|
||||
jumlah_ayam: Yup.number()
|
||||
chicken_count: Yup.number()
|
||||
.required('Jumlah ayam wajib diisi!')
|
||||
.min(1, 'Jumlah minimal 1!'),
|
||||
rata_rata_berat_ayam: Yup.number()
|
||||
average_chicken_weight: Yup.number()
|
||||
.required('Rata-rata berat ayam wajib diisi!')
|
||||
.min(1, 'Rata-rata minimal 1!'),
|
||||
})
|
||||
)
|
||||
.min(1, 'Minimal harus ada 1 data bobot badan!')
|
||||
.required('Data bobot badan wajib diisi!'),
|
||||
vaksinasi: Yup.array()
|
||||
vaccination: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
nama_vaksin: Yup.string().required('Nama vaksin wajib diisi!'),
|
||||
vaccine_name: Yup.string().required('Nama vaksin wajib diisi!'),
|
||||
total_stock: Yup.number()
|
||||
.required('Total stock wajib diisi!')
|
||||
.min(0, 'Total stock minimal 0!'),
|
||||
jumlah_stock: Yup.number()
|
||||
used_stock: Yup.number()
|
||||
.required('Jumlah stock wajib diisi!')
|
||||
.min(0, 'Jumlah stock minimal 0!'),
|
||||
})
|
||||
)
|
||||
.min(1, 'Minimal harus ada 1 data vaksinasi!')
|
||||
.required('Data vaksinasi wajib diisi!'),
|
||||
mortalitas: Yup.array()
|
||||
mortality: Yup.array()
|
||||
.of(
|
||||
Yup.object({
|
||||
kondisi: Yup.mixed<string>()
|
||||
condition: Yup.mixed<string>()
|
||||
.oneOf(
|
||||
RECORDING_FLAG_OPTIONS.map((opt) => opt.value),
|
||||
'Kondisi tidak valid!'
|
||||
)
|
||||
.required('Kondisi wajib diisi!'),
|
||||
jumlah: Yup.number()
|
||||
count: Yup.number()
|
||||
.required('Jumlah wajib diisi!')
|
||||
.min(1, 'Jumlah minimal 1!'),
|
||||
})
|
||||
@@ -87,34 +97,48 @@ export const getRecordingFormInitialValues = (
|
||||
}
|
||||
: null,
|
||||
flock_id: initialValues?.flock?.id ?? 0,
|
||||
tanggal_recording: initialValues?.tanggal_recording
|
||||
? new Date(initialValues.tanggal_recording)
|
||||
location: initialValues?.location
|
||||
? {
|
||||
value: initialValues.location.id,
|
||||
label: initialValues.location.name,
|
||||
}
|
||||
: null,
|
||||
location_id: initialValues?.location?.id ?? 0,
|
||||
coop: initialValues?.coop
|
||||
? {
|
||||
value: initialValues.coop.id,
|
||||
label: initialValues.coop.name,
|
||||
}
|
||||
: null,
|
||||
coop_id: initialValues?.coop?.id ?? 0,
|
||||
recording_date: initialValues?.recording_date
|
||||
? new Date(initialValues.recording_date)
|
||||
: new Date(),
|
||||
data_pakan: initialValues?.data_pakan ?? [
|
||||
feed_data: initialValues?.feed_data ?? [
|
||||
{
|
||||
nama_pakan: '',
|
||||
qty_pakan: 0,
|
||||
stock_pakan: 0,
|
||||
feed_name: '',
|
||||
feed_qty: 0,
|
||||
feed_stock: 0,
|
||||
},
|
||||
],
|
||||
bobot_badan: initialValues?.bobot_badan ?? [
|
||||
body_weight: initialValues?.body_weight ?? [
|
||||
{
|
||||
berat_ayam: 0,
|
||||
jumlah_ayam: 0,
|
||||
rata_rata_berat_ayam: 0,
|
||||
chicken_weight: 0,
|
||||
chicken_count: 0,
|
||||
average_chicken_weight: 0,
|
||||
},
|
||||
],
|
||||
vaksinasi: initialValues?.vaksinasi ?? [
|
||||
vaccination: initialValues?.vaccination ?? [
|
||||
{
|
||||
nama_vaksin: '',
|
||||
vaccine_name: '',
|
||||
total_stock: 0,
|
||||
jumlah_stock: 0,
|
||||
used_stock: 0,
|
||||
},
|
||||
],
|
||||
mortalitas: initialValues?.mortalitas ?? [
|
||||
mortality: initialValues?.mortality ?? [
|
||||
{
|
||||
kondisi: '',
|
||||
jumlah: 0,
|
||||
condition: '',
|
||||
count: 0,
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Vendored
+36
-30
@@ -1,28 +1,32 @@
|
||||
import { BaseMetadata } from '@/types/api/api-general';
|
||||
import { Flock } from '@/types/api/flock/flock';
|
||||
import { Location } from '@/types/api/master-data/location';
|
||||
import { Kandang } from '@/types/api/master-data/kandang';
|
||||
|
||||
export type BaseRecording = {
|
||||
id: number;
|
||||
flock: Flock;
|
||||
tanggal_recording: string;
|
||||
data_pakan: {
|
||||
nama_pakan: string;
|
||||
qty_pakan: number;
|
||||
stock_pakan: number;
|
||||
recording_date: string;
|
||||
location: Location;
|
||||
coop: Kandang;
|
||||
feed_data: {
|
||||
feed_name: string;
|
||||
feed_qty: number;
|
||||
feed_stock: number;
|
||||
}[];
|
||||
bobot_badan: {
|
||||
berat_ayam: number;
|
||||
jumlah_ayam: number;
|
||||
rata_rata_berat_ayam: number;
|
||||
body_weight: {
|
||||
chicken_weight: number;
|
||||
chicken_count: number;
|
||||
average_chicken_weight: number;
|
||||
}[];
|
||||
vaksinasi: {
|
||||
nama_vaksin: string;
|
||||
vaccination: {
|
||||
vaccine_name: string;
|
||||
total_stock: number;
|
||||
jumlah_stock: number;
|
||||
used_stock: number;
|
||||
}[];
|
||||
mortalitas: {
|
||||
kondisi: string;
|
||||
jumlah: number;
|
||||
mortality: {
|
||||
condition: string;
|
||||
count: number;
|
||||
}[];
|
||||
};
|
||||
|
||||
@@ -30,25 +34,27 @@ export type Recording = BaseMetadata & BaseRecording;
|
||||
|
||||
export type CreateRecordingPayload = {
|
||||
flock_id: number;
|
||||
tanggal_recording: string;
|
||||
data_pakan: {
|
||||
nama_pakan: string;
|
||||
qty_pakan: number;
|
||||
stock_pakan: number;
|
||||
recording_date: string;
|
||||
location_id: number;
|
||||
coop_id: number;
|
||||
feed_data: {
|
||||
feed_name: string;
|
||||
feed_qty: number;
|
||||
feed_stock: number;
|
||||
}[];
|
||||
bobot_badan: {
|
||||
berat_ayam: number;
|
||||
jumlah_ayam: number;
|
||||
rata_rata_berat_ayam: number;
|
||||
body_weight: {
|
||||
chicken_weight: number;
|
||||
chicken_count: number;
|
||||
average_chicken_weight: number;
|
||||
}[];
|
||||
vaksinasi: {
|
||||
nama_vaksin: string;
|
||||
vaccination: {
|
||||
vaccine_name: string;
|
||||
total_stock: number;
|
||||
jumlah_stock: number;
|
||||
used_stock: number;
|
||||
}[];
|
||||
mortalitas: {
|
||||
kondisi: string;
|
||||
jumlah: number;
|
||||
mortality: {
|
||||
condition: string;
|
||||
count: number;
|
||||
}[];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user