From 9b0a564b9a3af8f8c33e7f77ac276e3f36393844 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Wed, 25 Apr 2018 13:18:54 +0630 Subject: [PATCH 01/17] update cable for cloud --- app/controllers/api/bill_controller.rb | 4 ++-- app/controllers/api/call_waiters_controller.rb | 4 ++-- .../order_reservation_controller.rb | 2 +- app/controllers/origami/addorders_controller.rb | 8 +++----- .../origami/request_bills_controller.rb | 4 ++-- .../origami/second_display_controller.rb | 4 ++-- app/controllers/origami/split_bill_controller.rb | 4 ++-- app/models/dining_facility.rb | 4 ++-- app/models/order.rb | 16 ++++++++-------- app/models/sale_payment.rb | 4 ++-- 10 files changed, 26 insertions(+), 28 deletions(-) diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index a4c8b383..2fb3d621 100755 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -47,9 +47,9 @@ class Api::BillController < Api::ApiController Promotion.promo_activate(@sale) #BillBroadcastJob.perform_later(table) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "bill_channel",table: table - end + #end else @status = false @error_message = "No Current Open Shift" diff --git a/app/controllers/api/call_waiters_controller.rb b/app/controllers/api/call_waiters_controller.rb index d0a0e3df..b8c11897 100644 --- a/app/controllers/api/call_waiters_controller.rb +++ b/app/controllers/api/call_waiters_controller.rb @@ -6,9 +6,9 @@ class Api::CallWaitersController < ActionController::API @time = params[:time] @table = DiningFacility.find(@table_id) # CallWaiterJob.perform_later(@table,@time) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "call_waiter_channel",table: @table,time:@time - end + #end # get printer info @shop = Shop.first unique_code = "CallWaiterPdf" diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb index 61e89c39..89571a9a 100644 --- a/app/controllers/api/order_reserve/order_reservation_controller.rb +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -61,7 +61,7 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController order_reservation = OrderReservation.find(order_reservation_id) # if ENV["SERVER_MODE"] != 'cloud' - # ActionCable.server.broadcast "order_reservation_channel",data: order_reservation + ActionCable.server.broadcast "order_reservation_channel",data: order_reservation # end if flag render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is successfully created!" } diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 2eab460a..100635cd 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -184,11 +184,9 @@ puts items_arr.to_json @status, @sale = Sale.request_bill(@order,current_user,current_login_employee) # for second display - if ENV["SERVER_MODE"] != 'cloud' - - ActionCable.server.broadcast "second_display_channel",data: @sale,status:"sale" - - end + #if ENV["SERVER_MODE"] != 'cloud' + ActionCable.server.broadcast "second_display_channel",data: @sale,status:"sale" + #end result = {:status=> @status, :data => @sale } render :json => result.to_json end diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index 8c1d3a43..0c50a5da 100755 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -39,9 +39,9 @@ class Origami::RequestBillsController < ApplicationController # Promotion Activation Promotion.promo_activate(@sale) #bill channel - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "bill_channel",table: table - end + #end if order.source == "quick_service" result = {:status=> @status, :data => @sale.sale_id } render :json => result.to_json diff --git a/app/controllers/origami/second_display_controller.rb b/app/controllers/origami/second_display_controller.rb index 611b49a9..ac869719 100644 --- a/app/controllers/origami/second_display_controller.rb +++ b/app/controllers/origami/second_display_controller.rb @@ -13,9 +13,9 @@ class Origami::SecondDisplayController < BaseOrigamiController else tax_profiles = nil end - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "second_display_view_channel",data: params[:data],tax_profiles: tax_profiles,status:params[:status] - end + # end end #Shop Name in Navbor helper_method :shop_detail diff --git a/app/controllers/origami/split_bill_controller.rb b/app/controllers/origami/split_bill_controller.rb index 547a8a7e..5f074bb5 100755 --- a/app/controllers/origami/split_bill_controller.rb +++ b/app/controllers/origami/split_bill_controller.rb @@ -335,9 +335,9 @@ class Origami::SplitBillController < BaseOrigamiController end Promotion.promo_activate(sale) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "bill_channel",table: table - end + #end render :json => { status: status } else render :json => { status: false, error_message: 'No Current Open Shift!'} diff --git a/app/models/dining_facility.rb b/app/models/dining_facility.rb index 793ba287..cff5fd60 100755 --- a/app/models/dining_facility.rb +++ b/app/models/dining_facility.rb @@ -156,9 +156,9 @@ class DiningFacility < ApplicationRecord table = DiningFacility.find(table_id) #Send to background job for processing # CheckInBookingJob.perform_later(table) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "check_in_booking_channel",table: table - end + #end end def self.checkin_time diff --git a/app/models/order.rb b/app/models/order.rb index a4f27778..01a7b583 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -321,9 +321,9 @@ class Order < ApplicationRecord end else msg = ' Print Error ! Please contact to service' - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "call_waiter_channel",table: msg,time:'print_error' - end + #end if !sidekiq.nil? OrderQueueProcessorJob.perform_later(self.id, self.table_id) else @@ -337,9 +337,9 @@ class Order < ApplicationRecord end end assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "order_queue_station_channel",order: assign_order - end + #end end end @@ -376,9 +376,9 @@ class Order < ApplicationRecord type = 'order' #Send to background job for processing # OrderBroadcastJob.perform_later(table,type) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "order_channel",table: table,type:type - end + #end end end @@ -532,9 +532,9 @@ class Order < ApplicationRecord end end end - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "second_display_channel",data: @data_array,status:@status - end + #end end private diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 098b5733..3dba0a9b 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -607,9 +607,9 @@ class SalePayment < ApplicationRecord type = 'payment' #Send to background job for processing # OrderBroadcastJob.perform_later(table,type) - if ENV["SERVER_MODE"] != 'cloud' + #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "order_channel",table: table,type:type - end + #end end end end From 32fb28660e295ff4bab2be6c05245fd61500c622 Mon Sep 17 00:00:00 2001 From: Yan Date: Wed, 25 Apr 2018 14:15:04 +0630 Subject: [PATCH 02/17] add pool zine in adapter --- config/initializers/mysql2_adapter.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/mysql2_adapter.rb b/config/initializers/mysql2_adapter.rb index 6a8e43fa..11b20b0f 100755 --- a/config/initializers/mysql2_adapter.rb +++ b/config/initializers/mysql2_adapter.rb @@ -24,7 +24,7 @@ module ActiveRecord end client = Mysql2::Client.new(config.symbolize_keys) - options = [config[:host], config[:username], config[:password], config[:database], config[:port], config[:socket], config[:wait_timeout], 0] + options = [config[:host], config[:username], config[:password], config[:database], config[:port], config[:socket], config[:pool], config[:wait_timeout], 0] ConnectionAdapters::Mysql2Adapter.new(client, logger, options, config) end end From b41c85132dd13dfc34867d59a566ae08d842de0d Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 25 Apr 2018 15:07:43 +0630 Subject: [PATCH 03/17] add order and reservation, quick service in lookups and add date and order by in order reservation --- README.md | 8 ++++++ .../javascripts/channels/order_reservation.js | 7 +++-- .../order_reservation_controller.rb | 6 ++-- .../origami/dashboard_controller.rb | 16 +++++++++++ .../origami/order_reservation_controller.rb | 2 +- .../origami/payments_controller.rb | 2 +- app/models/order_reservation.rb | 2 ++ app/views/origami/dashboard/index.html.erb | 4 +++ .../origami/order_reservation/index.html.erb | 28 +++++++++++++------ app/views/print_settings/_form.html.erb | 2 +- 10 files changed, 61 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 43a2091e..0605a14a 100755 --- a/README.md +++ b/README.md @@ -188,6 +188,14 @@ Add Base URL for DOEMAL 1) settings/lookups => { type:order_reservation, name: BaseURL, value:'{doemal url}' } 2) settings/lookups => { type:order_reservation, name: Token, value:'{doemal token}' } +Add Feature for Quick Service + ** '0' means can not use quick service and '1' means can use quick service ** + => settings/lookups => { type:quick_service, name: QuickService, value:'{0 or 1}' } + +Add Feature for Order and Reservation + ** '0' means can not use order reservation and '1' means can use order reservation ** + => settings/lookups => { type:order_reservation, name: OrderReservation, value:'{0 or 1}' } + * ToDo list 1. Migration diff --git a/app/assets/javascripts/channels/order_reservation.js b/app/assets/javascripts/channels/order_reservation.js index 605afe16..e3c06e47 100644 --- a/app/assets/javascripts/channels/order_reservation.js +++ b/app/assets/javascripts/channels/order_reservation.js @@ -18,13 +18,16 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', { var time = [date.getHours() - (isPM && !isMidday ? 12 : 0), date.getMinutes() || '00'].join(':') + (isPM ? ' PM' : 'AM'); + var requested_date = date.getDate() + '-' + date.getMonth() + '-' + date.getFullYear() row = '' +''+rowCount +'' - +''+time + +''+requested_date +'' - +''+order.grand_total + +''+time + +'' + +''+order.grand_total +'' +'' +''+ order.status +'' diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb index 61e89c39..81e12952 100644 --- a/app/controllers/api/order_reserve/order_reservation_controller.rb +++ b/app/controllers/api/order_reserve/order_reservation_controller.rb @@ -60,9 +60,9 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController order_reservation_id, flag = OrderReservation.addOrderReservationInfo(order_reservation) order_reservation = OrderReservation.find(order_reservation_id) - # if ENV["SERVER_MODE"] != 'cloud' - # ActionCable.server.broadcast "order_reservation_channel",data: order_reservation - # end + if flag #&& ENV["SERVER_MODE"] != 'cloud' + ActionCable.server.broadcast "order_reservation_channel",data: order_reservation + end if flag render :json => { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is successfully created!" } else diff --git a/app/controllers/origami/dashboard_controller.rb b/app/controllers/origami/dashboard_controller.rb index f888ac57..8bdd5c27 100644 --- a/app/controllers/origami/dashboard_controller.rb +++ b/app/controllers/origami/dashboard_controller.rb @@ -56,6 +56,22 @@ class Origami::DashboardController < BaseOrigamiController # get printer info @print_settings = PrintSetting.get_precision_delimiter() @current_user = current_user + #quick service + quick_service = Lookup.collection_of('quick_service') + @quick_service = 0 + if !quick_service[0].nil? + @quick_service = quick_service[0][1] + end + #order reservation + order_reservation = Lookup.collection_of('order_reservation') + @order_reservation = 0 + if !order_reservation.empty? + order_reservation.each do |order_reserve| + if order_reserve[0] == 'OrderReservation' + @order_reservation = order_reserve[1] + end + end + end end end diff --git a/app/controllers/origami/order_reservation_controller.rb b/app/controllers/origami/order_reservation_controller.rb index 562eaaed..0d5d5277 100644 --- a/app/controllers/origami/order_reservation_controller.rb +++ b/app/controllers/origami/order_reservation_controller.rb @@ -1,7 +1,7 @@ class Origami::OrderReservationController < BaseOrigamiController def index - @order = OrderReservation.all + @order = OrderReservation.latest_order end def update diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index dbd1cbb1..5337bac5 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -6,7 +6,7 @@ class Origami::PaymentsController < BaseOrigamiController def first_bill sale_id = params[:sale_id] # sale_id sale_data = Sale.find_by_sale_id(sale_id) - sale_items = SaleItem.where("sale_id=?",sale_id) + sale_items = SaleItem.select("sale_id,product_code,item_instance_code,product_name,product_alt_name,account_id,status,remark,SUM(qty) as qty,unit_price,taxable_price,price,is_taxable").where("sale_id=?",sale_id).group("item_instance_code,price") member_info = nil # For Cashier by Zone diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index 3c401e31..296523cb 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -7,6 +7,8 @@ class OrderReservation < ApplicationRecord has_many :order_reservation_items belongs_to :delivery + scope :latest_order, -> { order("order_reservation_id desc, requested_time asc") } + SEND_TO_KITCHEN = "send_to_kitchen" READY_TO_DELIVERY = "ready_to_deliver" DELIVERED = "delivered" diff --git a/app/views/origami/dashboard/index.html.erb b/app/views/origami/dashboard/index.html.erb index 1b6a554e..330c963f 100644 --- a/app/views/origami/dashboard/index.html.erb +++ b/app/views/origami/dashboard/index.html.erb @@ -18,6 +18,7 @@
+ <% if @quick_service == '1' %>
@@ -26,6 +27,7 @@
<%= t :quick_service %>
+ <% end %>
@@ -34,6 +36,7 @@
<%= t :dine_in_cashier %>
+ <% if @order_reservation == '1' %>
@@ -42,6 +45,7 @@
<%= t :order_reservation %>
+ <% end %>
<% if !@current_user.nil? && @current_user.role != 'waiter' %> diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index 15f173ce..87533715 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -31,10 +31,13 @@ <%=i%> - + + <%= order.requested_time.utc.getlocal.strftime("%d-%m-%Y") %> + + <%= order.requested_time.utc.getlocal.strftime("%I:%M %p") %> - + <%=order.grand_total%> @@ -63,10 +66,13 @@ <%=i%> - + + <%= order.requested_time.utc.getlocal.strftime("%d-%m-%Y") %> + + <%= order.requested_time.utc.getlocal.strftime("%I:%M %p") %> - + <%=order.grand_total%> @@ -94,10 +100,13 @@ <%=i%> - + + <%= order.requested_time.utc.getlocal.strftime("%d-%m-%Y") %> + + <%= order.requested_time.utc.getlocal.strftime("%I:%M %p") %> - + <%=order.grand_total%> @@ -125,10 +134,13 @@ <%=i%> - + + <%= order.requested_time.utc.getlocal.strftime("%d-%m-%Y") %> + + <%= order.requested_time.utc.getlocal.strftime("%I:%M %p") %> - + <%=order.grand_total%> diff --git a/app/views/print_settings/_form.html.erb b/app/views/print_settings/_form.html.erb index ae1f90c1..e07da111 100755 --- a/app/views/print_settings/_form.html.erb +++ b/app/views/print_settings/_form.html.erb @@ -16,7 +16,7 @@ <% if(@server_mode != 'cloud') %> <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: false %> <% else %> - <%= f.input :printer_name, :as => :select, :collection => [] %> + <%= f.input :printer_name %> <% end %> <%= f.input :brand_name %> <%= f.input :printer_type %> From 81407cf95eb35811ae4b33fec068ed9244babf83 Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 25 Apr 2018 15:33:54 +0630 Subject: [PATCH 04/17] change query for sale items --- app/controllers/origami/payments_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 5337bac5..3baed9f3 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -6,7 +6,7 @@ class Origami::PaymentsController < BaseOrigamiController def first_bill sale_id = params[:sale_id] # sale_id sale_data = Sale.find_by_sale_id(sale_id) - sale_items = SaleItem.select("sale_id,product_code,item_instance_code,product_name,product_alt_name,account_id,status,remark,SUM(qty) as qty,unit_price,taxable_price,price,is_taxable").where("sale_id=?",sale_id).group("item_instance_code,price") + sale_items = SaleItem.unscoped.select("sale_id,product_code,item_instance_code,product_name,product_alt_name,account_id,status,remark,SUM(qty) as qty,SUM(unit_price) as unit_price,SUM(taxable_price) as taxable_price,SUM(price) as price,is_taxable").where("sale_id=?",sale_id).group("item_instance_code,unit_price") member_info = nil # For Cashier by Zone @@ -99,6 +99,7 @@ class Origami::PaymentsController < BaseOrigamiController if(Sale.exists?(sale_id)) saleObj = Sale.find(sale_id) + sale_items = SaleItem.unscoped.select("sale_id,product_code,item_instance_code,product_name,product_alt_name,account_id,status,remark,SUM(qty) as qty,SUM(unit_price) as unit_price,SUM(taxable_price) as taxable_price,SUM(price) as price,is_taxable").where("sale_id=?",sale_id).group("item_instance_code,unit_price") shop_details = Shop.first # rounding adjustment if shop_details.is_rounding_adj @@ -204,7 +205,7 @@ class Origami::PaymentsController < BaseOrigamiController 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) + filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings,cashier_terminal,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}) From 172c2136cc5900245659e66c9b2a8cd8aa0c6fb4 Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 25 Apr 2018 15:40:57 +0630 Subject: [PATCH 05/17] add order reservation in clear data --- lib/tasks/clear_data.rake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/tasks/clear_data.rake b/lib/tasks/clear_data.rake index cd4fec49..6e556c52 100755 --- a/lib/tasks/clear_data.rake +++ b/lib/tasks/clear_data.rake @@ -20,6 +20,9 @@ namespace :clear do SeedGenerator.where("id > 1").update(:current => 0, :next => 0) Receipt.delete_all ReceiptDetail.delete_all + OrderReservation.delete_all + OrderReservationItem.delete_all + Delivery.delete_all puts "Clear Data Done." end From 3a85481dcdf136774b33604b08dc85b53ed04d77 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Thu, 26 Apr 2018 13:07:31 +0630 Subject: [PATCH 06/17] 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 15/17] 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 @@