diff --git a/app/Classes/Modules/Orders/ControllersLogic/CreateShippingPackingListLogic.php b/app/Classes/Modules/Orders/ControllersLogic/CreateShippingPackingListLogic.php
new file mode 100644
index 00000000..574200fe
--- /dev/null
+++ b/app/Classes/Modules/Orders/ControllersLogic/CreateShippingPackingListLogic.php
@@ -0,0 +1,118 @@
+ 'Created PackingList',
+ 'message' => 'You have successfully created a new PackingList'
+ ];
+ }
+
+ /** @var CreatePackingListProcessor */
+ private $createPackingListProcessor;
+
+ /** @var GeneratesPackingListReferenceNumber */
+ private $generatesPackingListReferenceNumber;
+
+ /** @var CreatesTransport */
+ private $createsTransport;
+
+ /** @var CreatePackageProcessor */
+ private $createPackageProcessor;
+
+ /** @var CreatesSchedule */
+ private $createsSchedule;
+
+ /** @var FetchesOrder */
+ private $fetchesOrder;
+
+ /**
+ * CreatePackingListLogic constructor.
+ * @param CreatePackingListProcessor $createPackingListProcessor
+ * @param FetchesOrder $fetchesOrder
+ */
+ public function __construct(
+ CreatePackingListProcessor $createPackingListProcessor,
+ CreatesTransport $createsTransport,
+ CreatesSchedule $createsSchedule,
+ CreatePackageProcessor $createPackageProcessor,
+ GeneratesPackingListReferenceNumber $generatesPackingListReferenceNumber,
+ FetchesOrder $fetchesOrder
+ )
+ {
+ $this->createPackingListProcessor = $createPackingListProcessor;
+ $this->createsTransport = $createsTransport;
+ $this->createsSchedule = $createsSchedule;
+ $this->createPackageProcessor = $createPackageProcessor;
+ $this->generatesPackingListReferenceNumber = $generatesPackingListReferenceNumber;
+ $this->fetchesOrder = $fetchesOrder;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]);
+
+ $reference_number = $this->generatesPackingListReferenceNumber->execute();
+
+ $packingListObject = new PackingListObject(
+ $reference_number,
+ $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee->id,
+ PackingListType::SHIPPING_PACKING_LIST,
+ ApprovalStatus::PENDING_SUBMISSION
+ );
+ $packingList = $this->createPackingListProcessor->execute($packingListObject, $order);
+
+ $packages = $request->input('packages');
+
+ foreach ($packages as $key => $row) {
+ $packageObject = new PackageObject(
+ $row['type'],
+ $row['description'],
+ $row['width'],
+ $row['height'],
+ $row['length'],
+ $row['weight'],
+ $row['quantity'],
+ ApprovalStatus::APPROVED,
+ $row['reference'],
+ );
+ $this->createPackageProcessor->execute($packageObject, $packingList);
+ }
+
+ return $this->resourceResponse(new PackingListResource($packingList));
+ }
+
+}
diff --git a/app/Classes/Modules/Orders/ControllersLogic/CreateWarehousePackingListLogic.php b/app/Classes/Modules/Orders/ControllersLogic/CreateWarehousePackingListLogic.php
new file mode 100644
index 00000000..5572bbff
--- /dev/null
+++ b/app/Classes/Modules/Orders/ControllersLogic/CreateWarehousePackingListLogic.php
@@ -0,0 +1,124 @@
+ 'Created Warehouse PackingList',
+ 'message' => 'You have successfully created a new Warehouse PackingList'
+ ];
+ }
+
+ /** @var CreatePackingListProcessor */
+ private $createPackingListProcessor;
+
+ /** @var GeneratesPackingListReferenceNumber */
+ private $generatesPackingListReferenceNumber;
+
+ /** @var CreatesTransport */
+ private $createsTransport;
+
+ /** @var CreatePackageProcessor */
+ private $createPackageProcessor;
+
+ /** @var CreatesSchedule */
+ private $createsSchedule;
+
+ /** @var FetchesOrder */
+ private $fetchesOrder;
+
+ /**
+ * CreatePackingListLogic constructor.
+ * @param CreatePackingListProcessor $createPackingListProcessor
+ * @param FetchesOrder $fetchesOrder
+ */
+ public function __construct(
+ CreatePackingListProcessor $createPackingListProcessor,
+ CreatesTransport $createsTransport,
+ CreatesSchedule $createsSchedule,
+ CreatePackageProcessor $createPackageProcessor,
+ GeneratesPackingListReferenceNumber $generatesPackingListReferenceNumber,
+ FetchesOrder $fetchesOrder
+ )
+ {
+ $this->createPackingListProcessor = $createPackingListProcessor;
+ $this->createsTransport = $createsTransport;
+ $this->createsSchedule = $createsSchedule;
+ $this->createPackageProcessor = $createPackageProcessor;
+ $this->generatesPackingListReferenceNumber = $generatesPackingListReferenceNumber;
+ $this->fetchesOrder = $fetchesOrder;
+ }
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $order = $this->fetchesOrder->execute(['id' => $request->input('order_id')]);
+
+ $reference_number = $this->generatesPackingListReferenceNumber->execute();
+
+ $packingListObject = new PackingListObject(
+ $reference_number,
+ $order->orderRoles()->where('role_id', '=', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee->id,
+ PackingListType::WAREHOUSE_RECEIVE_LIST,
+ ApprovalStatus::PENDING_SUBMISSION
+ );
+ $packingList = $this->createPackingListProcessor->execute($packingListObject, $order);
+
+ $transportObject = new TransportObject(TransportType::LAND, null, $request->input('tracking'), Carbon::parse($request->input('receive_date')), Carbon::parse($request->input('receive_date')), ApprovalStatus::APPROVED);
+ $transport = $this->createsTransport->execute($transportObject, $packingList);
+
+ $scheduleObject = new ScheduleObject(Carbon::parse($request->input('receive_date')), Carbon::parse($request->input('receive_date')), ApprovalStatus::APPROVED);
+ $schedule = $this->createsSchedule->execute($transport, $scheduleObject);
+
+ $packages = $request->input('packages');
+
+ foreach ($packages as $key => $row) {
+ $packageObject = new PackageObject(
+ $row['type'],
+ $row['description'],
+ $row['width'],
+ $row['height'],
+ $row['length'],
+ $row['weight'],
+ $row['quantity'],
+ ApprovalStatus::APPROVED,
+ $row['reference'],
+ );
+ $this->createPackageProcessor->execute($packageObject, $packingList);
+ }
+
+ return $this->resourceResponse(new PackingListResource($packingList));
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CompleteContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CompleteContainerLogic.php
new file mode 100644
index 00000000..7720fc27
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CompleteContainerLogic.php
@@ -0,0 +1,61 @@
+ 'Updated Container',
+ 'message' => 'You have successfully updated the Container'
+ ];
+ }
+
+
+ /** @var UpdatesContainerStatus */
+ private $updatesContainerStatus;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * CompleteContainerLogic constructor.
+ * @param CanUpdateContainer $canUpdateContainer
+ * @param UpdatesContainerStatus $updatesContainerStatus
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(UpdatesContainerStatus $updatesContainerStatus, FetchesContainer $fetchesContainer)
+ {
+ $this->updatesContainerStatus = $updatesContainerStatus;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+ $query = $this->updatesContainerStatus->execute($container, ApprovalStatus::COMPLETED);
+ return $this->resourceResponse(new ContainerResource($container));
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
index 04802826..df22a66e 100644
--- a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
@@ -23,8 +23,8 @@ class CreateContainerLogic extends AbstractControllerLogic
*/
protected function notification():array {
return [
- 'title' => 'Created PackingList',
- 'message' => 'You have successfully created a new PackingList'
+ 'title' => 'Created Container',
+ 'message' => 'You have successfully created a new Container'
];
}
@@ -66,8 +66,6 @@ class CreateContainerLogic extends AbstractControllerLogic
$request->input('status')
);
- $company = $this->fetchesCompanyModule->execute(['id' => 2]);
-
$this->canCreateContainer->passes($object);
$query = $this->createsContainer->execute($object, $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]));
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateLoadContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateLoadContainerLogic.php
new file mode 100644
index 00000000..d388a10d
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateLoadContainerLogic.php
@@ -0,0 +1,121 @@
+ 'Created Container',
+ 'message' => 'You have successfully created a new Container'
+ ];
+ }
+
+ /** @var CanCreateContainer */
+ private $canCreateContainer;
+
+ /** @var FetchesPackingList */
+ private $fetchesPackingList;
+
+ /** @var FetchesCompanyModule */
+ private $fetchesCompanyModule;
+
+ /** @var CreatesPackingList */
+ private $createsContainer;
+
+ /** @var CreatesTransport */
+ private $createsTransport;
+
+ /** @var CreatesSchedule */
+ private $createsSchedule;
+
+ public function __construct(
+ CanCreateContainer $canCreateContainer,
+ FetchesPackingList $fetchesPackingList,
+ FetchesCompanyModule $fetchesCompanyModule,
+ CreatesContainer $createsContainer,
+ CreatesTransport $createsTransport,
+ CreatesSchedule $createsSchedule
+ )
+ {
+ $this->canCreateContainer = $canCreateContainer;
+ $this->fetchesPackingList = $fetchesPackingList;
+ $this->fetchesCompanyModule = $fetchesCompanyModule;
+ $this->createsContainer = $createsContainer;
+ $this->createsTransport = $createsTransport;
+ $this->createsSchedule = $createsSchedule;
+ }
+
+ /**
+ * @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
+ {
+ $object = new ContainerObject(
+ $request->input('container_reference'),
+ $request->input('container_number'),
+ $request->input('seal_reference'),
+ $request->input('container_type'),
+ ApprovalStatus::APPROVED
+ );
+
+ $this->canCreateContainer->passes($object);
+
+ $container = $this->createsContainer->execute($object, $this->fetchesCompanyModule->execute(['id' => $request->input('company_module_id')]));
+
+ $transportObject = new TransportObject(
+ TransportType::LAND, null,
+ $request->input('tracking'),
+ Carbon::parse($request->input('eta')),
+ Carbon::parse($request->input('etd')),
+ ApprovalStatus::APPROVED
+ );
+ $transport = $this->createsTransport->execute($transportObject, $container);
+
+ $scheduleObject = new ScheduleObject(
+ Carbon::parse($request->input('eta')),
+ Carbon::parse($request->input('etd')),
+ ApprovalStatus::APPROVED
+ );
+ $schedule = $this->createsSchedule->execute($transport, $scheduleObject);
+
+ return $this->resourceResponse(new ContainerResource($container));
+ }
+
+}
+
+{
+ "container_reference": "",
+ "container_number": "",
+ "seal_reference": "",
+ "container_type": "",
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/RescheduleContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/RescheduleContainerLogic.php
new file mode 100644
index 00000000..e248281c
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/RescheduleContainerLogic.php
@@ -0,0 +1,82 @@
+ 'Reschedule Container',
+ 'message' => 'You have successfully Reschedule Container'
+ ];
+ }
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /** @var UpdatesScheduleStatus */
+ private $updatesScheduleStatus;
+
+ /** @var CreatesSchedule */
+ private $createsSchedule;
+
+ /**
+ * DeleteContainerControllersLogic constructor.
+ * @param FetchesContainer $fetchesContainer
+ * @param CreatesSchedule $createsSchedule
+ */
+ public function __construct(FetchesContainer $fetchesContainer, UpdatesScheduleStatus $updatesScheduleStatus, CreatesSchedule $createsSchedule)
+ {
+ $this->fetchesContainer = $fetchesContainer;
+ $this->updatesScheduleStatus = $updatesScheduleStatus;
+ $this->createsSchedule = $createsSchedule;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ try {
+ $container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+ $transport = $container->transports()->first();
+
+ $old_sechedule = $transport->schedules()->first();
+
+ $this->updatesScheduleStatus->execute($old_sechedule, ApprovalStatus::REJECTED);
+
+ $scheduleObject = new ScheduleObject(
+ Carbon::parse($request->input('eta')),
+ Carbon::parse($request->input('etd')),
+ ApprovalStatus::APPROVED
+ );
+ $schedule = $this->createsSchedule->execute($transport, $scheduleObject);
+
+ return $this->resourceResponse(new ContainerResource($container));
+
+ } catch (\Exception $exception){
+ throw new ErrorException($exception->getMessage(), $exception->getCode());
+ }
+
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDispatchDateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDispatchDateContainerLogic.php
new file mode 100644
index 00000000..7b091fb6
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDispatchDateContainerLogic.php
@@ -0,0 +1,60 @@
+ 'Updated Dispatch Date Container',
+ 'message' => 'You have successfully updated the Dispatch Date Container'
+ ];
+ }
+
+
+ /** @var UpdatesDispatchDateTransport */
+ private $updatesDispatchDateTransport;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * UpdateDispatchDateContainerLogic constructor.
+ * @param CanUpdateContainer $canUpdateContainer
+ * @param UpdatesDispatchDateTransport $updatesDispatchDateTransport
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(UpdatesDispatchDateTransport $updatesDispatchDateTransport, FetchesContainer $fetchesContainer)
+ {
+ $this->updatesDispatchDateTransport = $updatesDispatchDateTransport;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+ $transport = $container->transports()->first();
+ $query = $this->updatesDispatchDateTransport->execute($transport, Carbon::parse($request->input('dispatch_date')));
+ return $this->resourceResponse(new ContainerResource($container));
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDropDateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDropDateContainerLogic.php
new file mode 100644
index 00000000..56d4d9b5
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/UpdateDropDateContainerLogic.php
@@ -0,0 +1,60 @@
+ 'Updated Drop Date Container',
+ 'message' => 'You have successfully updated the Drop Date Container'
+ ];
+ }
+
+
+ /** @var UpdatesDropDateTransport */
+ private $updatesDropDateTransport;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * UpdateDropDateContainerLogic constructor.
+ * @param CanUpdateContainer $canUpdateContainer
+ * @param UpdatesDropDateTransport $updatesDropDateTransport
+ * @param FetchesContainer $fetchesContainer
+ */
+ public function __construct(UpdatesDropDateTransport $updatesDropDateTransport, FetchesContainer $fetchesContainer)
+ {
+ $this->updatesDropDateTransport = $updatesDropDateTransport;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+
+ /**
+ * @param Request $request
+ * @return JsonResponse
+ * @throws ErrorException
+ */
+ public function logic(Request $request) : JsonResponse
+ {
+ $container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
+ $transport = $container->transports()->first();
+ $query = $this->updatesDropDateTransport->execute($transport, Carbon::parse($request->input('drop_date')));
+ return $this->resourceResponse(new ContainerResource($container));
+ }
+
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
index 80a5ee5d..0a3b091c 100644
--- a/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Packages/CreatePackageLogic.php
@@ -72,7 +72,6 @@ class CreatePackageLogic extends AbstractControllerLogic
$request->input('height'),
$request->input('length'),
$request->input('weight'),
- 0,
$request->input('quantity'),
ApprovalStatus::PENDING_VERIFICATION);
diff --git a/app/Classes/Modules/PackingLists/Processors/CreatePackingListProcessor.php b/app/Classes/Modules/PackingLists/Processors/CreatePackingListProcessor.php
index 7b5a86d1..982b7307 100644
--- a/app/Classes/Modules/PackingLists/Processors/CreatePackingListProcessor.php
+++ b/app/Classes/Modules/PackingLists/Processors/CreatePackingListProcessor.php
@@ -20,7 +20,7 @@ class CreatePackingListProcessor
/**
- * CreatePackingListLogic constructor.
+ * CreatePackingListProcessor constructor.
* @param CanCreatePackingList $canCreatePackingList
* @param CreatesPackingList $createsPackingList
*/
diff --git a/app/Classes/Modules/PackingLists/Services/ChecksIfPackingListReferenceNumberExists.php b/app/Classes/Modules/PackingLists/Services/ChecksIfPackingListReferenceNumberExists.php
new file mode 100644
index 00000000..6ff6d0e6
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/ChecksIfPackingListReferenceNumberExists.php
@@ -0,0 +1,21 @@
+repository = $repository;
+ }
+
+ public function execute(string $reference_number): bool {
+ return $this->repository->where('reference', $reference_number)->exists();
+ }
+
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainerStatus.php b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainerStatus.php
new file mode 100644
index 00000000..1072f45f
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Containers/UpdatesContainerStatus.php
@@ -0,0 +1,24 @@
+status = $status;
+
+ return $this->handler($model);
+
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/Services/GeneratesPackingListReferenceNumber.php b/app/Classes/Modules/PackingLists/Services/GeneratesPackingListReferenceNumber.php
new file mode 100644
index 00000000..7054facf
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/GeneratesPackingListReferenceNumber.php
@@ -0,0 +1,30 @@
+checksIfPackingListReferenceNumberExists = $checksIfPackingListReferenceNumberExists;
+ }
+
+ /**
+ * @return string
+ */
+ public function execute(): string {
+
+ $referenceNumber = mt_rand(10000000, 99999999);
+
+ return !$this->checksIfPackingListReferenceNumberExists->execute($referenceNumber) ? $referenceNumber : self::execute();
+ }
+}
\ No newline at end of file
diff --git a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php
index efca110a..904dcb43 100644
--- a/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php
+++ b/app/Classes/Modules/Schedules/DataTransferObjects/ScheduleObject.php
@@ -23,7 +23,7 @@ class ScheduleObject implements DataTransferObject
* @param Carbon $eta
* @param int $status
*/
- public function __construct(Carbon $etd, Carbon $eta, int $status)
+ public function __construct(?Carbon $etd, ?Carbon $eta, int $status)
{
$this->etd = $etd;
$this->eta = $eta;
@@ -33,7 +33,7 @@ class ScheduleObject implements DataTransferObject
/**
* @return Carbon
*/
- public function getEtd(): Carbon
+ public function getEtd(): ?Carbon
{
return $this->etd;
}
@@ -41,7 +41,7 @@ class ScheduleObject implements DataTransferObject
/**
* @return Carbon
*/
- public function getEta(): Carbon
+ public function getEta(): ?Carbon
{
return $this->eta;
}
diff --git a/app/Classes/Modules/Schedules/Services/UpdatesScheduleStatus.php b/app/Classes/Modules/Schedules/Services/UpdatesScheduleStatus.php
new file mode 100644
index 00000000..578242ff
--- /dev/null
+++ b/app/Classes/Modules/Schedules/Services/UpdatesScheduleStatus.php
@@ -0,0 +1,23 @@
+status = $status;
+
+ return $this->handler($model);
+ }
+}
diff --git a/app/Classes/Modules/Transports/Services/UpdatesDispatchDateTransport.php b/app/Classes/Modules/Transports/Services/UpdatesDispatchDateTransport.php
new file mode 100644
index 00000000..fb8876dd
--- /dev/null
+++ b/app/Classes/Modules/Transports/Services/UpdatesDispatchDateTransport.php
@@ -0,0 +1,22 @@
+dispatch_date = $date;
+ return $this->handler($model);
+ }
+}
diff --git a/app/Classes/Modules/Transports/Services/UpdatesDropDateTransport.php b/app/Classes/Modules/Transports/Services/UpdatesDropDateTransport.php
new file mode 100644
index 00000000..6f23c65b
--- /dev/null
+++ b/app/Classes/Modules/Transports/Services/UpdatesDropDateTransport.php
@@ -0,0 +1,22 @@
+drop_date = $date;
+ return $this->handler($model);
+ }
+}
diff --git a/app/Http/Controllers/Orders/CreateShippingPackingListController.php b/app/Http/Controllers/Orders/CreateShippingPackingListController.php
new file mode 100644
index 00000000..01c28124
--- /dev/null
+++ b/app/Http/Controllers/Orders/CreateShippingPackingListController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Orders/CreateWarehousePackingListController.php b/app/Http/Controllers/Orders/CreateWarehousePackingListController.php
new file mode 100644
index 00000000..a986e328
--- /dev/null
+++ b/app/Http/Controllers/Orders/CreateWarehousePackingListController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/PackingLists/Containers/CompleteContainerController.php b/app/Http/Controllers/PackingLists/Containers/CompleteContainerController.php
new file mode 100644
index 00000000..97030d8a
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/CompleteContainerController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Controllers/PackingLists/Containers/CreateLoadContainerController.php b/app/Http/Controllers/PackingLists/Containers/CreateLoadContainerController.php
new file mode 100644
index 00000000..00373acc
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/CreateLoadContainerController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Controllers/PackingLists/Containers/RescheduleContainerController.php b/app/Http/Controllers/PackingLists/Containers/RescheduleContainerController.php
new file mode 100644
index 00000000..f85cf690
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/RescheduleContainerController.php
@@ -0,0 +1,19 @@
+execute($request);
+ }
+}
diff --git a/app/Http/Controllers/PackingLists/Containers/UpdateDispatchDateContainerController.php b/app/Http/Controllers/PackingLists/Containers/UpdateDispatchDateContainerController.php
new file mode 100644
index 00000000..17757383
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/UpdateDispatchDateContainerController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Controllers/PackingLists/Containers/UpdateDropDateContainerController.php b/app/Http/Controllers/PackingLists/Containers/UpdateDropDateContainerController.php
new file mode 100644
index 00000000..f4bb133f
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/UpdateDropDateContainerController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php
index e3a66981..297cb6dd 100644
--- a/app/Http/Resources/OrderResource.php
+++ b/app/Http/Resources/OrderResource.php
@@ -32,13 +32,7 @@ class OrderResource extends JsonResource
'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()),
$this->mergeWhen($this->relationLoaded('parcels'), [
'origin_warehouse_packages' => PackageResource::collection($this->parcels()->whereHas('packingList', function($query){
- return $query->where('type', PackingListType::SHIPPING_PACKING_LIST)->whereDoesntHave('containers', function($query) {
- return $query->whereHas('transports', function($query){
- return $query->whereHas('schedules', function($query){
- return $query->where('etd', '<', Carbon::now());
- });
- });
- });
+ return $query->where('type', PackingListType::SHIPPING_PACKING_LIST);
})->get()),
'in_transit_packages' => PackageResource::collection($this->parcels()->whereHas('packingList', function($query){
return $query->where('type', PackingListType::SHIPPING_PACKING_LIST)->whereHas('containers', function($query) {
diff --git a/app/Http/Resources/ScheduleResource.php b/app/Http/Resources/ScheduleResource.php
index 6f7209d6..64532420 100644
--- a/app/Http/Resources/ScheduleResource.php
+++ b/app/Http/Resources/ScheduleResource.php
@@ -16,8 +16,8 @@ class ScheduleResource extends JsonResource
{
return [
'id' => $this->id,
- 'etd' => $this->etd->format('d-m-Y'),
- 'eta' => $this->eta->format('d-m-Y'),
+ 'etd' => $this->etd ? $this->etd->format('d-m-Y') : 'n/a',
+ 'eta' => $this->eta ? $this->eta->format('d-m-Y') : 'n/a',
'status' => $this->status,
];
}
diff --git a/package.json b/package.json
index 26b57108..d5b37663 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"v-money": "^0.8.1",
"vue": "^2.6.10",
"vue-avatar": "^2.1.8",
+ "vue-bootstrap-datetimepicker": "^5.0.1",
"vue-debounce": "^2.6.0",
"vue-template-compiler": "^2.6.10",
"vue-the-mask": "^0.11.1",
diff --git a/resources/assets/sass/modules/_form_elements.scss b/resources/assets/sass/modules/_form_elements.scss
index e242894f..00b41ed2 100644
--- a/resources/assets/sass/modules/_form_elements.scss
+++ b/resources/assets/sass/modules/_form_elements.scss
@@ -560,7 +560,6 @@ input[type=checkbox]:checked + label{
padding-left: 12px;
padding-right: 12px;
padding-bottom: 4px;
- overflow: hidden;
width: 100%;
@include transition(background-color .2s ease);
&.required:after {
diff --git a/resources/assets/vue/components/containers/forms/CreateLoadContainerFormComponent.vue b/resources/assets/vue/components/containers/forms/CreateLoadContainerFormComponent.vue
new file mode 100644
index 00000000..81c4147b
--- /dev/null
+++ b/resources/assets/vue/components/containers/forms/CreateLoadContainerFormComponent.vue
@@ -0,0 +1,90 @@
+
+ Create Load Container
+
{{item.container.container_reference}}
+{{item.container ? item.container.container_reference : '-'}}