Sha256: 8d2e32970c5fc24afffb662693ea9c9ac01ddd6d32b9e1509595d13ae661dc0f
Contents?: true
Size: 1.38 KB
Versions: 2
Compression:
Stored size: 1.38 KB
Contents
module Comee module Core class MasterPrice < Price belongs_to :supplier belongs_to :previous_price, class_name: "Comee::Core::MasterPrice", optional: true validates :purchase_price, :selling_price, presence: true validates :margin, presence: true, numericality: {greater_than_or_equal_to: 0, less_than_or_equal_to: 100} validates :product_id, uniqueness: {scope: %i[supplier_id previous_price_id]} validate :validate_primary_price scope :current_primary, -> { where(primary: true).current } scope :unapplied, -> { where(propagated_to_client: false).current_primary } def validate_primary_price return unless product && primary count = MasterPrice.where(product: product, primary: true, status: Price.statuses[:current]).count return unless count.positive? && primary && MasterPrice.statuses[status] == MasterPrice.statuses[:current] errors.add(:base, "There is already a primary price entry for item '#{product.code}'") end def self.ransackable_attributes(_auth_object = nil) %w[ valid_from valid_to purchase_price selling_price status product_id supplier_id previous_price_id ] end def self.ransackable_associations(_auth_object = nil) %w[product supplier] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
comee_core-0.1.34 | app/models/comee/core/master_price.rb |
comee_core-0.1.33 | app/models/comee/core/master_price.rb |