Atualização do Read.me do dia 26/06/2026
This commit is contained in:
92
README.md
92
README.md
@@ -904,7 +904,7 @@ docker-compose exec app bundle exec rspec
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<details open>
|
<details>
|
||||||
<summary><strong>🆕 Atualização 25/06/2026 — Fechar por veículo na tela de Validar</strong></summary>
|
<summary><strong>🆕 Atualização 25/06/2026 — Fechar por veículo na tela de Validar</strong></summary>
|
||||||
|
|
||||||
Um motorista pode usar **vários veículos** no período. A tela de Validar (Passo 2) mostrava tudo
|
Um motorista pode usar **vários veículos** no período. A tela de Validar (Passo 2) mostrava tudo
|
||||||
@@ -942,3 +942,93 @@ app/javascript/controllers/validacao_controller.js # value veiculo, chips, cla
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<details open>
|
||||||
|
<summary><strong>🆕 Atualização 26/06/2026 — Entrega de termo, caixa de ferramentas, gestão de motoristas e UX da Validação</strong></summary>
|
||||||
|
|
||||||
|
Pacote de implantação focado em **agilizar a precificação** e **dar feedback direto** ao usuário no
|
||||||
|
fluxo de consolidação. Resumo das frentes:
|
||||||
|
|
||||||
|
### 1. 📄 Entrega de termo (entrega sem NF nem código de rastreio)
|
||||||
|
Lançamento de **termos** entregues por um motorista — não têm nota fiscal nem `tracking_id` para
|
||||||
|
atrelar, só **motorista + quantidade** a um **preço fixo configurável**.
|
||||||
|
- Novo pilar `tipo: termo` (enum 5, cor azul) e novo preço **"Entrega de Termo"** editável em
|
||||||
|
**Admin → Configurações** (entra automático no card, via `CHAVES_MOEDA`).
|
||||||
|
- Lançado como **uma linha por lote** com a coluna nova **`quantidade`**; `valor_aplicado` guarda o
|
||||||
|
total do lote (`quantidade × preço`), então `recalcular_motorista!` e todas as somas existentes
|
||||||
|
seguem corretas. Modal com **stepper − N +** (sem as setinhas nativas do `input number`).
|
||||||
|
- Aparece na lista de **Apontamentos manuais** (badge "Entrega de Termo ×N"), nos PDFs (extrato,
|
||||||
|
relatório do motorista e financeiro) e no painel de Resumo — sempre contando por **`quantidade`**
|
||||||
|
(relatórios passaram de `count` para `sum(:quantidade)`).
|
||||||
|
|
||||||
|
### 2. 🧰 Caixa de ferramentas (toolbox) — botões unificados
|
||||||
|
- **Passo 2 (Validar):** os botões "Registrar entrega manualmente" e "Entrega de termo" viraram um
|
||||||
|
único **"➕ Adicionar lançamento ▾"** com menu suspenso. (O antigo "Apontamento 100% manual" foi
|
||||||
|
renomeado para **"Registrar entrega manualmente"** / modal "Registro manual de entrega".)
|
||||||
|
- **Passo 1 (Wizard):** o "Apontamento manual" virou **"➕ Adicionar / Ferramentas ▾"** com
|
||||||
|
**Apontamento manual** + **Adicionar motorista**.
|
||||||
|
- Reusa um controller Stimulus mínimo `ferramentas_controller.js` (só o dropdown); os modais e
|
||||||
|
controllers existentes não foram reescritos.
|
||||||
|
|
||||||
|
### 3. 👷 Gestão de motoristas na consolidação
|
||||||
|
- **Adicionar motorista** a uma consolidação já criada (ou **restaurar** se estava arquivado). O
|
||||||
|
campo puxa os **motoristas previstos no período** (atendidas, respeitando filtros de veículo/
|
||||||
|
operação) com os **veículos que cada um usou** — lista clicável + datalist.
|
||||||
|
- **Excluir motorista arquivado** (definitivo, **só admin/gerente**) — apaga os lançamentos dele
|
||||||
|
(ligados por `motorista_nome`, sem cascade) e recalcula o total. Bloqueia se já pago. Arquivar
|
||||||
|
continua sendo o caminho reversível.
|
||||||
|
- O **"← Voltar"** do wizard passou a ir para o **resumo da própria consolidação** (não mais a lista).
|
||||||
|
|
||||||
|
### 4. 📊 Resumo e barra de progresso com lançamentos manuais
|
||||||
|
- Painel **"📊 Resumo"** (Passo 2) ganhou linha **Termo** e linha **"Apontamentos manuais: N"**.
|
||||||
|
- **Barra de progresso** com **2 segmentos**: laranja→verde (elegíveis classificadas) + **azul**
|
||||||
|
(lançamentos manuais), com texto "· +N manuais". O gate de finalização **não mudou**
|
||||||
|
(`classificadas_count` segue `manual: false`) — é feedback visual e entra no valor.
|
||||||
|
- "Manuais" conta como **entregas**: cada termo vale sua `quantidade`; cada apontamento manual vale
|
||||||
|
1 por nota (`tracking_id`).
|
||||||
|
|
||||||
|
### 5. 🧊 UX da tela de Validar
|
||||||
|
- **Cabeçalho congelado** (no desktop): header, barra de progresso, filtro por veículo, ações em
|
||||||
|
massa e o botão de lançamento ficam fixos; **só a lista de NFs rola** (layout flex-column com a
|
||||||
|
coluna da lista `overflow-y-auto`). Evitou-se `sticky`/`z-index` para não prender os modais
|
||||||
|
(`fixed z-50`) atrás da sidebar (`z-40`).
|
||||||
|
- **Ações em massa simplificadas**: removidos o botão gigante **"Marcar todos como Normal"** e o
|
||||||
|
checkbox **"Modo remover"**. Os botões de pilar em **"Aplicar nos selecionados"** agora são
|
||||||
|
**toggle em massa** — aplicam o pilar nos selecionados e, se **todos** já o têm, removem de todos.
|
||||||
|
|
||||||
|
### ⚙️ Como funciona (técnico)
|
||||||
|
- **Migrations** (rodar `db:migrate`):
|
||||||
|
- `20260626000001_add_quantidade_to_consolidacao_entregas` — `quantidade` (default 1).
|
||||||
|
- `20260626000002_add_preco_termo_configuracao` — cria a config `preco_termo` (idempotente).
|
||||||
|
- `Consolidacao#adicionar_termos!(motorista:, quantidade:, user:)` — uma linha `TERMO-<uuid>`,
|
||||||
|
`manual: true`. `Configuracao.preco_termo` + `ConsolidacaoEntrega.valor_para('termo')`.
|
||||||
|
- `ConsolidacoesController#adicionar_motorista` / `#excluir_motorista` (member) +
|
||||||
|
`motoristas_previstos_no_periodo`. `ConsolidacaoEntregasController#apontar_termo`, `@manuais`,
|
||||||
|
`contar_manuais`, `por_tipo` agora `sum(:quantidade)`.
|
||||||
|
- Stimulus novos: `apontamento_termo_controller.js`, `ferramentas_controller.js`,
|
||||||
|
`adicionar_motorista_controller.js`. `validacao_controller.js`: barra com 2 segmentos, linhas
|
||||||
|
Termo/Manuais e **toggle em massa** (`pilarAtivo`); removidos `marcarTodos`/`modoRemover`.
|
||||||
|
|
||||||
|
### 📂 Principais arquivos
|
||||||
|
```
|
||||||
|
db/migrate/20260626000001_add_quantidade_to_consolidacao_entregas.rb
|
||||||
|
db/migrate/20260626000002_add_preco_termo_configuracao.rb
|
||||||
|
app/models/configuracao.rb · consolidacao.rb · consolidacao_entrega.rb
|
||||||
|
app/controllers/consolidacoes_controller.rb · consolidacao_entregas_controller.rb
|
||||||
|
app/javascript/controllers/apontamento_termo_controller.js (novo)
|
||||||
|
app/javascript/controllers/ferramentas_controller.js (novo)
|
||||||
|
app/javascript/controllers/adicionar_motorista_controller.js (novo)
|
||||||
|
app/javascript/controllers/validacao_controller.js
|
||||||
|
app/views/consolidacoes/wizard.html.erb · show.html.erb
|
||||||
|
app/views/consolidacao_entregas/validar.html.erb · revisar.html.erb
|
||||||
|
app/services/pdf/extrato_pdf.rb · relatorio_motorista_pdf.rb · relatorio_financeiro_consolidacao_pdf.rb
|
||||||
|
config/routes.rb · db/seeds.rb
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec app bundle exec rails db:migrate
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user