From 142bac74a894acef3d67707fae4ed6bc461420a9 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Thu, 25 Jan 2018 15:33:52 +0630 Subject: [PATCH] update payment action cable --- app/assets/javascripts/channels/bill.js | 1 + app/assets/javascripts/channels/order.js | 15 +++++++++++---- app/jobs/order_broadcast_job.rb | 4 ++-- app/models/order.rb | 3 ++- app/models/sale_payment.rb | 12 ++++++++---- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/channels/bill.js b/app/assets/javascripts/channels/bill.js index b4016b1c..97666e32 100755 --- a/app/assets/javascripts/channels/bill.js +++ b/app/assets/javascripts/channels/bill.js @@ -14,6 +14,7 @@ App.order = App.cable.subscriptions.create('BillChannel', { $('.table_'+data.table.id).addClass('red'); } $('.new_text_'+data.table.id).removeClass('hide'); + $('.new_text_'+data.table.id).text('billed'); } }); diff --git a/app/assets/javascripts/channels/order.js b/app/assets/javascripts/channels/order.js index dccb86d7..9598ed6f 100755 --- a/app/assets/javascripts/channels/order.js +++ b/app/assets/javascripts/channels/order.js @@ -5,10 +5,17 @@ App.order = App.cable.subscriptions.create('OrderChannel', { disconnected: function() {}, - received: function(data) { - $('.table_'+data.table.id).removeClass('green'); - $('.table_'+data.table.id).addClass('blue'); - $('.new_text_'+data.table.id).removeClass('hide') + received: function(data) { + if (data.type == 'order') { + $('.table_'+data.table.id).removeClass('green'); + $('.table_'+data.table.id).addClass('blue'); + $('.new_text_'+data.table.id).removeClass('hide') + }else{ + $('.table_'+data.table.id).removeClass('red'); + $('.table_'+data.table.id).addClass('green'); + $('.new_text_'+data.table.id).html(''); + $('.new_text_'+data.table.id).removeClass('hide') + } } }); diff --git a/app/jobs/order_broadcast_job.rb b/app/jobs/order_broadcast_job.rb index 55ba2f21..6d7f6bca 100755 --- a/app/jobs/order_broadcast_job.rb +++ b/app/jobs/order_broadcast_job.rb @@ -1,7 +1,7 @@ class OrderBroadcastJob < ApplicationJob queue_as :default - def perform(table) - ActionCable.server.broadcast "order_channel",table: table + def perform(table,type) + ActionCable.server.broadcast "order_channel",table: table,type:type end end diff --git a/app/models/order.rb b/app/models/order.rb index 13e0e62b..6c22cb92 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -285,8 +285,9 @@ class Order < ApplicationRecord #send order items and send to order queue def send_order_broadcast(booking) table = DiningFacility.find(booking.dining_facility_id) + type = 'order' #Send to background job for processing - OrderBroadcastJob.perform_later(table) + OrderBroadcastJob.perform_later(table,type) end #Origami: Cashier : to view order Table diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 8cb33c80..ed1b9170 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -382,16 +382,17 @@ class SalePayment < ApplicationRecord def table_update_status(sale_obj) status = true + sale_count = 0 booking = Booking.find_by_sale_id(sale_obj.id) - if booking table = DiningFacility.find(booking.dining_facility_id) bookings = table.bookings bookings.each do |tablebooking| if tablebooking.booking_status != 'moved' if tablebooking.sale_id - if tablebooking.sale.sale_status != 'completed' && tablebooking.sale.sale_status != 'void' + if tablebooking.sale.sale_status != 'completed' && tablebooking.sale.sale_status != 'void' status = false + sale_count += 1 else status = true end @@ -400,11 +401,14 @@ class SalePayment < ApplicationRecord end end end - - if status + if status && sale_count == 0 table.status = "available" table.save end + + type = 'payment' + #Send to background job for processing + OrderBroadcastJob.perform_later(table,type) end end