diff --git a/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesLogic.php b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesLogic.php
index 7ae9e6ff..487f3861 100644
--- a/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesLogic.php
+++ b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesLogic.php
@@ -10,6 +10,10 @@ use App\Http\Resources\OrderPackagesBaseResource;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
+/**
+ * @deprecated This class is deprecated and should not be used.
+ * Use `FetchOrderPackagesV2Logic` instead or write a new one based on FetchOrderPackagesV2Logic
+ */
class FetchOrderPackagesLogic extends AbstractControllerLogic
{
diff --git a/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesV2Logic.php b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesV2Logic.php
new file mode 100644
index 00000000..61c8f6b4
--- /dev/null
+++ b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderPackagesV2Logic.php
@@ -0,0 +1,59 @@
+ 'Retrieved Order Packages',
+ 'message' => 'You have successfully retrieved an order packages'
+ ];
+ }
+
+ /** @var CanFetchOrder */
+ private $canFetchOrder;
+
+ /** @var FetchesOrder */
+ private $fetchesOrder;
+
+ /**
+ * FetchOrderPackagesV2Logic constructor.
+ * @param CanFetchOrder $canFetchOrder
+ * @param FetchesOrder $fetchesOrder
+ */
+ public function __construct(CanFetchOrder $canFetchOrder, FetchesOrder $fetchesOrder)
+ {
+ $this->canFetchOrder = $canFetchOrder;
+ $this->fetchesOrder = $fetchesOrder;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $this->canFetchOrder->passes();
+
+ $query = $this->fetchesOrder->execute(['reference' => $request->route('id'), 'with_packing_lists' => true]);
+
+ //Can refer FetchOrderPackagesLogic for different type of OrderPackages Resources
+ return $this->resourceResponse(new OrderPackagesReceivedResource($query));
+ }
+
+}
diff --git a/app/Http/Controllers/Orders/FetchOrderPackagesController.php b/app/Http/Controllers/Orders/FetchOrderPackagesController.php
index 2902887b..2d6193d3 100644
--- a/app/Http/Controllers/Orders/FetchOrderPackagesController.php
+++ b/app/Http/Controllers/Orders/FetchOrderPackagesController.php
@@ -6,6 +6,10 @@ use App\Classes\Modules\Orders\ControllersLogic\FetchOrderPackagesLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
+/**
+ * @deprecated This class is deprecated and should not be used.
+ * Use `FetchOrderPackagesV2Controller` instead or write a new one based on FetchOrderPackagesV2Controller
+ */
class FetchOrderPackagesController
{
/**
diff --git a/app/Http/Controllers/Orders/FetchOrderPackagesV2Controller.php b/app/Http/Controllers/Orders/FetchOrderPackagesV2Controller.php
new file mode 100644
index 00000000..03452b37
--- /dev/null
+++ b/app/Http/Controllers/Orders/FetchOrderPackagesV2Controller.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+}
diff --git a/app/Http/Resources/OrderPackagesBaseResource.php b/app/Http/Resources/OrderPackagesBaseResource.php
index a72eab31..c31177e6 100644
--- a/app/Http/Resources/OrderPackagesBaseResource.php
+++ b/app/Http/Resources/OrderPackagesBaseResource.php
@@ -11,6 +11,10 @@ use App\Models\Transaction;
use Carbon\Carbon;
use Illuminate\Http\Resources\Json\JsonResource;
+/**
+ * @deprecated This class is deprecated and should not be used.
+ * Use `OrderPackagesReceivedResource` instead or write a new one based on OrderPackagesReceivedResource
+ */
class OrderPackagesBaseResource extends JsonResource
{
/**
diff --git a/app/Http/Resources/OrderPackagesReceivedResource.php b/app/Http/Resources/OrderPackagesReceivedResource.php
new file mode 100644
index 00000000..a5667c9d
--- /dev/null
+++ b/app/Http/Resources/OrderPackagesReceivedResource.php
@@ -0,0 +1,31 @@
+packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('packages')->get();
+
+ return [
+ 'id' => $this->id,
+ 'reference' => $this->reference,
+ 'reference_contract' => (int) $this->type,
+ 'type' => (int) $this->type,
+ 'status' => (int) $this->status,
+ 'received_packages' => PackingListForPackagesReceivedResource::collection($received_packages),
+ 'created_at' => $this->created_at->format('d-m-Y')
+ ];
+ }
+}
diff --git a/app/Http/Resources/PackingListForPackagesReceivedResource.php b/app/Http/Resources/PackingListForPackagesReceivedResource.php
new file mode 100644
index 00000000..f54a3766
--- /dev/null
+++ b/app/Http/Resources/PackingListForPackagesReceivedResource.php
@@ -0,0 +1,50 @@
+user()->type, [RoleTypes::SHADOW_ADMIN, RoleTypes::SUPER_ADMIN]);
+
+ $data = [
+ 'id' => $this->id,
+ 'claimant_id' => $this->claimant_id,
+ 'reference' => $this->reference,
+ 'status' => $this->status,
+ 'transport' => new TransportResource($this->transports()->first()),
+ 'type' => $this->type,
+ 'container' => new ContainerResource($this->containers->first()),
+ $this->mergeWhen($this->owner instanceof Order, [
+ 'order' => New OrderResource($this->owner)
+ ]),
+ ];
+
+
+ $packages = !$this->packingLists()->exists() || $exceptionUsers ? $this->packages : $this->packingLists->first()->packages;
+ foreach ($packages as $item) {
+ $item['include_order'] = true;
+ $item['include_transport'] = true;
+ $item['include_container'] = false;
+ $item['include_packing_list_reference'] = true;
+ }
+ $data['packages'] = PackageBaseResource::collection($packages);
+
+ return $data;
+ }
+}
diff --git a/resources/assets/vue/components/orders/elements/OrderPackagesComponent.vue b/resources/assets/vue/components/orders/elements/OrderPackagesComponent.vue
new file mode 100644
index 00000000..ce49fbac
--- /dev/null
+++ b/resources/assets/vue/components/orders/elements/OrderPackagesComponent.vue
@@ -0,0 +1,110 @@
+
+ Parcels received at our warehouse Nothing To Show Here Yet!Received Parcels
+
Reference
@@ -197,7 +197,7 @@QTY
+Description
+{{item.description}}
+Reference
+ +{{item.width}} CM
+Width
+{{item.height}} CM
+Height
+{{item.length}} CM
+Length
+Total CBM
+You can trace and track all packages associated with this order number.
+Packinglist Reference
diff --git a/resources/assets/vue/components/tracking/sections/TrackingSectionComponent.vue b/resources/assets/vue/components/tracking/sections/TrackingSectionComponent.vue index ea4c34c8..f7c6f355 100644 --- a/resources/assets/vue/components/tracking/sections/TrackingSectionComponent.vue +++ b/resources/assets/vue/components/tracking/sections/TrackingSectionComponent.vue @@ -82,10 +82,11 @@ }, reset() { this.trackingNo = ''; + this.searchString = ''; delete(this.options['tracking_no']); this.currentKey+=1; this.showList = false; - window.history.replaceState({}, '', '/tracking'); + window.history.replaceState({}, '', '/order/tracking'); }, }, mixins: [componentHandler] diff --git a/resources/views/pages/orders/profile_v2.blade.php b/resources/views/pages/orders/profile_v2.blade.php index 7ffef202..f027b531 100644 --- a/resources/views/pages/orders/profile_v2.blade.php +++ b/resources/views/pages/orders/profile_v2.blade.php @@ -1,4 +1,4 @@ @extends('layouts.base_portal') @section('inner_content') -