From 5910011967fe13e1a4391890c1d04705a1809d59 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 31 Mar 2023 09:51:16 +1100 Subject: [PATCH 1/4] Fixes for activities --- app/Listeners/Invoice/InvoiceReminderEmailActivity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Listeners/Invoice/InvoiceReminderEmailActivity.php b/app/Listeners/Invoice/InvoiceReminderEmailActivity.php index 691d2a5c03c5..85a235db3470 100644 --- a/app/Listeners/Invoice/InvoiceReminderEmailActivity.php +++ b/app/Listeners/Invoice/InvoiceReminderEmailActivity.php @@ -49,7 +49,7 @@ class InvoiceReminderEmailActivity implements ShouldQueue $fields->user_id = $user_id; $fields->invoice_id = $event->invitation->invoice->id; $fields->company_id = $event->invitation->invoice->company_id; - $fields->client_contact_id = $event->invitation->invoice->client_contact_id; + $fields->client_contact_id = $event->invitation->client_contact_id; $fields->activity_type_id = $event->reminder; $this->activity_repo->save($fields, $event->invitation->invoice, $event->event_vars); From 8577566393ef55f8a73b52a0ac86dc6855766a1b Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 31 Mar 2023 10:01:25 +1100 Subject: [PATCH 2/4] Updates for activities --- app/Listeners/Invoice/InvoiceEmailActivity.php | 4 ++-- app/Listeners/Invoice/InvoiceReminderEmailActivity.php | 7 ++++--- app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php | 6 +++--- app/Listeners/Quote/QuoteEmailActivity.php | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/Listeners/Invoice/InvoiceEmailActivity.php b/app/Listeners/Invoice/InvoiceEmailActivity.php index 4d3df882c0fc..5969ef97877b 100644 --- a/app/Listeners/Invoice/InvoiceEmailActivity.php +++ b/app/Listeners/Invoice/InvoiceEmailActivity.php @@ -50,10 +50,10 @@ class InvoiceEmailActivity implements ShouldQueue $fields->user_id = $user_id; $fields->invoice_id = $event->invitation->invoice->id; $fields->company_id = $event->invitation->invoice->company_id; - $fields->client_contact_id = $event->invitation->invoice->client_contact_id; + $fields->client_contact_id = $event->invitation->client_contact_id; $fields->client_id = $event->invitation->invoice->client_id; $fields->activity_type_id = Activity::EMAIL_INVOICE; - $this->activity_repo->save($fields, $event->invitation->invoice, $event->event_vars); + $this->activity_repo->save($fields, $event->invitation, $event->event_vars); } } diff --git a/app/Listeners/Invoice/InvoiceReminderEmailActivity.php b/app/Listeners/Invoice/InvoiceReminderEmailActivity.php index 85a235db3470..1cf801afec62 100644 --- a/app/Listeners/Invoice/InvoiceReminderEmailActivity.php +++ b/app/Listeners/Invoice/InvoiceReminderEmailActivity.php @@ -47,11 +47,12 @@ class InvoiceReminderEmailActivity implements ShouldQueue $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->invitation->invoice->user_id; $fields->user_id = $user_id; - $fields->invoice_id = $event->invitation->invoice->id; - $fields->company_id = $event->invitation->invoice->company_id; + $fields->invoice_id = $event->invitation->invoice_id; + $fields->company_id = $event->invitation->company_id; $fields->client_contact_id = $event->invitation->client_contact_id; + $fields->client_id = $event->invitation->invoice->client_id; $fields->activity_type_id = $event->reminder; - $this->activity_repo->save($fields, $event->invitation->invoice, $event->event_vars); + $this->activity_repo->save($fields, $event->invitation, $event->event_vars); } } diff --git a/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php b/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php index 099ec3bad33e..e10dd2240305 100644 --- a/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php +++ b/app/Listeners/PurchaseOrder/PurchaseOrderEmailActivity.php @@ -49,11 +49,11 @@ class PurchaseOrderEmailActivity implements ShouldQueue $fields->user_id = $user_id; $fields->purchase_order_id = $event->invitation->purchase_order->id; - $fields->company_id = $event->invitation->purchase_order->company_id; - $fields->vendor_contact_id = $event->invitation->purchase_order->vendor_contact_id; + $fields->company_id = $event->invitation->company_id; + $fields->vendor_contact_id = $event->invitation->vendor_contact_id; $fields->vendor_id = $event->invitation->purchase_order->vendor_id; $fields->activity_type_id = Activity::EMAIL_PURCHASE_ORDER; - $this->activity_repo->save($fields, $event->invitation->purchase_order, $event->event_vars); + $this->activity_repo->save($fields, $event->invitation, $event->event_vars); } } diff --git a/app/Listeners/Quote/QuoteEmailActivity.php b/app/Listeners/Quote/QuoteEmailActivity.php index cf543697cfe8..7ef8354553a4 100644 --- a/app/Listeners/Quote/QuoteEmailActivity.php +++ b/app/Listeners/Quote/QuoteEmailActivity.php @@ -56,6 +56,6 @@ class QuoteEmailActivity implements ShouldQueue $fields->client_id = $event->invitation->quote->client_id; $fields->activity_type_id = Activity::EMAIL_QUOTE; - $this->activity_repo->save($fields, $event->invitation->quote, $event->event_vars); + $this->activity_repo->save($fields, $event->invitation, $event->event_vars); } } From 634063779acaa02cb89fe4192e6d34f7dc2db57d Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 31 Mar 2023 10:33:34 +1100 Subject: [PATCH 3/4] minor fixes --- app/Factory/DesignFactory.php | 2 +- .../RecurringInvoiceController.php | 25 +++++++++++++++++++ .../RecurringInvoiceRepository.php | 2 +- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/Factory/DesignFactory.php b/app/Factory/DesignFactory.php index ffb700b04461..36b3a4f187e0 100644 --- a/app/Factory/DesignFactory.php +++ b/app/Factory/DesignFactory.php @@ -24,7 +24,7 @@ class DesignFactory $design->is_active = true; $design->is_custom = true; $design->name = ''; - $design->design = []; + $design->design = '[]'; return $design; } diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index 5c0bb277edd0..4d9e6f956291 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -556,4 +556,29 @@ class RecurringInvoiceController extends BaseController return $this->itemResponse($recurring_invoice->fresh()); } + + public function downloadPdf(string $invitation_key) + { + $invitation = $this->recurring_invoice_repo->getInvitationByKey($invitation_key); + + if (! $invitation) { + return response()->json(['message' => 'no record found'], 400); + } + + $contact = $invitation->contact; + $invoice = $invitation->recurring_invoice; + + $file = $invoice->service()->getInvoicePdf($contact); + + $headers = ['Content-Type' => 'application/pdf']; + + if (request()->input('inline') == 'true') { + $headers = array_merge($headers, ['Content-Disposition' => 'inline']); + } + + return response()->streamDownload(function () use ($file) { + echo Storage::get($file); + }, basename($file), $headers); + } + } diff --git a/app/Repositories/RecurringInvoiceRepository.php b/app/Repositories/RecurringInvoiceRepository.php index c0b4e87f121e..6afa3c609df1 100644 --- a/app/Repositories/RecurringInvoiceRepository.php +++ b/app/Repositories/RecurringInvoiceRepository.php @@ -28,6 +28,6 @@ class RecurringInvoiceRepository extends BaseRepository public function getInvitationByKey($key) :?RecurringInvoiceInvitation { - return RecurringInvoiceInvitation::where('key', $key)->first(); + return RecurringInvoiceInvitation::withTrashed()->where('key', $key)->first(); } } From 8a660471ba79d95433ae32f9bd8f3e6791bb8532 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 31 Mar 2023 10:59:23 +1100 Subject: [PATCH 4/4] v5.5.102 --- VERSION.txt | 2 +- config/ninja.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION.txt b/VERSION.txt index 71e4ca64ffb0..3f60ebfc9e81 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -5.5.101 \ No newline at end of file +5.5.102 \ No newline at end of file diff --git a/config/ninja.php b/config/ninja.php index 0e08f4762eb2..70d222f97f56 100644 --- a/config/ninja.php +++ b/config/ninja.php @@ -14,8 +14,8 @@ return [ 'require_https' => env('REQUIRE_HTTPS', true), 'app_url' => rtrim(env('APP_URL', ''), '/'), 'app_domain' => env('APP_DOMAIN', 'invoicing.co'), - 'app_version' => '5.5.101', - 'app_tag' => '5.5.101', + 'app_version' => '5.5.102', + 'app_tag' => '5.5.102', 'minimum_client_version' => '5.0.16', 'terms_version' => '1.0.1', 'api_secret' => env('API_SECRET', ''),