領収証発行サービス
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.3KB

  1. <?php
  2. namespace App\Http\Controllers\Web\ReceiptIssuingOrder;
  3. use App\Http\Controllers\Web\IParam;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Logic\ReceiptIssuingOrder\UpdateManager;
  6. use App\Models\ReceiptIssuingOrder;
  7. use App\Util\DateUtil;
  8. use Illuminate\Http\JsonResponse;
  9. use Illuminate\Http\Request;
  10. class MailOrderController 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 MailOrderParam $param,
  22. private UpdateManager $manager
  23. ) {
  24. parent::__construct();
  25. }
  26. protected function getParam(): IParam
  27. {
  28. return $this->param;
  29. }
  30. protected function run(Request $request): JsonResponse
  31. {
  32. $param = $this->param;
  33. $this->manager->initById($param->id)
  34. ->checkTimestamp($param->timestamp)
  35. ->fill(
  36. [
  37. ...$param->toArray(),
  38. ReceiptIssuingOrder::COL_NAME_STATUS_ORDER_MAIL_DATETIME => DateUtil::now(),
  39. ]
  40. )
  41. ->update();
  42. return $this->successResponse();
  43. }
  44. }