docs: README — Editar Lançamento do SimpliRoute (08/07/2026)

Documenta a nova tela de correção de lançamentos (ADM) e a correção do
botão (movido do _sidebar morto para o _navbar real).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-08 09:52:25 -03:00
parent ea652c1d70
commit fd14c057b6

View File

@@ -1302,3 +1302,67 @@ docker compose up -d --build
</details>
---
<details>
<summary><strong>✏️ Atualização 08/07/2026 — Editar Lançamento do SimpliRoute (correção pelo ADM)</strong></summary>
Nova tela **só para ADM** que permite **corrigir um lançamento** de entrega direto na
**API do SimpliRoute** (ex.: uma entrega marcada como "completa" que na verdade foi
**óbito**). Até então a única forma era entrar manualmente no SimpliRoute. **Sem migration.**
### 🆕 Funcionalidades
- **Menu → Administração → "✏️ Editar Lançamento"** (visível só para `admin`).
- **Busca por NF** → o sistema localiza a entrega e mostra o estado atual.
- **Campos editáveis:** `status` (completa/falha/pendente/parcial/cancelada), **motivo**
(óbito, endereço não localizado, mudou-se, etc.), **comentário**, **observações** e,
no avançado, **data/hora + geolocalização** do checkout.
- **Auditoria** — toda alteração grava um `AuditoriaLog` (quem, quando, de/para).
- **Foto da fachada / assinatura** ficam para uma **fase 2** (exigem upload de imagem).
### ⚙️ Como funciona (técnico)
- A base de rastreio local (`db_reem_simplerout_2026`, model `Entrega`) é **read-only** e
sincroniza a partir do SimpliRoute. A correção **não** escreve nela — grava na **API**;
o painel/consolidações só refletem **na próxima sincronização** (a tela avisa isso).
- **Dois identificadores:** a visita tem `id` numérico (usado na URL de escrita) **e**
`tracking_id` (`SR...`, que é a PK do espelho). O espelho não guarda o id numérico, então
o serviço **resolve** listando as visitas da data (`planned_date`) e casando pelo
`tracking_id` (fallback: NF).
- **Motivo** = campo `checkout_observation`, que é o **UUID** de uma lista fixa de 14 motivos
(`GET /v1/routes/observations/`, todos `type=failed`). É esse UUID que popula a coluna
`observation` — **não** basta texto livre no comentário.
- A gravação usa **PATCH** (só os campos alterados), para **não** sobrescrever assinatura/geo
originais sem intenção. Token da API vem de **`SIMPLIROUTE_TOKEN`** (ENV, nunca no git).
### 🔧 Correção — botão estava no menu errado
- O botão foi adicionado, por engano, ao `app/views/layouts/_sidebar.html.erb`, que é um
**partial morto** (legado da fase 2/3, nunca renderizado). O menu **real** é o
**`_navbar.html.erb`** (renderizado pelo `application.html.erb`). O link foi movido para lá,
na seção Administração.
### 📂 Arquivos
```
config/initializers/simpli_route.rb # lê SIMPLIROUTE_TOKEN / BASE_URL — NOVO
app/services/simpli_route/client.rb # cliente Net::HTTP (observations, resolver_id, PATCH) — NOVO
app/controllers/admin/edicao_lancamentos_controller.rb # busca/atualiza + AuditoriaLog — NOVO
app/policies/edicao_lancamento_policy.rb # admin-only — NOVO
app/views/admin/edicao_lancamentos/show.html.erb # tela (busca NF + form) — NOVO
config/routes.rb # resource admin/edicao_lancamento
app/views/layouts/_navbar.html.erb # link "✏️ Editar Lançamento" (admin)
.env.example # SIMPLIROUTE_TOKEN + SIMPLIROUTE_BASE_URL
```
### ▶️ Deploy
```bash
# 1. No servidor, adicionar ao .env (pegue o token em SimpliRoute → Configurações → API):
# SIMPLIROUTE_TOKEN=...
# SIMPLIROUTE_BASE_URL=https://api.simpliroute.com
# 2. Rebuildar/reiniciar:
docker compose up -d --build
# 3. Logar como admin → Administração → "Editar Lançamento" → buscar uma NF e testar.
```
> **Sem migration.** ⚠️ Em produção, **reiniciar o Puma** após o deploy (cache de classes/views).
</details>