From 098ea8e9317b630969ed3bce4d36375d51f4d5a6 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Tue, 20 Feb 2018 18:15:55 +0630 Subject: [PATCH 1/4] update edit form --- app/assets/stylesheets/addorder.scss | 3 + app/views/origami/sale_edit/edit.html.erb | 115 ++++++++++++++++++---- 2 files changed, 98 insertions(+), 20 deletions(-) diff --git a/app/assets/stylesheets/addorder.scss b/app/assets/stylesheets/addorder.scss index bf09f726..be126395 100755 --- a/app/assets/stylesheets/addorder.scss +++ b/app/assets/stylesheets/addorder.scss @@ -62,6 +62,9 @@ section .content{ .nav-tabs { background-color: #eeeeee; } +.nav-tabs .nav-link { + padding: 0.7286rem 0.2575 +} .nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { background-color: #fff; border-left: 6px solid #111; diff --git a/app/views/origami/sale_edit/edit.html.erb b/app/views/origami/sale_edit/edit.html.erb index 1aaa02ca..7372e116 100755 --- a/app/views/origami/sale_edit/edit.html.erb +++ b/app/views/origami/sale_edit/edit.html.erb @@ -1,7 +1,7 @@
-
+
INVOICE DETAILS
@@ -29,12 +29,12 @@ - + - + @@ -53,46 +53,46 @@ unless sale_item.price == 0 %> - - + <% if sale_item.remark != 'void' && sale_item.remark != 'edit' && sale_item.remark != 'foc' %> - - - <% elsif sale_item.qty.to_i < 0 || sale_item.remark == 'edit' %> - - - <% else %> - - @@ -108,7 +108,7 @@
## ItemsQTY - - Price - + QTY + Price + Action
<%= count %> + <%= count %> <%= sale_item.product_name %> + + + + + + + +
- + @@ -117,12 +117,42 @@ - +
+
+
+
+
1
+
2
+
3
+
+
+
4
+
5
+
6
+
+
+
7
+
8
+
9
+
+
+
0
+
.
+
00
+
+
+
Nett
+
Del
+
Clr
+
+
+
+
-
+
- +
@@ -225,4 +255,49 @@ } }); }) + + $( "input" ).focusin(function() { + $('.addfocus').removeClass('addfocus'); + $( this ).addClass('addfocus'); + }); + + $(".cashier_number").on('click', function(event){ + if(event.handled !== true) { + + var original_value=''; + // original_value = $('.addfocus').val(); + + var input_type = $(this).attr("data-type"); + + switch (input_type) { + case 'num': + var input_value = $(this).attr("data-value"); + if (original_value == "0.0"){ + $('.addfocus').val(input_value); + } + else{ + $('.addfocus').val(original_value + '' + input_value); + } + break; + + case 'add': + var input_value = $(this).attr("data-value"); + amount = parseInt(input_value); + $('.addfocus').val(amount); + break; + + case 'del' : + var discount_text=$('.addfocus').val(); + $('.addfocus').val(discount_text.substr(0,discount_text.length-1)); + break; + + case 'clr': + $('.addfocus').val(""); + break; + } + event.handled = true; + } else { + return false; + } + }); From 4455b03e8aaed7d0b6a0d236c45c6370b2f5199b Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Wed, 21 Feb 2018 12:34:03 +0630 Subject: [PATCH 2/4] update print pay in qs --- app/assets/stylesheets/addorder.scss | 5 +- .../origami/payments_controller.rb | 8 +- app/jobs/order_queue_processor_job.rb | 4 +- app/models/order.rb | 4 +- app/models/order_queue_station.rb | 96 ++++++++++--------- app/views/origami/addorders/detail.html.erb | 10 +- 6 files changed, 73 insertions(+), 54 deletions(-) diff --git a/app/assets/stylesheets/addorder.scss b/app/assets/stylesheets/addorder.scss index 7b29dcd4..9a0a7d54 100755 --- a/app/assets/stylesheets/addorder.scss +++ b/app/assets/stylesheets/addorder.scss @@ -225,10 +225,13 @@ i.logout_icon{ background-color: #eee; border-bottom: 1px solid #fff; } +.list-menu > a:focus{ + background-color:initial; +} .menu_list{ display: block; background-color: #eeeeee; - border-bottom: .214rem solid #fff; + border-bottom: .014rem solid #fff; border-left: 1px solid #54A5AF; border-right: 1px solid #54A5AF; margin-bottom: -1px; diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 82761dd1..cd32b418 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -157,8 +157,14 @@ class Origami::PaymentsController < BaseOrigamiController 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,booking.dining_facility_id) + Order.pay_process_order_queue(order.order_id,table_id,sale_id) end end end diff --git a/app/jobs/order_queue_processor_job.rb b/app/jobs/order_queue_processor_job.rb index 18fdc2dd..12fbff3a 100755 --- a/app/jobs/order_queue_processor_job.rb +++ b/app/jobs/order_queue_processor_job.rb @@ -1,7 +1,7 @@ class OrderQueueProcessorJob < ApplicationJob queue_as :default - def perform(order_id, table_id) + def perform(order_id, table_id,sale_id=nil) # Do something later #Order ID order = Order.find(order_id) @@ -9,7 +9,7 @@ class OrderQueueProcessorJob < ApplicationJob #Execute orders and send to order stations if order oqs = OrderQueueStation.new - oqs.process_order(order, table_id) + oqs.process_order(order, table_id,sale_id) end assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id) diff --git a/app/models/order.rb b/app/models/order.rb index 15ce56c3..72bbf60e 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -309,9 +309,9 @@ class Order < ApplicationRecord end #Process order items and send to order queue - def self.pay_process_order_queue(id,table_id) + def self.pay_process_order_queue(id,table_id,sale_id=nil) #Send to background job for processing - OrderQueueProcessorJob.perform_later(id, table_id) + OrderQueueProcessorJob.perform_later(id, table_id,sale_id) end def check_cup_status(status) diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb index 2be68fb3..fd7c3420 100755 --- a/app/models/order_queue_station.rb +++ b/app/models/order_queue_station.rb @@ -13,46 +13,22 @@ class OrderQueueStation < ApplicationRecord # validations validates_presence_of :station_name, :printer_name - def process_order (order, table_id) + def process_order (order, table_id,sale_id=nil) oqs_stations = OrderQueueStation.active - dining=DiningFacility.find(table_id) - # oqpbz = OrderQueueProcessByZone.find_by_zone_id(dining.zone_id) + order_items = order.order_items - # get dining - booking = Booking.find_by_dining_facility_id(dining.id) - - #Assign OQS id to order Items - # oqs_stations.each do |oqs| - # is_auto_printed = false - # oqs_order_items = [] - # #Get List of items - - # pq_items = JSON.parse(oqs.processing_items) - - # #Loop through the processing items - # pq_items.each do |pq_item| - # #Processing through the looping items - # order_items.each do |order_item| - # if (pq_item == order_item.item_code) - # # if oqs.id == oqpbz.order_queue_station_id - # # #Same Order_items can appear in two location. - # # AssignedOrderItem.assigned_order_item(order, order_item.item_code, oqs) - # # else - - # if (order_item.price != 0) - # AssignedOrderItem.assigned_order_item(order, order_item.item_code, oqs) - # oqs_order_items.push(order_item) - # end - # # end - # end - # end - # end + if table_id > 0 + # get dining + dining=DiningFacility.find(table_id) + oqs_by_zones = OrderQueueProcessByZone.where("zone_id=#{dining.zone_id}") + booking = Booking.find_by_dining_facility_id(dining.id) # ToDo per item per printer - OrderQueueProcessByZone.where("zone_id=#{dining.zone_id}").find_each do |oqpbz| + oqs_by_zones.each do |oqpbz| oqs = OrderQueueStation.find(oqpbz.order_queue_station_id) is_auto_printed = false oqs_order_items = [] @@ -86,17 +62,51 @@ class OrderQueueStation < ApplicationRecord end end end - # if oqs.id == oqpbz.order_queue_station_id - # # Auto Printing - # if oqs.auto_print - # if oqs_order_items.length > 0 - # print_slip(oqs, order, oqs_order_items) - # is_auto_printed = true - # end - # end - # end - end - # end + end + else + # get dining + sale = Sale.find(sale_id).shift_sale_id + terminal_by_zones = CashierTerminalByZones.where("cashier_terminal_id=#{shift.cashier_terminal_id}") + + # ToDo per item per printer + terminal_by_zones.each do |tbz| + OrderQueueProcessByZone.where("zone_id=#{tbz.zone_id}").find_each do |oqpbz| + oqs = OrderQueueStation.find(oqpbz.order_queue_station_id) + is_auto_printed = false + oqs_order_items = [] + + if oqs.is_active + #Get List of items - + pq_items = JSON.parse(oqs.processing_items) + #Loop through the processing items + pq_items.each do |pq_item| + #Processing through the looping items + order_items.each do |order_item| + if (pq_item == order_item.item_code) + # if oqs.id == oqpbz.order_queue_station_id + # #Same Order_items can appear in two location. + # AssignedOrderItem.assigned_order_item(order, order_item.item_code, oqs) + # else + + # if (order_item.price != 0) + AssignedOrderItem.assigned_order_item(order, order_item.item_code, order_item.item_instance_code, oqs) + oqs_order_items.push(order_item) + # end + # end + end + end + end + + if oqs.auto_print + if oqs_order_items.length > 0 + print_slip(oqs, order, oqs_order_items) + is_auto_printed = true + end + end + end + end + end + end #end else end private diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index a49300d2..67d90ffd 100755 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -28,7 +28,7 @@ <%= @menus[0].name %> -
Sub Total:Sub Total: <%= sub_total %>