diff --git a/src/pages/transfer/transferfee/blocks/AddDialog.tsx b/src/pages/transfer/transferfee/blocks/AddDialog.tsx
index ff0ff5a..f6a736e 100644
--- a/src/pages/transfer/transferfee/blocks/AddDialog.tsx
+++ b/src/pages/transfer/transferfee/blocks/AddDialog.tsx
@@ -106,6 +106,7 @@ const AddFeeDialog = () => {
created_by: '',
created_at: '',
deduct_from: '',
+ deduct_origin: '00000000-0000-0000-0000-000000000000',
deduct_from_account: '',
credit_to: '',
credit_destination: '00000000-0000-0000-0000-000000000000',
@@ -296,6 +297,14 @@ const AddFeeDialog = () => {
return;
}
+ if (formField.deduct_from === 'I' && !formField.deduct_origin) {
+ setAlert({
+ show: true,
+ message: 'Deduct Origin is required when Input is selected'
+ });
+ setIsSubmitting(false);
+ return;
+ }
setAlert({ show: false, message: '' });
const payload = { ...formField };
@@ -304,6 +313,9 @@ const AddFeeDialog = () => {
payload.credit_destination = '00000000-0000-0000-0000-000000000000';
}
+ if (formField.deduct_from !== 'I') {
+ payload.deduct_origin = '00000000-0000-0000-0000-000000000000';
+ }
try {
const response = await PostData(`${API_URL}/transactionfees/create`, payload);
@@ -557,7 +569,13 @@ const AddFeeDialog = () => {
+ {formField.deduct_from === 'I' && (
+
+
+
+
setOpen(!open)}
+ >
+
+ {customers.find((customer) => customer.id === formField.deduct_origin)
+ ?.username || 'Search customer...'}
+
+
+
+
+ {open && (
+
+
+ setCustomerSearchTerm(e.target.value)}
+ autoComplete="off"
+ onClick={(e) => e.stopPropagation()}
+ autoFocus
+ />
+
+
+ {customers
+ .filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ )
+ .map((customer) => (
+
{
+ setFormField({
+ ...formField,
+ deduct_origin: customer.id
+ });
+ setOpen(false);
+ }}
+ >
+ {customer.username}
+
+ ))}
+ {customers.filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ ).length === 0 && (
+
+ No customer found
+
+ )}
+
+
+ )}
+
+
+ )}
+
{renderSelectWithLoading(
formField.deduct_from_account,
@@ -580,6 +672,7 @@ const AddFeeDialog = () => {
isLoadingWallets
)}
+
)}
+
+ {formField.deduct_from === 'I' && (
+
+
+
+
setOpen(!open)}
+ >
+
+ {customers.find((customer) => customer.id === formField.deduct_origin)
+ ?.username || 'Search customer...'}
+
+
+
+
+ {open && (
+
+
+ setCustomerSearchTerm(e.target.value)}
+ autoComplete="off"
+ onClick={(e) => e.stopPropagation()}
+ autoFocus
+ />
+
+
+ {customers
+ .filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ )
+ .map((customer) => (
+
{
+ setFormField({
+ ...formField,
+ deduct_origin: customer.id
+ });
+ setOpen(false);
+ }}
+ >
+ {customer.username}
+
+ ))}
+ {customers.filter(
+ (customer) =>
+ customer.username
+ .toLowerCase()
+ .includes(customerSearchTerm.toLowerCase()) ||
+ customer.msisdn.includes(customerSearchTerm)
+ ).length === 0 && (
+
+ No customer found
+
+ )}
+
+
+ )}
+
+
+ )}
+
{renderSelectWithLoading(
formField.deduct_from_account,
@@ -630,7 +730,6 @@ const EditFeeDialog = () => {
isLoadingWallets
)}
-
-
-