pdf = $pdf; $this->mailer = $mailer; $this->propertyService = $propertyService; } public function handle() { $this->info(date('Y-m-d H:i:s') . ' START'); $pdfDataRequest = [ 'property_id' => $this->argument('property_id'), 'locale' => $this->argument('language') ]; $pdfContentService = App::make('App\Core\Service\PdfContentService'); $factSheetDataResponse = $pdfContentService->factSheetData($pdfDataRequest); if ($factSheetDataResponse['status'] != 'success') { throw new Exception($factSheetDataResponse['message']); } $pageContent = $factSheetDataResponse['data']; $pdfLanguage = $pdfDataRequest['locale']; $this->info(date('Y-m-d H:i:s') . ' PDF'); app('translator')->setLocale($pdfLanguage); $pdfService = $this->pdf->loadView('pdf.propertyCatalog', compact('pageContent'), [], 'UTF8'); $pdfService->setOptions([ 'dpi' => 100, 'isHtml5ParserEnabled' => true, 'isRemoteEnabled' => true, 'chroot', base_path(), 'enable_html5_parser' => true, 'enable_css_float' => true ]); $hotelName = Str::slug($pageContent['name'], '_', 'en') . '_' . $pdfLanguage; $pathStorage = Config::get('app.fileSystemDriver') . '/property-catalog/' . $hotelName . '.pdf'; file_put_contents($pathStorage, $pdfService->output()); if ($this->option('email')) { $this->info(date('Y-m-d H:i:s') . ' E-Mail'); $languageDetail = Language::where('code', $pdfLanguage)->first(); $languageDetail = $languageDetail ? $languageDetail->toArray() : null; $mailParams = [ 'email' => $this->option('email'), 'catalogUrl' => Config::get('app.imageUrl') . '/property-catalog/' . $hotelName . '.pdf', 'propertyName' => $pageContent['name'], 'language' => $pdfLanguage, 'languageText' => __($languageDetail['language_key'],[],'tr'), 'pathStorage' => $pathStorage ]; $this->mailer->send('emails.propertyCatalogMail', ['mailParams' => $mailParams], function ($message) use ($mailParams) { $message->to($mailParams['email'], 'Extranetwork Property Katalog') ->bcc(Config::get('app.logMailAddress')) ->subject($mailParams['propertyName'] . ' Catalog - ' . $mailParams['languageText']) //->attach($mailParams['pathStorage']) ->from(Config::get('app.mailSenderAddress'), 'Extranetwork'); }); } $this->info(date('Y-m-d H:i:s') . ' FINISHED'); } }