atualizacao tela de fechamento

This commit is contained in:
Vitex Tecnologia
2026-05-20 16:38:07 -03:00
parent 0b5c7350c5
commit fc5fb3cc15
4 changed files with 33 additions and 8 deletions
@@ -414,7 +414,7 @@ export default function CompetenciaFechamentos() {
<TableHead className="min-w-[100px]">Logo</TableHead>
<TableHead className="min-w-[280px]">Nome</TableHead>
<TableHead className="min-w-[140px] text-right">Pontuação Total</TableHead>
<TableHead className="min-w-[150px] text-right">Pontuação Aprovada</TableHead>
<TableHead className="min-w-[150px] text-right">Pontuação Paga</TableHead>
<TableHead className="min-w-[120px]">Status</TableHead>
<TableHead className="text-center">Ações</TableHead>
</TableRow>
@@ -456,7 +456,7 @@ export default function CompetenciaFechamentos() {
</TableCell>
<TableCell className="text-right tabular-nums text-muted-foreground">
{row.status === "fechado"
? formatPontuacaoDecimal(Number(row.pontuacaoAprovada))
? formatPontuacaoDecimal(Number(row.pontuacaoPaga))
: "—"}
</TableCell>
<TableCell>
@@ -241,6 +241,7 @@ export default function FechamentoDetalhes() {
const [lancamentoPontuacao, setLancamentoPontuacao] = useState("0");
const [lancamentoValorReal, setLancamentoValorReal] = useState("");
const [pontuacaoMeta, setPontuacaoMeta] = useState<number | null>(null);
const [pontuacaoPagaFechamento, setPontuacaoPagaFechamento] = useState<number | null>(null);
const [parceiroId, setParceiroId] = useState<string | null>(null);
const [parceiroNome, setParceiroNome] = useState<string | null>(null);
const [parceiroFator, setParceiroFator] = useState<number | null>(null);
@@ -397,6 +398,9 @@ export default function FechamentoDetalhes() {
if (!current) return;
setFechamentoStatus(current.status);
setPontuacaoMeta(current.pontuacaoMeta);
setPontuacaoPagaFechamento(
current.status === "fechado" ? Number(current.pontuacaoPaga) : null,
);
setCompetenciaStatus(competenciaAtual?.status ?? "em_aberto");
setParceiroId(current.parceiroId);
setParceiroNome(current.parceiroNome);
@@ -729,6 +733,7 @@ export default function FechamentoDetalhes() {
});
toast.success(`Fechamento concluído. Banco de pontos: ${formatPontosAte2Casas(data.pontuacaoBanco)}.`);
setFechamentoStatus("fechado");
setPontuacaoPagaFechamento(Number(data.pontuacaoPaga));
if (supervisorPodeExportarPdf) {
try {
const { buffer, filename } = await fechamentoFechamentosService.exportarPdf(fechamentoId);
@@ -778,6 +783,7 @@ export default function FechamentoDetalhes() {
});
toast.success("Fechamento reaberto com sucesso.");
setFechamentoStatus(data.status);
setPontuacaoPagaFechamento(null);
setIsReabrirOpen(false);
setMotivoReabertura("");
await loadTarefas();
@@ -1090,7 +1096,7 @@ export default function FechamentoDetalhes() {
</div>
{!loading ? (
<div className="mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3">
<div className="mt-4 grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-4">
{isCompetenciaConcluida ? (
<div className="sm:col-span-2 xl:col-span-4 rounded-lg border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900">
Competência concluída. Reabra a competência para editar este fechamento.
@@ -1120,11 +1126,26 @@ export default function FechamentoDetalhes() {
<CardHeader className="space-y-2 p-4">
<div className="flex items-start justify-between">
<CardDescription className="text-[11px] uppercase tracking-wide">
Pontuação aprovada
Pontuação tasks selecionadas
</CardDescription>
<CheckCircle2 className="h-4 w-4 text-muted-foreground" />
</div>
<CardTitle className="text-3xl">{formatPontos(totais.pontos)}</CardTitle>
</CardHeader>
</Card>
<Card className="border-border/70 bg-card shadow-sm transition hover:shadow-md">
<CardHeader className="space-y-2 p-4">
<div className="flex items-start justify-between">
<CardDescription className="text-[11px] uppercase tracking-wide">
Pontuação paga
</CardDescription>
<Target className="h-4 w-4 text-muted-foreground" />
</div>
<CardTitle className="text-3xl">{formatPontos(totais.pontos)}</CardTitle>
<CardTitle className="text-3xl">
{isFechado && pontuacaoPagaFechamento != null
? formatPontos(pontuacaoPagaFechamento)
: "—"}
</CardTitle>
</CardHeader>
</Card>
</div>
@@ -209,7 +209,7 @@ export default function MeuFechamento() {
<Card className="border-border/70 bg-card shadow-sm">
<CardHeader className="space-y-2 p-4">
<div className="flex items-start justify-between">
<CardDescription className="text-[11px] uppercase tracking-wide">Total de pontos</CardDescription>
<CardDescription className="text-[11px] uppercase tracking-wide">Total pontuação paga</CardDescription>
<Target className="h-4 w-4 text-muted-foreground" />
</div>
<CardTitle className="text-2xl">{formatPontos(dados?.indicadores.totalPontos ?? 0)}</CardTitle>
@@ -251,7 +251,7 @@ export default function MeuFechamento() {
<TableRow>
<TableHead className="min-w-[220px]">Competência</TableHead>
<TableHead className="min-w-[140px]">Status fechamento</TableHead>
<TableHead className="min-w-[130px] text-right">Pontos</TableHead>
<TableHead className="min-w-[130px] text-right">Pontuação paga</TableHead>
<TableHead className="min-w-[240px] text-center">Ações</TableHead>
</TableRow>
</TableHeader>
@@ -274,7 +274,11 @@ export default function MeuFechamento() {
"—"
)}
</TableCell>
<TableCell className="text-right">{formatPontos(Number(item.fechamento?.pontuacaoTotalEntregue ?? 0))}</TableCell>
<TableCell className="text-right tabular-nums">
{item.fechamento?.status === "fechado"
? formatPontos(Number(item.fechamento.pontuacaoPaga))
: "—"}
</TableCell>
<TableCell className="text-center">
<div className="flex flex-wrap items-center justify-center gap-2">
<Button