Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

59 Zeilen
1.6KB

  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\SeasonTicketReOrderApplication;
  8. use App\Kintone\Models\StickerReOrderApplication;
  9. use App\Logic\GeneralApplicationManager;
  10. use Illuminate\Http\JsonResponse;
  11. use Illuminate\Http\Request;
  12. class StickerReOrderController extends WebController
  13. {
  14. public function name(): string
  15. {
  16. return "シール再発行依頼";
  17. }
  18. public function description(): string
  19. {
  20. return "シール再発行依頼を登録する";
  21. }
  22. public function __construct(protected StickerReOrderParams $param)
  23. {
  24. parent::__construct();
  25. $this->middleware('auth:sanctum');
  26. }
  27. protected function run(Request $request): JsonResponse
  28. {
  29. $param = $this->param;
  30. $parking = Parking::findByParkingName($param->parkingName);
  31. $customer = Customer::getSelf();
  32. $seasonTicketContract = SeasonTicketContract::find($param->seasonTicketContractRecordNo);
  33. $application = new StickerReOrderApplication();
  34. $manager = new GeneralApplicationManager($application);
  35. $manager
  36. ->setCustomer($customer)
  37. ->setSeasonTicketContract($seasonTicketContract)
  38. ->setParking($parking)
  39. ->makeApplication();
  40. $application->reason = $param->reason;
  41. $application->memo = $param->memo;
  42. $application->save();
  43. return $this->successResponse();
  44. }
  45. }