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