Adição do botão de entrega manual

This commit is contained in:
2026-06-25 11:35:41 -03:00
parent 022aac2616
commit 0c5b5bcbe6
22 changed files with 615 additions and 67 deletions

View File

@@ -5,7 +5,8 @@ class ConsolidacaoMotorista < ApplicationRecord
self.table_name = 'consolidacao_motoristas'
belongs_to :consolidacao
belongs_to :pagador, class_name: 'User', foreign_key: :pago_por, optional: true
belongs_to :pagador, class_name: 'User', foreign_key: :pago_por, optional: true
belongs_to :arquivador, class_name: 'User', foreign_key: :arquivado_por, optional: true
has_many :consolidacao_entregas,
->(cm) { where(motorista_nome: cm.motorista_nome) },
foreign_key: :consolidacao_id,
@@ -20,6 +21,27 @@ class ConsolidacaoMotorista < ApplicationRecord
scope :pagos, -> { where.not(pago_em: nil) }
scope :pendentes, -> { where(pago_em: nil) }
# ── Arquivamento (reversível) ───────────────────────────────
# Um motorista arquivado sai dos totais/pagamento/gate da consolidação, mas
# os dados são mantidos e podem ser restaurados.
scope :ativos, -> { where(arquivado_em: nil) }
scope :arquivados, -> { where.not(arquivado_em: nil) }
def arquivado?
arquivado_em.present?
end
# update_columns: não dispara o before_save :recalcular_valor (que recalcula o
# valor do PRÓPRIO motorista). O total da CONSOLIDAÇÃO é recalculado pelo
# controller, que só soma os motoristas ativos.
def arquivar!(user)
update_columns(arquivado_em: Time.current, arquivado_por: user&.id, updated_at: Time.current)
end
def desarquivar!(_user)
update_columns(arquivado_em: nil, arquivado_por: nil, updated_at: Time.current)
end
def pago?
pago_em.present?
end