Adição do botão de entrega manual
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user