From fe1cf514d6e8c865d4d6c73e4b8568b7456c190b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 15 Sep 2021 11:12:36 +1000 Subject: [PATCH] Fixes for tests --- app/Factory/InvoiceItemFactory.php | 1 + .../Invoice/InvoiceItemSumInclusive.php | 5 ++ app/Helpers/Invoice/InvoiceSumInclusive.php | 5 ++ app/Services/Quote/QuoteService.php | 8 +++ app/Services/Quote/TriggeredActions.php | 66 +++++++++++++++++++ 5 files changed, 85 insertions(+) create mode 100644 app/Services/Quote/TriggeredActions.php diff --git a/app/Factory/InvoiceItemFactory.php b/app/Factory/InvoiceItemFactory.php index 970754561a..e0895a8860 100644 --- a/app/Factory/InvoiceItemFactory.php +++ b/app/Factory/InvoiceItemFactory.php @@ -35,6 +35,7 @@ class InvoiceItemFactory $item->tax_rate3 = 0; $item->sort_id = 0; $item->line_total = 0; + $item->gross_line_total = 0; $item->custom_value1 = ''; $item->custom_value2 = ''; $item->custom_value3 = ''; diff --git a/app/Helpers/Invoice/InvoiceItemSumInclusive.php b/app/Helpers/Invoice/InvoiceItemSumInclusive.php index 469603f9cb..7f4620ee54 100644 --- a/app/Helpers/Invoice/InvoiceItemSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceItemSumInclusive.php @@ -177,6 +177,11 @@ class InvoiceItemSumInclusive return $this->item->line_total; } + public function getGrossLineTotal() + { + return $this->item->line_total; + } + public function getLineItems() { return $this->line_items; diff --git a/app/Helpers/Invoice/InvoiceSumInclusive.php b/app/Helpers/Invoice/InvoiceSumInclusive.php index 9eaf75b15c..49a0b5593d 100644 --- a/app/Helpers/Invoice/InvoiceSumInclusive.php +++ b/app/Helpers/Invoice/InvoiceSumInclusive.php @@ -259,6 +259,11 @@ class InvoiceSumInclusive return $this->sub_total; } + public function getGrossSubTotal() + { + return $this->sub_total; + } + public function setSubTotal($value) { $this->sub_total = $value; diff --git a/app/Services/Quote/QuoteService.php b/app/Services/Quote/QuoteService.php index 8d2435ae65..6d1fd5e340 100644 --- a/app/Services/Quote/QuoteService.php +++ b/app/Services/Quote/QuoteService.php @@ -16,6 +16,7 @@ use App\Jobs\Util\UnlinkFile; use App\Models\Invoice; use App\Models\Quote; use App\Repositories\QuoteRepository; +use App\Services\Quote\TriggeredActions; use App\Utils\Ninja; use App\Utils\Traits\MakesHash; @@ -177,6 +178,13 @@ class QuoteService return $this; } + public function triggeredActions($request) + { + $this->quote = (new TriggeredActions($this->quote, $request))->run(); + + return $this; + } + public function deletePdf() { $this->quote->invitations->each(function ($invitation){ diff --git a/app/Services/Quote/TriggeredActions.php b/app/Services/Quote/TriggeredActions.php new file mode 100644 index 0000000000..055d2216df --- /dev/null +++ b/app/Services/Quote/TriggeredActions.php @@ -0,0 +1,66 @@ +request = $request; + + $this->quote = $quote; + } + + public function run() + { + + if ($this->request->has('send_email') && $this->request->input('send_email') == 'true') { + $this->sendEmail(); + } + + if ($this->request->has('mark_sent') && $this->request->input('mark_sent') == 'true') { + $this->quote = $this->quote->service()->markSent()->save(); + } + + + return $this->quote; + } + + private function sendEmail() + { + + $reminder_template = $this->quote->calculateTemplate('quote'); + //$reminder_template = 'payment'; + + $this->quote->invitations->load('contact.client.country', 'quote.client.country', 'quote.company')->each(function ($invitation) use ($reminder_template) { + EmailEntity::dispatch($invitation, $this->quote->company, $reminder_template); + }); + + if ($this->quote->invitations->count() > 0) { + event(new QuoteWasEmailed($this->quote->invitations->first(), $this->quote->company, Ninja::eventVars(), 'quote')); + } + } +}