From 3c20386875deb82621fa77622e5becbc57046d84 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Thu, 19 Aug 2021 01:31:27 +0800 Subject: [PATCH 01/98] feat: API to request change order address --- .../DataTransferObjects/AddressObject.php | 12 +++- .../Addresses/Services/CreatesAddress.php | 1 + .../RequestChangeOrderAddressLogic.php | 49 ++++++++++++++ .../RequestChangeOrderAddressProcessor.php | 66 +++++++++++++++++++ .../Standards/Rules/CanChangeOrderAddress.php | 39 +++++++++++ .../RequestChangeOrderAddressController.php | 20 ++++++ app/Http/Resources/OrderResource.php | 1 + app/Models/Order.php | 11 ++++ 8 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 app/Classes/Modules/Orders/ControllersLogic/RequestChangeOrderAddressLogic.php create mode 100644 app/Classes/Modules/Orders/Processors/RequestChangeOrderAddressProcessor.php create mode 100644 app/Classes/Modules/Orders/Standards/Rules/CanChangeOrderAddress.php create mode 100644 app/Http/Controllers/Orders/RequestChangeOrderAddressController.php 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/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/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/Standards/Rules/CanChangeOrderAddress.php b/app/Classes/Modules/Orders/Standards/Rules/CanChangeOrderAddress.php new file mode 100644 index 00000000..1030168b --- /dev/null +++ b/app/Classes/Modules/Orders/Standards/Rules/CanChangeOrderAddress.php @@ -0,0 +1,39 @@ +execute($request); + } +} diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index 1a31578f..1653de70 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -24,6 +24,7 @@ class OrderResource extends JsonResource '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_change_request' => new AddressResource($this->addressesPendingVerification()->first()), 'created_at' => $this->created_at->format('d-m-Y') ]; } diff --git a/app/Models/Order.php b/app/Models/Order.php index 58f64dc8..050ff390 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Classes\General\Interfaces\Addressable; 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\SoftDeletes; @@ -57,4 +58,14 @@ class Order extends AbstractModel implements Addressable // 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); + } } From 5a043e89a027fa7b1c36f57c6778eb0762bee475 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Thu, 19 Aug 2021 01:33:16 +0800 Subject: [PATCH 02/98] feat: API to approve order address change. --- .../ApproveChangeOrderAddressLogic.php | 43 +++++++++++++++ .../ApproveChangeOrderAddressProcessor.php | 53 +++++++++++++++++++ .../Orders/Services/UpdatesOrdersAddress.php | 20 +++++++ .../Rules/CanApproveChangeOrderAddress.php | 39 ++++++++++++++ .../ApproveChangeOrderAddressController.php | 20 +++++++ 5 files changed, 175 insertions(+) create mode 100644 app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php create mode 100644 app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php create mode 100644 app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php create mode 100644 app/Classes/Modules/Orders/Standards/Rules/CanApproveChangeOrderAddress.php create mode 100644 app/Http/Controllers/Orders/ApproveChangeOrderAddressController.php diff --git a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php new file mode 100644 index 00000000..ff78145e --- /dev/null +++ b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php @@ -0,0 +1,43 @@ + '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 + { + $order = $this->approveChangeOrderAddressProcessor->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..423d8ce5 --- /dev/null +++ b/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php @@ -0,0 +1,53 @@ +canApproveChangeOrderAddress = $canApproveChangeOrderAddress; + $this->fetchesOrder = $fetchesOrder; + $this->deletesAddress = $deletesAddress; + $this->updatesOrdersAddress = $updatesOrdersAddress; + } + + + public function execute(Request $request) + { + $this->canApproveChangeOrderAddress->passes(); + + $order = $this->fetchesOrder->execute(['id' => $request->get('order_id')]); + $this->deletesAddress->execute($order->addressesApproved->first()); + $this->updatesOrdersAddress->execute($order->addressesPendingVerification->first(), ApprovalStatus::APPROVED); + + 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..3ad6295a --- /dev/null +++ b/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php @@ -0,0 +1,20 @@ +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 @@ +execute($request); + } +} From 6fb5d666312900ef06f26e81f7915adaee7fa059 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Thu, 19 Aug 2021 01:33:50 +0800 Subject: [PATCH 03/98] feat: add route for request and approve address change. --- routes/order.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/routes/order.php b/routes/order.php index 4f31ecff..27cb66ef 100644 --- a/routes/order.php +++ b/routes/order.php @@ -9,4 +9,6 @@ Route::group(['prefix' => '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::post('/address/change/approve', 'ApproveChangeOrderAddressController@approve')->name('address.change.approve'); }); From e0405bca1ec0deeb1c95d7c9b61e541e6fe38e80 Mon Sep 17 00:00:00 2001 From: weichien00 Date: Thu, 19 Aug 2021 01:35:23 +0800 Subject: [PATCH 04/98] swagger: add show order, request address change, and approve address change api endpoint. --- resources/views/swagger/json.blade.php | 142 +++++++++++++++++++++++++ 1 file changed, 142 insertions(+) diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 1e09fa9c..00cfe1a3 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -2430,6 +2430,148 @@ } } }, + "/order/show/{id}": { + "get": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "showOrder", + "summary": "Show order", + "description": "", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Order Reference Id", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/order/address/change/request": { + "post": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "requestChangeOrderAddress", + "summary": "Request Change Order Address", + "description": "", + "parameters": [ + { + "name": "order_id", + "in": "query", + "description": "Order ID", + "required": true, + "type": "integer" + }, + { + "name": "address_id", + "in": "query", + "description": "New Order Address ID", + "required": true, + "type": "integer" + }, + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, + "/order/address/change/approve": { + "post": { + "tags": [ + "Order" + ], + "produces": [ + "application/json" + ], + "operationId": "approveChangeOrderAddress", + "summary": "Approve Change Order Address", + "description": "", + "parameters": [ + { + "name": "order_id", + "in": "query", + "description": "Order ID", + "required": true, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, "/address/create": { "post": { "tags": [ From 7008a01b117cb1549ac4cfb455ff4db1d54cebeb Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 2 Sep 2021 12:27:40 +0800 Subject: [PATCH 05/98] fix reschedule containers etd bug --- .../FetchContainersStatusUpdateFromVTPortalProcessor.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php index a50bbfdf..208c8b31 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php @@ -107,9 +107,11 @@ class FetchContainersStatusUpdateFromVTPortalProcessor if($delayDate){ $delayDate = Carbon::parse($delayDate); $transport = $container->transports()->first(); + $schedule = $transport->schedules()->where('eta', '=', $delayDate)->first(); $etd = $delayDate->subDays(5); - if(!$schedule){ + + if($schedule){ $etd = $schedule->etd; $transport->schedules()->update(['status' => ApprovalStatus::EXPIRED]); } From 842fc52b4e4505aa9f89d3c929bd05819bef5fe9 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 2 Sep 2021 16:51:10 +0800 Subject: [PATCH 06/98] fix warehouse list bugs --- .../CreateAddressFromOldAddressProcessor.php | 5 +- ...ehouseReceiveListFromVTPortalProcessor.php | 18 +++++-- app/Models/OldOrders.php | 2 +- database/seeders/DeleteOldOrdersSeeder.php | 54 +++++++++++++++++++ 4 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 database/seeders/DeleteOldOrdersSeeder.php diff --git a/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php b/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php index 7cd04d1f..3e209927 100644 --- a/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php +++ b/app/Classes/Modules/Addresses/Processors/CreateAddressFromOldAddressProcessor.php @@ -7,6 +7,7 @@ use App\Classes\Modules\Addresses\Services\CleansOldAddress; use App\Classes\Modules\Addresses\Services\CreatesAddress; use App\Classes\Modules\Addresses\Services\FetchesAddress; use App\Models\OldAddress; +use App\Models\Order; use Illuminate\Database\Eloquent\Model; class CreateAddressFromOldAddressProcessor @@ -44,8 +45,8 @@ class CreateAddressFromOldAddressProcessor } - if($address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()){ - return $address; + if(!$addressable instanceof Order && $address = $addressable->addresses()->where('street_one', $object->getStreetOne())->first()) { + return $address; } return $this->createsAddress->execute($addressable, $object); diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php index 862fdb60..476b1426 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php @@ -125,6 +125,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor } $end = $end ? $end : Carbon::now(); + $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.'}}'), ''); @@ -132,6 +133,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor $response = $this->fetchesDataFRomVTPortal->getResponseBody($warehouseListRequest); foreach ($response->Rows as $parcel){ + $marking = explode('/', explode('CIEF/', $parcel[5])[1]); if(!array_key_exists(1, $marking)){ @@ -144,6 +146,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor continue; } + try { $order = $this->fetchesOrder->execute(['reference' => $orderNumber]); } catch (ResourceNotFoundException $exception) { @@ -154,13 +157,16 @@ class FetchWarehouseReceiveListFromVTPortalProcessor continue; } - $customerMarking = str_replace(' ', '', str_replace('/', '', str_replace('CIEF/', '', $oldOrder->company->marking))); + + $customerMarking = str_replace('/', '', str_replace(' ', '', explode('CIEF/', $oldOrder->company->marking)[1])); $companyModule = CompanyModule::whereHas('inviters', function($query) use ($customerMarking) { return $query->where('invitee_reference', '=', $customerMarking); })->first(); - if(!$companyModule) { + + if(!$companyModule){ + log::error('unknown customer: '.$customerMarking); continue; } @@ -180,6 +186,10 @@ class FetchWarehouseReceiveListFromVTPortalProcessor $originWarehouse = $this->fetchesCompanyModule->execute(['id' => $warehouseId === 11 ? 3 : 4]); $order = $this->createOrderProcessor->execute($companyModule->company, $originWarehouse, $address, $orderNumber); + + $order->created_at = Carbon::parse($parcel[1]); + $order->save(); + } $packingListReference = $parcel[17]; @@ -217,13 +227,13 @@ class FetchWarehouseReceiveListFromVTPortalProcessor } - return []; + } catch (\Exception $exception){ Log::error($exception->getMessage()); } DB::commit(); - + return []; } diff --git a/app/Models/OldOrders.php b/app/Models/OldOrders.php index 81041fab..c6901929 100644 --- a/app/Models/OldOrders.php +++ b/app/Models/OldOrders.php @@ -17,7 +17,7 @@ class OldOrders extends Model */ public function address(): hasOne { - return $this->hasOne(OldAddress::class, 'reference_id', 'address_id')->where('type', '=', 1); + return $this->hasOne(OldAddress::class, 'id', 'address_id')->where('type', '=', 1); } /** diff --git a/database/seeders/DeleteOldOrdersSeeder.php b/database/seeders/DeleteOldOrdersSeeder.php new file mode 100644 index 00000000..74afabf6 --- /dev/null +++ b/database/seeders/DeleteOldOrdersSeeder.php @@ -0,0 +1,54 @@ +reference)->first(); + if($oldOrder){ + $order->addresses()->forceDelete(); + $order->packingLists()->forceDelete(); + $order->OrderRoles()->forceDelete(); + $order->orderSteps()->forceDelete(); + $order->forceDelete(); + } + } + } + +} From 050dc8ac7ba2dba80b267f7ca6e0780ffd813b8e Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 2 Sep 2021 22:20:01 +0800 Subject: [PATCH 07/98] frontend suggested changes --- ...inersStatusUpdateFromVTPortalProcessor.php | 16 ++--- app/Http/Resources/ContainerResource.php | 2 +- app/Http/Resources/TransportResource.php | 2 +- database/seeders/OrdersTableSeeder.php | 1 - .../elements/CustomerProfileComponent.vue | 66 +++++++++++-------- .../orders/elements/PackageComponent.vue | 50 +++++++++++--- .../orders/elements/ParcelComponent.vue | 10 ++- .../WarehouseListSectionComponent.vue | 12 ++++ .../views/pages/warehouse_list.blade.php | 4 ++ routes/web.php | 4 ++ 10 files changed, 118 insertions(+), 49 deletions(-) create mode 100644 resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue create mode 100644 resources/views/pages/warehouse_list.blade.php diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php index 208c8b31..cddc41ea 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersStatusUpdateFromVTPortalProcessor.php @@ -89,6 +89,8 @@ class FetchContainersStatusUpdateFromVTPortalProcessor $eta = Carbon::parse($eta); + $etd = Carbon::parse($eta)->subDays(5); + $delayDate = $containerDetails[6]; $containerStatus = $containerDetails[9]; @@ -98,25 +100,23 @@ class FetchContainersStatusUpdateFromVTPortalProcessor $transport = $container->transports()->first(); if(!$transport){ - $transportObject = new TransportObject(TransportType::SEA, null, null, $eta, null, ApprovalStatus::APPROVED); + $transportObject = new TransportObject(TransportType::SEA, null, null, $etd, null, ApprovalStatus::APPROVED); /** @var Transport $transport */ $transport = $this->createsTransport->execute($transportObject, $container); - $this->createsSchedule->execute($transport, new ScheduleObject($eta->subDays(5), $eta, ApprovalStatus::APPROVED)); + $this->createsSchedule->execute($transport, new ScheduleObject($etd, $eta, ApprovalStatus::APPROVED)); } if($delayDate){ + $delayDate = Carbon::parse($delayDate); $transport = $container->transports()->first(); - $schedule = $transport->schedules()->where('eta', '=', $delayDate)->first(); - $etd = $delayDate->subDays(5); - - if($schedule){ - $etd = $schedule->etd; + if(!$transport->schedules()->where('eta', '=', $delayDate)->first()) { + $etd = $transport->schedules()->where('status', '=', ApprovalStatus::APPROVED)->first()->etd; $transport->schedules()->update(['status' => ApprovalStatus::EXPIRED]); + $this->createsSchedule->execute($transport, new ScheduleObject($etd, $delayDate, ApprovalStatus::APPROVED)); } - $this->createsSchedule->execute($transport, new ScheduleObject($etd, $delayDate, ApprovalStatus::APPROVED)); } if($containerStatus === 'Unstuffing'){ diff --git a/app/Http/Resources/ContainerResource.php b/app/Http/Resources/ContainerResource.php index 59c60916..f1d3671f 100644 --- a/app/Http/Resources/ContainerResource.php +++ b/app/Http/Resources/ContainerResource.php @@ -20,7 +20,7 @@ class ContainerResource extends JsonResource 'container_type' => $this->container_type, 'container_number' => $this->container_number, 'seal_reference' => $this->seal_reference, - 'transport' => TransportResource::collection($this->transports), + 'transport' => new TransportResource($this->transports()->first()), ]; } } diff --git a/app/Http/Resources/TransportResource.php b/app/Http/Resources/TransportResource.php index 6656721a..b931964d 100644 --- a/app/Http/Resources/TransportResource.php +++ b/app/Http/Resources/TransportResource.php @@ -24,7 +24,7 @@ class TransportResource extends JsonResource 'drop_date' => $this->drop_date ? $this->drop_date->format('d-m-Y') : $this->drop_date, 'status' => $this->status, 'current_schedule' => new ScheduleResource($this->schedules()->where('status', '=', ApprovalStatus::APPROVED)->first()), - 'schedule_history' => ScheduleResource::collection($this->schedules()->where('status', '!=', ApprovalStatus::APPROVED)->get()) + 'schedule_history' => ScheduleResource::collection($this->schedules()->where('status', '=', ApprovalStatus::EXPIRED)->get()) ]; } } diff --git a/database/seeders/OrdersTableSeeder.php b/database/seeders/OrdersTableSeeder.php index 60caa71c..0e881591 100644 --- a/database/seeders/OrdersTableSeeder.php +++ b/database/seeders/OrdersTableSeeder.php @@ -21,7 +21,6 @@ class OrdersTableSeeder extends Seeder */ public function run() { - FetchWarehouseReceiveListFromVTPortalJob::withChain([ new FetchLoadedContainersFromVTPortalJob, new FetchPackingListFromVTPortalJob, diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index 5584ec86..59d0dd1e 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -30,25 +30,29 @@ -
+
-
+
Account Owner
{{item.employee.name}}
+
+
+
Account Owner
+
{{item.employee.email}}
+
+
-
+
Contact Number
{{item.contact.phone}}
-
-
WeChat ID
@@ -57,35 +61,39 @@
-
-
-
+
+
+
-
{{ item.type === 0 ? 'Identification Card' : 'SSM Registration' }}
-
{{item.identification.reference}}
-
-
- - - +
+
+
{{ item.type === 0 ? 'Identification Card' : 'SSM Registration' }}
+
{{item.identification.reference}}
+
+
+ + + +
+
-
-
-
-
-
-
- +
+
+
+
+ +
+
+ + +
- - -
diff --git a/resources/assets/vue/components/orders/elements/PackageComponent.vue b/resources/assets/vue/components/orders/elements/PackageComponent.vue index f9a1da89..f1465b7c 100644 --- a/resources/assets/vue/components/orders/elements/PackageComponent.vue +++ b/resources/assets/vue/components/orders/elements/PackageComponent.vue @@ -66,15 +66,29 @@
-
-
-
- +
+
+
+
+
+ +
+
+
+
+
+
+
-
+ +
+
+
+
+
@@ -84,11 +98,31 @@
+
+
+
+
+ Etd +
{{schedule.etd}}
+
+
+ Eta +
{{schedule.eta}}
+
+
+
+
-
- Shipping Date -
{{item.container ? item.container.transport[0].current_schedule.etd : 'n/a'}}
+
+
+ Etd +
{{item.container ? item.container.transport.current_schedule.etd : 'n/a'}}
+
+
+ {{!item.container.transport.schedule_history.length ? 'Eta' : 'Rescheduled Eta' }} +
{{item.container ? item.container.transport.current_schedule.eta : 'n/a'}}
+
diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 6c037efc..74c2be6d 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,7 +38,15 @@
-
+
+
+

