, Correçoes UX consolidaçoes e de backa-end

This commit is contained in:
2026-08-28 16:38:51 -03:00
parent b6fe6f796f
commit bfa474262f
7 changed files with 290 additions and 40 deletions

View File

@@ -124,8 +124,20 @@ module Analytics
if ids.empty?
{}
else
# O EXISTS espelha o `ConsolidacaoMotorista.ativos` de `registros`, e por
# PAR (consolidação, motorista) — filtrar só por nome não basta: o
# mesmo motorista pode estar ativo numa consolidação do período e
# arquivado em outra, e aí os lançamentos da arquivada entravam nesta
# contagem enquanto o R$ da mesma linha os excluía. Arquivar motorista
# é reversível e NÃO apaga consolidacao_entregas (só o excluir apaga).
ConsolidacaoEntrega.where(consolidacao_id: ids,
motorista_nome: registros.map(&:motorista_nome).uniq)
.where(<<~SQL.squish)
EXISTS (SELECT 1 FROM consolidacao_motoristas cm
WHERE cm.consolidacao_id = consolidacao_entregas.consolidacao_id
AND cm.motorista_nome = consolidacao_entregas.motorista_nome
AND cm.arquivado_em IS NULL)
SQL
.group(:motorista_nome)
.sum(:quantidade)
end