'Regenerate Shipping Invoice', 'message' => 'You have successfully regenerated shipping invoice' ]; } /** @var CreateShippingInvoiceTransactionDocProcessor */ private $createShippingInvoiceTransactionDocProcessor; /** * @param CreateShippingInvoiceTransactionDocProcessor $createShippingInvoiceTransactionDocProcessor */ public function __construct(CreateShippingInvoiceTransactionDocProcessor $createShippingInvoiceTransactionDocProcessor) { $this->createShippingInvoiceTransactionDocProcessor = $createShippingInvoiceTransactionDocProcessor; } public function logic(Request $request) : JsonResponse { return $this->response([]); //The business logic to generate normal invoice and e-invoice no longer so straight forward $orders = Order::where('company_module_id', $request->route('company_module_id'))->get(); foreach ($orders as $order){ $invoices = $order->transactions()->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get(); foreach ($invoices as $invoice){ // $invoice->documents()->delete(); $invoice->documents()->where('document_type', DocumentType::SHIPPING_EINVOICE)->delete(); $this->createShippingInvoiceTransactionDocProcessor->execute($invoice); // dump($document); } } return $this->response([]); } }