Implantação da função de controle de consolidaçoes pagas e pendentes

This commit is contained in:
2026-06-17 15:49:24 -03:00
parent 292ac31c66
commit e9def7e21a
17 changed files with 526 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ class ConsolidacaoMotorista < ApplicationRecord
self.table_name = 'consolidacao_motoristas'
belongs_to :consolidacao
belongs_to :pagador, class_name: 'User', foreign_key: :pago_por, optional: true
has_many :consolidacao_entregas,
->(cm) { where(motorista_nome: cm.motorista_nome) },
foreign_key: :consolidacao_id,
@@ -15,6 +16,22 @@ class ConsolidacaoMotorista < ApplicationRecord
before_save :recalcular_valor
# ── Pagamento ───────────────────────────────────────────────
scope :pagos, -> { where.not(pago_em: nil) }
scope :pendentes, -> { where(pago_em: nil) }
def pago?
pago_em.present?
end
def marcar_pago!(user, forma:)
update!(pago_em: Time.current, pago_por: user&.id, forma_pagamento: forma)
end
def cancelar_pagamento!(_user)
update!(pago_em: nil, pago_por: nil, forma_pagamento: nil)
end
def recalcular_valor
# Fonte única de verdade: o valor_aplicado capturado no momento da
# classificação (igual ao ConsolidacaoEntregasController#recalcular_motorista).