fetchesCompany = $fetchesCompany; $this->createSupplierTransactionProcessor = $createSupplierTransactionProcessor; } /** * @param Request $request * @return string|\Symfony\Component\HttpFoundation\Response * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Request $request) { $supplier = $this->fetchesCompany->execute(['id' => $request->route('id')]); $rate = $request->input('rate'); $payments = array_map(function($value){ return ['id' => $value]; }, json_decode($request->input('payments'))); DB::beginTransaction(); $this->createSupplierTransactionProcessor->execute($supplier, $rate, $payments); if(!count($this->createSupplierTransactionProcessor->getBills())) return 'unexpected error'; $pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $this->createSupplierTransactionProcessor->getBills(), 'transferFeeTransactions' => $this->createSupplierTransactionProcessor->getTransferTransactions(), 'supplier' => $supplier]); DB::rollBack(); return $pdf->stream('MockUpWhiteForm.pdf'); } }