diff --git a/src/modules/invoices/DTO/invoices-search-query.dto.ts b/src/modules/invoices/DTO/invoices-search-query.dto.ts index edc125f..288dd11 100755 --- a/src/modules/invoices/DTO/invoices-search-query.dto.ts +++ b/src/modules/invoices/DTO/invoices-search-query.dto.ts @@ -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"]) {} diff --git a/src/modules/invoices/providers/invoices.service.ts b/src/modules/invoices/providers/invoices.service.ts index 10a1b77..215baab 100755 --- a/src/modules/invoices/providers/invoices.service.ts +++ b/src/modules/invoices/providers/invoices.service.ts @@ -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 }, diff --git a/src/modules/invoices/repositories/invoices.repository.ts b/src/modules/invoices/repositories/invoices.repository.ts index eca5094..deec682 100755 --- a/src/modules/invoices/repositories/invoices.repository.ts +++ b/src/modules/invoices/repositories/invoices.repository.ts @@ -50,6 +50,12 @@ export class InvoicesRepository extends Repository { }); } + 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);