feat: add per-org SMS wallet with adm panel and header credit
Bill all platform SMS (including OTP), allow negative balance with manual/auto cutoffs, and support own-panel bypass without wallet debit.
This commit is contained in:
@@ -2,7 +2,7 @@ import { Injectable, Logger } from '@nestjs/common';
|
||||
import { Cron } from '@nestjs/schedule';
|
||||
import { NotificationsService } from '../notifications/notifications.service';
|
||||
import { PrismaService } from '../prisma/prisma.service';
|
||||
import { SmsService } from '../common/sms.service';
|
||||
import { SmsGatewayService } from '../sms-billing/sms-gateway.service';
|
||||
import {
|
||||
CHEQUE_REMINDER_DAYS,
|
||||
isDueInDays,
|
||||
@@ -18,7 +18,7 @@ export class ChequeRemindersService {
|
||||
constructor(
|
||||
private readonly prisma: PrismaService,
|
||||
private readonly notifications: NotificationsService,
|
||||
private readonly sms: SmsService,
|
||||
private readonly sms: SmsGatewayService,
|
||||
) {}
|
||||
|
||||
@Cron('0 8 * * *', { timeZone: 'Asia/Tehran' })
|
||||
@@ -134,20 +134,27 @@ export class ChequeRemindersService {
|
||||
dedupe: true,
|
||||
});
|
||||
if (user.mobile) {
|
||||
await this.sms.sendSmsDetailed(user.mobile, staffText);
|
||||
await this.sms.send({
|
||||
organizationId: row.organizationId,
|
||||
phone: user.mobile,
|
||||
text: staffText,
|
||||
source: 'cheque_reminder',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (incoming && row.person?.mobile) {
|
||||
await this.sms.sendSmsDetailed(
|
||||
row.person.mobile,
|
||||
personIncomingSms({
|
||||
await this.sms.send({
|
||||
organizationId: row.organizationId,
|
||||
phone: row.person.mobile,
|
||||
text: personIncomingSms({
|
||||
number: row.number,
|
||||
amount,
|
||||
currency: row.currency,
|
||||
dueDate: row.dueDate,
|
||||
}),
|
||||
);
|
||||
source: 'cheque_reminder',
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ import { Module } from '@nestjs/common';
|
||||
import { AuthModule } from '../auth/auth.module';
|
||||
import { TreasuryModule } from '../treasury/treasury.module';
|
||||
import { NotificationsModule } from '../notifications/notifications.module';
|
||||
import { SmsService } from '../common/sms.service';
|
||||
import { ChequesService } from './cheques.service';
|
||||
import { ChequeRemindersService } from './cheque-reminders.service';
|
||||
import { CommissionsService } from './commissions.service';
|
||||
@@ -11,7 +10,7 @@ import { FinanceController } from './finance.controller';
|
||||
@Module({
|
||||
imports: [AuthModule, NotificationsModule, TreasuryModule],
|
||||
controllers: [FinanceController],
|
||||
providers: [ChequesService, ChequeRemindersService, CommissionsService, SmsService],
|
||||
providers: [ChequesService, ChequeRemindersService, CommissionsService],
|
||||
exports: [ChequesService, CommissionsService],
|
||||
})
|
||||
export class FinanceModule {}
|
||||
|
||||
Reference in New Issue
Block a user