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 @@
- <% @menu.each do |menu| %>
-
- <% end %>
+ <% @menu.each do |menu| %>
+
+ <% end %>
+ -
+ Products
+
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