Implantação da função d adicionar entregas por fora da operação
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user