product sale query

This commit is contained in:
phyusin
2018-02-26 09:20:57 +06:30
parent 970a9bb430
commit f559aa0f14
5 changed files with 119 additions and 596 deletions

View File

@@ -861,45 +861,23 @@ def self.get_by_shift_items(shift_sale_range, shift, from, to, status)
end
#product sale report query
def self.get_menu_item_query()
query = MenuItem.select("acc.id as account_id, acc.title as account_name,
i.item_instance_code as item_code, " +
"i.qty as qty," +
"i.product_name as product_name,
def self.get_menu_item_query(order_by)
query = MenuItem.unscoped.select("acc.id as account_id,
acc.title as account_name,
mii.item_instance_code as item_code, " +
"(CASE WHEN si.qty > 0 THEN SUM(si.qty) ELSE 0 END) as total_item," +
"(CASE WHEN si.unit_price > 0 THEN si.unit_price ELSE mii.price END) as unit_price," +
"(CASE WHEN (si.qty * si.unit_price) > 0 THEN (si.qty * si.unit_price) ELSE 0 END) as grand_total," +
"mii.price as unit_price, menu_items.name as product_name,
mc.name as" +
" menu_category_name,mc.id as menu_category_id ")
query = query.joins(" LEFT JOIN menu_item_instances mii ON i.item_instance_code = mii.item_instance_code" +
" LEFT JOIN menu_items mi ON mi.id = mii.menu_item_id" +
" LEFT JOIN menu_categories mc ON mc.id = mi.menu_category_id" +
" LEFT JOIN accounts acc ON acc.id = mi.account_id")
query = query.group("acc.title,mi.account_id,mi.menu_category_id,mi.name,mii.price")
.order("acc.title desc, mi.account_id desc, mi.menu_category_id desc, mii.price asc")
end
def self.get_by_items(shift_sale_range, shift, from, to)
query = self.get_menu_item_query()
puts "query"
total_grand_total = 0
# if shift.present?
# query = query.where("sales.shift_sale_id IN (?)",shift.to_a)
# # total_grand_total = total_cash_amount.to_f + total_card_amount.to_f + total_credit_amount.to_f
# ### => get all sales range in shift_sales
# elsif shift_sale_range.present?
# query = query.where("sales.shift_sale_id IN (?)",shift_sale_range.to_a)
# # total_grand_total = total_cash_amount.to_f + total_card_amount.to_f + total_credit_amount.to_f
# else
# query = query.where("sales.receipt_date between ? and ?",from,to)
# # total_grand_total = total_cash_amount.to_f + total_card_amount.to_f + total_credit_amount.to_f
# end
return query, total_grand_total
" menu_category_name,mc.id as menu_category_id, si.remark as status_type, si.price as price ")
.joins(" LEFT JOIN menu_item_instances mii ON menu_items.id = mii.menu_item_id" +
" LEFT JOIN menu_categories mc ON mc.id = menu_items.menu_category_id" +
" LEFT JOIN accounts acc ON acc.id = menu_items.account_id" +
" LEFT JOIN sale_items si ON si.item_instance_code = mii.item_instance_code" +
" LEFT JOIN sales s ON s.sale_id = si.sale_id")
.group("mc.id, menu_items.name, si.qty, (CASE WHEN si.unit_price > 0 THEN si.unit_price ELSE mii.price END)")
.order("si.qty #{order_by}, menu_items.menu_category_id desc")
end
#product sale report query