$invoice->customer->name, 'address' => self::makeAddress($invoice->address), 'custom_fields' => [ 'order number' => $invoice->order->ref, ], ]); $items = self::makeItems($invoice->order->detail); $invoice = Invoice::make(__('invoices::invoice.invoice').' '.$invoice->ref) ->status(Invoices::getStatus($invoice->status)) ->buyer($customer) ->shipping($invoice->shipping) ->date(Carbon::parse($invoice->date_invoice)) ->payUntilDays(14) ->filename('invoice-'.$invoice->ref.'-'.$invoice->uuid) ->addItems($items) ->notes($invoice->comment ?? '') ->logo(public_path('img/logo.png')) ->save('public'); $link = $invoice->url(); // Then send email to party with link // And return invoice itself to browser or have a different view return $invoice->stream(); } public static function makeAddress($address) { return $address->address.'
'.$address->zipcode.' '.$address->city; } public static function makeItems($details) { $items = []; foreach ($details as $detail) { $items[] = InvoiceItem::make($detail->name) ->pricePerUnit($detail->price) ->taxByPercent($detail->vat) ->quantity($detail->quantity); } return $items; } }