| @@ -6,7 +6,7 @@ import { makeRecordData } from "@/common/rest-api-client"; | |||||
| import { Message } from "@/exception"; | import { Message } from "@/exception"; | ||||
| import { EmailID, sendEmail } from "@/mypage/メール"; | import { EmailID, sendEmail } from "@/mypage/メール"; | ||||
| import { makeReceipt } from "@/mypage/領収証発行"; | import { makeReceipt } from "@/mypage/領収証発行"; | ||||
| import { BulkRequest } from "@/rest-api/bulk"; | |||||
| import bulkRequest from "@/rest-api/bulk"; | |||||
| import { get定期申込予約 } from "@/rest-api/定期申込予約"; | import { get定期申込予約 } from "@/rest-api/定期申込予約"; | ||||
| import { 入金予定結果, 入金予定結果フィールド名 } from "@/types/入金予定結果"; | import { 入金予定結果, 入金予定結果フィールド名 } from "@/types/入金予定結果"; | ||||
| import { 定期申込予約フィールド名 } from "@/types/定期申込予約"; | import { 定期申込予約フィールド名 } from "@/types/定期申込予約"; | ||||
| @@ -135,8 +135,7 @@ const setData = (event: any, targets: string[]) => { | |||||
| return String(month); | return String(month); | ||||
| })(); | })(); | ||||
| const request = new BulkRequest(); | |||||
| request.update({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.定期申込予約, | app: AppID.定期申込予約, | ||||
| id: record.first_payment_entry_record_no.value, | id: record.first_payment_entry_record_no.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -148,7 +147,7 @@ const setData = (event: any, targets: string[]) => { | |||||
| [F.日割り分_月]: 日割り月, | [F.日割り分_月]: 日割り月, | ||||
| }), | }), | ||||
| }); | }); | ||||
| await request.save(); | |||||
| await bulkRequest.save(); | |||||
| }; | }; | ||||
| kintone.events.on(KintoneEvent.追加.レコード追加画面を表示した後, (event) => { | kintone.events.on(KintoneEvent.追加.レコード追加画面を表示した後, (event) => { | ||||
| @@ -9,6 +9,7 @@ import { | |||||
| showLoadingDialog, | showLoadingDialog, | ||||
| } from "@/middleware/swal"; | } from "@/middleware/swal"; | ||||
| import { EmailID, sendEmail } from "@/mypage/メール"; | import { EmailID, sendEmail } from "@/mypage/メール"; | ||||
| import bulkRequest from "@/rest-api/bulk"; | |||||
| import { get車室契約情報 } from "@/rest-api/車室契約情報"; | import { get車室契約情報 } from "@/rest-api/車室契約情報"; | ||||
| import { get顧客マスタ } from "@/rest-api/顧客マスタ"; | import { get顧客マスタ } from "@/rest-api/顧客マスタ"; | ||||
| import { | import { | ||||
| @@ -96,10 +97,8 @@ const getCallBack口座変更申請承認 = (record: 各種申請) => { | |||||
| }; | }; | ||||
| const 解約申請承認 = async (record: 各種申請) => { | const 解約申請承認 = async (record: 各種申請) => { | ||||
| const 契約 = await get車室契約情報(record.契約情報.value); | |||||
| // 車室契約情報への反映 | // 車室契約情報への反映 | ||||
| await client.record.updateRecord({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.車室契約情報, | app: AppID.車室契約情報, | ||||
| id: record.契約情報.value, | id: record.契約情報.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -107,12 +106,12 @@ const 解約申請承認 = async (record: 各種申請) => { | |||||
| }), | }), | ||||
| }); | }); | ||||
| // 契約情報の同期処理 | |||||
| await 契約状況同期(契約.駐車場名.value, Number(契約.車室番号.value)); | |||||
| // 申請の完了 | // 申請の完了 | ||||
| await 各種申請完了(record); | await 各種申請完了(record); | ||||
| // データ保存 | |||||
| await bulkRequest.save(); | |||||
| // メールの送信 | // メールの送信 | ||||
| const email = await sendEmail(EmailID.解約承認, { | const email = await sendEmail(EmailID.解約承認, { | ||||
| application_no: record.申請番号.value, | application_no: record.申請番号.value, | ||||
| @@ -150,7 +149,7 @@ const 利用者情報変更申請承認 = async (record: 各種申請) => { | |||||
| 顧客コード: Number(record.顧客コード.value), | 顧客コード: Number(record.顧客コード.value), | ||||
| }); | }); | ||||
| if (customer === null) throw new Error("顧客不正"); | if (customer === null) throw new Error("顧客不正"); | ||||
| await client.record.updateRecord({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.顧客マスタ, | app: AppID.顧客マスタ, | ||||
| id: customer.$id.value, | id: customer.$id.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -170,6 +169,9 @@ const 利用者情報変更申請承認 = async (record: 各種申請) => { | |||||
| // 申請の完了 | // 申請の完了 | ||||
| await 各種申請完了(record); | await 各種申請完了(record); | ||||
| // データ保存 | |||||
| await bulkRequest.save(); | |||||
| // メールの送信 | // メールの送信 | ||||
| const email = await sendEmail(EmailID.利用者情報変更完了, { | const email = await sendEmail(EmailID.利用者情報変更完了, { | ||||
| application_no: record.申請番号.value, | application_no: record.申請番号.value, | ||||
| @@ -203,7 +205,7 @@ const getCallBack利用者情報変更申請承認 = (record: 各種申請) => { | |||||
| const 車両番号_防犯登録番号変更申請承認 = async (record: 各種申請) => { | const 車両番号_防犯登録番号変更申請承認 = async (record: 各種申請) => { | ||||
| // 車室契約情報アプリへの反映 | // 車室契約情報アプリへの反映 | ||||
| const F = 車室契約情報フィールド名; | const F = 車室契約情報フィールド名; | ||||
| await client.record.updateRecord({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.車室契約情報, | app: AppID.車室契約情報, | ||||
| id: record.$id.value, | id: record.$id.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -217,6 +219,9 @@ const 車両番号_防犯登録番号変更申請承認 = async (record: 各種 | |||||
| // 申請の完了 | // 申請の完了 | ||||
| await 各種申請完了(record); | await 各種申請完了(record); | ||||
| // データ保存 | |||||
| await bulkRequest.save(); | |||||
| // メールの送信 | // メールの送信 | ||||
| const email = await sendEmail(EmailID.車両番号_防犯登録番号変更完了, { | const email = await sendEmail(EmailID.車両番号_防犯登録番号変更完了, { | ||||
| application_no: record.申請番号.value, | application_no: record.申請番号.value, | ||||
| @@ -2,7 +2,6 @@ import { AppID } from "@/common/appids"; | |||||
| import { makeRecordData } from "@/common/rest-api-client"; | import { makeRecordData } from "@/common/rest-api-client"; | ||||
| import { 契約状況同期 } from "@/logic/契約状況同期"; | import { 契約状況同期 } from "@/logic/契約状況同期"; | ||||
| import { ShowConfirmDialog } from "@/middleware/swal"; | import { ShowConfirmDialog } from "@/middleware/swal"; | ||||
| import { BulkRequest } from "@/rest-api/bulk"; | |||||
| import { getDetailUrl } from "@/rest-api/url"; | import { getDetailUrl } from "@/rest-api/url"; | ||||
| import { get定期駐車場プランマスタ } from "@/rest-api/定期駐車場プランマスタ"; | import { get定期駐車場プランマスタ } from "@/rest-api/定期駐車場プランマスタ"; | ||||
| import { get自動承認グループ } from "@/rest-api/自動承認グループ"; | import { get自動承認グループ } from "@/rest-api/自動承認グループ"; | ||||
| @@ -27,6 +26,7 @@ import { 顧客マスタフィールド名 } from "@/types/顧客マスタ"; | |||||
| import { sprintf } from "sprintf"; | import { sprintf } from "sprintf"; | ||||
| import { CancelError, Message } from "@/exception"; | import { CancelError, Message } from "@/exception"; | ||||
| import { dateParse, now } from "@/common/datetime"; | import { dateParse, now } from "@/common/datetime"; | ||||
| import bulkRequest from "@/rest-api/bulk"; | |||||
| export class 申込 { | export class 申込 { | ||||
| private 定期申込予約: 定期申込予約; | private 定期申込予約: 定期申込予約; | ||||
| @@ -43,8 +43,6 @@ export class 申込 { | |||||
| private 作成後契約: 車室契約情報 | null = null; | private 作成後契約: 車室契約情報 | null = null; | ||||
| private requests: BulkRequest = new BulkRequest(); | |||||
| constructor(定期申込予約: 定期申込予約) { | constructor(定期申込予約: 定期申込予約) { | ||||
| this.定期申込予約 = 定期申込予約; | this.定期申込予約 = 定期申込予約; | ||||
| } | } | ||||
| @@ -194,7 +192,7 @@ export class 申込 { | |||||
| const F = 顧客マスタフィールド名; | const F = 顧客マスタフィールド名; | ||||
| const 顧客コード = await getNext顧客コード(); | const 顧客コード = await getNext顧客コード(); | ||||
| this.requests.create({ | |||||
| bulkRequest.create({ | |||||
| app: AppID.顧客マスタ, | app: AppID.顧客マスタ, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| [F.顧客コード]: String(顧客コード), | [F.顧客コード]: String(顧客コード), | ||||
| @@ -217,7 +215,7 @@ export class 申込 { | |||||
| if (!this.定期申込予約) throw new Error("定期申込予約不正"); | if (!this.定期申込予約) throw new Error("定期申込予約不正"); | ||||
| const F = 車室契約情報フィールド名; | const F = 車室契約情報フィールド名; | ||||
| this.requests.create( | |||||
| bulkRequest.create( | |||||
| { | { | ||||
| app: AppID.車室契約情報, | app: AppID.車室契約情報, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -238,7 +236,7 @@ export class 申込 { | |||||
| private async 申込情報完了() { | private async 申込情報完了() { | ||||
| if (this.プラン === null) throw new Error(); | if (this.プラン === null) throw new Error(); | ||||
| const F = 定期申込予約フィールド名; | const F = 定期申込予約フィールド名; | ||||
| this.requests.update({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.定期申込予約, | app: AppID.定期申込予約, | ||||
| id: this.定期申込予約.$id.value, | id: this.定期申込予約.$id.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -256,7 +254,7 @@ export class 申込 { | |||||
| } | } | ||||
| private async save() { | private async save() { | ||||
| this.requests.debug(); | |||||
| await this.requests.save(); | |||||
| bulkRequest.debug(); | |||||
| await bulkRequest.save(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -3,6 +3,7 @@ import { setHeaderButton } from "@/common/header-button"; | |||||
| import { KintoneEvent } from "@/common/kintone-event"; | import { KintoneEvent } from "@/common/kintone-event"; | ||||
| import { 契約状況同期 } from "@/logic/契約状況同期"; | import { 契約状況同期 } from "@/logic/契約状況同期"; | ||||
| import { ShowConfirmDialog, SuccessDialog } from "@/middleware/swal"; | import { ShowConfirmDialog, SuccessDialog } from "@/middleware/swal"; | ||||
| import bulkRequest from "@/rest-api/bulk"; | |||||
| import { 定期駐車場マスタ } from "@/types/定期駐車場マスタ"; | import { 定期駐車場マスタ } from "@/types/定期駐車場マスタ"; | ||||
| (() => { | (() => { | ||||
| @@ -21,6 +22,8 @@ import { 定期駐車場マスタ } from "@/types/定期駐車場マスタ"; | |||||
| await 契約状況同期(record.駐車場名.value); | await 契約状況同期(record.駐車場名.value); | ||||
| await bulkRequest.save(); | |||||
| await SuccessDialog.fire(); | await SuccessDialog.fire(); | ||||
| location.reload(); | location.reload(); | ||||
| @@ -1,7 +1,7 @@ | |||||
| import { AppID } from "@/common/appids"; | import { AppID } from "@/common/appids"; | ||||
| import { now } from "@/common/datetime"; | import { now } from "@/common/datetime"; | ||||
| import { makeRecordData } from "@/common/rest-api-client"; | import { makeRecordData } from "@/common/rest-api-client"; | ||||
| import { BulkRequest } from "@/rest-api/bulk"; | |||||
| import bulkRequest from "@/rest-api/bulk"; | |||||
| import { get車室契約情報一覧 } from "@/rest-api/車室契約情報"; | import { get車室契約情報一覧 } from "@/rest-api/車室契約情報"; | ||||
| import { get車室情報一覧 } from "@/rest-api/車室情報2"; | import { get車室情報一覧 } from "@/rest-api/車室情報2"; | ||||
| import { 状態Dropdown, 車室情報2フィールド名 } from "@/types/車室情報2"; | import { 状態Dropdown, 車室情報2フィールド名 } from "@/types/車室情報2"; | ||||
| @@ -11,8 +11,6 @@ export const 契約状況同期 = async (駐車場名: string, 車室番号?: nu | |||||
| }; | }; | ||||
| const 車室情報契約項目同期 = async (駐車場名: string, 車室番号?: number) => { | const 車室情報契約項目同期 = async (駐車場名: string, 車室番号?: number) => { | ||||
| const requests = new BulkRequest(); | |||||
| const 契約一覧 = await get車室契約情報一覧({ | const 契約一覧 = await get車室契約情報一覧({ | ||||
| 駐車場名, | 駐車場名, | ||||
| 車室番号, | 車室番号, | ||||
| @@ -27,7 +25,7 @@ const 車室情報契約項目同期 = async (駐車場名: string, 車室番号 | |||||
| 車室一覧.forEach((車室) => { | 車室一覧.forEach((車室) => { | ||||
| const 契約 = 契約一覧.find((c) => c.車室番号.value === 車室.車室番号.value); | const 契約 = 契約一覧.find((c) => c.車室番号.value === 車室.車室番号.value); | ||||
| requests.update({ | |||||
| bulkRequest.update({ | |||||
| app: AppID.車室情報2, | app: AppID.車室情報2, | ||||
| id: 車室.$id.value, | id: 車室.$id.value, | ||||
| record: makeRecordData({ | record: makeRecordData({ | ||||
| @@ -38,9 +36,4 @@ const 車室情報契約項目同期 = async (駐車場名: string, 車室番号 | |||||
| }), | }), | ||||
| }); | }); | ||||
| }); | }); | ||||
| // 保存 | |||||
| if (!requests.isSaved()) { | |||||
| requests.debug(); | |||||
| await requests.save(); | |||||
| } | |||||
| }; | }; | ||||
| @@ -1,6 +1,5 @@ | |||||
| import { AppID } from "@/common/appids"; | import { AppID } from "@/common/appids"; | ||||
| import { Field } from "@/common/rest-api-client"; | import { Field } from "@/common/rest-api-client"; | ||||
| import { delay } from "@/common/timer"; | |||||
| import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | ||||
| import { chunk } from "lodash"; | import { chunk } from "lodash"; | ||||
| @@ -20,7 +19,7 @@ type Payload = { | |||||
| record: Field; | record: Field; | ||||
| }; | }; | ||||
| type BulkRequestResponse = { id?: string; revision?: string }; | |||||
| export type BulkRequestResponse = { id?: string; revision?: string }; | |||||
| export type RequestParam = { | export type RequestParam = { | ||||
| method: "POST" | "PUT"; | method: "POST" | "PUT"; | ||||
| @@ -29,6 +28,7 @@ export type RequestParam = { | |||||
| }; | }; | ||||
| type Callback = (result: BulkRequestResponse) => Promise<void>; | type Callback = (result: BulkRequestResponse) => Promise<void>; | ||||
| export type BulkRequestCallback = Callback; | |||||
| export class BulkRequest { | export class BulkRequest { | ||||
| private client: KintoneRestAPIClient; | private client: KintoneRestAPIClient; | ||||
| @@ -99,9 +99,13 @@ export class BulkRequest { | |||||
| clear() { | clear() { | ||||
| this.requests = []; | this.requests = []; | ||||
| this.callbacks = []; | |||||
| } | } | ||||
| debug() { | debug() { | ||||
| console.log("BulkRequest debug", this, this.requests); | console.log("BulkRequest debug", this, this.requests); | ||||
| } | } | ||||
| } | } | ||||
| const bulkRequest = new BulkRequest(); | |||||
| export default bulkRequest; | |||||
| @@ -1,16 +1,18 @@ | |||||
| import { AppID } from "@/common/appids"; | import { AppID } from "@/common/appids"; | ||||
| import { formatDateStr, now } from "@/common/datetime"; | |||||
| import { formatDateStr } from "@/common/datetime"; | |||||
| import { 車室契約情報, 車室契約情報フィールド名 } from "@/types/車室契約情報"; | import { 車室契約情報, 車室契約情報フィールド名 } from "@/types/車室契約情報"; | ||||
| import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | ||||
| import { QueryBuilder } from "./query"; | import { QueryBuilder } from "./query"; | ||||
| const client = new KintoneRestAPIClient(); | const client = new KintoneRestAPIClient(); | ||||
| const app = AppID.車室契約情報; | |||||
| export const get車室契約情報 = async ( | export const get車室契約情報 = async ( | ||||
| レコード番号: number | string | レコード番号: number | string | ||||
| ): Promise<車室契約情報> => { | ): Promise<車室契約情報> => { | ||||
| const { record } = await client.record.getRecord<車室契約情報>({ | const { record } = await client.record.getRecord<車室契約情報>({ | ||||
| app: AppID.車室契約情報, | |||||
| app, | |||||
| id: レコード番号, | id: レコード番号, | ||||
| }); | }); | ||||
| @@ -41,7 +43,7 @@ export const get車室契約情報一覧 = async ({ | |||||
| } | } | ||||
| const record = await client.record.getAllRecords<車室契約情報>({ | const record = await client.record.getAllRecords<車室契約情報>({ | ||||
| app: AppID.車室契約情報, | |||||
| app, | |||||
| condition: builder.build(), | condition: builder.build(), | ||||
| }); | }); | ||||
| @@ -1,11 +1,12 @@ | |||||
| import { AppID } from "@/common/appids"; | import { AppID } from "@/common/appids"; | ||||
| import { 車室情報2, 車室情報2フィールド名 } from "@/types/車室情報2"; | import { 車室情報2, 車室情報2フィールド名 } from "@/types/車室情報2"; | ||||
| import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | import { KintoneRestAPIClient } from "@kintone/rest-api-client"; | ||||
| import { sprintf } from "sprintf"; | |||||
| import { QueryBuilder } from "./query"; | import { QueryBuilder } from "./query"; | ||||
| const client = new KintoneRestAPIClient(); | const client = new KintoneRestAPIClient(); | ||||
| const app = AppID.車室情報2; | |||||
| type get車室情報一覧オプション = { | type get車室情報一覧オプション = { | ||||
| 駐車場名?: string; | 駐車場名?: string; | ||||
| 車室番号?: number | string; | 車室番号?: number | string; | ||||
| @@ -23,7 +24,7 @@ export const get車室情報一覧 = async ({ | |||||
| } | } | ||||
| const { records } = await client.record.getRecords<車室情報2>({ | const { records } = await client.record.getRecords<車室情報2>({ | ||||
| app: AppID.車室情報2, | |||||
| app, | |||||
| query: builder.build(), | query: builder.build(), | ||||
| }); | }); | ||||