refactor: update fichaPontoPDF and processamento to enhance legend styling and accumulate saldo for all days, improving report accuracy
This commit is contained in:
@@ -628,25 +628,34 @@ export async function processarDadosFichaPonto(
|
||||
}
|
||||
|
||||
// Calcular saldo acumulado para cada dia
|
||||
// Agora consideramos todos os dias que possuem saldo diário, inclusive
|
||||
// atestados, ausências e dias não computados, para que o resumo do período
|
||||
// reflita qualquer trabalho realizado e a carga horária esperada.
|
||||
let saldoAcumulado = 0;
|
||||
|
||||
for (const dia of diasProcessados) {
|
||||
if (dia.computado && dia.saldoDiario) {
|
||||
if (dia.saldoDiario) {
|
||||
saldoAcumulado += dia.saldoDiario.diferencaMinutos;
|
||||
}
|
||||
dia.saldoAcumulado = saldoAcumulado;
|
||||
}
|
||||
|
||||
// Calcular resumo com formatações
|
||||
const totalHorasTrabalhadas = diasProcessados
|
||||
.filter((d) => d.computado)
|
||||
.reduce((acc, d) => acc + (d.saldoDiario?.trabalhadoMinutos || 0), 0);
|
||||
const totalHorasEsperadas = diasProcessados
|
||||
.filter((d) => d.computado)
|
||||
.reduce((acc, d) => acc + (d.saldoDiario?.esperadoMinutos || 0), 0);
|
||||
const diferencaTotal = diasProcessados
|
||||
.filter((d) => d.computado)
|
||||
.reduce((acc, d) => acc + (d.saldoDiario?.diferencaMinutos || 0), 0);
|
||||
// Total de horas trabalhadas e esperadas passa a considerar todos os dias,
|
||||
// não apenas os marcados como "computados", para que trechos trabalhados
|
||||
// em dias de ausência/dispensa também apareçam no resumo.
|
||||
const totalHorasTrabalhadas = diasProcessados.reduce(
|
||||
(acc, d) => acc + (d.saldoDiario?.trabalhadoMinutos || 0),
|
||||
0
|
||||
);
|
||||
const totalHorasEsperadas = diasProcessados.reduce(
|
||||
(acc, d) => acc + (d.saldoDiario?.esperadoMinutos || 0),
|
||||
0
|
||||
);
|
||||
const diferencaTotal = diasProcessados.reduce(
|
||||
(acc, d) => acc + (d.saldoDiario?.diferencaMinutos || 0),
|
||||
0
|
||||
);
|
||||
const saldoPeriodo = diferencaTotal;
|
||||
const saldoFinal =
|
||||
diasProcessados.length > 0 ? diasProcessados[diasProcessados.length - 1]!.saldoAcumulado : 0;
|
||||
|
||||
Reference in New Issue
Block a user