|
- import { apptemplate } from "@/common/app-template";
- import { AppID } from "@/common/appids";
- import { setHeaderButton } from "@/common/header-button";
- import { makeRecordData } from "@/common/rest-api-client";
- import { 契約情報更新イベント } from "@/event/契約情報更新";
- import {
- ErrorDialog,
- FormDialog,
- ShowConfirmDialog,
- ShowFormDialog,
- SuccessDialog,
- } from "@/middleware/swal";
- import { EmailID, sendEmail } from "@/mypage/メール";
- import bulkRequest from "@/rest-api/bulk";
- import { get車室情報管理 } from "@/rest-api/車室情報管理";
- import { 各種申請, 状況Dropdown, 申請種別Dropdown } from "@/types/各種申請";
- import { 車室情報管理フィールド名 } from "@/types/車室情報管理";
- import { 各種申請完了 } from "./common";
- import { 定期契約更新 } from "@/mypage/IC定期";
- import { Message } from "@/exception";
- import { MessageBag } from "@/common/message";
-
- export const 駐車場利用方法変更承認ボタン = (record: 各種申請) => {
- if (
- record.状況.value !== 状況Dropdown.完了 &&
- record.申請種別.value === 申請種別Dropdown.IC定期_駐車場利用方法変更申請
- ) {
- setHeaderButton(
- "駐車場利用方法変更申請 承認",
- apptemplate(async ({ setEvent, needReloadAtEnd }) => {
- const confirm = await ShowConfirmDialog({ title: "承認しますか" });
- if (!confirm.isConfirmed) return;
-
- let 契約 = await get車室情報管理(record.契約情報.value);
-
- let 定期券番号 = "";
- if (
- record.IC定期_駐車場利用方法変更申請_変更後.value === "貸与ICカード"
- ) {
- const form = await ShowFormDialog({
- text: "定期券番号を入力してください",
- input: "number",
- });
- if (!form.isConfirmed) return;
- 定期券番号 = form.value;
- }
-
- const message = new MessageBag();
- const res = await 定期契約更新(
- {
- user_id: 契約.IC定期関連情報_利用者ID.value,
- parking_management_code: 契約.IC定期関連情報_駐車場管理コード.value,
- season_ticket_seq_no: 定期券番号, // 自動採番
- vehicle_type_name: 契約.IC定期関連情報_車種.value,
- parking_use_type_name:
- record.IC定期_駐車場利用方法変更申請_変更後.value,
- contractor_type_name: 契約.IC定期関連情報_契約者種類.value,
- expiration_start_date: 契約.IC定期関連情報_有効期限開始.value ?? "",
- expiration_end_date: 契約.IC定期関連情報_有効期限開始.value ?? "",
- position_memo: 契約.IC定期関連情報_駐車位置情報.value,
- memo: 契約.IC定期関連情報_備考.value,
- },
- message
- );
-
- if (res === false) {
- throw new Message("IC定期連携失敗 " + message.getGeneralMessage());
- }
-
- // 車室情報管理への反映
- bulkRequest.update({
- app: AppID.車室情報管理,
- id: record.契約情報.value,
- record: makeRecordData({
- [車室情報管理フィールド名.IC定期関連情報_駐車場利用方法]:
- record.IC定期_駐車場利用方法変更申請_変更後.value ?? "",
- [車室情報管理フィールド名.IC定期関連情報_定期券番号]: String(
- res.season_ticket_seq_no
- ),
- }),
- });
-
- // 申請の完了
- await 各種申請完了(record);
-
- // データ保存
- await bulkRequest.save();
-
- 契約 = await get車室情報管理(record.契約情報.value);
- setEvent(new 契約情報更新イベント().getEvent(契約));
-
- await SuccessDialog.fire();
- needReloadAtEnd(true);
- })
- );
- }
- };
|