diff --git a/app/Classes/General/Eloquent/Filters/WithOwner.php b/app/Classes/General/Eloquent/Filters/WithOwner.php new file mode 100644 index 00000000..7d31691e --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WithOwner.php @@ -0,0 +1,20 @@ +with('owner'); + } +} \ No newline at end of file diff --git a/app/Classes/General/Eloquent/Filters/WithPackingLists.php b/app/Classes/General/Eloquent/Filters/WithPackingLists.php new file mode 100644 index 00000000..927aa526 --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WithPackingLists.php @@ -0,0 +1,20 @@ +with('packingLists'); + } +} \ No newline at end of file diff --git a/app/Classes/Modules/Addresses/DataTransferObjects/AddressObject.php b/app/Classes/Modules/Addresses/DataTransferObjects/AddressObject.php index 76c66b52..b4453c3a 100644 --- a/app/Classes/Modules/Addresses/DataTransferObjects/AddressObject.php +++ b/app/Classes/Modules/Addresses/DataTransferObjects/AddressObject.php @@ -3,6 +3,7 @@ namespace App\Classes\Modules\Addresses\DataTransferObjects; use App\Classes\General\Interfaces\DataTransferObject; +use App\Classes\ValueObjects\Constants\ApprovalStatus; class AddressObject implements DataTransferObject { @@ -38,7 +39,7 @@ class AddressObject implements DataTransferObject * @param int $postCode * @param null|string $reference */ - public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode, ?string $reference = null) + public function __construct(string $streetOne, ?string $streetTwo, int $countryId, int $stateId, int $districtId, int $postCode, ?string $reference = null, ?int $status = ApprovalStatus::APPROVED) { $this->streetOne = $streetOne; $this->streetTwo = $streetTwo; @@ -47,6 +48,7 @@ class AddressObject implements DataTransferObject $this->districtId = $districtId; $this->postCode = $postCode; $this->reference = $reference; + $this->status = $status; } /** @@ -105,5 +107,13 @@ class AddressObject implements DataTransferObject return $this->reference; } + /** + * @return int + */ + public function getStatus(): int + { + return $this->status; + } + } \ No newline at end of file diff --git a/app/Classes/Modules/Addresses/Services/CreatesAddress.php b/app/Classes/Modules/Addresses/Services/CreatesAddress.php index b6662a98..b9f2716c 100644 --- a/app/Classes/Modules/Addresses/Services/CreatesAddress.php +++ b/app/Classes/Modules/Addresses/Services/CreatesAddress.php @@ -28,6 +28,7 @@ class CreatesAddress extends AbstractUpdateRelationshipRecord $model->state_id = $object->getStateId(); $model->district_id = $object->getDistrictId(); $model->postcode = $object->getPostCode(); + $model->status = $object->getStatus(); return $this->handler($addressable->addresses(), $model); diff --git a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php new file mode 100644 index 00000000..0b469fd1 --- /dev/null +++ b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php @@ -0,0 +1,44 @@ + 'Change Order Address Approval', + 'message' => 'You have successfully change the order address' + ]; + } + + /** @var ApproveChangeOrderAddressProcessor */ + private $approveChangeOrderAddressProcessor; + + /** + * ApproveChangeOrderAddressLogic constructor. + * @param ApproveChangeOrderAddressProcessor $approveChangeOrderAddressProcessor + */ + + public function __construct(ApproveChangeOrderAddressProcessor $approveChangeOrderAddressProcessor) + { + $this->approveChangeOrderAddressProcessor = $approveChangeOrderAddressProcessor; + } + + public function logic(Request $request): JsonResponse + { + $address = $this->approveChangeOrderAddressProcessor->execute($request); + + return $this->resourceResponse(new AddressResource($address)); + } +} diff --git a/app/Classes/Modules/Orders/ControllersLogic/RequestChangeOrderAddressLogic.php b/app/Classes/Modules/Orders/ControllersLogic/RequestChangeOrderAddressLogic.php new file mode 100644 index 00000000..b0c24f0b --- /dev/null +++ b/app/Classes/Modules/Orders/ControllersLogic/RequestChangeOrderAddressLogic.php @@ -0,0 +1,49 @@ + 'Request To Change Order Address', + 'message' => 'You have successfully request to change order address' + ]; + } + + /** @var RequestChangeOrderAddressProcessor */ + private $requestChangeOrderAddressProcessor; + + /** + * RequestChangeOrderAddressLogic constructor. + * @param RequestChangeOrderAddressProcessor $requestChangeOrderAddressProcessor + */ + + public function __construct(RequestChangeOrderAddressProcessor $requestChangeOrderAddressProcessor) + { + $this->requestChangeOrderAddressProcessor = $requestChangeOrderAddressProcessor; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + + public function logic(Request $request): JsonResponse + { + $order = $this->requestChangeOrderAddressProcessor->execute($request); + + return $this->resourceResponse(new OrderResource($order)); + } +} diff --git a/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php b/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php new file mode 100644 index 00000000..fbd84f90 --- /dev/null +++ b/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php @@ -0,0 +1,61 @@ +canApproveChangeOrderAddress = $canApproveChangeOrderAddress; + $this->fetchesAddress = $fetchesAddress; + $this->updatesOrdersAddress = $updatesOrdersAddress; + } + + + /** + * @param Request $request + * @return mixed + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function execute(Request $request) + { + + $status = (int) $request->route('status'); + + $this->canApproveChangeOrderAddress->passes(); + + $address = $this->fetchesAddress->execute(['id' => $request->route('id')]); + + if($status === ApprovalStatus::APPROVED){ + $address->owner->addresses()->update(['status' => ApprovalStatus::EXPIRED]); + } + + $this->updatesOrdersAddress->execute($address, $status); + + return $address; + } +} diff --git a/app/Classes/Modules/Orders/Processors/RequestChangeOrderAddressProcessor.php b/app/Classes/Modules/Orders/Processors/RequestChangeOrderAddressProcessor.php new file mode 100644 index 00000000..7f01726b --- /dev/null +++ b/app/Classes/Modules/Orders/Processors/RequestChangeOrderAddressProcessor.php @@ -0,0 +1,66 @@ +canChangeOrderAddress = $canChangeOrderAddress; + $this->fetchesOrder = $fetchesOrder; + $this->createsAddress = $createsAddress; + $this->fetchesAddress = $fetchesAddress; + $this->deletesAddress = $deletesAddress; + } + + + public function execute(Request $request) + { + + $this->canChangeOrderAddress->passes(); + + $order = $this->fetchesOrder->execute(['id' => $request->get('order_id')]); + foreach ($order->addressesPendingVerification as $address) { + $this->deletesAddress->execute($address); + } + + $address = $this->fetchesAddress->execute(['id' => $request->get('address_id')]); + $addressObject = new AddressObject($address->street_one, $address->street_two, $address->country_id, $address->state_id, $address->district_id, $address->postcode, $address->reference, ApprovalStatus::PENDING_VERIFICATION); + $this->createsAddress->execute($order, $addressObject); + + return $order; + } +} diff --git a/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php b/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php new file mode 100644 index 00000000..352ce64d --- /dev/null +++ b/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php @@ -0,0 +1,21 @@ +status = $type; + return $this->handler($address); + } +} diff --git a/app/Classes/Modules/Orders/Standards/Rules/CanApproveChangeOrderAddress.php b/app/Classes/Modules/Orders/Standards/Rules/CanApproveChangeOrderAddress.php new file mode 100644 index 00000000..24ce6418 --- /dev/null +++ b/app/Classes/Modules/Orders/Standards/Rules/CanApproveChangeOrderAddress.php @@ -0,0 +1,39 @@ +canCreateContainer = $canCreateContainer; $this->fetchesPackingList = $fetchesPackingList; + $this->fetchesCompanyModule = $fetchesCompanyModule; $this->createsContainer = $createsContainer; } @@ -51,15 +57,21 @@ class CreateContainerLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { + $object = new ContainerObject( + $request->input('container_reference'), + $request->input('container_number'), + $request->input('seal_reference'), + $request->input('container_type'), + $request->input('status') + ); - $object = new ContainerObject($request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference')); + $company = $this->fetchesCompanyModule->execute(['id' => 2]); $this->canCreateContainer->passes($object); - $query = $this->createsContainer->execute($object); + $query = $this->createsContainer->execute($object, $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')])); return $this->resourceResponse(new ContainerResource($query)); - } } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php index 3d1516f0..72537db2 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php @@ -58,8 +58,14 @@ class UpdateContainerLogic extends AbstractControllerLogic { $container = $this->fetchesContainer->execute(['id' => $request->route('id')]); - - $object = new ContainerObject( $container->packing_list_id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference')); + + $object = new ContainerObject( + $request->input('container_reference'), + $container->container_number, + $request->input('container_type'), + $request->input('seal_reference'), + $container->status, + ); $this->canUpdateContainer->passes($object); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php index a06a6842..afd8f3d7 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/CreatePackingListLogic.php @@ -5,6 +5,7 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic; use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject; use App\Classes\Modules\PackingLists\Processors\CreatePackingListProcessor; +use App\Classes\Modules\Orders\Services\FetchesOrder; use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\General\Abstracts\AbstractControllerLogic; @@ -13,6 +14,9 @@ use App\Classes\Modules\PackingLists\Services\CreatesPackingListPackage; use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingList; use App\Classes\Modules\PackingLists\Standards\Rules\CanCreatePackingListPackage; use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject; +use App\Classes\ValueObjects\Constants\OrderRoleTypes; +use App\Classes\ValueObjects\Constants\PackingListType; + use App\Http\Resources\PackingListResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -34,13 +38,18 @@ class CreatePackingListLogic extends AbstractControllerLogic /** @var CreatePackingListProcessor */ private $createPackingListProcessor; + /** @var FetchesOrder */ + private $fetchesOrder; + /** * CreatePackingListLogic constructor. * @param CreatePackingListProcessor $createPackingListProcessor + * @param FetchesOrder $fetchesOrder */ - public function __construct(CreatePackingListProcessor $createPackingListProcessor) + public function __construct(CreatePackingListProcessor $createPackingListProcessor, FetchesOrder $fetchesOrder) { $this->createPackingListProcessor = $createPackingListProcessor; + $this->fetchesOrder = $fetchesOrder; } /** @@ -50,11 +59,13 @@ class CreatePackingListLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $object = new PackingListObject($request->input('reference_number'), ApprovalStatus::PENDING_SUBMISSION); + $order = $this->fetchesOrder->execute(['reference' => $request->input('reference_number')]); - $query = $this->createPackingListProcessor->execute($object); + $packingListObject = new PackingListObject($request->input('reference_number'), $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee->id, PackingListType::WAREHOUSE_RECEIVE_LIST, ApprovalStatus::PENDING_SUBMISSION); - return $this->resourceResponse(new PackingListResource($query)); + $packingList = $this->createPackingListProcessor->execute($packingListObject, $order); + + return $this->resourceResponse(new PackingListResource($packingList)); } diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php index c9eebc15..80a5ee5d 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php @@ -12,6 +12,7 @@ use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Http\Resources\PackageResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; +use App\Classes\ValueObjects\Constants\PackageType; class CreatePackageLogic extends AbstractControllerLogic { @@ -61,23 +62,23 @@ class CreatePackageLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - + $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]); $object = new PackageObject( - null, $request->input('type'), $request->input('description'), $request->input('width'), $request->input('height'), $request->input('length'), $request->input('weight'), + 0, $request->input('quantity'), ApprovalStatus::PENDING_VERIFICATION); $this->canCreatePackage->passes($object); - $query = $this->createsPackage->execute($object); + $query = $this->createsPackage->execute($object, $order->packingLists()->first()); return $this->resourceResponse(new PackageResource($query)); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/FetchPackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/FetchPackageLogic.php index d2e8be81..0dcb6b07 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/FetchPackageLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/FetchPackageLogic.php @@ -4,8 +4,8 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic\Packages; use App\Classes\General\Abstracts\AbstractControllerLogic; -use App\Classes\Modules\Packages\Services\FetchesPackage; -use App\Classes\Modules\Packages\Standards\Rules\CanFetchPackage; +use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage; +use App\Classes\Modules\PackingLists\Standards\Rules\Packages\CanFetchPackage; use App\Http\Resources\PackageResource; use ErrorException; use Illuminate\Http\JsonResponse; diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php index 48aee051..80d73e5b 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php @@ -4,8 +4,8 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic\Packages; use App\Classes\General\Abstracts\AbstractControllerLogic; -use App\Classes\Modules\Packages\Services\ListsPackages; -use App\Classes\Modules\Packages\Standards\Rules\CanListPackages; +use App\Classes\Modules\PackingLists\Services\Packages\ListsPackages; +use App\Classes\Modules\PackingLists\Standards\Rules\Packages\CanListPackages; use App\Http\Resources\PackageResource; use ErrorException; use Illuminate\Http\JsonResponse; diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/UpdatePackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/UpdatePackageLogic.php index b96e6933..6b25e3a5 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/UpdatePackageLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/UpdatePackageLogic.php @@ -4,10 +4,10 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic\Packages; use App\Classes\General\Abstracts\AbstractControllerLogic; -use App\Classes\Modules\Packages\Services\UpdatesPackage; -use App\Classes\Modules\Packages\Services\FetchesPackage; -use App\Classes\Modules\Packages\Standards\Rules\CanUpdatePackage; -use App\Classes\Modules\Packages\DataTransferObjects\PackageObject; +use App\Classes\Modules\PackingLists\Services\Packages\UpdatesPackage; +use App\Classes\Modules\PackingLists\Services\Packages\FetchesPackage; +use App\Classes\Modules\PackingLists\Standards\Rules\Packages\CanUpdatePackage; +use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject; use App\Http\Resources\PackageResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -60,8 +60,6 @@ class UpdatePackageLogic extends AbstractControllerLogic $package = $this->fetchesPackage->execute(['id' => $request->route('id')]); $object = new PackageObject( - $package->order_id, - null, $request->input('type'), $request->input('description'), $request->input('width'), @@ -69,7 +67,9 @@ class UpdatePackageLogic extends AbstractControllerLogic $request->input('length'), $request->input('weight'), $request->input('quantity'), - $request->input('status')); + $request->input('status'), + $package->reference + ); $this->canUpdatePackage->passes($object); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php index 926b9873..7f5232dc 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListLogic.php @@ -57,7 +57,7 @@ class UpdatePackingListLogic extends AbstractControllerLogic { $packingList = $this->fetchesPackingList->execute(['id' => $request->route('id')]); - $object = new PackingListObject($packingList->reference, $request->input('status')); + $object = new PackingListObject($packingList->reference, $packingList->claimant_id, $packingList->type, $request->input('status')); $this->canUpdatePackingList->passes($object); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListStatusLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListStatusLogic.php new file mode 100644 index 00000000..67a1733c --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/UpdatePackingListStatusLogic.php @@ -0,0 +1,62 @@ + 'Updated PackingList Status', + 'message' => 'You have successfully updated the PackingList status' + ]; + } + + + /** @var FetchesPackingList */ + private $fetchesPackingList; + + /** @var UpdatesPackingListStatus */ + private $updatesPackingListStatus; + + /** + * UpdatePackingListStatusLogic constructor. + * @param FetchesPackingList $fetchesPackingList + * @param UpdatesPackingListStatus $updatesPackingListStatus + */ + public function __construct(FetchesPackingList $fetchesPackingList, UpdatesPackingListStatus $updatesPackingListStatus) + { + $this->fetchesPackingList = $fetchesPackingList; + $this->updatesPackingListStatus = $updatesPackingListStatus; + } + + /** + * @param Request $request + * @return JsonResponse + * @throws \App\Classes\Exceptions\MalformedRequestException + */ + public function logic(Request $request) : JsonResponse + { + $packingList = $this->fetchesPackingList->execute(['id' => $request->route('id')]); + + $query = $this->updatesPackingListStatus->execute($packingList, $request->route('status')); + + return $this->resourceResponse(new PackingListResource($query)); + } + +} diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerObject.php index 92b0effa..3924102c 100644 --- a/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerObject.php +++ b/app/Classes/Modules/PackingLists/DataTransferObjects/ContainerObject.php @@ -14,7 +14,7 @@ class ContainerObject implements DataTransferObject private $containerNumber; /** @var string */ - private $sealNumber; + private $sealReference; /** @var int */ private $containerType; @@ -26,15 +26,15 @@ class ContainerObject implements DataTransferObject * ContainerObject constructor. * @param string $reference * @param string $containerNumber - * @param string $sealNumber + * @param string $sealReference * @param int $containerType * @param int $status */ - public function __construct(string $reference, string $containerNumber, string $sealNumber, int $containerType, int $status) + public function __construct(string $reference, string $containerNumber, string $sealReference, int $containerType, int $status) { $this->reference = $reference; $this->containerNumber = $containerNumber; - $this->sealNumber = $sealNumber; + $this->sealReference = $sealReference; $this->containerType = $containerType; $this->status = $status; } @@ -58,9 +58,9 @@ class ContainerObject implements DataTransferObject /** * @return string */ - public function getSealNumber(): string + public function getSealReference(): string { - return $this->sealNumber; + return $this->sealReference; } /** diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php index cddc41ea..0a0c0158 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php @@ -65,7 +65,6 @@ class FetchContainersStatusUpdateFromVTPortalProcessor /** * @return array - * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(){ @@ -77,7 +76,7 @@ class FetchContainersStatusUpdateFromVTPortalProcessor try { $filter = '["RefNo:=%js%\"'.$container->reference.'\"\u0000"]'; - $containerDetailsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $containerDetailsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), ''); $containerDetails = $this->fetchesDataFRomVTPortal->getResponseBody($containerDetailsRequest); @@ -122,9 +121,15 @@ class FetchContainersStatusUpdateFromVTPortalProcessor if($containerStatus === 'Unstuffing'){ $container->update(['status' => ApprovalStatus::COMPLETED]); $container->transports()->first()->update(['drop_date' => Carbon::parse($unstuffingDate)->subDay(), 'status' => ApprovalStatus::COMPLETED]); - $container->packingLists()->update(['status' => ApprovalStatus::APPROVED]); + /** @var PackingList $packingList */ foreach($container->packingLists as $packingList){ + + if($packingList->status === ApprovalStatus::PENDING_VERIFICATION){ + $packingList->status = ApprovalStatus::APPROVED; + $packingList->save(); + } + $signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture; foreach($packingList->steps()->where('reference', '!=', 'DELIVERY')->get() as $step){ $this->updatesContractObligations->execute($signature, $step->obligation_hash_id); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchDeliveryListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchDeliveryListFromVTPortalProcessor.php index 6714472b..14a13064 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchDeliveryListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchDeliveryListFromVTPortalProcessor.php @@ -3,8 +3,6 @@ namespace App\Classes\Modules\PackingLists\Processors; use App\Classes\Modules\Orders\Services\FetchesDataFromVTPortal; -use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject; -use App\Classes\Modules\PackingLists\Services\ListsPackingLists; use App\Classes\Modules\Schedules\DataTransferObjects\ScheduleObject; use App\Classes\Modules\Schedules\Services\CreatesSchedule; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; @@ -12,7 +10,6 @@ use App\Classes\Modules\Transports\Services\CreatesTransport; use App\Classes\Modules\Unity\Services\UpdatesContractObligation; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\OrderRoleTypes; -use App\Classes\ValueObjects\Constants\PackageType; use App\Classes\ValueObjects\Constants\PackingListType; use App\Classes\ValueObjects\Constants\TransportType; use App\Models\PackingList; @@ -65,7 +62,7 @@ class FetchDeliveryListFromVTPortalProcessor try { $filter = '["PoNumber:=%js%\"'.$packingList->reference.'\"\u0000"]'; - $shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), ''); $shippingPackingLists = $this->fetchesDataFRomVTPortal->getResponseBody($shippingPackingListsRequest); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php index 2776124d..4069a40d 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php @@ -137,14 +137,14 @@ class FetchLoadedContainersFromVTPortalProcessor $end = $end ? $end : Carbon::now(); $filter = '["LoadedTime:$between$%js%\"'.$start->format('Y-m-d').'T00:00:00.000\"$and$%js%\"'.$end->format('Y-m-d').'T00:00:00.000\"\u0000"]'; - $containersRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $containersRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VCustomercontainer","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"LoadedTime asc","Filter":'.$filter.'}}'), ''); $containers = $this->fetchesDataFRomVTPortal->getResponseBody($containersRequest); foreach ($containers->Rows as $container){ $filter = '["ContainerID:=%js%'.$container[11].'"]'; - $containerDetailRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $containerDetailRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), ''); $containerDetail = $this->fetchesDataFRomVTPortal->getResponseBody($containerDetailRequest); @@ -199,7 +199,10 @@ class FetchLoadedContainersFromVTPortalProcessor $this->unityAssignContractEntity->execute($supervisorContractEntity->hash_id, $contractObligations); - $packingListObject = new PackingListObject($packingListReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id, PackingListType::SHIPPING_PACKING_LIST, ApprovalStatus::PENDING_VERIFICATION, $contractReference); + $connection = $order->companyModule->connections()->first(); + $marking = $connection->invitee_reference; + + $packingListObject = new PackingListObject($packingListReference, $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_FREIGHT_FORWARDER)->first()->appointee->id, PackingListType::SHIPPING_PACKING_LIST, (int) filter_var($marking, FILTER_SANITIZE_NUMBER_INT) <= 1000 ? ApprovalStatus::PENDING_VERIFICATION : ApprovalStatus::SUSPENDED, $contractReference); /** @var PackingList $packingList */ $packingList = $this->createPackingListProcessor->execute($packingListObject, $order); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchPackingListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchPackingListFromVTPortalProcessor.php index 715c61ba..ecc9c9f0 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchPackingListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchPackingListFromVTPortalProcessor.php @@ -46,7 +46,9 @@ class FetchPackingListFromVTPortalProcessor */ public function execute(){ - $packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST)->where('status', '=', ApprovalStatus::PENDING_VERIFICATION)->get(); + $packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST)->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::SUSPENDED])->whereDoesntHave('containers', function($query){ + $query->where('status', '=', ApprovalStatus::COMPLETED); + })->get(); foreach($packingLists as $packingList){ @@ -55,7 +57,7 @@ class FetchPackingListFromVTPortalProcessor $filter = '["PoNumber:=%js%\"'.$packingList->reference.'\"\u0000"]'; - $shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $shippingPackingListsRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"VPodetailparcel","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"CreatedOn asc","Filter":'.$filter.'}}'), ''); $shippingPackingLists = $this->fetchesDataFRomVTPortal->getResponseBody($shippingPackingListsRequest); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php index 476b1426..b9043479 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php @@ -128,7 +128,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor $filter = '["ParcelDate:$between$%js%\"'.$start->format('Y-m-d').'T00:00:00.000\"$and$%js%\"'.$end->format('Y-m-d').'T00:00:00.000\"\u0000"]'; - $warehouseListRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ModifiedOn DESC","Filter":'.$filter.'}}'), ''); + $warehouseListRequest = $this->fetchesDataFRomVTPortal->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":10000,"SortExpression":"ParcelDate asc","Filter":'.$filter.'}}'), ''); $response = $this->fetchesDataFRomVTPortal->getResponseBody($warehouseListRequest); diff --git a/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php index d8d733b2..eb8ff4e0 100644 --- a/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php +++ b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php @@ -22,7 +22,7 @@ class CreatesContainer extends AbstractUpdateRelationshipRecord $model->reference = $object->getReference(); $model->container_number = $object->getContainerNumber(); $model->container_type = $object->getContainerType(); - $model->seal_reference = $object->getSealNumber(); + $model->seal_reference = $object->getSealReference(); $model->status = $object->getStatus(); return $this->handler($owner->containers(), $model); diff --git a/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php index c3f6f1a4..d10102e1 100644 --- a/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php +++ b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php @@ -17,7 +17,7 @@ class UpdatesContainer extends AbstractUpdateRecord */ public function execute(Container $model, ContainerObject $object) { - $model->container_reference = $object->getContainerReference(); + $model->reference = $object->getReference(); $model->container_type = $object->getContainerType(); $model->seal_reference = $object->getSealReference(); diff --git a/app/Classes/Modules/PackingLists/Services/Packages/UpdatesPackage.php b/app/Classes/Modules/PackingLists/Services/Packages/UpdatesPackage.php index 9cb265fd..b1903eb5 100644 --- a/app/Classes/Modules/PackingLists/Services/Packages/UpdatesPackage.php +++ b/app/Classes/Modules/PackingLists/Services/Packages/UpdatesPackage.php @@ -10,7 +10,6 @@ class UpdatesPackage extends AbstractUpdateRecord { public function execute(Package $model, PackageObject $object) { - $model->claimant_id = $object->getClaimantId(); $model->type = $object->getType(); $model->description = $object->getDescription(); $model->width = $object->getWidth(); diff --git a/app/Classes/Modules/PackingLists/Services/UpdatesPackingListStatus.php b/app/Classes/Modules/PackingLists/Services/UpdatesPackingListStatus.php new file mode 100644 index 00000000..e25b550f --- /dev/null +++ b/app/Classes/Modules/PackingLists/Services/UpdatesPackingListStatus.php @@ -0,0 +1,24 @@ +status = $status; + + return $this->handler($model); + + } +} diff --git a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php index 5bf9c7e9..aecff745 100644 --- a/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php +++ b/app/Classes/Modules/Schedules/ControllersLogic/CreateScheduleLogic.php @@ -56,7 +56,7 @@ class CreateScheduleLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - $object = new ScheduleObject($request->input('etd'), $request->input('eta'), $request->input('transport_id'), ApprovalStatus::PENDING_SUBMISSION); + $object = new ScheduleObject($request->input('etd'), $request->input('eta'), ApprovalStatus::PENDING_SUBMISSION); $this->canCreateSchedule->passes($object); diff --git a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php index 7d14a3f1..485dc833 100644 --- a/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php +++ b/app/Classes/Modules/Schedules/Standards/Validators/ScheduleValidation.php @@ -16,7 +16,6 @@ class ScheduleValidation extends AbstractValidation */ protected function data($object): array { return [ - 'transport_id' => $object->getTransportId(), 'etd' => $object->getETD(), 'eta' => $object->getETA(), 'status' => $object->getStatus(), @@ -28,7 +27,6 @@ class ScheduleValidation extends AbstractValidation */ protected function rules(): array { return [ - 'transport_id' => 'required', 'etd' => 'required', 'eta' => 'required', ]; diff --git a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index af438830..edd5690f 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -7,7 +7,7 @@ use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transports\Services\CreatesTransport; use App\Classes\Modules\Transports\Standards\Rules\CanCreateTransport; use App\Classes\Modules\Transports\DataTransferObjects\TransportObject; -use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer; +use App\Classes\Modules\PackingLists\Services\FetchesPackingList; use App\Http\Resources\TransportResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -29,8 +29,8 @@ class CreateTransportLogic extends AbstractControllerLogic /** @var CanCreateTransport */ private $canCreateTransport; - /** @var FetchesContainer */ - private $fetchesContainer; + /** @var FetchesPackingList */ + private $fetchesPackingList; /** @var CreatesTransport */ private $createsTransport; @@ -38,13 +38,13 @@ class CreateTransportLogic extends AbstractControllerLogic /** * CreateTransportLogic constructor. * @param CanCreateTransport $canCreateTransport - * @param FetchesContainer $fetchesContainer + * @param FetchesPackingList $fetchesPackingList * @param CreatesTransport $createsTransport */ - public function __construct(CanCreateTransport $canCreateTransport, FetchesContainer $fetchesContainer, CreatesTransport $createsTransport) + public function __construct(CanCreateTransport $canCreateTransport, FetchesPackingList $fetchesPackingList, CreatesTransport $createsTransport) { $this->canCreateTransport = $canCreateTransport; - $this->fetchesContainer = $fetchesContainer; + $this->fetchesPackingList = $fetchesPackingList; $this->createsTransport = $createsTransport; } @@ -58,11 +58,18 @@ class CreateTransportLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), null, null, ApprovalStatus::PENDING_SUBMISSION); + $object = new TransportObject( + $request->input('type'), + $request->input('courier'), + $request->input('tracking_number'), + null, + null, + pprovalStatus::PENDING_SUBMISSION + ); $this->canCreateTransport->passes($object); - $query = $this->createsTransport->execute($this->fetchesContainer->execute(['id' => $request->input('container_id')]), $object); + $query = $this->createsTransport->execute($object, $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')])); return $this->resourceResponse(new TransportResource($query)); diff --git a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php index cab03419..6f6cfd4c 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/UpdateTransportLogic.php @@ -58,7 +58,14 @@ class UpdateTransportLogic extends AbstractControllerLogic { $query = $this->fetchesTransport->execute(['id' => $request->route('id')]); - $object = new TransportObject($request->input('type'), $request->input('courier'), $request->input('tracking_number'), $request->input('dispatch_date'), $request->input('drop_date'), $request->input('status')); + $object = new TransportObject( + $request->input('type'), + $request->input('courier'), + $request->input('tracking_number'), + $request->input('dispatch_date'), + $request->input('drop_date'), + $request->input('status') + ); $this->canUpdateTransport->passes($object); diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 83b805ad..623233c2 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -31,7 +31,7 @@ class Kernel extends ConsoleKernel { $schedule->call(function(){ - FetchWarehouseReceiveListFromVTPortalJob::withChain([ + return FetchWarehouseReceiveListFromVTPortalJob::withChain([ new FetchLoadedContainersFromVTPortalJob, new FetchPackingListFromVTPortalJob, new FetchContainersStatusUpdateFromVTPortalJob, @@ -40,7 +40,7 @@ class Kernel extends ConsoleKernel })->dailyAt('15:00'); $schedule->call(function(){ - FetchWarehouseReceiveListFromVTPortalJob::withChain([ + return FetchWarehouseReceiveListFromVTPortalJob::withChain([ new FetchLoadedContainersFromVTPortalJob, new FetchPackingListFromVTPortalJob, new FetchContainersStatusUpdateFromVTPortalJob, diff --git a/app/Http/Controllers/Orders/ApproveChangeOrderAddressController.php b/app/Http/Controllers/Orders/ApproveChangeOrderAddressController.php new file mode 100644 index 00000000..9443ad7b --- /dev/null +++ b/app/Http/Controllers/Orders/ApproveChangeOrderAddressController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Controllers/Orders/RequestChangeOrderAddressController.php b/app/Http/Controllers/Orders/RequestChangeOrderAddressController.php new file mode 100644 index 00000000..3fb8881f --- /dev/null +++ b/app/Http/Controllers/Orders/RequestChangeOrderAddressController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/CreateContainerController.php similarity index 100% rename from app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php rename to app/Http/Controllers/PackingLists/Containers/CreateContainerController.php diff --git a/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/DeleteContainerController.php similarity index 100% rename from app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php rename to app/Http/Controllers/PackingLists/Containers/DeleteContainerController.php diff --git a/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/FetchContainerController.php similarity index 100% rename from app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php rename to app/Http/Controllers/PackingLists/Containers/FetchContainerController.php diff --git a/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php b/app/Http/Controllers/PackingLists/Containers/ListContainersController.php similarity index 91% rename from app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php rename to app/Http/Controllers/PackingLists/Containers/ListContainersController.php index 61084f53..8cff9f2e 100644 --- a/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php +++ b/app/Http/Controllers/PackingLists/Containers/ListContainersController.php @@ -10,7 +10,7 @@ class ListContainersController { /** * @param Request $request - * @param ListContainerLogic $logic + * @param ListContainersLogic $logic * @return JsonResponse */ public function list(Request $request, ListContainersLogic $logic): JsonResponse { diff --git a/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/UpdateContainerController.php similarity index 100% rename from app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php rename to app/Http/Controllers/PackingLists/Containers/UpdateContainerController.php diff --git a/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php b/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php index a3f1ddbb..a540ca51 100644 --- a/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php +++ b/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\PackingLists\Packages; -use App\Classes\Modules\ControllersLogic\Packages\CreatePackageLogic; +use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/PackingLists/Packages/DeletePackageController.php b/app/Http/Controllers/PackingLists/Packages/DeletePackageController.php index 455e550d..4e9235c9 100644 --- a/app/Http/Controllers/PackingLists/Packages/DeletePackageController.php +++ b/app/Http/Controllers/PackingLists/Packages/DeletePackageController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\PackingLists\Packages; -use App\Classes\Modules\ControllersLogic\Packages\DeletePackageLogic; +use App\Classes\Modules\PackingLists\ControllersLogic\Packages\DeletePackageLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/PackingLists/Packages/FetchPackageController.php b/app/Http/Controllers/PackingLists/Packages/FetchPackageController.php index 6ad30c56..0bb60451 100644 --- a/app/Http/Controllers/PackingLists/Packages/FetchPackageController.php +++ b/app/Http/Controllers/PackingLists/Packages/FetchPackageController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\PackingLists\Packages; -use App\Classes\Modules\ControllersLogic\Packages\FetchPackageLogic; +use App\Classes\Modules\PackingLists\ControllersLogic\Packages\FetchPackageLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/PackingLists/Packages/ListPackagesController.php b/app/Http/Controllers/PackingLists/Packages/ListPackagesController.php index fe834b6b..75bed1d5 100644 --- a/app/Http/Controllers/PackingLists/Packages/ListPackagesController.php +++ b/app/Http/Controllers/PackingLists/Packages/ListPackagesController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\PackingLists\Packages; -use App\Classes\Modules\ControllersLogic\Packages\ListPackagesLogic; +use App\Classes\Modules\PackingLists\ControllersLogic\Packages\ListPackagesLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/PackingLists/Packages/UpdatePackageController.php b/app/Http/Controllers/PackingLists/Packages/UpdatePackageController.php index cfc2e248..bc334d11 100644 --- a/app/Http/Controllers/PackingLists/Packages/UpdatePackageController.php +++ b/app/Http/Controllers/PackingLists/Packages/UpdatePackageController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers\PackingLists\Packages; -use App\Classes\Modules\ControllersLogic\Packages\UpdatePackageLogic; +use App\Classes\Modules\PackingLists\ControllersLogic\Packages\UpdatePackageLogic; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; diff --git a/app/Http/Controllers/PackingLists/UpdatePackingListStatusController.php b/app/Http/Controllers/PackingLists/UpdatePackingListStatusController.php new file mode 100644 index 00000000..5d653449 --- /dev/null +++ b/app/Http/Controllers/PackingLists/UpdatePackingListStatusController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/app/Http/Resources/AddressResource.php b/app/Http/Resources/AddressResource.php index 3b4c465b..b6903599 100644 --- a/app/Http/Resources/AddressResource.php +++ b/app/Http/Resources/AddressResource.php @@ -23,7 +23,8 @@ class AddressResource extends JsonResource 'state' => $this->state, 'post_code' => $this->postcode, 'country' => $this->country, - 'default' => (int) $this->default + 'default' => (int) $this->default, + 'owner' => new OrderResource($this->whenLoaded('owner')) ]; } } diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php index f338d095..702319aa 100644 --- a/app/Http/Resources/CompanyResource.php +++ b/app/Http/Resources/CompanyResource.php @@ -35,6 +35,7 @@ class CompanyResource extends JsonResource 'company_module' => new CompanyModuleResource($companyModule), 'last_order' => new OrderResource($companyModule ? $companyModule->orders()->orderBy('id', 'DESC')->first(): null), 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()), + 'created_at' => $this->created_at->format('d-m-Y') ]; diff --git a/app/Http/Resources/ContainerResource.php b/app/Http/Resources/ContainerResource.php index f1d3671f..774ada84 100644 --- a/app/Http/Resources/ContainerResource.php +++ b/app/Http/Resources/ContainerResource.php @@ -21,6 +21,10 @@ class ContainerResource extends JsonResource 'container_number' => $this->container_number, 'seal_reference' => $this->seal_reference, 'transport' => new TransportResource($this->transports()->first()), + 'packing_lists' => PackingListResource::collection($this->whenLoaded('packingLists', function(){ + return $this->packingLists()->whereHas('packages')->get(); + })), + 'status' => $this->status ]; } } diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index 183536e3..390ca1ef 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -27,7 +27,8 @@ class OrderResource extends JsonResource 'status' => (int) $this->status, 'company_module' => new CompanyModuleResource($this->companyModule), 'warehouse' => new CompanyModuleResource($this->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee), - 'address' => new AddressResource($this->addresses()->first()), + 'address' => new AddressResource($this->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first()), + 'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()), $this->mergeWhen($this->relationLoaded('parcels'), [ 'origin_warehouse_packages' => PackageResource::collection($this->parcels()->whereHas('packingList', function($query){ return $query->where('type', PackingListType::SHIPPING_PACKING_LIST)->whereDoesntHave('containers', function($query) { diff --git a/app/Http/Resources/PackageResource.php b/app/Http/Resources/PackageResource.php index 7a3209d1..d69ae652 100644 --- a/app/Http/Resources/PackageResource.php +++ b/app/Http/Resources/PackageResource.php @@ -23,7 +23,7 @@ class PackageResource extends JsonResource 'length' => floatval($this->length), 'weight' => $this->weight, 'quantity' => $this->quantity, - 'cbm' => (($this->width / 100) * ($this->width / 100) * ($this->width / 100)) * $this->quantity, + 'cbm' => (($this->width / 100) * ($this->height / 100) * ($this->length / 100)) * $this->quantity, 'status' => $this->status, 'order' => new OrderResource($this->packingList->owner), 'container' => new ContainerResource($this->packingList->containers()->first()), diff --git a/app/Http/Resources/PackingListResource.php b/app/Http/Resources/PackingListResource.php index e75ce164..4024833d 100644 --- a/app/Http/Resources/PackingListResource.php +++ b/app/Http/Resources/PackingListResource.php @@ -21,6 +21,7 @@ class PackingListResource extends JsonResource 'status' => $this->status, 'transport' => new TransportResource($this->transports()->first()), 'packages' => PackageResource::collection($this->packages), + 'order' => New OrderResource($this->owner) ]; } } diff --git a/app/Models/Order.php b/app/Models/Order.php index 4d537646..9d3099a5 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -6,6 +6,7 @@ use App\Classes\General\Interfaces\Addressable; use App\Classes\General\Interfaces\Contactable; use App\Classes\General\Interfaces\Packable; use App\Classes\ValueObjects\Constants\RoleTypes; +use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Scopes\CustomerOrdersScope; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasManyThrough; @@ -77,4 +78,14 @@ class Order extends AbstractModel implements Addressable, Packable // static::addGlobalScope(new CustomerOrdersScope); // } } + + public function addressesPendingVerification() + { + return $this->addresses()->where('status','=',ApprovalStatus::PENDING_VERIFICATION); + } + + public function addressesApproved() + { + return $this->addresses()->where('status','=',ApprovalStatus::APPROVED); + } } diff --git a/database/seeders/CompaniesTableSeeder.php b/database/seeders/CompaniesTableSeeder.php index 01bb3801..c2ffdeb4 100644 --- a/database/seeders/CompaniesTableSeeder.php +++ b/database/seeders/CompaniesTableSeeder.php @@ -172,49 +172,49 @@ class CompaniesTableSeeder extends Seeder } - if(true){ - $companies = OldCompany::all(); + // if(true){ + // $companies = OldCompany::all(); - foreach($companies as $company){ + // foreach($companies as $company){ - $marking = explode("CIEF/", $company->marking); + // $marking = explode("CIEF/", $company->marking); - if(count($marking) < 2){ - continue; - } + // if(count($marking) < 2){ + // continue; + // } - $marking = str_replace(' ', '', str_replace('/', '', $marking[1])); + // $marking = str_replace(' ', '', str_replace('/', '', $marking[1])); - /** @var Company $newCompany */ - $newCompany = $this->createCompanyProcessor->execute($company->name, CompanyType::COMPANY_BUSINESS, ApprovalStatus::PENDING_SUBMISSION); + // /** @var Company $newCompany */ + // $newCompany = $this->createCompanyProcessor->execute($company->name, CompanyType::COMPANY_BUSINESS, ApprovalStatus::PENDING_SUBMISSION); - $this->updatesCompanyStatus->execute($newCompany, ApprovalStatus::APPROVED); + // $this->updatesCompanyStatus->execute($newCompany, ApprovalStatus::APPROVED); - /** @var CompanyModule $companyModule */ - $companyModule = $this->createCompanyModuleProcessor->execute($newCompany, BusinessType::IMPORTER); + // /** @var CompanyModule $companyModule */ + // $companyModule = $this->createCompanyModuleProcessor->execute($newCompany, BusinessType::IMPORTER); - $connectionObject = new CompanyConnectionObject($companyModule, 'CIEF', $marking); + // $connectionObject = new CompanyConnectionObject($companyModule, 'CIEF', $marking); - $connection = $this->createsCompanyConnection->execute($connectionObject); - $this->approvesCompanyConnection->execute($connection); + // $connection = $this->createsCompanyConnection->execute($connectionObject); + // $this->approvesCompanyConnection->execute($connection); - $i = 0; - foreach($company->addresses as $address){ - $this->createAddressFromOldAddressProcessor->execute($address, $companyModule); - $contact = preg_replace("/[^0-9.]/", "", $address->contact); - if($contact){ - $i++; - if($i === 1) { - $contactObject = new ContactObject('', $contact, $company->email, '',); - $this->createContactProcessor->execute($contactObject, $newCompany); - } - } + // $i = 0; + // foreach($company->addresses as $address){ + // $this->createAddressFromOldAddressProcessor->execute($address, $companyModule); + // $contact = preg_replace("/[^0-9.]/", "", $address->contact); + // if($contact){ + // $i++; + // if($i === 1) { + // $contactObject = new ContactObject('', $contact, $company->email, '',); + // $this->createContactProcessor->execute($contactObject, $newCompany); + // } + // } - } - } - } + // } + // } + // } } diff --git a/resources/assets/sass/modules/_modals.scss b/resources/assets/sass/modules/_modals.scss index 73272c57..1bafb1cd 100644 --- a/resources/assets/sass/modules/_modals.scss +++ b/resources/assets/sass/modules/_modals.scss @@ -269,7 +269,7 @@ body.modal-open { box-shadow: none; } .modal-dialog { - width: 600px; + width: 1140px; } .modal-sm { width: 300px; diff --git a/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue b/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue deleted file mode 100644 index 9fbc94a1..00000000 --- a/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue +++ /dev/null @@ -1,33 +0,0 @@ - - \ No newline at end of file diff --git a/resources/assets/vue/components/address/forms/NewEditAddressFormComponent.vue b/resources/assets/vue/components/address/forms/NewEditAddressFormComponent.vue deleted file mode 100644 index 8f2fad2b..00000000 --- a/resources/assets/vue/components/address/forms/NewEditAddressFormComponent.vue +++ /dev/null @@ -1,145 +0,0 @@ - - diff --git a/resources/assets/vue/components/address/elements/AddressComponent.vue b/resources/assets/vue/components/addresses/elements/AddressComponent.vue similarity index 100% rename from resources/assets/vue/components/address/elements/AddressComponent.vue rename to resources/assets/vue/components/addresses/elements/AddressComponent.vue diff --git a/resources/assets/vue/components/addresses/elements/AddressVerificationComponent.vue b/resources/assets/vue/components/addresses/elements/AddressVerificationComponent.vue new file mode 100644 index 00000000..5c5e1cbe --- /dev/null +++ b/resources/assets/vue/components/addresses/elements/AddressVerificationComponent.vue @@ -0,0 +1,135 @@ + + + diff --git a/resources/assets/vue/components/addresses/elements/SelectAddressComponent.vue b/resources/assets/vue/components/addresses/elements/SelectAddressComponent.vue index 587f2394..d3e8daf2 100644 --- a/resources/assets/vue/components/addresses/elements/SelectAddressComponent.vue +++ b/resources/assets/vue/components/addresses/elements/SelectAddressComponent.vue @@ -5,10 +5,10 @@
-
+
{{item.reference}}
-
+
{{item.street_one}} {{item.street_two}}, {{item.district.name}}, {{item.post_code}} {{item.state.name}}, {{item.country.name}}
diff --git a/resources/assets/vue/components/addresses/forms/AddressFormComponent.vue b/resources/assets/vue/components/addresses/forms/AddressFormComponent.vue index 3999ce1d..450fe5aa 100644 --- a/resources/assets/vue/components/addresses/forms/AddressFormComponent.vue +++ b/resources/assets/vue/components/addresses/forms/AddressFormComponent.vue @@ -20,13 +20,13 @@
-
+
-
+
diff --git a/resources/assets/vue/components/address/forms/SetDefaultAddressFormComponent.vue b/resources/assets/vue/components/addresses/forms/SetDefaultAddressFormComponent.vue similarity index 100% rename from resources/assets/vue/components/address/forms/SetDefaultAddressFormComponent.vue rename to resources/assets/vue/components/addresses/forms/SetDefaultAddressFormComponent.vue diff --git a/resources/assets/vue/components/address/sections/AddressListComponent.vue b/resources/assets/vue/components/addresses/sections/AddressListComponent.vue similarity index 100% rename from resources/assets/vue/components/address/sections/AddressListComponent.vue rename to resources/assets/vue/components/addresses/sections/AddressListComponent.vue diff --git a/resources/assets/vue/components/companies/elements/CompanyComponent.vue b/resources/assets/vue/components/companies/elements/CompanyComponent.vue index c0c63716..88c0480c 100644 --- a/resources/assets/vue/components/companies/elements/CompanyComponent.vue +++ b/resources/assets/vue/components/companies/elements/CompanyComponent.vue @@ -10,8 +10,9 @@
{{this.item.name}}
CIEF/{{this.item.company_module.marking}}
-
- +
+
Date
+
{{this.item.created_at}}
{{this.item.status === 2 ? 'Active':'Inactive'}}
diff --git a/resources/assets/vue/components/containers/elements/ContainerComponent.vue b/resources/assets/vue/components/containers/elements/ContainerComponent.vue new file mode 100644 index 00000000..be480278 --- /dev/null +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -0,0 +1,89 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/orders/elements/ApproveChangeAddressComponent.vue b/resources/assets/vue/components/orders/elements/ApproveChangeAddressComponent.vue new file mode 100644 index 00000000..d4217fd5 --- /dev/null +++ b/resources/assets/vue/components/orders/elements/ApproveChangeAddressComponent.vue @@ -0,0 +1,22 @@ + + diff --git a/resources/assets/vue/components/orders/elements/PackageComponent.vue b/resources/assets/vue/components/orders/elements/PackageComponent.vue index f1465b7c..35d9e52f 100644 --- a/resources/assets/vue/components/orders/elements/PackageComponent.vue +++ b/resources/assets/vue/components/orders/elements/PackageComponent.vue @@ -27,7 +27,7 @@

Width

-

{{item.quantity}} CM

+

{{item.height}} CM

Height

@@ -52,6 +52,10 @@ Status

{{status}}

+
+ Container +

{{item.container.container_reference}}

+
diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 74c2be6d..17e29d63 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,14 +38,6 @@
-
-
-

Order Number

-
-
-

{{item.order.reference}}

-
-

Description

@@ -62,6 +54,30 @@

{{item.transport.tracking_number}}

+ +
+
+

Order Number

+
+ +
+
+
+

Delivery Address

+
+
+

{{item.order.address.street_one+' '+(item.order.address.street_two ? item.order.address.street_two : '')+', '+ item.order.address.district.name+', '+item.order.address.post_code+' '+item.order.address.state.name+', '+item.order.address.country.name}}

+
+
diff --git a/resources/assets/vue/components/orders/forms/ApproveChangeAddressFormComponent.vue b/resources/assets/vue/components/orders/forms/ApproveChangeAddressFormComponent.vue new file mode 100644 index 00000000..ce9f4769 --- /dev/null +++ b/resources/assets/vue/components/orders/forms/ApproveChangeAddressFormComponent.vue @@ -0,0 +1,49 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/orders/forms/ChangeOrderAddressFormComponent.vue b/resources/assets/vue/components/orders/forms/ChangeOrderAddressFormComponent.vue new file mode 100644 index 00000000..b138b680 --- /dev/null +++ b/resources/assets/vue/components/orders/forms/ChangeOrderAddressFormComponent.vue @@ -0,0 +1,84 @@ + + \ No newline at end of file diff --git a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue index 84525c41..22215504 100644 --- a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue +++ b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue @@ -16,29 +16,71 @@
-
+

Order No. {{order.reference}}

-
+
-
Delivery Address: {{order.address.reference}}
+
Order Date: {{order.created_at}}
Warehouse: {{order.warehouse.id === 3 ? 'Guang Zhou' : 'Yiwu'}}
-
-
Order Date: {{order.created_at}}
-
-
-
- +
+
+
Delivery Address: {{order.address.reference}}
+
+
+
+
+
Change Delivery Address
+ + + +
+
+
+
+
Your Delivery address change request is being reviewed
+
+
+ +
+ +
+
+
+
+
+
+
Cancel Address Change Request
+
Are you sure you want to cancel your order delivery address change request?
+
+
+
+
+
Cancel
+
+
+
Confirm
+
+
+
+
+
+
+
+
+
+
Gentle reminder: You need to send the QR code to your supplier to print and stick on your packages, this QR code is required for us to identify your packages when they arrives at our warehouse!
diff --git a/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue b/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue deleted file mode 100644 index a56afe24..00000000 --- a/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue +++ /dev/null @@ -1,12 +0,0 @@ - \ No newline at end of file diff --git a/resources/views/layouts/base_portal.blade.php b/resources/views/layouts/base_portal.blade.php index 452d1560..87144464 100644 --- a/resources/views/layouts/base_portal.blade.php +++ b/resources/views/layouts/base_portal.blade.php @@ -19,6 +19,12 @@ @include('partials.header')
+
+
+ +
@yield('inner_content')
diff --git a/resources/views/pages/admin/dashboard.blade.php b/resources/views/pages/admin/dashboard.blade.php index 431120dc..0fe49ba7 100644 --- a/resources/views/pages/admin/dashboard.blade.php +++ b/resources/views/pages/admin/dashboard.blade.php @@ -1,5 +1,5 @@
-
+
Customers List
@@ -30,5 +30,19 @@
+
+
+
Address Change Verification
+
+
+
+
+ + + +
+
\ No newline at end of file diff --git a/resources/views/pages/containers.blade.php b/resources/views/pages/containers.blade.php new file mode 100644 index 00000000..6c2eb286 --- /dev/null +++ b/resources/views/pages/containers.blade.php @@ -0,0 +1,17 @@ +@extends('layouts.base_portal') +@section('inner_content') +
+
+
Search
+
+
+
Filter
+
+
+ + + + +@endsection \ No newline at end of file diff --git a/resources/views/pages/templates/containers.blade.php b/resources/views/pages/templates/containers.blade.php new file mode 100644 index 00000000..995e7b93 --- /dev/null +++ b/resources/views/pages/templates/containers.blade.php @@ -0,0 +1,17 @@ +@extends('layouts.base_portal') +@section('inner_content') +
+
+
Search
+
+
+
Filter
+
+
+ + + + +@endsection \ No newline at end of file diff --git a/resources/views/pages/warehouse_list.blade.php b/resources/views/pages/warehouse_list.blade.php index b12f825a..a57fc834 100644 --- a/resources/views/pages/warehouse_list.blade.php +++ b/resources/views/pages/warehouse_list.blade.php @@ -1,4 +1,12 @@ @extends('layouts.base_portal') @section('inner_content') - +
+
+ + + +
+
@endsection \ No newline at end of file diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 467daf85..f6af1f1e 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -52,6 +52,17 @@
Arrived Parcels
+
+
+ +
+ +
'order', 'as' => 'order.', 'namespace' => 'Orders'], f Route::put('/confirm/{id}', 'ConfirmOrderController@confirm')->name('confirm'); Route::put('/cancel/{id}', 'CancelOrderController@cancel')->name('cancel'); Route::put('/restore/{id}', 'RestoreOrderController@restore')->name('restore'); + Route::post('/address/change/request', 'RequestChangeOrderAddressController@request')->name('address.change.request'); + Route::put('/address/{id}/status/{status}', 'ApproveChangeOrderAddressController@approve')->name('address.status.update'); }); diff --git a/routes/packing_list.php b/routes/packing_list.php index 06b11950..ea64c7e1 100644 --- a/routes/packing_list.php +++ b/routes/packing_list.php @@ -7,6 +7,7 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' = Route::get('/list', 'ListPackingListsController@list')->name('list'); Route::post('/create', 'CreatePackingListController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackingListController@update')->name('update'); + Route::put('/status/{id}/update/{status}', 'UpdatePackingListStatusController@update')->name('status.update'); Route::delete('/delete/{id}', 'DeletePackingListController@delete')->name('delete'); Route::group(['namespace' => 'Containers', 'prefix' => 'container', 'as' => 'container.'], function () { diff --git a/routes/web.php b/routes/web.php index 17b46032..2eb2bcbb 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,10 +1,11 @@ name('warehouse.list'); +Route::get('/containers', function () { + return view('pages.containers'); +})->name('containers'); + Route::get('/customer/{marking}', function ($marking) { $connection = CompanyConnection::where('invitee_reference', $marking)->first(); $id = $connection->invitee->company->id; return view('pages.customers.profile', ['id' => $id]); })->name('customer.profile'); +Route::get('/orders/refresh', function(){ + + FetchWarehouseReceiveListFromVTPortalJob::withChain([ + new FetchLoadedContainersFromVTPortalJob, + new FetchPackingListFromVTPortalJob, + new FetchContainersStatusUpdateFromVTPortalJob, + new FetchDeliveryListFromVTPortalJob + ])->dispatch(); + + return redirect('orders'); + +})->name('orders.refresh'); + +Route::get('/containers/refresh', function(){ + + FetchContainersStatusUpdateFromVTPortalJob::dispatch(); + + return redirect('orders'); + +})->name('containers.refresh'); + +Route::get('/deliveries/refresh', function(){ + + FetchDeliveryListFromVTPortalJob::dispatch(); + + return redirect('orders'); + +})->name('deliveries.refresh'); + Route::get('/order/{id}/download', 'Orders\DownloadOrderQrPdfController@download')->name('order.qr.download'); -Route::get('/test', function(){ - $addresses = \App\Models\Address::all(); - foreach ($addresses as $address){ - $address->street_one = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_one, $address->district, $address->postcode); - $address->street_two = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_two, $address->district, $address->postcode); - $address->save(); - } -})->name('test'); +//Route::get('/test', function(){ +// $addresses = \App\Models\Address::all(); +// foreach ($addresses as $address){ +// $address->street_one = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_one, $address->district, $address->postcode); +// $address->street_two = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_two, $address->district, $address->postcode); +// $address->save(); +// } +//})->name('test'); -Route::get('/shipping-queue', function () { - return view('pages.templates.shippingQueue'); -})->name('shipping-queue'); \ No newline at end of file