|
- 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");
- })
- );
- }
- })
- );
- });
|