diff --git a/src/components/pages/finance/add/FormFinanceAdd.tsx b/src/components/pages/finance/add/FormFinanceAdd.tsx index 9b8259be..f7fdf446 100644 --- a/src/components/pages/finance/add/FormFinanceAdd.tsx +++ b/src/components/pages/finance/add/FormFinanceAdd.tsx @@ -39,6 +39,12 @@ interface FormFinanceAddProps { initialValues?: Finance; } +interface PartyCommonProps { + id: number; + name: string; + account_number: string; +} + const FormFinanceAdd = ({ type = 'add', initialValues, @@ -52,10 +58,12 @@ const FormFinanceAdd = ({ FINANCE_PARTY_TYPE_OPTIONS.find( (option) => option.value === initialValues?.party.type ) || null, - party_id_option: { - label: initialValues?.party.name || '', - value: initialValues?.party.id || 0, - }, + party_id_option: initialValues?.party + ? { + label: initialValues?.party.name || '', + value: initialValues?.party.id || 0, + } + : null, payment_date: initialValues?.payment_date || '', payment_method_option: FINANCE_PAYMENT_METHOD_OPTIONS.find( @@ -97,16 +105,19 @@ const FormFinanceAdd = ({ }); // ===== Options ===== - const { options: partyOptions, isLoadingOptions: isLoadingPartyOptions } = - useSelect( - formik.values.party_type_option?.value === 'CUSTOMER' - ? CustomerApi.basePath - : SupplierApi.basePath, - 'id', - 'name', - '', - { limit: 'limit' } - ); + const { + options: partyOptions, + isLoadingOptions: isLoadingPartyOptions, + rawData: partyRawData, + } = useSelect( + formik.values.party_type_option?.value === 'CUSTOMER' + ? CustomerApi.basePath + : SupplierApi.basePath, + 'id', + 'name', + '', + { limit: 'limit' } + ); const { options: bankOptions, rawData: bankRawData, @@ -204,6 +215,14 @@ const FormFinanceAdd = ({ value={formik.values.party_id_option} onChange={(value) => { formik.setFieldValue('party_id_option', value); + if (isResponseSuccess(partyRawData) && value) { + formik.setFieldValue( + 'party_account_number', + partyRawData.data?.find( + (item) => item.id === (value as OptionType)?.value + )?.account_number || '' + ); + } }} isLoading={isLoadingPartyOptions} isError={Boolean( @@ -312,6 +331,7 @@ const FormFinanceAdd = ({ : '' } required + readOnly />