|
- <?php
-
- namespace App\Http\Controllers\Web\HTICWeb;
-
- use App\Http\Controllers\Web\WebController;
- use App\Kintone\Models\Customer;
- use App\Kintone\Models\SeasonTicketContract;
- use Illuminate\Http\JsonResponse;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Log;
-
- class SeasonTicketContractController extends WebController
- {
-
- public function name(): string
- {
- return "[IC定期連携]定期契約情報連携";
- }
-
- public function description(): string
- {
- return "[IC定期連携]定期契約情報連携";
- }
-
-
- public function __construct(protected SeasonTicketContractParam $param)
- {
- parent::__construct();
- }
-
- protected function run(Request $request): JsonResponse
- {
- $param = $this->param;
-
- // 顧客マスタの特定
- $query = Customer::getQuery()->where(Customer::FIELD_IC_SEASON_TICEKT_USER_ID, $param->userId);
- $customerList = Customer::getAccess()->all($query);
-
- if ($customerList->count() !== 1) {
- // 対象不正のためスキップ
- Log::warning("顧客不正のためスキップ");
- return $this->successResponse();
- }
-
- // 契約の特定
- $customer = $customerList[0];
-
- $query = SeasonTicketContract::getQuery()
- ->where(SeasonTicketContract::FIELD_CUSTOMER_CODE, $customer->customerCode)
- ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_CONTRACT_ID, $param->seasonTicketContractId)
- ->where(SeasonTicketContract::FIELD_IC_SEASON_TICEKT_PARKING_MANAGEMENT_CODE, $param->parkingManagementCode);
-
- $seasonTicketContractList = SeasonTicketContract::getAccess()->all($query);
-
- if ($seasonTicketContractList->count() !== 1) {
- // 対象不正のためスキップ
- Log::warning("契約不正のためスキップ");
- return $this->successResponse();
- }
-
- // 更新
- $seasonTicketContract = $seasonTicketContractList[0];
-
- $seasonTicketContract->icSeasonTicektSeasonTicketSeqNo = $param->seasonTicketSeqNo;
- $seasonTicketContract->icSeasonTicektVehicleTypeName = $param->vehicleTypeName;
- $seasonTicketContract->icSeasonTicektParkingUseTypeName = $param->parkingUseTypeName;
- $seasonTicketContract->icSeasonTicektContractorTypeName = $param->contractorTypeLineNoName;
- $seasonTicketContract->icSeasonTicektStartDate = $param->expirationStartDate;
- $seasonTicketContract->icSeasonTicektEndDate = $param->expirationEndDate;
- $seasonTicketContract->icSeasonTicektPositionMemo = $param->positionMemo;
- $seasonTicketContract->icSeasonTicektMemo = $param->memo;
-
- $seasonTicketContract->save();
-
- return $this->successResponse();
- }
- }
|