diff --git a/app/Classes/Modules/Exports/ControllersLogic/ExportPackingListLogic.php b/app/Classes/Modules/Exports/ControllersLogic/ExportPackingListLogic.php new file mode 100644 index 00000000..5ad04101 --- /dev/null +++ b/app/Classes/Modules/Exports/ControllersLogic/ExportPackingListLogic.php @@ -0,0 +1,68 @@ + 'Retrieved PackingList', + 'message' => 'You have successfully exported PackingList' + ]; + } + + /** @var ExportsOnHoldPackingList */ + private $exportsOnHoldPackingList; + + /** @var ExportsPendingArrangementDeliveryList */ + private $exportsPendingArrangementDeliveryList; + + /** @var CanExportPackingList */ + private $canExportPackingList; + + /** + * ExportPackingListLogic constructor. + * @param ExportsPendingArrangementDeliveryList $exportsPendingArrangementDeliveryList + * @param ExportsOnHoldPackingList $exportsOnHoldPackingList + * @param CanExportPackingList $canExportPackingList + */ + public function __construct(ExportsPendingArrangementDeliveryList $exportsPendingArrangementDeliveryList, ExportsOnHoldPackingList $exportsOnHoldPackingList, CanExportPackingList $canExportPackingList) + { + $this->exportsPendingArrangementDeliveryList = $exportsPendingArrangementDeliveryList; + $this->exportsOnHoldPackingList = $exportsOnHoldPackingList; + $this->canExportPackingList = $canExportPackingList; + } + + + /** + * @param Request $request + * @return Response + */ + public function logic(Request $request) : BinaryFileResponse + { + $this->canExportPackingList->passes(); + $isSetPendingArrangement = $request->header('PendingArrangement'); + if($isSetPendingArrangement){ + $response = $this->exportsPendingArrangementDeliveryList->download('packing-list-delivery.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + } + else { + $response = $this->exportsOnHoldPackingList->download('packing-list-on-hold.xls', Excel::XLS, ['Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']); + } + + ob_end_clean(); + return $response; + } + +} diff --git a/app/Classes/Modules/Exports/Standards/Rules/CanExportPackingList.php b/app/Classes/Modules/Exports/Standards/Rules/CanExportPackingList.php new file mode 100644 index 00000000..2f19078e --- /dev/null +++ b/app/Classes/Modules/Exports/Standards/Rules/CanExportPackingList.php @@ -0,0 +1,49 @@ +user()){ + $roleToCheck = Auth()->user()->type; + if (in_array($roleToCheck, RoleTypes::ADMIN_ROLES)) { + return true; + } + else { + return false; + } + } + return false; + } + + /** + * @param $object + * @return bool + */ + protected function validators($object): bool + { + return true; + + } + + + /** + * @param $object + * @return bool + */ + protected function criteria($object): bool + { + return true; + } + +} diff --git a/app/Http/Controllers/Exports/ExportPendingArrangementPackingListV2Controller.php b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListV2Controller.php new file mode 100644 index 00000000..2829b8a6 --- /dev/null +++ b/app/Http/Controllers/Exports/ExportPendingArrangementPackingListV2Controller.php @@ -0,0 +1,28 @@ +headers->set('PendingArrangement', true); + return $logic->execute($request); + } + + /** + * @param Request $request + * @param ExportPackingListLogic $logic + * @return BinaryFileResponse + */ + public function onHold(Request $request, ExportPackingListLogic $logic) { + $request->headers->set('OnHold', true); + return $logic->execute($request); + } +} diff --git a/resources/views/pages/delivery_list.blade.php b/resources/views/pages/delivery_list.blade.php index 89717e81..ecb845db 100644 --- a/resources/views/pages/delivery_list.blade.php +++ b/resources/views/pages/delivery_list.blade.php @@ -77,7 +77,7 @@
- + - +
Marking
Quantity
@@ -156,4 +156,4 @@
-@endsection \ No newline at end of file +@endsection diff --git a/routes/web.php b/routes/web.php index b92e0d62..f388ead7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -434,8 +434,8 @@ Route::get('/warehouse/{id}/show', function ($id) { })->name('warehouse.show'); Route::get('/export/customer-latest-order-date/f614e339d7058904a831aad742e24d55', 'Exports\ExportCustomersToExcelController@export'); Route::get('/export/packing-list/{id}', 'Exports\ExportContainerPackingListController@export')->name('container.packaging_list.export'); -Route::get('/export/pending-arrangement-delivery-list', 'Exports\ExportPendingArrangementPackingListController@export')->name('packaging_list.pending_arrangement.export'); -Route::get('/export/on-hold-packing-list', 'Exports\ExportPendingArrangementPackingListController@onHold')->name('packaging_list.on_hold.export'); +Route::get('/export/pending-arrangement-delivery-list', 'Exports\ExportPendingArrangementPackingListV2Controller@export')->name('packaging_list.pending_arrangement.export'); +Route::get('/export/on-hold-packing-list', 'Exports\ExportPendingArrangementPackingListV2Controller@onHold')->name('packaging_list.on_hold.export'); Route::get('/export/arrived-parcel', 'Exports\ExportArrivedParcelController@export')->name('packing_list.arrived_parcel.export'); Route::get('/export/parcel-summary', 'Exports\ExportArrivedParcelController@summary'); Route::get('/export/parcel-postcode', 'Exports\ExportParcelPostcodesController@export');