Modificação na area do motorista
This commit is contained in:
@@ -33,8 +33,17 @@ class ConsolidacoesController < ApplicationController
|
||||
# Filtros
|
||||
@consolidacoes = @consolidacoes.where(status: params[:status]) if params[:status].present?
|
||||
@consolidacoes = @consolidacoes.where('nome ILIKE ?', "%#{params[:nome]}%") if params[:nome].present?
|
||||
@consolidacoes = @consolidacoes.where('data_inicio >= ?', params[:inicio]) if params[:inicio].present?
|
||||
@consolidacoes = @consolidacoes.where('data_fim <= ?', params[:fim]) if params[:fim].present?
|
||||
# Datas: a consolidação entra se CRUZA a faixa — mesmo critério do modo "Por
|
||||
# motorista" e do dashboard financeiro. Com o critério antigo (caber inteira
|
||||
# dentro do filtro), um fechamento de 01/08 a 31/08 sumia da lista ao filtrar
|
||||
# 01/08–26/08 e as duas abas da MESMA tela contavam coisas diferentes.
|
||||
if params[:inicio].present? && params[:fim].present?
|
||||
@consolidacoes = @consolidacoes.cruzando_periodo(params[:inicio], params[:fim])
|
||||
elsif params[:inicio].present?
|
||||
@consolidacoes = @consolidacoes.where('data_fim >= ?', params[:inicio])
|
||||
elsif params[:fim].present?
|
||||
@consolidacoes = @consolidacoes.where('data_inicio <= ?', params[:fim])
|
||||
end
|
||||
|
||||
if params[:motorista].present?
|
||||
ids = ConsolidacaoMotorista.where('motorista_nome ILIKE ?', "%#{params[:motorista]}%")
|
||||
@@ -63,7 +72,7 @@ class ConsolidacoesController < ApplicationController
|
||||
totais = Analytics::TotaisPorMotorista.new(
|
||||
inicio: inicio, fim: fim,
|
||||
motorista: params[:detalhe].presence,
|
||||
status: params[:status].presence || 'todos',
|
||||
status: params[:status].presence || 'finalizada',
|
||||
busca: params[:motorista].presence
|
||||
)
|
||||
|
||||
@@ -484,24 +493,26 @@ class ConsolidacoesController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
# Modo "Por motorista": os totais saem do MESMO recorte da lista (período,
|
||||
# status e busca por motorista), para as duas visões nunca contarem coisas
|
||||
# diferentes. `detalhe` é o motorista aberto (o clique na linha).
|
||||
# Modo "Por motorista": mesmo período/busca da lista, mas o recorte de datas e
|
||||
# o default de status são os do DASHBOARD FINANCEIRO — é com ele que o operador
|
||||
# compara o número (ver Analytics::TotaisPorMotorista). Sem status na URL vale
|
||||
# "Consolidado" (só finalizadas): "Geral" (com rascunhos) mostrava um valor
|
||||
# maior que o do dashboard e parecia erro de conta.
|
||||
# `detalhe` é o motorista aberto (o clique na linha).
|
||||
def montar_totais
|
||||
@inicio, @fim = periodo_totais
|
||||
@status_totais = params[:status].presence || 'finalizada'
|
||||
@totais = Analytics::TotaisPorMotorista.new(
|
||||
inicio: @inicio, fim: @fim,
|
||||
status: params[:status].presence || 'todos',
|
||||
status: @status_totais,
|
||||
busca: params[:motorista].presence
|
||||
)
|
||||
@detalhe_motorista = params[:detalhe].presence
|
||||
@detalhe = @detalhe_motorista ? @totais.consolidacoes_de(@detalhe_motorista) : nil
|
||||
end
|
||||
|
||||
# Período do relatório de totais. Default: o MÊS CORRENTE INTEIRO — o fim é o
|
||||
# último dia do mês, não "hoje", porque o recorte exige a consolidação inteira
|
||||
# dentro da faixa (Consolidacao.no_periodo) e um fechamento que vai até 31/08
|
||||
# sumiria da tela até o dia 31 chegar.
|
||||
# Período do relatório de totais. Default: o MÊS CORRENTE INTEIRO (o mês é a
|
||||
# unidade de fechamento; "até hoje" recortaria o mês pela metade sem motivo).
|
||||
def periodo_totais
|
||||
inicio = parse_data_totais(params[:inicio]) || Date.current.beginning_of_month
|
||||
fim = parse_data_totais(params[:fim]) || Date.current.end_of_month
|
||||
|
||||
Reference in New Issue
Block a user