diff --git a/app/Classes/General/Eloquent/Filters/CompanyModuleId.php b/app/Classes/General/Eloquent/Filters/CompanyModuleId.php
new file mode 100644
index 00000000..c0d3adee
--- /dev/null
+++ b/app/Classes/General/Eloquent/Filters/CompanyModuleId.php
@@ -0,0 +1,20 @@
+where('company_module_id', $value);
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/General/Eloquent/Filters/HasBusinessModuleType.php b/app/Classes/General/Eloquent/Filters/HasBusinessModuleType.php
new file mode 100644
index 00000000..d59d3846
--- /dev/null
+++ b/app/Classes/General/Eloquent/Filters/HasBusinessModuleType.php
@@ -0,0 +1,22 @@
+whereHas('companyModules', function (Builder $query) use($value) {
+ $query->where('type', $value);
+ });
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/General/Eloquent/Filters/HasMorphCompanyModule.php b/app/Classes/General/Eloquent/Filters/HasMorphCompanyModule.php
index ad80e9d0..75473c01 100644
--- a/app/Classes/General/Eloquent/Filters/HasMorphCompanyModule.php
+++ b/app/Classes/General/Eloquent/Filters/HasMorphCompanyModule.php
@@ -15,7 +15,6 @@ class HasMorphCompanyModule implements Filter
*/
public static function apply(Builder $builder, $value)
{
- logger("calling");
return $builder->whereHasMorph('owner', ['App\Models\CompanyModule'], function ($query) use($value) {
$query->where('id',$value);
});
diff --git a/app/Classes/General/Eloquent/Filters/WithBookings.php b/app/Classes/General/Eloquent/Filters/WithOrders.php
similarity index 76%
rename from app/Classes/General/Eloquent/Filters/WithBookings.php
rename to app/Classes/General/Eloquent/Filters/WithOrders.php
index 8728e119..6b5a7b7c 100644
--- a/app/Classes/General/Eloquent/Filters/WithBookings.php
+++ b/app/Classes/General/Eloquent/Filters/WithOrders.php
@@ -5,7 +5,7 @@ namespace App\Classes\General\Eloquent\Filters;
use Illuminate\Database\Eloquent\Builder;
-class WithBookings implements Filter
+class WithOrders implements Filter
{
/**
@@ -15,6 +15,6 @@ class WithBookings implements Filter
*/
public static function apply(Builder $builder, $value)
{
- return $builder->with('bookings');
+ return $builder->with('orders');
}
}
\ No newline at end of file
diff --git a/app/Jobs/CurlContainerListJob.php b/app/Classes/Jobs/CurlContainerListJob.php
similarity index 97%
rename from app/Jobs/CurlContainerListJob.php
rename to app/Classes/Jobs/CurlContainerListJob.php
index 88a7e9fd..abc93c1a 100644
--- a/app/Jobs/CurlContainerListJob.php
+++ b/app/Classes/Jobs/CurlContainerListJob.php
@@ -1,8 +1,7 @@
createUserProcessor = $createUserProcessor;
$this->createCompanyProcessor = $createCompanyProcessor;
$this->createCompanyModuleProcessor = $createCompanyModuleProcessor;
$this->createContactProcessor = $createContactProcessor;
+ $this->createsCompanyConnection = $createsCompanyConnection;
+ $this->approvesCompanyConnection = $approvesCompanyConnection;
$this->assignEmployeeProcessor = $assignEmployeeProcessor;
- $this->assignSegmentProcessor = $assignSegmentProcessor;
$this->uploadIdentityDocumentProcessor = $uploadIdentityDocumentProcessor;
$this->authenticationProcessor = $authenticationProcessor;
$this->generateEmailVerificationAttemptProcessor = $generateEmailVerificationAttemptProcessor;
@@ -114,11 +122,16 @@ class CreateCustomerLogic extends AbstractControllerLogic
/** @var CompanyModule $companyModule */
$companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::IMPORTER);
+ $connectionObject = new CompanyConnectionObject($companyModule, 'CIEF', mt_rand(1000, 9999).(new GeneratesInitials())->name($company->name)->length(3)->generate());
+
+ $connection = $this->createsCompanyConnection->execute($connectionObject);
+
+ $this->approvesCompanyConnection->execute($connection);
+
$Object = new EmploymentObject($companyModule, $user);
$this->assignEmployeeProcessor->execute($Object);
-
$this->uploadIdentityDocumentProcessor->execute($request, $company);
$this->generateEmailVerificationAttemptProcessor->execute($user);
diff --git a/app/Classes/Modules/Accounts/Services/AuthenticatesUser.php b/app/Classes/Modules/Accounts/Services/AuthenticatesUser.php
index 3f4e69cd..92f03f38 100644
--- a/app/Classes/Modules/Accounts/Services/AuthenticatesUser.php
+++ b/app/Classes/Modules/Accounts/Services/AuthenticatesUser.php
@@ -2,9 +2,9 @@
namespace App\Classes\Modules\Accounts\Services;
-
use App\Classes\Exceptions\AccessUnauthorisedException;
use App\Classes\Modules\Accounts\DataTransferObjects\AuthenticationCredentialsObject;
+
class AuthenticatesUser
{
diff --git a/app/Classes/Modules/Accounts/Services/GeneratesAuthenticationToken.php b/app/Classes/Modules/Accounts/Services/GeneratesAuthenticationToken.php
index 127ef55a..b327e175 100644
--- a/app/Classes/Modules/Accounts/Services/GeneratesAuthenticationToken.php
+++ b/app/Classes/Modules/Accounts/Services/GeneratesAuthenticationToken.php
@@ -3,6 +3,7 @@
namespace App\Classes\Modules\Accounts\Services;
use App\Classes\Exceptions\InternalServerErrorException;
+use App\Classes\ValueObjects\Constants\OrderRoleTypes;
use App\Classes\ValueObjects\Constants\RoleTypes;
use App\Models\Company;
use App\Models\Role;
@@ -53,11 +54,6 @@ class GeneratesAuthenticationToken {
*/
private function setTokenClaims(User $user): void {
- /** @var Company $companyModule */
- $companyModule = $user->companyModule()->first();
-
- $order = $companyModule->orders->count();
-
$claims = [
'id' => $user->id,
'name' => $user->name,
@@ -67,10 +63,12 @@ class GeneratesAuthenticationToken {
];
if($user->type === RoleTypes::USER) {
+
+ /** @var Company $companyModule */
+ $companyModule = $user->companyModule()->first();
+
$claims = array_merge($claims, [
- 'company_id' => $companyModule->company_id,
- 'company_module_id' => $companyModule->id,
- 'order' => $order
+ 'company_id' => $companyModule->company_id
]);
}
diff --git a/app/Classes/Modules/Companies/ControllersLogic/ApproveIdentificationDocumentLogic.php b/app/Classes/Modules/Companies/ControllersLogic/ApproveIdentificationDocumentLogic.php
index d5e052a9..0d3f007a 100644
--- a/app/Classes/Modules/Companies/ControllersLogic/ApproveIdentificationDocumentLogic.php
+++ b/app/Classes/Modules/Companies/ControllersLogic/ApproveIdentificationDocumentLogic.php
@@ -5,6 +5,7 @@ namespace App\Classes\Modules\Companies\ControllersLogic;
use App\Classes\Modules\Companies\Services\UpdatesCompanyStatus;
use App\Classes\Modules\Documents\Services\RejectsDocument;
use App\Classes\Modules\Documents\Standards\Rules\CanApproveDocument;
+use App\Classes\Modules\Orders\Services\UpdatesOrdersStatus;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Http\Resources\DocumentResource;
@@ -46,6 +47,9 @@ class ApproveIdentificationDocumentLogic extends AbstractControllerLogic
/** @var UpdatesCompanyStatus */
private $updatesCompanyStatus;
+ /** @var UpdatesOrdersStatus */
+ private $updatesOrdersStatus;
+
/**
* ApproveIdentificationDocumentLogic constructor.
* @param CanApproveDocument $canApproveDocument
@@ -53,14 +57,16 @@ class ApproveIdentificationDocumentLogic extends AbstractControllerLogic
* @param RejectsDocument $rejectsDocument
* @param FetchesDocument $fetchesDocument
* @param UpdatesCompanyStatus $updatesCompanyStatus
+ * @param UpdatesOrdersStatus $updatesOrdersStatus
*/
- public function __construct(CanApproveDocument $canApproveDocument, ApprovesDocument $approvesDocument, RejectsDocument $rejectsDocument, FetchesDocument $fetchesDocument, UpdatesCompanyStatus $updatesCompanyStatus)
+ public function __construct(CanApproveDocument $canApproveDocument, ApprovesDocument $approvesDocument, RejectsDocument $rejectsDocument, FetchesDocument $fetchesDocument, UpdatesCompanyStatus $updatesCompanyStatus, UpdatesOrdersStatus $updatesOrdersStatus)
{
$this->canApproveDocument = $canApproveDocument;
$this->approvesDocument = $approvesDocument;
$this->rejectsDocument = $rejectsDocument;
$this->fetchesDocument = $fetchesDocument;
$this->updatesCompanyStatus = $updatesCompanyStatus;
+ $this->updatesOrdersStatus = $updatesOrdersStatus;
}
/**
@@ -84,6 +90,11 @@ class ApproveIdentificationDocumentLogic extends AbstractControllerLogic
$this->updatesCompanyStatus->execute($document->owner, $status === 'approve' ? ApprovalStatus::APPROVED : ApprovalStatus::REJECTED);
+ if($status === 'approve'){
+ $orders = $this->updatesOrdersStatus->execute($document->owner, ApprovalStatus::APPROVED);
+ }
+
+
return $this->resourceResponse(new DocumentResource($document));
}
diff --git a/app/Classes/Modules/Companies/ControllersLogic/FetchCompanyLogic.php b/app/Classes/Modules/Companies/ControllersLogic/FetchCompanyLogic.php
index 5406d682..174bef3c 100644
--- a/app/Classes/Modules/Companies/ControllersLogic/FetchCompanyLogic.php
+++ b/app/Classes/Modules/Companies/ControllersLogic/FetchCompanyLogic.php
@@ -7,7 +7,6 @@ use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Companies\Services\FetchesCompany;
use App\Classes\Modules\Companies\Standards\Rules\CanFetchCompany;
use App\Http\Resources\CompanyResource;
-use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -52,7 +51,7 @@ class FetchCompanyLogic extends AbstractControllerLogic
{
$this->canFetchCompany->passes();
- $query = $this->fetchesCompany->execute(['id' => $request->route('id'), 'with_bookings' => true]);
+ $query = $this->fetchesCompany->execute(['id' => $request->route('id')]);
return $this->resourceResponse(new CompanyResource($query));
diff --git a/app/Classes/Modules/Companies/DataTransferObjects/CompanyConnectionObject.php b/app/Classes/Modules/Companies/DataTransferObjects/CompanyConnectionObject.php
new file mode 100644
index 00000000..300d76c5
--- /dev/null
+++ b/app/Classes/Modules/Companies/DataTransferObjects/CompanyConnectionObject.php
@@ -0,0 +1,58 @@
+invitee = $invitee;
+ $this->inviterReference = $inviterReference;
+ $this->inviteeReference = $inviteeReference;
+ }
+
+ /**
+ * @return CompanyModule
+ */
+ public function getInvitee(): CompanyModule
+ {
+ return $this->invitee;
+ }
+
+ /**
+ * @return string
+ */
+ public function getInviterReference(): string
+ {
+ return $this->inviterReference;
+ }
+
+ /**
+ * @return string
+ */
+ public function getInviteeReference(): string
+ {
+ return $this->inviteeReference;
+ }
+
+
+}
diff --git a/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php b/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php
index 6f50f44e..d7eb519e 100644
--- a/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php
+++ b/app/Classes/Modules/Companies/Processors/CreateCompanyModuleProcessor.php
@@ -8,6 +8,7 @@ use App\Classes\Modules\Companies\DataTransferObjects\CompanyModuleObject;
use App\Classes\Modules\Companies\Services\CreatesCompanyModule;
use App\Classes\Modules\Companies\Standards\Rules\CanCreateCompanyModule;
use App\Classes\ValueObjects\Constants\BusinessType;
+use App\Models\CompanyModule;
use Illuminate\Database\Eloquent\Model;
use App\Models\Company;
@@ -65,6 +66,9 @@ class CreateCompanyModuleProcessor
$this->canCreateCompanyModule->passes($company_module_object);
- return $this->createsCompanyModule->execute($company, $company_module_object);
+ /** @var CompanyModule $companyModule */
+ $companyModule = $this->createsCompanyModule->execute($company, $company_module_object);
+
+ return $companyModule;
}
}
diff --git a/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php b/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php
index 09516c9d..b33a81ed 100644
--- a/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php
+++ b/app/Classes/Modules/Companies/Processors/CreateCompanyProcessor.php
@@ -3,8 +3,11 @@
namespace App\Classes\Modules\Companies\Processors;
use App\Classes\General\Services\GeneratesInitials;
+use App\Classes\Modules\Companies\DataTransferObjects\CompanyConnectionObject;
use App\Classes\Modules\Companies\DataTransferObjects\CompanyObject;
use App\Classes\Modules\Companies\Services\CreatesCompany;
+use App\Classes\Modules\Companies\Services\CreatesCompanyConnection;
+use App\Classes\Modules\Companies\Services\GeneratesUniqueAccountNumber;
use App\Classes\Modules\Companies\Standards\Rules\CanCreateCompany;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\BusinessType;
@@ -21,37 +24,37 @@ class CreateCompanyProcessor
/** @var CreatesCompany */
private $createsCompany;
+ /** @var GeneratesUniqueAccountNumber */
+ private $generatesUniqueAccountNumber;
+
/**
- * CreateUserProcessor constructor.
+ * CreateCompanyProcessor constructor.
* @param CanCreateCompany $canCreateCompany
* @param CreatesCompany $createsCompany
+ * @param GeneratesUniqueAccountNumber $generatesUniqueAccountNumber
*/
- public function __construct(CanCreateCompany $canCreateCompany, CreatesCompany $createsCompany)
+ public function __construct(CanCreateCompany $canCreateCompany, CreatesCompany $createsCompany, GeneratesUniqueAccountNumber $generatesUniqueAccountNumber)
{
$this->canCreateCompany = $canCreateCompany;
$this->createsCompany = $createsCompany;
+ $this->generatesUniqueAccountNumber = $generatesUniqueAccountNumber;
}
/**
* @param Request $request
- * @param int $businessType
- * @param int|null $companyType
+ * @param int $companyType
* @param int|null $status
* @return Model
* @throws \App\Classes\Exceptions\AccessForbiddenException
* @throws \App\Classes\Exceptions\MalformedRequestException
* @throws \App\Classes\Exceptions\RequestValidationException
*/
- public function execute(Request $request, ?int $companyType = CompanyType::COMPANY_BUSINESS, ?int $status = ApprovalStatus::PENDING_SUBMISSION): Model {
+ public function execute(Request $request, int $companyType = CompanyType::COMPANY_BUSINESS, ?int $status = ApprovalStatus::PENDING_SUBMISSION): Model {
$companyName = $companyType === CompanyType::COMPANY_BUSINESS ? $request->input('company_name') : $request->input('name');
- $company_object = new CompanyObject(
- $companyName,
- mt_rand(1000, 9999).(new GeneratesInitials())->name($companyName)->length(3)->generate(),
- $companyType,
- $status
- );
+
+ $company_object = new CompanyObject($companyName, $this->generatesUniqueAccountNumber->execute(), $companyType, $status);
$this->canCreateCompany->passes($company_object);
diff --git a/app/Classes/Modules/Companies/Services/ApprovesCompanyConnection.php b/app/Classes/Modules/Companies/Services/ApprovesCompanyConnection.php
new file mode 100644
index 00000000..fecab38e
--- /dev/null
+++ b/app/Classes/Modules/Companies/Services/ApprovesCompanyConnection.php
@@ -0,0 +1,25 @@
+status = ApprovalStatus::APPROVED;
+
+ return $this->handler($model);
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Companies/Services/ChecksIfCompanyAccountNumberExists.php b/app/Classes/Modules/Companies/Services/ChecksIfCompanyAccountNumberExists.php
new file mode 100644
index 00000000..0f4d9e5a
--- /dev/null
+++ b/app/Classes/Modules/Companies/Services/ChecksIfCompanyAccountNumberExists.php
@@ -0,0 +1,26 @@
+repository = $repository;
+ }
+
+ public function execute(int $accountNumber): bool {
+ return $this->repository->where('reference', $accountNumber)->exists();
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Companies/Services/CreatesCompanyConnection.php b/app/Classes/Modules/Companies/Services/CreatesCompanyConnection.php
new file mode 100644
index 00000000..d5d11ecc
--- /dev/null
+++ b/app/Classes/Modules/Companies/Services/CreatesCompanyConnection.php
@@ -0,0 +1,44 @@
+fetchesCompany = $fetchesCompany;
+ }
+
+
+ /**
+ * @param CompanyConnectionObject $object
+ * @return mixed
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ */
+ public function execute(CompanyConnectionObject $object)
+ {
+
+ $companyModule = $this->fetchesCompany->execute(['id', 1])->companyModules()->first();
+
+ $connection = new CompanyConnection();
+ $connection->inviter_id = $companyModule->id;
+ $connection->invitee_id = $object->getInvitee()->id;
+ $connection->inviter_reference = $object->getInviterReference();
+ $connection->invitee_reference = $object->getInviteeReference();
+
+ return $this->handler($connection);
+
+ }
+}
diff --git a/app/Classes/Modules/Companies/Services/GeneratesUniqueAccountNumber.php b/app/Classes/Modules/Companies/Services/GeneratesUniqueAccountNumber.php
new file mode 100644
index 00000000..48a92e20
--- /dev/null
+++ b/app/Classes/Modules/Companies/Services/GeneratesUniqueAccountNumber.php
@@ -0,0 +1,31 @@
+accountNumberExists = $accountNumberExists;
+ }
+
+ /**
+ * @return int
+ */
+ public function execute(): int {
+
+ $number = mt_rand(100000001, 999999999);
+ return !$this->accountNumberExists->execute($number) ? $number : self::execute();
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Companies/Services/UpdatesCompanyStatus.php b/app/Classes/Modules/Companies/Services/UpdatesCompanyStatus.php
new file mode 100644
index 00000000..b7351fc9
--- /dev/null
+++ b/app/Classes/Modules/Companies/Services/UpdatesCompanyStatus.php
@@ -0,0 +1,24 @@
+status = $status;
+ return $this->handler($model);
+
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanFetchContainerPackingList.php b/app/Classes/Modules/Companies/Standards/Rules/CanFetchCompany.php
similarity index 58%
rename from app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanFetchContainerPackingList.php
rename to app/Classes/Modules/Companies/Standards/Rules/CanFetchCompany.php
index 6eedf7bd..1d2bad1d 100644
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanFetchContainerPackingList.php
+++ b/app/Classes/Modules/Companies/Standards/Rules/CanFetchCompany.php
@@ -1,12 +1,12 @@
'Created PackingList',
- 'message' => 'You have successfully created a new PackingList'
- ];
- }
-
- /** @var CanCreateContainerPackingList */
- private $canCreateContainerPackingList;
-
- /** @var FetchesPackingList */
- private $fetchesPackingList;
-
- /** @var CreatesPackingList */
- private $createsContainerPackingList;
-
- public function __construct(CanCreateContainerPackingList $canCreateContainerPackingList, FetchesPackingList $fetchesPackingList, CreatesContainerPackingList $createsContainerPackingList)
- {
- $this->canCreateContainerPackingList = $canCreateContainerPackingList;
- $this->fetchesPackingList = $fetchesPackingList;
- $this->createsContainerPackingList = $createsContainerPackingList;
- }
-
- /**
- * @param Request $request
- * @return JsonResponse
- * @throws \App\Classes\Exceptions\AccessForbiddenException
- * @throws \App\Classes\Exceptions\MalformedRequestException
- * @throws \App\Classes\Exceptions\RequestValidationException
- */
- public function logic(Request $request) : JsonResponse
- {
-
- $packingList = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]);
-
- $object = new ContainerPackingListObject( $packingList->id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference'));
-
- $this->canCreateContainerPackingList->passes($object);
-
- $query = $this->createsContainerPackingList->execute($object);
-
- return $this->resourceResponse(new ContainerPackingListResource($query));
-
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php
deleted file mode 100644
index dfd94848..00000000
--- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/DeleteContainerPackingListLogic.php
+++ /dev/null
@@ -1,73 +0,0 @@
- 'Deleted ContainerPackingList',
- 'message' => 'You have successfully deleted a ContainerPackingList'
- ];
- }
-
-
- /** @var CanDeleteContainerPackingList */
- private $canDeleteContainerPackingList;
-
- /** @var DeletesContainerPackingList */
- private $deletesContainerPackingList;
-
- /** @var FetchesContainerPackingList */
- private $fetchesContainerPackingList;
-
- /**
- * DeleteContainerPackingListControllersLogic constructor.
- * @param CanDeleteContainerPackingList $canDeleteContainerPackingList
- * @param DeletesContainerPackingList $deletesContainerPackingList
- * @param FetchesContainerPackingList $fetchesContainerPackingList
- */
- public function __construct(CanDeleteContainerPackingList $canDeleteContainerPackingList, DeletesContainerPackingList $deletesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList)
- {
- $this->canDeleteContainerPackingList = $canDeleteContainerPackingList;
- $this->deletesContainerPackingList = $deletesContainerPackingList;
- $this->fetchesContainerPackingList = $fetchesContainerPackingList;
- }
-
-
- /**
- * @param Request $request
- * @return JsonResponse
- * @throws ErrorException
- */
- public function logic(Request $request) : JsonResponse
- {
- try {
-
- $this->canDeleteContainerPackingList->passes();
-
- $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]);
-
- $this->deletesContainerPackingList->execute($query);
-
- return $this->response([]);
-
- } catch (\Exception $exception){
- throw new ErrorException($exception->getMessage(), $exception->getCode());
- }
-
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php
deleted file mode 100644
index 21e4e1c9..00000000
--- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/FetchContainerPackingListLogic.php
+++ /dev/null
@@ -1,66 +0,0 @@
- 'Retrieved ContainerPackingList',
- 'message' => 'You have successfully retrieved a ContainerPackingList'
- ];
- }
-
- /** @var CanFetchContainerPackingList */
- private $canFetchContainerPackingList;
-
- /** @var FetchesContainerPackingList */
- private $fetchesContainerPackingList;
-
- /**
- * FetchContainerPackingListControllersLogic constructor.
- * @param CanFetchContainerPackingList $canFetchContainerPackingList
- * @param FetchesContainerPackingList $fetchesContainerPackingList
- */
- public function __construct(CanFetchContainerPackingList $canFetchContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList)
- {
- $this->canFetchContainerPackingList = $canFetchContainerPackingList;
- $this->fetchesContainerPackingList = $fetchesContainerPackingList;
- }
-
-
- /**
- * @param Request $request
- * @return JsonResponse
- * @throws ErrorException
- */
- public function logic(Request $request) : JsonResponse
- {
- try {
-
- $this->canFetchContainerPackingList->passes();
-
- $query = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]);
-
- return $this->resourceResponse(new ContainerPackingListResource($query));
-
- } catch (\Exception $exception){
- throw new ErrorException($exception->getMessage(), $exception->getCode());
- }
-
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php
deleted file mode 100644
index 50e34101..00000000
--- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/ListContainerPackingListsLogic.php
+++ /dev/null
@@ -1,66 +0,0 @@
- 'Retrieved ContainerPackingLists',
- 'message' => 'You have successfully retrieved a list of ContainerPackingLists'
- ];
- }
-
- /** @var CanListContainerPackingLists */
- private $canListContainerPackingLists;
-
- /** @var ListsContainerPackingLists */
- private $listsContainerPackingLists;
-
- /**
- * ListContainerPackingListsLogic constructor.
- * @param CanListContainerPackingLists $canListContainerPackingLists
- * @param ListsContainerPackingLists $listsContainerPackingLists
- */
- public function __construct(CanListContainerPackingLists $canListContainerPackingLists, ListsContainerPackingLists $listsContainerPackingLists)
- {
- $this->canListContainerPackingLists = $canListContainerPackingLists;
- $this->listsContainerPackingLists = $listsContainerPackingLists;
- }
-
-
- /**
- * @param Request $request
- * @return JsonResponse
- * @throws ErrorException
- */
- public function logic(Request $request) : JsonResponse
- {
- try {
-
- $this->canListContainerPackingLists->passes();
-
- $query = $this->listsContainerPackingLists->execute($this->listsContainerPackingLists->deserializeFilters($request->input('filters')));
-
- return $this->collectionResponse(ContainerPackingListResource::collection($query));
-
- } catch (\Exception $exception){
- throw new ErrorException($exception->getMessage(), $exception->getCode());
- }
-
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php b/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php
deleted file mode 100644
index 8ae97336..00000000
--- a/app/Classes/Modules/ContainerPackingLists/ControllersLogic/UpdateContainerPackingListLogic.php
+++ /dev/null
@@ -1,72 +0,0 @@
- 'Updated ContainerPackingList',
- 'message' => 'You have successfully updated the ContainerPackingList'
- ];
- }
-
- /** @var CanUpdateContainerPackingList */
- private $canUpdateContainerPackingList;
-
- /** @var UpdatesContainerPackingList */
- private $updatesContainerPackingList;
-
- /** @var FetchesContainerPackingList */
- private $fetchesContainerPackingList;
-
- /**
- * UpdateContainerPackingListLogic constructor.
- * @param CanUpdateContainerPackingList $canUpdateContainerPackingList
- * @param UpdatesContainerPackingList $updatesContainerPackingList
- * @param FetchesContainerPackingList $fetchesContainerPackingList
- */
- public function __construct(CanUpdateContainerPackingList $canUpdateContainerPackingList, UpdatesContainerPackingList $updatesContainerPackingList, FetchesContainerPackingList $fetchesContainerPackingList)
- {
- $this->canUpdateContainerPackingList = $canUpdateContainerPackingList;
- $this->updatesContainerPackingList = $updatesContainerPackingList;
- $this->fetchesContainerPackingList = $fetchesContainerPackingList;
- }
-
-
- /**
- * @param Request $request
- * @return JsonResponse
- * @throws ErrorException
- */
- public function logic(Request $request) : JsonResponse
- {
-
- $container = $this->fetchesContainerPackingList->execute(['id' => $request->route('id')]);
-
- $object = new ContainerPackingListObject( $container->packing_list_id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference'));
-
- $this->canUpdateContainerPackingList->passes($object);
-
- $query = $this->updatesContainerPackingList->execute($container, $object);
-
- return $this->resourceResponse(new ContainerPackingListResource($query));
-
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php
deleted file mode 100644
index abd524eb..00000000
--- a/app/Classes/Modules/ContainerPackingLists/Services/DeletesContainerPackingList.php
+++ /dev/null
@@ -1,19 +0,0 @@
-handler($model);
- }
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php
deleted file mode 100644
index a10e13de..00000000
--- a/app/Classes/Modules/ContainerPackingLists/Services/FetchesContainerPackingList.php
+++ /dev/null
@@ -1,33 +0,0 @@
-repository = $repository;
- }
-
-
- /**
- * @return Builder
- */
- public function getRepository(): Builder
- {
- return $this->repository->newQuery();
- }
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php b/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php
deleted file mode 100644
index e3991a3f..00000000
--- a/app/Classes/Modules/ContainerPackingLists/Services/ListsContainerPackingLists.php
+++ /dev/null
@@ -1,33 +0,0 @@
-repository = $repository;
- }
-
-
- /**
- * @return Builder
- */
- function getRepository(): Builder
- {
- return $this->repository->newQuery();
- }
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanUpdateContainerPackingList.php b/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanUpdateContainerPackingList.php
deleted file mode 100644
index cfd79004..00000000
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanUpdateContainerPackingList.php
+++ /dev/null
@@ -1,57 +0,0 @@
-ContainerPackingListValidation = $ContainerPackingListValidation;
- }
-
-
- /**
- * @return bool
- */
- protected function authorized(): bool
- {
- // TODO Set Authorization rules
- return true;
-
- }
-
- /**
- * @param ContainerPackingListObject $object
- * @return bool
- * @throws \App\Classes\Exceptions\RequestValidationException
- */
- protected function validators($object): bool
- {
- return $this->ContainerPackingListValidation->validate($object);
-
- }
-
-
- /**
- * @param ContainerPackingListObject $object
- * @return bool
- */
- protected function criteria($object): bool
- {
- return true;
- }
-
-}
diff --git a/app/Classes/Modules/Documents/ControllersLogic/ApproveDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/ApproveDocumentLogic.php
new file mode 100644
index 00000000..c15ab3ac
--- /dev/null
+++ b/app/Classes/Modules/Documents/ControllersLogic/ApproveDocumentLogic.php
@@ -0,0 +1,73 @@
+ 'Approve Document',
+ 'message' => 'You have successfully approved the Document'
+ ];
+ }
+
+ /** @var CanApproveDocument*/
+ private $canApproveDocument;
+
+ /** @var ApprovesDocument */
+ private $approvesDocument;
+
+ /** @var FetchesDocument */
+ private $fetchesDocument;
+
+
+ /**
+ * RejectDocumentLogic constructor.
+ * @param CanApproveDocument $canApproveDocument
+ * @param ApprovesDocument $approvesDocument
+ * @param FetchesDocument $fetchesDocument
+ */
+ public function __construct(CanApproveDocument $canApproveDocument, ApprovesDocument $approvesDocument, FetchesDocument $fetchesDocument)
+ {
+ $this->canApproveDocument = $canApproveDocument;
+ $this->approvesDocument = $approvesDocument;
+ $this->fetchesDocument = $fetchesDocument;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+
+ $document = $this->fetchesDocument->execute(['id' => $request->route('id')]);
+
+ $this->canApproveDocument->passes();
+
+ $document_query = $this->approvesDocument->execute($document);
+
+ return $this->resourceResponse(new DocumentResource($document_query));
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php
new file mode 100644
index 00000000..02bdac9d
--- /dev/null
+++ b/app/Classes/Modules/Documents/ControllersLogic/ListDocumentLogic.php
@@ -0,0 +1,63 @@
+ 'Retrieved Document',
+ 'message' => 'You have successfully retrieved a list of Document'
+ ];
+ }
+
+ /** @var CanListDocuments */
+ private $canListDocuments;
+
+ /** @var ListsDocuments */
+ private $listsDocuments;
+
+ /**
+ * ListStandardSegmentLogic constructor.
+ * @param CanListDocuments $canListDocuments
+ * @param ListsDocuments $listsDocuments
+ */
+ public function __construct(CanListDocuments $canListDocuments, ListsDocuments $listsDocuments)
+ {
+ $this->canListDocuments = $canListDocuments;
+ $this->listsDocuments = $listsDocuments;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+
+ $this->canListDocuments->passes();
+
+ $query = $this->listsDocuments->execute($this->listsDocuments->deserializeFilters($request->input('filters')));
+
+ return $this->collectionResponse(DocumentResource::collection($query));
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/ControllersLogic/RejectDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/RejectDocumentLogic.php
new file mode 100644
index 00000000..c8f0cf8c
--- /dev/null
+++ b/app/Classes/Modules/Documents/ControllersLogic/RejectDocumentLogic.php
@@ -0,0 +1,71 @@
+ 'Reject Document',
+ 'message' => 'You have successfully rejected the Document'
+ ];
+ }
+
+ /** @var CanApproveDocument*/
+ private $canApproveDocument;
+
+ /** @var RejectsDocument */
+ private $rejectsDocument;
+
+ /** @var FetchesDocument */
+ private $fetchesDocument;
+
+ /**
+ * RejectDocumentLogic constructor.
+ * @param CanApproveDocument $canApproveDocument
+ * @param RejectsDocument $rejectsDocument
+ * @param FetchesDocument $fetchesDocument
+ */
+ public function __construct(CanApproveDocument $canApproveDocument, RejectsDocument $rejectsDocument, FetchesDocument $fetchesDocument)
+ {
+ $this->canApproveDocument = $canApproveDocument;
+ $this->rejectsDocument = $rejectsDocument;
+ $this->fetchesDocument = $fetchesDocument;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+
+ $document = $this->fetchesDocument->execute(['id' => $request->route('id')]);
+
+ $this->canApproveDocument->passes();
+
+ $document_query = $this->rejectsDocument->execute($document);
+
+ return $this->resourceResponse(new DocumentResource($document_query));
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php
new file mode 100644
index 00000000..2d095750
--- /dev/null
+++ b/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php
@@ -0,0 +1,64 @@
+ '',
+ 'message' => ''
+ ];
+ }
+
+ /** @var CanRenderDocument */
+ private $canRenderDocument;
+
+ /** @var JWT */
+ private $manager;
+
+ /**
+ * RenderDocumentLogic constructor.
+ * @param CanRenderDocument $canRenderDocument
+ * @param JWT $manager
+ */
+ public function __construct(CanRenderDocument $canRenderDocument, JWT $manager)
+ {
+ $this->canRenderDocument = $canRenderDocument;
+ $this->manager = $manager;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws AccessForbiddenException
+ * @throws RequestValidationException
+ * @throws ResourceNotFoundException
+ * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $file = $request->route('fileName');
+
+ $this->canRenderDocument->passes();
+
+ if(!Storage::disk('documents')->exists($file))
+ {
+ throw new ResourceNotFoundException();
+ }
+
+ return $this->response(['src' => explode('.', $file)[1] == 'pdf' ? chunk_split(base64_encode(Storage::disk('documents')->get($file))) : Storage::disk('documents')->get($file) ]);
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Services/ApprovesDocument.php b/app/Classes/Modules/Documents/Services/ApprovesDocument.php
new file mode 100644
index 00000000..9458774e
--- /dev/null
+++ b/app/Classes/Modules/Documents/Services/ApprovesDocument.php
@@ -0,0 +1,26 @@
+status = ApprovalStatus::APPROVED;
+ $model->approver = Auth()->user()->id;
+ $model->approval_date = Carbon::now();
+
+ return $this->handler($model);
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Services/FetchesOrderSteps.php b/app/Classes/Modules/Documents/Services/FetchesDocument.php
similarity index 55%
rename from app/Classes/Modules/OrderSteps/Services/FetchesOrderSteps.php
rename to app/Classes/Modules/Documents/Services/FetchesDocument.php
index 77559b14..1aa12c87 100644
--- a/app/Classes/Modules/OrderSteps/Services/FetchesOrderSteps.php
+++ b/app/Classes/Modules/Documents/Services/FetchesDocument.php
@@ -1,22 +1,23 @@
repository = $repository;
}
diff --git a/app/Classes/Modules/Documents/Services/ListsDocuments.php b/app/Classes/Modules/Documents/Services/ListsDocuments.php
new file mode 100644
index 00000000..9f372279
--- /dev/null
+++ b/app/Classes/Modules/Documents/Services/ListsDocuments.php
@@ -0,0 +1,33 @@
+repository = $repository;
+ }
+
+
+ /**
+ * @return Builder
+ */
+ function getRepository(): Builder
+ {
+ return $this->repository->newQuery();
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Services/RejectsDocument.php b/app/Classes/Modules/Documents/Services/RejectsDocument.php
new file mode 100644
index 00000000..4a7c7bfa
--- /dev/null
+++ b/app/Classes/Modules/Documents/Services/RejectsDocument.php
@@ -0,0 +1,26 @@
+status = ApprovalStatus::REJECTED;
+ $model->approver = Auth()->user()->id;
+ $model->approval_date = Carbon::now();
+
+ return $this->handler($model);
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Standards/Rules/CanApproveDocument.php b/app/Classes/Modules/Documents/Standards/Rules/CanApproveDocument.php
new file mode 100644
index 00000000..544b605c
--- /dev/null
+++ b/app/Classes/Modules/Documents/Standards/Rules/CanApproveDocument.php
@@ -0,0 +1,39 @@
+documentValidation = $documentValidation;
+ }
+
+ /**
+ * @return bool
+ */
+ protected function authorized(): bool
+ {
+ // TODO Set Authorization rules
+ return true;
+ }
+
+ /**
+ * @param DocumentObject $object
+ * @return bool
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ protected function validators($object): bool
+ {
+ return $this->documentValidation->validate($object);
+ }
+
+ /**
+ * @param DocumentObject $object
+ * @return bool
+ */
+ protected function criteria($object): bool
+ {
+ return true;
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Standards/Rules/CanCreateFile.php b/app/Classes/Modules/Documents/Standards/Rules/CanCreateFile.php
new file mode 100644
index 00000000..d029cf2a
--- /dev/null
+++ b/app/Classes/Modules/Documents/Standards/Rules/CanCreateFile.php
@@ -0,0 +1,53 @@
+fileValidation = $fileValidation;
+ }
+
+ /**
+ * @return bool
+ */
+ protected function authorized(): bool
+ {
+ // TODO Set Authorization rules
+ return true;
+ }
+
+ /**
+ * @param FileObject $object
+ * @return bool
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ protected function validators($object): bool
+ {
+ return $this->fileValidation->validate($object);
+ }
+
+ /**
+ * @param FileObject $object
+ * @return bool
+ */
+ protected function criteria($object): bool
+ {
+ return true;
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php b/app/Classes/Modules/Documents/Standards/Rules/CanListDocuments.php
similarity index 50%
rename from app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php
rename to app/Classes/Modules/Documents/Standards/Rules/CanListDocuments.php
index 7056d7a4..f5145df6 100644
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanDeleteContainerPackingList.php
+++ b/app/Classes/Modules/Documents/Standards/Rules/CanListDocuments.php
@@ -1,27 +1,31 @@
can('view document')) {
+ return false;
+ }
+ */
+
return true;
}
/**
- * @param ContainerPackingListObject $object
+ * @param DocumentObject $object
* @return bool
*/
protected function validators($object): bool
@@ -32,7 +36,7 @@ class CanDeleteContainerPackingList extends AbstractRule
/**
- * @param ContainerPackingListObject $object
+ * @param DocumentObject $object
* @return bool
*/
protected function criteria($object): bool
@@ -40,4 +44,4 @@ class CanDeleteContainerPackingList extends AbstractRule
return true;
}
-}
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Standards/Rules/CanRenderDocument.php b/app/Classes/Modules/Documents/Standards/Rules/CanRenderDocument.php
new file mode 100644
index 00000000..0275d6f9
--- /dev/null
+++ b/app/Classes/Modules/Documents/Standards/Rules/CanRenderDocument.php
@@ -0,0 +1,39 @@
+documentValidation = $documentValidation;
+ }
+
+ /**
+ * @return bool
+ */
+ protected function authorized(): bool
+ {
+ // TODO Set Authorization rules
+ return true;
+ }
+
+ /**
+ * @param DocumentObject $object
+ * @return bool
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ protected function validators($object): bool
+ {
+ return $this->documentValidation->validate($object);
+ }
+
+ /**
+ * @param DocumentObject $object
+ * @return bool
+ */
+ protected function criteria($object): bool
+ {
+ return true;
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Standards/Validators/DocumentValidation.php b/app/Classes/Modules/Documents/Standards/Validators/DocumentValidation.php
new file mode 100644
index 00000000..634887f6
--- /dev/null
+++ b/app/Classes/Modules/Documents/Standards/Validators/DocumentValidation.php
@@ -0,0 +1,42 @@
+ $object->getDocumentType(),
+ 'reference' => $object->getReference(),
+ 'status' => $object->getStatus(),
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function rules(): array
+ {
+ return [
+ 'document_type' => 'required',
+ 'reference' => 'required',
+ 'status' => 'required'
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function messages(): array
+ {
+ return [];
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Documents/Standards/Validators/FileValidation.php b/app/Classes/Modules/Documents/Standards/Validators/FileValidation.php
new file mode 100644
index 00000000..3c429714
--- /dev/null
+++ b/app/Classes/Modules/Documents/Standards/Validators/FileValidation.php
@@ -0,0 +1,42 @@
+ $object->getDocumentId(),
+ 'file' => $object->getFile(),
+ 'file_type' => $object->getFileType()
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function rules(): array
+ {
+ return [
+ 'document_id' => 'required',
+ 'file' => 'required',
+ 'file_type' => 'required'
+ ];
+ }
+
+ /**
+ * @return array
+ */
+ protected function messages(): array
+ {
+ return [];
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/ControllersLogic/CompletesOrderStepLogic.php b/app/Classes/Modules/OrderSteps/ControllersLogic/CompletesOrderStepLogic.php
deleted file mode 100644
index 55aebd59..00000000
--- a/app/Classes/Modules/OrderSteps/ControllersLogic/CompletesOrderStepLogic.php
+++ /dev/null
@@ -1,44 +0,0 @@
-completeOrderStepProcessor = $completeOrderStepProcessor;
- }
-
- protected function notification():array {
- return [
- 'title' => 'Completed Order Step',
- 'message' => 'You have successfully completed a order step'
- ];
- }
-
- public function logic(Request $request) : JsonResponse {
-
- $completedOrderStep = $this->completeOrderStepProcessor->execute($request);
-
- return $this->resourceResponse(new OrderStepResource($completedOrderStep));
- }
-}
diff --git a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php b/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php
deleted file mode 100644
index b5a9b17a..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php
+++ /dev/null
@@ -1,47 +0,0 @@
-canCreateOrderStep = $canCreateOrderStep;
- $this->createsOrderSteps = $createsOrderSteps;
- $this->fetchesOrder = $fetchesOrder;
- $this->fetchesOrderSteps = $fetchesOrderSteps;
- }
-
- public function execute(Model $order, string $currentStep, $appointee_id){
-
- $order_steps_object = new OrderStepsObject( $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null);
-
- $this->canCreateOrderStep->passes($order_steps_object);
-
- return $this->createsOrderSteps->execute($order, $order_steps_object);
-
- }
-}
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/AbstractStepProcessor.php b/app/Classes/Modules/OrderSteps/Processors/Steps/AbstractStepProcessor.php
deleted file mode 100644
index e96065b5..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/AbstractStepProcessor.php
+++ /dev/null
@@ -1,46 +0,0 @@
-validator()){
- return new JsonResponse(['message' => 'Updating step validation has failed due to missing requirements'], HttpStatus::VALIDATION_FAILED);
- }
-
- (new CompletesOrderStep())->execute($orderId, $step);
-
- /** notification */
-
-
- return new JsonResponse(null, HttpStatus::REQUEST_ACCEPTED);
-
- } catch (\Exception $exception){
-
- throw new InternalServerErrorException("Failed to update order step because {$exception->getMessage()}");
-
- }
- }
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/ConfirmsOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/ConfirmsOrder.php
deleted file mode 100644
index 0355e269..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/ConfirmsOrder.php
+++ /dev/null
@@ -1,56 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- * @throws \App\Classes\Modules\Accounts\Exceptions\CannotCreateOrderStepsException
- */
- public function execute(): JsonResponse {
-
- (new generateOrderSteps())->execute($this->orderId);
-
- return $this->handler($this->orderId, $this->step);
- }
-
-}
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/DeliverOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/DeliverOrder.php
deleted file mode 100644
index 1e5a9738..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/DeliverOrder.php
+++ /dev/null
@@ -1,56 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
- if(!DeliveryArrangement::where('order_id', $this->orderId)->exists()) {
- return false;
- }
-
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
- return $this->handler($this->orderId, $this->step);
- }
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/ShipOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/ShipOrder.php
deleted file mode 100644
index 85bba60f..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/ShipOrder.php
+++ /dev/null
@@ -1,59 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
-
- /**
- * @return bool
- */
- public function validator(): bool {
-
- if(!ShippingArrangement::where('order_id', $this->orderId)->exists()) {
- return false;
- }
-
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
- return $this->handler($this->orderId, $this->step);
- }
-
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseArrivalOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseArrivalOrder.php
deleted file mode 100644
index e7376c18..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseArrivalOrder.php
+++ /dev/null
@@ -1,52 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
- return $this->handler($this->orderId, $this->step);
- }
-
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehousePackOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/WarehousePackOrder.php
deleted file mode 100644
index eab2db4b..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehousePackOrder.php
+++ /dev/null
@@ -1,60 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
-
- $packingList = PackingList::where('order_id', $this->orderId)->first();
-
- if(!$packingList->confirmed) {
- return false;
- }
-
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
-
- return $this->handler($this->orderId, $this->step);
- }
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseReceivesOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseReceivesOrder.php
deleted file mode 100644
index f032429c..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseReceivesOrder.php
+++ /dev/null
@@ -1,65 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
- Mail::send('emails.received_orders_email', [], function ($message) {
- $message->from('noreply@izyin.com', 'IZYIM');
- $message->to('uldvstar@gmail.com', 'Omair Saleh')->subject('Received orders report '.now()->format('dd/mm/YY'));
- $message->attach(
- Excel::download(Order::find($this->orderId),
- 'report_'.now()->format('dd_mm_YY').'.xlsx')
- ->getFile(), ['as' => 'report_'.now()->format('dd/mm/YY').'.xlsx']);
-
- });
-
- return $this->handler($this->orderId, $this->step);
- }
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseUnpackingOrder.php b/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseUnpackingOrder.php
deleted file mode 100644
index 352d2235..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/Steps/WarehouseUnpackingOrder.php
+++ /dev/null
@@ -1,51 +0,0 @@
-orderId = $orderId;
- $this->step = new StepObject(self::STEP_REFERENCE, $completeDate);
-
- }
-
- /**
- * @return bool
- */
- public function validator(): bool {
- return true;
- }
-
-
- /**
- * @return JsonResponse
- * @throws InternalServerErrorException
- */
- public function execute(): JsonResponse {
- return $this->handler($this->orderId, $this->step);
- }
-
-}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Processors/UpdateOrderStepsProcessor.php b/app/Classes/Modules/OrderSteps/Processors/UpdateOrderStepsProcessor.php
deleted file mode 100644
index 5c4d2def..00000000
--- a/app/Classes/Modules/OrderSteps/Processors/UpdateOrderStepsProcessor.php
+++ /dev/null
@@ -1,43 +0,0 @@
-canUpdateOrderStep = $canUpdateOrderStep;
- $this->updatesOrderSteps = $updatesOrderSteps;
- $this->fetchesOrderSteps = $fetchesOrderSteps;
- }
-
- public function execute(string $currentStep){
-
- $orderStepsObject = new OrderStepsObject(0,$currentStep, 0, 0, 1, 1, null, 0, null);
-
- $this->canUpdateOrderStep->passes($orderStepsObject);
-
- $orderSteps = $this->fetchesOrderSteps->execute(['reference'=>$currentStep]);
-
- $this->updatesOrderSteps->execute($orderSteps, $orderStepsObject);
-
- }
-}
diff --git a/app/Classes/Modules/OrderSteps/Services/CreatesPackingOrderSteps.php b/app/Classes/Modules/OrderSteps/Services/CreatesPackingOrderSteps.php
deleted file mode 100644
index 5a42ea36..00000000
--- a/app/Classes/Modules/OrderSteps/Services/CreatesPackingOrderSteps.php
+++ /dev/null
@@ -1,29 +0,0 @@
-appointee_id = $orderSteps->getAppointeeId();
- $orderStepsModel->reference = $orderSteps->getReference();
- $orderStepsModel->primary = $orderSteps->getPrimary();
- $orderStepsModel->sequence = $orderSteps->getSequence();
- $orderStepsModel->status = 0;
- $orderStepsModel->contract_status = 0;
- $orderStepsModel->complete_date = null;
-
- return $this->handler($packingList->orderSteps(), $orderStepsModel);
-
- }
-}
diff --git a/app/Classes/Modules/Orders/ControllersLogic/FetchOrderLogic.php b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderLogic.php
new file mode 100644
index 00000000..8dc9a5cb
--- /dev/null
+++ b/app/Classes/Modules/Orders/ControllersLogic/FetchOrderLogic.php
@@ -0,0 +1,61 @@
+ 'Retrieved Order',
+ 'message' => 'You have successfully retrieved an order'
+ ];
+ }
+
+ /** @var CanFetchOrder */
+ private $canFetchOrder;
+
+ /** @var FetchesOrder */
+ private $fetchesOrder;
+
+ /**
+ * FetchOrderLogic 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')]);
+
+ return $this->resourceResponse(new OrderResource($query));
+
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php
index 254b5e7c..b1f3e72e 100644
--- a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php
+++ b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php
@@ -11,7 +11,7 @@ use App\Classes\Modules\OrderSteps\Processors\GenerateOrderStepsProcessor;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\OrderSteps;
use App\Classes\ValueObjects\Constants\OrderType;
-use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
+use App\Classes\Modules\OrderSteps\DataTransferObjects\StepsObject;
use App\Classes\Modules\OrderSteps\Services\UpdatesOrderSteps;
use Illuminate\Http\Request;
@@ -42,7 +42,7 @@ class ConfirmOrderProcessor
//Only Processing Step is created at this point
$orderStep = $order->orderSteps[0];
- $orderStepObject = new OrderStepsObject(
+ $orderStepObject = new StepsObject(
0,
$orderStep->reference,
true,
diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php
index 4af95696..61d988af 100644
--- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php
+++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php
@@ -72,10 +72,12 @@ class CreateOrderProcessor
*/
public function execute(Request $request){
+ $company = $this->fetchesCompany->execute(['id' => $request->get('company_id')]);
+
/** @var CompanyModule $importer */
$importer = $this->fetchesCompany->execute(['id' => $request->get('company_id')])->companyModules()->importers()->first();
- $orderObject = new OrderObject($this->generatesOrderNumber->execute(), OrderType::SHARED_CONTAINER, $importer->status === ApprovalStatus::APPROVED ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION);
+ $orderObject = new OrderObject($this->generatesOrderNumber->execute(), OrderType::SHARED_CONTAINER, $company->status === ApprovalStatus::APPROVED ? ApprovalStatus::APPROVED : ApprovalStatus::PENDING_VERIFICATION);
$this->canCreateOrder->passes($orderObject);
diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php
index 8192429b..4b8f0bb8 100644
--- a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php
+++ b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php
@@ -48,16 +48,9 @@ class CreateOrderRolesProcessor
/** @var CompanyModule $originWarehouse */
$originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->get('warehouse_id')]);
- $desitnationWarehouseReference = WarehouseReferences::KLANG;
-// $address->state_id === 13 ? WarehouseReferences::SABAH : $address->state_id === 14 ? WarehouseReferences::SARAWAK : WarehouseReferences::KLANG
- if($address->state_id === 13){
- $desitnationWarehouseReference = WarehouseReferences::SABAH;
- }
- if($address->state_id === 14){
- $desitnationWarehouseReference = WarehouseReferences::SARAWAK;
- }
+
/** @var CompanyModule $destinationWarehouse */
- $destinationWarehouse = $this->fetchesCompanyModule->execute(['reference' => $desitnationWarehouseReference]);
+ $destinationWarehouse = $this->fetchesCompanyModule->execute(['reference' => $address->state_id = 13 ? WarehouseReferences::SABAH : ($address->state_id === 14 ? WarehouseReferences::SARAWAK : WarehouseReferences::KLANG)]);
/** @var CompanyModule $freightForwarder */
$freightForwarder = $originWarehouse->company->companyModules()->freightForwarders()->first();
diff --git a/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php b/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php
index 6ae3b7ee..50e969ba 100644
--- a/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php
+++ b/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php
@@ -10,7 +10,7 @@ use App\Classes\Modules\Orders\Standards\Rules\CanUpdateCurrentStep;
use App\Classes\ValueObjects\Constants\OrderStatus;
use App\Classes\ValueObjects\Constants\OrderSteps;
use App\Models\Order;
-use App\Models\OrderStep;
+use App\Models\Step;
class UpdatesOrderCurrentStepProcessor
{
diff --git a/app/Classes/Modules/Orders/Services/GeneratesOrderNumber.php b/app/Classes/Modules/Orders/Services/GeneratesOrderNumber.php
index 2fc25cc2..e1aa006e 100644
--- a/app/Classes/Modules/Orders/Services/GeneratesOrderNumber.php
+++ b/app/Classes/Modules/Orders/Services/GeneratesOrderNumber.php
@@ -24,7 +24,7 @@ class GeneratesOrderNumber
*/
public function execute(): int {
- $reference = rand(1000000, 9999999);
+ $reference = rand(100000001, 999999999);
return !$this->checkIfOrderNumberExists->execute($reference) ? $reference : self::execute();
}
diff --git a/app/Classes/Modules/Orders/Services/UpdatesOrdersStatus.php b/app/Classes/Modules/Orders/Services/UpdatesOrdersStatus.php
new file mode 100644
index 00000000..8ed3497f
--- /dev/null
+++ b/app/Classes/Modules/Orders/Services/UpdatesOrdersStatus.php
@@ -0,0 +1,22 @@
+companyModules()->where('type', BusinessType::IMPORTER)->first()->orders()->update(['status' => $status]);
+
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Orders/Standards/Rules/CanFetchOrder.php b/app/Classes/Modules/Orders/Standards/Rules/CanFetchOrder.php
new file mode 100644
index 00000000..a4457e26
--- /dev/null
+++ b/app/Classes/Modules/Orders/Standards/Rules/CanFetchOrder.php
@@ -0,0 +1,42 @@
+handler($model);
- }
-}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
new file mode 100644
index 00000000..30184f62
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
@@ -0,0 +1,67 @@
+ 'Created PackingList',
+ 'message' => 'You have successfully created a new PackingList'
+ ];
+ }
+
+ /** @var CanCreateContainer */
+ private $canCreateContainer;
+
+ /** @var FetchesPackingList */
+ private $fetchesPackingList;
+
+ /** @var CreatesPackingList */
+ private $createsContainer;
+
+ public function __construct(CanCreateContainer $canCreateContainer, FetchesPackingList $fetchesPackingList, CreatesContainer $createsContainer)
+ {
+ $this->canCreateContainer = $canCreateContainer;
+ $this->fetchesPackingList = $fetchesPackingList;
+ $this->createsContainer = $createsContainer;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws \App\Classes\Exceptions\AccessForbiddenException
+ * @throws \App\Classes\Exceptions\MalformedRequestException
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+
+ $packingList = $this->fetchesPackingList->execute(['id' => $request->input('packing_list_id')]);
+
+ $object = new ContainerObject( $packingList->id , $request->input('container_reference'), $request->input('container_type'), $request->input('seal_reference'));
+
+ $this->canCreateContainer->passes($object);
+
+ $query = $this->createsContainer->execute($object);
+
+ return $this->resourceResponse(new ContainerResource($query));
+
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/DeleteContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/DeleteContainerLogic.php
new file mode 100644
index 00000000..e25f4748
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/DeleteContainerLogic.php
@@ -0,0 +1,73 @@
+ 'Deleted Container',
+ 'message' => 'You have successfully deleted a Container'
+ ];
+ }
+
+
+ /** @var CanDeleteContainer */
+ private $canDeleteContainer;
+
+ /** @var DeletesContainer */
+ private $deletesContainer;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * DeleteContainerControllersLogic constructor.
+ * @param CanDeleteContainer $canDeleteContainer
+ * @param DeletesContainer $deletesContainer
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(CanDeleteContainer $canDeleteContainer, DeletesContainer $deletesContainer, FetchesContainer $fetchesContainer)
+ {
+ $this->canDeleteContainer = $canDeleteContainer;
+ $this->deletesContainer = $deletesContainer;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ try {
+
+ $this->canDeleteContainer->passes();
+
+ $query = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+
+ $this->deletesContainer->execute($query);
+
+ return $this->response([]);
+
+ } catch (\Exception $exception){
+ throw new ErrorException($exception->getMessage(), $exception->getCode());
+ }
+
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/FetchContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/FetchContainerLogic.php
new file mode 100644
index 00000000..2a6f670a
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/FetchContainerLogic.php
@@ -0,0 +1,66 @@
+ 'Retrieved Container',
+ 'message' => 'You have successfully retrieved a Container'
+ ];
+ }
+
+ /** @var CanFetchContainer */
+ private $canFetchContainer;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * FetchContainerControllersLogic constructor.
+ * @param CanFetchContainer $canFetchContainer
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(CanFetchContainer $canFetchContainer, FetchesContainer $fetchesContainer)
+ {
+ $this->canFetchContainer = $canFetchContainer;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ try {
+
+ $this->canFetchContainer->passes();
+
+ $query = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+
+ return $this->resourceResponse(new ContainerResource($query));
+
+ } catch (\Exception $exception){
+ throw new ErrorException($exception->getMessage(), $exception->getCode());
+ }
+
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/ListContainersLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/ListContainersLogic.php
new file mode 100644
index 00000000..f5422224
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/ListContainersLogic.php
@@ -0,0 +1,66 @@
+ 'Retrieved Containers',
+ 'message' => 'You have successfully retrieved a list of Containers'
+ ];
+ }
+
+ /** @var CanListContainers */
+ private $canListContainers;
+
+ /** @var ListsContainers */
+ private $listsContainers;
+
+ /**
+ * ListContainersLogic constructor.
+ * @param CanListContainers $canListContainers
+ * @param ListsContainers $listsContainers
+ */
+ public function __construct(CanListContainers $canListContainers, ListsContainers $listsContainers)
+ {
+ $this->canListContainers = $canListContainers;
+ $this->listsContainers = $listsContainers;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ try {
+
+ $this->canListContainers->passes();
+
+ $query = $this->listsContainers->execute($this->listsContainers->deserializeFilters($request->input('filters')));
+
+ return $this->collectionResponse(ContainerResource::collection($query));
+
+ } catch (\Exception $exception){
+ throw new ErrorException($exception->getMessage(), $exception->getCode());
+ }
+
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php
new file mode 100644
index 00000000..8d739bed
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateContainerLogic.php
@@ -0,0 +1,72 @@
+ 'Updated Container',
+ 'message' => 'You have successfully updated the Container'
+ ];
+ }
+
+ /** @var CanUpdateContainer */
+ private $canUpdateContainer;
+
+ /** @var UpdatesContainer */
+ private $updatesContainer;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * UpdateContainerLogic constructor.
+ * @param CanUpdateContainer $canUpdateContainer
+ * @param UpdatesContainer $updatesContainer
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(CanUpdateContainer $canUpdateContainer, UpdatesContainer $updatesContainer, FetchesContainer $fetchesContainer)
+ {
+ $this->canUpdateContainer = $canUpdateContainer;
+ $this->updatesContainer = $updatesContainer;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+
+ $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'));
+
+ $this->canUpdateContainer->passes($object);
+
+ $query = $this->updatesContainer->execute($container, $object);
+
+ return $this->resourceResponse(new ContainerResource($query));
+
+ }
+
+}
diff --git a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
similarity index 87%
rename from app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
index 5c17b99f..28e77a8c 100644
--- a/app/Classes/Modules/Packages/ControllersLogic/CreatePackageLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
@@ -1,16 +1,15 @@
canCreatePackageItem = $canCreatePackageItem;
$this->fetchesPackage = $fetchesPackage;
@@ -64,7 +64,7 @@ class CreatePackageItemLogic extends AbstractControllerLogic
$reference_no = rand(1000000, 9999999);
- $object = new PackageItemObject(
+ $object = new ItemObject(
$package->id,
$request->input('name'),
$reference_no,
@@ -79,7 +79,7 @@ class CreatePackageItemLogic extends AbstractControllerLogic
$query = $this->createsPackageItem->execute($object);
- return $this->resourceResponse(new PackageItemResource($query));
+ return $this->resourceResponse(new ItemResource($query));
}
diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/DeletePackageItemLogic.php
similarity index 69%
rename from app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/DeletePackageItemLogic.php
index 0e9ea84b..39bead68 100644
--- a/app/Classes/Modules/PackageItems/ControllersLogic/DeletePackageItemLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/DeletePackageItemLogic.php
@@ -4,9 +4,9 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
-use App\Classes\Modules\PackageItems\Services\DeletesPackageItem;
-use App\Classes\Modules\PackageItems\Services\FetchesPackageItem;
-use App\Classes\Modules\PackageItems\Standards\Rules\CanDeletePackageItem;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\DeletesItem;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\FetchesItem;
+use App\Classes\Modules\PackingLists\Standards\Rules\Packages\Items\CanDeleteItem;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -24,22 +24,22 @@ class DeletePackageItemLogic extends AbstractControllerLogic
}
- /** @var CanDeletePackageItem */
+ /** @var CanDeleteItem */
private $canDeletePackageItem;
- /** @var DeletesPackageItem */
+ /** @var DeletesItem */
private $deletesPackageItem;
- /** @var FetchesPackageItem */
+ /** @var FetchesItem */
private $fetchesPackageItem;
/**
* DeletePackageItemControllersLogic constructor.
- * @param CanDeletePackageItem $canDeletePackageItem
- * @param DeletesPackageItem $deletesPackageItem
- * @param FetchesPackageItem $fetchesPackageItem
+ * @param CanDeleteItem $canDeletePackageItem
+ * @param DeletesItem $deletesPackageItem
+ * @param FetchesItem $fetchesPackageItem
*/
- public function __construct(CanDeletePackageItem $canDeletePackageItem, DeletesPackageItem $deletesPackageItem, FetchesPackageItem $fetchesPackageItem)
+ public function __construct(CanDeleteItem $canDeletePackageItem, DeletesItem $deletesPackageItem, FetchesItem $fetchesPackageItem)
{
$this->canDeletePackageItem = $canDeletePackageItem;
$this->deletesPackageItem = $deletesPackageItem;
diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/FetchPackageItemLogic.php
similarity index 69%
rename from app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/FetchPackageItemLogic.php
index 4013720e..c09c1cc0 100644
--- a/app/Classes/Modules/PackageItems/ControllersLogic/FetchPackageItemLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/FetchPackageItemLogic.php
@@ -4,9 +4,9 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
-use App\Classes\Modules\PackageItems\Services\FetchesPackageItem;
-use App\Classes\Modules\PackageItems\Standards\Rules\CanFetchPackageItem;
-use App\Http\Resources\PackageItemResource;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\FetchesItem;
+use App\Classes\Modules\PackingLists\Standards\Rules\Packages\Items\CanFetchItem;
+use App\Http\Resources\ItemResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -24,18 +24,18 @@ class FetchPackageItemLogic extends AbstractControllerLogic
];
}
- /** @var CanFetchPackageItem */
+ /** @var CanFetchItem */
private $canFetchPackageItem;
- /** @var FetchesPackageItem */
+ /** @var FetchesItem */
private $fetchesPackageItem;
/**
* FetchPackageItemControllersLogic constructor.
- * @param CanFetchPackageItem $canFetchPackageItem
- * @param FetchesPackageItem $fetchesPackageItem
+ * @param CanFetchItem $canFetchPackageItem
+ * @param FetchesItem $fetchesPackageItem
*/
- public function __construct(CanFetchPackageItem $canFetchPackageItem, FetchesPackageItem $fetchesPackageItem)
+ public function __construct(CanFetchItem $canFetchPackageItem, FetchesItem $fetchesPackageItem)
{
$this->canFetchPackageItem = $canFetchPackageItem;
$this->fetchesPackageItem = $fetchesPackageItem;
@@ -55,7 +55,7 @@ class FetchPackageItemLogic extends AbstractControllerLogic
$query = $this->fetchesPackageItem->execute(['id' => $request->route('id')]);
- return $this->resourceResponse(new PackageItemResource($query));
+ return $this->resourceResponse(new ItemResource($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/ListPackageItemsLogic.php
similarity index 74%
rename from app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/ListPackageItemsLogic.php
index 268a9624..04bbaa27 100644
--- a/app/Classes/Modules/PackageItems/ControllersLogic/ListPackageItemsLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/ListPackageItemsLogic.php
@@ -4,9 +4,9 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
-use App\Classes\Modules\PackageItems\Services\ListsPackageItems;
-use App\Classes\Modules\PackageItems\Standards\Rules\CanListPackageItems;
-use App\Http\Resources\PackageItemResource;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\ListsPackageItems;
+use App\Classes\Modules\PackingLists\Standards\Rules\Packages\Items\CanListItems;
+use App\Http\Resources\ItemResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -24,7 +24,7 @@ class ListPackageItemsLogic extends AbstractControllerLogic
];
}
- /** @var CanListPackageItems */
+ /** @var CanListItems */
private $canListPackageItems;
/** @var ListsPackageItems */
@@ -32,10 +32,10 @@ class ListPackageItemsLogic extends AbstractControllerLogic
/**
* ListPackageItemsLogic constructor.
- * @param CanListPackageItems $canListPackageItems
+ * @param CanListItems $canListPackageItems
* @param ListsPackageItems $listsPackageItems
*/
- public function __construct(CanListPackageItems $canListPackageItems, ListsPackageItems $listsPackageItems)
+ public function __construct(CanListItems $canListPackageItems, ListsPackageItems $listsPackageItems)
{
$this->canListPackageItems = $canListPackageItems;
$this->listsPackageItems = $listsPackageItems;
@@ -55,7 +55,7 @@ class ListPackageItemsLogic extends AbstractControllerLogic
$query = $this->listsPackageItems->execute($this->listsPackageItems->deserializeFilters($request->input('filters')));
- return $this->collectionResponse(PackageItemResource::collection($query));
+ return $this->collectionResponse(ItemResource::collection($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
diff --git a/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/UpdatePackageItemLogic.php
similarity index 75%
rename from app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/UpdatePackageItemLogic.php
index 698a464f..7af2108e 100644
--- a/app/Classes/Modules/PackageItems/ControllersLogic/UpdatePackageItemLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/Items/UpdatePackageItemLogic.php
@@ -4,11 +4,11 @@ namespace App\Classes\Modules\PackageItems\ControllersLogic;
use App\Classes\General\Abstracts\AbstractControllerLogic;
-use App\Classes\Modules\PackageItems\Services\UpdatesPackageItem;
-use App\Classes\Modules\PackageItems\Services\FetchesPackageItem;
-use App\Classes\Modules\PackageItems\Standards\Rules\CanUpdatePackageItem;
-use App\Classes\Modules\PackageItems\DataTransferObjects\PackageItemObject;
-use App\Http\Resources\PackageItemResource;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\UpdatesPackageItem;
+use App\Classes\Modules\PackingLists\Services\Packages\Items\FetchesItem;
+use App\Classes\Modules\PackingLists\Standards\Rules\Packages\Items\CanUpdatePackageItem;
+use App\Classes\Modules\PackingLists\DataTransferObjects\ItemObject;
+use App\Http\Resources\ItemResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -32,16 +32,16 @@ class UpdatePackageItemLogic extends AbstractControllerLogic
/** @var UpdatesPackageItem */
private $updatesPackageItem;
- /** @var FetchesPackageItem */
+ /** @var FetchesItem */
private $fetchesPackageItem;
/**
* UpdatePackageItemLogic constructor.
* @param CanUpdatePackageItem $canUpdatePackageItem
* @param UpdatesPackageItem $updatesPackageItem
- * @param FetchesPackageItem $fetchesPackageItem
+ * @param FetchesItem $fetchesPackageItem
*/
- public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesPackageItem $fetchesPackageItem)
+ public function __construct(CanUpdatePackageItem $canUpdatePackageItem, UpdatesPackageItem $updatesPackageItem, FetchesItem $fetchesPackageItem)
{
$this->canUpdatePackageItem = $canUpdatePackageItem;
$this->updatesPackageItem = $updatesPackageItem;
@@ -58,7 +58,7 @@ class UpdatePackageItemLogic extends AbstractControllerLogic
{
$packageItem = $this->fetchesPackageItem->execute(['id' => $request->route('id')]);
- $object = new PackageItemObject(
+ $object = new ItemObject(
$packageItem->package_id,
$request->input('name'),
$packageItem->reference,
@@ -73,7 +73,7 @@ class UpdatePackageItemLogic extends AbstractControllerLogic
$query = $this->updatesPackageItem->execute($packageItem, $object);
- return $this->resourceResponse(new PackageItemResource($query));
+ return $this->resourceResponse(new ItemResource($query));
}
diff --git a/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php
similarity index 95%
rename from app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php
rename to app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php
index 69acf7b6..48aee051 100644
--- a/app/Classes/Modules/Packages/ControllersLogic/ListPackagesLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/ListPackagesLogic.php
@@ -1,6 +1,6 @@
reference = $reference;
$this->status = $status;
}
+ /**
+ * @return null|string
+ */
public function getReference(): ?string
{
return $this->reference;
}
+ /**
+ * @return int
+ */
public function getStatus(): int
{
return $this->status;
}
+
}
diff --git a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php b/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php
deleted file mode 100644
index 3c1aef5b..00000000
--- a/app/Classes/Modules/PackingLists/DataTransferObjects/PackingListPackageObject.php
+++ /dev/null
@@ -1,30 +0,0 @@
-packingListId = $packingListId;
- $this->packageId = $packageId;
- }
-
- public function getPackingListId(): int
- {
- return $this->packingListId;
- }
-
- public function getPackageId(): int
- {
- return $this->packageId;
- }
-
-}
diff --git a/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php
new file mode 100644
index 00000000..1fd7e0c2
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Processors/FetchWarehouseReceiveListFromVTPortalProcessor.php
@@ -0,0 +1,138 @@
+clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/GetPage', 'POST', json_decode('{"controller":"WarehouseList","view":"grid1","request":{"PageIndex":-1,"PageSize":1000,"SortExpression":"ModifiedOn DESC"}}'), '');
+ $response = $this->getResponseBody($loginRequest);
+ $orders = [];
+ $unknown = 0;
+
+ foreach ($response->Rows as $parcel){
+ $marking = explode('/', explode('CIEF/', $parcel[5])[1]);
+ $customerMarking = $marking[0];
+ if(!array_key_exists(1, $marking)){
+ $unknown++;
+ echo "found and order without order number";
+ continue;
+ }
+ $orderNumber = $marking[1];
+ $ctn = $parcel[9];
+ if(!array_key_exists($customerMarking, $orders)){
+ $orders[$customerMarking] = [
+ $orderNumber => [
+ 'ctn' => $ctn,
+ 'cbm' => $parcel[10],
+ ]
+ ];
+ continue;
+ }
+//
+
+ if(!array_key_exists($orderNumber, $orders[$customerMarking])){
+ $orders[$customerMarking][$orderNumber]['ctn'] = 0;
+ $orders[$customerMarking][$orderNumber]['cbm'] = 0;
+ }
+
+ $orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
+ $orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
+// $orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
+// $orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
+// if(!$orders->contains($customerMarking)){
+// $orders->push(collect([
+// $customerMarking => collect()
+// ]));
+// }
+// dd($orders);
+//
+// if(!$orders[$customerMarking]->contains($orderNumber)){
+// $orders[$customerMarking]->push(collect([
+// $orderNumber => [
+// 'ctn' => $ctn,
+// 'cbm' => $parcel[10]
+// ]
+// ]));
+// } else {
+// $orders[$customerMarking][$orderNumber]['ctn'] += $ctn;
+// $orders[$customerMarking][$orderNumber]['cbm'] += $parcel[10];
+// }
+ }
+ dd($orders, $unknown);
+
+ }
+
+ /**
+ * @throws GuzzleException
+ */
+ private function remoteLogin(){
+
+ $latest_cookie = [];
+ $cookieRequest = new \GuzzleHttp\Client(['cookies' => true]);
+ $cookieRequest->get('https://portalvt.azurewebsites.net');
+ foreach ($cookieRequest->getConfig('cookies')->toArray() as $key => $row) {
+ $latest_cookie[] = $row['Name'] . '=' . $row['Value'];
+ }
+
+ $latest_cookie = implode(';', $latest_cookie);
+
+
+ /** @var $loginRequest */
+ $loginRequest = $this->clientRequest('https://portalvt.azurewebsites.net/Services/DataControllerService.asmx/Login', 'POST', [
+ "username" => "CIEF",
+ "password" => "0122120880",
+ "createPersistentCookie" => true,
+ ], $latest_cookie, false);
+
+ Cache::store('file')->put('VT_COOKIE_CACHE', $latest_cookie.';AppVTCC='.$this->getResponseBody($loginRequest)->AccessToken, 3000);
+
+ }
+
+ /**
+ * @param string $url
+ * @param string $method
+ * @param $body
+ * @param string $cookie
+ * @param bool $requiresAuthentication
+ * @return ResponseInterface
+ * @throws GuzzleException
+ */
+ private function clientRequest(string $url, string $method, $body, string $cookie, $requiresAuthentication = true){
+
+ if($requiresAuthentication) {
+ if(!Cache::has('VT_COOKIE_CACHE')){
+ $this->remoteLogin();
+ }
+ }
+
+ $client = new \GuzzleHttp\Client(
+ [
+ 'cookies' => true,
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Cookie' => Cache::has('VT_COOKIE_CACHE') ? Cache::get('VT_COOKIE_CACHE'):$cookie
+ ]
+ ]
+ );
+
+ $request = $client->request($method, $url, [\GuzzleHttp\RequestOptions::JSON => $body]);
+
+ return $request;
+ }
+
+ private function getResponseBody(ResponseInterface $request){
+ return json_decode($request->getBody()->getContents())->d;
+ }
+}
diff --git a/app/Classes/Modules/ContainerPackingLists/Services/CreatesContainerPackingList.php b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php
similarity index 54%
rename from app/Classes/Modules/ContainerPackingLists/Services/CreatesContainerPackingList.php
rename to app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php
index 07c3e135..f4172753 100644
--- a/app/Classes/Modules/ContainerPackingLists/Services/CreatesContainerPackingList.php
+++ b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainer.php
@@ -1,21 +1,21 @@
packing_list_id = $object->getPackingListId();
$model->container_reference = $object->getContainerReference();
diff --git a/app/Classes/Modules/PackingLists/Services/Containers/DeletesContainer.php b/app/Classes/Modules/PackingLists/Services/Containers/DeletesContainer.php
new file mode 100644
index 00000000..8453eb7d
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Containers/DeletesContainer.php
@@ -0,0 +1,19 @@
+handler($model);
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/Services/Containers/FetchesContainer.php b/app/Classes/Modules/PackingLists/Services/Containers/FetchesContainer.php
new file mode 100644
index 00000000..a6bc152c
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Containers/FetchesContainer.php
@@ -0,0 +1,33 @@
+repository = $repository;
+ }
+
+
+ /**
+ * @return Builder
+ */
+ public function getRepository(): Builder
+ {
+ return $this->repository->newQuery();
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/Services/Containers/ListsContainers.php b/app/Classes/Modules/PackingLists/Services/Containers/ListsContainers.php
new file mode 100644
index 00000000..559d7fcc
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Containers/ListsContainers.php
@@ -0,0 +1,33 @@
+repository = $repository;
+ }
+
+
+ /**
+ * @return Builder
+ */
+ function getRepository(): Builder
+ {
+ return $this->repository->newQuery();
+ }
+}
diff --git a/app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php
similarity index 50%
rename from app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php
rename to app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php
index 649e3077..c3f6f1a4 100644
--- a/app/Classes/Modules/ContainerPackingLists/Services/UpdatesContainerPackingList.php
+++ b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainer.php
@@ -1,21 +1,21 @@
container_reference = $object->getContainerReference();
$model->container_type = $object->getContainerType();
diff --git a/app/Classes/Modules/Packages/Services/CreatesPackage.php b/app/Classes/Modules/PackingLists/Services/Packages/CreatesPackage.php
similarity index 85%
rename from app/Classes/Modules/Packages/Services/CreatesPackage.php
rename to app/Classes/Modules/PackingLists/Services/Packages/CreatesPackage.php
index e7c8ad94..ef9f7623 100644
--- a/app/Classes/Modules/Packages/Services/CreatesPackage.php
+++ b/app/Classes/Modules/PackingLists/Services/Packages/CreatesPackage.php
@@ -1,9 +1,9 @@
package_id = $object->getPackageId();
$model->name = $object->getName();
$model->reference = $object->getReference();
diff --git a/app/Classes/Modules/PackingLists/Services/Packages/Items/DeletesItem.php b/app/Classes/Modules/PackingLists/Services/Packages/Items/DeletesItem.php
new file mode 100644
index 00000000..51cf6253
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Packages/Items/DeletesItem.php
@@ -0,0 +1,19 @@
+handler($model);
+ }
+}
diff --git a/app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php b/app/Classes/Modules/PackingLists/Services/Packages/Items/FetchesItem.php
similarity index 60%
rename from app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php
rename to app/Classes/Modules/PackingLists/Services/Packages/Items/FetchesItem.php
index a31b95e0..6b54c68f 100644
--- a/app/Classes/Modules/PackageItems/Services/FetchesPackageItem.php
+++ b/app/Classes/Modules/PackingLists/Services/Packages/Items/FetchesItem.php
@@ -1,23 +1,23 @@
repository = $repository;
}
diff --git a/app/Classes/Modules/PackageItems/Services/ListsPackageItems.php b/app/Classes/Modules/PackingLists/Services/Packages/Items/ListsPackageItems.php
similarity index 67%
rename from app/Classes/Modules/PackageItems/Services/ListsPackageItems.php
rename to app/Classes/Modules/PackingLists/Services/Packages/Items/ListsPackageItems.php
index 5a616642..e5444db4 100644
--- a/app/Classes/Modules/PackageItems/Services/ListsPackageItems.php
+++ b/app/Classes/Modules/PackingLists/Services/Packages/Items/ListsPackageItems.php
@@ -1,23 +1,23 @@
repository = $repository;
}
diff --git a/app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php b/app/Classes/Modules/PackingLists/Services/Packages/Items/UpdatesItem.php
similarity index 63%
rename from app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php
rename to app/Classes/Modules/PackingLists/Services/Packages/Items/UpdatesItem.php
index 68a15ce2..e33e5a45 100644
--- a/app/Classes/Modules/PackageItems/Services/UpdatesPackageItem.php
+++ b/app/Classes/Modules/PackingLists/Services/Packages/Items/UpdatesItem.php
@@ -1,14 +1,14 @@
name = $object->getName();
$model->reference = $object->getReference();
diff --git a/app/Classes/Modules/Packages/Services/ListsPackages.php b/app/Classes/Modules/PackingLists/Services/Packages/ListsPackages.php
similarity index 90%
rename from app/Classes/Modules/Packages/Services/ListsPackages.php
rename to app/Classes/Modules/PackingLists/Services/Packages/ListsPackages.php
index 40bdd5bb..5f6f2e97 100644
--- a/app/Classes/Modules/Packages/Services/ListsPackages.php
+++ b/app/Classes/Modules/PackingLists/Services/Packages/ListsPackages.php
@@ -1,6 +1,6 @@
containerPackingListValidation = $containerPackingListValidation;
- }
-
-
- /**
- * @return bool
- */
- protected function authorized(): bool
- {
- // TODO Set Authorization rules
- return true;
-
- }
-
- /**
- * @param PackingListObject $object
- * @return bool
- * @throws \App\Classes\Exceptions\RequestValidationException
- */
- protected function validators($object): bool
- {
- return $this->containerPackingListValidation->validate($object);
-
- }
-
-
- /**
- * @param PackingListObject $object
- * @return bool
- */
- protected function criteria($object): bool
- {
- return true;
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php b/app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanCreateContainer.php
similarity index 80%
rename from app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php
rename to app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanCreateContainer.php
index d12e0aa3..7163461d 100644
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanCreateContainerPackingList.php
+++ b/app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanCreateContainer.php
@@ -1,13 +1,13 @@
containerPackingListValidation = $containerPackingListValidation;
}
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanListContainerPackingLists.php b/app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanDeleteContainer.php
similarity index 58%
rename from app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanListContainerPackingLists.php
rename to app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanDeleteContainer.php
index 5b2bc0b3..3c4df10e 100644
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Rules/CanListContainerPackingLists.php
+++ b/app/Classes/Modules/PackingLists/Standards/Rules/Containers/CanDeleteContainer.php
@@ -1,12 +1,12 @@
ContainerValidation = $ContainerValidation;
+ }
+
+
+ /**
+ * @return bool
+ */
+ protected function authorized(): bool
+ {
+ // TODO Set Authorization rules
+ return true;
+
+ }
+
+ /**
+ * @param ContainerObject $object
+ * @return bool
+ * @throws \App\Classes\Exceptions\RequestValidationException
+ */
+ protected function validators($object): bool
+ {
+ return $this->ContainerValidation->validate($object);
+
+ }
+
+
+ /**
+ * @param ContainerObject $object
+ * @return bool
+ */
+ protected function criteria($object): bool
+ {
+ return true;
+ }
+
+}
diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanCreatePackage.php
similarity index 81%
rename from app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php
rename to app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanCreatePackage.php
index d40b1591..1e6159af 100644
--- a/app/Classes/Modules/Packages/Standards/Rules/CanCreatePackage.php
+++ b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanCreatePackage.php
@@ -1,11 +1,11 @@
packageItemValidation = $packageItemValidation;
}
diff --git a/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanDeletePackage.php
similarity index 80%
rename from app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php
rename to app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanDeletePackage.php
index 80139d86..cdf793a8 100644
--- a/app/Classes/Modules/Packages/Standards/Rules/CanDeletePackage.php
+++ b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/CanDeletePackage.php
@@ -1,10 +1,10 @@
packageItemValidation = $packageItemValidation;
}
@@ -34,7 +34,7 @@ class CanCreatePackageItem extends AbstractRule
}
/**
- * @param PackageItemObject $object
+ * @param ItemObject $object
* @return bool
* @throws \App\Classes\Exceptions\RequestValidationException
*/
@@ -46,7 +46,7 @@ class CanCreatePackageItem extends AbstractRule
/**
- * @param PackageItemObject $object
+ * @param ItemObject $object
* @return bool
*/
protected function criteria($object): bool
diff --git a/app/Classes/Modules/PackageItems/Standards/Rules/CanFetchPackageItem.php b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/Items/CanDeleteItem.php
similarity index 63%
rename from app/Classes/Modules/PackageItems/Standards/Rules/CanFetchPackageItem.php
rename to app/Classes/Modules/PackingLists/Standards/Rules/Packages/Items/CanDeleteItem.php
index c0fd2a9b..e68a12ec 100644
--- a/app/Classes/Modules/PackageItems/Standards/Rules/CanFetchPackageItem.php
+++ b/app/Classes/Modules/PackingLists/Standards/Rules/Packages/Items/CanDeleteItem.php
@@ -1,12 +1,12 @@
PackageItemValidation = $PackageItemValidation;
}
@@ -34,7 +34,7 @@ class CanUpdatePackageItem extends AbstractRule
}
/**
- * @param PackageItemObject $object
+ * @param ItemObject $object
* @return bool
* @throws \App\Classes\Exceptions\RequestValidationException
*/
@@ -46,7 +46,7 @@ class CanUpdatePackageItem extends AbstractRule
/**
- * @param PackageItemObject $object
+ * @param ItemObject $object
* @return bool
*/
protected function criteria($object): bool
diff --git a/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php
deleted file mode 100644
index 0ff94dc7..00000000
--- a/app/Classes/Modules/PackingLists/Standards/Validators/ContainerPackingListValidation.php
+++ /dev/null
@@ -1,45 +0,0 @@
- $object->getPackingListId(),
- 'reference' => $object->getContainerReference(),
- 'container_type' => $object->getContainerType(),
- 'seal_reference' => $object->getSealReference(),
- ];
- }
-
- /**
- * @return array
- */
- protected function rules(): array {
- return [
- 'status' => 'required',
- 'reference' => 'required',
- 'container_type' => 'required',
- 'seal_reference' => 'required',
- ];
- }
-
- /**
- * @return array
- */
- protected function messages(): array {
- return [];
- }
-
-}
diff --git a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php b/app/Classes/Modules/PackingLists/Standards/Validators/ContainerValidation.php
similarity index 79%
rename from app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php
rename to app/Classes/Modules/PackingLists/Standards/Validators/ContainerValidation.php
index d8ed3fa9..f965e331 100644
--- a/app/Classes/Modules/ContainerPackingLists/Standards/Validators/ContainerPackingListValidation.php
+++ b/app/Classes/Modules/PackingLists/Standards/Validators/ContainerValidation.php
@@ -1,16 +1,16 @@
completeStepProcessor = $completeStepProcessor;
+ }
+
+ protected function notification():array {
+ return [
+ 'title' => 'Completed Order Step',
+ 'message' => 'You have successfully completed a order step'
+ ];
+ }
+
+ public function logic(Request $request) : JsonResponse {
+
+ $completedStep = $this->completeStepProcessor->execute($request);
+
+ return $this->resourceResponse(new StepResource($completedStep));
+ }
+}
diff --git a/app/Classes/Modules/OrderSteps/DataTransferObjects/OrderStepsObject.php b/app/Classes/Modules/Steps/DataTransferObjects/StepsObject.php
similarity index 93%
rename from app/Classes/Modules/OrderSteps/DataTransferObjects/OrderStepsObject.php
rename to app/Classes/Modules/Steps/DataTransferObjects/StepsObject.php
index 4266c407..1c75079a 100644
--- a/app/Classes/Modules/OrderSteps/DataTransferObjects/OrderStepsObject.php
+++ b/app/Classes/Modules/Steps/DataTransferObjects/StepsObject.php
@@ -1,11 +1,11 @@
fetchesOrderStep = $fetchesOrderStep;
+ $this->fetchesStep = $fetchesStep;
$this->unityUpdateObligation = $unityUpdateObligation;
- $this->canUpdateOrderStep = $canUpdateOrderStep;
- $this->updatesOrderStep = $updatesOrderStep;
+ $this->canUpdateStep = $canUpdateStep;
+ $this->updatesStep = $updatesStep;
$this->updatesOrderCurrentStep = $updatesOrderCurrentStep;
}
public function execute(Request $request) {
- $orderStep = $this->fetchesOrderStep->getRepository()->where('id', $request->get('id'))->first();
+ $orderStep = $this->fetchesStep->getRepository()->where('id', $request->get('id'))->first();
$contractEntity = $orderStep->orderRole()->where('order_id',$orderStep->owner_id)->first();
@@ -52,7 +52,7 @@ class CompletesOrderStepProcessor
//Unity Contract Obligation Completed Status = 3
if(isset($completed->status) && $completed->status == OrderStatus::COMPLETE){
- $orderStepObject = new OrderStepsObject(
+ $orderStepObject = new StepsObject(
$contractEntity->company_module_id,
$orderStep->reference,
true,
@@ -64,9 +64,9 @@ class CompletesOrderStepProcessor
$orderStep->hash_id
);
- $this->canUpdateOrderStep->passes($orderStepObject);
+ $this->canUpdateStep->passes($orderStepObject);
- $updatedOrderStep = $this->updatesOrderStep->execute($orderStep, $orderStepObject);
+ $updatedStep = $this->updatesStep->execute($orderStep, $orderStepObject);
$this->updatesOrderCurrentStep->execute( $orderStep->order->id, $orderStep->reference);
}
diff --git a/app/Classes/Modules/Steps/Processors/CreateStepsProcessor.php b/app/Classes/Modules/Steps/Processors/CreateStepsProcessor.php
new file mode 100644
index 00000000..d7b4e95e
--- /dev/null
+++ b/app/Classes/Modules/Steps/Processors/CreateStepsProcessor.php
@@ -0,0 +1,47 @@
+canCreateStep = $canCreateStep;
+ $this->createsSteps = $createsSteps;
+ $this->fetchesOrder = $fetchesOrder;
+ $this->fetchesSteps = $fetchesSteps;
+ }
+
+ public function execute(Model $order, string $currentStep, $appointee_id){
+
+ $order_steps_object = new StepsObject( $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null, 0, null);
+
+ $this->canCreateStep->passes($order_steps_object);
+
+ return $this->createsSteps->execute($order, $order_steps_object);
+
+ }
+}
diff --git a/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php b/app/Classes/Modules/Steps/Processors/GenerateStepsProcessor.php
similarity index 56%
rename from app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php
rename to app/Classes/Modules/Steps/Processors/GenerateStepsProcessor.php
index 3426522f..9b40a3ed 100644
--- a/app/Classes/Modules/OrderSteps/Processors/GenerateOrderStepsProcessor.php
+++ b/app/Classes/Modules/Steps/Processors/GenerateStepsProcessor.php
@@ -1,41 +1,41 @@
updatesOrderCurrentStep = $updatesOrderCurrentStep;
- $this->createsManyOrderStep = $createsManyOrderStep;
- $this->updateOrderStepProcessors = $updateOrderStepProcessors;
+ $this->createsManyStep = $createsManyStep;
+ $this->updateStepProcessors = $updateStepProcessors;
$this->getUnityContractObligationsProcessor = $getUnityContractObligationsProcessor;
}
@@ -46,7 +46,7 @@ class GenerateOrderStepsProcessor
//TODO: Collect hash_id & search company module table for appointee id
foreach($obligations as $step){
- $orderSteps[] = new OrderStepsObject(
+ $orderSteps[] = new StepsObject(
$orderRoles[0]->company_module_id,
$step->name,
true,
@@ -59,11 +59,11 @@ class GenerateOrderStepsProcessor
);
}
- $this->createsManyOrderStep->execute($order, $orderSteps);
+ $this->createsManyStep->execute($order, $orderSteps);
- $this->updatesOrderCurrentStep->execute($order->id, OrderSteps::PACKING);
+ $this->updatesOrderCurrentStep->execute($order->id, Steps::PACKING);
- $this->updateOrderStepProcessors->execute(OrderSteps::PROCESSING);
+ $this->updateStepProcessors->execute(Steps::PROCESSING);
}
}
diff --git a/app/Classes/Modules/Steps/Processors/UpdateStepsProcessor.php b/app/Classes/Modules/Steps/Processors/UpdateStepsProcessor.php
new file mode 100644
index 00000000..6f26a3b2
--- /dev/null
+++ b/app/Classes/Modules/Steps/Processors/UpdateStepsProcessor.php
@@ -0,0 +1,43 @@
+canUpdateStep = $canUpdateStep;
+ $this->updatesSteps = $updatesSteps;
+ $this->fetchesSteps = $fetchesSteps;
+ }
+
+ public function execute(string $currentStep){
+
+ $orderStepsObject = new StepsObject(0,$currentStep, 0, 0, 1, 1, null, 0, null);
+
+ $this->canUpdateStep->passes($orderStepsObject);
+
+ $orderSteps = $this->fetchesSteps->execute(['reference'=>$currentStep]);
+
+ $this->updatesSteps->execute($orderSteps, $orderStepsObject);
+
+ }
+}
diff --git a/app/Classes/Modules/OrderSteps/Services/CreatesManyOrderSteps.php b/app/Classes/Modules/Steps/Services/CreatesManySteps.php
similarity index 75%
rename from app/Classes/Modules/OrderSteps/Services/CreatesManyOrderSteps.php
rename to app/Classes/Modules/Steps/Services/CreatesManySteps.php
index 39a0bd60..a2f4099f 100644
--- a/app/Classes/Modules/OrderSteps/Services/CreatesManyOrderSteps.php
+++ b/app/Classes/Modules/Steps/Services/CreatesManySteps.php
@@ -1,14 +1,14 @@
orderSteps()->createMany($orderStepsModel);
}
diff --git a/app/Classes/Modules/OrderSteps/Services/CreatesOrderSteps.php b/app/Classes/Modules/Steps/Services/CreatesSteps.php
similarity index 56%
rename from app/Classes/Modules/OrderSteps/Services/CreatesOrderSteps.php
rename to app/Classes/Modules/Steps/Services/CreatesSteps.php
index 7b44589d..0cadbe55 100644
--- a/app/Classes/Modules/OrderSteps/Services/CreatesOrderSteps.php
+++ b/app/Classes/Modules/Steps/Services/CreatesSteps.php
@@ -1,19 +1,25 @@
appointee_id = $orderSteps->getAppointeeId();
$orderStepsModel->reference = $orderSteps->getReference();
diff --git a/app/Classes/Modules/Steps/Services/FetchesSteps.php b/app/Classes/Modules/Steps/Services/FetchesSteps.php
new file mode 100644
index 00000000..612ba628
--- /dev/null
+++ b/app/Classes/Modules/Steps/Services/FetchesSteps.php
@@ -0,0 +1,32 @@
+repository = $repository;
+ }
+
+
+ /**
+ * @return Builder
+ */
+ public function getRepository(): Builder
+ {
+ return $this->repository->newQuery();
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/OrderSteps/Services/ListsOrderSteps.php b/app/Classes/Modules/Steps/Services/ListsSteps.php
similarity index 59%
rename from app/Classes/Modules/OrderSteps/Services/ListsOrderSteps.php
rename to app/Classes/Modules/Steps/Services/ListsSteps.php
index e4aa2d87..3d1bad19 100644
--- a/app/Classes/Modules/OrderSteps/Services/ListsOrderSteps.php
+++ b/app/Classes/Modules/Steps/Services/ListsSteps.php
@@ -1,23 +1,23 @@
repository = $repository;
}
diff --git a/app/Classes/Modules/OrderSteps/Services/UpdatesOrderSteps.php b/app/Classes/Modules/Steps/Services/UpdatesSteps.php
similarity index 51%
rename from app/Classes/Modules/OrderSteps/Services/UpdatesOrderSteps.php
rename to app/Classes/Modules/Steps/Services/UpdatesSteps.php
index 9966e9d9..ed4ec50e 100644
--- a/app/Classes/Modules/OrderSteps/Services/UpdatesOrderSteps.php
+++ b/app/Classes/Modules/Steps/Services/UpdatesSteps.php
@@ -1,15 +1,15 @@
status = $object->getStatus();
$model->contract_status = $object->getContractStatus();
diff --git a/app/Classes/Modules/OrderSteps/Standards/Rules/CanCreateOrderStep.php b/app/Classes/Modules/Steps/Standards/Rules/CanCreateStep.php
similarity index 70%
rename from app/Classes/Modules/OrderSteps/Standards/Rules/CanCreateOrderStep.php
rename to app/Classes/Modules/Steps/Standards/Rules/CanCreateStep.php
index 65bec43a..b7778830 100644
--- a/app/Classes/Modules/OrderSteps/Standards/Rules/CanCreateOrderStep.php
+++ b/app/Classes/Modules/Steps/Standards/Rules/CanCreateStep.php
@@ -1,15 +1,15 @@
orderValidation = $orderValidation;
}
diff --git a/app/Classes/Modules/OrderSteps/Standards/Rules/CanUpdateOrderStep.php b/app/Classes/Modules/Steps/Standards/Rules/CanUpdateStep.php
similarity index 68%
rename from app/Classes/Modules/OrderSteps/Standards/Rules/CanUpdateOrderStep.php
rename to app/Classes/Modules/Steps/Standards/Rules/CanUpdateStep.php
index 0ac8488f..42f53932 100644
--- a/app/Classes/Modules/OrderSteps/Standards/Rules/CanUpdateOrderStep.php
+++ b/app/Classes/Modules/Steps/Standards/Rules/CanUpdateStep.php
@@ -1,15 +1,15 @@
orderValidation = $orderValidation;
}
diff --git a/app/Classes/Modules/OrderSteps/Standards/Validators/CreateOrderStepValidation.php b/app/Classes/Modules/Steps/Standards/Validators/CreateStepValidation.php
similarity index 85%
rename from app/Classes/Modules/OrderSteps/Standards/Validators/CreateOrderStepValidation.php
rename to app/Classes/Modules/Steps/Standards/Validators/CreateStepValidation.php
index 4721a459..161b13a6 100644
--- a/app/Classes/Modules/OrderSteps/Standards/Validators/CreateOrderStepValidation.php
+++ b/app/Classes/Modules/Steps/Standards/Validators/CreateStepValidation.php
@@ -1,11 +1,11 @@
canCreateTransport = $canCreateTransport;
- $this->fetchesContainerPackingList = $fetchesContainerPackingList;
+ $this->fetchesContainer = $fetchesContainer;
$this->createsTransport = $createsTransport;
}
@@ -62,7 +62,7 @@ class CreateTransportLogic extends AbstractControllerLogic
$this->canCreateTransport->passes($object);
- $query = $this->createsTransport->execute($this->fetchesContainerPackingList->execute(['id' => $request->input('container_id')]), $object);
+ $query = $this->createsTransport->execute($this->fetchesContainer->execute(['id' => $request->input('container_id')]), $object);
return $this->resourceResponse(new TransportResource($query));
diff --git a/app/Classes/Modules/Transports/Services/CreatesTransport.php b/app/Classes/Modules/Transports/Services/CreatesTransport.php
index 53981bd8..1011e139 100644
--- a/app/Classes/Modules/Transports/Services/CreatesTransport.php
+++ b/app/Classes/Modules/Transports/Services/CreatesTransport.php
@@ -6,18 +6,18 @@ use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\General\Eloquent\AbstractUpdateRelationshipRecord;
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
use App\Models\Transport;
-use App\Models\ContainerPackingList;
+use App\Models\Container;
class CreatesTransport extends AbstractUpdateRelationshipRecord
{
/**
- * @param ContainerPackingList $containerPackingList
+ * @param Container $containerPackingList
* @param TransportObject $object
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
- public function execute(ContainerPackingList $containerPackingList, TransportObject $object) {
+ public function execute(Container $containerPackingList, TransportObject $object) {
$model = new Transport();
$model->type = $object->getType();
diff --git a/app/Classes/ValueObjects/Constants/ContainerTypes.php b/app/Classes/ValueObjects/Constants/ContainerTypes.php
new file mode 100644
index 00000000..776d492f
--- /dev/null
+++ b/app/Classes/ValueObjects/Constants/ContainerTypes.php
@@ -0,0 +1,73 @@
+ [
+ 'name' => '20\' Dry Container',
+ 'internal_dimensions' => [
+ 'length' => 589.6,
+ 'width' => 235,
+ 'height' => 238.5
+ ],
+ 'door_opening' => [
+ 'width' => 234.0,
+ 'height' => 227.4
+ ],
+ 'tare_weight' => 2200,
+ 'payload' => 24850
+ ],
+ self::FORTY_FEET_DRY_CONTAINER => [
+ 'name' => '40\' Dry Container',
+ 'internal_dimensions' => [
+ 'length' => 1203.5,
+ 'width' => 234.7,
+ 'height' => 234.9
+ ],
+ 'door_opening' => [
+ 'width' => 234.3,
+ 'height' => 227.8
+ ],
+ 'tare_weight' => 3700,
+ 'payload' => 29710
+ ],
+ self::FORTY_FEET_HIGH_CUBE_CONTAINER => [
+ 'name' => '40\' High Cube Container',
+ 'internal_dimensions' => [
+ 'length' => 1205.6,
+ 'width' => 234.7,
+ 'height' => 268.4
+ ],
+ 'door_opening' => [
+ 'width' => 234.3,
+ 'height' => 258.4
+ ],
+ 'tare_weight' => 3000,
+ 'payload' => 29600
+ ],
+ self::FORTY_FIVE_FEET_HIGH_CUBE_CONTAINER => [
+ 'name' => '45\' High Cube Container',
+ 'internal_dimensions' => [
+ 'length' => 1358.2,
+ 'width' => 234.7,
+ 'height' => 269.6
+ ],
+ 'door_opening' => [
+ 'width' => 234,
+ 'height' => 258.4
+ ],
+ 'tare_weight' => 2900,
+ 'payload' => 24250
+ ]
+ ];
+
+}
\ No newline at end of file
diff --git a/app/Classes/ValueObjects/Constants/OrderEntity.php b/app/Classes/ValueObjects/Constants/OrderEntity.php
deleted file mode 100644
index 6151e4ff..00000000
--- a/app/Classes/ValueObjects/Constants/OrderEntity.php
+++ /dev/null
@@ -1,15 +0,0 @@
- [
+ Steps::ORDER_PROCESSING_STEP => [
'initial_name' => 'processing order',
'final_name' => 'order confirmed',
'description' => 'Order created and pending confirmation',
@@ -45,13 +45,13 @@ final class OrderSteps
];
public const ORDER_PRIMARY_MODULAR_STEPS = [
- OrderSteps::ORDER_SHIPPING_STEP => [
+ Steps::ORDER_SHIPPING_STEP => [
'initial_name' => 'shipping',
'final_name' => 'shipped out',
'description' => 'Order is Loaded to Container, waiting for Shipment',
'sequence' => 1
],
- OrderSteps::ORDER_DELIVERY_STEP => [
+ Steps::ORDER_DELIVERY_STEP => [
'initial_name' => 'delivery',
'final_name' => 'Received',
'description' => 'Order out for delivery soon',
@@ -60,17 +60,17 @@ final class OrderSteps
];
public const ORDER_MODULAR_STEPS = [
- OrderSteps::ORDER_MODULE_WAREHOUSE => [
+ Steps::ORDER_MODULE_WAREHOUSE => [
'china_warehouse' => [
- 'previous' => OrderSteps::ORDER_PROCESSING_STEP,
- 'next' => OrderSteps::ORDER_SHIPPING_STEP,
+ 'previous' => Steps::ORDER_PROCESSING_STEP,
+ 'next' => Steps::ORDER_SHIPPING_STEP,
'steps' => [
- OrderSteps::ORDER_WAREHOUSE_RECEIVING_STEP => [
+ Steps::ORDER_WAREHOUSE_RECEIVING_STEP => [
'initial_name' => 'pending supplier',
'final_name' => 'arrived at warehouse',
'description' => 'Waiting for supplier to deliver order to warehouse'
],
- OrderSteps::ORDER_WAREHOUSE_PACKING_STEP => [
+ Steps::ORDER_WAREHOUSE_PACKING_STEP => [
'initial_name' => 'packing',
'final_name' => 'packed',
'description' => 'Packing order into shipping container'
@@ -78,15 +78,15 @@ final class OrderSteps
]
],
'malaysia_warehouse' => [
- 'previous' => OrderSteps::ORDER_SHIPPING_STEP,
- 'next' => OrderSteps::ORDER_DELIVERY_STEP,
+ 'previous' => Steps::ORDER_SHIPPING_STEP,
+ 'next' => Steps::ORDER_DELIVERY_STEP,
'steps' => [
- OrderSteps::ORDER_WAREHOUSE_ARRIVAL_STEP => [
+ Steps::ORDER_WAREHOUSE_ARRIVAL_STEP => [
'initial_name' => 'pending arrival',
'final_name' => 'arrived at warehouse',
'description' => 'Waiting for order\'s arrival & custom clearance'
],
- OrderSteps::ORDER_WAREHOUSE_UNPACKING_STEP => [
+ Steps::ORDER_WAREHOUSE_UNPACKING_STEP => [
'initial_name' => 'unpacking',
'final_name' => 'unpacked',
'description' => 'Unpacking order from shipping container'
@@ -94,12 +94,12 @@ final class OrderSteps
]
]
],
- OrderSteps::ORDER_MODULE_NO_WAREHOUSE => [
+ Steps::ORDER_MODULE_NO_WAREHOUSE => [
'pending_arrival' => [
- 'previous' => OrderSteps::ORDER_PROCESSING_STEP,
- 'next' => OrderSteps::ORDER_SHIPPING_STEP,
+ 'previous' => Steps::ORDER_PROCESSING_STEP,
+ 'next' => Steps::ORDER_SHIPPING_STEP,
'steps' => [
- OrderSteps::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER => [
+ Steps::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER => [
'initial_name' => 'pending supplier',
'final_name' => 'supplier packed order',
'description' => 'Waiting for supplier to pack order for shipping'
@@ -111,20 +111,20 @@ final class OrderSteps
];
public const COMPANY_ORDER_PROCESSING = [
- OrderSteps::ORDER_PROCESSING_STEP,
- OrderSteps::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER,
- OrderSteps::ORDER_WAREHOUSE_RECEIVING_STEP
+ Steps::ORDER_PROCESSING_STEP,
+ Steps::ORDER_NO_WAREHOUSE_PENDING_SUPPLIER,
+ Steps::ORDER_WAREHOUSE_RECEIVING_STEP
];
public const COMPANY_ORDER_SHIPPING = [
- OrderSteps::ORDER_WAREHOUSE_PACKING_STEP,
- OrderSteps::ORDER_SHIPPING_STEP
+ Steps::ORDER_WAREHOUSE_PACKING_STEP,
+ Steps::ORDER_SHIPPING_STEP
];
public const COMPANY_ORDER_RECEIVING = [
- OrderSteps::ORDER_WAREHOUSE_ARRIVAL_STEP,
- OrderSteps::ORDER_WAREHOUSE_UNPACKING_STEP,
- OrderSteps::ORDER_DELIVERY_STEP
+ Steps::ORDER_WAREHOUSE_ARRIVAL_STEP,
+ Steps::ORDER_WAREHOUSE_UNPACKING_STEP,
+ Steps::ORDER_DELIVERY_STEP
];
@@ -134,28 +134,28 @@ final class OrderSteps
public const WAREHOUSE_CANCEL_CATEGORY = 'cancel';
public const WAREHOUSE_ORDER_RECEIVING = [
- OrderSteps::ORDER_WAREHOUSE_RECEIVING_STEP
+ Steps::ORDER_WAREHOUSE_RECEIVING_STEP
];
public const WAREHOUSE_ORDER_SHIPPING = [
- OrderSteps::ORDER_WAREHOUSE_PACKING_STEP,
- OrderSteps::ORDER_SHIPPING_STEP,
+ Steps::ORDER_WAREHOUSE_PACKING_STEP,
+ Steps::ORDER_SHIPPING_STEP,
];
public const WAREHOUSE_ORDER_COMPLETE = [
- OrderSteps::ORDER_WAREHOUSE_ARRIVAL_STEP,
- OrderSteps::ORDER_WAREHOUSE_UNPACKING_STEP,
- OrderSteps::ORDER_DELIVERY_STEP
+ Steps::ORDER_WAREHOUSE_ARRIVAL_STEP,
+ Steps::ORDER_WAREHOUSE_UNPACKING_STEP,
+ Steps::ORDER_DELIVERY_STEP
];
public const STEP_PROCESSOR = [
- OrderSteps::ORDER_PROCESSING_STEP => ConfirmsOrder::class,
- OrderSteps::ORDER_WAREHOUSE_RECEIVING_STEP => WarehouseReceivesOrder::class,
- OrderSteps::ORDER_WAREHOUSE_PACKING_STEP => WarehousePackOrder::class,
- OrderSteps::ORDER_SHIPPING_STEP => ShipOrder::class,
- OrderSteps::ORDER_WAREHOUSE_ARRIVAL_STEP => WarehouseArrivalOrder::class,
- OrderSteps::ORDER_WAREHOUSE_UNPACKING_STEP => WarehouseUnpackingOrder::class,
- OrderSteps::ORDER_DELIVERY_STEP => DeliverOrder::class,
+ Steps::ORDER_PROCESSING_STEP => ConfirmsOrder::class,
+ Steps::ORDER_WAREHOUSE_RECEIVING_STEP => WarehouseReceivesOrder::class,
+ Steps::ORDER_WAREHOUSE_PACKING_STEP => WarehousePackOrder::class,
+ Steps::ORDER_SHIPPING_STEP => ShipOrder::class,
+ Steps::ORDER_WAREHOUSE_ARRIVAL_STEP => WarehouseArrivalOrder::class,
+ Steps::ORDER_WAREHOUSE_UNPACKING_STEP => WarehouseUnpackingOrder::class,
+ Steps::ORDER_DELIVERY_STEP => DeliverOrder::class,
];
*/
}
diff --git a/app/Classes/ValueObjects/Constants/OrderWorkflow.php b/app/Classes/ValueObjects/Constants/OrderWorkflow.php
deleted file mode 100644
index ebfd24ea..00000000
--- a/app/Classes/ValueObjects/Constants/OrderWorkflow.php
+++ /dev/null
@@ -1,19 +0,0 @@
-[],
- OrderSteps::PACKING=>[],
- OrderSteps::SHIPPING=>[
- OrderSteps::WAREHOUSE_ARRIVAL=>[],
- OrderSteps::WAREHOUSE_LOAD_CONTAINER=>[]
- ],
- OrderSteps::DELIVERY=>[
- OrderSteps::WAREHOUSE_RECEIVING=>[],
- OrderSteps::WAREHOUSE_UNLOAD_CONTAINER=>[]
- ],
- ];
-}
\ No newline at end of file
diff --git a/app/Http/Controllers/Documents/ApproveDocumentController.php b/app/Http/Controllers/Documents/ApproveDocumentController.php
new file mode 100644
index 00000000..ae55f51c
--- /dev/null
+++ b/app/Http/Controllers/Documents/ApproveDocumentController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Documents/ListDocumentsController.php b/app/Http/Controllers/Documents/ListDocumentsController.php
new file mode 100644
index 00000000..a440737d
--- /dev/null
+++ b/app/Http/Controllers/Documents/ListDocumentsController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Documents/RejectDocumentController.php b/app/Http/Controllers/Documents/RejectDocumentController.php
new file mode 100644
index 00000000..156d7d03
--- /dev/null
+++ b/app/Http/Controllers/Documents/RejectDocumentController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Documents/RenderDocumentController.php b/app/Http/Controllers/Documents/RenderDocumentController.php
new file mode 100644
index 00000000..690f99f9
--- /dev/null
+++ b/app/Http/Controllers/Documents/RenderDocumentController.php
@@ -0,0 +1,22 @@
+execute($request);
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php
new file mode 100644
index 00000000..9f93a08f
--- /dev/null
+++ b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php
@@ -0,0 +1,41 @@
+route('id'));
+ $deliveryAddress = $order->addresses()->where('status', ApprovalStatus::APPROVED)->first();
+ $warehouse= $order->orderRoles()->where('role_id', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee;
+
+ $warehouseAddress = $warehouse->addresses()->first();
+ $warehouseContacts = $warehouse->contacts;
+
+ $data = [
+ 'order' => $order,
+ 'marking' => $order->companyModule->connections()->first()->invitee_reference,
+ 'delivery_address' => $deliveryAddress,
+ 'warehouse_address' => $warehouseAddress,
+ 'warehouse_contacts' => $warehouseContacts,
+ ];
+
+ $pdf = LaravelMpdf::loadView('pdfs.qr', $data, [], [
+ 'title' => 'CIEF_ORDER_NO_'.$order->reference,
+ 'format' => 'A4-L',
+ 'orientation' => 'L',
+ 'margin_top' => '40px',
+ ]);
+
+ return $pdf->download('CIEF_ORDER_NO_'.$order->reference.'.pdf');
+ }
+
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Orders/FetchOrderController.php b/app/Http/Controllers/Orders/FetchOrderController.php
new file mode 100644
index 00000000..e5b78265
--- /dev/null
+++ b/app/Http/Controllers/Orders/FetchOrderController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php
index 257128c9..5b0a90ce 100644
--- a/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php
+++ b/app/Http/Controllers/PackingLists/Containers/CreateContainerPackingListController.php
@@ -2,18 +2,18 @@
namespace App\Http\Controllers\PackingLists\Containers;
-use App\Classes\Modules\ContainerPackingLists\ControllersLogic\CreateContainerPackingListLogic;
+use App\Classes\Modules\PackingLists\ControllersLogic\Containers\CreateContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
-class CreateContainerPackingListController
+class CreateContainerController
{
/**
* @param Request $request
- * @param CreateContainerPackingListLogic $logic
+ * @param CreateContainerLogic $logic
* @return JsonResponse
*/
- public function create(Request $request, CreateContainerPackingListLogic $logic): JsonResponse {
+ public function create(Request $request, CreateContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
diff --git a/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php
index 25cb6bb8..71afbbba 100644
--- a/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php
+++ b/app/Http/Controllers/PackingLists/Containers/DeleteContainerPackingListController.php
@@ -2,18 +2,18 @@
namespace App\Http\Controllers\PackingLists\Containers;
-use App\Classes\Modules\ContainerPackingLists\ControllersLogic\DeleteContainerPackingListLogic;
+use App\Classes\Modules\PackingLists\ControllersLogic\Containers\DeleteContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
-class DeleteContainerPackingListController
+class DeleteContainerController
{
/**
* @param Request $request
- * @param DeleteContainerPackingListLogic $logic
+ * @param DeleteContainerLogic $logic
* @return JsonResponse
*/
- public function delete(Request $request, DeleteContainerPackingListLogic $logic): JsonResponse {
+ public function delete(Request $request, DeleteContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
diff --git a/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php
index 0fecdb0a..b7125953 100644
--- a/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php
+++ b/app/Http/Controllers/PackingLists/Containers/FetchContainerPackingListController.php
@@ -2,18 +2,18 @@
namespace App\Http\Controllers\PackingLists\Containers;
-use App\Classes\Modules\ContainerPackingLists\ControllersLogic\FetchContainerPackingListLogic;
+use App\Classes\Modules\PackingLists\ControllersLogic\Containers\FetchContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
-class FetchContainerPackingListController
+class FetchContainerController
{
/**
* @param Request $request
- * @param FetchContainerPackingListLogic $logic
+ * @param FetchContainerLogic $logic
* @return JsonResponse
*/
- public function fetch(Request $request, FetchContainerPackingListLogic $logic): JsonResponse {
+ public function fetch(Request $request, FetchContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
diff --git a/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php b/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php
index 12c01a28..61084f53 100644
--- a/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php
+++ b/app/Http/Controllers/PackingLists/Containers/ListContainerPackingListsController.php
@@ -2,18 +2,18 @@
namespace App\Http\Controllers\PackingLists\Containers;
-use App\Classes\Modules\ContainerPackingLists\ControllersLogic\ListContainerPackingListsLogic;
+use App\Classes\Modules\PackingLists\ControllersLogic\Containers\ListContainersLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
-class ListContainerPackingListsController
+class ListContainersController
{
/**
* @param Request $request
- * @param ListContainerPackingListLogic $logic
+ * @param ListContainerLogic $logic
* @return JsonResponse
*/
- public function list(Request $request, ListContainerPackingListsLogic $logic): JsonResponse {
+ public function list(Request $request, ListContainersLogic $logic): JsonResponse {
return $logic->execute($request);
}
diff --git a/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php b/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php
index eac24070..8eef53f7 100644
--- a/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php
+++ b/app/Http/Controllers/PackingLists/Containers/UpdateContainerPackingListController.php
@@ -2,18 +2,18 @@
namespace App\Http\Controllers\PackingLists\Containers;
-use App\Classes\Modules\ContainerPackingLists\ControllersLogic\UpdateContainerPackingListLogic;
+use App\Classes\Modules\PackingLists\ControllersLogic\Containers\UpdateContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
-class UpdateContainerPackingListController
+class UpdateContainerController
{
/**
* @param Request $request
- * @param UpdateContainerPackingListLogic $logic
+ * @param UpdateContainerLogic $logic
* @return JsonResponse
*/
- public function update(Request $request, UpdateContainerPackingListLogic $logic): JsonResponse {
+ public function update(Request $request, UpdateContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
diff --git a/app/Http/Controllers/Packages/CreatePackageController.php b/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php
similarity index 75%
rename from app/Http/Controllers/Packages/CreatePackageController.php
rename to app/Http/Controllers/PackingLists/Packages/CreatePackageController.php
index 458936fa..a3f1ddbb 100644
--- a/app/Http/Controllers/Packages/CreatePackageController.php
+++ b/app/Http/Controllers/PackingLists/Packages/CreatePackageController.php
@@ -1,8 +1,8 @@
request->add(['id'=>$id]);
return $logic->execute($request);
diff --git a/app/Http/Controllers/TestSetup.php b/app/Http/Controllers/TestSetup.php
deleted file mode 100644
index b5ab03fc..00000000
--- a/app/Http/Controllers/TestSetup.php
+++ /dev/null
@@ -1,10 +0,0 @@
-addresses()->defaultAddress()->first();
+
+ /** @var CompanyModule $defaultAddress */
+ $defaultAddress = $defaultAddress ? $defaultAddress : $this->addresses()->first();
+
+ $connection = $this->inviters()->withPivot('invitee_reference')->first();
+ $marking = $connection ? $connection->pivot->invitee_reference:'';
+
+ return [
+ 'id' => $this->id,
+ 'type' => $this->type,
+ 'address' => new AddressResource($defaultAddress),
+ 'company' => new CompanyResource($this->whenLoaded('company')),
+ 'marking' => $marking
+ ];
+
+ }
+}
diff --git a/app/Http/Resources/CompanyResource.php b/app/Http/Resources/CompanyResource.php
index 726e1c36..8b3bf458 100644
--- a/app/Http/Resources/CompanyResource.php
+++ b/app/Http/Resources/CompanyResource.php
@@ -7,6 +7,7 @@ use App\Classes\ValueObjects\Constants\BankAccountType;
use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\ValueObjects\Constants\DocumentType;
use App\Classes\ValueObjects\Constants\SegmentConstants;
+use App\Models\CompanyModule;
use App\Models\Currency;
use App\Models\SegmentConstant;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -21,6 +22,7 @@ class CompanyResource extends JsonResource
*/
public function toArray($request)
{
+ $companyModule = $this->companyModules()->where('type', '=', BusinessType::IMPORTER)->first();
return [
'id' => $this->id,
'name' => $this->name,
@@ -29,22 +31,11 @@ class CompanyResource extends JsonResource
'business_type' => (int) $this->business_type,
'status' => (int) $this->status,
'contact' => new ContactResource ($this->when($this->has('contacts'), $this->contacts->first())),
- 'address' => new AddressResource($this->when($this->has('addresses'), $this->addresses->where('billing', true)->first())),
- // 'employee' => new UserResource($this->employees->first()),
- // 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()),
- // 'bookings' => BookingResource::collection($this->whenLoaded('bookings', $this->bookings()->orderBy('id', 'DESC')->get(), [])),
- // 'personal_banks' => BankResource::collection($this->banks->where('type', BankAccountType::PERSONAL)),
- // 'recipient_banks' => [
- // 'accounts' => BankResource::collection($this->banks->where('type', BankAccountType::EXTERNAL)),
- // 'default' => new BankResource($this->banks->where('type', BankAccountType::EXTERNAL)->where('default', true)->first())
- // ],
- // 'segments' => SegmentResource::collection($this->segments),
- // 'services' => (new FetchesCompanyServices())->getServices($this->servicesConfigurations()),
- // 'currencies' => $this->when($this->business_type === BusinessType::CURRENCY_VENDOR, function(){
- // $segment = SegmentConstant::where('reference', SegmentConstants::SUPPLIER_CURRENCIES)->where('detail->id', $this->id)->first();
- // return $segment ? CurrencyResource::collection(Currency::whereIn('id', $segment->detail->currencies)->get()) : [];
- // })
-
+ 'employee' => new UserResource($companyModule->employees()->first()),
+ 'company_module' => new CompanyModuleResource($companyModule),
+ 'last_order' => new OrderResource($companyModule ? $companyModule->orders()->orderBy('id', 'DESC')->first(): null),
+// 'employee' => new UserResource($this->employees->first()),
+// 'identification' => new DocumentResource($this->documents->whereIn('document_type', DocumentType::IDENTIFICATION_DOCUMENTS)->first()),
];
diff --git a/app/Http/Resources/ContainerPackingListResource.php b/app/Http/Resources/ContainerResource.php
similarity index 71%
rename from app/Http/Resources/ContainerPackingListResource.php
rename to app/Http/Resources/ContainerResource.php
index b98b5f00..e47e44db 100644
--- a/app/Http/Resources/ContainerPackingListResource.php
+++ b/app/Http/Resources/ContainerResource.php
@@ -4,7 +4,7 @@ namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
-class ContainerPackingListResource extends JsonResource
+class ContainerResource extends JsonResource
{
/**
* Transform the resource into an array.
@@ -16,10 +16,11 @@ class ContainerPackingListResource extends JsonResource
{
return [
'id' => $this->id,
- 'packing_list_id' => $this->packing_list_id,
'container_reference' => $this->container_reference,
'container_type' => $this->container_type,
'seal_reference' => $this->seal_reference,
+ 'packing_list' => PackingListResource::collection($this->packingLists),
+ 'transport' => TransportResource::collection($this->transports),
];
}
}
diff --git a/app/Http/Resources/FileResource.php b/app/Http/Resources/FileResource.php
new file mode 100644
index 00000000..20a84589
--- /dev/null
+++ b/app/Http/Resources/FileResource.php
@@ -0,0 +1,23 @@
+ $this->id,
+ 'file' => $this->file,
+ 'type' => (int) $this->file_type,
+ ];
+ }
+}
diff --git a/app/Http/Resources/PackageItemResource.php b/app/Http/Resources/ItemResource.php
similarity index 93%
rename from app/Http/Resources/PackageItemResource.php
rename to app/Http/Resources/ItemResource.php
index 02be692c..a18d8a9b 100644
--- a/app/Http/Resources/PackageItemResource.php
+++ b/app/Http/Resources/ItemResource.php
@@ -4,7 +4,7 @@ namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
-class PackageItemResource extends JsonResource
+class ItemResource extends JsonResource
{
/**
* Transform the resource into an array.
diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php
index 29cab45b..1a31578f 100644
--- a/app/Http/Resources/OrderResource.php
+++ b/app/Http/Resources/OrderResource.php
@@ -2,12 +2,7 @@
namespace App\Http\Resources;
-
-use App\Models\Company;
-use App\Models\Address;
-use App\Models\Currency;
-use App\Models\OrderStep;
-use App\Models\SegmentConstant;
+use App\Classes\ValueObjects\Constants\OrderRoleTypes;
use Illuminate\Http\Resources\Json\JsonResource;
class OrderResource extends JsonResource
@@ -26,9 +21,10 @@ class OrderResource extends JsonResource
'reference_contract' => (int) $this->type,
'type' => (int) $this->type,
'status' => (int) $this->status,
- 'current_step' => $this->current_step,
- 'company' => new CompanyResource($this->companyModule->company),
- 'address' => new AddressResource($this->address)
+ '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()),
+ 'created_at' => $this->created_at->format('d-m-Y')
];
}
}
diff --git a/app/Http/Resources/PackageResource.php b/app/Http/Resources/PackageResource.php
index 0c1530b8..fb011ad3 100644
--- a/app/Http/Resources/PackageResource.php
+++ b/app/Http/Resources/PackageResource.php
@@ -16,8 +16,7 @@ class PackageResource extends JsonResource
{
return [
'id' => $this->id,
- 'order_id' => $this->order_id,
- 'claimant_id' => $this->claimant_id,
+ 'packing_list_id' => $this->packing_list_id,
'type' => $this->type,
'description' => $this->description,
'width' => $this->width,
diff --git a/app/Http/Resources/PackingListResource.php b/app/Http/Resources/PackingListResource.php
index a143d523..43730ea5 100644
--- a/app/Http/Resources/PackingListResource.php
+++ b/app/Http/Resources/PackingListResource.php
@@ -16,6 +16,7 @@ class PackingListResource extends JsonResource
{
return [
'id' => $this->id,
+ 'claimant_id' => $this->claimant_id,
'reference' => $this->reference,
'status' => $this->status,
];
diff --git a/app/Http/Resources/OrderStepResource.php b/app/Http/Resources/StepResource.php
similarity index 92%
rename from app/Http/Resources/OrderStepResource.php
rename to app/Http/Resources/StepResource.php
index a04f306d..9749de73 100644
--- a/app/Http/Resources/OrderStepResource.php
+++ b/app/Http/Resources/StepResource.php
@@ -11,7 +11,7 @@ use App\Models\Currency;
use App\Models\SegmentConstant;
use Illuminate\Http\Resources\Json\JsonResource;
-class OrderStepResource extends JsonResource
+class StepResource extends JsonResource
{
/**
* Transform the resource into an array.
@@ -23,7 +23,6 @@ class OrderStepResource extends JsonResource
{
return [
'id' => $this->id,
- 'order_id' => $this->order_id,
'appointee_id' => $this->appointee_id,
'reference' => $this->reference,
'primary' => (int) $this->primary,
diff --git a/app/Models/Address.php b/app/Models/Address.php
index e915ef41..43784f8d 100644
--- a/app/Models/Address.php
+++ b/app/Models/Address.php
@@ -2,6 +2,7 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
@@ -60,4 +61,13 @@ class Address extends AbstractModel
{
return $this->morphTo();
}
+
+ /**
+ * @param Builder $query
+ * @return Builder
+ */
+ public function scopeDefaultAddress(Builder $query)
+ {
+ return $query->where('default', true);
+ }
}
diff --git a/app/Models/Company.php b/app/Models/Company.php
index 1921d8f2..ad443975 100644
--- a/app/Models/Company.php
+++ b/app/Models/Company.php
@@ -6,11 +6,13 @@ use App\Classes\General\Interfaces\Documentable;
use App\Classes\General\Interfaces\Contactable;
use App\Classes\Modules\ServiceTypes\DataTransferObjects\ServiceConfigurationsObject;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
+use App\Classes\ValueObjects\Constants\BusinessType;
use App\Classes\ValueObjects\Constants\SegmentConstants;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
+use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Collection;
@@ -52,13 +54,26 @@ class Company extends AbstractModel implements Documentable, Contactable
}
/**
- * @return belongsToMany
+ * @return hasManyThrough
*/
- public function employees(): belongsToMany
+ public function employees(): hasManyThrough
{
- return $this->belongsToMany(User::class, (new CompanyEmployee())->getTable(), 'company_id', 'user_id');
+ return $this->hasManyThrough(User::class, CompanyModule::class, 'company_id', 'company_module_id');
}
+ public function orders()
+ {
+ return $this->companyModules()->where('type', '=', BusinessType::IMPORTER)->first()->orders->sortByDesc('id');
+ $orders = [];
+
+ $this->CompanyModules->each(function ($companyModule) {
+ $orders[] = $companyModule->orders->sortByDesc('id');
+ });
+
+ return collect($orders);
+ }
+
+
/**
* @return MorphMany
*/
diff --git a/app/Models/CompanyConnection.php b/app/Models/CompanyConnection.php
new file mode 100644
index 00000000..f1d00276
--- /dev/null
+++ b/app/Models/CompanyConnection.php
@@ -0,0 +1,63 @@
+BelongsTo(CompanyModule::class);
+ }
+
+ /**
+ * @return BelongsTo
+ */
+ public function invitee(): BelongsTo
+ {
+ return $this->BelongsTo(CompanyModule::class);
+ }
+
+ /**
+ * @param Builder $query
+ * @return Builder
+ */
+ public function scopeApproved(Builder $query)
+ {
+ return $query->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]);
+ }
+
+}
diff --git a/app/Models/CompanyModule.php b/app/Models/CompanyModule.php
index 93a58027..9b21263f 100644
--- a/app/Models/CompanyModule.php
+++ b/app/Models/CompanyModule.php
@@ -5,12 +5,14 @@ namespace App\Models;
use App\Classes\General\Interfaces\Addressable;
use App\Classes\General\Interfaces\Contactable;
use App\Classes\General\Interfaces\Documentable;
+use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\BusinessType;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
+use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -65,6 +67,27 @@ class CompanyModule extends AbstractModel implements Addressable, Documentable,
return $this->belongsToMany(User::class, (new CompanyEmployee())->getTable(), 'company_module_id', 'user_id');
}
+ /**
+ * @return belongsToMany
+ */
+ public function invites(): belongsToMany
+ {
+ return $this->belongsToMany(CompanyModule::class, CompanyConnection::class,'inviter_id', 'invitee_id');
+ }
+
+ /**
+ * @return belongsToMany
+ */
+ public function inviters(): belongsToMany
+ {
+ return $this->belongsToMany(CompanyModule::class, CompanyConnection::class,'invitee_id', 'inviter_id');
+ }
+
+
+ public function connections(): hasMany {
+ return $this->hasMany(CompanyConnection::class, 'invitee_id');
+ }
+
/**
* @return HasMany
*/
diff --git a/app/Models/Container.php b/app/Models/Container.php
new file mode 100644
index 00000000..043806ac
--- /dev/null
+++ b/app/Models/Container.php
@@ -0,0 +1,27 @@
+belongsToMany(PackingList::class, Container::class, 'container_id', 'packing_list_id');
+ }
+
+ /**
+ * @return MorphMany
+ */
+ public function transports(): morphMany
+ {
+ return $this->morphMany(Transport::class, 'owner');
+ }
+}
diff --git a/app/Models/ContainerPackingList.php b/app/Models/ContainerPackingList.php
index 4aa74c4b..0aecbbee 100644
--- a/app/Models/ContainerPackingList.php
+++ b/app/Models/ContainerPackingList.php
@@ -6,22 +6,9 @@ use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\MorphMany;
-class ContainerPackingList extends AbstractModel
+class Container extends AbstractModel
{
use SoftDeletes;
protected $table = 'container_packing_lists';
-
- public function packingList(): HasMany
- {
- return $this->hasMany(PackingList::class, 'packing_list_id', 'id');
- }
-
- /**
- * @return MorphMany
- */
- public function transports(): morphMany
- {
- return $this->morphMany(Transport::class, 'owner');
- }
}
diff --git a/app/Models/PackageItem.php b/app/Models/Item.php
similarity index 66%
rename from app/Models/PackageItem.php
rename to app/Models/Item.php
index d1c44670..fab3b5bc 100644
--- a/app/Models/PackageItem.php
+++ b/app/Models/Item.php
@@ -5,13 +5,13 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
-class PackageItem extends AbstractModel
+class Item extends AbstractModel
{
use SoftDeletes;
- protected $table = 'package_items';
+ protected $table = 'items';
- public function pacakge(): BelongsTo
+ public function package(): BelongsTo
{
return $this->BelongsTo(Package::class, 'package_id', 'id');
}
diff --git a/app/Models/Order.php b/app/Models/Order.php
index 74920652..58f64dc8 100644
--- a/app/Models/Order.php
+++ b/app/Models/Order.php
@@ -3,6 +3,8 @@
namespace App\Models;
use App\Classes\General\Interfaces\Addressable;
+use App\Classes\ValueObjects\Constants\RoleTypes;
+use App\Scopes\CustomerOrdersScope;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
@@ -17,16 +19,25 @@ class Order extends AbstractModel implements Addressable
protected $dates = ['deleted_at'];
+ /**
+ * @return BelongsTo
+ */
public function companyModule(): belongsTo
{
return $this->belongsTo(CompanyModule::class, 'company_module_id', 'id');
}
+ /**
+ * @return MorphMany
+ */
public function orderSteps(): morphMany
{
- return $this->morphMany(OrderStep::class, 'owner');
+ return $this->morphMany(Step::class, 'owner');
}
+ /**
+ * @return MorphMany
+ */
public function addresses(): morphMany
{
return $this->morphMany(Address::class, 'owner');
@@ -39,4 +50,11 @@ class Order extends AbstractModel implements Addressable
{
return $this->HasMany(OrderRole::class, 'order_id');
}
+
+ protected static function booted()
+ {
+// if (auth()->user()->type === RoleTypes::USER) {
+// static::addGlobalScope(new CustomerOrdersScope);
+// }
+ }
}
diff --git a/app/Models/Package.php b/app/Models/Package.php
index 06094305..39c39488 100644
--- a/app/Models/Package.php
+++ b/app/Models/Package.php
@@ -2,6 +2,7 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\SoftDeletes;
diff --git a/app/Models/PackingList.php b/app/Models/PackingList.php
index 35497646..d67e3931 100644
--- a/app/Models/PackingList.php
+++ b/app/Models/PackingList.php
@@ -2,6 +2,7 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Relations\MorphMany;
use Illuminate\Database\Eloquent\SoftDeletes;
class PackingList extends AbstractModel
@@ -12,6 +13,6 @@ class PackingList extends AbstractModel
public function orderSteps(): morphMany
{
- return $this->morphMany(OrderStep::class, 'owner');
+ return $this->morphMany(Step::class, 'owner');
}
}
diff --git a/app/Models/PackingListPackage.php b/app/Models/PackingListPackage.php
index b85b8b81..c393610f 100644
--- a/app/Models/PackingListPackage.php
+++ b/app/Models/PackingListPackage.php
@@ -18,6 +18,6 @@ class PackingListPackage extends AbstractModel
public function packageList(): BelongsTo
{
- return $this->BelongsTo(PackageList::class, 'packing_list_id', 'id');
+ return $this->BelongsTo(PackingList::class, 'packing_list_id', 'id');
}
}
diff --git a/app/Models/OrderStep.php b/app/Models/Step.php
similarity index 81%
rename from app/Models/OrderStep.php
rename to app/Models/Step.php
index 0dab2c53..0f924e1d 100644
--- a/app/Models/OrderStep.php
+++ b/app/Models/Step.php
@@ -2,10 +2,11 @@
namespace App\Models;
+use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
-class OrderStep extends AbstractModel
+class Step extends AbstractModel
{
use SoftDeletes;
@@ -25,10 +26,10 @@ class OrderStep extends AbstractModel
return $this->belongsTo(OrderRole::class, 'appointee_id', 'company_module_id');
}
-
- public function order(): belongsTo
+ public function owner(): morphTo
{
- return $this->belongsTo(Order::class, 'owner_id', 'id');
+ return $this->morphTo();
}
+
}
diff --git a/app/Scopes/CustomerOrdersScope.php b/app/Scopes/CustomerOrdersScope.php
new file mode 100644
index 00000000..f12dec2b
--- /dev/null
+++ b/app/Scopes/CustomerOrdersScope.php
@@ -0,0 +1,27 @@
+whereHas('companyModule', function($query){
+ return $query->whereHas('employees', function($query){
+ return $query->where('user_id', Auth()->user()->id);
+ });
+ });
+ }
+
+}
\ No newline at end of file
diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php
index 7d75d3c4..b0dd8ba1 100644
--- a/database/migrations/2014_10_12_100000_create_password_resets_table.php
+++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php
@@ -15,13 +15,11 @@ class CreatePasswordResetsTable extends Migration
{
Schema::create('password_resets', function (Blueprint $table) {
$table->id();
- $table->foreignId('user_id')->unsigned();
+ $table->foreignId('user_id');
$table->string('token');
$table->boolean('is_expired')->default(true);
$table->boolean('is_complete')->default(false);
$table->timestamps();
-
- $table->foreign('user_id')->references('id')->on('users');
});
}
diff --git a/database/migrations/2021_06_21_222722_create_states_table.php b/database/migrations/2021_06_21_222722_create_states_table.php
index 63c077bf..7ff6cfcf 100644
--- a/database/migrations/2021_06_21_222722_create_states_table.php
+++ b/database/migrations/2021_06_21_222722_create_states_table.php
@@ -16,13 +16,11 @@ class CreateStatesTable extends Migration
{
Schema::create('states', function (Blueprint $table) {
$table->id();
- $table->foreignId('country_id')->unsigned();
+ $table->foreignId('country_id');
$table->string('name');
$table->integer('status')->default(ApprovalStatus::APPROVED);
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('country_id')->references('id')->on('countries');
});
}
diff --git a/database/migrations/2021_06_21_222851_create_districts_table.php b/database/migrations/2021_06_21_222851_create_districts_table.php
index a5d1f51c..0d6996c4 100644
--- a/database/migrations/2021_06_21_222851_create_districts_table.php
+++ b/database/migrations/2021_06_21_222851_create_districts_table.php
@@ -16,16 +16,13 @@ class CreateDistrictsTable extends Migration
{
Schema::create('districts', function (Blueprint $table) {
$table->id();
- $table->foreignId('country_id')->unsigned();
- $table->foreignId('state_id')->unsigned();
+ $table->foreignId('country_id');
+ $table->foreignId('state_id');
$table->string('name');
$table->text('postcode');
$table->integer('status')->default(ApprovalStatus::APPROVED);
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('country_id')->references('id')->on('countries');
- $table->foreign('state_id')->references('id')->on('states');
});
}
diff --git a/database/migrations/2021_06_21_232944_create_addresses_table.php b/database/migrations/2021_06_21_232944_create_addresses_table.php
index 78b826a1..bfe31d93 100644
--- a/database/migrations/2021_06_21_232944_create_addresses_table.php
+++ b/database/migrations/2021_06_21_232944_create_addresses_table.php
@@ -21,9 +21,9 @@ class CreateAddressesTable extends Migration
$table->string('reference')->nullable();
$table->string('street_one');
$table->string('street_two')->nullable();
- $table->foreignId('district_id')->constrained();
- $table->foreignId('state_id')->constrained();
- $table->foreignId('country_id')->constrained();
+ $table->foreignId('district_id');
+ $table->foreignId('state_id');
+ $table->foreignId('country_id');
$table->string('postcode', '45');
$table->integer('type')->default(AddressType::DELIVERY);
$table->integer('default')->default(false);
diff --git a/database/migrations/2021_06_23_152429_create_company_employees_table.php b/database/migrations/2021_06_23_152429_create_company_employees_table.php
index a0f8a67f..610c25e4 100644
--- a/database/migrations/2021_06_23_152429_create_company_employees_table.php
+++ b/database/migrations/2021_06_23_152429_create_company_employees_table.php
@@ -15,9 +15,9 @@ class CreateCompanyEmployeesTable extends Migration
public function up()
{
Schema::create('company_employees', function (Blueprint $table) {
- $table->foreignId('company_module_id')->constrained();
- $table->foreignId('user_id')->constrained();
- $table->foreignId('role_id')->unsigned();
+ $table->foreignId('company_module_id');
+ $table->foreignId('user_id');
+ $table->foreignId('role_id');
$table->integer('status')->default(ApprovalStatus::APPROVED);
$table->softDeletes();
$table->timestamps();
diff --git a/database/migrations/2021_06_25_014731_create_segments_table.php b/database/migrations/2021_06_25_014731_create_segments_table.php
index c6625629..53b78248 100644
--- a/database/migrations/2021_06_25_014731_create_segments_table.php
+++ b/database/migrations/2021_06_25_014731_create_segments_table.php
@@ -17,7 +17,7 @@ class CreateSegmentsTable extends Migration
{
Schema::create('segments', function (Blueprint $table) {
$table->id();
- $table->foreignId('company_module_id')->constrained();
+ $table->foreignId('company_module_id');
$table->string('name', '45');
});
}
diff --git a/database/migrations/2021_06_25_014830_create_segment_constants_table.php b/database/migrations/2021_06_25_014830_create_segment_constants_table.php
index 0e21e195..f62d0308 100644
--- a/database/migrations/2021_06_25_014830_create_segment_constants_table.php
+++ b/database/migrations/2021_06_25_014830_create_segment_constants_table.php
@@ -15,7 +15,7 @@ class CreateSegmentConstantsTable extends Migration
{
Schema::create('segment_constants', function (Blueprint $table) {
$table->id();
- $table->foreignId('segment_id')->constrained();
+ $table->foreignId('segment_id');
$table->string('reference','45');
$table->json('value');
});
diff --git a/database/migrations/2021_06_25_014832_create_company_connections_table.php b/database/migrations/2021_06_25_014832_create_company_connections_table.php
index c1aee36b..c97fc2ee 100644
--- a/database/migrations/2021_06_25_014832_create_company_connections_table.php
+++ b/database/migrations/2021_06_25_014832_create_company_connections_table.php
@@ -1,5 +1,6 @@
foreignId('invitee_id')->unsigned();
$table->string('inviter_reference');
$table->string('invitee_reference');
- $table->integer('status');
+ $table->integer('status')->default(ApprovalStatus::PENDING_VERIFICATION);
$table->softDeletes();
$table->timestamps();
diff --git a/database/migrations/2021_06_25_014835_create_connection_segments_table.php b/database/migrations/2021_06_25_014835_create_connection_segments_table.php
index 33da1304..92a3d5f1 100644
--- a/database/migrations/2021_06_25_014835_create_connection_segments_table.php
+++ b/database/migrations/2021_06_25_014835_create_connection_segments_table.php
@@ -15,8 +15,8 @@ class CreateConnectionSegmentsTable extends Migration
{
Schema::create('connection_segments', function (Blueprint $table) {
$table->id();
- $table->foreignId('company_connection_id')->constrained();
- $table->foreignId('segment_id')->constrained();
+ $table->foreignId('company_connection_id');
+ $table->foreignId('segment_id');
});
}
diff --git a/database/migrations/2021_06_25_014905_create_segment_companies_table.php b/database/migrations/2021_06_25_014905_create_segment_companies_table.php
index 4e27d72f..cf0771e8 100644
--- a/database/migrations/2021_06_25_014905_create_segment_companies_table.php
+++ b/database/migrations/2021_06_25_014905_create_segment_companies_table.php
@@ -14,8 +14,8 @@ class CreateSegmentCompaniesTable extends Migration
public function up()
{
Schema::create('segment_companies', function (Blueprint $table) {
- $table->foreignId('segment_id')->constrained();
- $table->foreignId('company_id')->constrained();
+ $table->foreignId('segment_id');
+ $table->foreignId('company_id');
$table->timestamps();
$table->primary(['segment_id', 'company_id']);
});
diff --git a/database/migrations/2021_06_25_020358_create_currencies_table.php b/database/migrations/2021_06_25_020358_create_currencies_table.php
index b550c86b..ab30b2c0 100644
--- a/database/migrations/2021_06_25_020358_create_currencies_table.php
+++ b/database/migrations/2021_06_25_020358_create_currencies_table.php
@@ -15,14 +15,13 @@ class CreateCurrenciesTable extends Migration
{
Schema::create('currencies', function (Blueprint $table) {
$table->id();
- $table->foreignId('country_id')->unsigned();
+ $table->foreignId('country_id');
$table->string('name');
$table->string('short_code');
$table->string('symbol')->nullable();
$table->softDeletes();
$table->timestamps();
- $table->foreign('country_id')->references('id')->on('countries');
});
}
diff --git a/database/migrations/2021_07_02_021058_create_files_table.php b/database/migrations/2021_07_02_021058_create_files_table.php
index 3ee1c9fe..998c4576 100644
--- a/database/migrations/2021_07_02_021058_create_files_table.php
+++ b/database/migrations/2021_07_02_021058_create_files_table.php
@@ -16,13 +16,11 @@ class CreateFilesTable extends Migration
{
Schema::create('files', function (Blueprint $table) {
$table->id();
- $table->foreignId('document_id')->unsigned();
+ $table->foreignId('document_id');
$table->text('file');
$table->string('file_type')->default(FileType::JPEG);
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('document_id')->references('id')->on('documents');
});
}
diff --git a/database/migrations/2021_07_05_115638_create_banks_table.php b/database/migrations/2021_07_05_115638_create_banks_table.php
index e41e8483..9e6e425b 100644
--- a/database/migrations/2021_07_05_115638_create_banks_table.php
+++ b/database/migrations/2021_07_05_115638_create_banks_table.php
@@ -18,7 +18,7 @@ class CreateBanksTable extends Migration
Schema::create('bank_accounts', function (Blueprint $table) {
$table->id();
$table->morphs('owner');
- $table->foreignId('country_id')->unsigned();
+ $table->foreignId('country_id');
$table->string('bank_name',45);
$table->string('bank_branch',45)->nullable();
$table->string('account_name',45);
@@ -30,7 +30,6 @@ class CreateBanksTable extends Migration
$table->softDeletes();
$table->timestamps();
- $table->foreign('country_id')->references('id')->on('countries');
});
Schema::table('bank_accounts', function (Blueprint $table) {
diff --git a/database/migrations/2021_07_07_174510_create_orders_table.php b/database/migrations/2021_07_07_174510_create_orders_table.php
index 07467c8b..d602618b 100644
--- a/database/migrations/2021_07_07_174510_create_orders_table.php
+++ b/database/migrations/2021_07_07_174510_create_orders_table.php
@@ -15,15 +15,13 @@ class CreateOrdersTable extends Migration
{
Schema::create('orders', function (Blueprint $table) {
$table->id();
- $table->bigInteger('company_module_id')->unsigned()->index()->comment('Entity responsible to create this order');
+ $table->foreignId('company_module_id');
$table->string('reference');
$table->string('reference_contract')->nullable();
$table->integer('type')->default(0)->comment('Order packages can be shipped in shared or dedicated container');
$table->integer('status')->default(0)->comment('Status of this order, e.g. processing, shipping etc.');
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('company_module_id')->references('id')->on('company_modules');
});
}
diff --git a/database/migrations/2021_07_07_174640_create_order_roles_table.php b/database/migrations/2021_07_07_174640_create_order_roles_table.php
index 8c1d3200..7b366638 100644
--- a/database/migrations/2021_07_07_174640_create_order_roles_table.php
+++ b/database/migrations/2021_07_07_174640_create_order_roles_table.php
@@ -16,16 +16,13 @@ class CreateOrderRolesTable extends Migration
{
Schema::create('order_roles', function (Blueprint $table) {
$table->id();
- $table->bigInteger('order_id')->unsigned()->index()->comment('Order id');
- $table->bigInteger('company_module_id')->unsigned()->index();
+ $table->foreignId('order_id');
+ $table->foreignId('company_module_id');
$table->integer('role_id')->default(OrderRoleTypes::IMPORTER);
$table->string('entity_hash_id',200)->nullable();
$table->string('entity_signature',200)->nullable();
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('company_module_id')->references('id')->on('company_modules');
- $table->foreign('order_id')->references('id')->on('orders');
});
}
diff --git a/database/migrations/2021_07_21_110059_create_packing_lists_table.php b/database/migrations/2021_07_21_110049_create_packing_lists_table.php
similarity index 78%
rename from database/migrations/2021_07_21_110059_create_packing_lists_table.php
rename to database/migrations/2021_07_21_110049_create_packing_lists_table.php
index 9492c5d4..0516b539 100644
--- a/database/migrations/2021_07_21_110059_create_packing_lists_table.php
+++ b/database/migrations/2021_07_21_110049_create_packing_lists_table.php
@@ -15,11 +15,15 @@ class CreatePackingListsTable extends Migration
{
Schema::create('packing_lists', function (Blueprint $table) {
$table->id();
+ $table->morphs('owner');
+ $table->bigInteger('claimant_id')->unsigned()->index()->nullable(true);
$table->string('reference',200);
$table->integer('type')->default(0);
$table->integer('status')->default(0);
$table->softDeletes();
$table->timestamps();
+
+ $table->foreign('claimant_id')->references('id')->on('company_modules');
});
}
diff --git a/database/migrations/2021_07_21_110051_create_packages_table.php b/database/migrations/2021_07_21_110051_create_packages_table.php
index a21244ea..4ec1c00d 100644
--- a/database/migrations/2021_07_21_110051_create_packages_table.php
+++ b/database/migrations/2021_07_21_110051_create_packages_table.php
@@ -15,11 +15,12 @@ class CreatePackagesTable extends Migration
{
Schema::create('packages', function (Blueprint $table) {
$table->id();
- $table->bigInteger('order_id')->unsigned()->index();
- $table->bigInteger('claimant_id')->unsigned()->index()->nullable(true);
- $table->integer('type')->default(0);
+ $table->foreignId('packing_list_id');
- $table->string('description',45)->nullable(true);
+ $table->integer('type')->default(0);
+ $table->string('reference')->nullable();
+
+ $table->string('description',45)->nullable();
$table->decimal('width', 8, 2);
$table->decimal('height', 8, 2);
@@ -30,9 +31,6 @@ class CreatePackagesTable extends Migration
$table->integer('status')->default(0);
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('order_id')->references('id')->on('orders');
- $table->foreign('claimant_id')->references('id')->on('company_modules');
});
}
diff --git a/database/migrations/2021_07_21_110058_create_package_items_table.php b/database/migrations/2021_07_21_110058_create_items_table.php
similarity index 72%
rename from database/migrations/2021_07_21_110058_create_package_items_table.php
rename to database/migrations/2021_07_21_110058_create_items_table.php
index 599b691e..92d7d65d 100644
--- a/database/migrations/2021_07_21_110058_create_package_items_table.php
+++ b/database/migrations/2021_07_21_110058_create_items_table.php
@@ -4,7 +4,7 @@ use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class CreatePackageItemsTable extends Migration
+class CreateItemsTable extends Migration
{
/**
* Run the migrations.
@@ -13,9 +13,9 @@ class CreatePackageItemsTable extends Migration
*/
public function up()
{
- Schema::create('package_items', function (Blueprint $table) {
+ Schema::create('items', function (Blueprint $table) {
$table->id();
- $table->bigInteger('package_id')->unsigned()->index();
+ $table->foreignId('package_id');
$table->string('name',45);
$table->string('reference',45);
$table->string('description',45);
@@ -27,7 +27,6 @@ class CreatePackageItemsTable extends Migration
$table->softDeletes();
$table->timestamps();
- $table->foreign('package_id')->references('id')->on('packages');
});
}
@@ -38,6 +37,6 @@ class CreatePackageItemsTable extends Migration
*/
public function down()
{
- Schema::dropIfExists('package_items');
+ Schema::dropIfExists('items');
}
}
diff --git a/database/migrations/2021_07_21_110190_create_containers_table.php b/database/migrations/2021_07_21_110190_create_containers_table.php
new file mode 100644
index 00000000..773bba5b
--- /dev/null
+++ b/database/migrations/2021_07_21_110190_create_containers_table.php
@@ -0,0 +1,39 @@
+id();
+ $table->string('reference',45);
+ $table->string('container_number',45);
+ $table->integer('container_type')->default(ContainerTypes::FORTY_FEET_DRY_CONTAINER);
+ $table->string('seal_reference',45);
+ $table->integer('status')->default(ApprovalStatus::PENDING_SUBMISSION);
+ $table->softDeletes();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::dropIfExists('containers');
+ }
+}
diff --git a/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php b/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php
deleted file mode 100644
index 4c3b2bb3..00000000
--- a/database/migrations/2021_07_21_110208_create_packing_list_packages_table.php
+++ /dev/null
@@ -1,37 +0,0 @@
-id();
- $table->bigInteger('packing_list_id')->unsigned()->index();
- $table->bigInteger('package_id')->unsigned()->index();
- $table->softDeletes();
- $table->timestamps();
-
- $table->foreign('packing_list_id')->references('id')->on('packing_lists');
- $table->foreign('package_id')->references('id')->on('packages');
- });
- }
-
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::dropIfExists('packing_list_packages');
- }
-}
diff --git a/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php
index 9f98061f..bbf8ef84 100644
--- a/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php
+++ b/database/migrations/2021_07_21_110240_create_container_packing_lists_table.php
@@ -15,14 +15,10 @@ class CreateContainerPackingListsTable extends Migration
{
Schema::create('container_packing_lists', function (Blueprint $table) {
$table->id();
- $table->bigInteger('packing_list_id')->unsigned()->index();
- $table->string('container_reference',45);
- $table->integer('container_type');
- $table->string('seal_reference',45);
+ $table->foreignId('container_id');
+ $table->foreignId('packing_list_id');
$table->softDeletes();
$table->timestamps();
-
- $table->foreign('packing_list_id')->references('id')->on('packing_lists');
});
}
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index f0fea66f..6f13aff8 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -24,8 +24,5 @@ class DatabaseSeeder extends Seeder
$this->call(CurrenciesTableSeeder::class);
$this->call(CompaniesTableSeeder::class);
-
- // $this->call(SegmentsTableSeeder::class);
- //$this->call(SegmentConstantsTableSeeder::class);
}
}
\ No newline at end of file
diff --git a/resources/assets/images/cief-izyim-logo.png b/resources/assets/images/cief-izyim-logo.png
new file mode 100644
index 00000000..126c6533
Binary files /dev/null and b/resources/assets/images/cief-izyim-logo.png differ
diff --git a/resources/assets/sass/modules/_tabs_accordian.scss b/resources/assets/sass/modules/_tabs_accordian.scss
index d4a1ae1f..6562b105 100644
--- a/resources/assets/sass/modules/_tabs_accordian.scss
+++ b/resources/assets/sass/modules/_tabs_accordian.scss
@@ -758,7 +758,7 @@
.tabButton {
cursor: pointer;
&.active {
- background-color: #ffffff !important;
+ background-color: $color-master-lightest !important;
cursor: default;
}
}
\ No newline at end of file
diff --git a/resources/assets/vue/components/accounts/elements/LoginFormComponent.vue b/resources/assets/vue/components/accounts/elements/LoginFormComponent.vue
deleted file mode 100644
index db5b7111..00000000
--- a/resources/assets/vue/components/accounts/elements/LoginFormComponent.vue
+++ /dev/null
@@ -1,78 +0,0 @@
-
- Forgot password? New Customer? Create AccountLogout
+ Are you leaving?
+ Are you leaving?
-
+
+
+
+
+
+ Place an order with us, and send the QR Code label to your supplier to attach to your order's packages
+Unlock your potential with digital freight forwarding that creates outstanding supply chains management. From the supplier to our warehouse, then to your doorsteps.
+Place an order with us, and send the QR Code label to your supplier to attach to your order's packages
+We receive your packages at the preferred warehouse you selected, and arrange for shipping.
+We deliver your packages to your doorsteps at your selected delivery address.
+Nothing To Show Here