Order Number

+
+
+

{{item.order.reference}}

+
+
+

Description

diff --git a/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue b/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue new file mode 100644 index 00000000..a56afe24 --- /dev/null +++ b/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/resources/views/pages/warehouse_list.blade.php b/resources/views/pages/warehouse_list.blade.php new file mode 100644 index 00000000..b12f825a --- /dev/null +++ b/resources/views/pages/warehouse_list.blade.php @@ -0,0 +1,4 @@ +@extends('layouts.base_portal') +@section('inner_content') + +@endsection \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index 0281ac90..b1370bfe 100644 --- a/routes/web.php +++ b/routes/web.php @@ -61,6 +61,10 @@ Route::get('/address', function () { return view('pages.addresses.index'); })->name('address'); +Route::get('/warehouse-list', function () { + return view('pages.warehouse_list'); +})->name('warehouse.list'); + Route::get('/customer/{marking}', function ($marking) { $connection = CompanyConnection::where('invitee_reference', $marking)->first(); $id = $connection->invitee->company->id; From 8e05c287b88d3937112801fffb1eaff2df1359ab Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 2 Sep 2021 22:25:03 +0800 Subject: [PATCH 08/98] frontend suggested changes --- resources/views/partials/menu.blade.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 90d7d4d2..73f727b9 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -41,6 +41,17 @@
Orders
+
+
+ +
+ +
Date: Thu, 2 Sep 2021 22:32:01 +0800 Subject: [PATCH 09/98] change scheduled jobs into a chain --- app/Console/Kernel.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index bec96f83..5dd79445 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -29,11 +29,14 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule) { - $schedule->job(FetchWarehouseReceiveListFromVTPortalJob::class)->dailyAt('21:00'); - $schedule->job(FetchLoadedContainersFromVTPortalJob::class)->dailyAt('21:15'); - $schedule->job(FetchPackingListFromVTPortalJob::class)->dailyAt('21:30'); - $schedule->job(FetchContainersStatusUpdateFromVTPortalJob::class)->dailyAt('21:45'); - $schedule->job(FetchDeliveryListFromVTPortalJob::class)->dailyAt('22:00'); + $schedule->call(function(){ + FetchWarehouseReceiveListFromVTPortalJob::withChain([ + new FetchLoadedContainersFromVTPortalJob, + new FetchPackingListFromVTPortalJob, + new FetchContainersStatusUpdateFromVTPortalJob, + new FetchDeliveryListFromVTPortalJob + ])->dispatch(); + })->dailyAt('21:00'); } /** From 1edcb296f3947da811c257408158695e5238ad6a Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 2 Sep 2021 22:39:37 +0800 Subject: [PATCH 10/98] sort orders by latest --- .../vue/components/orders/sections/OrderSectionComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/vue/components/orders/sections/OrderSectionComponent.vue b/resources/assets/vue/components/orders/sections/OrderSectionComponent.vue index 18df2ac5..840e5ecf 100644 --- a/resources/assets/vue/components/orders/sections/OrderSectionComponent.vue +++ b/resources/assets/vue/components/orders/sections/OrderSectionComponent.vue @@ -170,7 +170,7 @@
- + From 3ee8afc4a4a8768261354a7f33fad8efd539a6bc Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 3 Sep 2021 13:07:31 +0800 Subject: [PATCH 11/98] add new schedule for fetching from vt at 11:30 am --- app/Console/Kernel.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 5dd79445..795f9ab6 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -29,6 +29,16 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule) { + + $schedule->call(function(){ + FetchWarehouseReceiveListFromVTPortalJob::withChain([ + new FetchLoadedContainersFromVTPortalJob, + new FetchPackingListFromVTPortalJob, + new FetchContainersStatusUpdateFromVTPortalJob, + new FetchDeliveryListFromVTPortalJob + ])->dispatch(); + })->dailyAt('11:30'); + $schedule->call(function(){ FetchWarehouseReceiveListFromVTPortalJob::withChain([ new FetchLoadedContainersFromVTPortalJob, @@ -37,6 +47,8 @@ class Kernel extends ConsoleKernel new FetchDeliveryListFromVTPortalJob ])->dispatch(); })->dailyAt('21:00'); + + } /** From b049c95ca25ea69398aaec7abe061b8d867b30ad Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 3 Sep 2021 17:25:17 +0800 Subject: [PATCH 12/98] change schedule for vt portal fetch --- app/Console/Kernel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 795f9ab6..83b805ad 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -37,7 +37,7 @@ class Kernel extends ConsoleKernel new FetchContainersStatusUpdateFromVTPortalJob, new FetchDeliveryListFromVTPortalJob ])->dispatch(); - })->dailyAt('11:30'); + })->dailyAt('15:00'); $schedule->call(function(){ FetchWarehouseReceiveListFromVTPortalJob::withChain([ From 51d999e3c8a9f471feeccba90029cb5eef7a5e9e Mon Sep 17 00:00:00 2001 From: edmondlang Date: Sat, 4 Sep 2021 16:22:09 +0800 Subject: [PATCH 13/98] add container page ui --- .../elements/ContainerComponent.vue | 85 +++++++++++++++++++ .../pages/templates/containers.blade.php | 17 ++++ resources/views/partials/menu.blade.php | 11 +++ routes/web.php | 6 +- 4 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 resources/assets/vue/components/containers/elements/ContainerComponent.vue create mode 100644 resources/views/pages/templates/containers.blade.php 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..2a4f7525 --- /dev/null +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -0,0 +1,85 @@ + + \ 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/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 90d7d4d2..abd5c4bb 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -41,6 +41,17 @@
Orders
+
+
+ +
+ +
street_two = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_two, $address->district, $address->postcode); $address->save(); } -})->name('test'); \ No newline at end of file +})->name('test'); + +Route::get('/containers', function () { + return view('pages.templates.containers'); +})->name('containers'); \ No newline at end of file From 7d67e13b9edb994877ccb44064318d31f75ac235 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sun, 5 Sep 2021 20:12:52 +0800 Subject: [PATCH 14/98] change schedule for vt portal fetch --- app/Console/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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, From 6009e82994294cece4b1b1cdf911c2fea247cc37 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 12:48:57 +0800 Subject: [PATCH 15/98] add marking to arrived parcel components --- .../vue/components/orders/elements/ParcelComponent.vue | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 74c2be6d..f306502d 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,6 +38,14 @@
+
+
+

Marking

+
+
+

{{item.order.company_module.marking}}

+
+

Order Number

From 91c8424dc5bc9aaf04ccb34f91828d325722173f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 12:52:11 +0800 Subject: [PATCH 16/98] add marking to arrived parcel components --- .../Eloquent/Filters/OrderByArrivalDate.php | 20 +++++++++++++++++++ ...hLoadedContainersFromVTPortalProcessor.php | 7 ++++--- ...ehouseReceiveListFromVTPortalProcessor.php | 4 +++- .../orders/elements/ParcelComponent.vue | 2 +- .../WarehouseListSectionComponent.vue | 12 ----------- .../views/pages/warehouse_list.blade.php | 10 +++++++++- 6 files changed, 37 insertions(+), 18 deletions(-) create mode 100644 app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php delete mode 100644 resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue diff --git a/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php b/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php new file mode 100644 index 00000000..aae9336c --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php @@ -0,0 +1,20 @@ +with('transports'); + } + +} \ No newline at end of file diff --git a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php index 2776124d..ed41ed08 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php @@ -124,11 +124,12 @@ class FetchLoadedContainersFromVTPortalProcessor */ public function execute(?Carbon $start = null, ?Carbon $end = null){ - DB::beginTransaction(); +// DB::beginTransaction(); try { + $start = Carbon::parse('01-06-2021'); $start = $start ? $start : Carbon::now()->subMonth(); - $startLimit = Carbon::parse('11-08-2021'); + $startLimit = Carbon::parse('01-06-2021'); if($start->isBefore($startLimit)){ $start = $startLimit; @@ -221,7 +222,7 @@ class FetchLoadedContainersFromVTPortalProcessor } - DB::commit(); +// DB::commit(); return []; } diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php index 476b1426..bc6042b6 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php @@ -116,9 +116,11 @@ class FetchWarehouseReceiveListFromVTPortalProcessor try { + $start = Carbon::parse('01-06-2021'); + $start = $start ? $start : Carbon::now()->subMonth(); - $startLimit = Carbon::parse('11-08-2021'); + $startLimit = Carbon::parse('01-06-2021'); if($start->isBefore($startLimit)){ $start = $startLimit; diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index f306502d..7f50b346 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,7 +38,7 @@
-
+

Marking

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/pages/warehouse_list.blade.php b/resources/views/pages/warehouse_list.blade.php index b12f825a..3b58deab 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 From 50cbafce254f4a9ff7b7cbd3c229936947a0e84e Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 12:52:27 +0800 Subject: [PATCH 17/98] add marking to arrived parcel components --- .../assets/vue/components/orders/elements/ParcelComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 7f50b346..822534b2 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -46,7 +46,7 @@

{{item.order.company_module.marking}}

-
+

Order Number

From 1933030e9aa06adf4bef6011faddadbecc9d44c9 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 12:59:11 +0800 Subject: [PATCH 18/98] Revert "add marking to arrived parcel components" This reverts commit 50cbafce254f4a9ff7b7cbd3c229936947a0e84e. --- .../assets/vue/components/orders/elements/ParcelComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 822534b2..7f50b346 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -46,7 +46,7 @@

{{item.order.company_module.marking}}

-
+

Order Number

From a2f4e1f3fd7ae9307c1b6f37830901f9e5b9271b Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 13:00:31 +0800 Subject: [PATCH 19/98] Revert "add marking to arrived parcel components" This reverts commit 91c8424dc5bc9aaf04ccb34f91828d325722173f. --- .../Eloquent/Filters/OrderByArrivalDate.php | 20 ------------------- ...hLoadedContainersFromVTPortalProcessor.php | 7 +++---- ...ehouseReceiveListFromVTPortalProcessor.php | 4 +--- .../orders/elements/ParcelComponent.vue | 2 +- .../WarehouseListSectionComponent.vue | 12 +++++++++++ .../views/pages/warehouse_list.blade.php | 10 +--------- 6 files changed, 18 insertions(+), 37 deletions(-) delete mode 100644 app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php create mode 100644 resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue diff --git a/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php b/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php deleted file mode 100644 index aae9336c..00000000 --- a/app/Classes/General/Eloquent/Filters/OrderByArrivalDate.php +++ /dev/null @@ -1,20 +0,0 @@ -with('transports'); - } - -} \ No newline at end of file diff --git a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php index ed41ed08..2776124d 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchLoadedContainersFromVTPortalProcessor.php @@ -124,12 +124,11 @@ class FetchLoadedContainersFromVTPortalProcessor */ public function execute(?Carbon $start = null, ?Carbon $end = null){ -// DB::beginTransaction(); + DB::beginTransaction(); try { - $start = Carbon::parse('01-06-2021'); $start = $start ? $start : Carbon::now()->subMonth(); - $startLimit = Carbon::parse('01-06-2021'); + $startLimit = Carbon::parse('11-08-2021'); if($start->isBefore($startLimit)){ $start = $startLimit; @@ -222,7 +221,7 @@ class FetchLoadedContainersFromVTPortalProcessor } -// DB::commit(); + DB::commit(); return []; } diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php index bc6042b6..476b1426 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php @@ -116,11 +116,9 @@ class FetchWarehouseReceiveListFromVTPortalProcessor try { - $start = Carbon::parse('01-06-2021'); - $start = $start ? $start : Carbon::now()->subMonth(); - $startLimit = Carbon::parse('01-06-2021'); + $startLimit = Carbon::parse('11-08-2021'); if($start->isBefore($startLimit)){ $start = $startLimit; diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 7f50b346..f306502d 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,7 +38,7 @@
-
+

Marking

diff --git a/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue b/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue new file mode 100644 index 00000000..a56afe24 --- /dev/null +++ b/resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue @@ -0,0 +1,12 @@ + \ 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 3b58deab..b12f825a 100644 --- a/resources/views/pages/warehouse_list.blade.php +++ b/resources/views/pages/warehouse_list.blade.php @@ -1,12 +1,4 @@ @extends('layouts.base_portal') @section('inner_content') -
-
- - - -
-
+ @endsection \ No newline at end of file From 7f8a4af3fe0e3523a4b2e490c852ef07996ea44d Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 6 Sep 2021 13:03:45 +0800 Subject: [PATCH 20/98] add marking to arrived parcel components --- .../components/orders/elements/ParcelComponent.vue | 4 ++-- .../sections/WarehouseListSectionComponent.vue | 12 ------------ resources/views/pages/warehouse_list.blade.php | 10 +++++++++- 3 files changed, 11 insertions(+), 15 deletions(-) delete mode 100644 resources/assets/vue/components/orders/sections/WarehouseListSectionComponent.vue diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index f306502d..822534b2 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,7 +38,7 @@
-
+

Marking

@@ -46,7 +46,7 @@

{{item.order.company_module.marking}}

-
+

Order Number

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/pages/warehouse_list.blade.php b/resources/views/pages/warehouse_list.blade.php index b12f825a..96456aaf 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 From 102905df066e4f3913704fa415bf5a5a43a58a1b Mon Sep 17 00:00:00 2001 From: glovetleong Date: Mon, 6 Sep 2021 14:52:56 +0800 Subject: [PATCH 21/98] Container, Transport, Schedule Api Debug --- .../Containers/CreateContainerLogic.php | 20 +++++++++++++++---- .../Packages/CreatePackageLogic.php | 2 +- .../ControllersLogic/CreateScheduleLogic.php | 2 +- .../Validators/ScheduleValidation.php | 2 -- .../ControllersLogic/CreateTransportLogic.php | 14 ++++++------- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php index cff8cbb6..40376b12 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php @@ -4,10 +4,12 @@ namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers; use App\Classes\General\Abstracts\AbstractControllerLogic; +use App\Classes\Modules\Companies\Services\FetchesCompanyModule; use App\Classes\Modules\PackingLists\Services\Containers\CreatesContainer; use App\Classes\Modules\PackingLists\Standards\Rules\Containers\CanCreateContainer; use App\Classes\Modules\PackingLists\DataTransferObjects\ContainerObject; use App\Classes\Modules\PackingLists\Services\FetchesPackingList; + use App\Http\Resources\ContainerResource; use ErrorException; use Illuminate\Http\JsonResponse; @@ -32,13 +34,17 @@ class CreateContainerLogic extends AbstractControllerLogic /** @var FetchesPackingList */ private $fetchesPackingList; + /** @var FetchesCompanyModule */ + private $fetchesCompanyModule; + /** @var CreatesPackingList */ private $createsContainer; - public function __construct(CanCreateContainer $canCreateContainer, FetchesPackingList $fetchesPackingList, CreatesContainer $createsContainer) + public function __construct(CanCreateContainer $canCreateContainer, FetchesPackingList $fetchesPackingList, FetchesCompanyModule $fetchesCompanyModule, CreatesContainer $createsContainer) { $this->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/Packages/CreatePackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php index c9eebc15..03d67fce 100644 --- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php @@ -61,7 +61,7 @@ class CreatePackageLogic extends AbstractControllerLogic */ public function logic(Request $request) : JsonResponse { - + $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]); $object = new PackageObject( 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..4e6c6c64 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; } @@ -62,7 +62,7 @@ class CreateTransportLogic extends AbstractControllerLogic $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)); From c96a2b71d1c644869c39c3ea6a5504e5b56701a2 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Mon, 6 Sep 2021 15:22:28 +0800 Subject: [PATCH 22/98] update api --- .../Containers/UpdateContainerLogic.php | 10 +++- .../DataTransferObjects/ContainerObject.php | 12 ++-- .../Services/Containers/CreatesContainer.php | 2 +- .../Services/Containers/UpdatesContainer.php | 2 +- .../ControllersLogic/CreateTransportLogic.php | 9 ++- .../ControllersLogic/UpdateTransportLogic.php | 9 ++- database/seeders/CompaniesTableSeeder.php | 60 +++++++++---------- 7 files changed, 62 insertions(+), 42 deletions(-) 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/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/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/Transports/ControllersLogic/CreateTransportLogic.php b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php index 4e6c6c64..edd5690f 100644 --- a/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php +++ b/app/Classes/Modules/Transports/ControllersLogic/CreateTransportLogic.php @@ -58,7 +58,14 @@ 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); 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/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); + // } + // } - } - } - } + // } + // } + // } } From cdaa39582468f292ba7b790f26b0e05c083e72ab Mon Sep 17 00:00:00 2001 From: Fairuz Date: Tue, 7 Sep 2021 09:51:04 +0800 Subject: [PATCH 23/98] Updates on Packing List & Package --- .../CreatePackingListLogic.php | 19 ++++-- .../Packages/CreatePackageLogic.php | 5 +- .../Packages/FetchPackageLogic.php | 4 +- .../Packages/ListPackagesLogic.php | 4 +- .../Packages/UpdatePackageLogic.php | 14 ++--- .../UpdatePackingListLogic.php | 2 +- .../Services/Packages/UpdatesPackage.php | 1 - .../Packages/CreatePackageController.php | 2 +- .../Packages/DeletePackageController.php | 2 +- .../Packages/FetchPackageController.php | 2 +- .../Packages/ListPackagesController.php | 2 +- .../Packages/UpdatePackageController.php | 2 +- resources/views/swagger/json.blade.php | 60 ++++++++++--------- 13 files changed, 67 insertions(+), 52 deletions(-) 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..28e43d02 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 { @@ -65,19 +66,19 @@ class CreatePackageLogic extends AbstractControllerLogic $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/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/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/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 1e09fa9c..1f64c81e 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -28,13 +28,17 @@ "name": "Order", "description": "Endpoints related to order module." }, + { + "name": "Packing", + "description": "Endpoints related to packing module." + }, { "name": "Package", "description": "Endpoints related to package module." }, { - "name": "Packing", - "description": "Endpoints related to packing module." + "name": "Container", + "description": "Endpoints related to container module." }, { "name": "Transport", @@ -71,9 +75,9 @@ "description": "", "parameters": [ { - "name": "package_id", + "name": "reference_number", "in": "query", - "description": "Package Id", + "description": "Reference No", "required": true, "type": "integer" } @@ -221,7 +225,7 @@ "description": "Status", "required": true, "type": "integer" - }, + } ], "responses": { "200": { @@ -296,7 +300,7 @@ "/packing_list/container/create": { "post": { "tags": [ - "Packing" + "Container" ], "produces": [ "application/json" @@ -362,7 +366,7 @@ "/packing_list/container/list": { "get": { "tags": [ - "Packing" + "Container" ], "produces": [ "application/json" @@ -410,7 +414,7 @@ "/packing_list/container/{id}/show": { "get": { "tags": [ - "Packing" + "Container" ], "produces": [ "application/json" @@ -455,7 +459,7 @@ "/packing_list/container/update/{id}": { "put": { "tags": [ - "Packing" + "Container" ], "produces": [ "application/json" @@ -528,7 +532,7 @@ "/packing_list/container/delete/{id}": { "delete": { "tags": [ - "Packing" + "Container" ], "produces": [ "application/json" @@ -826,7 +830,7 @@ } } }, - "/package/create": { + "/packing_list/package/create": { "post": { "tags": [ "Package" @@ -893,7 +897,7 @@ "description": "Quantity", "required": true, "type": "integer" - }, + } ], "responses": { "200": { @@ -920,7 +924,7 @@ } } }, - "/package/list": { + "/packing_list/package/list": { "get": { "tags": [ "Package" @@ -968,7 +972,7 @@ } } }, - "/package/{id}/show": { + "/packing_list/package/{id}/show": { "get": { "tags": [ "Package" @@ -1013,7 +1017,7 @@ } } }, - "/package/update/{id}": { + "/packing_list/package/update/{id}": { "put": { "tags": [ "Package" @@ -1087,7 +1091,7 @@ "description": "Status", "required": true, "type": "integer" - }, + } ], "responses": { "200": { @@ -1114,7 +1118,7 @@ } } }, - "/package/delete/{id}": { + "/packing_list/package/delete/{id}": { "delete": { "tags": [ "Package" @@ -1159,7 +1163,7 @@ } } }, - "/package/item/create": { + "/packing_list/package/item/create": { "post": { "tags": [ "Package" @@ -1219,7 +1223,7 @@ "description": "Total", "required": true, "type": "number" - }, + } ], "responses": { "200": { @@ -1246,7 +1250,7 @@ } } }, - "/package/item/list": { + "/packing_list/package/item/list": { "get": { "tags": [ "Package" @@ -1294,7 +1298,7 @@ } } }, - "/package/item/{id}/show": { + "/packing_list/package/item/{id}/show": { "get": { "tags": [ "Package" @@ -1339,7 +1343,7 @@ } } }, - "/package/item/update/{id}": { + "/packing_list/package/item/update/{id}": { "put": { "tags": [ "Package" @@ -1406,7 +1410,7 @@ "description": "Status", "required": true, "type": "integer" - }, + } ], "responses": { "200": { @@ -1433,7 +1437,7 @@ } } }, - "/package/item/delete/{id}": { + "/packing_list/package/item/delete/{id}": { "delete": { "tags": [ "Package" @@ -1490,7 +1494,7 @@ "summary": "Create transport", "description": "", "parameters": [ - { + { "name": "container_id", "in": "query", "description": "Container Id", @@ -1697,7 +1701,7 @@ "description": "Status", "required": true, "type": "integer" - }, + } ], "responses": { "200": { @@ -2294,9 +2298,9 @@ "description": "", "parameters": [ { - "name": "company_module_id", + "name": "company_id", "in": "query", - "description": "Company Module ID", + "description": "Company ID", "required": true, "type": "integer" }, From d23b59b8e906ee31228d2cb2b7a8b624202b4a0c Mon Sep 17 00:00:00 2001 From: edmondlang Date: Wed, 8 Sep 2021 16:44:24 +0800 Subject: [PATCH 24/98] payment and billing ui --- .../elements/PaymentsBillingComponents.vue | 131 ++++++++++++++++++ .../pages/templates/paymentsBilling.blade.php | 128 +++++++++++++++++ resources/views/partials/menu.blade.php | 2 +- routes/web.php | 6 +- 4 files changed, 265 insertions(+), 2 deletions(-) create mode 100644 resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue create mode 100644 resources/views/pages/templates/paymentsBilling.blade.php diff --git a/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue b/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue new file mode 100644 index 00000000..86535a80 --- /dev/null +++ b/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue @@ -0,0 +1,131 @@ + + diff --git a/resources/views/pages/templates/paymentsBilling.blade.php b/resources/views/pages/templates/paymentsBilling.blade.php new file mode 100644 index 00000000..f8a7719d --- /dev/null +++ b/resources/views/pages/templates/paymentsBilling.blade.php @@ -0,0 +1,128 @@ +@extends('layouts.base_portal') +@section('inner_content') +
+
+
+
+
+
+
+
+
+
+ +
+
+
Invoice No
+
+
+
Invoice Date
+
+
+
Status
+
+
+
Amount
+
+ +
+
+
+
+
+ + + +
+
+
+
+
+
+
Payment Summary
+
+
+
+
+
+ +
+
+
+
2 Invoice Selected
+
+
+
+
+
+
+
x1
+
+
+
lorem ipsum
+
+
+
52x62x635 CM
+
+
+
+
+
x1
+
+
+
lorem ipsum
+
+
+
52x62x635 CM
+
+
+
+
+
+
+
+
Shipping Fee
+
+
+
RM 212.15
+
+
+
+
+
Serrvice Fee
+
+
+
RM 41.25
+
+
+
+
+
Discount
+
+
+
RM 0.00
+
+
+
+
+
+
Total Payments
+
+
+
RM 3300.00
+
+
+
+
+
+
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 73f727b9..4a122b0a 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -82,7 +82,7 @@ style=" fill:#000000;">
-
Payments & Billing
+
Payments & Billing
diff --git a/routes/web.php b/routes/web.php index b1370bfe..f2180626 100644 --- a/routes/web.php +++ b/routes/web.php @@ -80,4 +80,8 @@ Route::get('/test', function(){ $address->street_two = (new \App\Classes\Modules\Addresses\Services\CleansOldAddress())->cleanAddress($address->street_two, $address->district, $address->postcode); $address->save(); } -})->name('test'); \ No newline at end of file +})->name('test'); + +Route::get('/payments-and-billing', function () { + return view('pages.templates.paymentsBilling'); +})->name('payments-and-billing'); \ No newline at end of file From f6115c40123a736a67c67cb9021fe9c5a8be2118 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Wed, 8 Sep 2021 16:56:54 +0800 Subject: [PATCH 25/98] hide container in menu --- resources/views/partials/menu.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 61420e0b..744454ef 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -52,7 +52,7 @@
Arrived Parcels
-
+
Date: Wed, 8 Sep 2021 19:06:58 +0800 Subject: [PATCH 26/98] add delivery address to warehouse list --- .../orders/elements/ParcelComponent.vue | 30 ++++++++++++------- .../views/pages/warehouse_list.blade.php | 2 +- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/resources/assets/vue/components/orders/elements/ParcelComponent.vue b/resources/assets/vue/components/orders/elements/ParcelComponent.vue index 822534b2..c9fcdfdb 100644 --- a/resources/assets/vue/components/orders/elements/ParcelComponent.vue +++ b/resources/assets/vue/components/orders/elements/ParcelComponent.vue @@ -38,6 +38,22 @@
+
+
+

