This commit is contained in:
2026-04-14 14:22:04 +03:30
parent 510fbea3b1
commit eca144a6c6
19 changed files with 317 additions and 23 deletions
@@ -63,4 +63,39 @@ export class InvoicesRepository extends Repository<Invoice> {
return await queryBuilder.getManyAndCount();
}
async findPaginatedListByUserIds(queryDto: InvoicesSearchQueryDto, userIds: string[]) {
const { limit, skip } = PaginationUtils(queryDto);
const queryBuilder = this.createQueryBuilder("invoice");
console.log(userIds)
queryBuilder
.leftJoin("invoice.user", "user")
.addSelect(["user.id", "user.firstName", "user.lastName", "user.email", "user.phone"])
// .where("user.id IN (:...userIds)", { userIds });
if (queryDto.status) {
queryBuilder.andWhere("invoice.status = :status", { status: queryDto.status });
}
if (queryDto.since) {
queryBuilder.andWhere("(invoice.createdAt >= :since OR invoice.dueDate >= :since OR invoice.paidAt >= :since)", {
since: new Date(queryDto.since),
});
}
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);
return await queryBuilder.getManyAndCount();
}
}