diff --git a/src/apps/定期申込予約/buttons/保証金入金予定作成ボタン.ts b/src/apps/定期申込予約/buttons/保証金入金予定作成ボタン.ts index ccf20ec..55cb105 100644 --- a/src/apps/定期申込予約/buttons/保証金入金予定作成ボタン.ts +++ b/src/apps/定期申込予約/buttons/保証金入金予定作成ボタン.ts @@ -34,7 +34,7 @@ const 表示判定 = (record: 定期申込予約): boolean => { } if (record.初回入金予定_保証金入金予定.value) { - false; + return false; } return true; diff --git a/src/apps/定期申込予約/buttons/初月分入金予定作成ボタン.ts b/src/apps/定期申込予約/buttons/初月分入金予定作成ボタン.ts index 7c8e436..ca80061 100644 --- a/src/apps/定期申込予約/buttons/初月分入金予定作成ボタン.ts +++ b/src/apps/定期申込予約/buttons/初月分入金予定作成ボタン.ts @@ -31,8 +31,8 @@ const 表示判定 = (record: 定期申込予約): boolean => { return false; } - if (record.初回入金予定_初月分入金予定.value) { - false; + if (!!record.初回入金予定_初月分入金予定.value) { + return false; } return true; diff --git a/src/apps/定期申込予約/buttons/受付メール送信ボタン.ts b/src/apps/定期申込予約/buttons/受付メール送信ボタン.ts index 935251f..5450ea5 100644 --- a/src/apps/定期申込予約/buttons/受付メール送信ボタン.ts +++ b/src/apps/定期申込予約/buttons/受付メール送信ボタン.ts @@ -22,6 +22,10 @@ const 表示判定 = (record: 定期申込予約): boolean => { return false; } + if (!!record.IC定期駐車場利用方法.value) { + return false; + } + if ( record.初回入金予定_必要分.value.includes(初回入金予定Checkbox.初月分) && !record.初回入金予定_初月分入金予定.value @@ -41,10 +45,6 @@ const 表示判定 = (record: 定期申込予約): boolean => { return false; } - if (!!record.IC定期駐車場利用方法) { - return false; - } - return true; }; diff --git a/src/apps/定期申込予約/buttons/日割り入金予定作成ボタン.ts b/src/apps/定期申込予約/buttons/日割り入金予定作成ボタン.ts index 71d5149..66a3b3a 100644 --- a/src/apps/定期申込予約/buttons/日割り入金予定作成ボタン.ts +++ b/src/apps/定期申込予約/buttons/日割り入金予定作成ボタン.ts @@ -33,7 +33,7 @@ const 表示判定 = (record: 定期申込予約): boolean => { } if (record.初回入金予定_日割り分入金予定.value) { - false; + return false; } return true; diff --git a/src/apps/定期申込予約/自動承認.ts b/src/apps/定期申込予約/自動承認.ts index 9e5328a..3cece59 100644 --- a/src/apps/定期申込予約/自動承認.ts +++ b/src/apps/定期申込予約/自動承認.ts @@ -253,7 +253,7 @@ export class 申込 { [F.電話番号]: this.定期申込予約.電話番号.value, [F.メールアドレス]: this.定期申込予約.メールアドレス.value, [F.SMBC契約番号]: String(await getNextSMBC番号()), - [F.支払方法]: "口座振替", + [F.支払方法]: this.isIC定期申込() ? "その他" : "口座振替", [F.振替日]: "27", //TODO [F.振替開始日]: 振替開始日, [F.契約者_郵便番号]: 郵便番号, @@ -320,14 +320,19 @@ export class 申込 { if (this.isIC定期申込()) { const message = new MessageBag(); + + // 名前変換 + let 駐車場利用方法 = this.定期申込予約.IC定期駐車場利用方法.value ?? ""; + if (駐車場利用方法 === "交通系ICカード") { + 駐車場利用方法 = "個人所有Felica"; + } const res = await 定期契約新規作成( { user_id: String(this.顧客情報.IC定期利用者IC ?? ""), parking_management_code: this.プラン?.IC定期_駐車場管理コード.value ?? "", vehicle_type_name: this.プラン?.IC定期_車種.value ?? "", - parking_use_type_name: - this.定期申込予約.IC定期駐車場利用方法.value ?? "", + parking_use_type_name: 駐車場利用方法, contractor_type_name: this.プラン?.IC定期_契約者種類.value ?? "", season_ticket_seq_no: this.IC定期_定期券番号, }, @@ -351,7 +356,7 @@ export class 申込 { value: res.parking_management_code, }; data[F.IC定期関連情報_駐車場利用方法] = { - value: this.定期申込予約.IC定期駐車場利用方法.value ?? "", + value: 駐車場利用方法, }; } diff --git a/src/apps/車室情報管理/index.ts b/src/apps/車室情報管理/index.ts index 591c8ea..ee16a55 100644 --- a/src/apps/車室情報管理/index.ts +++ b/src/apps/車室情報管理/index.ts @@ -7,12 +7,11 @@ import { SuccessDialog, showLoadingDialog, } from "@/middleware/swal"; -import { 利用者情報削除, 定期契約削除, 定期契約更新 } from "@/mypage/IC定期"; +import { 定期契約更新 } from "@/mypage/IC定期"; import { 車室情報管理 } from "@/types/車室情報管理"; import { setup } from ".."; import IC定期削除ボタン from "./buttons/IC定期削除ボタン"; import IC定期同期ボタン from "./buttons/IC定期同期ボタン"; -import { MessageBag } from "@/common/message"; setup(() => { kintone.events.on( @@ -75,37 +74,4 @@ setup(() => { setEvent(new 契約情報更新イベント().getEvent(record)); }) ); - - kintone.events.on( - [KintoneEvent.詳細.レコードを削除する前], - eventHnalder(async (event, { setEvent }) => { - const record = event.record as 車室情報管理; - // IC定期処理 - if (!!record.IC定期関連情報_契約ID.value) { - await showLoadingDialog(); - const message = new MessageBag(); - const res = await 定期契約削除( - { - user_id: record.IC定期関連情報_利用者ID.value, - parking_management_code: - record.IC定期関連情報_駐車場管理コード.value, - }, - message - ); - - if (res === false) { - ErrorDialog.fire({ - text: "IC定期連携に失敗しました " + message.getGeneralMessage(), - }); - return false; - } - - await SuccessDialog.fire({ - text: "IC定期連携成功", - }); - } - - return event; - }) - ); }); diff --git a/src/apps/顧客マスタ/buttons/IC定期連携削除ボタン.ts b/src/apps/顧客マスタ/buttons/IC定期連携削除ボタン.ts new file mode 100644 index 0000000..247aa76 --- /dev/null +++ b/src/apps/顧客マスタ/buttons/IC定期連携削除ボタン.ts @@ -0,0 +1,46 @@ +import { apptemplate } from "@/common/app-template"; +import { setHeaderButton } from "@/common/header-button"; +import { MessageBag } from "@/common/message"; +import { + ErrorDialog, + SuccessDialog, + showLoadingDialog, +} from "@/middleware/swal"; +import { 利用者情報削除 } from "@/mypage/IC定期"; +import { 顧客マスタ } from "@/types/顧客マスタ"; + +const 表示判定 = (record: 顧客マスタ): boolean => { + if (!!record.IC定期関連情報_ユーザーID.value) { + return true; + } + return false; +}; + +export default function IC定期連携削除ボタン(record: 顧客マスタ) { + if (表示判定(record)) { + setHeaderButton( + "IC定期連携削除", + apptemplate(async () => { + await showLoadingDialog(); + const message = new MessageBag(); + const res = await 利用者情報削除( + { + user_id: record.IC定期関連情報_ユーザーID.value, + }, + message + ); + + if (res === false) { + ErrorDialog.fire({ + text: "IC定期連携に失敗しました " + message.getGeneralMessage(), + }); + return; + } + + await SuccessDialog.fire({ + text: "IC定期連携成功", + }); + }) + ); + } +} diff --git a/src/apps/顧客マスタ/buttons/入金プール遷移ボタン.ts b/src/apps/顧客マスタ/buttons/入金プール遷移ボタン.ts new file mode 100644 index 0000000..8f7d792 --- /dev/null +++ b/src/apps/顧客マスタ/buttons/入金プール遷移ボタン.ts @@ -0,0 +1,35 @@ +import { apptemplate } from "@/common/app-template"; +import { AppID } from "@/common/appids"; +import { setHeaderButton } from "@/common/header-button"; +import { Message } from "@/exception"; +import { getDetailUrl } from "@/rest-api/url"; +import { get入金プール一覧 } from "@/rest-api/入金プール"; +import { 顧客マスタ } from "@/types/顧客マスタ"; + +const 表示判定 = (record: 顧客マスタ): boolean => { + return true; +}; + +export default function 入金プール遷移ボタン(record: 顧客マスタ) { + if (表示判定(record)) { + setHeaderButton( + "入金プール表示", + apptemplate(async () => { + const list = await get入金プール一覧({ + 顧客コード: record.CustomerCode.value, + }); + if (list.length === 0) { + throw new Message("入金プールが存在しません"); + } + if (list.length !== 1) { + throw new Message("入金プールレコード数が不正です"); + } + + const 入金プール = list[0]; + + const url = getDetailUrl(AppID.入金プール, 入金プール.$id.value); + window.open(url, "_blank", "popup"); + }) + ); + } +} diff --git a/src/apps/顧客マスタ/index.ts b/src/apps/顧客マスタ/index.ts index e75f79b..fad2aa9 100644 --- a/src/apps/顧客マスタ/index.ts +++ b/src/apps/顧客マスタ/index.ts @@ -9,8 +9,23 @@ import { 利用者情報削除, 利用者情報更新 } from "@/mypage/IC定期" import { 顧客マスタ, 顧客マスタフィールド名 } from "@/types/顧客マスタ"; import { setup } from ".."; import { MessageBag } from "@/common/message"; +import { initMenuBox } from "@/common/header-button"; +import 入金プール遷移ボタン from "./buttons/入金プール遷移ボタン"; +import IC定期連携削除ボタン from "./buttons/IC定期連携削除ボタン"; setup(() => { + kintone.events.on( + [KintoneEvent.詳細.レコード詳細画面を表示した後], + eventHnalder(async (event) => { + const record: 顧客マスタ = event.record; + + await initMenuBox(); + + 入金プール遷移ボタン(record); + IC定期連携削除ボタン(record); + }) + ); + kintone.events.on( [KintoneEvent.編集.保存するとき], eventHnalder(async (event, { setEvent }) => { @@ -42,37 +57,6 @@ setup(() => { }); } - return event; - }) - ); - kintone.events.on( - [KintoneEvent.詳細.レコードを削除する前], - eventHnalder(async (event, { setEvent }) => { - const record = event.record as 顧客マスタ; - const F = 顧客マスタフィールド名; - // IC定期処理 - if (!!record.IC定期関連情報_ユーザーID.value) { - await showLoadingDialog(); - const message = new MessageBag(); - const res = await 利用者情報削除( - { - user_id: record.IC定期関連情報_ユーザーID.value, - }, - message - ); - - if (res === false) { - ErrorDialog.fire({ - text: "IC定期連携に失敗しました " + message.getGeneralMessage(), - }); - return false; - } - - await SuccessDialog.fire({ - text: "IC定期連携成功", - }); - } - return event; }) ); diff --git a/src/types/定期申込予約.ts b/src/types/定期申込予約.ts index b4284bd..578c112 100644 --- a/src/types/定期申込予約.ts +++ b/src/types/定期申込予約.ts @@ -98,9 +98,9 @@ export type 定期申込予約 = AppRecord & { [F.受付メール送信日時]: KintoneRecordField.DateTime; [F.承認メール送信日時]: KintoneRecordField.DateTime; [F.初回入金予定_必要分]: KintoneRecordField.CheckBox; - [F.初回入金予定_初月分入金予定]: KintoneRecordField.SingleLineText; - [F.初回入金予定_日割り分入金予定]: KintoneRecordField.SingleLineText; - [F.初回入金予定_保証金入金予定]: KintoneRecordField.SingleLineText; - [F.初回入金予定_初回入金充当状態]: KintoneRecordField.SingleLineText; + [F.初回入金予定_初月分入金予定]: KintoneRecordField.Number; + [F.初回入金予定_日割り分入金予定]: KintoneRecordField.Number; + [F.初回入金予定_保証金入金予定]: KintoneRecordField.Number; + [F.初回入金予定_初回入金充当状態]: KintoneRecordField.CheckBox; [F.IC定期駐車場利用方法]: KintoneRecordField.SingleLineText; };