add : notification after invoice creation

This commit is contained in:
2026-02-17 12:30:37 +03:30
parent 37e56e5e5f
commit e905274a94
3 changed files with 33 additions and 3 deletions
+29 -1
View File
@@ -18,6 +18,8 @@ import { Company } from "../companies/entities/company.entity";
import { CompaniesService } from "../companies/services/companies.service";
import { InvoiceItem } from "../invoices/entities/invoice-item.entity";
import { Invoice } from "../invoices/entities/invoice.entity";
import { NotificationQueue } from "../notifications/queue/notification.queue";
import { InvoicesService } from "../invoices/providers/invoices.service";
@Injectable()
export class BillsService {
@@ -25,7 +27,10 @@ export class BillsService {
private readonly em: EntityManager,
private readonly companiesService: CompaniesService,
private readonly billRepository: BillsRepository,
) {}
private readonly notificationQueue: NotificationQueue,
private readonly invoicesService: InvoicesService,
) { }
async createWaterBill(dto: CreateWaterBillDto, business: Business) {
const { values, waterRate, dueDays } = dto;
@@ -69,8 +74,31 @@ export class BillsService {
totalPrice,
invoice,
});
invoice.items.add(invoiceItem);
await this.notificationQueue.addInvoiceCreationNotification(company.user.id, {
invoiceId: invoice.numericId.toString(),
dueDate: invoice.dueDate,
createDate: invoice.createdAt,
price: new Decimal(invoice.totalPrice).toNumber(),
userPhone: company.user.phone,
userEmail: company.user.email,
items: invoiceItem.name,
paidAt: invoice.paidAt,
});
await this.invoicesService.scheduleInvoiceJobs(invoice, {
companyId: company.id,
items: [
{
name: invoiceItem.name,
count: invoiceItem.count,
unitPrice: new Decimal(invoiceItem.unitPrice).toNumber(),
discount: new Decimal(invoiceItem.discount).toNumber(),
},
],
});
em.persist(invoice);
}