Files
Reem-Notas/app/models/consolidacao.rb
2026-06-10 20:12:20 -03:00

35 lines
1.1 KiB
Ruby

# app/models/consolidacao.rb
class Consolidacao < ApplicationRecord
# Soft delete
acts_as_paranoid if respond_to?(:acts_as_paranoid)
enum status: { aberta: 0, em_revisao: 1, fechada: 2, aprovada: 3, cancelada: 4 }
belongs_to :criado_por, class_name: 'User', foreign_key: :user_id
has_many :consolidacao_motoristas, dependent: :destroy
has_many :consolidacao_entregas, through: :consolidacao_motoristas
has_many :motoristas, through: :consolidacao_motoristas, source: :user
validates :referencia_mes, presence: true
validates :status, presence: true
scope :do_mes, ->(data = Date.today) {
where(referencia_mes: data.beginning_of_month..data.end_of_month)
}
scope :abertas, -> { where(status: :aberta) }
scope :fechadas, -> { where(status: [:fechada, :aprovada]) }
def progresso_percentual
return 0 if consolidacao_motoristas.none?
finalizados = consolidacao_motoristas.where(finalizado: true).count
total = consolidacao_motoristas.count
((finalizados.to_f / total) * 100).round
end
def mes_label
referencia_mes&.strftime('%B/%Y')&.capitalize
end
end