diff --git a/app/controllers/reports/order_reservation_controller.rb b/app/controllers/reports/order_reservation_controller.rb index bb351982..20eabb90 100644 --- a/app/controllers/reports/order_reservation_controller.rb +++ b/app/controllers/reports/order_reservation_controller.rb @@ -2,6 +2,7 @@ class Reports::OrderReservationController < BaseReportController # authorize_resource :class => false def index @providers = [["All",''], ["Direct Delivery","direct_delivery"],["Pick-Up","pick_up"],["food2u","food2u"], ["ygndoor2door","ygndoor2door"]] + @payment_types = [["All",''], ["COD","cash_on_delivery"],["DINGA","dinga"]] from, to = get_date_range_from_params @@ -19,7 +20,8 @@ class Reports::OrderReservationController < BaseReportController end provider = params[:provider] - @order_reservation_data = OrderReservation.get_order_reservation_by_shift(@shift_sale_range,@shift,from,to,provider) + payment_type = params[:payment_type] + @order_reservation_data = OrderReservation.get_order_reservation_by_shift(@shift_sale_range,@shift,from,to,provider,payment_type) @from = from @to = to # get printer info diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index ecad6da5..a1450444 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -365,7 +365,7 @@ class OrderReservation < ApplicationRecord end end - def self.get_order_reservation_by_shift(shift_sale_range,shift,from,to,provider) + def self.get_order_reservation_by_shift(shift_sale_range,shift,from,to,provider,payment_type) ## => left join -> show all sales although no orders if provider.blank? provider = '' @@ -374,21 +374,28 @@ class OrderReservation < ApplicationRecord provider = " and deliveries.provider = '#{provider}'" end end + if payment_type.blank? + payment_type = '' + else + if payment_type.present? + payment_type = " and order_reservations.payment_type = '#{payment_type}'" + end + end - query = OrderReservation.select("order_reservations.*, deliveries.provider, deliveries.delivery_fee, customers.name, customers.email") + query = OrderReservation.select("order_reservations.*, sales.receipt_date, deliveries.provider, deliveries.delivery_fee, customers.name, customers.email") .joins(" JOIN deliveries on deliveries.order_reservation_id = order_reservations.order_reservation_id") .joins(" JOIN customers on customers.customer_id = order_reservations.customer_id") .joins(" JOIN sales on sales.sale_id = order_reservations.sale_id") if shift.present? - query = query.where("sales.shift_sale_id in (?) #{provider} and sales.sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a) + query = query.where("sales.shift_sale_id in (?) #{provider} #{payment_type} and sales.sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a) .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .group("sales.sale_id") elsif shift_sale_range.present? - query = query.where("sales.sale_status='completed' #{provider} and sale_payments.payment_amount != 0 and sales.shift_sale_id in (?)",shift_sale_range.to_a) + query = query.where("sales.sale_status='completed' #{provider} #{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") .group("sales.sale_id") else - query = query.where("sales.sale_status='completed' and sales.receipt_date between ? and ? #{provider} and sale_payments.payment_amount != 0",from,to) + query = query.where("sales.sale_status='completed' and sales.receipt_date between ? and ? #{provider} #{payment_type} and sale_payments.payment_amount != 0",from,to) .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .group("sales.sale_id") end diff --git a/app/views/reports/order_reservation/_shift_sale_report_filter.html.erb b/app/views/reports/order_reservation/_shift_sale_report_filter.html.erb index a859d4c0..71f947e4 100755 --- a/app/views/reports/order_reservation/_shift_sale_report_filter.html.erb +++ b/app/views/reports/order_reservation/_shift_sale_report_filter.html.erb @@ -3,7 +3,7 @@ <% if period_type != false %>
- +
<% if defined? providers %> -
- - <%= select_tag "provider", options_for_select(@providers, :selected => params[:provider]), :class => "form-control" %> +
+ + <%= select_tag "provider", options_for_select(@providers, :selected => params[:provider]), :class => "form-control", :style => "height: 35px;" %> +
+ <% end %> + <% if defined? payment_types %> +
+ + <%= select_tag "payment_type", options_for_select(@payment_types, :selected => params[:payment_type]), :class => "form-control", :style => "height: 35px;" %>
<% end %>
- +
- +
- +
diff --git a/app/views/reports/order_reservation/index.html.erb b/app/views/reports/order_reservation/index.html.erb index e06d1dab..b59dc3db 100755 --- a/app/views/reports/order_reservation/index.html.erb +++ b/app/views/reports/order_reservation/index.html.erb @@ -12,7 +12,7 @@ <%= render :partial=>'shift_sale_report_filter', - :locals=>{ :period_type => true, :shift_name => true,:providers => true, :report_path =>reports_order_reservation_index_path} %> + :locals=>{ :period_type => true, :shift_name => true, :providers => true, :payment_types => true, :report_path =>reports_order_reservation_index_path} %>
@@ -41,9 +41,10 @@ <% end %> + <%= t("views.right_panel.detail.receipt_date") %> + <%= t :reference_number %> <%= t :customer %> - <%= t("views.right_panel.detail.type") %> - <%= t("views.right_panel.detail.requested_time") %> + <%= t("views.right_panel.detail.provider") %> <%= t :payment_method %> <%= t :payment %> <%= t("views.right_panel.detail.status")%> @@ -124,13 +125,20 @@ else provider = order_reservation.provider end + payment_type = "" + if order_reservation.payment_type == "cash_on_delivery" + payment_type = "COD" + elsif order_reservation.payment_type == "dinga" + payment_type = "DINGA" + end %> + <%= order_reservation.receipt_date.utc.getlocal.strftime("%Y-%m-%d") %> + <%= order_reservation.transaction_ref %> <%= order_reservation.name %> - <%= order_reservation.order_reservation_type %> - <%= order_reservation.requested_time.utc.getlocal.strftime("%Y-%m-%d %I:%M %p") %> + <%= provider%> - <%= order_reservation.payment_type%> + <%= payment_type%> <%= order_reservation.payment_status%> <%= number_with_precision(order_reservation.total_amount, precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(discount_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> @@ -146,7 +154,7 @@ end %> - + Total <%= number_with_precision(total_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(total_discount_amount , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> <%= number_with_precision(total_delivery_fee , precision:precision.to_i, delimiter:delimiter) rescue '0.0'%> diff --git a/app/views/reports/order_reservation/index.xls.erb b/app/views/reports/order_reservation/index.xls.erb index 00f787f1..d5617225 100755 --- a/app/views/reports/order_reservation/index.xls.erb +++ b/app/views/reports/order_reservation/index.xls.erb @@ -24,9 +24,10 @@ <% end %> + <%= t("views.right_panel.detail.receipt_date") %> + <%= t :reference_number %> <%= t :customer %> - <%= t("views.right_panel.detail.type") %> - <%= t("views.right_panel.detail.requested_time") %> + <%= t("views.right_panel.detail.provider") %> <%= t :payment_method %> <%= t :payment %> <%= t("views.right_panel.detail.status")%> @@ -98,13 +99,20 @@ else provider = order_reservation.provider end + payment_type = "" + if order_reservation.payment_type == "cash_on_delivery" + payment_type = "COD" + elsif order_reservation.payment_type == "dinga" + payment_type = "DINGA" + end %> + <%= order_reservation.receipt_date.utc.getlocal.strftime("%Y-%m-%d") %> + <%= order_reservation.transaction_ref %> <%= order_reservation.name %> - <%= order_reservation.order_reservation_type %> - <%= order_reservation.requested_time.utc.getlocal.strftime("%Y-%m-%d %I:%M %p") %> + <%= provider%> - <%= order_reservation.payment_type%> + <%= payment_type%> <%= order_reservation.payment_status%> <%= order_reservation.total_amount rescue '0.0'%> <%= discount_amount rescue '0.0'%> @@ -120,7 +128,7 @@ end %> - + Total <%= total_amount rescue '0.0'%> <%= total_discount_amount rescue '0.0'%> <%= total_delivery_fee rescue '0.0'%>