diff --git a/README.md b/README.md index 78def01..f09d793 100644 --- a/README.md +++ b/README.md @@ -751,7 +751,7 @@ docker-compose exec app bundle exec rails db:migrate --- -
+
🆕 Atualização 22/06/2026 — Pilar Extraordinária, Perfil Externo, Falhadas, Relatórios e Segurança QR ### 🆕 Funcionalidades @@ -784,11 +784,57 @@ docker-compose exec app bundle exec rails db:migrate ``` - `20260622000001_add_preco_extraordinaria_configuracao` — cria a config `preco_extraordinaria` (padrão `R$ 25,00`) em bancos já existentes (idempotente; não sobrescreve valor já definido). -### ⚠️ A confirmar -- Validar o valor real do status de falha gravado pelo SimpleRoute e ajustar `Entrega::STATUS_FALHA` se necessário (hoje `%w[failed]`): +### ✅ Confirmado (25/06/2026) +- O status de falha gravado pelo SimpleRoute é exatamente **`failed`** — `Entrega::STATUS_FALHA = %w[failed]` está correto e dispensa ajuste. ```bash docker-compose exec app bundle exec rails runner "puts Entrega.da_conta_gade.distinct.pluck(:status).inspect" ```
+--- + +
+🆕 Atualização 25/06/2026 — Consolidação inclui entregas de insucesso (motorista foi ao local) + +A consolidação só considerava entregas **concluídas com sucesso**. Como o motorista +**se desloca até o local mesmo nas entregas que falham (insucesso)**, essas precisam +**constar na consolidação** para serem classificadas e remuneradas conforme o caso. + +### 🆕 Funcionalidades +- **Novo conjunto elegível "atendidas"** — entregas em que o motorista foi ao local: + status **`completed` (sucesso) OU `failed` (insucesso)**, sempre com **checkout** registrado. + Substitui o antigo critério de só `.pagas` (`completed`) na consolidação. +- **Status visível em cada entrega** na tela de validação (Passo 2): selo **✓ Entregue** (verde) + ou **⚠️ Insucesso** (vermelho), com o card de insucesso destacado em **borda vermelha** — + facilita visualmente identificar o que classificar. +- **Insucesso entra para classificação manual**, não com valor automático: o admin escolhe o + pilar/valor (Normal, Retirada, Bônus, Desconto, Extraordinária) — o motorista foi ao local, + então a entrega aparece na lista, na contagem e na barra de progresso. + +### ⚙️ Como funciona (técnico) +- `Entrega::STATUS_ATENDIDO = (%w[completed] + STATUS_FALHA)` + scope **`atendidas`** + (`where(status: STATUS_ATENDIDO).com_checkout`). Novo helper de instância `Entrega#falhada?`. +- `Entrega.contar_pagas` → renomeado para **`Entrega.contar_atendidas`** (usa o scope `atendidas`). +- `Consolidacao#entregas_elegiveis_count` passa a contar **atendidas** — reflete no wizard, na + barra de progresso e no **gate de finalização** (`todas_entregas_classificadas?`): agora as + entregas de insucesso também precisam ser classificadas antes de finalizar. +- `ConsolidacaoEntregasController`: a lista do Passo 2 (`validar`) e o guard de elegibilidade + (`tracking_ids_elegiveis`) usam `Entrega.atendidas`. +- **Não afeta o lado financeiro:** dashboard, painel do motorista, job de 1h e `HistoricoEstimado` + continuam usando `.pagas` (só `completed`) — "atendidas" é exclusivo da elegibilidade da + consolidação. + +### 📂 Arquivos alterados +``` +app/models/entrega.rb # STATUS_ATENDIDO, scope :atendidas, contar_atendidas, falhada? +app/models/consolidacao.rb # entregas_elegiveis_count usa contar_atendidas +app/controllers/consolidacao_entregas_controller.rb # validar + tracking_ids_elegiveis usam :atendidas +app/views/consolidacao_entregas/validar.html.erb # selo de status por entrega + destaque do insucesso +``` + +> Sem migration — a mudança é apenas de leitura/regra de negócio sobre a tabela read-only +> `db_reem_simplerout_2026`. + +
+