Improve imports for transactions

This commit is contained in:
David Bomba 2023-06-25 13:15:15 +10:00
parent 32d435d8d7
commit e10df27f4b
3 changed files with 30 additions and 5 deletions

View File

@ -20,12 +20,14 @@ class BankTransactionMap
1 => 'transaction.amount', 1 => 'transaction.amount',
2 => 'transaction.currency', 2 => 'transaction.currency',
3 => 'transaction.account_type', 3 => 'transaction.account_type',
4 => 'transaction.category_id', 4 => 'transaction.category',
5 => 'transaction.category_type', 5 => 'transaction.category_type',
6 => 'transaction.date', 6 => 'transaction.date',
7 => 'transaction.bank_account_id', 7 => 'transaction.bank_account',
8 => 'transaction.description', 8 => 'transaction.description',
9 => 'transaction.base_type', 9 => 'transaction.base_type',
10 => 'transaction.payment_type_Credit',
11 => 'transaction.payment_type_Debit',
]; ];
} }
@ -42,6 +44,8 @@ class BankTransactionMap
7 => 'texts.bank_account_id', 7 => 'texts.bank_account_id',
8 => 'texts.description', 8 => 'texts.description',
9 => 'texts.type', 9 => 'texts.type',
10 => 'transaction.credit',
11 => 'transaction.debit',
]; ];
} }
} }

View File

@ -30,7 +30,7 @@ class BankTransformer extends BaseTransformer
$transformed = [ $transformed = [
'bank_integration_id' => $transaction['transaction.bank_integration_id'], 'bank_integration_id' => $transaction['transaction.bank_integration_id'],
'transaction_id' => $this->getNumber($transaction, 'transaction.transaction_id'), 'transaction_id' => $this->getNumber($transaction, 'transaction.transaction_id'),
'amount' => abs($this->getFloat($transaction, 'transaction.amount')), 'amount' => $this->calculateAmount($transaction),
'currency_id' => $this->getCurrencyByCode($transaction, 'transaction.currency'), 'currency_id' => $this->getCurrencyByCode($transaction, 'transaction.currency'),
'account_type' => strlen($this->getString($transaction, 'transaction.account_type')) > 1 ? $this->getString($transaction, 'transaction.account_type') : 'bank', 'account_type' => strlen($this->getString($transaction, 'transaction.account_type')) > 1 ? $this->getString($transaction, 'transaction.account_type') : 'bank',
'category_id' => $this->getNumber($transaction, 'transaction.category_id') > 0 ? $this->getNumber($transaction, 'transaction.category_id') : null, 'category_id' => $this->getNumber($transaction, 'transaction.category_id') > 0 ? $this->getNumber($transaction, 'transaction.category_id') : null,
@ -49,13 +49,35 @@ class BankTransformer extends BaseTransformer
return $transformed; return $transformed;
} }
private function calculateAmount(array $transaction):float
{
if (array_key_exists('transaction.amount', $transaction) && is_numeric($transaction['transaction.amount'])) {
return abs($this->getFloat($transaction, 'transaction.amount'));
}
if (array_key_exists('transaction.payment_type_Credit', $transaction) && is_numeric($transaction['transaction.payment_type_Credit'])) {
return abs($this->getFloat($transaction, 'transaction.payment_type_Credit'));
}
if (array_key_exists('transaction.payment_type_Debit', $transaction) && is_numeric($transaction['transaction.payment_type_Debit'])) {
return abs($this->getFloat($transaction, 'transaction.payment_type_Debit'));
}
return 0;
}
private function calculateType($transaction) private function calculateType($transaction)
{ {
if (array_key_exists('transaction.base_type', $transaction) && (($transaction['transaction.base_type'] == 'CREDIT') || strtolower($transaction['transaction.base_type']) == 'deposit')) {
if (array_key_exists('transaction.payment_type_Credit', $transaction) && is_numeric($transaction['transaction.payment_type_Credit'])) {
return 'CREDIT'; return 'CREDIT';
} }
if (array_key_exists('transaction.transaction.payment_type_Debit', $transaction) && is_numeric($transaction['transaction.payment_type_Debit'])) {
return 'DEBIT';
}
if (array_key_exists('transaction.base_type', $transaction) && (($transaction['transaction.base_type'] == 'DEBIT') || strtolower($transaction['transaction.base_type']) == 'withdrawal')) { if (array_key_exists('transaction.base_type', $transaction) && (($transaction['transaction.base_type'] == 'DEBIT') || strtolower($transaction['transaction.base_type']) == 'withdrawal')) {
return 'DEBIT'; return 'DEBIT';
} }

View File

@ -30,7 +30,6 @@ class SchedulerRepository extends BaseRepository
$scheduler->save(); $scheduler->save();
/** 18-5-2023 set client specific send times. */
$scheduler->adjustOffset(); $scheduler->adjustOffset();
return $scheduler->fresh(); return $scheduler->fresh();