From 3b07e72d6e0d9d6c9b60c500d30cbd1e4b6da20f29d5509c3ade9a94acd4efe1 Mon Sep 17 00:00:00 2001 From: victor Date: Thu, 11 Jun 2026 18:48:44 -0300 Subject: [PATCH] =?UTF-8?q?Corre=C3=A7=C3=B5es=20de=20integra=C3=A7=C3=A3o?= =?UTF-8?q?=20Fases=202/3=20=E2=86=94=204-8=20+=20Auditoria=20UI=20+=20REA?= =?UTF-8?q?DME=20final?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 110 +++++++++---- .../admin/auditoria_logs_controller.rb | 13 ++ .../admin/configuracoes_controller.rb | 43 +++++ app/controllers/admin/usuarios_controller.rb | 84 ++++++++++ app/controllers/users/sessions_controller.rb | 4 +- app/models/configuracao.rb | 39 +++++ app/models/entrega.rb | 4 + app/views/admin/auditoria_logs/index.html.erb | 43 +++++ app/views/admin/configuracoes/edit.html.erb | 58 +++++++ app/views/admin/configuracoes/index.html.erb | 64 ++++++++ app/views/admin/usuarios/_form.html.erb | 153 ++++++++++++++++++ app/views/admin/usuarios/edit.html.erb | 2 + app/views/admin/usuarios/index.html.erb | 120 ++++++++++++++ app/views/admin/usuarios/new.html.erb | 2 + config/routes.rb | 10 +- ...101000010_add_devise_trackable_to_users.rb | 20 +++ db/seeds.rb | 13 ++ historico_commits.txt | 134 +++++++++++++++ reem-notas.zip | Bin 0 -> 110494 bytes 19 files changed, 879 insertions(+), 37 deletions(-) create mode 100644 app/controllers/admin/auditoria_logs_controller.rb create mode 100644 app/controllers/admin/configuracoes_controller.rb create mode 100644 app/controllers/admin/usuarios_controller.rb create mode 100644 app/views/admin/auditoria_logs/index.html.erb create mode 100644 app/views/admin/configuracoes/edit.html.erb create mode 100644 app/views/admin/configuracoes/index.html.erb create mode 100644 app/views/admin/usuarios/_form.html.erb create mode 100644 app/views/admin/usuarios/edit.html.erb create mode 100644 app/views/admin/usuarios/index.html.erb create mode 100644 app/views/admin/usuarios/new.html.erb create mode 100644 db/migrate/20260101000010_add_devise_trackable_to_users.rb create mode 100644 historico_commits.txt create mode 100644 reem-notas.zip diff --git a/README.md b/README.md index 9d8b7e1..fdc9483 100644 --- a/README.md +++ b/README.md @@ -124,16 +124,60 @@ docker-compose down # parar tudo ## šŸ—ŗļø Fases de implementação -| Fase | Status | O que fazer | -|------|--------|-------------| -| **1** | āœ… **CONCLUƍDA** | Setup + Docker + Models + Migrations + Seeds + Layout base | -| **2** | ā³ Pendente | Login por role + CRUD usuĆ”rios + pilares de preƧo + toggle tema | -| **3** | ā³ Pendente | Dashboard: cards grandes laranja/preto/branco + grĆ”fico Chart.js + cĆ”lculo ao vivo | -| **4** | āœ… **CONCLUƍDA** | Job Whenever (1h) + HistoricoEstimado + AuditoriaLog + API mĆ©tricas | -| **5** | āœ… **CONCLUƍDA** | Nova Consolidação + filtros + Wizard Passo 1 (selecionar motorista) | -| **6** | āœ… **CONCLUƍDA** | Toggles coloridos + aƧƵes em massa + barra progresso + Wizard Passos 2 e 3 (Stimulus) | -| **7** | āœ… **CONCLUƍDA** | PDFs Prawn: relatório individual + holerite com QR code + modal preview | -| **8** | āœ… **CONCLUƍDA** | Painel motorista + login PIN/QR + notificaƧƵes WhatsApp/email | +| Fase | Status | O que faz | +|------|--------|-----------| +| **1** | āœ… ConcluĆ­da | Setup + Docker + Models + Migrations + Seeds + Layout base | +| **2** | āœ… ConcluĆ­da *(corrigida)* | Login e-mail/PIN + CRUD usuĆ”rios + pilares de preƧo + toggle tema | +| **3** | āœ… ConcluĆ­da *(corrigida)* | Dashboard: cards + grĆ”fico Chart.js + ranking motoristas + navegação por mĆŖs | +| **4** | āœ… ConcluĆ­da | Job Whenever (1h) + HistoricoEstimado + AuditoriaLog + API mĆ©tricas | +| **5** | āœ… ConcluĆ­da | Nova Consolidação + filtros + Wizard Passo 1 | +| **6** | āœ… ConcluĆ­da | Toggles coloridos + aƧƵes em massa + Wizard Passos 2 e 3 (Stimulus) | +| **7** | āœ… ConcluĆ­da | PDFs Prawn: relatório + holerite com QR code + modal preview | +| **8** | āœ… ConcluĆ­da | Painel motorista + login PIN/QR + notificaƧƵes WhatsApp/email | + +**šŸŽ‰ PROJETO: 8 de 8 fases implementadas.** + +--- + +## šŸ”§ AnĆ”lise de integração (11/06/2026) — CorreƧƵes aplicadas + +As Fases 2/3 (commit `4724847`) foram desenvolvidas em paralelo Ć s Fases 4-8 (commits `90ed705` e `8b3d4bc`), e a mesclagem gerou **conflitos que quebravam a aplicação**. AnĆ”lise dos commits e correƧƵes: + +### šŸ”“ Problemas crĆ­ticos encontrados e corrigidos + +**1. Migration da Fase 2 quebrada** (`20260610_add_fase2_fields_to_users.rb`) +- Timestamp curto (8 dĆ­gitos) fazia ela rodar ANTES da `create_users` → erro "table does not exist" +- Adicionava coluna `ativo` que jĆ” existia → erro de coluna duplicada +- Criava `pin_acesso` duplicando o `pin_code` existente +- āœ… **Corrigida:** reescrita como `20260101000010_add_devise_trackable_to_users.rb` — só trackable/lockable, timestamp correto + +**2. Campo de PIN inconsistente** — Fase 2 usava `pin_acesso`, o model e as Fases 7/8 usam `pin_code`. PINs cadastrados no CRUD nĆ£o funcionariam no login. +- āœ… **Corrigido:** padronizado `pin_code` em todos os arquivos + +**3. Campo de nome inconsistente** — CRUD de usuĆ”rios usava `:name`, o schema usa `nome` → o CRUD quebrava ao salvar. +- āœ… **Corrigido:** padronizado `nome` + +**4. Controllers fora do namespace** — As rotas esperam `Admin::UsuariosController` e `Admin::ConfiguracoesController`, mas os controllers foram criados na raiz → `/admin/usuarios` dava "uninitialized constant" e os controllers ficavam inacessĆ­veis. +- āœ… **Corrigido:** movidos para `app/controllers/admin/` + views para `app/views/admin/` + paths atualizados (`admin_usuarios_path` etc.) + +**5. Dashboard (Fase 3) chamava mĆ©todos inexistentes** — `Entrega.do_mes` e `Configuracao.mapa_de_precos` foram sobrescritos pelo commit das Fases 4-6 → **a raiz do site quebrava** (root = dashboard#index). +- āœ… **Corrigido:** scope `do_mes` e mĆ©todo `mapa_de_precos` restaurados nos models, junto com `tipo_label`/`icone` usados pelas views de configuraƧƵes + +**6. AuditoriaLog com 2 assinaturas** — Fase 2 chamava `registrar(user, 'acao', ip)` posicional; o model usa keyword args → `ArgumentError` em login PIN, CRUD de usuĆ”rios e configuraƧƵes. +- āœ… **Corrigido:** todas as chamadas convertidas para a assinatura do model + +**7. Rotas/controllers ausentes** +- `Admin::AuditoriaLogsController` tinha rota mas nĆ£o existia → āœ… criado com view de listagem e filtros +- `toggle_tema` e `toggle_ativo` existiam nos controllers mas sem rota → āœ… rotas adicionadas +- Controller de configuraƧƵes usava campo `tipo` que nĆ£o existe (schema usa `chave`) → āœ… corrigido + +### 🟔 DuplicaƧƵes removidas (arquivos órfĆ£os) +- `app/controllers/motorista_controller.rb` + `app/views/motorista/index.html.erb` — a rota `/motorista` usa `Motorista::DashboardController` (Fase 8) +- `app/views/layouts/_sidebar.html.erb` — o layout renderiza `_navbar.html.erb` +- Seeds dos 3 motoristas de teste (JoĆ£o/1234, Maria/5678, Carlos/9012) restaurados — tinham sido sobrescritos + +### āš ļø Observação sobre login PIN duplicado +Existem **dois fluxos de login por PIN** funcionais: a aba PIN na tela Devise (`/auth/login`, Fase 2) e a tela dedicada (`/motorista/login`, Fase 8 — usada pelo QR Code do holerite). Ambos usam `pin_code` e funcionam; recomenda-se manter os dois (a tela dedicada Ć© melhor para mobile) ou unificar futuramente. ### šŸ“‚ Arquivos das Fases 4, 5 e 6 @@ -228,33 +272,35 @@ config/routes.rb # ATUALIZADO: /motorista/log 6. Logout → `/motorista/login` → entrar com PIN do motorista 7. Conferir cards de valores → baixar próprio holerite → sair -### ā–¶ļø Para continuar (faltam apenas Fases 2 e 3) +### ā–¶ļø Próximos passos (deploy) -Cole este contexto no inĆ­cio da conversa com o Claude: +O projeto estĆ” completo. Para colocar em produção: +```bash +# 1. Configurar .env com credenciais reais (DB_HOST do PostgreSQL existente) +cp .env.example .env && nano .env + +# 2. Subir e migrar +docker-compose up -d --build +docker-compose exec app bundle exec rails db:create db:migrate db:seed + +# 3. Ativar o cron do job de 1h +docker-compose exec app bundle exec whenever --update-crontab + +# 4. Testar o fluxo end-to-end (seção de teste acima) ``` -Continue o Sistema de Controle de Custos LogĆ­stica da Gade Hospitalar. -CHECKPOINT — FASES 1, 4, 5, 6, 7 e 8 CONCLUƍDAS: -- Rails 7+ com Docker, PostgreSQL externo, Tailwind (preto #0a0a0a / laranja #f97316) -- Models: Entrega (read-only db_reem_simplerout_2026), User (Devise+roles+pin_code - +login_token), Configuracao, Consolidacao (+route_ids), ConsolidacaoMotorista, - ConsolidacaoEntrega, HistoricoEstimado, AuditoriaLog — 9 migrations -- Fase 4: Whenever (1h) + job + rake historico:atualizar + API /api/v1/dashboard/metricas -- Fase 5: ConsolidacoesController (filtros, multi-select) + Wizard Passo 1 -- Fase 6: validar/classificar/classificar_em_massa/revisar + toggles + Stimulus -- Fase 7: PDFs Prawn (Pdf::RelatorioMotoristaPdf, Pdf::HoleritePdf com QR code) - + modal preview em consolidacoes/show -- Fase 8: login motorista por PIN (/motorista/login) e QR (/motorista/acesso/:token) - + painel motorista (2 cards + holerites) + NotificacaoService (Twilio/ActionMailer) +**Credenciais de teste (seeds):** -FALTAM SOMENTE: -- FASE 2: tela de login Devise estilizada + CRUD usuĆ”rios (admin/usuarios) + - CRUD pilares de preƧo (admin/configuracoes) + tela auditoria + toggle tema claro/escuro -- FASE 3: DashboardController + view com cards grandes (valor estimado, entregas - do dia/mĆŖs, motoristas ativos) + grĆ”fico Chart.js do historico_estimados -Consulte o README.md do repositório para a lista completa de arquivos. -``` +| UsuĆ”rio | Login | Senha/PIN | +|---------|-------|-----------| +| Admin | admin@gade.com | Gade@2026! | +| Gerente | gerente@gade.com | Gade@2026! | +| Motorista JoĆ£o Silva | PIN | 1234 | +| Motorista Maria Santos | PIN | 5678 | +| Motorista Carlos Souza | PIN | 9012 | + +āš ļø Altere as senhas padrĆ£o no primeiro acesso em produção. --- diff --git a/app/controllers/admin/auditoria_logs_controller.rb b/app/controllers/admin/auditoria_logs_controller.rb new file mode 100644 index 0000000..f8a95a4 --- /dev/null +++ b/app/controllers/admin/auditoria_logs_controller.rb @@ -0,0 +1,13 @@ +# app/controllers/admin/auditoria_logs_controller.rb +class Admin::AuditoriaLogsController < ApplicationController + def index + authorize AuditoriaLog, policy_class: ApplicationPolicy + + @logs = AuditoriaLog.recentes.limit(200) + @logs = @logs.por_user(params[:user_id]) if params[:user_id].present? + @logs = @logs.where(acao: params[:acao]) if params[:acao].present? + @logs = @logs.por_entidade(params[:entidade]) if params[:entidade].present? + + @usuarios = User.por_nome + end +end diff --git a/app/controllers/admin/configuracoes_controller.rb b/app/controllers/admin/configuracoes_controller.rb new file mode 100644 index 0000000..6477b5f --- /dev/null +++ b/app/controllers/admin/configuracoes_controller.rb @@ -0,0 +1,43 @@ +# app/controllers/configuracoes_controller.rb +class Admin::ConfiguracoesController < ApplicationController + before_action :set_configuracao, only: [:edit, :update] + + def index + authorize Configuracao + @configuracoes = Configuracao.all.order(:chave) + end + + def edit + authorize @configuracao + end + + def update + authorize @configuracao + + valor_anterior = @configuracao.valor + + if @configuracao.update(configuracao_params) + AuditoriaLog.registrar(user: current_user, acao: 'editar_preco', entidade: 'Configuracao', entidade_id: @configuracao.id, dados_novos: { detalhes: "#{@configuracao.chave}: R$ #{valor_anterior} → R$ #{@configuracao.valor}" }, request: request) + redirect_to admin_configuracoes_path, notice: "PreƧo de #{@configuracao.tipo_label} atualizado." + else + render :edit, status: :unprocessable_entity + end + end + + # POST /configuracoes/toggle_tema + def toggle_tema + skip_authorization + session[:tema] = session[:tema] == 'light' ? 'dark' : 'light' + redirect_back(fallback_location: dashboard_path) + end + + private + + def set_configuracao + @configuracao = Configuracao.find(params[:id]) + end + + def configuracao_params + params.require(:configuracao).permit(:valor, :descricao) + end +end diff --git a/app/controllers/admin/usuarios_controller.rb b/app/controllers/admin/usuarios_controller.rb new file mode 100644 index 0000000..1de528c --- /dev/null +++ b/app/controllers/admin/usuarios_controller.rb @@ -0,0 +1,84 @@ +# app/controllers/usuarios_controller.rb +class Admin::UsuariosController < ApplicationController + before_action :set_usuario, only: [:show, :edit, :update, :destroy, :toggle_ativo] + + def index + authorize User + @usuarios = policy_scope(User).order(:nome).page(params[:page]).per(20) + @roles = User.roles.keys + end + + def show + authorize @usuario + end + + def new + @usuario = User.new + authorize @usuario + end + + def create + @usuario = User.new(usuario_params) + authorize @usuario + + if @usuario.save + AuditoriaLog.registrar(user: current_user, acao: 'criar_usuario', entidade: 'User', dados_novos: { detalhes: "Criou usuĆ”rio #{@usuario.email} (#{@usuario.role})" }, request: request) + redirect_to admin_usuarios_path, notice: 'UsuĆ”rio criado com sucesso.' + else + render :new, status: :unprocessable_entity + end + end + + def edit + authorize @usuario + end + + def update + authorize @usuario + + if @usuario.update(usuario_params_update) + AuditoriaLog.registrar(user: current_user, acao: 'editar_usuario', entidade: 'User', dados_novos: { detalhes: "Editou usuĆ”rio #{@usuario.email}" }, request: request) + redirect_to admin_usuarios_path, notice: 'UsuĆ”rio atualizado.' + else + render :edit, status: :unprocessable_entity + end + end + + def destroy + authorize @usuario + + if @usuario == current_user + redirect_to admin_usuarios_path, alert: 'VocĆŖ nĆ£o pode excluir sua própria conta.' + return + end + + @usuario.destroy + AuditoriaLog.registrar(user: current_user, acao: 'excluir_usuario', entidade: 'User', dados_novos: { detalhes: "Excluiu usuĆ”rio #{@usuario.email}" }, request: request) + redirect_to admin_usuarios_path, notice: 'UsuĆ”rio removido.' + end + + def toggle_ativo + authorize @usuario, :update? + @usuario.update!(ativo: !@usuario.ativo) + status = @usuario.ativo? ? 'ativado' : 'desativado' + AuditoriaLog.registrar(user: current_user, acao: "usuario_#{status}", entidade: \'User\', dados_novos: { detalhes: "#{@usuario.email} foi #{status}" }, request: request) + redirect_to admin_usuarios_path, notice: "UsuĆ”rio #{status} com sucesso." + end + + private + + def set_usuario + @usuario = User.find(params[:id]) + end + + def usuario_params + params.require(:user).permit(:nome, :email, :password, :password_confirmation, + :role, :pin_code, :ativo) + end + + def usuario_params_update + permitted = [:nome, :email, :role, :pin_code, :ativo] + permitted += [:password, :password_confirmation] if params[:user][:password].present? + params.require(:user).permit(permitted) + end +end diff --git a/app/controllers/users/sessions_controller.rb b/app/controllers/users/sessions_controller.rb index ea2dc18..edf3e97 100644 --- a/app/controllers/users/sessions_controller.rb +++ b/app/controllers/users/sessions_controller.rb @@ -41,11 +41,11 @@ class Users::SessionsController < Devise::SessionsController def handle_pin_login pin = params[:user][:pin].to_s.strip - user = User.find_by(pin_acesso: pin, role: 'motorista') + user = User.find_by(pin_code: pin, role: 'motorista') if user&.active? sign_in(user) - AuditoriaLog.registrar(user, 'login_pin', request.remote_ip) + AuditoriaLog.registrar(user: user, acao: 'login_pin', entidade: 'User', dados_novos: { detalhes: "" }, request: request) redirect_to motorista_path, notice: "Bem-vindo, #{user.nome_display}!" else flash.now[:alert] = 'PIN invĆ”lido ou motorista inativo.' diff --git a/app/models/configuracao.rb b/app/models/configuracao.rb index ccd8756..4b61c20 100644 --- a/app/models/configuracao.rb +++ b/app/models/configuracao.rb @@ -44,6 +44,45 @@ class Configuracao < ApplicationRecord valor('preco_desconto').to_f end + # Mapa usado pelo DashboardController (Fase 3) + def self.mapa_de_precos + { + entrega: preco_entrega, + retirada: preco_retirada, + bonus: preco_bonus, + desconto: preco_desconto + } + end + + LABELS = { + 'preco_entrega' => 'Entrega Normal', + 'preco_retirada' => 'Retirada', + 'preco_bonus' => 'BĆ“nus', + 'preco_desconto' => 'Desconto', + 'notificacao_whatsapp' => 'Notificação WhatsApp', + 'notificacao_email' => 'Notificação E-mail', + 'empresa_nome' => 'Nome da Empresa' + }.freeze + + ICONES = { + 'preco_entrega' => '🚚', + 'preco_retirada' => 'šŸ“¦', + 'preco_bonus' => '⭐', + 'preco_desconto' => 'āš ļø', + 'notificacao_whatsapp' => 'šŸ’¬', + 'notificacao_email' => 'āœ‰ļø', + 'empresa_nome' => 'šŸ¢' + }.freeze + + # Usados pelas views admin/configuracoes (Fase 2) + def tipo_label + LABELS[chave] || chave.humanize + end + + def icone + ICONES[chave] || 'āš™ļø' + end + def moeda? CHAVES_MOEDA.include?(chave) end diff --git a/app/models/entrega.rb b/app/models/entrega.rb index 7e18d34..1c4ed77 100644 --- a/app/models/entrega.rb +++ b/app/models/entrega.rb @@ -31,6 +31,10 @@ class Entrega < ApplicationRecord where(route_id: route_id) } + scope :do_mes, ->(data = Date.current) { + where(planned_date: data.beginning_of_month..data.end_of_month) + } + scope :da_conta_gade, -> { where(account_id: ENV.fetch('DB_EXISTING_ACCOUNT_ID', 95907).to_i) } diff --git a/app/views/admin/auditoria_logs/index.html.erb b/app/views/admin/auditoria_logs/index.html.erb new file mode 100644 index 0000000..7f5aaa8 --- /dev/null +++ b/app/views/admin/auditoria_logs/index.html.erb @@ -0,0 +1,43 @@ +<%# app/views/admin/auditoria_logs/index.html.erb %> +<% content_for :title, 'Auditoria' %> + +

