diff --git a/app/Factory/CloneQuoteToInvoiceFactory.php b/app/Factory/CloneQuoteToInvoiceFactory.php index e77f4611f0c4..e147cb7a3444 100644 --- a/app/Factory/CloneQuoteToInvoiceFactory.php +++ b/app/Factory/CloneQuoteToInvoiceFactory.php @@ -37,7 +37,7 @@ class CloneQuoteToInvoiceFactory $invoice->due_date = null; $invoice->partial_due_date = null; $invoice->number = null; - + $invoice->date = now()->format('Y-m-d'); return $invoice; } } diff --git a/app/Http/Controllers/CompanyController.php b/app/Http/Controllers/CompanyController.php index fef8c50add14..e03599b1cf4b 100644 --- a/app/Http/Controllers/CompanyController.php +++ b/app/Http/Controllers/CompanyController.php @@ -32,6 +32,7 @@ use App\Transformers\CompanyTransformer; use App\Transformers\CompanyUserTransformer; use App\Utils\Ninja; use App\Utils\Traits\MakesHash; +use App\Utils\Traits\SavesDocuments; use App\Utils\Traits\Uploadable; use Illuminate\Foundation\Bus\DispatchesJobs; use Illuminate\Http\Request; @@ -47,6 +48,7 @@ class CompanyController extends BaseController use DispatchesJobs; use MakesHash; use Uploadable; + use SavesDocuments; protected $entity_type = Company::class; @@ -402,14 +404,17 @@ class CompanyController extends BaseController */ public function update(UpdateCompanyRequest $request, Company $company) { - if ($request->hasFile('company_logo') || (is_array($request->input('settings')) && !array_key_exists('company_logo', $request->input('settings')))) { + if ($request->hasFile('company_logo') || (is_array($request->input('settings')) && !array_key_exists('company_logo', $request->input('settings')))) $this->removeLogo($company); - } + $company = $this->company_repo->save($request->all(), $company); $company->saveSettings($request->input('settings'), $company); + if ($request->has('documents')) + $this->saveDocuments($request->input('documents'), $company, false); + $this->uploadLogo($request->file('company_logo'), $company, $company); return $this->itemResponse($company); diff --git a/app/Listeners/Invoice/CreateInvoicePdf.php b/app/Listeners/Invoice/CreateInvoicePdf.php index 56408b4037f9..91d5428fc6b1 100644 --- a/app/Listeners/Invoice/CreateInvoicePdf.php +++ b/app/Listeners/Invoice/CreateInvoicePdf.php @@ -36,8 +36,26 @@ class CreateInvoicePdf implements ShouldQueue { MultiDB::setDb($event->company->db); - $event->invoice->invitations->each(function ($invitation) { - CreateEntityPdf::dispatch($invitation); - }); + if(isset($event->invoice)) + { + $event->invoice->invitations->each(function ($invitation) { + CreateEntityPdf::dispatch($invitation); + }); + } + + if(isset($event->quote)) + { + $event->quote->invitations->each(function ($invitation) { + CreateEntityPdf::dispatch($invitation); + }); + } + + if(isset($event->credit)) + { + $event->credit->invitations->each(function ($invitation) { + CreateEntityPdf::dispatch($invitation); + }); + } + } } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 12f366d41576..9392b87c3349 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -226,6 +226,7 @@ class EventServiceProvider extends ServiceProvider ], CreditWasUpdated::class => [ UpdatedCreditActivity::class, + CreateInvoicePdf::class, ], CreditWasEmailedAndFailed::class => [ ], @@ -334,6 +335,7 @@ class EventServiceProvider extends ServiceProvider ], QuoteWasUpdated::class => [ QuoteUpdatedActivity::class, + CreateInvoicePdf::class, ], QuoteWasEmailed::class => [ QuoteEmailActivity::class, diff --git a/app/Services/Quote/QuoteService.php b/app/Services/Quote/QuoteService.php index 65eb440ec5cd..33939e362615 100644 --- a/app/Services/Quote/QuoteService.php +++ b/app/Services/Quote/QuoteService.php @@ -58,9 +58,9 @@ class QuoteService return $this; } - $convert_quote = new ConvertQuote($this->quote->client); + $convert_quote = (new ConvertQuote($this->quote->client))->run($this->quote); - $this->invoice = $convert_quote->run($this->quote); + $this->invoice = $convert_quote; $this->quote->fresh();