diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 64ebc678..c48807b3 100644 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -61,7 +61,7 @@ $(document).ready(function(){ var date = new Date(data[field]["created_at"]); var show_date = date.getDate() + "-" + date.getMonth() + "-" + date.getFullYear() + ' ' + date.getHours()+ ':' + date.getMinutes(); - row ='
' + row ='
' +'
' +'

' +''+data[field]["table_type"]+'- ' diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 01d42309..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(); @@ -69,38 +145,38 @@ $(function(){ image_path = "/image/logo.png"; } - row = '
' - +'
' - +''+ menu_items[field].name +'' - +"
" - +"' - +'
' - +'
' + row = '
' + +'
' + +''+ menu_items[field].name +'' + +"
" + +"' + +'' + +'
' + +'
' - +"
" + +"
" - +"
" - +"" + +"
" + +"" + +"
" - +"
" - - +'' - +'
'; + +'' + +'
'; $('.menu_items_list').append(row); } } diff --git a/app/assets/javascripts/channels/order_queue_station.js b/app/assets/javascripts/channels/order_queue_station.js index 1b9351cf..4fb7d214 100644 --- a/app/assets/javascripts/channels/order_queue_station.js +++ b/app/assets/javascripts/channels/order_queue_station.js @@ -34,7 +34,7 @@ App.order_queue_station = App.cable.subscriptions.create('OrderQueueStationChann if (oqs_id == items[field]["order_queue_station_id"]) { - row ='
' + row ='
' +'' +'
' +'

' diff --git a/app/assets/stylesheets/addorder.scss b/app/assets/stylesheets/addorder.scss index 88adca00..d81a2d85 100644 --- a/app/assets/stylesheets/addorder.scss +++ b/app/assets/stylesheets/addorder.scss @@ -9,6 +9,7 @@ background-color: #54A5AF; padding:5px; color :#fff; + } .custom-card { diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 8ac82280..35567356 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..3c915a38 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] = 'Product' + 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/pdf/close_cashier_pdf.rb b/app/pdf/close_cashier_pdf.rb index 1c4f52d5..71969440 100644 --- a/app/pdf/close_cashier_pdf.rb +++ b/app/pdf/close_cashier_pdf.rb @@ -209,7 +209,7 @@ class CloseCashierPdf < Prawn::Document text "JCB Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.master_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{other.jcb_amount.round(2)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -217,7 +217,7 @@ class CloseCashierPdf < Prawn::Document text "Master Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.jcb_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{other.master_amount.round(2)}", :size => self.item_font_size, :align => :right end y_position = cursor 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 3c24f5bd..7ee7da3e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -181,6 +181,7 @@ scope "(:locale)", locale: /en|mm/ 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