šŸ” Auditoria

+ +<%= form_with url: admin_auditoria_logs_path, method: :get, + class: 'bg-[#1a1a1a] border border-[#2a2a2a] rounded-xl p-4 mb-6 flex flex-wrap gap-3' do %> + <%= select_tag :user_id, + options_from_collection_for_select(@usuarios, :id, :nome_display, params[:user_id]), + include_blank: 'Todos os usuÔrios', + class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + <%= text_field_tag :acao, params[:acao], placeholder: 'Ação (ex: finalizar)', + class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + <%= submit_tag 'Filtrar', class: 'bg-orange-500 hover:bg-orange-600 text-black font-bold px-5 rounded-lg cursor-pointer' %> +<% end %> + +
+ + + + + + + + + + + + <% @logs.each do |log| %> + + + + + + + + <% end %> + +
QuandoUsuÔrioAçãoEntidadeDetalhes
<%= l log.created_at, format: :short %><%= User.find_by(id: log.user_id)&.nome_display || "##{log.user_id}" %><%= log.acao %><%= log.entidade %><%= " ##{log.entidade_id}" if log.entidade_id %><%= log.dados_novos['detalhes'] || log.dados_novos.to_s.first(80) %>
+ <% if @logs.empty? %> +

Nenhum registro de auditoria encontrado.

