Module: StoreItemsHelper

Defined in:
app/helpers/store_items_helper.rb

Overview

== Schema Information

Table name: store_items

id :integer not null, primary key
item_id :integer
store_id :integer
qty_on_hand :integer default(0)
qty_committed :integer default(0)
unit_cogs :decimal(10, 4)
handling_charge :decimal(8, 2)
created_at :datetime
updated_at :datetime
is_discontinued :boolean default(FALSE)
requires_serial_number :boolean default(FALSE)
location :string(255)
last_item_ledger_entry_id :integer

Instance Method Summary collapse

Instance Method Details

#render_store_item_actions_button(store_item) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/helpers/store_items_helper.rb', line 37

def render_store_item_actions_button(store_item)
  options = []
  if can?(:edit, store_item)
    options << link_to('Edit', edit_store_item_path(store_item))
  end
  if can?(:do_location_transfer, ItemLedgerEntry) && !store_item.is_kit?
    options << link_to('Location Transfer', location_transfer_item_ledger_entries_path(store_id: store_item.store_id, store: store_item.store_id, from: store_item.location, item_id: store_item.item_id ))
  end
  if can?(:do_inventory_adjustment, ItemLedgerEntry) && !store_item.is_kit?
    options << link_to('Inventory Adjustment', inventory_adjustment_item_ledger_entries_path(store_item_id: store_item.id, return_path: item_path(store_item.item_id, tab: "store_items")))
  end
  if can?(:read, ItemLedgerEntrySearch)
    query_params = { store_id_in: [store_item.store_id], location_in: [store_item.location], item_id_in: [store_item.item_id] }
    options << link_to('Item Ledger Search', search_and_show_searches_path(search_mode: :full, type: 'ItemLedgerEntrySearch', query_params: query_params))
  end
  render_combo_drop_down options
end

#setup_store_item(store_item) ⇒ Object



21
22
23
24
25
26
27
# File 'app/helpers/store_items_helper.rb', line 21

def setup_store_item(store_item)
  store_item.tap do |si|
    si.handling_charge ||= 0
    si.unit_cogs ||= 0
    si.location ||= 'AVAILABLE'
  end
end

#storage_location_store_item_drop_down(store_item) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
# File 'app/helpers/store_items_helper.rb', line 55

def storage_location_store_item_drop_down(store_item)
  links = []
  store_item.storage_locations.each do |storage_location|
    links << link_to(storage_location.reference_number, storage_location_path(storage_location), class: 'dropdown-item')
  end
  if store_item.storage_locations.size > 1
    links << link_to("View All Locations", store_storage_locations_path(store_id: store_item.store_id, store_item_id: store_item.id), class: 'dropdown-item')
  end
  links << link_to('New Storage Location', new_store_storage_location_path(store_item.store, store_item_id: store_item.id))
  render_combo_drop_down links
end

#store_item_edit_panel(store_item, f) ⇒ Object



29
30
31
32
33
34
35
# File 'app/helpers/store_items_helper.rb', line 29

def store_item_edit_panel(store_item, f)
  {
    store_item: { partial: 'form1', locals: { f: f } },
    catalog_items: { partial: 'catalog_items_form', locals: { f: f } },
    packaging: { partial: 'packaging_form', locals: { f: f } }
  }
end