diff --git a/app/Classes/Modules/Orders/ControllersLogic/AssignOrderRemarkLogic.php b/app/Classes/Modules/Orders/ControllersLogic/AssignOrderRemarkLogic.php
new file mode 100644
index 00000000..e16886f6
--- /dev/null
+++ b/app/Classes/Modules/Orders/ControllersLogic/AssignOrderRemarkLogic.php
@@ -0,0 +1,67 @@
+ 'Created Order Remark',
+ 'message' => 'You have successfully created a new Order Remark'
+ ];
+ }
+
+ /** @var CanCreateRemark */
+ private $canCreateRemark;
+
+ /** @var CreatesOrderRemark */
+ private $createsOrderRemark;
+
+ /** @var FetchesOrder */
+ private $fetchesOrder;
+
+ /**
+ * CreateRemarkLogic constructor.
+ * @param CanCreateRemark $canCreateRemark
+ * @param CreatesOrderRemark $createsOrderRemark
+ */
+ public function __construct(CanCreateRemark $canCreateRemark, CreatesOrderRemark $createsOrderRemark, FetchesOrder $fetchesOrder)
+ {
+ $this->canCreateRemark = $canCreateRemark;
+ $this->createsOrderRemark = $createsOrderRemark;
+ $this->fetchesOrder = $fetchesOrder;
+ }
+
+ /**
+ * @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 RemarkObject(
+ $request->input('content'),
+ $request->route('id')
+ );
+
+ $this->canCreateRemark->passes($object);
+ $query = $this->createsOrderRemark->execute($this->fetchesOrder->execute(['id' => $request->route('id')]), $object);
+ return $this->resourceResponse( new RemarkResource($query));
+ }
+}
diff --git a/app/Classes/Modules/Orders/Services/CreatesOrderRemark.php b/app/Classes/Modules/Orders/Services/CreatesOrderRemark.php
new file mode 100644
index 00000000..50df32bc
--- /dev/null
+++ b/app/Classes/Modules/Orders/Services/CreatesOrderRemark.php
@@ -0,0 +1,29 @@
+commenter_id = $object->getCommenterId();
+ $model->content = $object->getContent();
+
+ return $this->handler($order->remarks(), $model);
+
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/AssignPackingListRemarkLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/AssignPackingListRemarkLogic.php
new file mode 100644
index 00000000..980bc5b9
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/AssignPackingListRemarkLogic.php
@@ -0,0 +1,67 @@
+ 'Created Packing List Remark',
+ 'message' => 'You have successfully created a new Packing List Remark'
+ ];
+ }
+
+ /** @var CanCreateRemark */
+ private $canCreateRemark;
+
+ /** @var CreatesPackingListRemark */
+ private $createsPackingListRemark;
+
+ /** @var FetchesPackingList */
+ private $fetchesPackingList;
+
+ /**
+ * CreateRemarkLogic constructor.
+ * @param CanCreateRemark $canCreateRemark
+ * @param CreatesPackingListRemark $createsPackingListRemark
+ */
+ public function __construct(CanCreateRemark $canCreateRemark, CreatesPackingListRemark $createsPackingListRemark, FetchesPackingList $fetchesPackingList)
+ {
+ $this->canCreateRemark = $canCreateRemark;
+ $this->createsPackingListRemark = $createsPackingListRemark;
+ $this->fetchesPackingList = $fetchesPackingList;
+ }
+
+ /**
+ * @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 RemarkObject(
+ $request->input('content'),
+ $request->route('id')
+ );
+
+ $this->canCreateRemark->passes($object);
+ $query = $this->createsPackingListRemark->execute($this->fetchesPackingList->execute(['id' => $request->route('id')]), $object);
+ return $this->resourceResponse( new RemarkResource($query));
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignContainerRemarkLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignContainerRemarkLogic.php
new file mode 100644
index 00000000..24e59b83
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/AssignContainerRemarkLogic.php
@@ -0,0 +1,68 @@
+ 'Created Order Remark',
+ 'message' => 'You have successfully created a new Order Remark'
+ ];
+ }
+
+ /** @var CanCreateRemark */
+ private $canCreateRemark;
+
+ /** @var CreatesContainerRemark */
+ private $createsContainerRemark;
+
+ /** @var FetchesContainer */
+ private $fetchesContainer;
+
+ /**
+ * CreateRemarkLogic constructor.
+ * @param CanCreateRemark $canCreateRemark
+ * @param CreatesContainerRemark $createsContainerRemark
+ */
+ public function __construct(CanCreateRemark $canCreateRemark, CreatesContainerRemark $createsContainerRemark, FetchesContainer $fetchesContainer)
+ {
+ $this->canCreateRemark = $canCreateRemark;
+ $this->createsContainerRemark = $createsContainerRemark;
+ $this->fetchesContainer = $fetchesContainer;
+ }
+
+ /**
+ * @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 RemarkObject(
+ $request->input('content'),
+ $request->route('id')
+ );
+
+ $this->canCreateRemark->passes($object);
+ $query = $this->createsContainerRemark->execute($this->fetchesContainer->execute(['id' => $request->route('id')]), $object);
+ return $this->resourceResponse( new RemarkResource($query));
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php
index 175575cf..bb4b2a06 100644
--- a/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php
+++ b/app/Classes/Modules/PackingLists/ControllersLogic/Containers/CreateContainerRemarkLogic.php
@@ -53,9 +53,9 @@ class CreateContainerRemarkLogic extends AbstractControllerLogic
public function logic(Request $request) : JsonResponse
{
- $container = $this->fetchesContainer->execute(['id' => $request->input('container_id')]);
+ $container = $this->fetchesContainer->execute(['id' => $request->route('id')]);
- $object = new RemarkObject($request->input('content'), 1);
+ $object = new RemarkObject($request->input('content'), auth()->user()->id);
$this->createRemarkProcessor->execute($container, $object);
diff --git a/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainerRemark.php b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainerRemark.php
new file mode 100644
index 00000000..75a069b7
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/Containers/CreatesContainerRemark.php
@@ -0,0 +1,29 @@
+commenter_id = $object->getCommenterId();
+ $model->content = $object->getContent();
+
+ return $this->handler($container->remarks(), $model);
+
+ }
+}
diff --git a/app/Classes/Modules/PackingLists/Services/CreatesPackingListRemark.php b/app/Classes/Modules/PackingLists/Services/CreatesPackingListRemark.php
new file mode 100644
index 00000000..30f30358
--- /dev/null
+++ b/app/Classes/Modules/PackingLists/Services/CreatesPackingListRemark.php
@@ -0,0 +1,29 @@
+commenter_id = $object->getCommenterId();
+ $model->content = $object->getContent();
+
+ return $this->handler($packingList->remarks(), $model);
+
+ }
+}
diff --git a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php
index ffd7a701..f120efab 100644
--- a/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php
+++ b/app/Classes/Modules/Remarks/ControllersLogic/UpdateRemarkLogic.php
@@ -57,7 +57,7 @@ class UpdateRemarkLogic extends AbstractControllerLogic
*/
public function logic(Request $request) : JsonResponse
{
- $object = new RemarkObject($request->input('content'), $request->input('commenter_id'));
+ $object = new RemarkObject($request->input('content'), auth()->user()->id);
$this->canUpdateRemark->passes($object);
diff --git a/app/Http/Controllers/Orders/AssignOrderRemarkController.php b/app/Http/Controllers/Orders/AssignOrderRemarkController.php
new file mode 100644
index 00000000..09de096f
--- /dev/null
+++ b/app/Http/Controllers/Orders/AssignOrderRemarkController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Controllers/PackingLists/AssignPackingListRemarkController.php b/app/Http/Controllers/PackingLists/AssignPackingListRemarkController.php
new file mode 100644
index 00000000..bcd6531c
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/AssignPackingListRemarkController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Controllers/PackingLists/Containers/AssignContainerRemarkController.php b/app/Http/Controllers/PackingLists/Containers/AssignContainerRemarkController.php
new file mode 100644
index 00000000..d199aaf9
--- /dev/null
+++ b/app/Http/Controllers/PackingLists/Containers/AssignContainerRemarkController.php
@@ -0,0 +1,20 @@
+execute($request);
+ }
+
+}
diff --git a/app/Http/Resources/ContainerResource.php b/app/Http/Resources/ContainerResource.php
index b9daa54f..23cb7817 100644
--- a/app/Http/Resources/ContainerResource.php
+++ b/app/Http/Resources/ContainerResource.php
@@ -3,6 +3,7 @@
namespace App\Http\Resources;
use App\Classes\ValueObjects\Constants\ContainerTypes;
+use App\Models\Remark;
use Illuminate\Http\Resources\Json\JsonResource;
class ContainerResource extends JsonResource
@@ -26,6 +27,7 @@ class ContainerResource extends JsonResource
'packing_lists' => PackingListResource::collection($this->whenLoaded('packingLists', function(){
return $this->packingLists()->whereHas('packages')->get();
})),
+ 'remarks' => RemarkResource::collection($this->remarks),
'status' => $this->status
];
}
diff --git a/app/Http/Resources/RemarkResource.php b/app/Http/Resources/RemarkResource.php
index d5f93d79..24081934 100644
--- a/app/Http/Resources/RemarkResource.php
+++ b/app/Http/Resources/RemarkResource.php
@@ -16,8 +16,11 @@ class RemarkResource extends JsonResource
{
return [
'id' => $this->id,
- 'commenter_id' => $this->commenter_id,
+ 'commenter' => new UserResource($this->commenter),
+ 'owner_id' => $this->owner_id,
'content' => $this->content,
+ 'created_at' => $this->created_at->format('d-m-Y H:i'),
+ 'long_ago' => $this->created_at->diffForHumans()
];
}
}
diff --git a/app/Models/Container.php b/app/Models/Container.php
index 21f59843..61015f81 100644
--- a/app/Models/Container.php
+++ b/app/Models/Container.php
@@ -65,5 +65,4 @@ class Container extends AbstractModel implements Transportable, Remarkable
{
return $this->morphMany(Remark::class, 'owner');
}
-
}
diff --git a/app/Models/Order.php b/app/Models/Order.php
index 401da1db..995267ed 100644
--- a/app/Models/Order.php
+++ b/app/Models/Order.php
@@ -55,6 +55,14 @@ class Order extends AbstractModel implements Addressable, Packable
return $this->morphMany(PackingList::class, 'owner');
}
+ /**
+ * @return MorphMany
+ */
+ public function remarks(): morphMany
+ {
+ return $this->morphMany(Remark::class, 'owner');
+ }
+
/**
* @return HasManyThrough
*/
diff --git a/app/Models/PackingList.php b/app/Models/PackingList.php
index 550d5f6f..fc775ba2 100644
--- a/app/Models/PackingList.php
+++ b/app/Models/PackingList.php
@@ -56,6 +56,14 @@ class PackingList extends AbstractModel implements Transportable, Steppable
return $this->morphMany(Transport::class, 'owner');
}
+ /**
+ * @return MorphMany
+ */
+ public function remarks(): morphMany
+ {
+ return $this->morphMany(Remark::class, 'owner');
+ }
+
/**
* @return belongsToMany
*/
diff --git a/app/Models/Remark.php b/app/Models/Remark.php
index 863c3001..f2de3a5c 100644
--- a/app/Models/Remark.php
+++ b/app/Models/Remark.php
@@ -4,6 +4,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\SoftDeletes;
+use Illuminate\Database\Eloquent\Relations\BelongsTo;
class Remark extends AbstractModel
{
@@ -15,4 +16,12 @@ class Remark extends AbstractModel
{
return $this->morphTo();
}
+
+ /**
+ * @return BelongsTo
+ */
+ public function commenter(): BelongsTo
+ {
+ return $this->BelongsTo(User::class, 'commenter_id', 'id');
+ }
}
diff --git a/resources/assets/vue/components/containers/elements/ContainerCommentComponent.vue b/resources/assets/vue/components/containers/elements/ContainerCommentComponent.vue
new file mode 100644
index 00000000..9cc32c2f
--- /dev/null
+++ b/resources/assets/vue/components/containers/elements/ContainerCommentComponent.vue
@@ -0,0 +1,70 @@
+
+ {{item.commenter.name}} {{item.content}} Process of editing the container needs to verify from the warehouseEdit Package
- Are you Sure?
+
Jacob Arlington
-Adipisicing occaecat pariatur id sunt ullamco quis laborum irure ea excepteur enim dolore est. Deserunt do consectetur ex in dolor labore ad reprehenderit velit laboris officia ut.
-Jacob Arlington
-Adipisicing occaecat pariatur id sunt ullamco quis laborum irure ea excepteur enim dolore est. Deserunt do consectetur ex in dolor labore ad reprehenderit velit laboris officia ut.
-