|
|
|
@@ -0,0 +1,66 @@ |
|
|
|
import { apptemplate } from "@/common/app-template"; |
|
|
|
import { AppID } from "@/common/appids"; |
|
|
|
import { now } from "@/common/datetime"; |
|
|
|
import { setHeaderButton } from "@/common/header-button"; |
|
|
|
import { makeDatetimeStr, makeRecordData } from "@/common/rest-api-client"; |
|
|
|
import { Message } from "@/exception"; |
|
|
|
import { ShowConfirmDialog, SuccessDialog } from "@/middleware/swal"; |
|
|
|
import { EmailID, sendEmail } from "@/mypage/メール"; |
|
|
|
import bulkRequest from "@/rest-api/bulk"; |
|
|
|
import { get顧客マスタ } from "@/rest-api/顧客マスタ"; |
|
|
|
import { |
|
|
|
各種申請, |
|
|
|
各種申請フィールド名, |
|
|
|
状況Dropdown, |
|
|
|
申請種別Dropdown, |
|
|
|
} from "@/types/各種申請"; |
|
|
|
import { addHours } from "date-fns"; |
|
|
|
import { v4 as uuidV4 } from "uuid"; |
|
|
|
import { 各種申請完了 } from "./common"; |
|
|
|
|
|
|
|
export const クレジットカード登録承認ボタン = (record: 各種申請) => { |
|
|
|
if ( |
|
|
|
record.状況.value !== 状況Dropdown.完了 && |
|
|
|
record.申請種別.value === 申請種別Dropdown.クレジット支払変更申請 |
|
|
|
) { |
|
|
|
setHeaderButton( |
|
|
|
"クレジット支払変更申請 承認", |
|
|
|
apptemplate(async ({ needReloadAtEnd }) => { |
|
|
|
const confirm = await ShowConfirmDialog({ title: "承認しますか" }); |
|
|
|
if (!confirm.isConfirmed) return; |
|
|
|
// 顧客マスタへの反映 |
|
|
|
const customer = await get顧客マスタ({ |
|
|
|
顧客コード: Number(record.顧客コード.value), |
|
|
|
}); |
|
|
|
if (customer === null) throw new Error("顧客不正"); |
|
|
|
|
|
|
|
bulkRequest.update({ |
|
|
|
app: AppID.各種申請, |
|
|
|
id: record.$id.value, |
|
|
|
record: makeRecordData({ |
|
|
|
[各種申請フィールド名.クレジット支払変更申請_トークン]: uuidV4(), |
|
|
|
[各種申請フィールド名.クレジット支払変更申請_有効期限]: |
|
|
|
makeDatetimeStr(addHours(now(), 24)), |
|
|
|
}), |
|
|
|
}); |
|
|
|
|
|
|
|
// 申請の完了 |
|
|
|
await 各種申請完了(record); |
|
|
|
|
|
|
|
// データ保存 |
|
|
|
await bulkRequest.save(); |
|
|
|
|
|
|
|
// メールの送信 |
|
|
|
const email = await sendEmail(EmailID.クレジットカード登録, { |
|
|
|
application_no: record.申請番号.value, |
|
|
|
}); |
|
|
|
if (!email) { |
|
|
|
throw new Message("メール送信失敗 データは反映済み"); |
|
|
|
} |
|
|
|
|
|
|
|
await SuccessDialog.fire(); |
|
|
|
needReloadAtEnd(true); |
|
|
|
}) |
|
|
|
); |
|
|
|
} |
|
|
|
}; |