reseller
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user