update reports

This commit is contained in:
Aung Myo
2017-07-17 12:11:21 +06:30
parent 25ef380b4f
commit bd0b8681c9
3 changed files with 144 additions and 318 deletions

View File

@@ -67,225 +67,4 @@ class Reports::SaleitemController < BaseReportController
end end
end end
# def get_date_range_from_params
# period_type = params[:period_type]
# period = params[:period]
# from = params[:from]
# to = params[:to]
# branch = params[:branch]
# report_type = params[:report_type]
# shift_name = params[:shift_name]
# unless shift_name.nil?
# shift_arr = shift_name.split(' - ')
# shift_from = shift_arr[0]
# shift_to = shift_arr[1]
# end
# day_ref = Time.now
# if period_type.to_i == 1
# ### =>search by from and to
# unless shift_name.nil?
# if shift_name.to_s == '0'
# ### => all shift
# #f_date = DateTime.parse(from)
# #t_date = DateTime.parse(to)
# if params[:from] && params[:to]
# if params[:from] != "" && params[:to] !=""
# f_date = DateTime.strptime(from, "%m/%d/%Y")
# t_date = DateTime.strptime(to, "%m/%d/%Y")
# f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec)
# t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec)
# from = f_time.beginning_of_day.utc
# to = t_time.end_of_day.utc
# end
# else
# from = day_ref.beginning_of_day.utc
# to = day_ref.end_of_day.utc
# end
# else
# unless shift_from == '-'
# f_date = DateTime.parse(shift_from)
# from = f_date
# else
# from = ''
# end
# unless shift_to == '-'
# t_date = DateTime.parse(shift_to)
# to = t_date
# else
# to = ''
# end
# end
# else
# # f_date = DateTime.parse(from)
# # t_date = DateTime.parse(to)
# if params[:from] && params[:to]
# if params[:from] != "" && params[:to] !=""
# f_date = DateTime.strptime(from, "%m/%d/%Y")
# t_date = DateTime.strptime(to, "%m/%d/%Y")
# f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec)
# t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec)
# from = f_time.beginning_of_day.utc
# to = t_time.end_of_day.utc
# end
# else
# from = day_ref.beginning_of_day.utc
# to = day_ref.end_of_day.utc
# end
# end
# else
# ### => search by Today or yesterday
# unless shift_name.nil?
# if shift_name.to_s == '0'
# ### => all shift
# case period.to_i
# when PERIOD["today"]
# from = day_ref.beginning_of_day.utc
# to = day_ref.end_of_day.utc
# when PERIOD["yesterday"]
# from = (day_ref - 1.day).beginning_of_day.utc
# to = (day_ref - 1.day).end_of_day.utc
# when PERIOD["this_week"]
# from = Time.now.beginning_of_week.utc
# to = Time.now.utc
# when PERIOD["last_week"]
# from = (day_ref - 7.day).beginning_of_week.utc
# to = (day_ref - 7.day).end_of_week.utc
# when PERIOD["last_7"]
# from = (day_ref - 7.day).utc
# to = Time.now.utc
# when PERIOD["this_month"]
# from = Time.now.beginning_of_month.utc
# to = Time.now.utc
# when PERIOD["last_month"]
# from = (day_ref - 1.month).beginning_of_month.utc
# to = (day_ref - 1.month).end_of_month.utc
# when PERIOD["last_30"]
# from = (day_ref - 30.day).utc
# to = Time.now.utc
# when PERIOD["this_year"]
# from = Time.now.beginning_of_year.utc
# to = Time.now.utc
# when PERIOD["last_year"]
# from = (day_ref - 1.year).beginning_of_year.utc
# to = (day_ref - 1.year).end_of_year.utc
# end
# else
# unless shift_from == '-'
# f_date = DateTime.parse(shift_from)
# # f_date = DateTime.strptime(shift_from, "%m/%d/%Y")
# #f_time = Time.mktime(f_date.year,f_date.month,f_date.day,f_date.hour,f_date.min,f_date.sec)
# from = f_date
# else
# from = ''
# end
# unless shift_to == '-'
# t_date = DateTime.parse(shift_to)
# # t_date = DateTime.strptime(shift_to, "%m/%d/%Y")
# #t_time = Time.mktime(t_date.year,t_date.month,t_date.day,t_date.hour,t_date.min,t_date.sec)
# to = t_date
# else
# to = ''
# end
# end
# else
# if params[:report_type].to_i != 0
# r_type = params[:report_type].to_s
# if r_type == 'shift_item'
# case period.to_i
# when PERIOD["today"]
# from = day_ref.beginning_of_day.utc
# to = day_ref.end_of_day.utc
# when PERIOD["yesterday"]
# from = (day_ref - 1.day).beginning_of_day.utc
# to = (day_ref - 1.day).end_of_day.utc
# when PERIOD["this_week"]
# from = Time.now.beginning_of_week.utc
# to = Time.now.utc
# when PERIOD["last_week"]
# from = (day_ref - 7.day).beginning_of_week.utc
# to = (day_ref - 7.day).end_of_week.utc
# when PERIOD["last_7"]
# from = (day_ref - 7.day).utc
# to = Time.now.utc
# when PERIOD["this_month"]
# from = Time.now.beginning_of_month.utc
# to = Time.now.utc
# when PERIOD["last_month"]
# from = (day_ref - 1.month).beginning_of_month.utc
# to = (day_ref - 1.month).end_of_month.utc
# when PERIOD["last_30"]
# from = (day_ref - 30.day).utc
# to = Time.now.utc
# when PERIOD["this_year"]
# from = Time.now.beginning_of_year.utc
# to = Time.now.utc
# when PERIOD["last_year"]
# from = (day_ref - 1.year).beginning_of_year.utc
# to = (day_ref - 1.year).end_of_year.utc
# end
# end
# else
# ### => report not shift
# case period.to_i
# when PERIOD["today"]
# from = day_ref.beginning_of_day.utc
# to = day_ref.end_of_day.utc
# when PERIOD["yesterday"]
# from = (day_ref - 1.day).beginning_of_day.utc
# to = (day_ref - 1.day).end_of_day.utc
# when PERIOD["this_week"]
# from = Time.now.beginning_of_week.utc
# to = Time.now.utc
# when PERIOD["last_week"]
# from = (day_ref - 7.day).beginning_of_week.utc
# to = (day_ref - 7.day).end_of_week.utc
# when PERIOD["last_7"]
# from = (day_ref - 7.day).utc
# to = Time.now.utc
# when PERIOD["this_month"]
# from = Time.now.beginning_of_month.utc
# to = Time.now.utc
# when PERIOD["last_month"]
# from = (day_ref - 1.month).beginning_of_month.utc
# to = (day_ref - 1.month).end_of_month.utc
# when PERIOD["last_30"]
# from = (day_ref - 30.day).utc
# to = Time.now.utc
# when PERIOD["this_year"]
# from = Time.now.beginning_of_year.utc
# to = Time.now.utc
# when PERIOD["last_year"]
# from = (day_ref - 1.year).beginning_of_year.utc
# to = (day_ref - 1.year).end_of_year.utc
# end
# end
# end
# end
# return from, to,report_type
# end
end end

