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