diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index b691344947b4..e99929a25349 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -522,6 +522,9 @@ class InvoiceController extends BaseController $ids = request()->input('ids'); +nlog($action); +nlog($ids); + $invoices = Invoice::withTrashed()->whereIn('id', $this->transformKeys($ids))->company()->get(); if (! $invoices) { @@ -532,13 +535,14 @@ class InvoiceController extends BaseController * Download Invoice/s */ - if ($action == 'download' && $invoices->count() > 1) { + if ($action == 'bulk_download' && $invoices->count() > 1) { $invoices->each(function ($invoice) { if (auth()->user()->cannot('view', $invoice)) { + nlog("access denied"); return response()->json(['message' => ctrans('text.access_denied')]); } }); - +nlog("bulky"); ZipInvoices::dispatch($invoices, $invoices->first()->company, auth()->user()); return response()->json(['message' => ctrans('texts.sent_message')], 200); diff --git a/app/Jobs/Invoice/ZipInvoices.php b/app/Jobs/Invoice/ZipInvoices.php index 0dff22aa35c8..a38d90a087cd 100644 --- a/app/Jobs/Invoice/ZipInvoices.php +++ b/app/Jobs/Invoice/ZipInvoices.php @@ -70,7 +70,7 @@ class ZipInvoices implements ShouldQueue */ public function handle() - { + {nlog("bulky"); # create new zip object $zip = new ZipArchive(); diff --git a/app/Observers/InvoiceObserver.php b/app/Observers/InvoiceObserver.php index f25e9a18c614..d38e1509edfb 100644 --- a/app/Observers/InvoiceObserver.php +++ b/app/Observers/InvoiceObserver.php @@ -29,7 +29,6 @@ class InvoiceObserver */ public function created(Invoice $invoice) { -nlog("ppo0"); $subscriptions = Webhook::where('company_id', $invoice->company_id) ->where('event_id', Webhook::EVENT_CREATE_INVOICE) diff --git a/app/Services/Credit/CreateInvitations.php b/app/Services/Credit/CreateInvitations.php index a4cca1d37b75..7a9fce00741b 100644 --- a/app/Services/Credit/CreateInvitations.php +++ b/app/Services/Credit/CreateInvitations.php @@ -23,7 +23,7 @@ class CreateInvitations extends AbstractService { use MakesHash; - private $credit; + public $credit; public function __construct(Credit $credit) { @@ -45,6 +45,7 @@ class CreateInvitations extends AbstractService $invitation = CreditInvitation::whereCompanyId($this->credit->company_id) ->whereClientContactId($contact->id) ->whereCreditId($this->credit->id) + ->withTrashed() ->first(); if (! $invitation) { @@ -58,6 +59,34 @@ class CreateInvitations extends AbstractService } }); + if($this->credit->invitations()->count() == 0) { + + if($contacts->count() == 0){ + $contact = $this->createBlankContact(); + } + else{ + $contact = $contacts->first(); + + $invitation = CreditInvitation::where('company_id', $this->credit->company_id) + ->where('client_contact_id', $contact->id) + ->where('credit_id', $this->credit->id) + ->withTrashed() + ->first(); + + if($invitation){ + $invitation->restore(); + return $this->credit; + } + } + + $ii = CreditInvitationFactory::create($this->credit->company_id, $this->credit->user_id); + $ii->key = $this->createDbHash($this->credit->company->db); + $ii->credit_id = $this->credit->id; + $ii->client_contact_id = $contact->id; + $ii->save(); + } + + return $this->credit; } diff --git a/app/Services/Credit/CreditService.php b/app/Services/Credit/CreditService.php index eea08769e1fa..acac1ff28ede 100644 --- a/app/Services/Credit/CreditService.php +++ b/app/Services/Credit/CreditService.php @@ -13,13 +13,14 @@ namespace App\Services\Credit; use App\Jobs\Util\UnlinkFile; use App\Models\Credit; +use App\Services\Credit\CreateInvitations; use App\Utils\Traits\MakesHash; class CreditService { use MakesHash; - protected $credit; + public $credit; public function __construct($credit) { diff --git a/app/Services/Invoice/CreateInvitations.php b/app/Services/Invoice/CreateInvitations.php index 7d7c6d7dad0a..07734ab6433f 100644 --- a/app/Services/Invoice/CreateInvitations.php +++ b/app/Services/Invoice/CreateInvitations.php @@ -62,7 +62,23 @@ class CreateInvitations extends AbstractService if($this->invoice->invitations()->count() == 0) { - $contact = $this->createBlankContact(); + if($contacts->count() == 0){ + $contact = $this->createBlankContact(); + } + else{ + $contact = $contacts->first(); + + $invitation = InvoiceInvitation::where('company_id', $this->invoice->company_id) + ->where('client_contact_id', $contact->id) + ->where('invoice_id', $this->invoice->id) + ->withTrashed() + ->first(); + + if($invitation){ + $invitation->restore(); + return $this->invoice; + } + } $ii = InvoiceInvitationFactory::create($this->invoice->company_id, $this->invoice->user_id); $ii->key = $this->createDbHash($this->invoice->company->db); diff --git a/app/Services/Invoice/InvoiceService.php b/app/Services/Invoice/InvoiceService.php index 45d0ab893a13..5ea2700892e8 100644 --- a/app/Services/Invoice/InvoiceService.php +++ b/app/Services/Invoice/InvoiceService.php @@ -33,7 +33,7 @@ class InvoiceService { use MakesHash; - private $invoice; + public $invoice; public function __construct($invoice) { diff --git a/app/Services/Quote/CreateInvitations.php b/app/Services/Quote/CreateInvitations.php index 2ef9fbb320c4..f4a937186fe0 100644 --- a/app/Services/Quote/CreateInvitations.php +++ b/app/Services/Quote/CreateInvitations.php @@ -59,6 +59,33 @@ class CreateInvitations } }); + if($this->quote->invitations()->count() == 0) { + + if($contacts->count() == 0){ + $contact = $this->createBlankContact(); + } + else{ + $contact = $contacts->first(); + + $invitation = QuoteInvitation::where('company_id', $this->quote->company_id) + ->where('client_contact_id', $contact->id) + ->where('quote_id', $this->quote->id) + ->withTrashed() + ->first(); + + if($invitation){ + $invitation->restore(); + return $this->quote; + } + } + + $ii = QuoteInvitationFactory::create($this->quote->company_id, $this->quote->user_id); + $ii->key = $this->createDbHash($this->quote->company->db); + $ii->quote_id = $this->quote->id; + $ii->client_contact_id = $contact->id; + $ii->save(); + } + return $this->quote->fresh(); }