Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

78 lines
2.7KB

  1. <?php
  2. namespace App\Http\Controllers\Web\HTICWeb;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Kintone\Models\Customer;
  5. use App\Kintone\Models\SeasonTicketContract;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Log;
  9. class SeasonTicketContractController extends WebController
  10. {
  11. public function name(): string
  12. {
  13. return "[IC定期連携]定期契約情報連携";
  14. }
  15. public function description(): string
  16. {
  17. return "[IC定期連携]定期契約情報連携";
  18. }
  19. public function __construct(protected SeasonTicketContractParam $param)
  20. {
  21. parent::__construct();
  22. }
  23. protected function run(Request $request): JsonResponse
  24. {
  25. $param = $this->param;
  26. // 顧客マスタの特定
  27. $query = Customer::getQuery()->where(Customer::FIELD_IC_SEASON_TICEKT_USER_ID, $param->userId);
  28. $customerList = Customer::getAccess()->all($query);
  29. if ($customerList->count() !== 1) {
  30. // 対象不正のためスキップ
  31. Log::warning("顧客不正のためスキップ");
  32. return $this->successResponse();
  33. }
  34. // 契約の特定
  35. $customer = $customerList[0];
  36. $query = SeasonTicketContract::getQuery()
  37. ->where(SeasonTicketContract::FIELD_CUSTOMER_CODE, $customer->customerCode)
  38. ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_CONTRACT_ID, $param->seasonTicketContractId)
  39. ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_PARKING_MANAGEMENT_CODE, $param->parkingManagementCode);
  40. $seasonTicketContractList = SeasonTicketContract::getAccess()->all($query);
  41. if ($seasonTicketContractList->count() !== 1) {
  42. // 対象不正のためスキップ
  43. Log::warning("契約不正のためスキップ");
  44. return $this->successResponse();
  45. }
  46. // 更新
  47. $seasonTicketContract = $seasonTicketContractList[0];
  48. $seasonTicketContract->icSeasonTicektSeasonTicketSeqNo = $param->seasonTicketSeqNo;
  49. $seasonTicketContract->icSeasonTicektVehicleTypeName = $param->vehicleTypeName;
  50. $seasonTicketContract->icSeasonTicektParkingUseTypeName = $param->parkingUseTypeName;
  51. $seasonTicketContract->icSeasonTicektContractorTypeName = $param->contractorTypeLineNoName;
  52. $seasonTicketContract->icSeasonTicektStartDate = $param->expirationStartDate;
  53. $seasonTicketContract->icSeasonTicektEndDate = $param->expirationEndDate;
  54. $seasonTicketContract->icSeasonTicektPositionMemo = $param->positionMemo;
  55. $seasonTicketContract->icSeasonTicektMemo = $param->memo;
  56. $seasonTicketContract->save();
  57. return $this->successResponse();
  58. }
  59. }