Description

+
+
+

{{item.description}}

+
+
+
+
+

Tracking Number:

+
+
+

{{item.transport.tracking_number}}

+
+

Marking

@@ -54,20 +70,12 @@

{{item.order.reference}}

-
+
-

Description

+

Delivery Address

-

{{item.description}}

-
-
-
-
-

Tracking Number:

-
-
-

{{item.transport.tracking_number}}

+

{{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/views/pages/warehouse_list.blade.php b/resources/views/pages/warehouse_list.blade.php index 96456aaf..257bf7b8 100644 --- a/resources/views/pages/warehouse_list.blade.php +++ b/resources/views/pages/warehouse_list.blade.php @@ -1,7 +1,7 @@ @extends('layouts.base_portal') @section('inner_content')
-
+
\ No newline at end of file diff --git a/resources/assets/vue/general/mixins/accounts/validation/inviteRegistrationFormValidation.js b/resources/assets/vue/general/mixins/accounts/validation/inviteRegistrationFormValidation.js new file mode 100644 index 00000000..7879ff6d --- /dev/null +++ b/resources/assets/vue/general/mixins/accounts/validation/inviteRegistrationFormValidation.js @@ -0,0 +1,27 @@ +import { required, email, numeric, sameAs, requiredUnless, requiredIf } from "vuelidate/lib/validators"; +import authenticationHandler from '../authenticationHandler' +export default { + validations: { + parameters: { + name: { + required: required + }, + email: { + required: required, + email + }, + phone: { + required: required, + numeric + }, + password: { + required: required, + }, + password_confirmation: { + required: required, + sameAs: sameAs('password') + } + } + }, + mixins: [authenticationHandler] +} \ No newline at end of file diff --git a/resources/assets/vue/general/mixins/guards.js b/resources/assets/vue/general/mixins/guards.js index 18681e5d..ffa96e7d 100644 --- a/resources/assets/vue/general/mixins/guards.js +++ b/resources/assets/vue/general/mixins/guards.js @@ -5,7 +5,10 @@ export default { (this.$store.getters.isAuthenticated && !this.isProtectedRoute()&& this.isWithTokenRoute()) ? window.location.href = this.route('dashboard') : ''; }, isProtectedRoute(){ - const unprotectedRoutes = [this.route('login'), this.route('account.email.verification')]; + const unprotectedRoutes = [this.route('login'), this.route('account.email.verification'), this.route('company.claim')]; + if(window.location.href.indexOf(this.route('company.claim')) === 0) { + return false; + } return !unprotectedRoutes.includes(window.location.href); }, isWithTokenRoute(){ diff --git a/resources/assets/vue/general/mixins/stepNavi.js b/resources/assets/vue/general/mixins/stepNavi.js deleted file mode 100644 index a3c05a0d..00000000 --- a/resources/assets/vue/general/mixins/stepNavi.js +++ /dev/null @@ -1,22 +0,0 @@ -export default { - methods: { - changeStep(direction) { - this.status.direction = direction; - - if (direction === 'next') { - - if (this.validate()) { - //this.step += 1; - this.status.email = this.parameters.email; - this.$emit('updateStatus', this.status); - } - return; - } - this.$emit('updateStatus', this.status); - this.$v.$reset(); - }, - }, - beforeDestroy: function (event) { - }, - -} \ No newline at end of file diff --git a/resources/views/pages/accounts/claim_business.blade.php b/resources/views/pages/accounts/claim_business.blade.php new file mode 100644 index 00000000..645b8e5f --- /dev/null +++ b/resources/views/pages/accounts/claim_business.blade.php @@ -0,0 +1,23 @@ +@extends('layouts.base_login') + +@section('inner_content') +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+
+
+@endsection \ No newline at end of file diff --git a/routes/account.php b/routes/account.php index 7a9e08df..ff6a9960 100644 --- a/routes/account.php +++ b/routes/account.php @@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route; Route::group(['prefix' => 'account', 'namespace' => 'Accounts', 'as' => 'account.'], function () { Route::post('/registration', 'CreateCustomerController@create')->name('registration.register'); + Route::post('/invite/registration', 'CreateInvitedCustomerController@create')->name('registration.invite.register'); Route::group(['prefix' => 'authentication', 'as' => 'authentication.'], function () { Route::group(['prefix' => 'login', 'as' => 'authenticate.'], function () { diff --git a/routes/web.php b/routes/web.php index 2eb2bcbb..0e1b6593 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,6 +6,7 @@ use App\Classes\Jobs\FetchLoadedContainersFromVTPortalJob; use App\Classes\Jobs\FetchPackingListFromVTPortalJob; use App\Classes\Jobs\FetchWarehouseReceiveListFromVTPortalJob; use App\Models\CompanyConnection; +use Illuminate\Support\Facades\Crypt; use Illuminate\Support\Facades\Route; /* @@ -21,9 +22,9 @@ use Illuminate\Support\Facades\Route; require __DIR__ . '/template.php'; -Route::get('/', function () { - return view('welcome'); -}); +Route::get('', function () { + return view('pages.accounts.login'); +})->name('login'); Route::group(['prefix' => 'swagger'], function () { Route::get('/', function () { @@ -34,9 +35,9 @@ Route::group(['prefix' => 'swagger'], function () { }); }); -Route::get('', function () { - return view('pages.accounts.login');//temporary showing welcome page. -})->name('login'); +Route::get('/business/claim/{hash}', function ($hash) { + return view('pages.accounts.claim_business', ['id' => Crypt::decryptString($hash)]); +})->name('company.claim'); Route::get('/account/email/verification/{token}', function ($token) { return view('pages.accounts.email_verified', ['token' => $token]); From a8e26c4dd6bd2f81ce29b63c5f7368d1c4a53100 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Wed, 22 Sep 2021 14:20:50 +0800 Subject: [PATCH 88/98] invitation link registration --- .../components/companies/elements/CustomerProfileComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index b0e28553..b68875d3 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -41,7 +41,7 @@
-
Account Owner
+
Email Address
{{item.employee.email}}
From 8039446db56715f6686b29b352081d5784801e6d Mon Sep 17 00:00:00 2001 From: omair saleh Date: Wed, 22 Sep 2021 14:57:29 +0800 Subject: [PATCH 89/98] tooltip for copying invitation link --- .../companies/elements/CustomerProfileComponent.vue | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue index b68875d3..af3e0e7c 100644 --- a/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue +++ b/resources/assets/vue/components/companies/elements/CustomerProfileComponent.vue @@ -112,7 +112,7 @@
Claimed
-
+
Invitation Link
@@ -126,9 +126,16 @@ import componentHandler from '../../../general/mixins/componentHandler'; export default { methods: { - copyUrl() { + copyUrl(event) { this.$refs.invitationLink.select(); document.execCommand('copy'); + + $(this.$refs.copyButton).tooltip({ + title: 'Url Copied To Clipboard!', + placement: 'left', + delay: 1000 + }); + $(this.$refs.copyButton).tooltip('show'); } }, mixins: [componentHandler] From 9719f1da778adbf217dc1d8cf0c854d882c4125f Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 23 Sep 2021 18:34:53 +0800 Subject: [PATCH 90/98] show container total cbm --- app/Http/Resources/ContainerResource.php | 3 ++- .../vue/components/containers/elements/ContainerComponent.vue | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/ContainerResource.php b/app/Http/Resources/ContainerResource.php index 774ada84..bc6337cc 100644 --- a/app/Http/Resources/ContainerResource.php +++ b/app/Http/Resources/ContainerResource.php @@ -2,6 +2,7 @@ namespace App\Http\Resources; +use App\Classes\ValueObjects\Constants\ContainerTypes; use Illuminate\Http\Resources\Json\JsonResource; class ContainerResource extends JsonResource @@ -17,7 +18,7 @@ class ContainerResource extends JsonResource return [ 'id' => $this->id, 'container_reference' => $this->reference, - 'container_type' => $this->container_type, + 'container_specification' => ContainerTypes::CONTAINER_SPECIFICATION[$this->container_type], 'container_number' => $this->container_number, 'seal_reference' => $this->seal_reference, 'transport' => new TransportResource($this->transports()->first()), diff --git a/resources/assets/vue/components/containers/elements/ContainerComponent.vue b/resources/assets/vue/components/containers/elements/ContainerComponent.vue index e8af2c65..d02e69a6 100644 --- a/resources/assets/vue/components/containers/elements/ContainerComponent.vue +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -22,6 +22,10 @@

ETA

{{item.transport ? item.transport.current_schedule.eta : 'n/a'}}

+
+

Loaded CBM

+

{{ (Math.ceil((item.packing_lists.reduce((total, obj) => total + obj.packages.reduce((total, obj) => obj.cbm + total, 0), 0)) * 1000) / 1000).toFixed(3) }}

+

Status

{{item.status === 3 ? 'Un-stuffed' : 'In Progress'}}

From 09f598ffe53104c3e715dde6dc39d441620e1327 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 23 Sep 2021 18:35:58 +0800 Subject: [PATCH 91/98] show container total cbm --- .../vue/components/containers/elements/ContainerComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/assets/vue/components/containers/elements/ContainerComponent.vue b/resources/assets/vue/components/containers/elements/ContainerComponent.vue index d02e69a6..6ab36156 100644 --- a/resources/assets/vue/components/containers/elements/ContainerComponent.vue +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -22,7 +22,7 @@

ETA

{{item.transport ? item.transport.current_schedule.eta : 'n/a'}}

-
+

Loaded CBM

{{ (Math.ceil((item.packing_lists.reduce((total, obj) => total + obj.packages.reduce((total, obj) => obj.cbm + total, 0), 0)) * 1000) / 1000).toFixed(3) }}

From ed637739cc06d8591e058ec7cd27f3a997ac89b1 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Mon, 27 Sep 2021 09:48:00 +0800 Subject: [PATCH 92/98] Inbound custom cleared --- .../Processors/CreateOrderRolesProcessor.php | 1 + .../Containers/InboundCustomClearedLogic.php | 66 +++++++++++ .../FetchInboundCustomClearedProcessor.php | 105 ++++++++++++++++++ .../InboundCustomClearedController.php | 20 ++++ resources/views/swagger/json.blade.php | 50 ++++++++- routes/packing_list.php | 2 + 6 files changed, 243 insertions(+), 1 deletion(-) create mode 100644 app/Classes/Modules/PackingLists/ControllersLogic/Containers/InboundCustomClearedLogic.php create mode 100644 app/Classes/Modules/PackingLists/Processors/FetchInboundCustomClearedProcessor.php create mode 100644 app/Http/Controllers/PackingLists/Containers/InboundCustomClearedController.php diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php index 0d4b1860..24495752 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php @@ -79,6 +79,7 @@ class CreateOrderRolesProcessor $roleObject = new OrderRoleObject($order, $destinationWarehouse, OrderRoleTypes::DESTINATION_WAREHOUSE); $this->createsOrderRole->execute($roleObject); + $roleObject = new OrderRoleObject($order, $freightForwarder, OrderRoleTypes::LAST_MILE_DELIVERY_DRIVER); $this->createsOrderRole->execute($roleObject); diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/InboundCustomClearedLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/InboundCustomClearedLogic.php new file mode 100644 index 00000000..1df92ffa --- /dev/null +++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/InboundCustomClearedLogic.php @@ -0,0 +1,66 @@ + 'Retrieved Containers', + 'message' => 'You have successfully retrieved a list of Containers' + ]; + } + + /** @var CanListContainers */ + private $canListContainers; + + /** @var ListsContainers */ + private $listsContainers; + + private $fetchInboundCustomCleared; + + /** + * ListContainersLogic constructor. + * @param CanListContainers $canListContainers + * @param ListsContainers $listsContainers + */ + public function __construct(CanListContainers $canListContainers, ListsContainers $listsContainers, FetchInboundCustomClearedProcessor $fetchInboundCustomCleared) + { + $this->canListContainers = $canListContainers; + $this->listsContainers = $listsContainers; + $this->fetchInboundCustomCleared = $fetchInboundCustomCleared; + } + + + /** + * @param Request $request + * @return JsonResponse + * @throws ErrorException + */ + public function logic(Request $request) : JsonResponse + { + //$this->canListOrders->passes(); + + //$query = $this->listsOrders->execute(array_merge($this->listsOrders->deserializeFilters($request->input('filters')), ['with_parcels' => true])); + + $d = $this->fetchInboundCustomCleared->execute(); + + return response()->json($d); + + } +} diff --git a/app/Classes/Modules/PackingLists/Processors/FetchInboundCustomClearedProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchInboundCustomClearedProcessor.php new file mode 100644 index 00000000..b4ea6395 --- /dev/null +++ b/app/Classes/Modules/PackingLists/Processors/FetchInboundCustomClearedProcessor.php @@ -0,0 +1,105 @@ +fetchesDataFRomVTPortal = $fetchesDataFRomVTPortal; + $this->createsTransport = $createsTransport; + $this->createsSchedule = $createsSchedule; + $this->updatesContractObligations = $updatesContractObligations; + } + + + /** + * @return array + */ + public function execute(){ + + $packingLists = PackingList::query()->with(['steps' => function ($query) { + $query->where('steps.status', '<>', 3); + }])->first(); + dd($packingLists); + /* + $packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST) + ->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::SUSPENDED])->get(); + + foreach($packingLists as $packingList){ + 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":"CreatedOn asc","Filter":'.$filter.'}}'), ''); + + $shippingPackingLists = $this->fetchesDataFRomVTPortal->getResponseBody($shippingPackingListsRequest); + + $shippingPackingList = $shippingPackingLists->Rows[0]; + + if(!$shippingPackingList[9] && !$shippingPackingList[10]) { + continue; + } + + $packingList->status = ApprovalStatus::COMPLETED; + $packingList->save(); + + $deliveryDate = Carbon::parse($shippingPackingList[9] ? $shippingPackingList[9]:$shippingPackingList[10]); + $transportObject = new TransportObject(TransportType::LAND, null, null, $deliveryDate, $deliveryDate, ApprovalStatus::APPROVED); + $transport = $this->createsTransport->execute($transportObject, $packingList); + $this->createsSchedule->execute($transport, new ScheduleObject($deliveryDate, $deliveryDate, ApprovalStatus::APPROVED)); + + $deliveryStep = $packingList->steps()->where('reference', '=', 'LAST_MILE_DELIVERY')->first(); + $signature = $packingList->owner->orderRoles()->where('role_id', '=', OrderRoleTypes::SUPERVISOR)->first()->appointee->entity_sigiture; + $this->updatesContractObligations->execute($signature, $deliveryStep->obligation_hash_id); + $deliveryStep->update(['status' => ApprovalStatus::COMPLETED]); + + } catch (GuzzleException $exception) { + continue; + } + + }*/ + + + return []; + + } + + +} diff --git a/app/Http/Controllers/PackingLists/Containers/InboundCustomClearedController.php b/app/Http/Controllers/PackingLists/Containers/InboundCustomClearedController.php new file mode 100644 index 00000000..303ea5dc --- /dev/null +++ b/app/Http/Controllers/PackingLists/Containers/InboundCustomClearedController.php @@ -0,0 +1,20 @@ +execute($request); + } + +} diff --git a/resources/views/swagger/json.blade.php b/resources/views/swagger/json.blade.php index 4fa056ef..cd4df686 100644 --- a/resources/views/swagger/json.blade.php +++ b/resources/views/swagger/json.blade.php @@ -107,6 +107,54 @@ } } }, + "/packing_list/container/inbound-custom-cleared": { + "get": { + "tags": [ + "Packing" + ], + "produces": [ + "application/json" + ], + "operationId": "listPackingIn", + "summary": "List packing", + "description": "", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Filters", + "required": false, + "type": "array", + "items": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "successful operation", + "headers": { + "X-Expires-After": { + "type": "string", + "format": "date-time", + "description": "date in UTC when token expires" + }, + "X-Rate-Limit": { + "type": "integer", + "format": "int32", + "description": "calls per hour allowed by the user" + } + }, + "schema": { + "type": "string" + } + }, + "422": { + "description": "Invalid input supplied" + } + } + } + }, "/packing_list/list": { "get": { "tags": [ @@ -2982,7 +3030,7 @@ } } }, - "/account/registration/registration": { + "/account/registration": { "post": { "tags": [ "Account", diff --git a/routes/packing_list.php b/routes/packing_list.php index ea64c7e1..11fc87ec 100644 --- a/routes/packing_list.php +++ b/routes/packing_list.php @@ -16,6 +16,8 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' = Route::post('/create', 'CreateContainerController@create')->name('create'); Route::put('/update/{id}', 'UpdateContainerController@update')->name('update'); Route::delete('/delete/{id}', 'DeleteContainerController@delete')->name('delete'); + + Route::get('/inbound-custom-cleared', 'InboundCustomClearedController@list')->name('list.inbound.custom.cleared'); }); Route::group(['namespace' => 'Packages', 'as' => 'package.', 'prefix' => 'package'], function () { From 27684a29408c55c0beca94d0089ff069d33edd26 Mon Sep 17 00:00:00 2001 From: Fairuz Date: Mon, 27 Sep 2021 11:06:38 +0800 Subject: [PATCH 93/98] Changes to inline report --- .../Processors/FetchPackingListProcessor.php | 5 +++-- .../Reports/ControllersLogic/CustomcClearanceLogic.php | 3 ++- .../Reports/CustomcClearanceReportController.php | 3 ++- .../containers/elements/ContainerComponent.vue | 10 +++++++++- resources/views/layouts/base_portal.blade.php | 9 +-------- routes/web.php | 2 ++ 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/app/Classes/Modules/PackingLists/Processors/FetchPackingListProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchPackingListProcessor.php index b128aeed..508e2293 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchPackingListProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchPackingListProcessor.php @@ -33,14 +33,15 @@ class FetchPackingListProcessor * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\RequestValidationException */ - public function execute(){ + public function execute($params){ $packingLists = PackingList::where('type', '=', PackingListType::SHIPPING_PACKING_LIST) ->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::SUSPENDED]) ->whereDoesntHave('containers', function($query){ $query->where('status', '=', ApprovalStatus::COMPLETED); - })->orderBy('created_at','desc')->limit(5)->get(); + })->orderBy('created_at','desc')->where('owner_id',$params['orderId'])->get(); + //dd($packingLists); $packingListsArray=[]; foreach($packingLists as $packingList){ diff --git a/app/Classes/Modules/Reports/ControllersLogic/CustomcClearanceLogic.php b/app/Classes/Modules/Reports/ControllersLogic/CustomcClearanceLogic.php index 5557c185..c7fa2c0d 100644 --- a/app/Classes/Modules/Reports/ControllersLogic/CustomcClearanceLogic.php +++ b/app/Classes/Modules/Reports/ControllersLogic/CustomcClearanceLogic.php @@ -25,7 +25,8 @@ class CustomcClearanceLogic extends AbstractControllerLogic public function logic(Request $request) : JsonResponse { - $packingLists = $this->listsPackingListProcessor->execute(); + $params = $request->all(); + $packingLists = $this->listsPackingListProcessor->execute($params); $excelExportLogic = new ExportExcelLogic(collect($packingLists)); $this->excelExportLogic = $excelExportLogic; diff --git a/app/Http/Controllers/Reports/CustomcClearanceReportController.php b/app/Http/Controllers/Reports/CustomcClearanceReportController.php index e7d24ff0..061f4a0b 100644 --- a/app/Http/Controllers/Reports/CustomcClearanceReportController.php +++ b/app/Http/Controllers/Reports/CustomcClearanceReportController.php @@ -9,7 +9,8 @@ use Maatwebsite\Excel\Facades\Excel; class CustomcClearanceReportController { - public function download(Request $request, CustomcClearanceLogic $customClearancelogic) { + public function download(int $orderId, Request $request, CustomcClearanceLogic $customClearancelogic) { + $request->merge(['orderId' => $orderId]); $filename = date("Y-m-d H:i:s")." - Custom cleared report "; $customClearancelogic->logic($request); return Excel::download( $customClearancelogic->getExcelCollection(), $filename.'.xlsx'); diff --git a/resources/assets/vue/components/containers/elements/ContainerComponent.vue b/resources/assets/vue/components/containers/elements/ContainerComponent.vue index e8af2c65..a6e53001 100644 --- a/resources/assets/vue/components/containers/elements/ContainerComponent.vue +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -61,6 +61,14 @@
Release
Hold
+
@@ -96,4 +104,4 @@ }, mixins: [componentHandler] } - \ 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 c12f1e3e..96025829 100644 --- a/resources/views/layouts/base_portal.blade.php +++ b/resources/views/layouts/base_portal.blade.php @@ -23,14 +23,7 @@
Refresh Orders
diff --git a/routes/web.php b/routes/web.php index ca3457bc..f4d71a9c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -109,6 +109,8 @@ Route::get('/order/{id}/download', 'Orders\DownloadOrderQrPdfController@download Route::get('/report/customclearance', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance'); +Route::get('/report/customclearance/{orderid}', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance'); + //Route::get('/test', function(){ // $addresses = \App\Models\Address::all(); // foreach ($addresses as $address){ From aa39adaeb8907fd1be37aef104e10cf4fb7585c9 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 27 Sep 2021 16:43:29 +0800 Subject: [PATCH 94/98] clean web routes --- routes/web.php | 9 --------- 1 file changed, 9 deletions(-) diff --git a/routes/web.php b/routes/web.php index 665b7297..9d7fc0a7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -108,15 +108,6 @@ Route::get('/deliveries/refresh', function(){ 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('/payments-and-billing', function () { return view('pages.templates.paymentsBilling'); })->name('payments-and-billing'); \ No newline at end of file From 09a3654e2fd73b83267974e754ecf82f2ab71cc7 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Mon, 27 Sep 2021 17:05:58 +0800 Subject: [PATCH 95/98] add packing list inbound custom route --- routes/packing_list.php | 1 + 1 file changed, 1 insertion(+) diff --git a/routes/packing_list.php b/routes/packing_list.php index aa25028d..4eb27ddf 100644 --- a/routes/packing_list.php +++ b/routes/packing_list.php @@ -26,6 +26,7 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' = Route::post('/create', 'CreatePackageController@create')->name('create'); Route::put('/update/{id}', 'UpdatePackageController@update')->name('update'); Route::delete('/delete/{id}', 'DeletePackageController@delete')->name('delete'); + Route::get('/inbound-custom-cleared', 'InboundCustomClearedController@list')->name('list.inbound.custom.cleared'); Route::put('/switch-packing-list/{id}', 'SwitchPackagePackingListController@switch')->name('switch.packing_list'); Route::group(['namespace' => 'PackageItems', 'prefix' => 'item', 'as' => 'item.'], function () { From 2c3ea9e3f1e0892ec039c1c390465135a7e26751 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 28 Sep 2021 13:23:56 +0800 Subject: [PATCH 96/98] order component address tooltip layout fixes --- .../orders/elements/OrderComponent.vue | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/resources/assets/vue/components/orders/elements/OrderComponent.vue b/resources/assets/vue/components/orders/elements/OrderComponent.vue index c3104ca9..2262d768 100644 --- a/resources/assets/vue/components/orders/elements/OrderComponent.vue +++ b/resources/assets/vue/components/orders/elements/OrderComponent.vue @@ -2,7 +2,7 @@
-
+ -
+
Order No. @@ -28,8 +28,20 @@
- Delivery Address -
{{item.address.reference}}
+
+
+ Delivery Address +
+
+
+
+
{{item.address.reference}}
+
+
+
+ +
+
From 943f5ce64ee0be41500234f64dccbc30469653e0 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 28 Sep 2021 13:24:29 +0800 Subject: [PATCH 97/98] add custom clearance routes --- routes/web.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/routes/web.php b/routes/web.php index 68121d43..01bc8f9a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -118,6 +118,10 @@ Route::get('/deliveries/refresh', function(){ Route::get('/order/{id}/download', 'Orders\DownloadOrderQrPdfController@download')->name('order.qr.download'); +Route::get('/report/customclearance', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance'); + +Route::get('/report/customclearance/{orderid}', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance'); + Route::get('/payments-and-billing', function () { return view('pages.templates.paymentsBilling'); })->name('payments-and-billing'); From 8e9db507f6a63c08f26a7f722a70a997fb6a605c Mon Sep 17 00:00:00 2001 From: omair saleh Date: Tue, 28 Sep 2021 15:55:24 +0800 Subject: [PATCH 98/98] fix template routes, and hide report button temp --- .../containers/elements/ContainerComponent.vue | 2 +- resources/views/partials/menu.blade.php | 4 ++-- routes/web.php | 17 ++++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/resources/assets/vue/components/containers/elements/ContainerComponent.vue b/resources/assets/vue/components/containers/elements/ContainerComponent.vue index 694efdac..4b6ba607 100644 --- a/resources/assets/vue/components/containers/elements/ContainerComponent.vue +++ b/resources/assets/vue/components/containers/elements/ContainerComponent.vue @@ -68,7 +68,7 @@
Release
Hold
-
+
diff --git a/resources/views/partials/menu.blade.php b/resources/views/partials/menu.blade.php index 8986d034..0d7693a5 100644 --- a/resources/views/partials/menu.blade.php +++ b/resources/views/partials/menu.blade.php @@ -93,7 +93,7 @@ style=" fill:#000000;">
@@ -115,7 +115,7 @@ style=" fill:#000000;">
diff --git a/routes/web.php b/routes/web.php index 01bc8f9a..2e98d3c8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -104,10 +104,6 @@ Route::get('/containers/refresh', function(){ })->name('containers.refresh'); -Route::get('/shipping-queue', function () { - return view('pages.templates.shippingQueue'); -})->name('shipping-queue'); - Route::get('/deliveries/refresh', function(){ FetchDeliveryListFromVTPortalJob::dispatch(); @@ -122,6 +118,13 @@ Route::get('/report/customclearance', 'Reports\CustomcClearanceReportController@ Route::get('/report/customclearance/{orderid}', 'Reports\CustomcClearanceReportController@download')->name('report.customclearance'); -Route::get('/payments-and-billing', function () { - return view('pages.templates.paymentsBilling'); -})->name('payments-and-billing'); +Route::group(['prefix' => 'template', 'as' => 'template.'], function () { + Route::get('/payments-and-billing', function () { + return view('pages.templates.paymentsBilling'); + })->name('payments-and-billing'); + + Route::get('/shipping-queue', function () { + return view('pages.templates.shippingQueue'); + })->name('shipping-queue'); +}); +