diff --git a/src/components/pages/expense/form/ExpenseRequestForm.schema.ts b/src/components/pages/expense/form/ExpenseRequestForm.schema.ts index 7758df83..134da3be 100644 --- a/src/components/pages/expense/form/ExpenseRequestForm.schema.ts +++ b/src/components/pages/expense/form/ExpenseRequestForm.schema.ts @@ -11,6 +11,7 @@ type ExpenseFormSchemaType = { value: number; label: string; }; + location_id: number; transaction_date?: string; kandangs?: { id: number; name: string }[]; supplier?: { @@ -46,6 +47,8 @@ export const ExpenseRequestFormSchema: Yup.ObjectSchema = label: Yup.string().required(), }).required('Lokasi wajib diisi!'), + location_id: Yup.number().min(1).required('Lokasi wajib diisi!'), + transaction_date: Yup.string().required('Tanggal transaksi wajib diisi!'), kandangs: Yup.array() .of( @@ -128,6 +131,7 @@ export const getExpenseFormInitialValues = ( label: initialValues.location.name, } : undefined, + location_id: Number(initialValues?.location.id || 0), transaction_date: initialValues?.transaction_date ? formatDate(initialValues.transaction_date, 'YYYY-MM-DD') : undefined, diff --git a/src/components/pages/expense/form/ExpenseRequestForm.tsx b/src/components/pages/expense/form/ExpenseRequestForm.tsx index 71160785..10c222eb 100644 --- a/src/components/pages/expense/form/ExpenseRequestForm.tsx +++ b/src/components/pages/expense/form/ExpenseRequestForm.tsx @@ -108,6 +108,7 @@ const ExpenseRequestForm = ({ const expensePayload: CreateExpensePayload = { category: formik.values.category?.value as 'BOP' | 'NON-BOP', + location_id: values.location_id as number, transaction_date: values?.transaction_date as string, supplier_id: values.supplier?.value as number, documents: values.documents as File[], @@ -130,6 +131,7 @@ const ExpenseRequestForm = ({ case 'edit': const expenseUpdatePayload: UpdateExpensePayload = { category: formik.values.category?.value as 'BOP' | 'NON-BOP', + location_id: values.location_id as number, transaction_date: values?.transaction_date as string, supplier_id: values.supplier?.value as number, documents: values.documents as File[], @@ -179,6 +181,9 @@ const ExpenseRequestForm = ({ formik.setFieldTouched('location', true); formik.setFieldValue('location', val); + const locationId = Array.isArray(val) ? val[0]?.value : val?.value; + formik.setFieldValue('location_id', locationId); + formik.setFieldValue('kandangs', []); formik.setFieldValue('expense_nonstocks', []); }; @@ -454,7 +459,9 @@ const ExpenseRequestForm = ({ )} ; + supplierId?: number; className?: { wrapper?: string; }; @@ -28,12 +29,18 @@ interface ExpenseRequestKandangDetailExpenseProps { const ExpenseRequestKandangDetailExpense: React.FC< ExpenseRequestKandangDetailExpenseProps -> = ({ type, formik, className }) => { +> = ({ type, formik, supplierId, className }) => { const { setInputValue: setNonstockInputValue, options: nonstockOptions, isLoadingOptions: isLoadingNonstockOptions, - } = useSelect(NonstockApi.basePath, 'id', 'name'); + } = useSelect( + NonstockApi.basePath, + 'id', + 'name', + 'search', + supplierId ? { supplier_id: String(supplierId) } : undefined + ); const nonstockChangeHandler = ( kandangExpenseIdx: number, diff --git a/src/services/api/expense.ts b/src/services/api/expense.ts index 44a855f4..70e0e339 100644 --- a/src/services/api/expense.ts +++ b/src/services/api/expense.ts @@ -483,6 +483,7 @@ export class ExpenseApiService extends BaseApiService< const formData = new FormData(); formData.append('category', payload.category); + formData.append('location_id', String(payload.location_id)); formData.append('transaction_date', payload.transaction_date); formData.append('supplier_id', String(payload.supplier_id)); @@ -505,6 +506,7 @@ export class ExpenseApiService extends BaseApiService< const formData = new FormData(); formData.append('category', payload.category); + formData.append('location_id', String(payload.location_id)); formData.append('transaction_date', payload.transaction_date); formData.append('supplier_id', String(payload.supplier_id)); diff --git a/src/types/api/expense.d.ts b/src/types/api/expense.d.ts index a62066ba..ff7ead09 100644 --- a/src/types/api/expense.d.ts +++ b/src/types/api/expense.d.ts @@ -57,6 +57,7 @@ export type Expense = BaseMetadata & BaseExpense; export type CreateExpensePayload = { category: 'BOP' | 'NON-BOP'; + location_id: number; transaction_date: string; supplier_id: number; documents: File[]; @@ -72,6 +73,7 @@ export type CreateExpensePayload = { }; export type UpdateExpensePayload = { + location_id: number; category: 'BOP' | 'NON-BOP'; transaction_date: string; supplier_id: number;