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.

70 lines
2.1KB

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