diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerLogic.php
index 40376b12..32ff0ae8 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'
];
}
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..ec9c5db1
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateLoadContainerLogic.php
@@ -0,0 +1,105 @@
+ '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'),
+ $request->input('status')
+ );
+
+ $company = $this->fetchesCompanyModule->execute(['id' => 2]);
+
+ $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('receive_date')), Carbon::parse($request->input('receive_date')), ApprovalStatus::APPROVED);
+ $transport = $this->createsTransport->execute($transportObject, $container);
+
+ $scheduleObject = new ScheduleObject(Carbon::parse($request->input('receive_date')), Carbon::parse($request->input('receive_date')), ApprovalStatus::APPROVED);
+ $schedule = $this->createsSchedule->execute($transport, $scheduleObject);
+
+ return $this->resourceResponse(new ContainerResource($container));
+ }
+
+}
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/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
+