diff --git a/app/Classes/Modules/Exports/Services/ExportsPendingArrangementDeliveryList.php b/app/Classes/Modules/Exports/Services/ExportsPendingArrangementDeliveryList.php new file mode 100644 index 00000000..0d52ca72 --- /dev/null +++ b/app/Classes/Modules/Exports/Services/ExportsPendingArrangementDeliveryList.php @@ -0,0 +1,70 @@ +whereHas('containers', function ($query){ + $query->where('containers.status', ApprovalStatus::COMPLETED); + })->whereDoesntHave('transports'); + } + + /** + * @param PackingList $packingList + * + * @return array + */ + public function map($packingList): array + { + $order = $packingList->owner; + $marking = $order->companyModule->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference; + $defaultAddress = $order->companyModule->addresses()->defaultAddress()->first(); + $defaultAddress = $defaultAddress ? $defaultAddress : $order->companyModule->addresses()->first(); + $address = $defaultAddress->street_one.', '.$defaultAddress->street_two.' '.$defaultAddress->district->name.' '.$defaultAddress->postcode.' '.$defaultAddress->state->name.' '.$defaultAddress->country->name; + $contacts = $defaultAddress->contacts->first() ? $defaultAddress->contacts->first(): ''; + $transport = $packingList->transports()->first(); + + return [ + $order->reference, + $marking, + $packingList->packages()->sum('quantity'), + $defaultAddress->remarks->first() ? $defaultAddress->remarks->first()->content: '', + $contacts ? $contacts ->reference : '', + $contacts ? $contacts ->phone : '', + $transport ? Carbon::now()->diffInDays($transport->drop_date, false) : '', + $address + ]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php new file mode 100644 index 00000000..8575e88c --- /dev/null +++ b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListController.php @@ -0,0 +1,29 @@ +headers->set('Authorization', 'Bearer '.$token); + } + + public function export(Request $request) { + $exportsPendingArrangementDeliveryList = new ExportsPendingArrangementDeliveryList($request); + $response = $exportsPendingArrangementDeliveryList->download('pending-arrangement-packing-list.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + ob_end_clean(); + return $response; + } +} diff --git a/resources/views/pages/delivery_list.blade.php b/resources/views/pages/delivery_list.blade.php index 2f27f146..89717e81 100644 --- a/resources/views/pages/delivery_list.blade.php +++ b/resources/views/pages/delivery_list.blade.php @@ -77,7 +77,17 @@