update: add to query to the invoice search for ademin

This commit is contained in:
mahyargdz
2025-03-09 22:29:54 +03:30
parent 2b51059bc1
commit 0d16a670e4
3 changed files with 12 additions and 2 deletions
@@ -30,6 +30,11 @@ export class InvoicesSearchQueryDto extends PaginationDto {
@IsDateString({}, { message: InvoiceMessage.INVALID_DATE })
@ApiPropertyOptional({ description: "since query", example: "2025-01-27" })
since?: string;
@IsOptional()
@IsDateString({}, { message: InvoiceMessage.INVALID_DATE })
@ApiPropertyOptional({ description: "to date query", example: "2025-01-27" })
to?: string;
}
export class UserInvoicesSearchQueryDto extends PickType(InvoicesSearchQueryDto, ["status", "limit", "page"]) {}
@@ -62,7 +62,6 @@ export class InvoicesService {
const totalPrice = invoiceItems.reduce((sum, item) => new Decimal(item.totalPrice).add(sum), new Decimal(0));
const tax = totalPrice.mul(0.1);
//TODO:for test use minutes
const dueDate = dayjs().add(INVOICE.DUEDATE, "day").toDate();
const invoice = queryRunner.manager.create(Invoice, {
@@ -91,7 +90,7 @@ export class InvoicesService {
},
queryRunner,
);
//TODO:remove the test delay
await this.invoiceQueue.add(
INVOICE.INVOICE_REMINDER_JOB_NAME,
{ invoiceId: invoice.id },
@@ -50,6 +50,12 @@ export class InvoicesRepository extends Repository<Invoice> {
});
}
if (queryDto.to) {
queryBuilder.andWhere("(invoice.createdAt <= :to OR invoice.dueDate <= :to OR invoice.paidAt <= :to)", {
to: new Date(queryDto.to),
});
}
queryBuilder.orderBy("invoice.createdAt", "DESC");
queryBuilder.skip(skip);
queryBuilder.take(limit);