diff --git a/app/models/sale.rb b/app/models/sale.rb index acf76f0d..e8a203fa 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1139,8 +1139,14 @@ def self.get_wastes_and_spoilages(from,to,status) else type = "and sales.sale_status = 'waste'" end - query = Sale.all.where("sales.receipt_date between ? and ? #{type}",from,to) - .group("sales.receipt_no") + query = Sale.select("sales.sale_id,sales.receipt_no,sales.created_at,sales.total_amount,sales.grand_total,sales.rounding_adjustment,sales.shift_sale_id,sale_items.product_name,sale_items.product_code,sale_items.item_instance_code,sale_items.qty,sale_items.price,sale_items.unit_price,menu_categories.name") + .joins("JOIN sale_items ON sales.sale_id = sale_items.sale_id" + + " JOIN menu_item_instances ON sale_items.item_instance_code = menu_item_instances.item_instance_code" + + " JOIN menu_items ON menu_item_instances.menu_item_id = menu_items.id" + + " JOIN menu_categories ON menu_items.menu_category_id = menu_categories.id") + .where("sales.receipt_date between ? and ? #{type}",from,to) + .group("sales.receipt_no,menu_categories.id,sale_items.item_instance_code") + .order("sales.sale_id,menu_categories.name,sale_items.product_name") end # def self.get_separate_tax(from,to,payment_method=nil) diff --git a/app/views/reports/waste_and_spoilage/index.html.erb b/app/views/reports/waste_and_spoilage/index.html.erb index f74f99e0..879a9bd5 100755 --- a/app/views/reports/waste_and_spoilage/index.html.erb +++ b/app/views/reports/waste_and_spoilage/index.html.erb @@ -1,12 +1,12 @@
@@ -20,52 +20,77 @@
-
Report For <%= @sale_type? @sale_type : 'Waste' %>
+
Report For <%= @sale_type? @sale_type : 'Waste' %>
+ <% receipt_arr = Array.new %> + <% menu_cat_arr = Array.new %> + <% footer_arr = Array.new %> + <% count = 0 %> + <% waste_and_spoil_item_count = 0%> + <% @sale_data.each do |sale| %> - <% waste_and_spoil_item_count = 0%> - - - - - - - - - - - - - - - - - <% sale.sale_items.each do |item| %> - <% if !item.item_instance_code.nil?%> - <% waste_and_spoil_item_count += item.qty.to_i%> - - - - - - - - <% end %> + <% if !receipt_arr.include?(sale.receipt_no) %> + + + + + + + + + + + + + + + + + + <% receipt_arr.push(sale.receipt_no) %> + <% menu_cat_arr.clear %> + <% count = 0 %> + <% end %> + + + <% if !sale.item_instance_code.nil?%> + <% waste_and_spoil_item_count += sale.qty.to_i %> + + <% if !menu_cat_arr.include?(sale.name) %> + + <% menu_cat_arr.push(sale.name) %> + <% else %> + + <% end %> + + + + + + <% end %> - - - - - - - + + <% count = count + 1 %> + <% if sale.sale_items.count == count %> + + + + + + + + <% footer_arr.push(sale.sale_id) %> + <% end %> + <% end %>
- Receipt No :<%= sale.receipt_no %> - Date : <%= sale.created_at.utc.getlocal.strftime("%e,%b %Y %I:%M %p") %>
Item NameItem CodeQtyPriceTotal Price
<%= item.product_name %><%= item.product_code %><%= item.qty %><%= item.price %><%= item.price %>
 
+ Receipt No :<%= sale.receipt_no %> + Date : <%= sale.created_at.utc.getlocal.strftime("%e,%b %Y %I:%M %p") %>
Menu CategoryItem NameItem CodeQtyPriceTotal Price
<%= sale.name %> <%= sale.product_name %><%= sale.product_code %><%= sale.qty.to_i %><%= sale.unit_price %><%= sale.price %>
Total Qty: - <%= waste_and_spoil_item_count %> - Grand Total: - - <%= sale.grand_total %> - -
Total Qty: + + <%= waste_and_spoil_item_count %> + <% waste_and_spoil_item_count = 0%> + Grand Total: + + <%= sale.grand_total %> + +