Compare commits

...

1 Commits

Author SHA1 Message Date
Haziq Danial 6842e3f1db updated pakage remark - haziq 2021-12-07 23:19:21 +08:00
6 changed files with 88 additions and 8 deletions
@@ -0,0 +1,53 @@
<?php
namespace App\Classes\Modules\PackingLists\ControllersLogic\Packages;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Orders\Services\FetchesOrder;
use App\Classes\Modules\Remarks\DataTransferObjects\RemarkObject;
use App\Classes\Modules\Remarks\Services\CreatesRemark;
use App\Http\Resources\ContactResource;
use App\Http\Resources\OrderResource;
use App\Models\Package;
use App\Models\Remark;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CreatePackageRemarkLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'Created Package',
'message' => 'You have successfully created a new Package'
];
}
/** @var CreatesRemark */
private $createsRemark;
/**
* CreateContainerRemarkLogic constructor.
* @param CreatesRemark $createsRemark
*/
public function __construct(CreatesRemark $createsRemark, FetchesOrder $fetchesOrder)
{
$this->createsRemark = $createsRemark;
$this->fetchesOrder = $fetchesOrder;
}
public function logic(Request $request) : JsonResponse
{
$order = $this->fetchesOrder->execute(['id' => $request->route('id')]);
$object = new RemarkObject($request->input('content'), auth()->user()->id);
$remark = $this->createsRemark->execute($order ,$object);
return $this->resourceResponse(new OrderResource($order));
}
}
@@ -9,7 +9,7 @@ use App\Classes\Modules\Companies\Services\FetchesCompanyModule;
use App\Classes\Modules\Orders\Processors\CreateOrderProcessor;
use App\Classes\Modules\Orders\Services\FetchesDataFromVTPortal;
use App\Classes\Modules\Orders\Services\FetchesOrder;
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageLogic;
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageRemarkLogic;
use App\Classes\Modules\PackingLists\DataTransferObjects\PackageObject;
use App\Classes\Modules\PackingLists\DataTransferObjects\PackingListObject;
use App\Classes\Modules\PackingLists\Services\FetchesPackingList;
@@ -60,7 +60,7 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
/** @var CreatePackingListProcessor */
private $createPackingListProcessor;
/** @var CreatePackageLogic */
/** @var CreatePackageRemarkLogic */
private $createPackage;
/** @var CreatePackageProcessor */
@@ -82,12 +82,12 @@ class FetchWarehouseReceiveListFromVTPortalProcessor
* @param CreateOrderProcessor $createOrderProcessor
* @param FetchesPackingList $fetchesPakcingList
* @param CreatePackingListProcessor $createPackingListProcessor
* @param CreatePackageLogic $createPackage
* @param CreatePackageRemarkLogic $createPackage
* @param CreatePackageProcessor $createPackageProcessor
* @param CreatesTransport $createsTransport
* @param CreatesSchedule $createsSchedule
*/
public function __construct(FetchesDataFromVTPortal $fetchesDataFRomVTPortal, CleansOldAddress $cleansOldAddress, CreateAddressFromOldAddressProcessor $createAddressFromOldAddressProcessor, FetchesCompanyModule $fetchesCompanyModule, FetchesOrder $fetchesOrder, CreateOrderProcessor $createOrderProcessor, FetchesPackingList $fetchesPakcingList, CreatePackingListProcessor $createPackingListProcessor, CreatePackageLogic $createPackage, CreatePackageProcessor $createPackageProcessor, CreatesTransport $createsTransport, CreatesSchedule $createsSchedule)
public function __construct(FetchesDataFromVTPortal $fetchesDataFRomVTPortal, CleansOldAddress $cleansOldAddress, CreateAddressFromOldAddressProcessor $createAddressFromOldAddressProcessor, FetchesCompanyModule $fetchesCompanyModule, FetchesOrder $fetchesOrder, CreateOrderProcessor $createOrderProcessor, FetchesPackingList $fetchesPakcingList, CreatePackingListProcessor $createPackingListProcessor, CreatePackageRemarkLogic $createPackage, CreatePackageProcessor $createPackageProcessor, CreatesTransport $createsTransport, CreatesSchedule $createsSchedule)
{
$this->fetchesDataFRomVTPortal = $fetchesDataFRomVTPortal;
$this->cleansOldAddress = $cleansOldAddress;
@@ -2,7 +2,7 @@
namespace App\Http\Controllers\PackingLists\Packages;
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageLogic;
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageRemarkLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
@@ -10,10 +10,10 @@ class CreatePackageController
{
/**
* @param Request $request
* @param CreatePackageLogic $logic
* @param CreatePackageRemarkLogic $logic
* @return JsonResponse
*/
public function create(Request $request, CreatePackageLogic $logic): JsonResponse {
public function create(Request $request, CreatePackageRemarkLogic $logic): JsonResponse {
return $logic->execute($request);
}
@@ -0,0 +1,14 @@
<?php
namespace App\Http\Controllers\PackingLists\Packages;
use App\Classes\Modules\PackingLists\ControllersLogic\Packages\CreatePackageRemarkLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CreatePackageRemarkController
{
public function create(Request $request, CreatePackageRemarkLogic $logic) : JsonResponse{
return $logic->execute($request);
}
}
+11 -1
View File
@@ -2,6 +2,7 @@
namespace App\Models;
use App\Classes\General\Interfaces\Remarkable;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\PackingListType;
use Carbon\Carbon;
@@ -12,8 +13,9 @@ use Illuminate\Database\Eloquent\SoftDeletes;
use Staudenmeir\EloquentHasManyDeep\HasManyDeep;
use Staudenmeir\EloquentHasManyDeep\HasOneDeep;
use Staudenmeir\EloquentHasManyDeep\HasRelationships;
use Illuminate\Database\Eloquent\Relations\MorphMany;
class Package extends AbstractModel
class Package extends AbstractModel implements Remarkable
{
use HasRelationships;
use SoftDeletes;
@@ -93,6 +95,14 @@ class Package extends AbstractModel
return $this->hasOneDeep(Transport::class, [PackingList::class], ['id', ['owner_type', 'owner_id']], ['packing_list_id', null]);
}
/**
* @return MorphMany
*/
public function remarks(): morphMany
{
return $this->morphMany(Remark::class, 'owner');
}
/**
* @param $query
* @return mixed
+3
View File
@@ -39,6 +39,9 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' =
Route::get('/inbound-custom-cleared', 'InboundCustomClearedController@list')->name('list.inbound.custom.cleared');
Route::put('/switch-packing-list/{id}', 'SwitchPackagePackingListController@switch')->name('switch.packing_list');
Route::post('/{id}/remark/create', 'CreatePackageRemarkController@create')->name('remark.create');
Route::group(['namespace' => 'PackageItems', 'prefix' => 'item', 'as' => 'item.'], function () {
Route::get('/{id}/show', 'FetchPackageItemController@fetch')->name('show');
Route::get('/list', 'ListPackageItemsController@list')->name('list');