From 6e0144ea3c6e018a95102cd93473c2cb1982828f Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Thu, 22 Jun 2023 11:02:51 +0900 Subject: [PATCH] =?UTF-8?q?=E6=8B=85=E5=BD=93=E8=80=85=E5=A4=89=E6=9B=B4?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=80=80=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ChangeHandlerController.php | 53 +++++++++++++++++ .../ChangeHandlerParam.php | 26 ++++++++ .../HandlersController.php | 59 +++++++++++++++++++ .../Web/ReceiptIssuingOrder/HandlersParam.php | 17 ++++++ .../ReceiptIssuingOrderManager.php | 15 +++++ routes/api.php | 2 + 6 files changed, 172 insertions(+) create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerController.php create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerParam.php create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersController.php create mode 100644 app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersParam.php diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerController.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerController.php new file mode 100644 index 0000000..ea24e62 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerController.php @@ -0,0 +1,53 @@ +middleware('auth:sanctum'); + $this->roleAllow(UserRole::NORMAL_ADMIN); + } + + protected function getParam(): IParam + { + return $this->param; + } + + protected function run(Request $request): JsonResponse + { + $param = $this->param; + + // 変更先ユーザーの取得 + $newHandler = User::findOrFail($param->handlerId); + + $this->manager->initById($param->id) + ->checkTimestamp($param->timestamp) + ->changeHandler($newHandler) + ->update(); + + return $this->successResponse(); + } +} diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerParam.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerParam.php new file mode 100644 index 0000000..654e419 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/ChangeHandlerParam.php @@ -0,0 +1,26 @@ + $this->str(), + ReceiptIssuingOrder::COL_NAME_HANDLER_ID => $this->str(), + ], + $this->timestamp(), + ); + } +} diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersController.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersController.php new file mode 100644 index 0000000..1c68f63 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersController.php @@ -0,0 +1,59 @@ +middleware('auth:sanctum'); + $this->roleAllow(UserRole::NORMAL_ADMIN); + } + + protected function getParam(): IParam + { + return $this->param; + } + + protected function run(Request $request): JsonResponse + { + $contractId = $this->loginUser()->getCurrentContractId(); + if ($contractId === null) { + return $this->failedResponse(); + } + + $list = User::whereContractId($contractId) + ->orderBy(User::COL_NAME_ID) + ->get([ + User::COL_NAME_ID, + User::COL_NAME_NAME, + ]); + + + + return $this->successResponse(['records' => $list]); + } +} diff --git a/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersParam.php b/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersParam.php new file mode 100644 index 0000000..6d88c88 --- /dev/null +++ b/app/Http/Controllers/Web/ReceiptIssuingOrder/HandlersParam.php @@ -0,0 +1,17 @@ +initialized) { + throw new LogicException("初期化ミス"); + } + if ($this->order->contract_id !== $newHandler->contract_id) { + throw new AppCommonException('契約不正'); + } + $this->order->handler_id = $newHandler->id; + return $this; + } + public function getOrder(): array { if (!$this->initialized) { @@ -241,6 +254,8 @@ abstract class ReceiptIssuingOrderManager } } + + return $this; } } diff --git a/routes/api.php b/routes/api.php index 6bf14e0..e3c1668 100644 --- a/routes/api.php +++ b/routes/api.php @@ -22,6 +22,8 @@ RouteHelper::get('/app-token-check', App\Http\Controllers\Web\ReceiptIssuingOrde RouteHelper::post('/receipt-issuing-order/confirm', App\Http\Controllers\Web\ReceiptIssuingOrder\ConfirmController::class); RouteHelper::post('/receipt-issuing-order/mail-order', App\Http\Controllers\Web\ReceiptIssuingOrder\MailOrderController::class); RouteHelper::post('/receipt-issuing-order/mail-complete', App\Http\Controllers\Web\ReceiptIssuingOrder\MailPostCompleteController::class); +RouteHelper::post('/receipt-issuing-order/change-handler', App\Http\Controllers\Web\ReceiptIssuingOrder\ChangeHandlerController::class); +RouteHelper::get('/receipt-issuing-order/handlers', App\Http\Controllers\Web\ReceiptIssuingOrder\HandlersController::class); RouteHelper::get('/use-summary/yyyymm', App\Http\Controllers\Web\UseSummary\UseSummaryYYYYMMsController::class);