'Regenerate Shipping Invoice', 'message' => 'You have successfully regenerated shipping invoice' ]; } /** @var CreatesDocument */ private $createsDocument; /** @var CreatesFiles */ private $createsFiles; /** @var FetchesTransaction */ private $fetchesTransaction; /** * @param CreatesDocument $createsDocument */ public function __construct(CreatesDocument $createsDocument, CreatesFiles $createsFiles, FetchesTransaction $fetchesTransaction) { $this->createsDocument = $createsDocument; $this->createsFiles = $createsFiles; $this->fetchesTransaction = $fetchesTransaction; } public function logic(Request $request) : JsonResponse { $invoice = $this->fetchesTransaction->execute(['id' => $request->route('invoice_id')]); $invoice->documents()->delete(); $view = 'pages.pdfs.shipping_invoice'; $dateToCompare = Carbon::parse(env('SST_START_DATE', '2024-04-01 00:00:00')); $shippingInvoiceTransactionCreatedDate = Carbon::parse($invoice->created_at); if ($shippingInvoiceTransactionCreatedDate->isAfter($dateToCompare) && $invoice->tax > 0) { $view = 'pages.pdfs.shipping_invoice_sst'; } $transaction_invoice_pdf = LaravelMpdf::loadView($view, ['invoice_transaction' => $invoice]); $document_object = new DocumentObject( DocumentType::SHIPPING_INVOICE, [chunk_split('data:application/pdf;base64,'.base64_encode($transaction_invoice_pdf->output()))], '', ApprovalStatus::COMPLETED, 'shipping_invoice' ); $document =$this->createsDocument->execute($invoice, $document_object); $this->createsFiles->execute($document, $document_object); // dump($document); return $this->response([]); } }