'
@@ -202,7 +202,7 @@ $(function() {
+ price +"' data-instance-code = '"+ code +"' data-instance = '"
+ name +"' data-promotion-price = '"+ promotion_price +"' data-attributes = '"
+ JSON.stringify(item_attributes) +"' data-options = '"
- + options +"' data-image='"+image_path+"' data-toggle='"
+ + JSON.stringify(menu_items[field].options) +"' data-image='"+image_path+"' data-toggle='"
+data_modal+"' data-target='."+data_target+"' data-item-sets = '"
+JSON.stringify(menu_items[field].item_sets)+"'data-instances = '"
+JSON.stringify(menu_items[field].instances)+"'>"
@@ -237,10 +237,10 @@ $(function() {
//instances = $(this).data('instance');
item_sets = $(this).data('item-sets');
instances = $(this).data('instances');
- // item_sets = $(data).attr('data-item-sets');
+ item_options = $(this).data('options');
for(var field in item_sets) {
-
+
$('.set_order').attr('data-min-qty',item_sets[field]["min_selectable_qty"]);
value = item_sets[field]["instances"];
@@ -283,10 +283,20 @@ $(function() {
});
}
+ for(var j in item_options) {
+ value = item_options[j]["values"];
+ type = item_options[j]["type"];
+ row = "
";
+ });
+ $(".options-list").append(row);
+ }
$('.set-item').attr('data-code',instances[0]['code']);
$('.set-item').attr('data-name',instances[0]['name']);
$('.set-item').attr('data-price',instances[0]['price']);
- $('.set-item').attr('data-options','[]');
+ // $('.set-item').attr('data-options','[]');
$('.set-item').attr('data-parent',true);
$('#set_change_qty').val(1);
@@ -371,32 +381,28 @@ $(function() {
customer_display_view(item,"set_add");
attribute_arr = []
- option_arr = []
var rowCount = $('.summary-items tbody tr').length+1;
- option_arr = []
code = $('.set-item').attr('data-code');
name = $('.set-item').attr('data-name');
price = $('.set-item').attr('data-price');
option = $('.set-item').attr('data-options');
parent = $('.set-item').attr('data-parent');
total = qty * price ;
- option_arr.push(option);
row ="
';
$(".summary-items tbody").append(row);
-
var rowCount = $('.summary-items tbody tr').length+1;
$(items).each(function(i){
code = $(items[i]).attr('data-code');
@@ -406,15 +412,14 @@ $(function() {
sub_item = $(items[i]).attr('data-sub-item');
option = $(items[i]).attr('data-options');
total = qty * price ;
- option_arr.push(option);
row ="
"
+ +option+"' data-row ='"+rowCount+ "' data-sub-item ='"+sub_item+ "'>"
+'| '+rowCount+' | '
- +'' + item_name+ ' ' + name +' | '
+ +'' + item_name+ ' ' + name +'-' + option +' | '
+'' + qty + ' | '
+''
+ parseFloat(total).toFixed(2)
@@ -626,8 +631,6 @@ $(function() {
if(group == "set_menu"){
- code = $(this).data('code');
- value = $(this).data('value');
instance = $(".selected-instance");
$(instance).each(function(i){
@@ -638,6 +641,12 @@ $(function() {
}
});
}
+
+ if(group == "set_menu_default"){
+ option_arr = get_selected_attributes('selected-option');
+ $('.set-item').attr('data-options',JSON.stringify(option_arr));
+ $('.set_default_option').text(option_arr);
+ }
}); //End selecct attribute buttom
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index e486c152..d2faf9da 100755
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -28,11 +28,12 @@
//= require raphael/raphael.min
//= require Chart.bundle
//= require chartkick
-//= require fileinput.min
+//= require fileinput.min.js
//= require settings/processing_items
//= require BSBMaterial/admin.js
//= require BSBMaterial/demo.js
//= require custom.js
+//= require jquery-fileupload/basic
$(document).ready(function() {
$('.count-to').countTo();
diff --git a/app/assets/javascripts/settings/display_images.js.coffee b/app/assets/javascripts/settings/display_images.js.coffee
new file mode 100644
index 00000000..e25943a1
--- /dev/null
+++ b/app/assets/javascripts/settings/display_images.js.coffee
@@ -0,0 +1,6 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
+jQuery ->
+ $('#new_display_image').fileupload
+ dataType: "script"
\ No newline at end of file
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index 6a6c0c90..a8e2818c 100755
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -74,16 +74,6 @@ class Origami::HomeController < BaseOrigamiController
@date = order.created_at
@booking= booking
order.order_items.each do |item|
- if !item.set_menu_items.nil?
- instance_item_sets = JSON.parse(item.set_menu_items)
- arr_instance_item_sets = Array.new
- instance_item_sets.each do |instance_item|
- item_instance_name = MenuItemInstance.find_by_item_instance_code(instance_item["item_instance_code"]).item_instance_name
- arr_instance_item_sets.push(item_instance_name)
- item.price = item.price.to_f + instance_item["price"].to_f
- end
- item.set_menu_items = arr_instance_item_sets
- end
@order_items.push(item)
# assigned_order_items = AssignedOrderItem.find_by_item_code_and_instance_code_and_order_id(item.item_code,item.item_instance_code,item.order_id)
# if !assigned_order_items.nil?
diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb
index c764b92f..db282a00 100755
--- a/app/controllers/origami/payments_controller.rb
+++ b/app/controllers/origami/payments_controller.rb
@@ -104,7 +104,9 @@ class Origami::PaymentsController < BaseOrigamiController
end
end
#end rounding adjustment
-
+ puts "sale"
+ puts saleObj.to_json
+
sale_payment = SalePayment.new
sale_payment.process_payment(saleObj, current_user.name, cash, "cash")
@@ -158,6 +160,20 @@ class Origami::PaymentsController < BaseOrigamiController
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)
+ end
+ end
+
#for card sale data
card_data = Array.new
card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id)
@@ -181,19 +197,6 @@ class Origami::PaymentsController < BaseOrigamiController
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})
-
- 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)
- end
- end
end
end
end
diff --git a/app/controllers/origami/rooms_controller.rb b/app/controllers/origami/rooms_controller.rb
index 3aa98282..11a7f93d 100755
--- a/app/controllers/origami/rooms_controller.rb
+++ b/app/controllers/origami/rooms_controller.rb
@@ -68,16 +68,6 @@ class Origami::RoomsController < BaseOrigamiController
@date = order.created_at
@booking = booking
order.order_items.each do |item|
- if !item.set_menu_items.nil?
- instance_item_sets = JSON.parse(item.set_menu_items)
- arr_instance_item_sets = Array.new
- instance_item_sets.each do |instance_item|
- item_instance_name = MenuItemInstance.find_by_item_instance_code(instance_item["item_instance_code"]).item_instance_name
- arr_instance_item_sets.push(item_instance_name)
- item.price = item.price.to_f + instance_item["price"].to_f
- end
- item.set_menu_items = arr_instance_item_sets
- end
@order_items.push(item)
# assigned_order_items = AssignedOrderItem.find_by_item_code_and_instance_code_and_order_id(item.item_code,item.item_instance_code,item.order_id)
# if !assigned_order_items.nil?
diff --git a/app/controllers/origami/shifts_controller.rb b/app/controllers/origami/shifts_controller.rb
index 19def9b6..d0b73f99 100755
--- a/app/controllers/origami/shifts_controller.rb
+++ b/app/controllers/origami/shifts_controller.rb
@@ -3,6 +3,7 @@ class Origami::ShiftsController < BaseOrigamiController
end
def show
+ @type = params[:type]
@shift = ShiftSale.current_open_shift(current_user.id)
#for bank integration
bank_integration = Lookup.collection_of('bank_integration')
diff --git a/app/controllers/settings/menus_controller.rb b/app/controllers/settings/menus_controller.rb
index 240343b1..4d7d6026 100755
--- a/app/controllers/settings/menus_controller.rb
+++ b/app/controllers/settings/menus_controller.rb
@@ -6,6 +6,10 @@ class Settings::MenusController < ApplicationController
# GET /settings/menus.json
def index
@settings_menus = Menu.all.page(params[:page]).per(10)
+ respond_to do |format|
+ format.html
+ format.csv { send_data Menu.to_csv }
+ end
end
# GET /settings/menus/1
diff --git a/app/controllers/settings/shops_controller.rb b/app/controllers/settings/shops_controller.rb
index 365be7e2..97c6422d 100644
--- a/app/controllers/settings/shops_controller.rb
+++ b/app/controllers/settings/shops_controller.rb
@@ -51,7 +51,11 @@ class Settings::ShopsController < ApplicationController
if @settings_shop.update(shop_params)
if params[:display_images].present?
params[:display_images]['image'].each do |a|
- @display_image = @settings_shop.display_images.create!(:shop_id => @shop.id, :image => a)
+
+ aa = a.read
+ base64_encoded = Base64.encode64(aa)
+ byebug
+ @display_image = @settings_shop.display_images.create!(:shop_id => @shop.id, :image => base64_encoded)
end
end
format.html { redirect_to settings_shops_url, notice: 'Shop was successfully updated.' }
diff --git a/app/models/menu.rb b/app/models/menu.rb
index b96fe03a..052a7042 100755
--- a/app/models/menu.rb
+++ b/app/models/menu.rb
@@ -31,4 +31,29 @@ class Menu < ApplicationRecord
menu.destroy
return false
end
-end
+
+ def self.to_csv
+ m_attributes = %w{id name is_active valid_days valid_time_from valid_time_to created_by created_at updated_at}
+ CSV.generate(headers: true) do |csv|
+ csv << m_attributes
+ menu = Menu.all
+ menu.each do |user|
+ puts user
+ csv << m_attributes.map{ |attr| user.send(attr)}
+ end
+ end
+
+ # mc_attributes = %w{id menu_id code name alt_name order_by created_by menu_category_id is_available created_at updated_at}
+ # CSV.generate(headers: true) do |csv|
+ # csv << m_attributes
+
+ # csv << mc_attributes
+ # MenuCategory.all.each do |user|
+ # puts user
+ # csv << mc_attributes.map{ |attr| user.send(attr)}
+ # end
+ # end
+
+ end
+
+end
\ No newline at end of file
diff --git a/app/models/order.rb b/app/models/order.rb
index 1508c960..25c5db4a 100755
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -135,7 +135,7 @@ class Order < ApplicationRecord
#loop to add all items to order
ordered_list.each do |item|
-
+
menu_item = MenuItem.search_by_item_code(item[:item_instance_code])
# For Product while item code not in menu item
@@ -152,7 +152,7 @@ class Order < ApplicationRecord
item[:sub_items].each do |si|
# Retrive instance's Price
set_item = MenuItem.search_by_item_code(si[:item_instance_code])
- set_order_items.push({"item_instance_code"=>si[:item_instance_code], "quantity"=>si[:quantity], "price"=>set_item[:price]})
+ set_order_items.push({"item_instance_code"=>si[:item_instance_code], "item_instance_name"=>set_item[:name], "quantity"=>si[:quantity], "price"=>set_item[:price], "options"=>si[:options]})
end
end
set_order_items = set_order_items.to_json
@@ -339,17 +339,17 @@ class Order < ApplicationRecord
#Process order items and send to order queue
def self.pay_process_order_queue(id,table_id)
sidekiq = Lookup.find_by_lookup_type("sidekiq")
- if !sidekiq.nil?
- OrderQueueProcessorJob.perform_later(id, table_id)
- else
- order = Order.find(id)
- if order
- oqs = OrderQueueStation.new
- oqs.process_order(order, table_id)
- end
- assign_order = AssignedOrderItem.assigned_order_item_by_job(id)
- ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
- end
+ if !sidekiq.nil?
+ OrderQueueProcessorJob.perform_later(id, table_id)
+ else
+ order = Order.find(id)
+ if order
+ oqs = OrderQueueStation.new
+ oqs.process_order(order, table_id)
+ end
+ assign_order = AssignedOrderItem.assigned_order_item_by_job(id)
+ ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ end
end
def check_cup_status(status)
diff --git a/app/models/shop.rb b/app/models/shop.rb
index b0e84912..c039ace4 100755
--- a/app/models/shop.rb
+++ b/app/models/shop.rb
@@ -6,4 +6,8 @@ class Shop < ApplicationRecord
has_many :display_images
accepts_nested_attributes_for :display_images
+
+ def file_data=(input_data)
+ self.data = input_data.read
+ end
end
diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb
index 379e919c..fabc8d11 100755
--- a/app/pdf/order_item_pdf.rb
+++ b/app/pdf/order_item_pdf.rb
@@ -37,7 +37,7 @@ class OrderItemPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
#font "public/fonts/Chinese.ttf"
- if order_item.dining.to_i > 0
+ if !order_item.dining.nil?
text "#{ order_item.type + '-' + order_item.dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/pdf/order_item_slim_pdf.rb b/app/pdf/order_item_slim_pdf.rb
old mode 100644
new mode 100755
index 09cce4d1..146b585f
--- a/app/pdf/order_item_slim_pdf.rb
+++ b/app/pdf/order_item_slim_pdf.rb
@@ -37,7 +37,7 @@ class OrderItemSlimPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
#font "public/fonts/Chinese.ttf"
- if order_item_slim.dining.to_i > 0
+ if !order_item_slim.dining.nil?
text "#{ order_item_slim.type + '-' + order_item_slim.dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/pdf/order_set_item_pdf.rb b/app/pdf/order_set_item_pdf.rb
old mode 100644
new mode 100755
index 6aa6efc4..9aac0d0e
--- a/app/pdf/order_set_item_pdf.rb
+++ b/app/pdf/order_set_item_pdf.rb
@@ -37,7 +37,7 @@ class OrderSetItemPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
#font "public/fonts/Chinese.ttf"
- if order_set_item.dining.to_i > 0
+ if !order_set_item.dining.nil?
text "#{ order_set_item.type + '-' + order_set_item.dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb
index 6c8dacac..17cf905c 100755
--- a/app/pdf/order_summary_pdf.rb
+++ b/app/pdf/order_summary_pdf.rb
@@ -36,7 +36,8 @@ class OrderSummaryPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
- if order[0].dining.to_i > 0
+
+ if !order[0].dining.nil?
text "#{ order[0].type + '-' + order[0].dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/pdf/order_summary_set_pdf.rb b/app/pdf/order_summary_set_pdf.rb
old mode 100644
new mode 100755
index 8828ea43..14b2f796
--- a/app/pdf/order_summary_set_pdf.rb
+++ b/app/pdf/order_summary_set_pdf.rb
@@ -36,7 +36,7 @@ class OrderSummarySetPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
- if order[0].dining.to_i > 0
+ if !order[0].dining.nil?
text "#{ order[0].type + '-' + order[0].dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/pdf/order_summary_slim_pdf.rb b/app/pdf/order_summary_slim_pdf.rb
old mode 100644
new mode 100755
index 73023278..c88061ea
--- a/app/pdf/order_summary_slim_pdf.rb
+++ b/app/pdf/order_summary_slim_pdf.rb
@@ -36,7 +36,7 @@ class OrderSummarySlimPdf < Prawn::Document
# font "public/fonts/Zawgyi-One.ttf"
# font "public/fonts/padauk.ttf"
- if order[0].dining.to_i > 0
+ if !order[0].dining.nil?
text "#{ order[0].type + '-' + order[0].dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
else
text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20
diff --git a/app/views/api/orders/view_orders.json.jbuilder b/app/views/api/orders/view_orders.json.jbuilder
index ae3fea84..dd72a3a3 100755
--- a/app/views/api/orders/view_orders.json.jbuilder
+++ b/app/views/api/orders/view_orders.json.jbuilder
@@ -46,9 +46,12 @@ if (@booking)
child_spent += (item.price * item.qty)
end
# End YGN BBQ
+ json.order_items_id item.order_items_id
+ json.order_id item.order_id
json.item_code item.item_code
json.item_instance_code item.item_instance_code
json.item_name item.item_name
+ json.set_menu_items item.set_menu_items
json.price item.price
json.qty item.qty
json.options item.options
diff --git a/app/views/origami/dashboard/index.html.erb b/app/views/origami/dashboard/index.html.erb
index b0fcb1a1..00cf93c3 100644
--- a/app/views/origami/dashboard/index.html.erb
+++ b/app/views/origami/dashboard/index.html.erb
@@ -193,6 +193,8 @@
diff --git a/app/views/origami/pending_order/show.html.erb b/app/views/origami/pending_order/show.html.erb
old mode 100644
new mode 100755
index d7c929f7..62987f36
--- a/app/views/origami/pending_order/show.html.erb
+++ b/app/views/origami/pending_order/show.html.erb
@@ -1,7 +1,7 @@
-
+
-
+
<% if current_user.role != "waiter" || @status != "sale"%>
@@ -167,6 +167,9 @@
<% if @status != "sale"%>
<%end%>
+ <% if current_user.role != "waiter" %>
+
+ <% end %>
@@ -269,5 +272,23 @@ $(document).ready(function(){
}
return false;
});
+
+ $('#close_cashier').on('click',function(e){
+ e.preventDefault(); // Prevent the href from redirecting directly
+ var linkURL = '/origami/shift/quick_service/close';
+ warnBeforeRedirect(linkURL);
+ });
+
+ function warnBeforeRedirect(linkURL) {
+ swal({
+ title: "Alert!",
+ text: "Are you sure you want to close cashier?",
+ type: "warning",
+ showCancelButton: true
+ }, function() {
+ // Redirect the user
+ window.location.href = linkURL;
+ });
+ }
});
diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb
index 1edb07cf..d98a3fe2 100755
--- a/app/views/origami/rooms/show.html.erb
+++ b/app/views/origami/rooms/show.html.erb
@@ -277,9 +277,26 @@
<%= count %> |
<%= order_item.item_name %>
+ <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
+ <% JSON.parse(order_item.options).each do |option| %>
+
+ <%= option %>
+
+ <% end %>
+ <% end %>
+
<% if !order_item.set_menu_items.nil?
- order_item.set_menu_items.each do |item_instance| %>
- <%= item_instance %>
+ JSON.parse(order_item.set_menu_items).each do |item_instance| %>
+
+ <%= item_instance["item_instance_name"] %>
+ <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %>
+ <% (item_instance["options"]).each do |set_item_option| %>
+
+ <%= set_item_option %>
+
+ <% end %>
+ <% end %>
+
<% end
end %>
|
@@ -345,9 +362,26 @@
<%= count %>
|
<%= order_item.item_name %>
+ <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
+ <% JSON.parse(order_item.options).each do |option| %>
+
+ <%= option %>
+
+ <% end %>
+ <% end %>
+
<% if !order_item.set_menu_items.nil?
- order_item.set_menu_items.each do |item_instance| %>
- <%= item_instance %>
+ JSON.parse(order_item.set_menu_items).each do |item_instance| %>
+
+ <%= item_instance["item_instance_name"] %>
+ <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %>
+ <% (item_instance["options"]).each do |set_item_option| %>
+
+ <%= set_item_option %>
+
+ <% end %>
+ <% end %>
+
<% end
end %>
|
diff --git a/app/views/origami/shifts/show.html.erb b/app/views/origami/shifts/show.html.erb
index 4ea71dec..4e42f11b 100755
--- a/app/views/origami/shifts/show.html.erb
+++ b/app/views/origami/shifts/show.html.erb
@@ -58,6 +58,7 @@
|