diff --git a/components/dashboard/installment-analysis/installment-analysis-page.tsx b/components/dashboard/installment-analysis/installment-analysis-page.tsx index 9678674..e581d1a 100644 --- a/components/dashboard/installment-analysis/installment-analysis-page.tsx +++ b/components/dashboard/installment-analysis/installment-analysis-page.tsx @@ -81,7 +81,8 @@ export function InstallmentAnalysisPage({ installmentId: string ) => { const newMap = new Map(selectedInstallments); - const current = newMap.get(seriesId) || new Set(); + // Criar uma NOVA instância do Set para React detectar a mudança + const current = new Set(newMap.get(seriesId) || []); if (current.has(installmentId)) { current.delete(installmentId); diff --git a/components/dashboard/installment-analysis/installment-group-card.tsx b/components/dashboard/installment-analysis/installment-group-card.tsx index 46cbbc7..d867801 100644 --- a/components/dashboard/installment-analysis/installment-group-card.tsx +++ b/components/dashboard/installment-analysis/installment-group-card.tsx @@ -41,18 +41,26 @@ export function InstallmentGroupCard({ selectedInstallments.size === unpaidInstallments.length && unpaidInstallments.length > 0; - const isPartiallySelected = - selectedInstallments.size > 0 && - selectedInstallments.size < unpaidInstallments.length; - const progress = group.totalInstallments > 0 ? (group.paidInstallments / group.totalInstallments) * 100 : 0; const selectedAmount = group.pendingInstallments - .filter((i) => selectedInstallments.has(i.id)) - .reduce((sum, i) => sum + i.amount, 0); + .filter((i) => selectedInstallments.has(i.id) && !i.isSettled) + .reduce((sum, i) => sum + Number(i.amount), 0); + + // Calcular valor total de todas as parcelas (pagas + pendentes) + const totalAmount = group.pendingInstallments.reduce( + (sum, i) => sum + i.amount, + 0 + ); + + // Calcular valor pendente (apenas não pagas) + const pendingAmount = unpaidInstallments.reduce( + (sum, i) => sum + i.amount, + 0 + ); return ( @@ -84,22 +92,23 @@ export function InstallmentGroupCard({ -
- - - {selectedInstallments.size > 0 && ( - | - )} - - {selectedInstallments.size > 0 && ( +
+
+ Total: - )} +
+
+ + Pendente: + + +
@@ -109,22 +118,20 @@ export function InstallmentGroupCard({ {group.paidInstallments} de {group.totalInstallments} pagas - - {unpaidCount} {unpaidCount === 1 ? "pendente" : "pendentes"} - +
+ + {unpaidCount} {unpaidCount === 1 ? "pendente" : "pendentes"} + + {selectedInstallments.size > 0 && ( + + • Selecionado: + + )} +
- {/* Badges de status */} -
- {isPartiallySelected && ( - - {selectedInstallments.size} de {unpaidCount} selecionadas - - )} -
- {/* Botão de expandir */}