Sha256: 3d72e639f34c6c096bde2fceb39b9354c12341ac2d3ca0dbf3d085a94158beac
Contents?: true
Size: 1.11 KB
Versions: 3
Compression:
Stored size: 1.11 KB
Contents
module Piggybak class LineItem < ActiveRecord::Base belongs_to :order belongs_to :variant validates_presence_of :variant_id validates_presence_of :total validates_presence_of :quantity validates_numericality_of :quantity, :only_integer => true, :greater_than_or_equal_to => 0 after_create :decrease_inventory after_destroy :increase_inventory after_update :update_inventory def admin_label "#{self.quantity} x #{self.variant.description}" end def decrease_inventory if !self.variant.unlimited_inventory self.variant.update_inventory(-1 * self.quantity) end end def increase_inventory self.variant.update_inventory(self.quantity) end def update_inventory if self.variant_id != self.variant_id_was old_variant = Variant.find(self.variant_id_was) old_variant.update_inventory(self.quantity_was) self.variant.update_inventory(-1*self.quantity) else quantity_diff = self.quantity_was - self.quantity self.variant.update_inventory(quantity_diff) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
piggybak-0.4.3 | app/models/piggybak/line_item.rb |
piggybak-0.4.2 | app/models/piggybak/line_item.rb |
piggybak-0.4.1 | app/models/piggybak/line_item.rb |