View File

@@ -602,14 +602,15 @@ def self.get_shift_sales_by_receipt_no(shift_sale_range,shift,from,to,payment_ty
payment_type = " and sale_payments.payment_method = '#{payment_type}'" payment_type = " and sale_payments.payment_method = '#{payment_type}'"
end end
end end
puts payment_type
query = Sale.all query = Sale.all
if shift.present? if shift.present?
query = query.where("sales.shift_sale_id in (?) #{payment_type} and sale_status= 'completed' and sales.total_amount != 0", shift.to_a) query = query.where("sales.shift_sale_id in (?) #{payment_type} and sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a)
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.group("sales.sale_id") .group("sales.sale_id")
else else
query = query .where("sale_status=? #{payment_type} and sales.shift_sale_id in (?)","completed",shift_sale_range.to_a) query = query .where("sale_status='completed' #{payment_type} and sale_payments.payment_amount != 0 and sales.shift_sale_id in (?)",shift_sale_range.to_a)
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.group("sales.sale_id") .group("sales.sale_id")
end end

View File

@@ -1,104 +1,150 @@
<!DOCTYPE html> <div class="container margin-top-20">
<html lang="en"> <div class="card row">
<head> <div class="table-responsive">
<meta charset="utf-8">
<meta http-equiv="Content-type" content="application/vnd.ms-excel; charset=UTF-8">
</head>
<body>
<div class="span12">
<% unless @sale_data.blank? %>
<table class="table table-striped" id="items_table" border="0">
<thead>
<% if !params[:from].blank?%> <table class="table table-striped" id="items_table" border="0">
<tr> <thead>
<th colspan="7">From Date : <%= params[:from] %> , To Date : <%= params[:to] %></th>
</tr>
<% end %>
<% if @shift_from %>
<tr>
<% if @shift_data.employee %>
<% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %>
<% end %>
<th colspan="7">Shift Name = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )</th>
</tr>
<% end %>
<tr>
<th>&nbsp;</th>
<th>Menu Category</th>
<th>Code</th>
<th>Product</th>
<th>Total Item</th>
<th>Unit Price</th>
<th>Revenue</th>
</tr>
</thead>
<tbody>
<% acc_arr = Array.new %> <% if !params[:from].blank?%>
<% cate_arr = Array.new %> <tr>
<th colspan="7">From Date : <%= params[:from] %> , To Date : <%= params[:to] %></th>
</tr>
<% end %>
<% if @shift_from %>
<tr>
<% if @shift_data.employee %>
<% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %>
<% end %>
<th colspan="7">Shift Name = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )</th>
</tr>
<% end %>
<tr>
<th>&nbsp;</th>
<th>Menu Category</th>
<th>Code</th>
<th>Product</th>
<th>Total Item</th>
<th>Unit Price</th>
<th>Revenue</th>
</tr>
</thead>
<tbody>
<% unless @sale_data.blank? %>
<% acc_arr = Array.new %>
<% cate_arr = Array.new %>
<% sub_total = 0.0 %> <% sub_total = 0.0 %>
<% count = 0%> <% count = 0%>
<% total_price = 0.0 %> <% total_price = 0.0 %>
<% cate_count = 0 %> <% cate_count = 0 %>
<% acc_count = 0%> <% acc_count = 0%>
<% grand_total = 0%> <% grand_total = 0%>
<% total_discount = 0.0 %> <% total_qty = 0%>
<% total_amount = 0 %>
<% discount = 0%>
<% @sale_data.order("total_item desc").each do |sale| %> <% @sale_data.each do |sale| %>
<% total_qty += sale.total_item %>
<% if !acc_arr.include?(sale.account_id) %>
<tr>
<td><b><%= sale.account_name %></b></td>
<td colspan="4">&nbsp;</td>
<td>Total Price By <%= sale.account_name %></td>
<td>
<% @totalByAccount.each do |account, total| %>
<% if sale.account_id == account %>
<b><%= total %></b>
<% grand_total += total %>
<% end %>
<% end %>
</td>
</tr>
<% acc_arr.push(sale.account_id) %>
<% end %>
<tr>
<td>&nbsp;</td>
<% if !cate_arr.include?(sale.menu_category_id) %>
<td><%= sale.menu_category_name %></td>
<% cate_arr.push(sale.menu_category_id) %>
<% else %>
<td>&nbsp;</td>
<% end %>
<td><%= sale.item_code rescue '-' %></td>
<td><%= sale.product_name rescue '-' %></td>
<td><%= sale.total_item rescue '-' %></td>
<td><%= sale.unit_price rescue '-' %></td>
<td><%= sale.grand_total rescue '-' %></td>
</tr>
<!-- sub total -->
<% @menu_cate_count.each do |key,value| %>
<% if sale.menu_category_id == key %>
<% count = count + 1 %>
<% sub_total += sale.grand_total %>
<% if count == value %>
<tr>
<td colspan="5">&nbsp;</td>
<td>Sub Total</td>
<td ><span class="underline"><%= sub_total %></span></td>
</tr>
<% sub_total = 0.0%>
<% count = 0%>
<% end %>
<% end %>
<% end %>
<!-- end sub total -->
<% end %>
<tr style="border-top:2px solid grey;">
<td colspan="3">&nbsp;</td>
<td>Total Item</td>
<td><span><%= total_qty%></span></td>
<td>Total Amount</td>
<td><span><%= grand_total%></span></td>
</tr>
<% end %>
<tr> <tr>
<td>&nbsp;</td> <td colspan="5">&nbsp;</td>
<% if !cate_arr.include?(sale.menu_category_id) %> <td>Cash Received</td>
<td><%= sale.menu_category_name %></td> <td><span><%= @cash_data - @change_amount %></span></td>
<% cate_arr.push(sale.menu_category_id) %> </tr>
<% else %> <tr>
<td>&nbsp;</td> <td colspan="5">&nbsp;</td>
<% end %> <td>Card Sales</td>
<td><%= sale.code rescue '-' %></td> <td><span><%= @card_data %></span></td>
<% if @item_table == 'sale' %> </tr>
<% if sale.item_remark == 'FOC' %> <tr>
<td><%= '[PROMO] '.to_s + sale.product_name.to_s rescue '-' %></td> <td colspan="5">&nbsp;</td>
<% elsif sale.item_remark == 'FOC ITEM' %> <td>Credit Sales</td>
<td><%= '[DIS:QTY] '.to_s + sale.product_name.to_s rescue '-' %></td> <td><span><%= @credit_data %></span></td>
<% elsif sale.item_remark == 'DISCOUNT' %> </tr>
<td><%= '[DIS:TP] '.to_s + sale.product_name.to_s rescue '-' %></td> <tr>
<% else %> <td colspan="5">&nbsp;</td>
<td><%= sale.product_name.to_s rescue '-' %></td> <td>FOC Sales</td>
<% end %> <td><span><%= @foc_data %></span></td>
<% if sale.item_remark == 'DISCOUNT' %> </tr>
<td> - </td> <tr>
<td> - </td> <td colspan="5">&nbsp;</td>
<td><%= sale.total_price.abs rescue '-' %></td> <td>Discount Amount</td>
<% total_price += sale.total_price %> <td><span><%= @discount_data %></span></td>
<% else %>
<td><%= sale.total_item.abs rescue '-' %></td>
<td><%= sale.unit_price rescue '-' %></td>
<td><%= sale.grand_total.abs rescue '-' %></td>
<% end %>
<% else %>
<td><%= sale.product_name.to_s rescue '-' %></td>
<td><%= sale.total_item.abs rescue '-' %></td>
<td><%= sale.unit_price rescue '-' %></td>
<td><%= sale.grand_total.abs rescue '-' %></td>
<% end %>
</tr> </tr>
<!-- sub total -->
<!-- end sub total -->
<% grand_total += sale.grand_total%>
<% end %>
<tr> <tr>
<td colspan="5">&nbsp;</td> <td colspan="5">&nbsp;</td>
<td>Grand Total</td> <td>Grand Total</td>
<td><span class="double_underline"><%= grand_total + total_discount %></span></td> <!-- <td><span class="double_underline"><%= grand_total.to_f - @discount_data.to_f%></span></td> -->
<td><span class="double_underline"><%= @grand_total - @change_amount%></span></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<% end %>
</div> </div>
</body> </div>
</html> </div>