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:
64
README.md
64
README.md
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user