createsDocument = $createsDocument; $this->createsFiles = $createsFiles; } /** * @throws MalformedRequestException */ public function execute(Transaction $invoice_transaction) { $view = 'pages.pdfs.shipping_invoice'; $dateToCompare = Carbon::parse(env('SST_START_DATE', '2024-04-01 00:00:00')); $shippingInvoiceTransactionCreatedDate = Carbon::parse($invoice_transaction->created_at); if ($shippingInvoiceTransactionCreatedDate->isAfter($dateToCompare) && $invoice_transaction->tax > 0) { $view = 'pages.pdfs.shipping_invoice_sst'; } $eInvoiceStartDate = Carbon::parse(env('E_INVOICE_START_DATE', '2025-07-01 00:00:00')); if ($shippingInvoiceTransactionCreatedDate->isAfter($eInvoiceStartDate)) { $view = 'pages.pdfs.shipping_invoice_sst_v2'; } $companyModule = $invoice_transaction->owner->owner->companyModule; $user = $companyModule->employees()->first(); $brn = $companyModule->company->documents->where('document_type', DocumentType::SSM_REGISTRATION)->first(); $documentDate = $invoice_transaction->created_at; $documentIdentifierPrefix = 'Invoice No: '; $documentIdentifier = $invoice_transaction->bill_no; $transaction_invoice_pdf = LaravelMpdf::loadView($view, ['invoice_transaction' => $invoice_transaction, 'brn' => $brn, 'document_date' => $documentDate, 'document_identifier' => $documentIdentifier, 'document_identifier_prefix' => $documentIdentifierPrefix]); $document_object = new DocumentObject( DocumentType::SHIPPING_INVOICE, [chunk_split('data:application/pdf;base64,'.base64_encode($transaction_invoice_pdf->output()))], '', ApprovalStatus::COMPLETED, 'shipping_invoice' ); /** @var Document $document */ $document =$this->createsDocument->execute($invoice_transaction, $document_object); $this->createsFiles->execute($document, $document_object); } }