Sha256: 28c2f647b9c473d12f8d38fa2bb908cfae7cc040adb942a18a1002e48bee7f61

Contents?: true

Size: 762 Bytes

Versions: 2

Compression:

Stored size: 762 Bytes

Contents

# Order Adjustment 是订单调整项。

class Unidom::Order::OrderAdjustment < ActiveRecord::Base

  self.table_name = 'unidom_order_adjustments'

  include Unidom::Common::Concerns::ModelExtension

  validates :amount, presence: true, numericality: { less_than: 1000000000, greater_than: -1000000000 }

  belongs_to :adjusted, polymorphic: true

  scope :adjusted_is, ->(adjusted) { where adjusted: adjusted }

  def self.adjust!(adjusted, amount: 0, due_to: 'FRGT')
    adjustment = self.adjusted_is(adjusted).adjustment_factor_coded_as(due_to).valid_at.alive.first
    if adjustment.present?
      adjustment.amount = amount
      adjustment.save!
    else
      create! adjusted: adjusted, amount: amount, adjustment_factor_code: due_to
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
unidom-order-1.0.1 app/models/unidom/order/order_adjustment.rb
unidom-order-1.0 app/models/unidom/order/order_adjustment.rb