Better currency validation for foreign amount

This commit is contained in:
James Cole 2024-01-04 07:26:12 +01:00
parent 292b9ac9d0
commit 01c4d25646
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80

View File

@ -50,19 +50,19 @@ trait CurrencyValidation
if (!is_array($transaction)) {
continue;
}
if (!array_key_exists('foreign_amount', $transaction)) {
continue;
}
$foreignAmount = '';
if (array_key_exists('foreign_amount', $transaction)) {
$foreignAmount = (string) $transaction['foreign_amount'];
}
if('' === $foreignAmount) {
continue;
}
// if foreign amount is present, then the currency must be as well.
if (array_key_exists('foreign_amount', $transaction)
&& !(array_key_exists('foreign_currency_id', $transaction)
|| array_key_exists(
'foreign_currency_code',
$transaction
))
&& 0 !== bccomp('0', $transaction['foreign_amount'])
) {
$validator->errors()->add(
'transactions.'.$index.'.foreign_amount',
(string)trans('validation.require_currency_info')
);
if (!(array_key_exists('foreign_currency_id', $transaction) || array_key_exists('foreign_currency_code', $transaction)) && 0 !== bccomp('0', $transaction['foreign_amount'])) {
$validator->errors()->add('transactions.' . $index . '.foreign_amount', (string) trans('validation.require_currency_info'));
}
// if the currency is present, then the amount must be present as well.
if ((array_key_exists('foreign_currency_id', $transaction) || array_key_exists('foreign_currency_code', $transaction))
@ -71,8 +71,8 @@ trait CurrencyValidation
$transaction
)) {
$validator->errors()->add(
'transactions.'.$index.'.foreign_amount',
(string)trans('validation.require_currency_amount')
'transactions.' . $index . '.foreign_amount',
(string) trans('validation.require_currency_amount')
);
}
}