Atualiza README: correções 16/06, pagamento por checkout, veículo, automação
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
BIN
Imagens para correção /Imagem colada (4).png
Normal file
BIN
Imagens para correção /Imagem colada (4).png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 161 KiB |
BIN
Imagens para implantação /Imagem colada (2).png
Normal file
BIN
Imagens para implantação /Imagem colada (2).png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
36
README.md
36
README.md
@@ -217,7 +217,7 @@ config/routes.rb # ATUALIZADO — rotas do wi
|
||||
🟧 Laranja = Entrega Normal · 🟫 Laranja escuro = Retirada · ⬜ Branco = Bônus · ⬛ Preto = Desconto
|
||||
|
||||
**Regras implementadas:**
|
||||
- Entregas elegíveis: `status='completed'` AND `checkin IS NOT NULL` (somente leitura da tabela existente)
|
||||
- Entregas elegíveis: `status='completed'` AND `checkout IS NOT NULL` (somente leitura da tabela existente)
|
||||
- Não permite finalizar consolidação com entregas não classificadas (botão desabilitado + validação server-side)
|
||||
- Consolidação finalizada não pode ser editada por operadores (Pundit)
|
||||
- Todas ações críticas registradas em `auditoria_logs`
|
||||
@@ -357,6 +357,31 @@ docker-compose exec app bundle exec rspec
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Correções + funcionalidades (16/06/2026)
|
||||
|
||||
### 🔴 Erros de runtime corrigidos (reportados em prints)
|
||||
- **Logout** dava `No route matches [GET] /auth/logout` — o link usava `method: :delete` (rails-ujs), ignorado pelo Turbo. Agora usa `data-turbo-method`.
|
||||
- **/admin/usuarios** e **/admin/configuracoes** estouravam `NoMethodError: admin_ou_gerente?` — helpers de papel (`admin?`, `admin_ou_gerente?`) movidos para a `ApplicationPolicy`.
|
||||
- **Listagem de usuários** chamava o helper inexistente `badge_role` — criado em `ApplicationHelper`.
|
||||
- **Nova consolidação** estourava `NoMethodError: new?` — `ApplicationPolicy` agora define `new? = create?` e `edit? = update?`.
|
||||
- **Login do motorista (PIN)** derrubava `/motorista` com `PG::UndefinedTable: relation "consolidacao_motorista" does not exist` — o inflector pt-BR resolvia o composto no singular. `self.table_name` fixado explicitamente em `Consolidacao`, `ConsolidacaoMotorista`, `ConsolidacaoEntrega` e `Configuracao`.
|
||||
|
||||
### 🆕 Funcionalidades
|
||||
- **Dashboard com filtro de faixa de datas** (Flatpickr, modo range) no lugar da navegação por mês; o controller passou a consultar por período e a respeitar `.da_conta_gade`.
|
||||
- **Regra de pagamento por checkout:** `Entrega.pagas` agora é `status='completed' AND checkout IS NOT NULL` (antes era `checkin`). Vale para dashboard, painel do motorista, job de 1h e elegibilidade das consolidações.
|
||||
- **Consolidação por veículo:** o filtro/identificação passou de rota (`route_id`, UUID) para **veículo** (`vehicle`). Migration troca `consolidacoes.route_ids` por `vehicle_ids`.
|
||||
|
||||
### ⚙️ Automação / diagnóstico
|
||||
- `docker-compose.yml`: o boot roda `rails db:prepare` antes do servidor — **não precisa mais rodar `db:migrate` na mão** após o `up`.
|
||||
- `rake reem:diagnostico`: checa a tabela externa por conta/período/status/checkout e o intervalo de datas disponível (útil para depurar dashboard vazio).
|
||||
|
||||
```bash
|
||||
docker-compose exec app bundle exec rake reem:diagnostico
|
||||
docker-compose exec app bundle exec rake reem:diagnostico INICIO=2026-02-01 FIM=2026-06-30
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ Banco existente — referência rápida
|
||||
|
||||
| Campo | Uso |
|
||||
@@ -365,12 +390,13 @@ docker-compose exec app bundle exec rspec
|
||||
| `reference_id` | Número da NF |
|
||||
| `planned_date` | Data da entrega (filtro principal) |
|
||||
| `driver` | Nome do motorista |
|
||||
| `status` | `'completed'` = entrega paga |
|
||||
| `checkin` | NULL = motorista não registrou chegada |
|
||||
| `route_id` | UUID da operação (UBS SUL, EMAD, etc.) |
|
||||
| `status` | `'completed'` = entrega concluída |
|
||||
| `checkout` | NULL = motorista não finalizou (define elegibilidade de pagamento) |
|
||||
| `vehicle` | Veículo da entrega (usado no filtro de consolidação) |
|
||||
| `route_id` | UUID da operação (não usado no app — substituído por `vehicle`) |
|
||||
| `contact_name` | Nome do local (UBS SACOMA, EMAD VELEIROS…) |
|
||||
|
||||
**Regra de pagamento:** `status = 'completed'` AND `checkin IS NOT NULL`
|
||||
**Regra de pagamento:** `status = 'completed'` AND `checkout IS NOT NULL`
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user