Atualização Read.me
This commit is contained in:
57
README.md
57
README.md
@@ -635,3 +635,60 @@ Aplicar com: `docker-compose exec app bundle exec rails db:migrate`
|
|||||||
### 📌 Padrão (novo)
|
### 📌 Padrão (novo)
|
||||||
- **PDFs com Prawn**: usar **sempre** a fonte TTF registrada no `BasePdf` (DejaVu, UTF-8). Nunca
|
- **PDFs com Prawn**: usar **sempre** a fonte TTF registrada no `BasePdf` (DejaVu, UTF-8). Nunca
|
||||||
contar com a fonte embutida — ela quebra em qualquer caractere fora do Windows-1252.
|
contar com a fonte embutida — ela quebra em qualquer caractere fora do Windows-1252.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🆕 Atualização 19/06/2026 — Apontamento manual / Nota avulsa
|
||||||
|
|
||||||
|
Permite incluir numa consolidação uma **entrega que chegou por fora** (ex.: nota que entrou
|
||||||
|
depois e não está no banco mensal das operações). O usuário digita o **número da nota (NF =
|
||||||
|
`reference_id`)**, o sistema busca os dados direto na `db_reem_simplerout_2026` (atualizada a cada
|
||||||
|
hora pela SimpleRoute) e adiciona a entrega ao fechamento do motorista.
|
||||||
|
|
||||||
|
> A tabela externa continua **read-only** — o apontamento só **lê** dela (`Entrega.por_nf`,
|
||||||
|
> sem filtro de período, restrito à conta Gade via `da_conta_gade`).
|
||||||
|
|
||||||
|
### 🆕 Funcionalidades
|
||||||
|
- **Apontamento dentro de uma consolidação existente** (wizard Passo 1): botão **"➕ Apontamento
|
||||||
|
manual"** → modal busca a NF → confere os dados (motorista/veículo/data) → escolhe **um ou
|
||||||
|
vários pilares** (Normal/Retirada/Bônus/Desconto) → adiciona.
|
||||||
|
- **"Nota avulsa"** (tela de Consolidações): botão **"➕ Nota avulsa"** → busca a NF → ao
|
||||||
|
prosseguir **cria já a consolidação** (nome `Avulsa nf<NF>`, período = data da entrega → fim do
|
||||||
|
mês, motorista vindo do `driver` da entrega) com o apontamento, e abre a tela da consolidação.
|
||||||
|
- **Múltiplas classificações** por apontamento: cria um pilar (`ConsolidacaoEntrega`) por tipo
|
||||||
|
escolhido, somando os valores (mesmo modelo multi-pilar das entregas normais).
|
||||||
|
- **Motorista automático**: vem do `driver` da entrega; se ainda não estiver na consolidação, é
|
||||||
|
incluído.
|
||||||
|
- **Gestão na tela da consolidação (show)**: seção **"➕ Apontamentos manuais"** lista NF,
|
||||||
|
motorista, pilares e valor, com botão de **remover** (a nota inteira). Na revisão (Passo 3) os
|
||||||
|
apontamentos aparecem com o selo **"➕ Apontamento"** e botão de remover (por pilar).
|
||||||
|
|
||||||
|
### ⚙️ Como funciona (técnico)
|
||||||
|
- Coluna **`manual` (boolean, default false)** em `consolidacao_entregas` distingue apontamento de
|
||||||
|
entrega elegível do período. `Consolidacao#classificadas_count` ignora os `manual: true` para
|
||||||
|
**não estourar a barra de progresso** nem o gate de finalização (`>= 100%`).
|
||||||
|
- Lógica centralizada em **`Consolidacao#adicionar_apontamento!(entrega, tipos, user)`** e
|
||||||
|
**`Consolidacao#recalcular_motorista!`** — reusadas pelos dois fluxos (wizard e avulsa). Preço por
|
||||||
|
pilar via `ConsolidacaoEntrega.valor_para(tipo)` (fonte única). Dados da entrega via
|
||||||
|
`Entrega#resumo_apontamento`.
|
||||||
|
- Rotas novas:
|
||||||
|
- `consolidacoes` (coleção): `GET buscar_nf` (JSON), `POST avulsa`.
|
||||||
|
- `consolidacao_entregas` (coleção): `GET buscar_nf`, `POST apontar`, `DELETE remover_apontamento`
|
||||||
|
(aceita `?id=` para um pilar ou `?tracking_id=&motorista=` para a nota toda).
|
||||||
|
- Stimulus: `apontamento_controller.js` (modal do wizard) e `nota_avulsa_controller.js` (modal da
|
||||||
|
index). ⚠️ Identificador do Stimulus segue o nome do arquivo em **dash-case**: `nota_avulsa_controller.js`
|
||||||
|
→ `data-controller="nota-avulsa"` / `data-action="nota-avulsa#..."` (e o elemento da ação precisa
|
||||||
|
estar **dentro** da `div` do controller).
|
||||||
|
|
||||||
|
### 🆕 Migration adicionada (rodar `db:migrate`)
|
||||||
|
```
|
||||||
|
20260619000001_add_manual_to_consolidacao_entregas.rb
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose exec app bundle exec rails db:migrate
|
||||||
|
```
|
||||||
|
|
||||||
|
### 🧪 Testes
|
||||||
|
- `spec/models/consolidacao_spec.rb`: `classificadas_count` ignora apontamentos manuais e
|
||||||
|
`adicionar_apontamento!` (multi-tipo, idempotente, inclui o motorista e soma o valor).
|
||||||
|
|||||||
Reference in New Issue
Block a user