diff --git a/components/dashboard/installment-analysis/installment-group-card.tsx b/components/dashboard/installment-analysis/installment-group-card.tsx index 5d162cd..46cbbc7 100644 --- a/components/dashboard/installment-analysis/installment-group-card.tsx +++ b/components/dashboard/installment-analysis/installment-group-card.tsx @@ -67,42 +67,45 @@ export function InstallmentGroupCard({ />
-
+
-

{group.name}

- {group.cartaoName && ( -
- {group.cartaoLogo && ( - {group.cartaoName} - )} - - {group.cartaoName} - -
- )} +
+ {group.cartaoLogo && ( + {group.cartaoName} + )} + {group.name}| + + {group.cartaoName} + +
-
+
+ + {selectedInstallments.size > 0 && ( + | + )} + {selectedInstallments.size > 0 && ( )}
{/* Progress bar */} -
-
+
+
{group.paidInstallments} de {group.totalInstallments} pagas diff --git a/lib/dashboard/expenses/installment-analysis.ts b/lib/dashboard/expenses/installment-analysis.ts index d08e87c..250bff7 100644 --- a/lib/dashboard/expenses/installment-analysis.ts +++ b/lib/dashboard/expenses/installment-analysis.ts @@ -1,10 +1,11 @@ -import { cartoes, lancamentos } from "@/db/schema"; +import { cartoes, lancamentos, pagadores } from "@/db/schema"; import { ACCOUNT_AUTO_INVOICE_NOTE_PREFIX, INITIAL_BALANCE_NOTE, } from "@/lib/accounts/constants"; import { db } from "@/lib/db"; import { toNumber } from "@/lib/dashboard/common"; +import { PAGADOR_ROLE_ADMIN } from "@/lib/pagadores/constants"; import { and, eq, isNotNull, isNull, or, sql } from "drizzle-orm"; // Calcula a data de vencimento baseada no período e dia de vencimento do cartão @@ -58,7 +59,7 @@ export type InstallmentAnalysisData = { export async function fetchInstallmentAnalysis( userId: string ): Promise { - // 1. Buscar todos os lançamentos parcelados não antecipados + // 1. Buscar todos os lançamentos parcelados não antecipados do pagador admin const installmentRows = await db .select({ id: lancamentos.id, @@ -80,6 +81,7 @@ export async function fetchInstallmentAnalysis( }) .from(lancamentos) .leftJoin(cartoes, eq(lancamentos.cartaoId, cartoes.id)) + .leftJoin(pagadores, eq(lancamentos.pagadorId, pagadores.id)) .where( and( eq(lancamentos.userId, userId), @@ -87,6 +89,7 @@ export async function fetchInstallmentAnalysis( eq(lancamentos.condition, "Parcelado"), eq(lancamentos.isAnticipated, false), isNotNull(lancamentos.seriesId), + eq(pagadores.role, PAGADOR_ROLE_ADMIN), or( isNull(lancamentos.note), and(