Adição do botão de entrega manual
This commit is contained in:
66
README.md
66
README.md
@@ -794,7 +794,7 @@ docker-compose exec app bundle exec rails db:migrate
|
||||
|
||||
---
|
||||
|
||||
<details open>
|
||||
<details>
|
||||
<summary><strong>🆕 Atualização 25/06/2026 — Consolidação inclui entregas de insucesso (motorista foi ao local)</strong></summary>
|
||||
|
||||
A consolidação só considerava entregas **concluídas com sucesso**. Como o motorista
|
||||
@@ -838,3 +838,67 @@ app/views/consolidacao_entregas/validar.html.erb # selo de status por entrega
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<details open>
|
||||
<summary><strong>🆕 Atualização 25/06/2026 — Apontamento 100% manual + Arquivar motorista individualmente</strong></summary>
|
||||
|
||||
Dois recursos na consolidação:
|
||||
|
||||
### 1. Apontamento 100% manual (tela de Validar — Passo 2)
|
||||
Caso real: o motorista **A** foi até o local mas **não** entregou; no rastreio que alimenta o
|
||||
banco, a NF ficou registrada sob o motorista **B** (que de fato entregou). Logo, a busca por NF
|
||||
nunca encontra o A — mas o A também recebe, pois foi ao local. O apontamento manual antigo
|
||||
(busca a NF na base e puxa `entrega.driver`) não serve.
|
||||
- **Novo lançamento 100% manual**, sem consultar a base de rastreio, atribuível a **qualquer
|
||||
motorista** (seletor com os motoristas da consolidação, ou digita um novo), com **NF (texto
|
||||
livre)**, **observação/local** e **pilar(es)** (+ valor da Extraordinária).
|
||||
- Botão **"➕ Apontamento 100% manual"** na tela de Validar. Soma ao valor do motorista, mas
|
||||
**não** conta no gate `X/Y classificadas` (é `manual: true`, igual aos apontamentos por NF).
|
||||
- A NF digitada aparece na Revisão (Passo 3), na tela da consolidação e no **Relatório PDF** do
|
||||
motorista (fallback `nf_manual`/`obs_manual` quando não há `Entrega` para consultar).
|
||||
|
||||
### 2. Arquivar motorista individualmente (reversível)
|
||||
Numa consolidação em massa, dá para **arquivar** um motorista específico no Passo 1 (botão 🗄️
|
||||
por card) — ele **sai dos totais, do pagamento e do gate**, mas os dados ficam guardados. Seção
|
||||
**"🗄️ Motoristas arquivados"** no fim do wizard com **"♻️ Restaurar"**.
|
||||
- **Não** arquiva motorista **já pago** (estorne antes) — bloqueado com alerta.
|
||||
- Útil para finalizar a consolidação ignorando um motorista que não deveria estar nela / sem
|
||||
entregas, sem perder o registro.
|
||||
|
||||
### ⚙️ Como funciona (técnico)
|
||||
- **Migrations** (rodar `db:migrate`):
|
||||
- `20260625000001_add_arquivamento_to_consolidacao_motoristas` — `arquivado_em` / `arquivado_por`.
|
||||
- `20260625000002_add_manual_fields_to_consolidacao_entregas` — `nf_manual` / `obs_manual`.
|
||||
- `Consolidacao#adicionar_apontamento_manual!(motorista:, tipos:, user:, nf:, obs:, valor_extra:)`
|
||||
— gera `tracking_id` sintético (`"MAN-<uuid>"`) compartilhado pelos pilares (agrupa como UMA
|
||||
entrega); reusa `recalcular_motorista!`. Action `apontar_manual` + rota + Stimulus
|
||||
`apontamento_manual_controller.js`.
|
||||
- `ConsolidacaoMotorista`: scopes `ativos`/`arquivados`, `arquivar!`/`desarquivar!`, `arquivado?`.
|
||||
Todo o "conjunto vigente" passou a usar **`.ativos`** (totais, pagamento, gate, notificações,
|
||||
PDFs financeiros, painel do motorista e filtros de pagamento do dashboard) — o arquivado não
|
||||
entra em nenhum agregado. Actions `arquivar_motorista`/`desarquivar_motorista` (autorização
|
||||
`update?`; bloqueiam motorista já pago).
|
||||
|
||||
### 📂 Principais arquivos
|
||||
```
|
||||
db/migrate/20260625000001_add_arquivamento_to_consolidacao_motoristas.rb
|
||||
db/migrate/20260625000002_add_manual_fields_to_consolidacao_entregas.rb
|
||||
app/models/consolidacao.rb · consolidacao_motorista.rb
|
||||
app/controllers/consolidacoes_controller.rb · consolidacao_entregas_controller.rb
|
||||
app/controllers/dashboard_controller.rb · motorista/dashboard_controller.rb
|
||||
app/javascript/controllers/apontamento_manual_controller.js (novo)
|
||||
app/views/consolidacao_entregas/validar.html.erb · revisar.html.erb
|
||||
app/views/consolidacoes/wizard.html.erb · show.html.erb
|
||||
app/services/notificacao_service.rb · pdf/relatorio_motorista_pdf.rb · pdf/relatorio_financeiro_consolidacao_pdf.rb
|
||||
config/routes.rb
|
||||
spec/models/consolidacao_spec.rb · consolidacao_motorista_spec.rb
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose exec app bundle exec rails db:migrate
|
||||
docker-compose exec app bundle exec rspec
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user