Correção na contagem de entrega de termo no resumo

This commit is contained in:
2026-06-26 11:45:32 -03:00
parent b659a66612
commit 1bda666d5a
2 changed files with 12 additions and 6 deletions

View File

@@ -50,9 +50,8 @@ class ConsolidacaoEntregasController < ApplicationController
# Lançamentos manuais do motorista (apontamentos + termo) — feedback no resumo # Lançamentos manuais do motorista (apontamentos + termo) — feedback no resumo
# e na barra de progresso. Ficam fora do conjunto elegível do período. # e na barra de progresso. Ficam fora do conjunto elegível do período.
@manuais = @consolidacao.consolidacao_entregas @manuais = contar_manuais(@consolidacao.consolidacao_entregas
.where(motorista_nome: @motorista, manual: true) .where(motorista_nome: @motorista, manual: true))
.distinct.count(:tracking_id)
# Filtro "apenas não classificadas" # Filtro "apenas não classificadas"
if params[:apenas_pendentes] == '1' if params[:apenas_pendentes] == '1'
@@ -441,6 +440,13 @@ class ConsolidacaoEntregasController < ApplicationController
@consolidacao.recalcular_motorista!(nome) @consolidacao.recalcular_motorista!(nome)
end end
# Conta lançamentos manuais como ENTREGAS: cada termo vale `quantidade` (lote
# numa só linha); os demais apontamentos manuais valem 1 por nota (tracking).
def contar_manuais(rel_manual)
rel_manual.termo.sum(:quantidade) +
rel_manual.where.not(tipo: ConsolidacaoEntrega.tipos[:termo]).distinct.count(:tracking_id)
end
# `vehicle` (opcional): quando presente, `classificadas_escopo` reflete só aquele # `vehicle` (opcional): quando presente, `classificadas_escopo` reflete só aquele
# carro (para a barra de progresso por veículo). `veiculos_status` acompanha o # carro (para a barra de progresso por veículo). `veiculos_status` acompanha o
# payload para o front atualizar os chips sem recarregar. # payload para o front atualizar os chips sem recarregar.
@@ -457,8 +463,8 @@ class ConsolidacaoEntregasController < ApplicationController
ok: true, ok: true,
classificadas: classificadas, classificadas: classificadas,
classificadas_escopo: escopo, classificadas_escopo: escopo,
manuais: classificacoes.where(manual: true).distinct.count(:tracking_id), manuais: contar_manuais(classificacoes.where(manual: true)),
por_tipo: classificacoes.group(:tipo).count, por_tipo: classificacoes.group(:tipo).sum(:quantidade),
valor_total: classificacoes.sum { |e| e.tipo == 'desconto' ? -e.valor_aplicado : e.valor_aplicado }.to_f, valor_total: classificacoes.sum { |e| e.tipo == 'desconto' ? -e.valor_aplicado : e.valor_aplicado }.to_f,
veiculos_status: status veiculos_status: status
} }

View File

@@ -386,7 +386,7 @@
<%= raw({ <%= raw({
classificadas: @classificadas, classificadas: @classificadas,
manuais: @manuais, manuais: @manuais,
por_tipo: _todas.group_by(&:tipo).transform_values(&:size), por_tipo: _todas.group_by(&:tipo).transform_values { |arr| arr.sum(&:quantidade) },
valor_total: _todas.sum { |c| c.tipo == 'desconto' ? -c.valor_aplicado : c.valor_aplicado }.to_f valor_total: _todas.sum { |c| c.tipo == 'desconto' ? -c.valor_aplicado : c.valor_aplicado }.to_f
}.to_json) %> }.to_json) %>
</script> </script>