From 1bda666d5abcd1fc58c3e624309e2c6ceb112c6d9e228ef7b06c96346bb8897c Mon Sep 17 00:00:00 2001 From: victor Date: Fri, 26 Jun 2026 11:45:32 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=A3o=20na=20contagem=20de=20entre?= =?UTF-8?q?ga=20de=20termo=20no=20resumo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consolidacao_entregas_controller.rb | 16 +++++++++++----- app/views/consolidacao_entregas/validar.html.erb | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/controllers/consolidacao_entregas_controller.rb b/app/controllers/consolidacao_entregas_controller.rb index 0721808..d4bb843 100644 --- a/app/controllers/consolidacao_entregas_controller.rb +++ b/app/controllers/consolidacao_entregas_controller.rb @@ -50,9 +50,8 @@ class ConsolidacaoEntregasController < ApplicationController # Lançamentos manuais do motorista (apontamentos + termo) — feedback no resumo # e na barra de progresso. Ficam fora do conjunto elegível do período. - @manuais = @consolidacao.consolidacao_entregas - .where(motorista_nome: @motorista, manual: true) - .distinct.count(:tracking_id) + @manuais = contar_manuais(@consolidacao.consolidacao_entregas + .where(motorista_nome: @motorista, manual: true)) # Filtro "apenas não classificadas" if params[:apenas_pendentes] == '1' @@ -441,6 +440,13 @@ class ConsolidacaoEntregasController < ApplicationController @consolidacao.recalcular_motorista!(nome) 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 # carro (para a barra de progresso por veículo). `veiculos_status` acompanha o # payload para o front atualizar os chips sem recarregar. @@ -457,8 +463,8 @@ class ConsolidacaoEntregasController < ApplicationController ok: true, classificadas: classificadas, classificadas_escopo: escopo, - manuais: classificacoes.where(manual: true).distinct.count(:tracking_id), - por_tipo: classificacoes.group(:tipo).count, + manuais: contar_manuais(classificacoes.where(manual: true)), + por_tipo: classificacoes.group(:tipo).sum(:quantidade), valor_total: classificacoes.sum { |e| e.tipo == 'desconto' ? -e.valor_aplicado : e.valor_aplicado }.to_f, veiculos_status: status } diff --git a/app/views/consolidacao_entregas/validar.html.erb b/app/views/consolidacao_entregas/validar.html.erb index c577657..67b5e30 100644 --- a/app/views/consolidacao_entregas/validar.html.erb +++ b/app/views/consolidacao_entregas/validar.html.erb @@ -386,7 +386,7 @@ <%= raw({ classificadas: @classificadas, 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 }.to_json) %>