chore: add new notification for invoice approve and paid invoice

This commit is contained in:
mahyargdz
2025-03-07 16:09:41 +03:30
parent 84317ebe99
commit a4cae0c273
7 changed files with 223 additions and 61 deletions
@@ -9,6 +9,7 @@ export interface IInvoiceNotificationData extends IBaseNotificationData {
dueDate: Date;
createDate: Date;
invoiceId: string;
paidAt?: Date;
}
export interface IServiceNotificationData extends IBaseNotificationData {
@@ -269,29 +269,50 @@ export class NotificationsService {
//************************ */
// async createBillInvoiceReminderNotification(recipientId: string, sendNotifData: ISendNotificationData) {
// const message = NotificationMessage.BILL_INVOICE_REMINDER_MESSAGE;
// //sent notification based on the userSettings
// const { isActive } = await this.userSettingsService.getUserNotificationSettingWithType(NotifType.BILL_INVOICE_REMINDER, recipientId);
// if (isActive) {
// await this.smsService.sendBillInvoiceReminderSms(sendNotifData.userPhone, sendNotifData.dueDate, sendNotifData.invoiceId);
// //send email too
// }
// return this.createNotification({ title: NotificationMessage.BILL_INVOICE_REMINDER, message, recipientId });
// }
async createBillInvoiceReminderNotification(recipientId: string, data: IInvoiceNotificationData, queryRunner: QueryRunner) {
const message = NotificationMessage.BILL_INVOICE_REMINDER_MESSAGE.replace("[invoiceNumber]", data.invoiceId);
//sent notification based on the userSettings
const { isActive } = await this.userSettingsService.getUserNotificationSettingWithType(NotifType.BILL_INVOICE_REMINDER, recipientId);
if (isActive) {
await this.smsService.sendInvoicePaymentReminderSms(data.userPhone, data.invoiceId, data.price, dateFormat(data.dueDate));
//send email too
}
return this.createNotification(
{ title: NotificationMessage.BILL_INVOICE_REMINDER, type: NotifType.BILL_INVOICE_REMINDER, message, recipientId },
queryRunner,
);
}
//************************ */
// async createBillInvoiceNotification(recipientId: string, sendNotifData: ISendNotificationData) {
// const message = NotificationMessage.BILL_INVOICE_MESSAGE;
// //sent notification based on the userSettings
// const { isActive } = await this.userSettingsService.getUserNotificationSettingWithType(NotifType.BILL_INVOICE, recipientId);
// if (isActive) {
// await this.smsService.sendBillInvoiceSms(sendNotifData.userPhone, sendNotifData.amount, sendNotifData.invoiceId);
// //send email too
// }
// return this.createNotification({ title: NotificationMessage.BILL_INVOICE, message, recipientId });
// }
async createBillInvoiceNotification(recipientId: string, data: IInvoiceNotificationData, queryRunner: QueryRunner) {
const message = NotificationMessage.BILL_INVOICE_MESSAGE.replace("[invoiceNumber]", data.invoiceId);
//sent notification based on the userSettings
const { isActive } = await this.userSettingsService.getUserNotificationSettingWithType(NotifType.BILL_INVOICE, recipientId);
if (isActive) {
await this.smsService.sendInvoicePaidSms(data.userPhone, data.invoiceId, data.price, dateFormat(data.paidAt!));
//send email too
}
return this.createNotification(
{ title: NotificationMessage.BILL_INVOICE, type: NotifType.BILL_INVOICE, message, recipientId },
queryRunner,
);
}
//************************ */
async createApprovedInvoiceNotification(recipientId: string, data: IInvoiceNotificationData, queryRunner: QueryRunner) {
const message = NotificationMessage.APPROVED_INVOICE_MESSAGE.replace("[invoiceNumber]", data.invoiceId);
//sent notification based on the userSettings
const { isActive } = await this.userSettingsService.getUserNotificationSettingWithType(NotifType.APPROVE_INVOICE, recipientId);
if (isActive) {
await this.smsService.sendInvoiceApprovedSms(data.userPhone, data.invoiceId, data.price, dateFormat(data.dueDate));
//send email too
}
return this.createNotification(
{ title: NotificationMessage.APPROVED_INVOICE, type: NotifType.BILL_INVOICE, message, recipientId },
queryRunner,
);
}
// //************************ */