+ <% end %> +
diff --git a/app/views/admin/configuracoes/edit.html.erb b/app/views/admin/configuracoes/edit.html.erb new file mode 100644 index 0000000..a84647e --- /dev/null +++ b/app/views/admin/configuracoes/edit.html.erb @@ -0,0 +1,58 @@ +<%# app/views/configuracoes/edit.html.erb %> +
+
+

+ <%= @configuracao.icone %> Editar: <%= @configuracao.tipo_label %> +

+

Atualize o valor do pilar de preƧo

+
+ + <%= render 'shared/flash' %> + + <%= form_with(model: @configuracao, url: admin_configuracao_path(@configuracao), method: :patch, + class: 'bg-[#1a1a1a] rounded-2xl border border-white/5 p-8 space-y-6') do |f| %> + + <% if @configuracao.errors.any? %> +
+
    + <% @configuracao.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%= f.label :valor, 'Valor (R$)', class: 'block text-sm font-medium text-gray-300 mb-1.5' %> +
+ R$ + <%= f.number_field :valor, + step: 0.01, + min: 0, + class: 'w-full pl-10 pr-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl + text-white text-xl font-bold focus:outline-none focus:border-[#f97316] + focus:ring-1 focus:ring-[#f97316] transition-colors', + placeholder: '0.00' %> +
+

