createsDocument = $createsDocument; $this->createsFile = $createsFile; } /** * @param Booking $booking * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute($transaction, $po_order_transaction, $supplier, $document_type) { $lowercaseDocumentType = strtolower($document_type); if ($document_type !== DocumentType::SUPPLIER_DELIVER_ORDER) { $order_pdf = LaravelMpdf::loadView('pages.pdfs.' . $lowercaseDocumentType, ['invoice_transaction' => $transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( $document_type, [chunk_split('data:application/pdf;base64,' . base64_encode($order_pdf->output()))], '', ApprovalStatus::COMPLETED, $lowercaseDocumentType . 's' ); } else { $order_pdf = LaravelMpdf::loadView('pages.pdfs.supplier_deliver_order', ['supplier_deliver_order_transaction' => $transaction, 'po_order_transaction' => $po_order_transaction, 'supplier' => $supplier]); $document_object = new DocumentObject( $document_type, [chunk_split('data:application/pdf;base64,'.base64_encode($order_pdf->output()))], '', ApprovalStatus::COMPLETED, $lowercaseDocumentType . 's' ); } $document = $this->createsDocument->execute($po_order_transaction->booking, $document_object); $this->createsFile->execute($document, $document_object); } }