import { apptemplate, eventHnalder } from "@/common/app-template"; import { AppID } from "@/common/appids"; import { initMenuBox, setHeaderButton } from "@/common/header-button"; import { KintoneEvent } from "@/common/kintone-event"; import { 契約情報更新イベント } from "@/event/契約情報更新"; import { ShowConfirmDialog, SuccessDialog, WarningDialog, } from "@/middleware/swal"; import { getCreateUrl, getDetailUrl } from "@/rest-api/url"; import { 入金予定結果フィールド名 } from "@/types/入金予定結果"; import { 定期申込予約, 状態Dropdown } from "@/types/定期申込予約"; import { setup } from ".."; import { 申込 } from "./自動承認"; setup(() => { kintone.events.on( [KintoneEvent.詳細.レコード詳細画面を表示した後], eventHnalder(async (event) => { const record: 定期申込予約 = event.record; await initMenuBox(); const S = 状態Dropdown; if ( [S.新規, S.選考当選, S.予約, S.空き待ち].find((status) => { return status === record.status.value; }) && record.台数.value === "1" ) { setHeaderButton( "自動承認", apptemplate(async ({ setEvent, needReloadAtEnd }) => { const confirm = await ShowConfirmDialog({ text: "承認しますか", }); if (!confirm.isConfirmed) return; const entry = new 申込(record); await entry.初期化(); await entry.選定(); await SuccessDialog.fire(); await WarningDialog.fire({ timer: 2000, timerProgressBar: true, text: "初回請求データを作成してください", }); const 契約 = entry.作成後契約取得(); if (!契約) throw new Error(); const param = new URLSearchParams({ [入金予定結果フィールド名.車室情報管理レコード番号]: 契約.$id.value, [入金予定結果フィールド名.初回振り込み関連申込レコード番号]: record.$id.value, }); { // 入金予定アプリ画面オープン const url = getCreateUrl(AppID.入金予定結果, param); console.log(url, param); window.open(url, "_blank"); } { // 車室情報管理アプリ画面オープン const url = getDetailUrl(AppID.車室情報管理, 契約.$id.value); window.open(url, "_blank"); } setEvent(new 契約情報更新イベント().getEvent(契約)); needReloadAtEnd(true); }) ); } if ( !!record.自動承認契約情報.value && [S.承認_手動, S.承認_自動承認].find((status) => { return status === record.status.value; }) ) { setHeaderButton( "初回入金予定作成", apptemplate(async () => { // 車室情報管理アプリ画面オープン const param = new URLSearchParams({ [入金予定結果フィールド名.車室情報管理レコード番号]: record.自動承認契約情報.value, [入金予定結果フィールド名.初回振り込み関連申込レコード番号]: record.$id.value, }); const url = getCreateUrl(AppID.入金予定結果, param); window.open(url, "_blank"); }) ); } }) ); });