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 @@