madbob/GASdottoNG

View on GitHub
code/app/Printers/AggregateBooking.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

namespace App\Printers;

use PDF;

class AggregateBooking extends Printer
{
    public function document($obj, $type, $request)
    {
        $bookings = [$obj];

        foreach($obj->user->friends as $friend) {
            $friend_booking = $obj->aggregate->bookingBy($friend->id);
            if ($friend_booking->bookings->isEmpty() == false) {
                $bookings[] = $friend_booking;
            }
        }

        $names = [];
        foreach($obj->aggregate->orders as $order) {
            $names[] = sprintf('%s %s', $order->supplier->name, $order->internal_number);
        }

        $names = join(' / ', $names);
        $filename = sanitizeFilename(_i('Dettaglio Consegne ordini %s.pdf', [$names]));

        $pdf = PDF::loadView('documents.personal_aggregate_shipping', [
            'aggregate' => $obj->aggregate,
            'bookings' => $bookings,
        ]);

        return $pdf->download($filename);
    }
}