Sha256: 38d007bc9f9c6450bebf7bb8901ef327ce5cc1ec6ed0ef211a24e4582b71cda6
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
module Spree class StockTransfer < Spree::Base has_many :stock_movements, :as => :originator belongs_to :source_location, :class_name => 'StockLocation' belongs_to :destination_location, :class_name => 'StockLocation' make_permalink field: :number, prefix: 'T' self.whitelisted_ransackable_attributes = %w[reference source_location_id destination_location_id closed_at created_at number] def to_param number end def source_movements stock_movements.joins(:stock_item) .where('spree_stock_items.stock_location_id' => source_location_id) end def destination_movements stock_movements.joins(:stock_item) .where('spree_stock_items.stock_location_id' => destination_location_id) end def transfer(source_location, destination_location, variants) transaction do variants.each_pair do |variant, quantity| source_location.unstock(variant, quantity, self) if source_location destination_location.restock(variant, quantity, self) self.source_location = source_location self.destination_location = destination_location self.save! end end end def receive(destination_location, variants) transfer(nil, destination_location, variants) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spree_core-2.4.10 | app/models/spree/stock_transfer.rb |
spree_core-2.3.13 | app/models/spree/stock_transfer.rb |