mirror of
https://gitlab.com/mbugroup/lti-web-client.git
synced 2026-05-20 13:32:00 +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(),
|
label: Yup.string().required(),
|
||||||
}).nullable(),
|
}).nullable(),
|
||||||
flock_id: Yup.number().required('Flock wajib diisi!'),
|
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')
|
.required('Tanggal recording wajib diisi')
|
||||||
.typeError('Format tanggal tidak valid'),
|
.typeError('Format tanggal tidak valid'),
|
||||||
data_pakan: Yup.array()
|
feed_data: Yup.array()
|
||||||
.of(
|
.of(
|
||||||
Yup.object({
|
Yup.object({
|
||||||
nama_pakan: Yup.string().required('Nama pakan wajib diisi!'),
|
feed_name: Yup.string().required('Nama pakan wajib diisi!'),
|
||||||
qty_pakan: Yup.number()
|
feed_qty: Yup.number()
|
||||||
.required('Qty pakan wajib diisi!')
|
.required('Qty pakan wajib diisi!')
|
||||||
.min(1, 'Qty minimal 1!'),
|
.min(1, 'Qty minimal 1!'),
|
||||||
stock_pakan: Yup.number()
|
feed_stock: Yup.number()
|
||||||
.required('Stock pakan wajib diisi!')
|
.required('Stock pakan wajib diisi!')
|
||||||
.min(0, 'Stock minimal 0!'),
|
.min(0, 'Stock minimal 0!'),
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.min(1, 'Minimal harus ada 1 data pakan!')
|
.min(1, 'Minimal harus ada 1 data pakan!')
|
||||||
.required('Data pakan wajib diisi!'),
|
.required('Data pakan wajib diisi!'),
|
||||||
bobot_badan: Yup.array()
|
body_weight: Yup.array()
|
||||||
.of(
|
.of(
|
||||||
Yup.object({
|
Yup.object({
|
||||||
berat_ayam: Yup.number()
|
chicken_weight: Yup.number()
|
||||||
.required('Berat ayam wajib diisi!')
|
.required('Berat ayam wajib diisi!')
|
||||||
.min(1, 'Berat minimal 1!'),
|
.min(1, 'Berat minimal 1!'),
|
||||||
jumlah_ayam: Yup.number()
|
chicken_count: Yup.number()
|
||||||
.required('Jumlah ayam wajib diisi!')
|
.required('Jumlah ayam wajib diisi!')
|
||||||
.min(1, 'Jumlah minimal 1!'),
|
.min(1, 'Jumlah minimal 1!'),
|
||||||
rata_rata_berat_ayam: Yup.number()
|
average_chicken_weight: Yup.number()
|
||||||
.required('Rata-rata berat ayam wajib diisi!')
|
.required('Rata-rata berat ayam wajib diisi!')
|
||||||
.min(1, 'Rata-rata minimal 1!'),
|
.min(1, 'Rata-rata minimal 1!'),
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.min(1, 'Minimal harus ada 1 data bobot badan!')
|
.min(1, 'Minimal harus ada 1 data bobot badan!')
|
||||||
.required('Data bobot badan wajib diisi!'),
|
.required('Data bobot badan wajib diisi!'),
|
||||||
vaksinasi: Yup.array()
|
vaccination: Yup.array()
|
||||||
.of(
|
.of(
|
||||||
Yup.object({
|
Yup.object({
|
||||||
nama_vaksin: Yup.string().required('Nama vaksin wajib diisi!'),
|
vaccine_name: Yup.string().required('Nama vaksin wajib diisi!'),
|
||||||
total_stock: Yup.number()
|
total_stock: Yup.number()
|
||||||
.required('Total stock wajib diisi!')
|
.required('Total stock wajib diisi!')
|
||||||
.min(0, 'Total stock minimal 0!'),
|
.min(0, 'Total stock minimal 0!'),
|
||||||
jumlah_stock: Yup.number()
|
used_stock: Yup.number()
|
||||||
.required('Jumlah stock wajib diisi!')
|
.required('Jumlah stock wajib diisi!')
|
||||||
.min(0, 'Jumlah stock minimal 0!'),
|
.min(0, 'Jumlah stock minimal 0!'),
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
.min(1, 'Minimal harus ada 1 data vaksinasi!')
|
.min(1, 'Minimal harus ada 1 data vaksinasi!')
|
||||||
.required('Data vaksinasi wajib diisi!'),
|
.required('Data vaksinasi wajib diisi!'),
|
||||||
mortalitas: Yup.array()
|
mortality: Yup.array()
|
||||||
.of(
|
.of(
|
||||||
Yup.object({
|
Yup.object({
|
||||||
kondisi: Yup.mixed<string>()
|
condition: Yup.mixed<string>()
|
||||||
.oneOf(
|
.oneOf(
|
||||||
RECORDING_FLAG_OPTIONS.map((opt) => opt.value),
|
RECORDING_FLAG_OPTIONS.map((opt) => opt.value),
|
||||||
'Kondisi tidak valid!'
|
'Kondisi tidak valid!'
|
||||||
)
|
)
|
||||||
.required('Kondisi wajib diisi!'),
|
.required('Kondisi wajib diisi!'),
|
||||||
jumlah: Yup.number()
|
count: Yup.number()
|
||||||
.required('Jumlah wajib diisi!')
|
.required('Jumlah wajib diisi!')
|
||||||
.min(1, 'Jumlah minimal 1!'),
|
.min(1, 'Jumlah minimal 1!'),
|
||||||
})
|
})
|
||||||
@@ -87,34 +97,48 @@ export const getRecordingFormInitialValues = (
|
|||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
flock_id: initialValues?.flock?.id ?? 0,
|
flock_id: initialValues?.flock?.id ?? 0,
|
||||||
tanggal_recording: initialValues?.tanggal_recording
|
location: initialValues?.location
|
||||||
? new Date(initialValues.tanggal_recording)
|
? {
|
||||||
|
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(),
|
: new Date(),
|
||||||
data_pakan: initialValues?.data_pakan ?? [
|
feed_data: initialValues?.feed_data ?? [
|
||||||
{
|
{
|
||||||
nama_pakan: '',
|
feed_name: '',
|
||||||
qty_pakan: 0,
|
feed_qty: 0,
|
||||||
stock_pakan: 0,
|
feed_stock: 0,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
bobot_badan: initialValues?.bobot_badan ?? [
|
body_weight: initialValues?.body_weight ?? [
|
||||||
{
|
{
|
||||||
berat_ayam: 0,
|
chicken_weight: 0,
|
||||||
jumlah_ayam: 0,
|
chicken_count: 0,
|
||||||
rata_rata_berat_ayam: 0,
|
average_chicken_weight: 0,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
vaksinasi: initialValues?.vaksinasi ?? [
|
vaccination: initialValues?.vaccination ?? [
|
||||||
{
|
{
|
||||||
nama_vaksin: '',
|
vaccine_name: '',
|
||||||
total_stock: 0,
|
total_stock: 0,
|
||||||
jumlah_stock: 0,
|
used_stock: 0,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
mortalitas: initialValues?.mortalitas ?? [
|
mortality: initialValues?.mortality ?? [
|
||||||
{
|
{
|
||||||
kondisi: '',
|
condition: '',
|
||||||
jumlah: 0,
|
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 { BaseMetadata } from '@/types/api/api-general';
|
||||||
import { Flock } from '@/types/api/flock/flock';
|
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 = {
|
export type BaseRecording = {
|
||||||
id: number;
|
id: number;
|
||||||
flock: Flock;
|
flock: Flock;
|
||||||
tanggal_recording: string;
|
recording_date: string;
|
||||||
data_pakan: {
|
location: Location;
|
||||||
nama_pakan: string;
|
coop: Kandang;
|
||||||
qty_pakan: number;
|
feed_data: {
|
||||||
stock_pakan: number;
|
feed_name: string;
|
||||||
|
feed_qty: number;
|
||||||
|
feed_stock: number;
|
||||||
}[];
|
}[];
|
||||||
bobot_badan: {
|
body_weight: {
|
||||||
berat_ayam: number;
|
chicken_weight: number;
|
||||||
jumlah_ayam: number;
|
chicken_count: number;
|
||||||
rata_rata_berat_ayam: number;
|
average_chicken_weight: number;
|
||||||
}[];
|
}[];
|
||||||
vaksinasi: {
|
vaccination: {
|
||||||
nama_vaksin: string;
|
vaccine_name: string;
|
||||||
total_stock: number;
|
total_stock: number;
|
||||||
jumlah_stock: number;
|
used_stock: number;
|
||||||
}[];
|
}[];
|
||||||
mortalitas: {
|
mortality: {
|
||||||
kondisi: string;
|
condition: string;
|
||||||
jumlah: number;
|
count: number;
|
||||||
}[];
|
}[];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -30,25 +34,27 @@ export type Recording = BaseMetadata & BaseRecording;
|
|||||||
|
|
||||||
export type CreateRecordingPayload = {
|
export type CreateRecordingPayload = {
|
||||||
flock_id: number;
|
flock_id: number;
|
||||||
tanggal_recording: string;
|
recording_date: string;
|
||||||
data_pakan: {
|
location_id: number;
|
||||||
nama_pakan: string;
|
coop_id: number;
|
||||||
qty_pakan: number;
|
feed_data: {
|
||||||
stock_pakan: number;
|
feed_name: string;
|
||||||
|
feed_qty: number;
|
||||||
|
feed_stock: number;
|
||||||
}[];
|
}[];
|
||||||
bobot_badan: {
|
body_weight: {
|
||||||
berat_ayam: number;
|
chicken_weight: number;
|
||||||
jumlah_ayam: number;
|
chicken_count: number;
|
||||||
rata_rata_berat_ayam: number;
|
average_chicken_weight: number;
|
||||||
}[];
|
}[];
|
||||||
vaksinasi: {
|
vaccination: {
|
||||||
nama_vaksin: string;
|
vaccine_name: string;
|
||||||
total_stock: number;
|
total_stock: number;
|
||||||
jumlah_stock: number;
|
used_stock: number;
|
||||||
}[];
|
}[];
|
||||||
mortalitas: {
|
mortality: {
|
||||||
kondisi: string;
|
condition: string;
|
||||||
jumlah: number;
|
count: number;
|
||||||
}[];
|
}[];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user