From a7f2e438f247927d1bf167f16fff01d918c9d261 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 18:19:16 +0100 Subject: [PATCH 1/8] changes --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index ebef634daa45..d16943e3129e 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -112,8 +112,8 @@ class TransactionTransformer implements BankRevenueInterface // enrich description with currencyExchange informations if (isset($transaction['currencyExchange'])) { foreach ($transaction["currencyExchange"] as $exchangeRate) { - $targetAmount = round($amount * (float) ($exchangeRate["exchangeRate"] ?? 1) , 2); - $description .= '\nexchangeRate: ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . ($exchangeRate["quotationDate"] ?? '?') . ")"; + $targetAmount = round($amount * (float) ($exchangeRate["exchangeRate"] ?? 1), 2); + $description .= '\n' + ctrans('texts.exchange_rate') + ': ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . ($exchangeRate["quotationDate"] ?? '?') . ")"; } } From aa41b4126bf0c285c08b448406ec4f69e24d2e8c Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 18:22:17 +0100 Subject: [PATCH 2/8] code cleanups --- app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index d16943e3129e..4f787c5798b8 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -12,7 +12,6 @@ namespace App\Helpers\Bank\Nordigen\Transformer; use App\Helpers\Bank\BankRevenueInterface; -use App\Models\BankIntegration; use App\Utils\Traits\AppSetup; use Illuminate\Support\Facades\Cache; use Log; From b9095b96ab370ff7601d778a3444344bbfab4b51 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 18:49:52 +0100 Subject: [PATCH 3/8] localized date within transaction-transformer --- app/Helpers/Bank/Nordigen/Nordigen.php | 5 +-- .../Transformer/TransactionTransformer.php | 31 +++++++++++++++++++ .../Bank/ProcessBankTransactionsNordigen.php | 2 +- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/app/Helpers/Bank/Nordigen/Nordigen.php b/app/Helpers/Bank/Nordigen/Nordigen.php index f5f663c1a985..33c62d076c8d 100644 --- a/app/Helpers/Bank/Nordigen/Nordigen.php +++ b/app/Helpers/Bank/Nordigen/Nordigen.php @@ -19,6 +19,7 @@ namespace App\Helpers\Bank\Nordigen; +use App\Models\Company; use App\Services\Email\Email; use App\Models\BankIntegration; use App\Services\Email\EmailObject; @@ -138,11 +139,11 @@ class Nordigen * @param string $dateFrom * @return array */ - public function getTransactions(string $accountId, string $dateFrom = null): array + public function getTransactions(Company $company, string $accountId, string $dateFrom = null): array { $transactionResponse = $this->client->account($accountId)->getAccountTransactions($dateFrom); - $it = new TransactionTransformer(); + $it = new TransactionTransformer($company); return $it->transform($transactionResponse); } diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 4f787c5798b8..d7aaf5f5887c 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -12,6 +12,10 @@ namespace App\Helpers\Bank\Nordigen\Transformer; use App\Helpers\Bank\BankRevenueInterface; +use App\Models\Company; +use App\Models\DateFormat; +use App\Models\Timezone; +use Carbon\Carbon; use App\Utils\Traits\AppSetup; use Illuminate\Support\Facades\Cache; use Log; @@ -65,6 +69,13 @@ class TransactionTransformer implements BankRevenueInterface { use AppSetup; + private Company $company; + + function __construct(Company $company) + { + $this->company = $company; + } + public function transform($transactionResponse) { $data = []; @@ -163,4 +174,24 @@ class TransactionTransformer implements BankRevenueInterface } + private function formatDate(string $input) + { + $timezone = Timezone::find($this->company->settings->timezone_id); + $timezone_name = 'US/Eastern'; + + if ($timezone) { + $timezone_name = $timezone->name; + } + + $date_format_default = 'Y-m-d'; + + $date_format = DateFormat::find($this->company->settings->date_format_id); + + if ($date_format) { + $date_format_default = $date_format->format; + } + + return Carbon::createFromTimeStamp($input)->setTimezone($timezone_name)->format($date_format_default); + } + } diff --git a/app/Jobs/Bank/ProcessBankTransactionsNordigen.php b/app/Jobs/Bank/ProcessBankTransactionsNordigen.php index 2db5effd1016..d23e78659cec 100644 --- a/app/Jobs/Bank/ProcessBankTransactionsNordigen.php +++ b/app/Jobs/Bank/ProcessBankTransactionsNordigen.php @@ -138,7 +138,7 @@ class ProcessBankTransactionsNordigen implements ShouldQueue private function processTransactions() { //Get transaction count object - $transactions = $this->nordigen->getTransactions($this->bank_integration->nordigen_account_id, $this->from_date); + $transactions = $this->nordigen->getTransactions($this->company, $this->bank_integration->nordigen_account_id, $this->from_date); //if no transactions, update the from_date and move on if (count($transactions) == 0) { From 50d899c93c091f23613510e6aa03ef2bc3d33fe1 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 18:53:41 +0100 Subject: [PATCH 4/8] fixes --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index d7aaf5f5887c..9f744d64bb81 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -123,7 +123,7 @@ class TransactionTransformer implements BankRevenueInterface if (isset($transaction['currencyExchange'])) { foreach ($transaction["currencyExchange"] as $exchangeRate) { $targetAmount = round($amount * (float) ($exchangeRate["exchangeRate"] ?? 1), 2); - $description .= '\n' + ctrans('texts.exchange_rate') + ': ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . ($exchangeRate["quotationDate"] ?? '?') . ")"; + $description .= '\n' + ctrans('texts.exchange_rate') + ': ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . ($exchangeRate["quotationDate"] ? $this->formatDate($exchangeRate["quotationDate"]) : '?') . ")"; } } From a21f3baec91e21ad2e2f047461d3702950b25240 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 18:55:24 +0100 Subject: [PATCH 5/8] fixes --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 9f744d64bb81..f67210d46fff 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -191,7 +191,7 @@ class TransactionTransformer implements BankRevenueInterface $date_format_default = $date_format->format; } - return Carbon::createFromTimeStamp($input)->setTimezone($timezone_name)->format($date_format_default); + return Carbon::createFromFormat("DD-MM-YYYY", $input)->setTimezone($timezone_name)->format($date_format_default); } } From 7c4620af9337129414187d38507fc234a5f36cdc Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 19:04:17 +0100 Subject: [PATCH 6/8] fixes --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index f67210d46fff..823e20afa517 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -191,7 +191,7 @@ class TransactionTransformer implements BankRevenueInterface $date_format_default = $date_format->format; } - return Carbon::createFromFormat("DD-MM-YYYY", $input)->setTimezone($timezone_name)->format($date_format_default); + return Carbon::createFromFormat("DD-MM-YYYY", $input)->setTimezone($timezone_name)->format($date_format_default) ?? $input; } } From a960391304d02529609fdd56c91d034f048638b1 Mon Sep 17 00:00:00 2001 From: paulwer Date: Sun, 18 Feb 2024 19:10:42 +0100 Subject: [PATCH 7/8] fixes --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 823e20afa517..4631f72deefa 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -191,7 +191,7 @@ class TransactionTransformer implements BankRevenueInterface $date_format_default = $date_format->format; } - return Carbon::createFromFormat("DD-MM-YYYY", $input)->setTimezone($timezone_name)->format($date_format_default) ?? $input; + return Carbon::createFromFormat("d-m-Y", $input)->setTimezone($timezone_name)->format($date_format_default) ?? $input; } } From b3fbf505e07a68d1d574428e5a8d6b4cb0d2807d Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 19 Feb 2024 17:41:39 +1100 Subject: [PATCH 8/8] Fixes for syntax --- .../Bank/Nordigen/Transformer/TransactionTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php index 4631f72deefa..f9874eb1c416 100644 --- a/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php +++ b/app/Helpers/Bank/Nordigen/Transformer/TransactionTransformer.php @@ -123,7 +123,7 @@ class TransactionTransformer implements BankRevenueInterface if (isset($transaction['currencyExchange'])) { foreach ($transaction["currencyExchange"] as $exchangeRate) { $targetAmount = round($amount * (float) ($exchangeRate["exchangeRate"] ?? 1), 2); - $description .= '\n' + ctrans('texts.exchange_rate') + ': ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . ($exchangeRate["quotationDate"] ? $this->formatDate($exchangeRate["quotationDate"]) : '?') . ")"; + $description .= '\n' . ctrans('texts.exchange_rate') . ' : ' . $amount . " " . ($exchangeRate["sourceCurrency"] ?? '?') . " = " . $targetAmount . " " . ($exchangeRate["targetCurrency"] ?? '?') . " (" . (isset($exchangeRate["quotationDate"]) ? $this->formatDate($exchangeRate["quotationDate"]) : '?') . ")"; } }