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',
2 => 'transaction.currency',
3 => 'transaction.account_type',
4 => 'transaction.category_id',
4 => 'transaction.category',
5 => 'transaction.category_type',
6 => 'transaction.date',
7 => 'transaction.bank_account_id',
7 => 'transaction.bank_account',
8 => 'transaction.description',
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',
8 => 'texts.description',
9 => 'texts.type',
10 => 'transaction.credit',
11 => 'transaction.debit',
];
}
}

View File

@ -30,7 +30,7 @@ class BankTransformer extends BaseTransformer
$transformed = [
'bank_integration_id' => $transaction['transaction.bank_integration_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'),
'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,
@ -49,13 +49,35 @@ class BankTransformer extends BaseTransformer
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)
{
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';
}
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')) {
return 'DEBIT';
}

View File

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