update: add since to the query of invoice for admin
This commit is contained in:
@@ -161,42 +161,17 @@ export class InvoicesService {
|
||||
///********************************** */
|
||||
|
||||
async getInvoices(queryDto: InvoicesSearchQueryDto) {
|
||||
const { limit, skip } = PaginationUtils(queryDto);
|
||||
const [invoices, count] = await this.invoiceRepository.getInvoicesForAdmin(queryDto);
|
||||
|
||||
const queryBuilder = this.invoiceRepository.createQueryBuilder("invoice");
|
||||
|
||||
queryBuilder
|
||||
const usersWithInvoices = await this.invoiceRepository
|
||||
.createQueryBuilder("invoice")
|
||||
.leftJoinAndSelect("invoice.user", "user")
|
||||
.leftJoinAndSelect("invoice.items", "items")
|
||||
.leftJoinAndSelect("items.subscriptionPlan", "subscriptionPlan", "subscriptionPlan.id IS NOT NULL")
|
||||
.leftJoinAndSelect("subscriptionPlan.service", "service", "subscriptionPlan.id IS NOT NULL");
|
||||
|
||||
if (queryDto.q) {
|
||||
queryBuilder
|
||||
.orWhere("user.firstName ILIKE :search", { search: `%${queryDto.q}%` })
|
||||
.orWhere("user.lastName ILIKE :search", { search: `%${queryDto.q}%` })
|
||||
.orWhere("user.email ILIKE :search", { search: `%${queryDto.q}%` });
|
||||
}
|
||||
|
||||
if (queryDto.status) {
|
||||
queryBuilder.andWhere("invoice.status = :status", { status: queryDto.status });
|
||||
}
|
||||
|
||||
if (queryDto.userId) {
|
||||
queryBuilder.andWhere("invoice.user.id = :userId", { userId: queryDto.userId });
|
||||
}
|
||||
|
||||
if (queryDto.serviceId) {
|
||||
queryBuilder.andWhere("subscriptionPlan.serviceId = :serviceId", { serviceId: queryDto.serviceId });
|
||||
}
|
||||
|
||||
queryBuilder.orderBy("invoice.createdAt", "DESC");
|
||||
queryBuilder.skip(skip);
|
||||
queryBuilder.take(limit);
|
||||
|
||||
const [invoices, count] = await queryBuilder.getManyAndCount();
|
||||
.select(["user.id", "user.firstName", "user.lastName", "user.email"])
|
||||
.distinctOn(["user.id"])
|
||||
.getMany();
|
||||
|
||||
return {
|
||||
users: usersWithInvoices.map((inv) => inv.user),
|
||||
invoices,
|
||||
count,
|
||||
paginate: true,
|
||||
|
||||
Reference in New Issue
Block a user