Valor atual: <%= moeda(@configuracao.valor) %>

+
+ +
+ <%= f.label :descricao, 'Descrição (opcional)', class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.text_area :descricao, rows: 2, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + placeholder-gray-600 focus:outline-none focus:border-[#f97316] focus:ring-1 + focus:ring-[#f97316] transition-colors resize-none', + placeholder: 'Ex: Entrega padrão para UBS e EMAD' %> +
+ +
+ <%= link_to 'Cancelar', admin_configuracoes_path, + class: 'px-6 py-3 text-gray-400 hover:text-white border border-white/10 + hover:border-white/20 rounded-xl transition-colors' %> + <%= f.submit 'Salvar PreƧo', + class: 'px-8 py-3 bg-[#f97316] hover:bg-orange-500 text-white font-semibold + rounded-xl transition-colors cursor-pointer min-h-[48px]' %> +
+ <% end %> +
diff --git a/app/views/admin/configuracoes/index.html.erb b/app/views/admin/configuracoes/index.html.erb new file mode 100644 index 0000000..2e184cb --- /dev/null +++ b/app/views/admin/configuracoes/index.html.erb @@ -0,0 +1,64 @@ +<%# app/views/configuracoes/index.html.erb %> +
+ +
+

ConfiguraƧƵes

+

Pilares de preço e parâmetros do sistema

+
+ + <%= render 'shared/flash' %> + + <%# Pilares de preƧo %> +
+

šŸ’° Pilares de PreƧo

+
+ <% @configuracoes.each do |cfg| %> +
+
+
<%= cfg.icone %>
+ <% if policy(cfg).edit? %> + <%= link_to edit_admin_configuracao_path(cfg), + class: 'opacity-0 group-hover:opacity-100 transition-opacity p-1.5 + text-gray-500 hover:text-white hover:bg-white/10 rounded-lg' do %> + + + + <% end %> + <% end %> +
+

<%= cfg.tipo_label %>

+

<%= moeda(cfg.valor) %>

+ <% if cfg.descricao.present? %> +

<%= cfg.descricao %>

+ <% end %> +
+ <% end %> +
+
+ + <%# InformaƧƵes do banco externo %> +
+

šŸ—„ļø Banco de Dados Externo

+
+
+

Tabela monitorada

+

db_reem_simplerout_2026

+
+
+

Account ID

+

95907 (Gade Hospitalar)

+
+
+

Atualização

+

A cada 1 hora

+
+
+

+ + + + Somente leitura — nunca alterar, deletar ou truncar esta tabela. +

+
+
diff --git a/app/views/admin/usuarios/_form.html.erb b/app/views/admin/usuarios/_form.html.erb new file mode 100644 index 0000000..de11cbd --- /dev/null +++ b/app/views/admin/usuarios/_form.html.erb @@ -0,0 +1,153 @@ +<%# app/views/usuarios/_form.html.erb %> +
+ +
+

+ <%= usuario.new_record? ? 'Novo UsuƔrio' : "Editar: #{usuario.nome}" %> +

+

+ <%= usuario.new_record? ? 'Preencha os dados para criar um novo acesso' : 'Atualize as informaƧƵes do usuƔrio' %> +

+
+ + <%= render 'shared/flash' %> + + <%= form_with(model: usuario, url: usuario.new_record? ? admin_usuarios_path : admin_usuario_path(usuario), + method: usuario.new_record? ? :post : :patch, + class: 'bg-[#1a1a1a] rounded-2xl border border-white/5 p-8 space-y-6') do |f| %> + + <% if usuario.errors.any? %> +
+

+ <%= pluralize(usuario.errors.count, 'erro', 'erros') %> encontrado<%= usuario.errors.count > 1 ? 's' : '' %>: +

+
    + <% usuario.errors.full_messages.each do |msg| %> +
  • <%= msg %>
  • + <% end %> +
+
+ <% end %> + +
+ <%# Nome %> +
+ <%= f.label :nome, 'Nome completo', class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.text_field :nome, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + placeholder-gray-600 focus:outline-none focus:border-[#f97316] focus:ring-1 + focus:ring-[#f97316] transition-colors', + placeholder: 'João da Silva' %> +
+ + <%# Perfil %> +
+ <%= f.label :role, 'Perfil de acesso', class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.select :role, + options_for_select(role_options_for_select, usuario.role), + {}, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + focus:outline-none focus:border-[#f97316] focus:ring-1 focus:ring-[#f97316] + transition-colors cursor-pointer' %> +
+ + <%# Ativo toggle %> +
+
+ <%= f.label :ativo, 'UsuƔrio ativo', class: 'block text-sm font-medium text-gray-300' %> +

UsuÔrios inativos não conseguem fazer login

+
+ +
+
+ + <%# E-mail e senha (não motorista) %> +
+
+

Credenciais de acesso

+
+
+ <%= f.label :email, 'E-mail', class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.email_field :email, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + placeholder-gray-600 focus:outline-none focus:border-[#f97316] focus:ring-1 + focus:ring-[#f97316] transition-colors', + placeholder: 'usuario@gade.com' %> +
+
+ <%= f.label :password, + usuario.new_record? ? 'Senha' : 'Nova senha (deixe em branco para manter)', + class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.password_field :password, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + placeholder-gray-600 focus:outline-none focus:border-[#f97316] focus:ring-1 + focus:ring-[#f97316] transition-colors', + placeholder: '••••••••' %> +
+
+ <%= f.label :password_confirmation, 'Confirmar senha', + class: 'block text-sm font-medium text-gray-300 mb-1.5' %> + <%= f.password_field :password_confirmation, + class: 'w-full px-4 py-3 bg-[#0a0a0a] border border-white/10 rounded-xl text-white + placeholder-gray-600 focus:outline-none focus:border-[#f97316] focus:ring-1 + focus:ring-[#f97316] transition-colors', + placeholder: '••••••••' %> +
+
+
+
+ + <%# PIN (motorista) %> + + + <%# BotƵes %> +
+ <%= link_to 'Cancelar', admin_usuarios_path, + class: 'px-6 py-3 text-gray-400 hover:text-white border border-white/10 + hover:border-white/20 rounded-xl transition-colors' %> + <%= f.submit usuario.new_record? ? 'Criar UsuƔrio' : 'Salvar AlteraƧƵes', + class: 'px-8 py-3 bg-[#f97316] hover:bg-orange-500 text-white font-semibold + rounded-xl transition-colors cursor-pointer min-h-[48px]' %> +
+ <% end %> +
+ + diff --git a/app/views/admin/usuarios/edit.html.erb b/app/views/admin/usuarios/edit.html.erb new file mode 100644 index 0000000..8f44bbe --- /dev/null +++ b/app/views/admin/usuarios/edit.html.erb @@ -0,0 +1,2 @@ +<%# app/views/usuarios/edit.html.erb %> +<%= render 'form', usuario: @usuario %> diff --git a/app/views/admin/usuarios/index.html.erb b/app/views/admin/usuarios/index.html.erb new file mode 100644 index 0000000..8d49f99 --- /dev/null +++ b/app/views/admin/usuarios/index.html.erb @@ -0,0 +1,120 @@ +<%# app/views/usuarios/index.html.erb %> +
+ + <%# Header %> +
+
+

UsuƔrios

+

Gerencie o acesso ao sistema

+
+ <% if policy(User).create? %> + <%= link_to new_admin_usuario_path, + class: 'flex items-center gap-2 px-5 py-3 bg-[#f97316] hover:bg-orange-500 + text-white font-semibold rounded-xl transition-colors min-h-[48px]' do %> + + + + Novo UsuƔrio + <% end %> + <% end %> +
+ + <%# Flash %> + <%= render 'shared/flash' %> + + <%# Tabela %> +
+ + + + + + + + + + + + <% @usuarios.each do |usuario| %> + + + + + + + + <% end %> + + <% if @usuarios.empty? %> + + + + <% end %> + +
NomeE-mail / PINPerfilStatusAƧƵes
+
+
+ <%= usuario.nome.to_s[0].upcase %> +
+ <%= usuario.nome %> +
+
+ <% if usuario.motorista? && usuario.pin_code.present? %> +
PIN: ••••
+ <% else %> +
<%= usuario.email %>
+ <% end %> +
+ <%= badge_role(usuario.role) %> + + <%= badge_status_usuario(usuario.ativo?) %> + +
+ <% if policy(usuario).edit? %> + <%= link_to edit_admin_usuario_path(usuario), + class: 'p-2 text-gray-400 hover:text-white hover:bg-white/10 rounded-lg transition-colors', + title: 'Editar' do %> + + + + <% end %> + <% end %> + + <% if policy(usuario).toggle_ativo? %> + <%= button_to toggle_ativo_usuario_path(usuario), method: :post, + class: "p-2 rounded-lg transition-colors #{usuario.ativo? ? 'text-green-400 hover:bg-green-900/30' : 'text-red-400 hover:bg-red-900/30'}", + title: usuario.ativo? ? 'Desativar' : 'Ativar', + data: { confirm: "#{usuario.ativo? ? 'Desativar' : 'Ativar'} #{usuario.nome}?" } do %> + + + + <% end %> + <% end %> + + <% if policy(usuario).destroy? %> + <%= button_to admin_usuario_path(usuario), method: :delete, + class: 'p-2 text-gray-600 hover:text-red-400 hover:bg-red-900/20 rounded-lg transition-colors', + title: 'Excluir', + data: { confirm: "Excluir #{usuario.nome} permanentemente?" } do %> + + + + <% end %> + <% end %> +
+
+
šŸ‘„
+

Nenhum usuƔrio encontrado.

+
+ + <% if @usuarios.respond_to?(:total_pages) && @usuarios.total_pages > 1 %> +
+ <%= paginate @usuarios %> +
+ <% end %> +
+
diff --git a/app/views/admin/usuarios/new.html.erb b/app/views/admin/usuarios/new.html.erb new file mode 100644 index 0000000..d0c9862 --- /dev/null +++ b/app/views/admin/usuarios/new.html.erb @@ -0,0 +1,2 @@ +<%# app/views/usuarios/new.html.erb %> +<%= render 'form', usuario: @usuario %> diff --git a/config/routes.rb b/config/routes.rb index ce70f77..cba2dc2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -44,9 +44,13 @@ Rails.application.routes.draw do # ConfiguraƧƵes (apenas admin/gerente) namespace :admin do - resources :usuarios, except: [:show] - resources :configuracoes, only: [:index, :update] - resources :auditoria_logs, only: [:index] + resources :usuarios, except: [:show] do + member { patch :toggle_ativo } + end + resources :configuracoes, only: [:index, :edit, :update] do + collection { post :toggle_tema } + end + resources :auditoria_logs, only: [:index] end # API interna — Dashboard mĆ©tricas diff --git a/db/migrate/20260101000010_add_devise_trackable_to_users.rb b/db/migrate/20260101000010_add_devise_trackable_to_users.rb new file mode 100644 index 0000000..bb8d135 --- /dev/null +++ b/db/migrate/20260101000010_add_devise_trackable_to_users.rb @@ -0,0 +1,20 @@ +# Migration corrigida da Fase 2: +# - Timestamp no padrĆ£o (roda DEPOIS da create_users) +# - Removidos pin_acesso e ativo (jĆ” existem como pin_code e ativo na create_users) +# - Mantidos apenas os campos Devise trackable + lockable +class AddDeviseTrackableToUsers < ActiveRecord::Migration[7.1] + def change + # Trackable + add_column :users, :sign_in_count, :integer, default: 0, null: false + add_column :users, :current_sign_in_at, :datetime + add_column :users, :last_sign_in_at, :datetime + add_column :users, :current_sign_in_ip, :string + add_column :users, :last_sign_in_ip, :string + + # Lockable + add_column :users, :failed_attempts, :integer, default: 0, null: false + add_column :users, :unlock_token, :string + add_column :users, :locked_at, :datetime + add_index :users, :unlock_token, unique: true + end +end diff --git a/db/seeds.rb b/db/seeds.rb index c7d8ab7..fed4106 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -45,3 +45,16 @@ puts "" puts "āœ… Seeds concluĆ­dos!" puts " Admin: admin@gade.com / Gade@2026!" puts " āš ļø ALTERE A SENHA DO ADMIN NO PRIMEIRO ACESSO!" + +# ── Motoristas de teste (Fase 2 — Victor) ──────────────────── +[ + { nome: 'JoĆ£o Silva', pin: '1234' }, + { nome: 'Maria Santos', pin: '5678' }, + { nome: 'Carlos Souza', pin: '9012' }, +].each do |m| + User.find_or_create_by!(nome: m[:nome], role: :motorista) do |u| + u.pin_code = m[:pin] + u.ativo = true + end + puts " āœ… Motorista: #{m[:nome]} / PIN: #{m[:pin]}" +end diff --git a/historico_commits.txt b/historico_commits.txt new file mode 100644 index 0000000..9142dfa --- /dev/null +++ b/historico_commits.txt @@ -0,0 +1,134 @@ +8b3d4bc Fases 7 e 8 — PDFs Prawn + QR + Painel Motorista + NotificaƧƵes + Gemfile | 6 +- + README.md | 92 +++++++++++++---- + app/controllers/consolidacoes_controller.rb | 46 ++++++++- + app/controllers/motorista/dashboard_controller.rb | 39 +++++++ + app/controllers/motorista/sessoes_controller.rb | 44 ++++++++ + app/mailers/application_mailer.rb | 5 + + app/mailers/consolidacao_mailer.rb | 14 +++ + app/models/user.rb | 5 + + app/services/notificacao_service.rb | 68 ++++++++++++ + app/services/pdf/base_pdf.rb | 68 ++++++++++++ + app/services/pdf/holerite_pdf.rb | 97 ++++++++++++++++++ + app/services/pdf/relatorio_motorista_pdf.rb | 77 ++++++++++++++ + .../consolidacao_mailer/pagamento_fechado.html.erb | 41 ++++++++ + app/views/consolidacoes/preview_holerite.html.erb | 63 ++++++++++++ + app/views/consolidacoes/show.html.erb | 114 +++++++++++++++++++++ + app/views/layouts/mailer.html.erb | 10 ++ + app/views/motorista/dashboard/index.html.erb | 73 +++++++++++++ + app/views/motorista/sessoes/new.html.erb | 75 ++++++++++++++ + config/initializers/smtp.rb | 17 +++ + config/routes.rb | 7 +- + .../20260101000009_add_login_token_to_users.rb | 6 ++ + 21 files changed, 943 insertions(+), 24 deletions(-) +90ed705 Fases 4, 5 e 6 — Job 1h + Auditoria + Consolidação + Wizard de validação + README.md | 240 ++++++++++----------- + app/controllers/api/v1/dashboard_controller.rb | 30 +++ + app/controllers/application_controller.rb | 26 ++- + app/controllers/concerns/auditavel.rb | 22 ++ + .../consolidacao_entregas_controller.rb | 168 +++++++++++++++ + app/controllers/consolidacoes_controller.rb | 131 +++++++++++ + app/helpers/application_helper.rb | 102 +++------ + app/javascript/controllers/validacao_controller.js | 145 +++++++++++++ + app/jobs/application_job.rb | 5 + + app/jobs/atualizar_historico_estimado_job.rb | 24 +++ + app/models/auditoria_log.rb | 31 +-- + app/models/configuracao.rb | 78 ++++--- + app/models/consolidacao.rb | 83 +++++-- + app/models/entrega.rb | 89 ++++++-- + app/models/user.rb | 76 ++++--- + app/policies/application_policy.rb | 41 +--- + app/policies/consolidacao_policy.rb | 15 ++ + app/policies/dashboard_policy.rb | 10 + + app/views/consolidacao_entregas/revisar.html.erb | 74 +++++++ + app/views/consolidacao_entregas/validar.html.erb | 166 ++++++++++++++ + app/views/consolidacoes/index.html.erb | 65 ++++++ + app/views/consolidacoes/new.html.erb | 89 ++++++++ + app/views/consolidacoes/wizard.html.erb | 91 ++++++++ + app/views/layouts/application.html.erb | 216 ++++++------------- + config/routes.rb | 82 ++++--- + config/schedule.rb | 12 ++ + ...0260101000008_add_route_ids_to_consolidacoes.rb | 6 + + db/seeds.rb | 101 +++------ + lib/tasks/historico.rake | 13 ++ + 29 files changed, 1616 insertions(+), 615 deletions(-) +b77fc01 Atualização README - Fase 2 e 3 + Projeto-Reem-Custo | 1 + + README.md | 189 ++++++++++++++++++++++++++++++++++------------------- + 2 files changed, 124 insertions(+), 66 deletions(-) +bd60e4c Atualizou o MD + README.md | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) +4724847 implantação da fase 2 e 3 + README_FASE2_3.md | 163 +++++ + app/controllers/application_controller.rb | 26 +- + app/controllers/configuracoes_controller.rb | 44 ++ + app/controllers/dashboard_controller.rb | 77 +++ + app/controllers/motorista_controller.rb | 42 ++ + app/controllers/users/sessions_controller.rb | 56 ++ + app/controllers/usuarios_controller.rb | 88 +++ + app/helpers/application_helper.rb | 102 ++- + app/models/auditoria_log.rb | 31 +- + app/models/configuracao.rb | 78 +-- + app/models/consolidacao.rb | 83 +-- + app/models/entrega.rb | 89 +-- + app/models/user.rb | 76 +-- + app/policies/application_policy.rb | 41 +- + app/policies/configuracao_policy.rb | 20 + + app/policies/user_policy.rb | 46 ++ + app/views/configuracoes/edit.html.erb | 58 ++ + app/views/configuracoes/index.html.erb | 64 ++ + app/views/dashboard/index.html.erb | 234 +++++++ + app/views/devise/sessions/new.html.erb | 231 +++++++ + app/views/layouts/_sidebar.html.erb | 64 ++ + app/views/layouts/application.html.erb | 216 ++++--- + app/views/motorista/index.html.erb | 96 +++ + app/views/shared/_flash.html.erb | 18 + + app/views/usuarios/_form.html.erb | 153 +++++ + app/views/usuarios/edit.html.erb | 2 + + app/views/usuarios/index.html.erb | 120 ++++ + app/views/usuarios/new.html.erb | 2 + + config/routes.rb | 76 ++- + db/migrate/20260610_add_fase2_fields_to_users.rb | 25 + + db/seeds.rb | 101 ++- + prompt_sistema_logistica_final.html | 771 +++++++++++++++++++++++ + setup_fase2_3.sh | 54 ++ + 33 files changed, 2916 insertions(+), 431 deletions(-) +d37237e Alteração de alguns arquivos para retirar do yaml o container Postgres pois ja tem um + .env.example | 24 +++--- + README.md | 210 +++++++++++++++++++++++++++++++++++++++-------------- + docker-compose.yml | 25 +------ + setup_git.sh | 13 ++-- + 4 files changed, 175 insertions(+), 97 deletions(-) +eb81286 Initial commit - Fase 1: Setup Rails + Docker + .env.example | 43 ++++++++ + .gitignore | 61 +++++++++++ + Dockerfile | 29 ++++++ + Gemfile | 55 ++++++++++ + README.md | 113 +++++++++++++++++++++ + app/controllers/application_controller.rb | 27 +++++ + app/helpers/application_helper.rb | 46 +++++++++ + app/models/auditoria_log.rb | 29 ++++++ + app/models/configuracao.rb | 55 ++++++++++ + app/models/consolidacao.rb | 75 ++++++++++++++ + app/models/consolidacao_entrega.rb | 32 ++++++ + app/models/consolidacao_motorista.rb | 29 ++++++ + app/models/entrega.rb | 88 ++++++++++++++++ + app/models/historico_estimado.rb | 32 ++++++ + app/models/user.rb | 69 +++++++++++++ + app/policies/application_policy.rb | 30 ++++++ + app/views/layouts/_navbar.html.erb | 92 +++++++++++++++++ + app/views/layouts/application.html.erb | 95 +++++++++++++++++ + config/routes.rb | 50 +++++++++ + db/migrate/20260101000001_create_users.rb | 27 +++++ + db/migrate/20260101000002_create_configuracoes.rb | 14 +++ + db/migrate/20260101000003_create_consolidacoes.rb | 23 +++++ + ...0260101000004_create_consolidacao_motoristas.rb | 17 ++++ + .../20260101000005_create_consolidacao_entregas.rb | 23 +++++ + .../20260101000006_create_historico_estimados.rb | 13 +++ + db/migrate/20260101000007_create_auditoria_logs.rb | 22 ++++ + db/seeds.rb | 47 +++++++++ + docker-compose.yml | 49 +++++++++ + setup_git.sh | 46 +++++++++ + tailwind.config.js | 59 +++++++++++ + 30 files changed, 1390 insertions(+) diff --git a/reem-notas.zip b/reem-notas.zip new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..8ef1a8be1198173dff3ffcd0047fd566781ba17b8ae8e4f8d126f5d67615fe5b GIT binary patch literal 110494 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%0D^>7&RC`u5CY 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�>1D<>_( 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 literal 0 HcmV?d00001