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") .joins(" LEFT JOIN stock_journals sj ON sj.inventory_definition_id=inventory_definitions.id") .group("inventory_definitions.item_code") .order("balance ASC") 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