Implantação da função filtro de Operções exemplo UBS***

This commit is contained in:
2026-06-17 16:08:22 -03:00
parent e9def7e21a
commit c969049c1a
11 changed files with 202 additions and 7 deletions

View File

@@ -16,7 +16,8 @@ class ConsolidacaoEntregasController < ApplicationController
.da_conta_gade
.no_periodo(@consolidacao.data_inicio, @consolidacao.data_fim)
.do_motorista(@motorista)
@entregas = @entregas.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
@entregas = @entregas.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
@entregas = @entregas.da_operacoes(@consolidacao.operacoes) if @consolidacao.operacoes.present?
@entregas = @entregas.order(:planned_date)
# Classificações já feitas — agrupadas por tracking_id (uma entrega pode ter
@@ -185,7 +186,8 @@ class ConsolidacaoEntregasController < ApplicationController
rel = Entrega.pagas.da_conta_gade
.no_periodo(@consolidacao.data_inicio, @consolidacao.data_fim)
.do_motorista(motorista)
rel = rel.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
rel = rel.da_veiculo(@consolidacao.vehicle_ids) if @consolidacao.vehicle_ids.present?
rel = rel.da_operacoes(@consolidacao.operacoes) if @consolidacao.operacoes.present?
rel.pluck(:tracking_id)
end

View File

@@ -46,12 +46,14 @@ class ConsolidacoesController < ApplicationController
)
@motoristas = Entrega.motoristas_ativos
@veiculos = Entrega.veiculos_unicos
@operacoes = Operacao.todas
end
# POST /consolidacoes
def create
authorize Consolidacao
@consolidacao = Consolidacao.new(consolidacao_params.merge(created_by: current_user.id))
@consolidacao.operacoes = Operacao.sanitizar(@consolidacao.operacoes)
motoristas = Array(params[:motoristas]).reject(&:blank?)
@@ -86,6 +88,19 @@ class ConsolidacoesController < ApplicationController
render json: { veiculos: veiculos }
end
# GET /consolidacoes/operacoes_disponiveis — lista (JSON) as tabelas de operação.
def operacoes_disponiveis
authorize Consolidacao, :new?
render json: { operacoes: Operacao.todas }
end
# GET /consolidacoes/dados_da_operacao?operacoes[]=X — motoristas/veículos/período
# derivados das operações selecionadas, para pré-preencher o formulário.
def dados_da_operacao
authorize Consolidacao, :new?
render json: Operacao.dados(params[:operacoes])
end
# GET /consolidacoes/:id — visão geral
def show
authorize @consolidacao
@@ -268,9 +283,10 @@ class ConsolidacoesController < ApplicationController
def preparar_form_new
@motoristas = Entrega.motoristas_ativos
@veiculos = Entrega.veiculos_unicos
@operacoes = Operacao.todas
end
def consolidacao_params
params.require(:consolidacao).permit(:nome, :data_inicio, :data_fim, vehicle_ids: [])
params.require(:consolidacao).permit(:nome, :data_inicio, :data_fim, vehicle_ids: [], operacoes: [])
end
end