diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php
index 06eb6ebee..f93ada1b0 100644
--- a/app/Http/Controllers/PreviewController.php
+++ b/app/Http/Controllers/PreviewController.php
@@ -125,7 +125,7 @@ class PreviewController extends BaseController
->design($design)
->build();
- if (request()->has('html') && request()->input('html') == true) {
+ if (request()->query('html') == true) {
return $maker->getCompiledHTML;
}
diff --git a/app/Jobs/Import/CSVImport.php b/app/Jobs/Import/CSVImport.php
index 0381830b2..5ef23217e 100644
--- a/app/Jobs/Import/CSVImport.php
+++ b/app/Jobs/Import/CSVImport.php
@@ -21,7 +21,9 @@ use App\Import\Transformers\ClientTransformer;
use App\Import\Transformers\InvoiceItemTransformer;
use App\Import\Transformers\InvoiceTransformer;
use App\Import\Transformers\ProductTransformer;
+use App\Jobs\Mail\MailRouter;
use App\Libraries\MultiDB;
+use App\Mail\Import\ImportCompleted;
use App\Models\Client;
use App\Models\Company;
use App\Models\Currency;
@@ -98,11 +100,19 @@ class CSVImport implements ShouldQueue
info("import".ucfirst($this->entity_type));
$this->{"import".ucfirst($this->entity_type)}();
+
+ $data = [
+ 'entity' => ucfirst($this->entity_type),
+ 'errors' => $this->error_array,
+ 'clients' => $this->maps['clients'],
+ 'products' => $this->maps['products'],
+ 'invoices' => $this->maps['invoices'],
+ 'settings' => $this->company->settings
+ ];
+info(print_r($data,1));
- info("errors");
-
- info(print_r($this->error_array,1));
+ MailRouter::dispatch(new ImportCompleted($data), $this->company, auth()->user());
}
@@ -180,7 +190,7 @@ class CSVImport implements ShouldQueue
$validator = Validator::make($invoice, (new StoreInvoiceRequest())->rules());
if ($validator->fails()) {
- $this->error_array[] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
+ $this->error_array['invoices'] = ['invoice' => $invoice, 'error' => json_encode($validator->errors())];
} else {
$invoice = $invoice_repository->save($invoice, InvoiceFactory::create($this->company->id, $this->setUser($record)));
@@ -248,7 +258,7 @@ class CSVImport implements ShouldQueue
$validator = Validator::make($client, (new StoreClientRequest())->rules());
if ($validator->fails()) {
- $this->error_array[] = ['client' => $client, 'error' => json_encode($validator->errors())];
+ $this->error_array['clients'] = ['client' => $client, 'error' => json_encode($validator->errors())];
} else {
$client = $client_repository->save($client, ClientFactory::create($this->company->id, $this->setUser($record)));
@@ -291,7 +301,7 @@ class CSVImport implements ShouldQueue
$validator = Validator::make($product, (new StoreProductRequest())->rules());
if ($validator->fails()) {
- $this->error_array[] = ['product' => $product, 'error' => json_encode($validator->errors())];
+ $this->error_array['products'] = ['product' => $product, 'error' => json_encode($validator->errors())];
} else {
$product = $product_repository->save($product, ProductFactory::create($this->company->id, $this->setUser($record)));
@@ -310,6 +320,7 @@ class CSVImport implements ShouldQueue
$this->maps['company'] = $this->company;
$this->maps['clients'] = [];
$this->maps['products'] = [];
+ $this->maps['invoices'] = [];
return $this;
}
diff --git a/app/Jobs/Mail/BaseMailerJob.php b/app/Jobs/Mail/BaseMailerJob.php
index d0649ba73..c337e939c 100644
--- a/app/Jobs/Mail/BaseMailerJob.php
+++ b/app/Jobs/Mail/BaseMailerJob.php
@@ -97,8 +97,9 @@ class BaseMailerJob implements ShouldQueue
public function failed($exception = null)
{
- // info('the job failed');
-
+ info('the job failed');
+ info($exception->getMessage());
+
$job_failure = new EmailFailure();
$job_failure->string_metric5 = get_parent_class($this);
$job_failure->string_metric6 = $exception->getMessage();
diff --git a/app/Jobs/Mail/MailRouter.php b/app/Jobs/Mail/MailRouter.php
index aa29d036b..dabb8a456 100644
--- a/app/Jobs/Mail/MailRouter.php
+++ b/app/Jobs/Mail/MailRouter.php
@@ -12,6 +12,7 @@
namespace App\Jobs\Mail;
use App\Libraries\MultiDB;
+use App\Models\Client;
use App\Models\ClientContact;
use App\Models\Company;
use App\Models\User;
@@ -74,7 +75,9 @@ class MailRouter extends BaseMailerJob implements ShouldQueue
->send($this->mailable);
} catch (\Exception $e) {
$this->failed($e);
- $this->logMailError($e->getMessage(), $this->to_user);
+
+ if($this->to_user instanceof ClientContact)
+ $this->logMailError($e->getMessage(), $this->to_user->client);
}
}
}
diff --git a/app/Listeners/Quote/QuoteViewedActivity.php b/app/Listeners/Quote/QuoteViewedActivity.php
index e80dfd27e..cdcdd12c1 100644
--- a/app/Listeners/Quote/QuoteViewedActivity.php
+++ b/app/Listeners/Quote/QuoteViewedActivity.php
@@ -43,14 +43,14 @@ class QuoteViewedActivity implements ShouldQueue
$fields = new stdClass;
- $fields->user_id = $event->quote->user_id;
- $fields->company_id = $event->quote->company_id;
+ $fields->user_id = $event->invitation->quote->user_id;
+ $fields->company_id = $event->invitation->company_id;
$fields->activity_type_id = Activity::VIEW_QUOTE;
$fields->client_id = $event->invitation->client_id;
$fields->client_contact_id = $event->invitation->client_contact_id;
$fields->invitation_id = $event->invitation->id;
$fields->quote_id = $event->invitation->quote_id;
- $this->activity_repo->save($fields, $event->quote, $event->event_vars);
+ $this->activity_repo->save($fields, $event->invitation->quote, $event->event_vars);
}
}
diff --git a/app/Mail/Import/ImportCompleted.php b/app/Mail/Import/ImportCompleted.php
new file mode 100644
index 000000000..85178fb06
--- /dev/null
+++ b/app/Mail/Import/ImportCompleted.php
@@ -0,0 +1,35 @@
+data = $data;
+ }
+
+ /**
+ * Build the message.
+ *
+ * @return $this
+ */
+ public function build()
+ {
+ return $this->from(config('mail.from.address'), config('mail.from.name'))
+ ->view('email.import.completed', $this->data);
+ }
+}
diff --git a/app/Utils/Traits/Pdf/PdfMaker.php b/app/Utils/Traits/Pdf/PdfMaker.php
index b3225dc33..422149807 100644
--- a/app/Utils/Traits/Pdf/PdfMaker.php
+++ b/app/Utils/Traits/Pdf/PdfMaker.php
@@ -51,6 +51,7 @@ trait PdfMaker
->deviceScaleFactor(1)
->waitUntilNetworkIdle(true)
->noSandbox()
+ ->ignoreHttpsErrors()
->pdf();
}
}
diff --git a/resources/views/email/import/completed.blade.php b/resources/views/email/import/completed.blade.php
new file mode 100644
index 000000000..6763d0575
--- /dev/null
+++ b/resources/views/email/import/completed.blade.php
@@ -0,0 +1,82 @@
+@component('email.template.master', ['design' => 'light', 'settings' =>$settings])
+
+@slot('header')
+ @component('email.components.header')
+ Import completed
+ @endcomponent
+@endslot
+
+@slot('greeting')
+ Hello,
+@endslot
+
+Here is the output of your recent import job.
+
+@if(isset($clients) && count($clients) >=1)
+
+