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

61 行
1.7KB

  1. <?php
  2. namespace App\Http\Controllers\Web\SeasonTicketContract;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Kintone\Models\Customer;
  5. use App\Kintone\Models\Parking;
  6. use App\Kintone\Models\SeasonTicketContract;
  7. use App\Kintone\Models\TerminateApplication;
  8. use App\Logic\GeneralApplicationManager;
  9. use Illuminate\Http\JsonResponse;
  10. use Illuminate\Http\Request;
  11. class TerminationOrderController extends WebController
  12. {
  13. public function name(): string
  14. {
  15. return "定期契約解約申請";
  16. }
  17. public function description(): string
  18. {
  19. return "定期契約解約依頼を登録する";
  20. }
  21. public function __construct(protected TerminationOrderParams $param)
  22. {
  23. parent::__construct();
  24. $this->middleware('auth:sanctum');
  25. }
  26. protected function run(Request $request): JsonResponse
  27. {
  28. $param = $this->param;
  29. $parking = Parking::findByParkingName($param->parkingName);
  30. $customer = Customer::getSelf();
  31. $seasonTicketContract = SeasonTicketContract::find($param->seasonTicketContractRecordNo);
  32. $application = new TerminateApplication();
  33. $manager = new GeneralApplicationManager($application);
  34. $manager
  35. ->setCustomer($customer)
  36. ->setSeasonTicketContract($seasonTicketContract)
  37. ->setParking($parking)
  38. ->makeApplication();
  39. $application->terminateDate = $param->terminateDate;
  40. $application->reason = explode(",", $param->reason);
  41. $application->reasonDetail = $param->reasonDetail;
  42. $application->opinion = $param->opinion;
  43. $application->memo = $param->memo;
  44. $application->save();
  45. return $this->successResponse();
  46. }
  47. }