Implantação da função d adicionar entregas por fora da operação

This commit is contained in:
2026-06-19 14:35:18 -03:00
parent 81128e7a68
commit 79c0f646da
11 changed files with 361 additions and 3 deletions

View File

@@ -152,8 +152,12 @@ class Consolidacao < ApplicationRecord
# Entrega conta como classificada se tiver ≥1 pilar (distinct por tracking_id,
# já que agora pode haver vários pilares por entrega).
# Apontamentos manuais (manual: true) NÃO entram aqui: eles vivem fora do
# conjunto elegível do período, então contá-los inflaria o progresso para
# além de 100% (e quebraria o gate classificadas >= elegíveis).
def classificadas_count(motorista)
consolidacao_entregas.where(motorista_nome: motorista).distinct.count(:tracking_id)
consolidacao_entregas.where(motorista_nome: motorista, manual: false)
.distinct.count(:tracking_id)
end
private

View File

@@ -5,6 +5,10 @@ class ConsolidacaoEntrega < ApplicationRecord
belongs_to :consolidacao
# Apontamentos manuais — entregas incluídas por fora do período/operação
# (ex.: nota que chegou depois). Buscadas pela NF direto na SimpleRoute.
scope :apontamentos, -> { where(manual: true) }
enum tipo: {
entrega_normal: 0,
retirada: 1,

View File

@@ -39,6 +39,13 @@ class Entrega < ApplicationRecord
where(driver: nome)
}
# Busca pela NF (reference_id). A coluna é numérica, então comparamos como
# texto para aceitar a entrada do usuário de forma robusta. Usado no
# apontamento manual de entregas (NF que chegou fora do período).
scope :por_nf, ->(nf) {
where('reference_id::text = ?', nf.to_s.strip)
}
scope :da_veiculo, ->(vehicle) {
where(vehicle: vehicle)
}