Sha256: 31b9de91da399eb82a8cb4e4d4fc20b71dd1c907830110c644cdd733df82225b

Contents?: true

Size: 875 Bytes

Versions: 10

Compression:

Stored size: 875 Bytes

Contents

module EnjuInventory
  module InventoryItem
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      def enju_inventory_item_model
        include InstanceMethods
        has_many :inventories, :dependent => :destroy
        has_many :inventory_files, :through => :inventories
        searchable do
          integer :inventory_file_ids, :multiple => true
        end

        def inventory_items(inventory_file, mode = 'not_on_shelf')
          item_ids = Item.pluck(:id)
          inventory_item_ids = inventory_file.items.pluck('items.id')
          case mode
          when 'not_on_shelf'
            Item.where(:id => (item_ids - inventory_item_ids))
          when 'not_in_catalog'
            Item.where(:id => (inventory_item_ids - item_ids))
          end
        rescue
          nil
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
enju_inventory-0.1.12 lib/enju_inventory/item.rb
enju_inventory-0.1.11 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre13 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre12 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre11 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre10 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre9 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre8 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre7 lib/enju_inventory/item.rb
enju_inventory-0.1.11.pre6 lib/enju_inventory/item.rb