領収証発行サービス
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

54 řádky
1.3KB

  1. <?php
  2. namespace App\Http\Controllers\Web\ReceiptIssuingOrder;
  3. use App\Codes\UserRole;
  4. use App\Http\Controllers\Web\IParam;
  5. use App\Http\Controllers\Web\WebController;
  6. use App\Logic\ReceiptIssuingOrder\UpdateManager;
  7. use App\Models\User;
  8. use Illuminate\Http\JsonResponse;
  9. use Illuminate\Http\Request;
  10. class ChangeHandlerController extends WebController
  11. {
  12. public function name(): string
  13. {
  14. return "領収証発行依頼担当者変更";
  15. }
  16. public function description(): string
  17. {
  18. return "領収証発行依頼の担当者を変更する";
  19. }
  20. public function __construct(
  21. protected ChangeHandlerParam $param,
  22. private UpdateManager $manager
  23. ) {
  24. parent::__construct();
  25. $this->middleware('auth:sanctum');
  26. $this->roleAllow(UserRole::NORMAL_ADMIN);
  27. }
  28. protected function getParam(): IParam
  29. {
  30. return $this->param;
  31. }
  32. protected function run(Request $request): JsonResponse
  33. {
  34. $param = $this->param;
  35. // 変更先ユーザーの取得
  36. $newHandler = User::findOrFail($param->handlerId);
  37. $this->manager->initById($param->id)
  38. ->checkTimestamp($param->timestamp)
  39. ->changeHandler($newHandler)
  40. ->update();
  41. return $this->successResponse();
  42. }
  43. }