From e668e7fd5a6604f0e1a791adb0db48b1407d5d4e Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 28 Feb 2021 13:12:55 +1100 Subject: [PATCH] Fixes for Quotes not attaching to emails --- app/Http/Middleware/UserVerified.php | 6 +++++- app/Mail/Engine/CreditEmailEngine.php | 4 +++- app/Mail/Engine/QuoteEmailEngine.php | 4 ++-- app/Models/Presenters/CompanyPresenter.php | 4 ++-- app/Models/Quote.php | 16 +++++++++------- app/Observers/CreditObserver.php | 2 +- app/Observers/QuoteObserver.php | 2 -- tests/Unit/RangeDetectionTest.php | 2 +- 8 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/Http/Middleware/UserVerified.php b/app/Http/Middleware/UserVerified.php index 35a0acdeea81..ce8a899764aa 100644 --- a/app/Http/Middleware/UserVerified.php +++ b/app/Http/Middleware/UserVerified.php @@ -26,7 +26,7 @@ class UserVerified public function __construct(?User $user) { - $this->user = $user ?: auth()->user(); + $this->user = property_exists($user, 'id') ? $user : auth()->user(); } /** @@ -44,6 +44,10 @@ class UserVerified 'errors' => new \stdClass, ]; + // nlog(auth()->user()->toArray()); + // nlog($this->user->toArray()); + // nlog((bool)$this->user->isVerified()); + if ($this->user && !$this->user->isVerified()) return response()->json($error, 403); diff --git a/app/Mail/Engine/CreditEmailEngine.php b/app/Mail/Engine/CreditEmailEngine.php index c97827b0fdb5..835c9d47aefa 100644 --- a/app/Mail/Engine/CreditEmailEngine.php +++ b/app/Mail/Engine/CreditEmailEngine.php @@ -89,7 +89,9 @@ class CreditEmailEngine extends BaseEmailEngine ->setInvitation($this->invitation); if ($this->client->getSetting('pdf_email_attachment') !== false) { - $this->setAttachments(['path' => $this->credit->pdf_file_path(), 'name' => basename($this->credit->pdf_file_path())]); + $this->setAttachments([$this->credit->pdf_file_path()]); + + // $this->setAttachments(['path' => $this->credit->pdf_file_path(), 'name' => basename($this->credit->pdf_file_path())]); } //attach third party documents diff --git a/app/Mail/Engine/QuoteEmailEngine.php b/app/Mail/Engine/QuoteEmailEngine.php index a79a1fa0779b..5751cdf5acae 100644 --- a/app/Mail/Engine/QuoteEmailEngine.php +++ b/app/Mail/Engine/QuoteEmailEngine.php @@ -90,8 +90,8 @@ class QuoteEmailEngine extends BaseEmailEngine if ($this->client->getSetting('pdf_email_attachment') !== false) { - // $this->setAttachments([$this->quote->pdf_file_path()]); - $this->setAttachments(['path' => $this->quote->pdf_file_path(), 'name' => basename($this->quote->pdf_file_path())]); + $this->setAttachments([$this->quote->pdf_file_path()]); + //$this->setAttachments(['path' => $this->quote->pdf_file_path(), 'name' => basename($this->quote->pdf_file_path())]); } diff --git a/app/Models/Presenters/CompanyPresenter.php b/app/Models/Presenters/CompanyPresenter.php index fec12b9eac87..10410d9a8a0b 100644 --- a/app/Models/Presenters/CompanyPresenter.php +++ b/app/Models/Presenters/CompanyPresenter.php @@ -91,13 +91,13 @@ class CompanyPresenter extends EntityPresenter } } - public function getSpcQrCode($client_currency, $invoice_number, $balance) + public function getSpcQrCode($client_currency, $invoice_number, $balance_due_raw) { $settings = $this->entity->settings; return - "SPC\n0200\n1\nCH860021421411198240K\nK\n{$this->name}\n{$settings->address1}\n{$settings->postal_code} {$settings->city}\n\n\nCH\n\n\n\n\n\n\n\n{$balance}\n{$client_currency}\n\n\n\n\n\n\n\nNON\n\n{$invoice_number}\nEPD\n"; + "SPC\n0200\n1\nCH860021421411198240K\nK\n{$this->name}\n{$settings->address1}\n{$settings->postal_code} {$settings->city}\n\n\nCH\n\n\n\n\n\n\n\n{$balance_due_raw}\n{$client_currency}\n\n\n\n\n\n\n\nNON\n\n{$invoice_number}\nEPD\n"; } } diff --git a/app/Models/Quote.php b/app/Models/Quote.php index 9038c6ef3b62..1f2b740ea81b 100644 --- a/app/Models/Quote.php +++ b/app/Models/Quote.php @@ -200,25 +200,27 @@ class Quote extends BaseModel return new QuoteService($this); } + public function pdf_file_path($invitation = null, string $type = 'url') { if (! $invitation) { - $invitation = $this->invitations->where('client_contact_id', $this->client->primary_contact()->first()->id)->first(); + $invitation = $this->invitations->first(); } $storage_path = Storage::$type($this->client->quote_filepath().$this->number.'.pdf'); - if (Storage::exists($this->client->quote_filepath().$this->number.'.pdf')) { - return $storage_path; + nlog($storage_path); + + if (! Storage::exists($this->client->quote_filepath().$this->number.'.pdf')) { + event(new QuoteWasUpdated($this, $this->company, Ninja::eventVars())); + CreateEntityPdf::dispatchNow($invitation); } - event(new QuoteWasUpdated($this, $this->company, Ninja::eventVars())); - - CreateEntityPdf::dispatchNow($invitation); - return $storage_path; } + + /** * @param int $status * @return string diff --git a/app/Observers/CreditObserver.php b/app/Observers/CreditObserver.php index 9969f7f02c60..fd7f3d2d25bd 100644 --- a/app/Observers/CreditObserver.php +++ b/app/Observers/CreditObserver.php @@ -37,7 +37,7 @@ class CreditObserver */ public function updated(Credit $credit) { - UnlinkFile::dispatchNow(config('filesystems.default'), $credit->client->credit_filepath() . $credit->number.'.pdf'); + } /** diff --git a/app/Observers/QuoteObserver.php b/app/Observers/QuoteObserver.php index f2a9471111af..1530b99a38c9 100644 --- a/app/Observers/QuoteObserver.php +++ b/app/Observers/QuoteObserver.php @@ -51,8 +51,6 @@ class QuoteObserver WebhookHandler::dispatch(Webhook::EVENT_UPDATE_QUOTE, $quote, $quote->company); } - UnlinkFile::dispatchNow(config('filesystems.default'), $quote->client->quote_filepath() . $quote->number.'.pdf'); - } /** diff --git a/tests/Unit/RangeDetectionTest.php b/tests/Unit/RangeDetectionTest.php index 18ff33c08a72..d00d7b20361d 100644 --- a/tests/Unit/RangeDetectionTest.php +++ b/tests/Unit/RangeDetectionTest.php @@ -45,7 +45,7 @@ class RangeDetectionTest extends TestCase } - private function makeRanges(array $ranges) + private function makeRanges(array $range) { return range($range[0], $range[1]);