From fe56286c76dfd254c784e86aeeefb2f1e63d9252 Mon Sep 17 00:00:00 2001 From: Myat Zin Wai Maw Date: Tue, 3 Dec 2019 17:49:01 +0630 Subject: [PATCH] app order --- app/assets/javascripts/addorder.js | 18 - app/assets/javascripts/custom.js | 18 +- app/assets/javascripts/foodcourt.js | 591 ------------------ .../api/authenticate_controller.rb | 4 +- .../foodcourt/food_court_controller.rb | 7 +- .../foodcourt/orders_controller.rb | 63 +- app/models/order.rb | 14 + app/views/foodcourt/addorders/detail.html.erb | 42 +- .../orders/app_order_by_booking.html.erb | 39 -- .../foodcourt/orders/app_orders.html.erb | 145 ++++- config/initializers/assets.rb | 4 +- config/routes.rb | 4 +- server2.pid | 2 +- 13 files changed, 215 insertions(+), 736 deletions(-) delete mode 100644 app/assets/javascripts/foodcourt.js delete mode 100644 app/views/foodcourt/orders/app_order_by_booking.html.erb diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 443a30f8..c9796312 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -1,23 +1,5 @@ //middle edit $(function() { - $("#loading_wrapper").show(); - getAllMenu(); - //get menu item cache - function getAllMenu(){ - $.ajax({ - type: "GET", - url: '/foodcourt/get_all_menu', - data: {}, - success:function(result){ - console.log(result) - localStorage.setItem("menus", JSON.stringify(result)); - var menu = localStorage.getItem("menus"); - if (menu != null ) { - $( "#loading_wrapper").hide(); - } - } - }); - } var role = $('#role').val(); var second_display_lookup = $("#display_type").val(); type = window.location.href.indexOf("quick_service") || window.location.href.indexOf("food_court"); diff --git a/app/assets/javascripts/custom.js b/app/assets/javascripts/custom.js index 6aeace1e..26e6c151 100644 --- a/app/assets/javascripts/custom.js +++ b/app/assets/javascripts/custom.js @@ -135,7 +135,7 @@ $(document).ready(function() { // var method = $(this).attr('data-method'); // var url = $(this).attr('data-ref'); // var html_text = $(this).siblings( "#delete_text" ).html(); - // //var page = url.substring(url.lastIndexOf('/') + 1); + // //var page = url.substring(url.lastIndexOf('/') + 1); // swal({ // title: "Confirmation", // text: html_text, @@ -147,11 +147,11 @@ $(document).ready(function() { // if (isConfirm) { // $.ajax({ // type: method, - // url: url , - // success: function(data) { + // url: url , + // success: function(data) { // location.href = data.url; // } - // }); + // }); // } else { // swal("Cancelled", "Your imaginary file is safe :)", "error"); // } @@ -167,7 +167,7 @@ $(document).ready(function() { var text = $("#notify_message").attr('data-message'); if (text != null || colorName != null){ - showNotification(colorName, text, placementFrom, placementAlign, animateEnter, animateExit); + showNotification(colorName, text, placementFrom, placementAlign, animateEnter, animateExit); } function showNotification(colorName, text, placementFrom, placementAlign, animateEnter, animateExit) { @@ -222,8 +222,8 @@ function audioPlayBackground(shop_code,audio){ function getOnlineOrderCount(){ var count = 0; //Start Ajax - $.ajax({ - async: false, + $.ajax({ + async: false, type: "GET", url: "/origami/get_order_info", dataType: "json", @@ -234,8 +234,8 @@ function getOnlineOrderCount(){ } } }); - //end Ajax + //end Ajax // alert(count); return count; } -/* online order count*/ \ No newline at end of file +/* online order count*/ diff --git a/app/assets/javascripts/foodcourt.js b/app/assets/javascripts/foodcourt.js deleted file mode 100644 index 9574824c..00000000 --- a/app/assets/javascripts/foodcourt.js +++ /dev/null @@ -1,591 +0,0 @@ -//= require jquery -//= require tether -//= require jquery_ujs -//= require bootstrap/js/popper.min -//= require bootstrap/js/bootstrap-material-design.min -//= require momentjs/moment -//= require bootstrap-material-datetimepicker/js/bootstrap-material-datetimepicker -//= require jquery-slimscroll/jquery.slimscroll.js -//= require bootstrap-notify/bootstrap-notify.js -//= require node-waves/waves.js -//= require sweetalert/sweetalert.min.js -//= require fileinput.min -//= require cable -//= require turbolinks -//= require BSBMaterial/turbolink_admin.js -//= require BSBMaterial/demo.js - -/* Constant Varaibles */ -_CREDIT_PAYMENTS_ = "/   CREDIT PAYMENTS"; -_CUSTOMERS_ = "/   CUSTOMERS"; -_DISCOUNTS_ = "/   DISCOUNTS"; -_IN_DUTIES_ = "/   IN DUTIES"; -_JCB_ = "/   JCB PAYMENT"; -_MASTER_ = "/   MASTER PAYMENT"; -_MPU_ = "/   MPU PAYMENT"; -_ALIPAY_ = "/   Alipay"; -_JUNCTIONPAY_ = "/   JunctionPay"; -_PAYMAL_ = "/   PAYMAL"; -_DINGA_ = "/   DINGA PAYMENT"; -_GIFT_VOUCHER_ = "/   GIFT VOUCHER"; -_OTHER_CHARGES_ = "/   CHARGES"; -_OTHER_PAYMENTS_ = "/   OTHER PAYMENT"; -_PAYMENTS_ = "/   PAYMENT"; -_PAYPAR_PAYMENT_ = "/   PAYPAR PAYMENT"; -_COMMISSIONS_ = "/   COMMISSIONS"; -_REDEEM_PAYMENT_ = "/   REDEEM PAYMENT"; -_SALE_EDIT_ = "/   SALE EDIT"; -_SPLIT_BILL_ = "/   SPLIT BILL"; -_UNION_ = "/   UNION PAYMENT"; -_VISA_ = "/   VISA PAYMENT"; -_VOUCHER_ = "/   VOUCHER"; -_SURVEY_ = "/   SURVEY"; -/* Constant Varaibles */ - -$(document).on('turbolinks:load', function() { - - $("#customer_image_path").fileinput({ - previewFileType: "image", - allowedFileExtensions: ["jpg", "gif", "png"], - browseClass: "btn btn-success", - browseLabel: "Pick Image", - browseIcon: " ", - removeClass: "btn btn-danger", - removeLabel: "Delete", - removeIcon: " ", - showUpload: false, - // uploadClass: "btn btn-info", - // uploadLabel: "Upload", - // uploadIcon: " ", - previewTemplates: { - image: '
\n' + - ' {caption}\n' + - '
\n', - } - }); - - $('.datetimepicker').bootstrapMaterialDatePicker({ - format: 'DD-MM-YYYY - HH:mm', - clearButton: true, - weekStart: 1 - }); - - $('.datepicker').bootstrapMaterialDatePicker({ - format: 'DD-MM-YYYY', - clearButton: true, - weekStart: 1, - time: false - }); - - $('.timepicker').bootstrapMaterialDatePicker({ - format: 'HH:mm', - clearButton: true, - date: false - }); - - // For selected order return - var order_status = ""; - order_status = $(".selected-item").children().find(".orders-order-status").text().substr(0,6).trim(); - - // Enable/Disable Button - //control_button(order_status); - - $(".orders").on('click', function(){ - $("#order-sub-total").text(''); - // $("#order-food").text(''); - // $("#order-beverage").text(''); - $("#order-discount").text(''); - $("#order-Tax").text(''); - $("#order-grand-total").text(''); - - var zone_name=$(this).find(".orders-table").text(); - var receipt_no=$(this).find(".orders-receipt-no").text(); - var unique_id = $(this).find(".orders-id").text(); - var order_status=$(this).find(".orders-order-status").text().trim(); - - // Enable/Disable Button - //control_button(order_status); - - var customer_id=$(this).find(".customer-id").text(); - show_customer_details(customer_id); - - $("#re-print").val(unique_id); - - var cashier=""; - var receipt_date=""; - var sub_total=0.0; - var discount_amount=0; - var tax_amount=0; - var grand_total_amount=0; - - $("#order-title").text("ORDER DETAILS - " + zone_name); - // clear order items - $("#order-items-table").children("tbody").empty(); - - // AJAX call for order - $.ajax({ - type: "POST", - url: "/origami/" + unique_id, - data: { 'booking_id' : unique_id }, - success:function(result){ - for (i = 0; i < result.length; i++) { - var data = JSON.stringify(result[i]); - var parse_data = JSON.parse(data); - var show_date = ""; - - // Receipt Header - receipt_no = result[i].receipt_no; - cashier = result[i].cashier_name; - if(result[i].receipt_date != null){ - receipt_date = new Date(result[i].receipt_date); - show_date = receipt_date.getDate() + "-" + receipt_date.getMonth() + "-" + receipt_date.getFullYear() + ' ' + receipt_date.getHours()+ ':' + receipt_date.getMinutes() - } - - //Receipt Charges - sub_total += parseFloat(parse_data.price); - - discount_amount = parse_data.discount_amount == null? '0.0' : parse_data.discount_amount; - tax_amount = parse_data.tax_amount; - grand_total_amount = parse_data.grand_total_amount; - - // Ordered Items - var order_items_rows = "" + - "" + parse_data.item_name + "" + - "" + parse_data.qty + "" + - "" + parse_data.price + "" + - ""; - - $("#order-items-table").children("tbody").append(order_items_rows); - } - - // Cashier Info - $("#receipt_no").text(receipt_no); - $("#cashier").text(cashier == null ? "" : cashier); - $("#receipt_date").text(show_date); - - // Payment Info - $("#order-sub-total").text(sub_total); - // $("#order-food").text(''); - // $("#order-beverage").text(''); - $("#order-discount").text(discount_amount); - $("#order-Tax").text(tax_amount); - $("#order-grand-total").text(grand_total_amount); - } - }); - // End AJAX Call - - $('.orders').removeClass('selected-item'); - $(this).addClass('selected-item'); - }); - - // Payment for Bill - $('#pay-bill').click(function() { - var sale_id=$(".selected-item").find(".orders-id").text().substr(0,16); - if(sale_id!=""){ - window.location.href = '/origami/sale/'+ sale_id + "/payment" - } - else { - alert("Please select an order!"); - } - - return false; - }); - - $(document).on('click', '.access_modal', function(event){ - type = $(this).data("type"); - $(".ok").attr("data-action",type); - $('#AccessCodeModal').modal('show'); - }); - - $(document).on('click', '.access_number', function(event){ - if(event.handled !== true) { - var original_value = $('#access_code').val(); - var input_type = $(this).attr("data-type"); - - switch (input_type) { - case 'num': - var input_value = $(this).attr("data-value"); - if (original_value){ - $('#access_code').val(original_value + input_value); - }else{ - $('#access_code').val(original_value + input_value); - } - break; - case 'ok': - var type = $(this).attr("data-action"); - code = $('#access_code').val(); - check_emp_access_code(code,type) - break; - case 'clr': - $('#access_code').val(""); - break; - } - event.handled = true; - } else { - return false; - } - }); - - $(document).on("click", ".credit_detail",function(){ - var sale_id = $(this).attr("data-id"); - var cashier_type = $(this).attr("data-type"); - if(cashier_type=='cashier'){ - window.location.href = "/origami/cashier/credit_sales/"+sale_id; - }else{ - window.location.href = "/origami/quick_service/credit_sales/"+sale_id; - } - }); -}); - -/* start check first bill or not funs: */ -function checkReceiptNoInFirstBillData(receipt_no,payment) { - // localStorage.removeItem('receipt_lists'); - var status = false; - var json_data = []; - if((receipt_no!=undefined) && (receipt_no!="")){ - if(localStorage.hasOwnProperty("receipt_lists")===true){ - var arr_data = JSON.parse(localStorage.getItem("receipt_lists")); - if (payment) { - json_data = arr_data.filter(function(e) { return e.receipt_no == receipt_no }); - }else{ - json_data = arr_data.filter(function(e) { return e.receipt_no !== receipt_no }); - } - - if((arr_data.length) > (json_data.length)){ - status = true; - } - } - } - - if (payment) { - if (json_data.length>0) { - return json_data[0]["payment"]; - }else{ - return false; - } - }else{ - return status; - } -} - -function createReceiptNoInFirstBillData(receipt_no,payment) { - var arr_data = []; - var json_data = []; - if(localStorage.hasOwnProperty("receipt_lists") === true){ - arr_data = JSON.parse(localStorage.getItem("receipt_lists")); - json_data = arr_data.filter(function(e) { return e.receipt_no == receipt_no }); - if (payment) { - jdata = arr_data.filter(function(e) { return e.receipt_no !== receipt_no }); - jdata.push({'receipt_no':receipt_no,'payment':payment}); - localStorage.setItem("receipt_lists",JSON.stringify(jdata)); - } - } - if(((arr_data.length == 0) && (json_data.length == 0)) || ((arr_data.length > 0) && (json_data.length == 0))){ - arr_data.push({'receipt_no':receipt_no,'payment':payment}); - localStorage.setItem("receipt_lists",JSON.stringify(arr_data)); - } -} - -function deleteReceiptNoInFirstBillData(receipt_no) { - if(localStorage.hasOwnProperty("receipt_lists") ===true ){ - var arr_data = JSON.parse(localStorage.getItem("receipt_lists")); - var json_data = arr_data.filter(function(e) { return e.receipt_no !== receipt_no }); - localStorage.setItem("receipt_lists",JSON.stringify(json_data)); - } -} -/* end check first bill or not funs: */ - -//start CB ECR integration -//set CB com port data -function setCommPorts(comPortLists) { - var sale_id = $('#sale_id').val(); - $('#com_port_name').html(""); - var jsonPortLists = $.parseJSON(comPortLists); - // alert(jsonPortLists); - if((jsonPortLists!=undefined && jsonPortLists!='') && (jsonPortLists.length > 0)){ - $.each(jsonPortLists,function(key,value){ - $('#com_port_name').append(""); - }); - } - else{ - swal({ - title: 'Oops', - text: 'Payment device has been disconnected! Please plug it in.', - type: 'error', - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type+"/payment/others_payment"; - }); - } -} - -/** pay with CB bank **/ -function pay_withBank(cmd_type, payment_type, bnk_bill_amount,sale_id,receipt_no,cashier_type) { - $("#loading_wrapper").show(); - var com_port = $("#com_port_name").val(); - reqCardSaleTrans(cmd_type, payment_type, bnk_bill_amount, sale_id, receipt_no, com_port,cashier_type); -} - -//add req data to card_sale_trans table -function reqCardSaleTrans(cmd_type, payment_type, bnk_bill_amount, sale_id, receipt_no, com_port,cashier_type) { - var jobj = {"cmd_type" : cmd_type, "payment_type" : "CARD", "amt" : bnk_bill_amount, "sale_id" : sale_id, "inv_no" : receipt_no, "com_port" : com_port}; - $.ajax({ - type: "POST", - url: "/origami/bank_integration/sale_trans", - data: {type:"request", data: jobj}, - dataType: "json", - success: function(data) { - if (data.status == "success"){ - card_sale_trans_id = data.card_sale_trans_id; - resCardSaleTrans(card_sale_trans_id,cmd_type,payment_type, bnk_bill_amount, sale_id, receipt_no,com_port,cashier_type); - } - } - }); -} - -//add res data to card_sale_trans table -function resCardSaleTrans(card_sale_trans_id,cmd_type,payment_type, bnk_bill_amount, sale_id, receipt_no,com_port,cashier_type) { - - var resMsg = ""; - var card_payment_type=""; - if($("#loading_wrapper").is(":visible")){ - if(payment_type=="mpu" || payment_type=="visa" || payment_type=="master" || payment_type=="jcb" || payment_type=="unionpay"){ - card_payment_type = "CARD"; - } - else if(payment_type == "alipay"){ - card_payment_type = "EWALLET"; - } - - bnk_bill_amount = parseFloat(bnk_bill_amount); - - resMsg = code2lab.reqBankPayment(cmd_type,card_payment_type,bnk_bill_amount,receipt_no,com_port); - } - - if(resMsg.includes("STATUS")){ - var jobj = $.parseJSON(resMsg); - - $.ajax({ - type: "POST", - url: "/origami/bank_integration/sale_trans", - data: {type:"response", card_sale_trans_id: card_sale_trans_id, data: jobj}, - dataType: "json", - success: function(data) { - if(data.status == "success"){ - resCBPay(resMsg,card_sale_trans_id,cmd_type,payment_type,bnk_bill_amount,sale_id,receipt_no,com_port,cashier_type); - } - } - }); - }else{ - if(payment_type!="master"){ - payment_type = payment_type.toUpperCase(); - }else{ - payment_type = "Master"; - } - - $("#loading_wrapper").hide(); - swal({ - title: 'Oops', - text: resMsg.toString(), - type: 'error', - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - var url_param = "payment"; - if(location.pathname.includes("credit_payment")){ - url_param = "credit_payment"; - } - window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type + "/"+url_param+"/others_payment/"+payment_type; - }); - } -} - - -function resCBPay(resMsg,card_sale_trans_id,cmd_type,payment_type,bnk_bill_amount,sale_id,receipt_no,com_port,cashier_type) { - $("#loading_wrapper").hide(); - var jobj = $.parseJSON(resMsg); - $("#reference_no").val(jobj.REFNUM); - if(jobj.STATUS == "Approved"){ - $.ajax({type: "POST", - url: "/origami/payment/"+payment_type, - data: "amount="+ bnk_bill_amount + "&sale_id="+ sale_id + "&ref_no=" + jobj.REFNUM, - success:function(result){ - if(result){ - swal({ - title: "Information!", - text: "Payment Successfully", - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - var url_param = "payment"; - if(location.pathname.includes("credit_payment")){ - url_param = "credit_payment"; - } - window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type+"/"+url_param; - }); - } - } - }); - }else{ - if(payment_type!="master"){ - payment_type = payment_type.toUpperCase(); - }else{ - payment_type = "Master"; - } - swal({ - title: 'Oops', - text: "Transaction is " + (jobj.STATUS).toLowerCase(), - type: 'error', - html: true, - closeOnConfirm: false, - closeOnCancel: false, - allowOutsideClick: false - }, function () { - var url_param = "payment"; - if(location.pathname.includes("credit_payment")){ - url_param = "credit_payment"; - } - window.location.href = '/origami/sale/'+ sale_id +"/"+cashier_type + "/"+url_param+"/others_payment/"+payment_type; - }); - } -} -//end CB ECR integration - -function setHeaderBreadCrumb(params){ - $("#others_payment").html(params); -} - -//show hide nav bar for webview -function showHideNavbar(webview,page){ - if(webview){ - $("nav.navbar").addClass("hidden"); - $("section").addClass("section-margin"); - $(".page-loader-wrapper").addClass("hidden"); - if(page!=undefined){ - $("#back").hide(); - } - }else{ - $("nav.navbar").removeClass("hidden"); - $("section").removeClass("section-margin"); - $(".page-loader-wrapper").removeClass("hidden"); - if(page!=undefined){ - $("#back").show(); - } - } -} - -function createAccessCode(code) { - localStorage.setItem("access_code",code); -} - -//get menu item cache -function getAllMenu(){ - $.ajax({ - type: "GET", - url: '/origami/get_all_menu', - data: {}, - success:function(result){ - console.log(result) - localStorage.setItem("menus", JSON.stringify(result)); - - var menu = localStorage.getItem("menus"); - if (menu != null ) { - $( "#loading_wrapper").hide(); - } - } - }); -} - -/* String format */ -if (!String.prototype.formatUnicorn) { - String.prototype.formatUnicorn=function(){ - var e=this.toString(); - if(!arguments.length){ - return e; - } - var t=typeof arguments[0],n="string"==t||"number"==t?Array.prototype.slice.call(arguments):arguments[0]; - for(var i in n){ - e=e.replace(new RegExp("\\{"+i+"\\}","gi"),n[i]==null?'':n[i]); - } - return e; - }; -} -/* String format */ - -//credit sales lists -function timeFormat(date){ - var isPM = date.getHours() >= 12; - var isMidday = date.getHours() == 12; - var time = [(date.getHours()>10? date.getHours() : '0'+date.getHours()) - (isPM && !isMidday ? 12 : 0), - (date.getMinutes()>10? date.getMinutes() : '0'+date.getMinutes()) || '00'].join(':') + - (isPM ? ' PM' : ' AM'); - return time; -} - -function getCreditData(cashier_type){ - var filter = $("#filter").val(); - var customer = $("#sel_customer").val(); - - var receipt_no = ""; - var customer_id = ""; - if((filter!=undefined) && (filter!=null) && (filter!="")){ - receipt_no = filter; - } - if((customer!=undefined) && (customer!=null) && (customer!="")){ - customer_id = customer; - } - getCreditSales(receipt_no, customer_id, cashier_type); -} - -function getCreditSales(filter, customer, cashier_type){ - // $(".credit_items").hide(); - $(".tbd_credit_lists").empty(); - var html_credit_items = $("#html_credit_items").html(); - var receipt_no = ""; - var customer_id = ""; - if((filter!=undefined) && (filter!=null) && (filter!="")){ - receipt_no = filter; - } - if((customer!=undefined) && (customer!=null) && (customer!="")){ - customer_id = customer; - } - $.ajax({ - type: "POST", - data: {receipt_no: receipt_no, customer_id: customer_id}, - dataType: 'json', - url: "/origami/"+cashier_type+"/credit_sales", - success: function(data){ - // console.log(data); - if(data.status){ - var credit_sales = data.data; - // console.log(credit_sales); - if(credit_sales.length > 0){ - $(".credit_items").show(); - for (var i = 0; i < credit_sales.length ; i++) { - var sale_date = new Date(credit_sales[i].sale_date); - var receipt_date = sale_date.getFullYear() +'-'+ (sale_date.getMonth() > 10 ? (sale_date.getMonth()+1) : '0' + (sale_date.getMonth()+1)) +'-'+ (sale_date.getDate() > 10 ? sale_date.getDate() : '0' + sale_date.getDate()); - $('.tbd_credit_lists').append(html_credit_items.formatUnicorn({ - 'key':i, - 'sale_id':credit_sales[i].sale_id, - 'receipt_date':receipt_date +" "+timeFormat(sale_date), - 'receipt_no':credit_sales[i].receipt_no, - 'cashier_name':credit_sales[i].cashier_name, - 'customer_name':credit_sales[i].customer_name, - 'credit_amount':credit_sales[i].payment_amount, - 'cashier_type':cashier_type - })); - } - } - }else{ - $(".tbd_credit_lists").html(data.message); - } - } - }); -} -//End of credit sales function diff --git a/app/controllers/api/authenticate_controller.rb b/app/controllers/api/authenticate_controller.rb index 8816b7af..287730f6 100755 --- a/app/controllers/api/authenticate_controller.rb +++ b/app/controllers/api/authenticate_controller.rb @@ -67,8 +67,8 @@ class Api::AuthenticateController < Api::ApiController params.permit(:emp_id, :password, :session_token) end - private - def find_shop + private + def find_shop @shop = Shop.find_by_shop_code(params[:shop_code]) end end diff --git a/app/controllers/foodcourt/food_court_controller.rb b/app/controllers/foodcourt/food_court_controller.rb index a02d7b89..ade02080 100644 --- a/app/controllers/foodcourt/food_court_controller.rb +++ b/app/controllers/foodcourt/food_court_controller.rb @@ -34,7 +34,12 @@ class Foodcourt::FoodCourtController < ApplicationController end end end - + @app_order_new_count =Booking.joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id") + .joins("JOIN orders ON orders.order_id=booking_orders.order_id") + .joins("JOIN order_items ON orders.order_id=order_items.order_id") + .joins("JOIN customers ON orders.customer_id=customers.customer_id") + .where("orders.source='app' and bookings.shop_code='#{@shop.shop_code}' and bookings.booking_status='assign'").uniq.length + puts @app_order_new_count render "foodcourt/addorders/detail" end diff --git a/app/controllers/foodcourt/orders_controller.rb b/app/controllers/foodcourt/orders_controller.rb index 1450df2d..42a3ece5 100755 --- a/app/controllers/foodcourt/orders_controller.rb +++ b/app/controllers/foodcourt/orders_controller.rb @@ -52,48 +52,31 @@ class Foodcourt::OrdersController < BaseFoodcourtController @order.order_items[order_item_index].set_menu_items = arr_instance_item_sets end end - - # bookings = Booking.all - # if !bookings.today.nil? - # @order_items_count = Hash.new - # bookings.each do |booking| - # if booking.sale_id.nil? && booking.booking_status != 'moved' - # if !booking.booking_orders.empty? - # booking.booking_orders.each do |booking_order| - # order = Order.find(booking_order.order_id) - # if !order.order_items.empty? - # if !@order_items_count.key?(booking.dining_facility_id) - # @order_items_count.store(booking.dining_facility_id, order.order_items.count) - # else - # @order_items_count[booking.dining_facility_id] += order.order_items.count - # end - # end - # end - # end - # else - # if !booking.sale_id.nil? - # sale = Sale.find(booking.sale_id) - # if sale.sale_status !='completed' - # if !@order_items_count.key?(booking.dining_facility_id) - # @order_items_count.store(booking.dining_facility_id, sale.sale_items.count) - # else - # @order_items_count[booking.dining_facility_id] = sale.sale_items.count - # end - # end - # end - # end - # end - # end end def app_orders - @bookings = Booking.joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id") - .joins("JOIN orders ON orders.order_id=booking_orders.order_id") - .where("orders.source='app' and bookings.shop_code='#{@shop.shop_code}'").order("created_at desc") + if !params[:booking_id].nil? && !params[:booking_id].blank? + @booking = Booking.select("orders.*,bookings.*,customers.*") + .joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id") + .joins("JOIN orders ON orders.order_id=booking_orders.order_id") + .joins("JOIN customers ON orders.customer_id=customers.customer_id") + .where("orders.source='app' and bookings.shop_code='#{@shop.shop_code}' and bookings.booking_id='#{params[:booking_id]}'").first + @customer_id =@booking.customer_id + @booking_id =@booking.booking_id + end + @bookings = Booking.select("bookings.*,customers.*") + .joins(" JOIN booking_orders ON booking_orders.booking_id=bookings.booking_id") + .joins("JOIN orders ON orders.order_id=booking_orders.order_id") + .joins("JOIN order_items ON orders.order_id=order_items.order_id") + .joins("JOIN customers ON orders.customer_id=customers.customer_id") + .where("orders.source='app' and bookings.shop_code='#{@shop.shop_code}'").order("bookings.created_at desc").uniq end - def app_order_by_booking - @order_items = OrderItems.joins("JOIN orders ON orders.order_id=order_items.order_id") - .joins("JOIN booking_orders ON booking_orders.order_id=orders.order_id") - .where("orders.source='app' and booking_orders.booking_id='#{params[:booking_id]}'").order("created_at desc") - + def completed + customer =Customer.find_by_customer_id(params[:customer_id]) + phone_number =customer.contact_no + if Order.send_message(phone_number,params[:booking_id]) + booking =Booking.find(params[:booking_id]) + booking.booking_status ='completed' + booking.save! + end end end diff --git a/app/models/order.rb b/app/models/order.rb index b42ef694..9c05ec85 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -591,5 +591,19 @@ class Order < ApplicationRecord Rails.logger.debug '...... order sync completed .....' end end + def self.send_message(phone, booking_id) + url = "http://smspoh.com/api/http/send?key=5QfyN0OtGsFXnOqwtpVAGZCyPGP28nbX_Nm_oPsUw2ybq714T_951ycz3Ypl5URA&message=Your order "+booking_id.to_s+" is ready to pick up&recipients="+ phone.to_s + begin + @result = HTTParty.get(url.to_str) + rescue HTTParty::Error + response = {status: false, message: "Can't open membership server "} + rescue Net::OpenTimeout + response = { status: false , message: "Can't open membership server "} + rescue OpenURI::HTTPError + response = { status: false, message: "Can't open membership server "} + rescue SocketError + response = { status: false, message: "Can't open membership server "} + end + end end diff --git a/app/views/foodcourt/addorders/detail.html.erb b/app/views/foodcourt/addorders/detail.html.erb index 247d4957..93ed11a7 100644 --- a/app/views/foodcourt/addorders/detail.html.erb +++ b/app/views/foodcourt/addorders/detail.html.erb @@ -1,7 +1,5 @@ <%= stylesheet_link_tag 'addorder', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'addorder', 'data-turbolinks-track': 'reload' %> - - <% type = request.path_info.include?('quick_service') || request.path_info.include?('food_court')%> <% modify_order = request.path_info.include?('modify_order')%>
@@ -147,9 +145,9 @@
-
-
@@ -526,18 +524,23 @@ diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 5479bcca..3b4a86c9 100755 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -61,6 +61,4 @@ Rails.application.config.assets.precompile += %w( order_reservation.js ) Rails.application.config.assets.precompile += %w( reservation.css ) Rails.application.config.assets.precompile += %w( reservation.js ) -# --- Foodcourt ---- -Rails.application.config.assets.precompile += %w( foodcourt.css ) -Rails.application.config.assets.precompile += %w( foodcourt.js ) +Rails.application.config.assets.precompile += %w( custom.js ) diff --git a/config/routes.rb b/config/routes.rb index 4dcc5911..0377994a 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -687,8 +687,8 @@ scope "(:locale)", locale: /en|mm/ do post '/customer_view' => "second_display#customer_view",:as => "customer_view", :defaults => { :format => 'json' } get "food_court" => "food_court#index" - get "app_orders" => "orders#app_orders" - get "app_order/:booking_id" => "orders#app_order_by_booking" + get "app_orders" => "orders#app_orders",:as => "app_order_by_booking" + post ':booking_id/completed' => "orders#completed", :defaults => { :format => 'json' } end end end diff --git a/server2.pid b/server2.pid index edf425a9..f5bfccbd 100644 --- a/server2.pid +++ b/server2.pid @@ -1 +1 @@ -15225 \ No newline at end of file +22910 \ No newline at end of file