diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 0e626507..28bbb7c6 100644 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -1,5 +1,81 @@ $(function(){ + //click menu sidebar menu category + $(".product").on("click", function(){ + var url = $(this).attr('data-ref'); + show_product_list(url); + console.log(url) + }); + //show menu item list when click menu category + function show_product_list(url_item){ + var menu_list = $('.menu_items_list'); + menu_list.empty(); + //Start Ajax + $.ajax({ + type: "GET", + url: url_item, + data: {}, + dataType: "json", + success: function(data) { + + var menu_items_list = $('.menu_items_list'); + menu_items_list.empty(); + product = data; + + for(var field in product) { + console.log(product[field].name); + if (product[field].unit_price > 0) { + console.log("hi"); + qty = 1; + options = []; + item_attributes = []; + + if (product[field].image_path) { + image_path = product[field].image_path.url; + }else{ + image_path = "/image/logo.png"; + } + + row = '
' + +'
' + +''+ product[field].name +'' + +"
" + +"' + +'' + +'
' + +'
' + + +"'; + $('.menu_items_list').append(row); + } + } + } + }); + //end Ajax + } + //end show list function //click menu sidebar menu category $(".menu_category").on("click", function(){ var menu_id = $(this).find(".menu-id").text(); diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 7f68eba3..a19b196e 100644 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -43,6 +43,9 @@ class Origami::AddordersController < BaseOrigamiController end end + def get_all_product() + @product = Product.all + end def create Rails.logger.debug "Order Source - " + params[:order_source].to_s @@ -53,6 +56,7 @@ class Origami::AddordersController < BaseOrigamiController items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"options": i["options"]} items_arr.push(items) } + # begin @order = Order.new @order.source = params[:order_source] diff --git a/app/models/order.rb b/app/models/order.rb index 1887585c..6bb97ed7 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -38,6 +38,41 @@ class Order < ApplicationRecord booking.save! self.default_values + # cashier already opened? + if self.save! + + self.adding_line_items + #Add Order Table and Room relation afrer order creation + BookingOrder.create({:booking_id => booking.booking_id, :order => self}) + + #Send order to queue one it done! + process_order_queue + + #send order to broadcast job + send_order_broadcast(booking) + + return true, booking + end + return false + end + + def custom_generate + booking = nil + + if self.new_booking + booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", + :checkin_at => Time.now.utc, :checkin_by => self.employee_name, + :booking_status => "assign" }) + table = DiningFacility.find(self.table_id) + table.status = "occupied" + table.save + else + booking = Booking.find(self.booking_id) + end + + booking.save! + self.default_values + # cashier already opened? if self.save! @@ -58,7 +93,6 @@ class Order < ApplicationRecord return false end - #Main Method - to update order / add items def modify @@ -71,7 +105,12 @@ class Order < ApplicationRecord #loop to add all items to order self.items.each do |item| + menu_item = MenuItem.search_by_item_code(item[:item_instance_code]) + + if menu_item.nil? + menu_item = Product.search_by_product_code(item[:item_instance_code]) + end #if (!menu_item.nil?) Rails.logger.debug menu_item diff --git a/app/models/product.rb b/app/models/product.rb index 5aff41f5..3c18f958 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -3,4 +3,24 @@ class Product < ApplicationRecord # Product Image Uploader mount_uploader :image_path, ProductImageUploader + + def self.search_by_product_code(item_code) + menu_item_hash = Hash.new + mt_instance = Product.find_by_item_code(item_code) + if (!mt_instance.nil?) + menu_item_hash[:type] = 'SetMenuItem' + menu_item_hash[:account_id] = 1 + menu_item_hash[:item_code] = mt_instance.item_code + menu_item_hash[:item_instance_code] = mt_instance.item_code + menu_item_hash[:name] = mt_instance.name.to_s + menu_item_hash[:alt_name] = mt_instance.alt_name.to_s + menu_item_hash[:price] = mt_instance.unit_price + menu_item_hash[:promotion_price] = 0 + menu_item_hash[:is_on_promotion] = 0 + menu_item_hash[:is_available] = 0 + menu_item_hash[:taxable] = mt_instance.taxable + + return menu_item_hash + end +end end diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index eb19090a..3195c45d 100644 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -3,13 +3,15 @@
diff --git a/app/views/origami/addorders/get_all_product.json.jbuilder b/app/views/origami/addorders/get_all_product.json.jbuilder new file mode 100644 index 00000000..01921c59 --- /dev/null +++ b/app/views/origami/addorders/get_all_product.json.jbuilder @@ -0,0 +1,4 @@ + +json.array! @product, :id, :item_code, :name, :alt_name,:image_path, + :description,:information,:taxable,:unit_price, :created_at, + :updated_at, :created_by \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 70accbb2..cb8c34c9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -181,6 +181,7 @@ Rails.application.routes.draw do get '/:addorders/:id' => "addorders#detail" post '/:addorders/create' => "addorders#create", :defaults => { :format => 'json' } get '/addorders/get_menu_category/:id' => "addorders#get_menu_category",:as => "get_menu_category", :defaults => { :format => 'json' } + get '/addorders/products/list' => "addorders#get_all_product",:as => "get_all_product", :defaults => { :format => 'json' } resources :commissions resources :commissioners