Files
sx-fc/app/controllers/inventory/inventory_controller.rb
2018-09-20 16:52:15 +06:30

62 lines
3.0 KiB
Ruby
Executable File

class Inventory::InventoryController < BaseInventoryController
load_and_authorize_resource
def index
least_stock = "SELECT (CASE WHEN stock_journals.remark != 'out of stock'
THEN (SELECT balance FROM stock_journals
WHERE item_code = inventory_definitions.item_code AND remark != 'out of stock'
ORDER BY created_at DESC LIMIT 1) ELSE 0 END)
FROM stock_journals
WHERE stock_journals.item_code = inventory_definitions.item_code
ORDER BY stock_journals.created_at DESC LIMIT 1"
@inventory_definitions = InventoryDefinition.select("inventory_definitions.*,
(CASE WHEN sj.credit IS NULL THEN 0 ELSE sj.credit END) as credit,
(CASE WHEN sj.debit IS NULL THEN 0 ELSE sj.debit END) as debit,
(#{least_stock}) as balance,"+
"acc.title as account_name,mi.name as item_name,
mii.item_instance_name as instance_name," +
"mc.name as menu_category_name,mc.id as menu_category_id "
)
.joins(" LEFT JOIN stock_journals sj ON sj.inventory_definition_id=inventory_definitions.id")
.joins("JOIN menu_item_instances mii ON mii.item_instance_code = inventory_definitions.item_code" +
" JOIN menu_items mi ON mi.id = mii.menu_item_id" +
" JOIN menu_categories mc ON mc.id = mi.menu_category_id ")
.joins(" JOIN accounts acc ON acc.id = mi.account_id")
.group("mi.menu_category_id,inventory_definitions.item_code")
.order("acc.title desc,mi.menu_category_id desc,balance ASC")
end
# def self.get_item_query(type)
# query = Sale.select("acc.title as account_name,mi.name as item_name,mii.item_instance_name as instance_name" +
# "mc.name as menu_category_name,mc.id as menu_category_id ")
# query = query.joins("JOIN menu_item_instances mii ON mii.item_instance_code = inventory_definitions.item_code" +
# " JOIN menu_items mi ON mi.id = mii.menu_item_id" +
# " JOIN menu_categories mc ON mc.id = mi.menu_category_id ")
# query = query.joins(" JOIN accounts acc ON acc.id = mi.account_id")
# query = query.group("acc.title,mi.account_id,mi.menu_category_id")
# .order("acc.title desc, mi.account_id desc, mi.menu_category_id desc")
# end
def show
inventory_definition_id = params[:inventory_definition_id]
inventory = InventoryDefinition.find(inventory_definition_id)
@stock_journals = StockJournal.where(item_code: inventory.item_code)
@stock_journals = Kaminari.paginate_array(@stock_journals).page(params[:page]).per(20)
respond_to do |format|
format.html
format.xls
end
end
#Shop Name in Navbor
helper_method :shop_detail
def shop_detail
@shop = Shop.first
end
end