您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

71 行
2.2KB

  1. <?php
  2. namespace App\Http\Controllers\Web\SeasonTicketContract;
  3. use App\Email\Members\VehicleInfoUpdateOrderNotice;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Kintone\Models\Customer;
  6. use App\Kintone\Models\Parking;
  7. use App\Kintone\Models\SeasonTicketContract;
  8. use App\Kintone\Models\VehicleInfoUpdateApplication;
  9. use App\Logic\EmailManager;
  10. use App\Logic\GeneralApplicationManager;
  11. use Illuminate\Http\JsonResponse;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\Auth;
  14. class UpdateVehicleInfoOrderController extends WebController
  15. {
  16. public function name(): string
  17. {
  18. return "車両情報変更申請";
  19. }
  20. public function description(): string
  21. {
  22. return "車両情報変更依頼を登録する";
  23. }
  24. public function __construct(protected UpdateVehicleInfoOrderParams $param)
  25. {
  26. parent::__construct();
  27. $this->middleware('auth:sanctum');
  28. }
  29. protected function run(Request $request): JsonResponse
  30. {
  31. $param = $this->param;
  32. $parking = Parking::findByParkingName($param->parkingName);
  33. $customer = Customer::getSelf();
  34. $seasonTicketContract = SeasonTicketContract::find($param->seasonTicketContractRecordNo);
  35. $application = new VehicleInfoUpdateApplication();
  36. $manager = new GeneralApplicationManager($application);
  37. $manager
  38. ->setCustomer($customer)
  39. ->setSeasonTicketContract($seasonTicketContract)
  40. ->setParking($parking)
  41. ->makeApplication();
  42. $application->changeDate = $param->changeDate;
  43. $application->vehicleNoBefore = $seasonTicketContract->vehicleNo;
  44. $application->vehicleNoAfter = $param->vehicleNo;
  45. $application->registerNoBefore = $seasonTicketContract->registerNo;
  46. $application->registerNoAfter = $param->registerNo;
  47. $application->memo = $param->memo;
  48. // メール送信
  49. $email = new VehicleInfoUpdateOrderNotice($customer, $seasonTicketContract, $application);
  50. $email->setUser(Auth::user());
  51. $emailMmanager = new EmailManager($email);
  52. $emailMmanager->confirm();
  53. $application->save();
  54. return $this->successResponse();
  55. }
  56. }