From 3a85481dcdf136774b33604b08dc85b53ed04d77 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Thu, 26 Apr 2018 13:07:31 +0630 Subject: [PATCH 01/11] update dinga and paymal --- app/assets/javascripts/addorder.js | 19 +++++++++++++------ app/controllers/origami/dinga_controller.rb | 7 ++++--- app/controllers/origami/paymal_controller.rb | 6 +++--- .../reports/receipt_no_controller.rb | 2 +- app/models/sale_payment.rb | 11 ++++++----- app/views/origami/addorders/detail.html.erb | 12 +++++++----- app/views/origami/dashboard/index.html.erb | 5 ++++- app/views/origami/dinga/index.html.erb | 4 ++-- app/views/origami/paymal/index.html.erb | 6 ++---- 9 files changed, 42 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 1044bc6f..b45b6402 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -457,9 +457,10 @@ $(function() { var items = $('.selected-set'); if (items.length >= min_qty) { - + if ($('#server_mode').val() != "cloud") { item = get_set_item(items); customer_display_view(item,"set_add"); + } var option = [] attribute_arr = [] @@ -786,8 +787,10 @@ $(function() { $('.add_to_order').attr('data-options',JSON.stringify(option_arr)); $('.add_to_order').attr('data-opt',JSON.stringify(option_arr)); var item_data = $(this); - item = get_item(item_data,"add_to_order"); - customer_display_view(item,"add"); + if ($('#server_mode').val() != "cloud") { + item = get_item(item_data,"add_to_order"); + customer_display_view(item,"add"); + } show_item_detail(item_data,"add_to_order"); calculate_sub_total(); @@ -796,8 +799,10 @@ $(function() { // click plus icon for add $(document).on('click', '.add_icon', function(event){ var item_data = $(this); - item = get_item(item_data,"add_icon"); - customer_display_view(item,"add"); + if ($('#server_mode').val() != "cloud") { + item = get_item(item_data,"add_icon"); + customer_display_view(item,"add"); + } show_item_detail(item_data,"add_icon"); calculate_sub_total(); }); //End Add Icon Click @@ -922,7 +927,9 @@ console.log(d_option) window.location.href = "/origami/room/" + table_id } } - customer_display_view(null,"reload"); + if ($('#server_mode').val() != "cloud") { + customer_display_view(null,"reload"); + } } }); // }else{ diff --git a/app/controllers/origami/dinga_controller.rb b/app/controllers/origami/dinga_controller.rb index 586403f9..87caddfa 100644 --- a/app/controllers/origami/dinga_controller.rb +++ b/app/controllers/origami/dinga_controller.rb @@ -86,11 +86,12 @@ def create # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new - status, @sale = sale_payment.process_payment(saleObj, @user, cash, "dinga",account_no) - if status == true + status, @sale,@membership_data = sale_payment.process_payment(saleObj, @user, cash, "dinga",account_no) + + if status == true && @membership_data["status"] == true @out = true, "Success!" else - @out =false, "Please try again payment!" + @out =false, @membership_data["message"] end end end diff --git a/app/controllers/origami/paymal_controller.rb b/app/controllers/origami/paymal_controller.rb index 1321cf87..e9d3cb6c 100644 --- a/app/controllers/origami/paymal_controller.rb +++ b/app/controllers/origami/paymal_controller.rb @@ -88,11 +88,11 @@ def create # saleObj = Sale.find(sale_id) sale_payment = SalePayment.new - status, @sale = sale_payment.process_payment(saleObj, @user, cash, "paymal",account_no) - if status == true + status, @sale,@membership_data = sale_payment.process_payment(saleObj, @user, cash, "paymal",account_no) + if status == true && @membership_data["status"] == true @out = true, "Success!" else - @out =false, "Please try again payment!" + @out =false, @membership_data["message"] end end end diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index cff7887c..a86fb9b2 100755 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -20,7 +20,7 @@ authorize_resource :class => false payment_type = params[:payment_type] @sale_data = Sale.get_shift_sales_by_receipt_no(@shift_sale_range,@shift,from,to,payment_type) @sale_taxes = Sale.get_separate_tax(@shift_sale_range,@shift,from,to,payment_type) - @tax_profiles = TaxProfile.order('order_by asc') + @tax_profiles = TaxProfile.order('order_by asc').limit(2) @from = from @to = to # get printer info diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 3dba0a9b..5f372581 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -23,6 +23,7 @@ class SalePayment < ApplicationRecord if (amount_due >= 0) payment_status = false + membership_data = nil #route to payment type case payment_method when "cash" @@ -52,11 +53,11 @@ class SalePayment < ApplicationRecord when "foc" payment_status = foc_payment when "paymal" - payment_status = paymal_payment + payment_status,membership_data = paymal_payment when "JunctionPay" payment_status = junction_pay_payment when "dinga" - payment_status = dinga_payment + payment_status,membership_data = dinga_payment else puts "it was something else" end @@ -73,7 +74,7 @@ class SalePayment < ApplicationRecord end end - return true, self.save + return true, self.save,membership_data else #record an payment in sale-audit # remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]" @@ -430,7 +431,7 @@ class SalePayment < ApplicationRecord sale_update_payment_status(0) end - return payment_status + return payment_status,membership_data end def junction_pay_payment @@ -480,7 +481,7 @@ class SalePayment < ApplicationRecord sale_update_payment_status(0) end - return payment_status + return payment_status,membership_data end diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index 235e958a..4b9a94c2 100755 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -490,11 +490,13 @@ <% end %> - + " id="server_mode"> + + diff --git a/app/views/reports/order_reservation/index.html.erb b/app/views/reports/order_reservation/index.html.erb new file mode 100755 index 00000000..567b056b --- /dev/null +++ b/app/views/reports/order_reservation/index.html.erb @@ -0,0 +1,248 @@ + +
+
+ + + <%= render :partial=>'shift_sale_report_filter', + :locals=>{ :period_type => true, :shift_name => true,:payments => true, :report_path =>reports_receipt_no_index_path} %> +
+ + + + + + + + +
+
+ + + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + <% @tax_profiles.each do |tax| %> + + <% end %> + + + + + + + + <% if @print_settings.precision.to_i > 0 + precision = @print_settings.precision + else + precision = 0 + end + #check delimiter + if @print_settings.delimiter + delimiter = "," + else + delimiter = "" + end + + puts precision + puts "predelidm" + puts delimiter %> + + <% grand_total = 0 %> + <% old_grand_total = 0 %> + <% total_tax = 0 %> + <% guest_count = 0 %> + <% total_sum = 0 %> + <% discount_amt = 0 %> + <% other_amt = 0 %> + <% total_nett = 0 %> + <% rounding_adj = 0%> <% gov_tax = 0 %> <% service_charge = 0 %> + <%if @sale_data %> + <% @sale_data.each do |result| %> + + <% grand_total = grand_total.to_f + result.grand_total.to_f %> + <% old_grand_total = old_grand_total.to_f + result.old_grand_total.to_f %> + <% total_tax += result.total_tax.to_f %> + <% total_sum += result.total_amount.to_f %> + <% discount_amt += result.total_discount.to_f %> + <% rounding_adj += result.rounding_adjustment.to_f %> + + + + + + + + <%if result.customer.customer_type == "Takeaway"%> + + <%end%> + <% result.sale_taxes.each do |tax| %> + + <%end%> + + + + + + + <% end %> + + + + + <% @sale_taxes.each do |tax| %> + + <% end %> + + + + + + + + + + <% @tax_profiles.each do |tax| %> + + <% end %> + + + + + <%end%> + +
<%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to.utc.getlocal.strftime("%Y-%b-%d") rescue '-'%>
<%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
<%= t("views.right_panel.detail.receipt_no") %><%= t :cashier %> <%= t("views.right_panel.detail.name") %><%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.amount") %><%= t("views.right_panel.detail.discount") %> <%= t("views.right_panel.detail.amount") %> <%= tax.name %><%= t("views.right_panel.detail.grand_total") %><%= t("views.right_panel.detail.rnd_adj_sh") %><%= t("views.right_panel.detail.grand_total") %> +
+ <%= t("views.right_panel.detail.rnd_adj_sh") %> +
<%= result.receipt_no rescue '-' %> <%= result.cashier_name rescue '-' %><%= number_with_precision(result.total_amount, precision: precision.to_i ,delimiter: delimiter) %><%= number_with_precision(result.total_discount, precision: precision.to_i ,delimiter: delimiter) %><%= number_with_precision(0, precision: precision.to_i ,delimiter: delimiter) %><%= number_with_precision(tax.tax_payable_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= number_with_precision(result.grand_total, precision: precision.to_i ,delimiter: delimiter) %><%= result.rounding_adjustment.to_f rescue '-' %><%= number_with_precision(result.grand_total_after_rounding(), precision: precision.to_i ,delimiter: delimiter) rescue '-' %>
 <%= number_with_precision(total_sum, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= number_with_precision(discount_amt, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= number_with_precision(tax.st_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= number_with_precision(grand_total.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= rounding_adj.to_f rescue '-' %><%= number_with_precision(grand_total.to_f.round + rounding_adj, precision: precision.to_i ,delimiter: delimiter) %>
 <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.amount") %><%= t("views.right_panel.detail.discount") %> <%= t("views.right_panel.detail.amount") %><%= tax.name %><%= t("views.right_panel.detail.grand_total") %><%= t("views.right_panel.detail.rnd_adj_sh") %><%= t("views.right_panel.detail.grand_total") %> +
+ <%= t("views.right_panel.detail.rnd_adj_sh") %> +
+
+
+
+
+ + \ No newline at end of file diff --git a/app/views/reports/order_reservation/index.xls.erb b/app/views/reports/order_reservation/index.xls.erb new file mode 100755 index 00000000..c8521b0d --- /dev/null +++ b/app/views/reports/order_reservation/index.xls.erb @@ -0,0 +1,106 @@ + +
+
+
+
+ + + + + + <% if @shift_from %> + + <% if @shift_data.employee %> + <% cashier_name = !@shift_data.nil? ? @shift_data.employee.name : '-' %> + <% end %> + + + <% end %> + + + + + + + <% @tax_profiles.each do |tax| %> + + <% end %> + + + + + + + + <% grand_total = 0 %> + <% old_grand_total = 0 %> + <% total_tax = 0 %> + <% guest_count = 0 %> + <% total_sum = 0 %> + <% discount_amt = 0 %> + <% other_amt = 0 %> + <% total_nett = 0 %> + <% rounding_adj = 0%> <% gov_tax = 0 %> <% service_charge = 0 %> + <%if @sale_data %> + <% @sale_data.each do |result| %> + + <% grand_total = grand_total.to_f + result.grand_total.to_f %> + <% old_grand_total = old_grand_total.to_f + result.old_grand_total.to_f %> + <% total_tax += result.total_tax.to_f %> + <% total_sum += result.total_amount.to_f %> + <% discount_amt += result.total_discount.to_f %> + <% rounding_adj += result.rounding_adjustment.to_f %> + + + + + + + + <%if result.customer.customer_type == "Takeaway"%> + + <%end%> + <% result.sale_taxes.each do |tax| %> + + <%end%> + + + + + + + <% end %> + + + + + <% @sale_taxes.each do |tax| %> + + <% end %> + + + + + + + + + + <% @tax_profiles.each do |tax| %> + + <% end %> + + + + + <%end%> + +
<%= t("views.right_panel.detail.from_date") %> : <%= @from.utc.getlocal.strftime("%Y-%b-%d") rescue '-' %> - <%= t("views.right_panel.detail.to_date") %> : <%= @to.utc.getlocal.strftime("%Y-%b-%d") rescue '-'%>
<%= t("views.right_panel.detail.shift_name") %> = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> )
<%= t("views.right_panel.detail.receipt_no") %><%= t :cashier %> <%= t("views.right_panel.detail.name") %><%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.amount") %><%= t("views.right_panel.detail.discount") %> <%= t("views.right_panel.detail.amount") %> <%= tax.name %><%= t("views.right_panel.detail.grand_total") %><%= t("views.right_panel.detail.rnd_adj_sh") %><%= t("views.right_panel.detail.grand_total") %> +
+ <%= t("views.right_panel.detail.rnd_adj_sh") %> +
<%= result.receipt_no rescue '-' %> <%= result.cashier_name rescue '-' %><%= result.total_amount rescue '-' %><%= result.total_discount rescue '-' %>0.0<%= tax.tax_payable_amount rescue '-' %><%= result.grand_total %><%= result.rounding_adjustment.to_f rescue '-' %><%= result.grand_total_after_rounding() rescue '-'%>
 <%= total_sum rescue '-'%><%= discount_amt rescue '-'%><%= tax.st_amount.round(2) %><%= grand_total.to_f.round(2) rescue '-'%><%= rounding_adj rescue '-'%><%= grand_total.to_f.round + rounding_adj %>
 <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.amount") %><%= t("views.right_panel.detail.discount") %> <%= t("views.right_panel.detail.amount") %><%= tax.name %><%= t("views.right_panel.detail.grand_total") %><%= t("views.right_panel.detail.rnd_adj_sh") %><%= t("views.right_panel.detail.grand_total") %> +
+ <%= t("views.right_panel.detail.rnd_adj_sh") %> +
+
+
+
+
\ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 30b78fd9..760ee999 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -436,6 +436,7 @@ scope "(:locale)", locale: /en|mm/ do resources :stock_check, :only => [:index, :show] resources :payment_method resources :product_sale, :only => [:index, :show] + resources :order_reservation, :only => [:index, :show] get "saleitem/get_shift_by_date", to: "saleitem#show", as: "get_shift_by_sale_item" get "receipt_no/get_shift_by_date", to: "receipt_no#get_shift_by_date", as: "get_shift_by_date" From 7c6d842a3103f0661727ec1a5fa61f860947179f Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 2 May 2018 11:59:35 +0630 Subject: [PATCH 10/11] change UI and add expected waiting time --- .../javascripts/channels/order_reservation.js | 13 ++- app/assets/javascripts/order_reservation.js | 86 +++++++++++--- .../order_reservation_controller.rb | 3 +- .../origami/order_reservation_controller.rb | 7 +- app/models/order_reservation.rb | 109 +++--------------- app/uploaders/menu_item_image_uploader.rb | 2 +- .../order_reservation/get_order.json.jbuilder | 2 +- .../origami/order_reservation/index.html.erb | 39 ++++++- 8 files changed, 145 insertions(+), 116 deletions(-) diff --git a/app/assets/javascripts/channels/order_reservation.js b/app/assets/javascripts/channels/order_reservation.js index d085f9ba..0a3ef37c 100644 --- a/app/assets/javascripts/channels/order_reservation.js +++ b/app/assets/javascripts/channels/order_reservation.js @@ -12,7 +12,7 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', { $.each(order, function(key,value){ var rowCount = key+1; var date = new Date(value.created_at); - + var deliveries = value["delivery"]; var isPM = date.getHours() >= 12; var isMidday = date.getHours() == 12; var time = [date.getHours() - (isPM && !isMidday ? 12 : 0), @@ -20,6 +20,15 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', { (isPM ? ' PM' : 'AM'); var created_at = date.getFullYear() +'-'+ (date.getMonth() > 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ date.getDate(); + var delivery_type = ""; + if(deliveries.delivery_type == "service"){ + delivery_type = "DELIVERY"; + }else if(deliveries.delivery_type == "pick_up"){ + delivery_type = "PICK-UP"; + }else{ + delivery_type = "DIRECT DELIVERY"; + } + row = '' +''+rowCount +'' @@ -30,7 +39,7 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', { +''+value.grand_total +'' +'' - +''+ value.status +'' + +''+ delivery_type +'' +'' +' ' diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js index b33ea931..b99dad8d 100644 --- a/app/assets/javascripts/order_reservation.js +++ b/app/assets/javascripts/order_reservation.js @@ -24,8 +24,8 @@ $(function() { // console.log(type); }); - jQuery(function(){ - jQuery('.first-1').click(); + $(function(){ + $('.first-1').click(); }); $(".custom-tr").on("click", function(){ @@ -66,15 +66,28 @@ $(function() { var items = data["order_items"]; var item_list = $('.summary-items'); - var date = new Date(data.requested_time); - var newDate = new Date(date.getTime() + (date.getTimezoneOffset() * 60000)); - + var newDate = new Date(data.requested_time); var isPM = newDate.getHours() >= 12; var isMidday = newDate.getHours() == 12; var time = [newDate.getHours() - (isPM && !isMidday ? 12 : 0), newDate.getMinutes() || '00'].join(':') + (isPM ? ' PM' : 'AM'); - var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() > 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ newDate.getDate() +' '+time; + var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() > 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() > 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time; + + if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){ + var expDate = new Date(data.expected_waiting_time); + var isPM = expDate.getHours() >= 12; + var isMidday = expDate.getHours() == 12; + var exptime = [expDate.getHours() - (isPM && !isMidday ? 12 : 0), + expDate.getMinutes() || '00'].join(':') + + (isPM ? ' PM' : 'AM'); + var expected_time = expDate.getFullYear() + '-' + (expDate.getMonth() > 10? expDate.getMonth() : '0' + (expDate.getMonth() + 1)) +'-'+ (expDate.getDate() > 10? expDate.getDate() : '0' + expDate.getDate()) +' '+exptime; + $('.expected_time').show(); + $('#expected_time').text(expected_time? expected_time : ''); + }else{ + $('.expected_time').hide(); + $('#expected_time').text(''); + } item_list.empty(); @@ -153,11 +166,10 @@ $(function() { } $("#accepted").on("click", function(){ - var status = $(this).attr("data-value"); - var order_id = $('#order_id').text(); - var ref_no = $('#ref_no').text(); - var callback = $('#callback_url').text(); - callback_url(callback,ref_no,order_id,status); + var requested_time = $("#requested_date_time").text(); + $("#requested_order_time").text(requested_time); + showTimePicker(requested_time); + $("#waiting_timeModal").modal({show : true, backdrop: false, keyboard : false}); }); $("#cancel").on("click", function(){ @@ -168,20 +180,44 @@ $(function() { callback_url(callback,ref_no,order_id,status); }); - function callback_url(callback,ref_no,order_id,status){ + function showTimePicker(requested_time){ + // var date = new Date(requested_time); + // var isPM = date.getHours() >= 12; + // var isMidday = date.getHours() == 12; + // var time = [date.getHours() - (isPM && !isMidday ? 12 : 0), + // date.getMinutes() || '00'].join(':') + + // (isPM ? 'pm' : 'am'); + // console.log(time); + $('.timepicker').bootstrapMaterialDatePicker({ + format: 'HH:mm', + useSeconds: false, + clearButton: true, + date: false + }); + } + + function callback_url(callback,ref_no,order_id,status,time,exptime){ var url = 'order_reservation/update'; var post_url = "order_reservation/send_status"; + var waiting_time = ""; + if(time!=undefined && time!=""){ + waiting_time = time; + } + var expected_time = ""; + if(exptime!=undefined && exptime!=""){ + expected_time = exptime; + } $.ajax({ type: "POST", url: post_url, - data: {url: callback, ref_no: ref_no, status: status}, + data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time}, dataType: "json", success: function(data) { if(data.status){ $.ajax({ type: "POST", url: url, - data: {'order_id': order_id, 'status': status}, + data: {'order_id': order_id, 'status': status, 'expected_time' : expected_time}, dataType: "json", success: function(data) { if (data.status) { @@ -215,5 +251,27 @@ $(function() { } }); } + + $("#save").on("click",function(){ + $("#waiting_timeErr").text(""); + var status = $("#status").text(); + var order_id = $('#order_id').text(); + var ref_no = $('#ref_no').text(); + var callback = $('#callback_url').text(); + var requested_time = new Date($("#requested_date_time").text()); + var date_time = requested_time.getFullYear()+'-'+(requested_time.getMonth() > 10? requested_time.getMonth() : '0'+ (requested_time.getMonth() + 1))+'-'+(requested_time.getDate()> 10? requested_time.getDate() : '0' + requested_time.getDate()); + var waiting_time = new Date(date_time+' '+$("#waiting_time").val()); + // requested_time.setHours(requested_time.getHours() - 1); + // console.log(requested_time); + if(waiting_time.getTime() < requested_time.getTime()){ + var time_diff = (requested_time.getTime() - waiting_time.getTime()); + var expected_time = (Math.floor(time_diff) / 1000) / 60; + callback_url(callback,ref_no,order_id,status,expected_time,waiting_time); + }else{ + $("#waiting_time").val(""); + $("#waiting_timeErr").text("Expected waiting time is greater than requested time!"); + } + + }); }); diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb index 902e62e7..57337b5e 100644 --- a/app/controllers/api/order_reserve/order_reservation_controller.rb +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -59,7 +59,8 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController order_reservation = params order_reservation_id, flag = OrderReservation.addOrderReservationInfo(order_reservation) - order_reservation = OrderReservation.latest_order.where("status = 'new'") #find(order_reservation_id) + order_reservation = OrderReservation.get_pending_orders #find(order_reservation_id) + if flag #&& ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "order_reservation_channel",data: order_reservation end diff --git a/app/controllers/origami/order_reservation_controller.rb b/app/controllers/origami/order_reservation_controller.rb index f952c7f4..12a3ee2f 100644 --- a/app/controllers/origami/order_reservation_controller.rb +++ b/app/controllers/origami/order_reservation_controller.rb @@ -7,7 +7,8 @@ class Origami::OrderReservationController < BaseOrigamiController def update @id = params[:order_id] - @status = params[:status] + @status = params[:status] + expected_waiting_time = params[:expected_time] @order_reservation = OrderReservation.find(@id) status = true @@ -26,7 +27,7 @@ class Origami::OrderReservationController < BaseOrigamiController OrderReservation.update_order_reservation(@id, nil, "cancelled") result = {:status=> true, :message => "rejected" } else - OrderReservation.update_order_reservation(@id, nil, "accepted") + OrderReservation.update_order_reservation(@id, nil, "accepted", expected_waiting_time) result = {:status=> true, :message => "accepted" } end end @@ -51,7 +52,7 @@ class Origami::OrderReservationController < BaseOrigamiController status = params[:status] end - response = OrderReservation.send_status_to_ordering(params[:url],params[:ref_no],status) + response = OrderReservation.send_status_to_ordering(params[:url],params[:ref_no],status,params[:waiting_time]) render :json => response end diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index 7261ec98..d60d908e 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -21,7 +21,7 @@ class OrderReservation < ApplicationRecord order_reservation = OrderReservation.new order_reservation.order_reservation_type = order_reserve[:order_type] order_reservation.customer_id = order_reserve[:cus_info] - order_reservation.requested_time = DateTime.parse(order_reserve[:requested_time]).utc + order_reservation.requested_time = Time.parse(order_reserve[:requested_time]).utc order_reservation.callback_url = order_reserve[:callback_url] order_reservation.transaction_ref = order_reserve[:reference] if order_reserve[:order_info] @@ -134,96 +134,10 @@ class OrderReservation < ApplicationRecord result = {:status=> true, :message => DELIVERED } return result - # rebate_amount = nil - - # For Cashier by Zone - # bookings = Booking.where("sale_id='#{sale_id}'") - - # if bookings[0].dining_facility_id.to_i > 0 - # table = DiningFacility.find(bookings[0].dining_facility_id) - # cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) - # cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - # else - # shift = ShiftSale.find(saleObj.shift_sale_id) - # cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) - # end - - # For Print - # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - # receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf - # unique_code = "ReceiptBillPdf" - # if !receipt_bill_a5_pdf.empty? - # receipt_bill_a5_pdf.each do |receipt_bilA5| - # if receipt_bilA5[0] == 'ReceiptBillA5Pdf' - # if receipt_bilA5[1] == '1' - # unique_code = "ReceiptBillA5Pdf" - # else - # unique_code = "ReceiptBillPdf" - # end - # end - # end - # end - - # customer= Customer.find(saleObj.customer_id) - - # get member information - # rebate = MembershipSetting.find_by_rebate(1) - # credit_data = SalePayment.find_by_sale_id_and_payment_method(sale_id,'creditnote') - - # if customer.membership_id != nil && rebate && credit_data.nil? - # member_info = Customer.get_member_account(customer) - # if member_info["status"] == true - # rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no) - # current_balance = SaleAudit.paymal_search(sale_id) - # end - # end - - #orders print out - # if params[:type] == "quick_service" - # booking = Booking.find_by_sale_id(sale_id) - # if booking.dining_facility_id.to_i>0 - # table_id = booking.dining_facility_id - # else - # table_id = 0 - # end - - # booking.booking_orders.each do |order| - # # Order.pay_process_order_queue(order.order_id, table_id) - # oqs = OrderQueueStation.new - # oqs.pay_process_order_queue(order.order_id, table_id) - # end - - # end - - #for card sale data - # card_data = Array.new - # card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id) - # if !card_sale_trans_ref_no.nil? - # card_sale_trans_ref_no.each do |cash_sale_trans| - # card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s - # card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s - # card_no = cash_sale_trans.pan.last(4) - # card_no = card_no.rjust(19,"**** **** **** ") - # card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id}) - # end - # end - - # get printer info - # print_settings=PrintSetting.find_by_unique_code(unique_code) - # Calculate Food and Beverage Total - # item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items) - # discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items) - - # printer = Printer::ReceiptPrinter.new(print_settings) - # filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,saleObj.sale_items,saleObj,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details, "Paid",current_balance,card_data) - - # render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error ", :filename => filename, :receipt_no => sale_receipt_no, :printer_name => printer_name}) - - #end end end - def self.send_status_to_ordering(url,ref_no,status) + def self.send_status_to_ordering(url,ref_no,status,waiting_time=nil) base_url = 'https://api.doemal.com' token = '3T-tnlYtFJ-5Z1vY6XQqxQ' order_reservation = Lookup.collection_of("order_reservation") @@ -242,10 +156,15 @@ class OrderReservation < ApplicationRecord Rails.logger.debug "Doemal URL" + base_url post_url = base_url + url + if !waiting_time.nil? + send_params = {id: ref_no, waiting_time: waiting_time, status: status} + else + send_params = {id: ref_no, status: status} + end begin response = HTTParty.post(post_url, - :body => { id: ref_no, status: status}.to_json, + :body => send_params.to_json, :headers => { 'Authorization' => 'Token token='+token, 'Content-Type' => 'application/json', @@ -265,11 +184,14 @@ class OrderReservation < ApplicationRecord return response end - def self.update_order_reservation(id, sale_id, status) + def self.update_order_reservation(id, sale_id, status, expected_waiting_time=nil) order_reservation = OrderReservation.find(id) if sale_id.present? order_reservation.sale_id = sale_id end + if !expected_waiting_time.nil? + order_reservation.expected_waiting_time = DateTime.parse(expected_waiting_time).utc + end order_reservation.status = status order_reservation.save end @@ -278,6 +200,13 @@ class OrderReservation < ApplicationRecord order_reservation = OrderReservation.select("COUNT(order_reservation_id) as count, status").group("status") end + def self.get_pending_orders + order_reservation = OrderReservation.select("order_reservations.*,deliveries.provider,deliveries.delivery_type") + .joins(" JOIN deliveries as del on del.order_reservation_id=order_reservations.order_reservation_id") + .where("order_reservations.status='new'") + .order("order_reservations.order_reservation_id desc, order_reservations.created_at desc") + end + private def generate_custom_id self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS") diff --git a/app/uploaders/menu_item_image_uploader.rb b/app/uploaders/menu_item_image_uploader.rb index 91bbdc37..90755159 100755 --- a/app/uploaders/menu_item_image_uploader.rb +++ b/app/uploaders/menu_item_image_uploader.rb @@ -33,7 +33,7 @@ class MenuItemImageUploader < CarrierWave::Uploader::Base # Process files as they are uploaded: # process scale: [200, 300] - process :resize_to_fit => [200, 150] + process :resize_to_fit => [400, 250]#[200, 150] # # def scale(width, height) diff --git a/app/views/origami/order_reservation/get_order.json.jbuilder b/app/views/origami/order_reservation/get_order.json.jbuilder index 8f14c263..b3cb8f65 100644 --- a/app/views/origami/order_reservation/get_order.json.jbuilder +++ b/app/views/origami/order_reservation/get_order.json.jbuilder @@ -1,7 +1,7 @@ if @order json.(@order, :order_reservation_id,:order_reservation_type,:customer_id, - :requested_time,:callback_url,:transaction_ref,:item_count,:total_customer,:payment_type, + :requested_time,:expected_waiting_time,:callback_url,:transaction_ref,:item_count,:total_customer,:payment_type, :payment_status,:payment_ref,:taxes,:total_amount,:total_tax, :discount_amount,:convenience_charge,:grand_total,:status,:order_remark, :reservation_remark,:sale_id) diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index b0b10193..9c6df102 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -4,7 +4,7 @@