diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 1ffc71b8..e7b85110 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -17,6 +17,7 @@ //= require cable $(document).ready(function(){ + // auto refresh every 10 seconds // setTimeout(function(){ // window.location.reload(1); @@ -67,10 +68,10 @@ $(document).ready(function(){ }); // complete for queue item - $('.order-complete').on('click',function(e){ + $('.order-complete').on('click',function(e){ //e.preventDefault(); - var _self = $(this); // To know in ajax return - var assigned_item_id=$(this).attr('id').substr(15); + var _self = $(this); // To know in ajax return + var assigned_item_id=$(this).attr('id').substr(15); var params = { 'id':assigned_item_id }; // Call update_delivery_status() for changed delivery and move to delivery @@ -79,8 +80,8 @@ $(document).ready(function(){ url: '/oqs/update_delivery', data: params, dataType: 'json', - success: function(data){ - for (i = 0; i < data.length; i++) { + success: function(data){ + for (i = 0; i < data.length; i++) { var queue_station = $('#assigned_queue_' + data[i]).parent().parent(".queue_station"); var station = queue_station.parent().parent().attr('id'); @@ -89,7 +90,7 @@ $(document).ready(function(){ // Remove a queue card from current station queue_station.children('.card-footer').remove(); - + // Add removed queue card from station to completed $("#completed").children('.card-columns').append(queue_station); @@ -97,35 +98,35 @@ $(document).ready(function(){ var station_count=parseInt($("#"+station+"_count").text()) - 1; $("#"+station+"_count").text(station_count); } - - // update queue item count in completed station + + // update queue item count in completed station $("#completed_count").text(parseInt($("#completed_count").text()) + data.length); alert("updated!"); // Page reload location.reload(); } - }); + }); }); // Print Order Item $('#print_order_item').on('click',function(){ - var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text(); + var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text(); var params = { 'id':assigned_item_id }; $.ajax({ type: 'GET', - url: '/oqs/print/print/'+assigned_item_id, + url: '/oqs/print/print/'+assigned_item_id, success: function(data){ } }); }); // Print Order Summary $('#print_order_summary').on('click',function(){ - var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text(); + var assigned_item_id=$('.selected-item').children('.card-block').children('.assigned-order-item').text(); var params = { 'id':assigned_item_id }; $.ajax({ type: 'GET', - url: '/oqs/print/print_order_summary/'+assigned_item_id, + url: '/oqs/print/print_order_summary/'+assigned_item_id, success: function(data){ } }); }); diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index 75d412e7..03909dc4 100644 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -32,15 +32,12 @@ class Api::BillController < Api::ApiController # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) - # find order id by sale id - # sale_order = SaleOrder.find_by_sale_id(@sale_data.sale_id) - # Calculate Food and Beverage Total + food_total, beverage_total = SaleItem.calculate_food_beverage(@sale_items) printer = Printer::ReceiptPrinter.new(print_settings) printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, food_total, beverage_total) - redirect_to origami_path(@sale_data.sale_id) end diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb index 979c5b88..58aac67c 100644 --- a/app/controllers/oqs/home_controller.rb +++ b/app/controllers/oqs/home_controller.rb @@ -1,22 +1,22 @@ class Oqs::HomeController < BaseOqsController def index queue_stations=OrderQueueStation.all - + @queue_items_details = queue_items_query(0) - @queue_completed_item = queue_items_query(1) - + @queue_completed_item = queue_items_query(1) + @queue_stations_items=Array.new # Calculate Count for each station tab - queue_stations.each do |que| + queue_stations.each do |que| i=0 - @queue_items_details.each do |qid| - if qid.station_name == que.station_name - i=i+1 - end - end - @queue_stations_items.push({:station_name => que.station_name, :is_active => que.is_active ,:item_count => i }) + @queue_items_details.each do |qid| + if qid.station_name == que.station_name + i=i+1 + end + end + @queue_stations_items.push({:station_name => que.station_name, :is_active => que.is_active ,:item_count => i }) end @queue_stations_items @@ -73,10 +73,10 @@ class Oqs::HomeController < BaseOqsController # update delivery status for completed same order items assigned_items.each do |ai| ai.delivery_status=true - ai.save + ai.save removed_item.push(ai.assigned_order_item_id) - end - render :json => removed_item.to_json + end + render :json => removed_item.to_json end # Query for OQS with status @@ -103,4 +103,3 @@ class Oqs::HomeController < BaseOqsController .group("assigned_order_items.assigned_order_item_id") end end - diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 49ad4806..1aca9b2d 100644 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -1,8 +1,8 @@ class Origami::HomeController < BaseOrigamiController def index if params[:booking_id] != nil - type=params[:booking_id].split('-')[0]; - # Sale + type=params[:booking_id].split('-')[0]; + # Sale if type == "SAL" @selected_item = Sale.find(params[:booking_id]) @selected_item_type="Sale" @@ -10,23 +10,23 @@ class Origami::HomeController < BaseOrigamiController else @selected_item = Order.find(params[:booking_id]) @selected_item_type="Order" - end - end + end + end @completed_orders = Order.get_completed_order() @booking_orders = Order.get_booking_order_table() - @booking_rooms = Order.get_booking_order_rooms() + @booking_rooms = Order.get_booking_order_rooms() @orders = Order.get_orders() - end + end def item_show selection(params[:booking_id],1) - end + end def selection(selected_id, is_ajax) str = [] - type=selected_id.split('-')[0]; - # Sale + type=selected_id.split('-')[0]; + # Sale if type == "SAL" @order_details = SaleItem.get_order_items_details(params[:booking_id]) @order_details.each do |ord_detail| @@ -39,7 +39,7 @@ class Origami::HomeController < BaseOrigamiController str.push(ord_detail) end end - + if is_ajax == 1 render :json => str.to_json else @@ -55,21 +55,21 @@ class Origami::HomeController < BaseOrigamiController else sale = Order.find(params[:sale_id]) end - + status = sale.update_attributes(customer_id: params[:customer_id]) - + if status == true render json: JSON.generate({:status => true}) else render json: JSON.generate({:status => false, :error_message => "Record not found"}) - end + end end def get_customer @customer = Customer.find(params[:customer_id]) - + response = Customer.get_member_account(@customer) respond_to do |format| diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 2cb218da..44de8eb2 100644 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -12,7 +12,7 @@ class Origami::PaymentsController < BaseOrigamiController sale_payment = SalePayment.new sale_payment.process_payment(saleObj, @user, cash, "cash") - unique_code = "ReceiptBillPdf" + unique_code = "ReceiptBillPdf" customer= Customer.find(saleObj.customer_id) # get member information @@ -20,11 +20,10 @@ class Origami::PaymentsController < BaseOrigamiController # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) - # Calculate Food and Beverage Total food_total, beverage_total = SaleItem.calculate_food_beverage(saleObj.sale_items) - printer = Printer::ReceiptPrinter.new(print_settings) + printer = Printer::ReceiptPrinter.new(print_settings) printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, food_total, beverage_total, member_info) end end @@ -41,7 +40,7 @@ class Origami::PaymentsController < BaseOrigamiController @sale_data = Sale.find_by_sale_id(sale_id) #get customer amount - @customer = Customer.find(@sale_data.customer_id) + @customer = Customer.find(@sale_data.customer_id) # get member information response = Customer.get_member_account(@customer) @@ -84,19 +83,19 @@ class Origami::PaymentsController < BaseOrigamiController saleObj = Sale.find(sale_id) - unique_code = "ReceiptBillPdf" + unique_code = "ReceiptBillPdf" customer= Customer.find(saleObj.customer_id) # get member information member_info = Customer.get_member_account(customer) - + # get printer info print_settings=PrintSetting.find_by_unique_code(unique_code) # Calculate Food and Beverage Total food_total, beverage_total = SaleItem.calculate_food_beverage(saleObj.sale_items) - printer = Printer::ReceiptPrinter.new(print_settings) + printer = Printer::ReceiptPrinter.new(print_settings) printer.print_receipt_bill(print_settings,saleObj.sale_items,saleObj,customer.name, food_total, beverage_total, member_info) end diff --git a/app/models/order.rb b/app/models/order.rb index a4328d76..14fd8cda 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -231,7 +231,7 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") .where("(orders.status = 'new' or orders.status = 'billed') and (dining_facilities.type=? and dining_facilities.is_active=?)",DiningFacility::TABLE_TYPE,true) - .group("bookings.booking_id") + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id") # For PG # booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::TABLE_TYPE,true # sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.status,orders.order_id @@ -262,7 +262,7 @@ class Order < ApplicationRecord .joins("left join orders on orders.order_id = booking_orders.order_id") .joins("left join sales on sales.sale_id = bookings.sale_id") .where("(orders.status = 'new' or orders.status = 'billed') and (dining_facilities.type=? and dining_facilities.is_active=?)",DiningFacility::ROOM_TYPE,true) - .group("bookings.booking_id") + .group("bookings.booking_id,sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id,orders.order_id") # For PG # booking_orders.order_id IS NOT NULL and dining_facilities.type=? and dining_facilities.is_active=?",DiningFacility::ROOM_TYPE,true # sales.receipt_no,orders.status,sales.sale_id,dining_facilities.name,orders.customer_id,orders.order_id diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 92468b0e..bfef5588 100644 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -52,7 +52,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker self.print(filename) end - + def print_receipt_payment_by_foc(sale_id) #Use CUPS service #Generate PDF @@ -70,6 +70,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Generate PDF #Print pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, food_total, beverage_total, member_info) + pdf.render_file "tmp/receipt_bill.pdf" self.print("tmp/receipt_bill.pdf") end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index b04d85ce..6cacc391 100644 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -11,7 +11,6 @@ class ReceiptBillPdf < Prawn::Document self.item_height = 15 self.item_description_width = (self.page_width-20) / 2 self.label_width = 100 - # @item_width = self.page_width.to_i / 2 # @qty_width = @item_width.to_i / 3 # @double = @qty_width * 1.3 @@ -36,7 +35,6 @@ class ReceiptBillPdf < Prawn::Document if member_info != nil member_info(member_info) end - footer end @@ -206,10 +204,10 @@ class ReceiptBillPdf < Prawn::Document # show member information def member_info(member_info) - + move_down 7 - if member_info["status"] == true - member_info["data"].each do |res| + if member_info["status"] == true + member_info["data"].each do |res| move_down 5 y_position = cursor @@ -219,9 +217,9 @@ class ReceiptBillPdf < Prawn::Document bounding_box([self.item_description_width,y_position], :width =>self.label_width) do text "#{ res["balance"] }" , :size => self.item_font_size,:align => :right end - - end - end + + end + end end def footer diff --git a/app/views/origami/home/index.html.erb b/app/views/origami/home/index.html.erb index 607f24b2..ff83dad4 100644 --- a/app/views/origami/home/index.html.erb +++ b/app/views/origami/home/index.html.erb @@ -82,10 +82,10 @@
Customer :
| Price - | + <% # For Sale Items sub_total = 0 if @selected_item_type == "Sale" @selected_item.sale_items.each do |sale_item| sub_total += (sale_item.qty*sale_item.unit_price) - %> + %>|||
|---|---|---|---|
| <%= sale_item.product_name %> | <%= sale_item.qty %> | @@ -319,7 +319,7 @@ %> <% - # For Order Items + # For Order Items if @selected_item_type == "Order" @selected_item.order_items.each do |order_item| sub_total += (order_item.qty*order_item.unit_price) @@ -354,6 +354,7 @@Discount: | (<%=@selected_item.total_discount rescue 0%>) |