From 5a00b5ee22bd5bc97a508ef99def730e70f9e61b Mon Sep 17 00:00:00 2001 From: "sosuke.iwabuchi" Date: Fri, 15 Dec 2023 11:01:42 +0900 Subject: [PATCH] =?UTF-8?q?=E5=A5=91=E7=B4=84=E7=8A=B6=E6=B3=81=E3=81=AE?= =?UTF-8?q?=E5=90=8C=E6=9C=9F=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../customize-manifest.json | 12 ++++++ src/apps/定期駐車場マスタ/index.tsx | 30 ++++++++++++++ src/logic/契約状況同期.ts | 5 +-- src/types/定期駐車場マスタ.ts | 39 +++++++++++++++++++ 4 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 src/apps/定期駐車場マスタ/customize-manifest.json create mode 100644 src/apps/定期駐車場マスタ/index.tsx create mode 100644 src/types/定期駐車場マスタ.ts diff --git a/src/apps/定期駐車場マスタ/customize-manifest.json b/src/apps/定期駐車場マスタ/customize-manifest.json new file mode 100644 index 0000000..cab4a26 --- /dev/null +++ b/src/apps/定期駐車場マスタ/customize-manifest.json @@ -0,0 +1,12 @@ +{ + "app": "", + "scope": "ALL", + "desktop": { + "js": ["dist/定期駐車場マスタ.js"], + "css":[] + }, + "mobile": { + "js": [], + "css":[] + } +} diff --git a/src/apps/定期駐車場マスタ/index.tsx b/src/apps/定期駐車場マスタ/index.tsx new file mode 100644 index 0000000..9c8cb65 --- /dev/null +++ b/src/apps/定期駐車場マスタ/index.tsx @@ -0,0 +1,30 @@ +import { apptemplate } from "@/common/app-template"; +import { setHeaderButton } from "@/common/header-button"; +import { KintoneEvent } from "@/common/kintone-event"; +import { 契約状況同期 } from "@/logic/契約状況同期"; +import { ShowConfirmDialog, SuccessDialog } from "@/middleware/swal"; +import { 定期駐車場マスタ } from "@/types/定期駐車場マスタ"; + +(() => { + console.info("script build at " + process.env.BUILD_TIME); + + kintone.events.on(KintoneEvent.詳細.レコード詳細画面を表示した後, (event) => { + const record: 定期駐車場マスタ = event.record; + + setHeaderButton( + "契約状況同期", + apptemplate(async () => { + const confirm = await ShowConfirmDialog({ + text: "契約状況を同期しますか", + }); + if (!confirm.isConfirmed) return; + + await 契約状況同期(record.駐車場名.value); + + await SuccessDialog.fire(); + + location.reload(); + }) + ); + }); +})(); diff --git a/src/logic/契約状況同期.ts b/src/logic/契約状況同期.ts index eed9527..4e8edf1 100644 --- a/src/logic/契約状況同期.ts +++ b/src/logic/契約状況同期.ts @@ -1,4 +1,5 @@ import { AppID } from "@/common/appids"; +import { now } from "@/common/datetime"; import { makeRecordData } from "@/common/rest-api-client"; import { BulkRequest } from "@/rest-api/bulk"; import { get車室契約情報一覧 } from "@/rest-api/車室契約情報"; @@ -15,7 +16,7 @@ const 車室情報契約項目同期 = async (駐車場名: string, 車室番号 const 契約一覧 = await get車室契約情報一覧({ 駐車場名, 車室番号, - 契約中のみ: true, + 契約中のみ: now(), }); const 車室一覧 = await get車室情報一覧({ @@ -23,8 +24,6 @@ const 車室情報契約項目同期 = async (駐車場名: string, 車室番号 車室番号, }); - console.log({ 契約一覧, 車室一覧 }); - 車室一覧.forEach((車室) => { const 契約 = 契約一覧.find((c) => c.車室番号.value === 車室.車室番号.value); diff --git a/src/types/定期駐車場マスタ.ts b/src/types/定期駐車場マスタ.ts new file mode 100644 index 0000000..c153aef --- /dev/null +++ b/src/types/定期駐車場マスタ.ts @@ -0,0 +1,39 @@ +import { KintoneRecordField } from "@kintone/rest-api-client"; +import { AppRecord } from "."; + +const F = {} as const; + +// export const 支払種別Dropdown = { +// 定期料金: "定期料金", +// 保証金: "保証金", +// 証明書郵送代: "証明書郵送代", +// 事務手数料: "事務手数料", +// 延滞金: "延滞金", +// 余剰金: "余剰金", +// } as const; +// export type 支払種別Dropdown = +// (typeof 支払種別Dropdown)[keyof typeof 支払種別Dropdown]; + +export const 自動承認グループフィールド名 = F; + +export type 対象車室番号行データ = { + 割当順: KintoneRecordField.Number; + 車室番号: KintoneRecordField.SingleLineText; + 利用中: KintoneRecordField.CheckBox; + 自動承認スキップ: KintoneRecordField.CheckBox; +}; +export type 定期駐車場マスタ = AppRecord & { + 備考: KintoneRecordField.MultiLineText; + インボイス関連のメール表記: KintoneRecordField.RadioButton; + 当月解約いつまで可能: KintoneRecordField.RadioButton; + 状況: KintoneRecordField.Dropdown; + 車室管理方法: KintoneRecordField.RadioButton; + 収容台数: KintoneRecordField.SingleLineText; + 当月解約申請: KintoneRecordField.RadioButton; + 駐車場名: KintoneRecordField.SingleLineText; + + 解約可能日: KintoneRecordField.CheckBox; + + 位置図: KintoneRecordField.File; + 場内図: KintoneRecordField.File; +};