62 lines
3.0 KiB
Ruby
Executable File
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
|