diff --git a/src/components/pages/purchase/form/PurchaseForm.schema.ts b/src/components/pages/purchase/form/PurchaseRequestForm.schema.ts similarity index 59% rename from src/components/pages/purchase/form/PurchaseForm.schema.ts rename to src/components/pages/purchase/form/PurchaseRequestForm.schema.ts index 49292e95..3b21b97a 100644 --- a/src/components/pages/purchase/form/PurchaseForm.schema.ts +++ b/src/components/pages/purchase/form/PurchaseRequestForm.schema.ts @@ -1,7 +1,7 @@ import * as Yup from 'yup'; -import { CreatePurchaseRequestPayload } from '@/types/api/purchasing/purchasing'; import { Supplier } from '@/types/api/master-data/supplier'; import { Warehouse } from '@/types/api/master-data/warehouse'; +import { CreatePurchaseRequestPayload } from '@/types/api/purchase/purchase'; export const PurchaseRequestFormSchema = Yup.object({ supplier: Yup.object({ @@ -33,7 +33,7 @@ export const PurchaseRequestFormSchema = Yup.object({ .required('Warehouse wajib diisi!'), credit_term: Yup.number() .required('Termin kredit wajib diisi!') - .min(0, 'Termin kredit tidak boleh negatif!') + .min(1, 'Termin kredit tidak boleh negatif!') .typeError('Termin kredit harus berupa angka!'), notes: Yup.string().optional().nullable(), purchase_items: Yup.array() @@ -44,16 +44,16 @@ export const PurchaseRequestFormSchema = Yup.object({ .min(1, 'Produk wajib diisi!') .typeError('Produk harus berupa angka!'), product_warehouse_id: Yup.number() - .optional() - .nullable() + .required('Product warehouse wajib diisi!') + .min(1, 'Product warehouse wajib diisi!') .typeError('Product warehouse harus berupa angka!'), total_qty: Yup.number() .required('Jumlah total wajib diisi!') - .min(0, 'Jumlah total tidak boleh negatif!') + .min(1, 'Jumlah total tidak boleh negatif!') .typeError('Jumlah total harus berupa angka!'), price: Yup.number() .required('Harga wajib diisi!') - .min(0, 'Harga tidak boleh negatif!') + .min(1, 'Harga tidak boleh negatif!') .typeError('Harga harus berupa angka!'), }) ) @@ -61,63 +61,7 @@ export const PurchaseRequestFormSchema = Yup.object({ .required('Item pembelian wajib diisi!'), }); -export const UpdatePurchaseRequestFormSchema = Yup.object({ - supplier: Yup.object({ - value: Yup.number().min(1).required(), - label: Yup.string().required(), - }).nullable(), - supplier_id: Yup.number() - .default(0) - .typeError('Supplier wajib diisi!') - .test( - 'is-valid-supplier', - 'Supplier wajib diisi!', - (value) => value !== undefined && value !== null && value > 0 - ) - .required('Supplier wajib diisi!'), - warehouse: Yup.array() - .of( - Yup.object({ - value: Yup.number().min(1).required(), - label: Yup.string().required(), - }) - ) - .min(1, 'Minimal harus ada 1 warehouse!') - .required('Warehouse wajib diisi!') - .nullable(), - warehouse_ids: Yup.array() - .of(Yup.number().min(1)) - .min(1, 'Minimal harus ada 1 warehouse!') - .required('Warehouse wajib diisi!'), - credit_term: Yup.number() - .required('Termin kredit wajib diisi!') - .min(0, 'Termin kredit tidak boleh negatif!') - .typeError('Termin kredit harus berupa angka!'), - notes: Yup.string().optional().nullable(), - purchase_items: Yup.array() - .of( - Yup.object({ - product_id: Yup.number() - .required('Produk wajib diisi!') - .min(1, 'Produk wajib diisi!') - .typeError('Produk harus berupa angka!'), - product_warehouse_id: Yup.number() - .optional() - .nullable() - .typeError('Product warehouse harus berupa angka!'), - total_qty: Yup.number() - .required('Jumlah total wajib diisi!') - .min(0, 'Jumlah total tidak boleh negatif!') - .typeError('Jumlah total harus berupa angka!'), - price: Yup.number() - .required('Harga wajib diisi!') - .min(0, 'Harga tidak boleh negatif!') - .typeError('Harga harus berupa angka!'), - }) - ) - .min(1, 'Minimal harus ada 1 item pembelian!') - .required('Item pembelian wajib diisi!'), -}); +export const UpdatePurchaseRequestFormSchema = PurchaseRequestFormSchema; export type PurchaseRequestFormValues = Yup.InferType< typeof PurchaseRequestFormSchema @@ -157,7 +101,7 @@ export const getPurchaseRequestFormInitialValues = ( ) ?? [ { product_id: 0, - product_warehouse_id: null, + product_warehouse_id: 0, total_qty: 0, price: 0, }, diff --git a/src/services/api/purchasing.ts b/src/services/api/purchasing.ts index 71e6f60f..6f0fd8ee 100644 --- a/src/services/api/purchasing.ts +++ b/src/services/api/purchasing.ts @@ -3,7 +3,7 @@ import { CreatePurchasePayload, Purchase, UpdatePurchasePayload, -} from '@/types/api/purchasing/purchasing'; +} from '@/types/api/purchase/purchasing'; export const PurchaseApi = new BaseApiService< Purchase, diff --git a/src/types/api/purchasing/purchasing.d.ts b/src/types/api/purchase/purchase.d.ts similarity index 95% rename from src/types/api/purchasing/purchasing.d.ts rename to src/types/api/purchase/purchase.d.ts index eea53e1d..afb6cc60 100644 --- a/src/types/api/purchasing/purchasing.d.ts +++ b/src/types/api/purchase/purchase.d.ts @@ -26,7 +26,7 @@ export type CreatePurchaseRequestPayload = { notes?: string | null; purchase_items: { product_id: number; - product_warehouse_id?: number | null; + product_warehouse_id: number; total_qty: number; price: number; }[];