|
- import { apptemplate, eventHnalder } from "@/common/app-template";
- import { initMenuBox, setHeaderButton } from "@/common/header-button";
- import { KintoneEvent } from "@/common/kintone-event";
- import {
- ShowConfirmDialog,
- SuccessDialog,
- WarningDialog,
- } from "@/middleware/swal";
- import { saveReceipt } from "@/mypage/領収証発行";
- import { 領収証 } from "@/types/領収証";
- import { setup } from "..";
- import { 車室情報2, 車室情報2フィールド名 } from "@/types/車室情報2";
- import { 契約状況同期 } from "@/logic/契約状況同期";
- import bulkRequest from "@/rest-api/bulk";
- import { KintoneRestAPIClient } from "@kintone/rest-api-client";
- import { AppID } from "@/common/appids";
- import { QueryBuilder } from "@/rest-api/query";
- import { 定期申込予約フィールド名, 状態Dropdown } from "@/types/定期申込予約";
- import { getCreateUrl } from "@/rest-api/url";
- import { 定期予約選考フィールド名 } from "@/types/定期予約選考";
-
- const client = new KintoneRestAPIClient();
-
- setup(() => {
- const 申込確認 = async (record: 車室情報2) => {
- const query = new QueryBuilder();
- query
- .whereIn(定期申込予約フィールド名.状態, [
- 状態Dropdown.予約,
- 状態Dropdown.空き待ち,
- ])
- .where(定期申込予約フィールド名.駐車場名, record.定期駐車場.value);
- const { records } = await client.record.getRecords({
- app: AppID.定期申込予約,
- query: query.build(),
- });
- return records.length !== 0;
- };
-
- kintone.events.on(
- [KintoneEvent.詳細.レコード詳細画面を表示した後],
- eventHnalder(async (event) => {
- const record = event.record as 車室情報2;
-
- await initMenuBox();
- // 契約状況同期
- setHeaderButton(
- "契約状況同期",
- apptemplate(async ({ needReloadAtEnd }) => {
- const confirm = await ShowConfirmDialog({
- text: "契約状況を同期しますか",
- });
- if (!confirm.isConfirmed) return;
- await 契約状況同期(record.定期駐車場.value, record.車室番号.value);
- await bulkRequest.save();
- await SuccessDialog.fire();
- needReloadAtEnd(true);
- })
- );
-
- // 選考開始
- setHeaderButton(
- "空き募集",
- apptemplate(async () => {
- // 候補者がいるか確認
- const 申込有無 = await 申込確認(record);
- if (!申込有無) {
- await WarningDialog.fire({
- title: "申込者がいないため募集できません",
- });
- return;
- }
-
- const url = getCreateUrl(
- AppID.定期予約選考,
- new URLSearchParams({
- [定期予約選考フィールド名.対象車室一覧_車室レコード番号]:
- record.$id.value,
- [定期予約選考フィールド名.駐車場名]: record.定期駐車場.value,
- })
- );
-
- window.open(url, "_blank");
- })
- );
- })
- );
- });
|