feat(FE-62,65): add inventory movement management with API and form validation

This commit is contained in:
rstubryan
2025-10-08 15:26:45 +07:00
parent 1968761b5d
commit 7ceb25ea71
4 changed files with 262 additions and 109 deletions
@@ -0,0 +1,67 @@
import * as Yup from 'yup';
export const MovementFormSchema = Yup.object({
alasan_transfer: Yup.string()
.required('Alasan Transfer wajib diisi!'),
tanggal_transfer: Yup.date()
.required('Tanggal Transfer wajib diisi!')
.typeError('Tanggal Transfer tidak valid!'),
warehouse_asal: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
warehouse_asal_id: Yup.number()
.required('Gudang Asal wajib diisi!'),
warehouse_tujuan: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
warehouse_tujuan_id: Yup.number()
.required('Gudang Tujuan wajib diisi!'),
alasan: Yup.string()
.required('Alasan wajib diisi!'),
product: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
product_id: Yup.array()
.of(Yup.number()).min(1, 'Pilih minimal 1 produk')
.required('Produk wajib diisi!'),
qty_product: Yup.array()
.of(Yup.number().min(1, 'Kuantitas minimal 1'))
.min(1, 'Pilih minimal 1 produk')
.required('Kuantitas wajib diisi!'),
ekspedisi: Yup.array().of(
Yup.object({
product: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
product_id: Yup.number()
.required('Produk wajib diisi!'),
qty: Yup.number().min(1, 'Kuantitas minimal 1')
.required('Kuantitas wajib diisi!'),
supplier: Yup.object({
value: Yup.number().min(1).required(),
label: Yup.string().required(),
}).nullable(),
supplier_id: Yup.number()
.required('Supplier wajib diisi!'),
plat_nomor: Yup.string()
.required('Plat Nomor wajib diisi!'),
no_surat_jalan: Yup.string()
.required('No Surat Jalan wajib diisi!'),
dokumen: Yup.mixed()
.required('Dokumen wajib diisi!'),
biaya_ekspedisi: Yup.number()
.min(0, 'Biaya Ekspedisi minimal 0')
.required('Biaya Ekspedisi wajib diisi!'),
nama_sopir: Yup.string()
.required('Nama Sopir wajib diisi!'),
})
).min(1, 'Pilih minimal 1 ekspedisi').required('Ekspedisi wajib diisi!'),
});
export const UpdateMovementFormSchema = MovementFormSchema;
export type MovementFormValues = Yup.InferType<typeof MovementFormSchema>;