diff --git a/app/Jobs/Bank/MatchBankTransactions.php b/app/Jobs/Bank/MatchBankTransactions.php index d15c35f2981b..3c89f2967af7 100644 --- a/app/Jobs/Bank/MatchBankTransactions.php +++ b/app/Jobs/Bank/MatchBankTransactions.php @@ -133,6 +133,8 @@ class MatchBankTransactions implements ShouldQueue foreach($invoices as $invoice){ + $invoice->service()->markSent(); + if(!$invoice->isPayable()) return false; @@ -171,6 +173,7 @@ class MatchBankTransactions implements ShouldQueue $expense->currency_id = $this->bt->currency_id; $expense->date = Carbon::parse($this->bt->date); $expense->public_notes = $this->bt->description; + $expense->transaction_id = $this->bt->id; $expense->save(); return $this; @@ -222,7 +225,7 @@ class MatchBankTransactions implements ShouldQueue $payment->status_id = Payment::STATUS_COMPLETED; $payment->client_id = $this->invoice->client_id; $payment->transaction_reference = $this->bt->description; - $payment->transaction_id = $this->bt->transaction_id; + $payment->transaction_id = $this->bt->id; $payment->currency_id = $this->bt->currency_id; $payment->is_manual = false; $payment->date = $this->bt->date ? Carbon::parse($this->bt->date) : now(); diff --git a/app/Transformers/BankTransactionTransformer.php b/app/Transformers/BankTransactionTransformer.php index db9bc91c02d7..ccd0de45687a 100644 --- a/app/Transformers/BankTransactionTransformer.php +++ b/app/Transformers/BankTransactionTransformer.php @@ -57,7 +57,7 @@ class BankTransactionTransformer extends EntityTransformer 'currency_id' => (string) $bank_transaction->currency_id ?: '1', 'account_type' => (string) $bank_transaction->account_type ?: '', 'category_id' => (int) $bank_transaction->category_id, - 'ninja_category_id' => (int) $bank_transaction->ninja_category_id, + 'ninja_category_id' => (string) $this->encodePrimaryKey($bank_transaction->ninja_category_id) ?: '', 'category_type' => (string) $bank_transaction->category_type ?: '', 'date' => (string) $bank_transaction->date ?: '', 'bank_account_id' => (int) $bank_transaction->bank_account_id, diff --git a/app/Transformers/PaymentTransformer.php b/app/Transformers/PaymentTransformer.php index 1c4c3b6f0d55..ae202667355a 100644 --- a/app/Transformers/PaymentTransformer.php +++ b/app/Transformers/PaymentTransformer.php @@ -79,6 +79,7 @@ class PaymentTransformer extends EntityTransformer 'refunded' => (float) $payment->refunded, 'applied' => (float) $payment->applied, 'transaction_reference' => $payment->transaction_reference ?: '', + 'transaction_id' => $payment->transaction_id ?: '', 'date' => $payment->date ?: '', 'is_manual' => (bool) $payment->is_manual, 'created_at' => (int) $payment->created_at, diff --git a/database/migrations/2022_08_05_023357_bank_integration.php b/database/migrations/2022_08_05_023357_bank_integration.php index fec9c4747a34..1375b50af314 100644 --- a/database/migrations/2022_08_05_023357_bank_integration.php +++ b/database/migrations/2022_08_05_023357_bank_integration.php @@ -86,6 +86,10 @@ return new class extends Migration $table->unsignedBigInteger('transaction_id')->nullable(); }); + Schema::table('expenses', function (Illuminate\Database\Schema\Blueprint $table) { + $table->unsignedBigInteger('transaction_id')->nullable()->change(); + }); + } /** diff --git a/tests/Feature/Bank/YodleeApiTest.php b/tests/Feature/Bank/YodleeApiTest.php index 155ee64bc165..930e15fec7cb 100644 --- a/tests/Feature/Bank/YodleeApiTest.php +++ b/tests/Feature/Bank/YodleeApiTest.php @@ -124,6 +124,7 @@ class YodleeApiTest extends TestCase MatchBankTransactions::dispatchSync($this->company->id, $this->company->db, $data); $payment = Payment::where('transaction_reference', $bt->description)->first(); + $payment_count = Payment::where('transaction_reference', $bt->description)->count(); $this->assertNotNull($payment); @@ -135,6 +136,7 @@ class YodleeApiTest extends TestCase $this->assertEquals(Invoice::STATUS_PAID, $invoice->status_id); $this->assertEquals(0, $invoice->balance); + $this->assertEquals(1, $payment_count); }