diff --git a/app/Classes/General/Eloquent/Filters/WithOwner.php b/app/Classes/General/Eloquent/Filters/WithOwner.php
new file mode 100644
index 00000000..7d31691e
--- /dev/null
+++ b/app/Classes/General/Eloquent/Filters/WithOwner.php
@@ -0,0 +1,20 @@
+with('owner');
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php
index ff78145e..0b469fd1 100644
--- a/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php
+++ b/app/Classes/Modules/Orders/ControllersLogic/ApproveChangeOrderAddressLogic.php
@@ -4,6 +4,7 @@ namespace App\Classes\Modules\Orders\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Orders\Processors\ApproveChangeOrderAddressProcessor;
+use App\Http\Resources\AddressResource;
use App\Http\Resources\OrderResource;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
@@ -36,8 +37,8 @@ class ApproveChangeOrderAddressLogic extends AbstractControllerLogic
public function logic(Request $request): JsonResponse
{
- $order = $this->approveChangeOrderAddressProcessor->execute($request);
+ $address = $this->approveChangeOrderAddressProcessor->execute($request);
- return $this->resourceResponse(new OrderResource($order));
+ return $this->resourceResponse(new AddressResource($address));
}
}
diff --git a/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php b/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php
index 423d8ce5..fbd84f90 100644
--- a/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php
+++ b/app/Classes/Modules/Orders/Processors/ApproveChangeOrderAddressProcessor.php
@@ -2,9 +2,8 @@
namespace App\Classes\Modules\Orders\Processors;
+use App\Classes\Modules\Addresses\Services\FetchesAddress;
use App\Classes\Modules\Orders\Standards\Rules\CanApproveChangeOrderAddress;
-use App\Classes\Modules\Orders\Services\FetchesOrder;
-use App\Classes\Modules\Addresses\Services\DeletesAddress;
use App\Classes\Modules\Orders\Services\UpdatesOrdersAddress;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
@@ -15,39 +14,48 @@ class ApproveChangeOrderAddressProcessor
/** @var CanApproveChangeOrderAddress */
private $canApproveChangeOrderAddress;
- /** @var FetchesOrder */
- private $fetchesOrder;
+ /** @var FetchesAddress */
+ private $fetchesAddress;
/** @var UpdatesOrdersAddress */
private $updatesOrdersAddress;
- /** @var DeletesAddress */
- private $deletesAddress;
-
/**
- * CreateOrderProcessor constructor.
+ * ApproveChangeOrderAddressProcessor constructor.
* @param CanApproveChangeOrderAddress $canApproveChangeOrderAddress
- * @param FetchesOrder $fetchesOrder
- * @param DeletesAddress $deletesAddress
+ * @param FetchesAddress $fetchesAddress
* @param UpdatesOrdersAddress $updatesOrdersAddress
*/
- public function __construct(CanApproveChangeOrderAddress $canApproveChangeOrderAddress, FetchesOrder $fetchesOrder, DeletesAddress $deletesAddress, UpdatesOrdersAddress $updatesOrdersAddress)
+ public function __construct(CanApproveChangeOrderAddress $canApproveChangeOrderAddress, FetchesAddress $fetchesAddress, UpdatesOrdersAddress $updatesOrdersAddress)
{
$this->canApproveChangeOrderAddress = $canApproveChangeOrderAddress;
- $this->fetchesOrder = $fetchesOrder;
- $this->deletesAddress = $deletesAddress;
+ $this->fetchesAddress = $fetchesAddress;
$this->updatesOrdersAddress = $updatesOrdersAddress;
}
+ /**
+ * @param Request $request
+ * @return mixed
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
public function execute(Request $request)
{
+
+ $status = (int) $request->route('status');
+
$this->canApproveChangeOrderAddress->passes();
- $order = $this->fetchesOrder->execute(['id' => $request->get('order_id')]);
- $this->deletesAddress->execute($order->addressesApproved->first());
- $this->updatesOrdersAddress->execute($order->addressesPendingVerification->first(), ApprovalStatus::APPROVED);
+ $address = $this->fetchesAddress->execute(['id' => $request->route('id')]);
- return $order;
+ if($status === ApprovalStatus::APPROVED){
+ $address->owner->addresses()->update(['status' => ApprovalStatus::EXPIRED]);
+ }
+
+ $this->updatesOrdersAddress->execute($address, $status);
+
+ return $address;
}
}
diff --git a/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php b/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php
index 3ad6295a..352ce64d 100644
--- a/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php
+++ b/app/Classes/Modules/Orders/Services/UpdatesOrdersAddress.php
@@ -10,7 +10,8 @@ class UpdatesOrdersAddress extends AbstractUpdateRecord
/**
* @param Address $address
* @param int $type
- * @return void
+ * @return \Illuminate\Database\Eloquent\Model
+ * @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(Address $address, int $type)
{
diff --git a/app/Http/Resources/AddressResource.php b/app/Http/Resources/AddressResource.php
index 3b4c465b..b6903599 100644
--- a/app/Http/Resources/AddressResource.php
+++ b/app/Http/Resources/AddressResource.php
@@ -23,7 +23,8 @@ class AddressResource extends JsonResource
'state' => $this->state,
'post_code' => $this->postcode,
'country' => $this->country,
- 'default' => (int) $this->default
+ 'default' => (int) $this->default,
+ 'owner' => new OrderResource($this->whenLoaded('owner'))
];
}
}
diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php
index 91e1c4b5..390ca1ef 100644
--- a/app/Http/Resources/OrderResource.php
+++ b/app/Http/Resources/OrderResource.php
@@ -27,7 +27,7 @@ class OrderResource extends JsonResource
'status' => (int) $this->status,
'company_module' => new CompanyModuleResource($this->companyModule),
'warehouse' => new CompanyModuleResource($this->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee),
- 'address' => new AddressResource($this->addresses()->first()),
+ 'address' => new AddressResource($this->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first()),
'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()),
$this->mergeWhen($this->relationLoaded('parcels'), [
'origin_warehouse_packages' => PackageResource::collection($this->parcels()->whereHas('packingList', function($query){
diff --git a/resources/assets/sass/modules/_modals.scss b/resources/assets/sass/modules/_modals.scss
index 73272c57..1bafb1cd 100644
--- a/resources/assets/sass/modules/_modals.scss
+++ b/resources/assets/sass/modules/_modals.scss
@@ -269,7 +269,7 @@ body.modal-open {
box-shadow: none;
}
.modal-dialog {
- width: 600px;
+ width: 1140px;
}
.modal-sm {
width: 300px;
diff --git a/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue b/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue
deleted file mode 100644
index 9fbc94a1..00000000
--- a/resources/assets/vue/components/address/forms/DeleteAddressFormComponent.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-
- Are you Sure?
- Reject Address Change Request
+ Approve Address Change Request
+