Correção de itens que estão fora do plano valores no dash principal
This commit is contained in:
@@ -50,6 +50,40 @@ class DashboardController < ApplicationController
|
||||
disposition: 'attachment'
|
||||
end
|
||||
|
||||
# GET /dashboard/pendentes?inicio=&fim=&operacoes[]=
|
||||
# Quais são as entregas EM ABERTO do período — o card do dashboard mostrava só
|
||||
# o número e não havia tela nenhuma listando as linhas por trás dele.
|
||||
#
|
||||
# Em aberto = nem concluída nem falhada (Entrega.pendentes), pela data
|
||||
# PLANEJADA: é o único recorte sem checkout, então planned_date é o eixo
|
||||
# possível. Mesmo recorte do card, para o total bater.
|
||||
def pendentes
|
||||
skip_authorization
|
||||
return redirect_to(motorista_dashboard_path) if current_user.motorista?
|
||||
|
||||
@periodo_inicio, @periodo_fim = periodo_selecionado
|
||||
@operacoes_agrupadas = Operacao.agrupadas_por_mes
|
||||
@operacao_filtro = Operacao.sanitizar(params[:operacoes])
|
||||
|
||||
escopo = Entrega.da_conta_gade.pendentes.no_periodo(@periodo_inicio, @periodo_fim)
|
||||
escopo = escopo.da_operacoes(@operacao_filtro) if @operacao_filtro.present?
|
||||
|
||||
@total_em_aberto = escopo.count
|
||||
begin
|
||||
@pagy, @em_aberto = pagy(escopo.order(planned_date: :desc), limit: 50)
|
||||
rescue Pagy::OverflowError
|
||||
@pagy, @em_aberto = pagy(escopo.order(planned_date: :desc), limit: 50, page: 1)
|
||||
end
|
||||
|
||||
# Contexto de cada NF listada: em que operação ela está (se estiver) e
|
||||
# quantas visitas o rastreio tem para ela. As duas respostas juntas dizem por
|
||||
# que a entrega ficou em aberto — e por que o dashboard de Operações não a
|
||||
# mostra: ou é nota fora da operação, ou tem outra visita que a substituiu.
|
||||
nfs = @em_aberto.map { |e| e.reference_id.to_s }.reject(&:empty?)
|
||||
@operacao_por_nf = Operacao.por_notas(nfs)
|
||||
@visitas_por_nf = nfs.any? ? Entrega.where(reference_id: nfs).group(:reference_id).count : {}
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
# Faixa de datas vinda do filtro de calendário (params inicio/fim).
|
||||
|
||||
Reference in New Issue
Block a user