novo pilar tipo: termo (valor 5 no enum), lançado como uma linha por lote com manual: true e uma coluna nova quantidade. O valor_aplicado guarda o total do lote (qtd × preço), então recalcular_motorista! e todas as somas existentes seguem corretas sem mudança — linhas antigas ficam com quantidade = 1.

This commit is contained in:
2026-06-26 09:32:59 -03:00
parent f42949db78
commit 09867c8d39
17 changed files with 256 additions and 17 deletions

View File

@@ -353,7 +353,8 @@ class ConsolidacoesController < ApplicationController
authorize @consolidacao, :show?
@motorista = params[:motorista]
@entregas = @consolidacao.consolidacao_entregas.where(motorista_nome: @motorista)
@resumo = @entregas.group(:tipo).count
# sum(:quantidade) (default 1) conta os termos lançados em lote como N entregas.
@resumo = @entregas.group(:tipo).sum(:quantidade)
@total = @entregas.sum { |e| e.desconto? ? -e.valor_aplicado : e.valor_aplicado }
render layout: false # renderiza dentro do modal (Turbo Frame)
end