feat(FE-337): slicing ui form finance and API integration

This commit is contained in:
randy-ar
2025-12-28 04:28:02 +07:00
parent 6ea25aa3b1
commit 731bec5a94
21 changed files with 1522 additions and 192 deletions
@@ -15,18 +15,6 @@ import { OptionType } from '@/components/input/SelectInput';
}
*/
// Type for API payload (what gets sent to the server)
export type FinancePayload = {
party_id: number;
party_type: string;
payment_date: string;
payment_method: string;
bank_id: number;
reference_number: string;
nominal: number;
notes: string;
};
// Type for form values (includes option objects for SelectInput)
export type FinanceFormValues = {
party_type_option: OptionType | null;
@@ -41,32 +29,36 @@ export type FinanceFormValues = {
};
export const FinanceFormSchema = Yup.object().shape({
party_type_option: Yup.object({
label: Yup.string().required('Wajib Diisi'),
value: Yup.string().required('Wajib Diisi'),
})
party_type_option: Yup.mixed()
.nullable()
.required('Jenis transaksi wajib diisi'),
party_id_option: Yup.object({
label: Yup.string().required('Wajib Diisi'),
value: Yup.number().required('Wajib Diisi'),
})
.test(
'is-valid-option',
'Jenis transaksi wajib diisi',
(value) => value !== null && value !== undefined
),
party_id_option: Yup.mixed()
.nullable()
.required('Pihak wajib diisi'),
.test(
'is-valid-option',
'Pihak wajib diisi',
(value) => value !== null && value !== undefined
),
party_account_number: Yup.string().required('Nomor rekening wajib diisi'),
payment_date: Yup.string().required('Tanggal pembayaran wajib diisi'),
payment_method_option: Yup.object({
label: Yup.string().required('Wajib Diisi'),
value: Yup.string().required('Wajib Diisi'),
})
payment_method_option: Yup.mixed()
.nullable()
.required('Metode pembayaran wajib diisi'),
bank_id_option: Yup.object({
label: Yup.string().required('Wajib Diisi'),
value: Yup.number().required('Wajib Diisi'),
})
.test(
'is-valid-option',
'Metode pembayaran wajib diisi',
(value) => value !== null && value !== undefined
),
bank_id_option: Yup.mixed()
.nullable()
.required('Bank wajib diisi'),
.test(
'is-valid-option',
'Bank wajib diisi',
(value) => value !== null && value !== undefined
),
reference_number: Yup.string().required('Nomor referensi wajib diisi'),
nominal: Yup.string().required('Nominal wajib diisi'),
notes: Yup.string().required('Catatan wajib diisi'),