From 6a771de80c37e08bf769acd37cbbb53f635252cd Mon Sep 17 00:00:00 2001 From: David Bomba Date: Thu, 15 Jul 2021 11:31:11 +1000 Subject: [PATCH] Fixes for recurring invoice subscription ID passing --- .../RecurringInvoiceToInvoiceFactory.php | 2 + tests/Feature/RecurringInvoiceTest.php | 57 +++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/app/Factory/RecurringInvoiceToInvoiceFactory.php b/app/Factory/RecurringInvoiceToInvoiceFactory.php index 6a56902e93d3..8ddee75719b7 100644 --- a/app/Factory/RecurringInvoiceToInvoiceFactory.php +++ b/app/Factory/RecurringInvoiceToInvoiceFactory.php @@ -38,6 +38,8 @@ class RecurringInvoiceToInvoiceFactory $invoice->tax_rate2 = $recurring_invoice->tax_rate2; $invoice->tax_name3 = $recurring_invoice->tax_name3; $invoice->tax_rate3 = $recurring_invoice->tax_rate3; + $invoice->total_taxes = $recurring_invoice->total_taxes; + $invoice->subscription_id = $recurring_invoice->subscription_id; $invoice->custom_value1 = $recurring_invoice->custom_value1; $invoice->custom_value2 = $recurring_invoice->custom_value2; $invoice->custom_value3 = $recurring_invoice->custom_value3; diff --git a/tests/Feature/RecurringInvoiceTest.php b/tests/Feature/RecurringInvoiceTest.php index ca2e84d439de..746b3a78878f 100644 --- a/tests/Feature/RecurringInvoiceTest.php +++ b/tests/Feature/RecurringInvoiceTest.php @@ -10,6 +10,8 @@ */ namespace Tests\Feature; +use App\Factory\InvoiceToRecurringInvoiceFactory; +use App\Factory\RecurringInvoiceToInvoiceFactory; use App\Models\Client; use App\Models\ClientContact; use App\Models\RecurringInvoice; @@ -155,4 +157,59 @@ class RecurringInvoiceTest extends TestCase $response->assertStatus(200); } + + public function testSubscriptionIdPassesToInvoice() + { + $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); + $recurring_invoice->user_id = $this->user->id; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; + $recurring_invoice->remaining_cycles = 2; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->save(); + + $recurring_invoice->number = $this->getNextRecurringInvoiceNumber($this->invoice->client, $this->invoice); + $recurring_invoice->subscription_id = 10; + $recurring_invoice->save(); + + $invoice = RecurringInvoiceToInvoiceFactory::create($recurring_invoice, $this->client); + + $this->assertEquals(10, $invoice->subscription_id); + } + + public function testSubscriptionIdPassesToInvoiceIfNull() + { + $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); + $recurring_invoice->user_id = $this->user->id; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; + $recurring_invoice->remaining_cycles = 2; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->save(); + + $recurring_invoice->number = $this->getNextRecurringInvoiceNumber($this->invoice->client, $this->invoice); + $recurring_invoice->save(); + + $invoice = RecurringInvoiceToInvoiceFactory::create($recurring_invoice, $this->client); + + $this->assertEquals(null, $invoice->subscription_id); + } + + public function testSubscriptionIdPassesToInvoiceIfNothingSet() + { + $recurring_invoice = InvoiceToRecurringInvoiceFactory::create($this->invoice); + $recurring_invoice->user_id = $this->user->id; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->status_id = RecurringInvoice::STATUS_ACTIVE; + $recurring_invoice->remaining_cycles = 2; + $recurring_invoice->next_send_date = \Carbon\Carbon::now()->addDays(10); + $recurring_invoice->save(); + + $recurring_invoice->number = $this->getNextRecurringInvoiceNumber($this->invoice->client, $this->invoice); + $recurring_invoice->save(); + + $invoice = RecurringInvoiceToInvoiceFactory::create($recurring_invoice, $this->client); + + $this->assertEquals(null, $invoice->subscription_id); + } }