From 0a1f41f1f10d432106bd411eaf14de537dfebc14 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Mon, 24 Oct 2022 19:11:37 +1100 Subject: [PATCH] Always force a baseType --- .../Yodlee/Transformer/IncomeTransformer.php | 13 ++++++++- .../Controllers/BankTransactionController.php | 3 +-- .../MatchBankTransactionRequest.php | 27 ++++++++++--------- app/Transformers/ExpenseTransformer.php | 2 +- app/Transformers/PaymentTransformer.php | 2 +- 5 files changed, 30 insertions(+), 17 deletions(-) diff --git a/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php b/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php index 725bcc57f907..e1293c94ff0f 100644 --- a/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php +++ b/app/Helpers/Bank/Yodlee/Transformer/IncomeTransformer.php @@ -146,10 +146,21 @@ class IncomeTransformer implements BankRevenueInterface 'date' => $transaction->date, 'bank_account_id' => $transaction->accountId, 'description' => $transaction->description->original, - 'base_type' => property_exists($transaction, 'baseType') ? $transaction->baseType : '', + 'base_type' => property_exists($transaction, 'baseType') ? $transaction->baseType : $this->calculateBaseType($transaction), ]; } + private function calculateBaseType($transaction) + { + //CREDIT / DEBIT + + if(property_exists($transaction, 'highLevelCategoryId') && $transaction->highLevelCategoryId == 10000012) + return 'CREDIT'; + + return 'DEBIT'; + + } + private function convertCurrency(string $code) { diff --git a/app/Http/Controllers/BankTransactionController.php b/app/Http/Controllers/BankTransactionController.php index dd891e64dde7..7cb19943b263 100644 --- a/app/Http/Controllers/BankTransactionController.php +++ b/app/Http/Controllers/BankTransactionController.php @@ -553,8 +553,7 @@ class BankTransactionController extends BaseController $bt = (new MatchBankTransactions(auth()->user()->company()->id, auth()->user()->company()->db, $request->all()))->handle(); return $this->itemResponse($bt); - // return response()->json(['message' => 'Processing....'], 200); - + } diff --git a/app/Http/Requests/BankTransaction/MatchBankTransactionRequest.php b/app/Http/Requests/BankTransaction/MatchBankTransactionRequest.php index 61d8cfd1b04f..cb4c7816a24c 100644 --- a/app/Http/Requests/BankTransaction/MatchBankTransactionRequest.php +++ b/app/Http/Requests/BankTransaction/MatchBankTransactionRequest.php @@ -30,13 +30,13 @@ class MatchBankTransactionRequest extends Request { $rules = [ - 'id' => 'required|bail', - 'invoice_ids' => 'nullable|string|sometimes', - 'ninja_category_id' => 'nullable|string|sometimes' + 'id.*' => 'required|bail', + 'invoice_ids.*' => 'nullable|string|sometimes', + 'ninja_category_id.*' => 'nullable|string|sometimes' ]; if(isset($this->vendor_id)) - $rules['vendor_id'] = 'bail|required|exists:vendors,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; + $rules['vendor_id.*'] = 'bail|required|exists:vendors,id,company_id,'.auth()->user()->company()->id.',is_deleted,0'; return $rules; @@ -44,17 +44,20 @@ class MatchBankTransactionRequest extends Request public function prepareForValidation() { - $input = $this->all(); + $inputs = $this->all(); - if(array_key_exists('id', $input)) - $input['id'] = $this->decodePrimaryKey($input['id']); + foreach($inputs as $input) + { + if(array_key_exists('id', $input)) + $input['id'] = $this->decodePrimaryKey($input['id']); - if(array_key_exists('ninja_category_id', $input) && strlen($input['ninja_category_id']) >= 1) - $input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']); + if(array_key_exists('ninja_category_id', $input) && strlen($input['ninja_category_id']) >= 1) + $input['ninja_category_id'] = $this->decodePrimaryKey($input['ninja_category_id']); - $input = $this->decodePrimaryKeys($input); - - $this->replace($input); + $input = $this->decodePrimaryKeys($input); + } + + $this->replace($inputs); } } diff --git a/app/Transformers/ExpenseTransformer.php b/app/Transformers/ExpenseTransformer.php index fb1cb938efb0..3d390cfcf97c 100644 --- a/app/Transformers/ExpenseTransformer.php +++ b/app/Transformers/ExpenseTransformer.php @@ -103,7 +103,7 @@ class ExpenseTransformer extends EntityTransformer 'private_notes' => (string) $expense->private_notes ?: '', 'public_notes' => (string) $expense->public_notes ?: '', 'transaction_reference' => (string) $expense->transaction_reference ?: '', - 'transaction_id' => (string) $this->decodePrimaryKey($expense->transaction_id) ?: '', + 'transaction_id' => (string) $this->encodePrimaryKey($expense->transaction_id) ?: '', 'date' => $expense->date ?: '', 'number' => (string)$expense->number ?: '', 'payment_date' => $expense->payment_date ?: '', diff --git a/app/Transformers/PaymentTransformer.php b/app/Transformers/PaymentTransformer.php index f18756964b97..5a9e54c265d5 100644 --- a/app/Transformers/PaymentTransformer.php +++ b/app/Transformers/PaymentTransformer.php @@ -79,7 +79,7 @@ class PaymentTransformer extends EntityTransformer 'refunded' => (float) $payment->refunded, 'applied' => (float) $payment->applied, 'transaction_reference' => $payment->transaction_reference ?: '', - 'transaction_id' => $this->decodePrimaryKey($payment->transaction_id) ?: '', + 'transaction_id' => $this->encodePrimaryKey($payment->transaction_id) ?: '', 'date' => $payment->date ?: '', 'is_manual' => (bool) $payment->is_manual, 'created_at' => (int) $payment->created_at,