update drop date

update dispatch date
This commit is contained in:
glovetleong
2021-09-23 14:40:12 +08:00
parent 24ea9d381e
commit 7d332f01e5
8 changed files with 207 additions and 2 deletions
@@ -87,8 +87,6 @@ class CreateLoadContainerLogic extends AbstractControllerLogic
$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')]));
@@ -0,0 +1,60 @@
<?php
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Transports\Services\UpdatesDispatchDateTransport;
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
use App\Http\Resources\ContainerResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Carbon\Carbon;
class UpdateDispatchDateContainerLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => '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));
}
}
@@ -0,0 +1,60 @@
<?php
namespace App\Classes\Modules\PackingLists\ControllersLogic\Containers;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\Modules\Transports\Services\UpdatesDropDateTransport;
use App\Classes\Modules\PackingLists\Services\Containers\FetchesContainer;
use App\Http\Resources\ContainerResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Carbon\Carbon;
class UpdateDropDateContainerLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => '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));
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Classes\Modules\Transports\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
use App\Models\Transport;
class UpdatesDispatchDateTransport extends AbstractUpdateRecord
{
/**
* @param Transport $model
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(Transport $model, $date) {
$model->dispatch_date = $date;
return $this->handler($model);
}
}
@@ -0,0 +1,22 @@
<?php
namespace App\Classes\Modules\Transports\Services;
use App\Classes\General\Eloquent\AbstractUpdateRecord;
use App\Classes\Modules\Transports\DataTransferObjects\TransportObject;
use App\Models\Transport;
class UpdatesDropDateTransport extends AbstractUpdateRecord
{
/**
* @param Transport $model
* @return \Illuminate\Database\Eloquent\Model
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function execute(Transport $model, $date) {
$model->drop_date = $date;
return $this->handler($model);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\PackingLists\Containers;
use App\Classes\Modules\PackingLists\ControllersLogic\Containers\UpdateDispatchDateContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateDispatchDateContainerController
{
/**
* @param Request $request
* @param UpdateDispatchDateContainerLogic $logic
* @return JsonResponse
*/
public function update(Request $request, UpdateDispatchDateContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Controllers\PackingLists\Containers;
use App\Classes\Modules\PackingLists\ControllersLogic\Containers\UpdateDropDateContainerLogic;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class UpdateDropDateContainerController
{
/**
* @param Request $request
* @param UpdateDropDateContainerLogic $logic
* @return JsonResponse
*/
public function update(Request $request, UpdateDropDateContainerLogic $logic): JsonResponse {
return $logic->execute($request);
}
}
+3
View File
@@ -19,6 +19,9 @@ Route::group(['namespace' => 'PackingLists', 'as' => 'packing_list.', 'prefix' =
Route::delete('/delete/{id}', 'DeleteContainerController@delete')->name('delete');
Route::put('/assign-packing_list/{id}', 'AssignPackingListContainerController@assign')->name('assign.packing_list');
Route::put('/reschedule/{id}', 'RescheduleContainerController@reschedule')->name('reschedule');
Route::put('/update-dispatch-date/{id}', 'UpdateDispatchDateContainerController@update')->name('update_dispatch_date');
Route::put('/update-drop-date/{id}', 'UpdateDropDateContainerController@update')->name('update_drop_date');
});
Route::group(['namespace' => 'Packages', 'as' => 'package.', 'prefix' => 'package'], function () {