Corrige dashboard por período, CRUD de usuário, PDFs e paginação na revisão

- Dashboard: no_periodo passa a cobrir o dia inteiro (planned_date é timestamp),
  corrigindo período que zerava ao terminar no dia dos dados
- Dashboard: card de consolidações filtra por sobreposição de datas (não created_at)
- Usuários: adiciona helper role_options_for_select (corrige edição/criação)
- Consolidação: set_consolidacao nas actions de PDF/preview (corrige
  Pundit::NotDefinedError em Relatório Individual, Gerar Holerite e Preview)
- Revisão: paginação com Pagy (20/página + seletor 20/50/100)
- Nova consolidação: veículos filtrados pelo(s) motorista(s) no período
This commit is contained in:
2026-06-16 14:45:06 -03:00
parent aad167873f
commit fedf5bfcc9
17 changed files with 14917 additions and 24 deletions

View File

@@ -2,7 +2,9 @@
class ConsolidacoesController < ApplicationController
include Auditavel
before_action :set_consolidacao, only: %i[show edit update destroy finalizar arquivar wizard]
before_action :set_consolidacao,
only: %i[show edit update destroy finalizar arquivar wizard
preview_holerite gerar_pdf_relatorio gerar_pdf_holerite]
# GET /consolidacoes — lista com filtros
def index
@@ -65,6 +67,17 @@ class ConsolidacoesController < ApplicationController
render :new, status: :unprocessable_entity
end
# GET /consolidacoes/veiculos_disponiveis?motoristas[]=X&inicio=&fim=
# Lista (JSON) os veículos usados pelos motoristas selecionados no período —
# alimenta o filtro dinâmico de veículos no formulário de nova consolidação.
def veiculos_disponiveis
authorize Consolidacao, :new?
veiculos = Entrega.veiculos_de_motoristas(
params[:motoristas], inicio: params[:inicio], fim: params[:fim]
)
render json: { veiculos: veiculos }
end
# GET /consolidacoes/:id — visão geral
def show
authorize @consolidacao