diff --git a/Main Menu.xlsx b/Main Menu.xlsx
new file mode 100644
index 00000000..94c70338
Binary files /dev/null and b/Main Menu.xlsx differ
diff --git a/app/assets/javascripts/custom.js b/app/assets/javascripts/custom.js
index 778de553..c6e6a47b 100644
--- a/app/assets/javascripts/custom.js
+++ b/app/assets/javascripts/custom.js
@@ -10,7 +10,7 @@ $(document).ready(function() {
alwaysVisible: false,
borderRadius: '0',
railBorderRadius: '0',
- touchScrollStep : 25
+ touchScrollStep : 50
});
$('#order-detail-slimscroll').slimScroll({
@@ -20,7 +20,7 @@ $(document).ready(function() {
alwaysVisible: false,
borderRadius: '0',
railBorderRadius: '0',
- touchScrollStep : 25
+ touchScrollStep : 50
});
$('#menu-slimscroll').slimScroll({
@@ -30,7 +30,7 @@ $(document).ready(function() {
alwaysVisible: false,
borderRadius: '0',
railBorderRadius: '0',
- touchScrollStep : 25
+ touchScrollStep : 50
});
// $('.delete').click(function(){
diff --git a/app/controllers/settings/menus_controller.rb b/app/controllers/settings/menus_controller.rb
index b7e02fb5..c7de4df8 100755
--- a/app/controllers/settings/menus_controller.rb
+++ b/app/controllers/settings/menus_controller.rb
@@ -62,7 +62,8 @@ class Settings::MenusController < ApplicationController
def destroy
# @settings_menu.destroy
abc = Menu.destroyMenu(@settings_menu)
- @settings_menu_item_set.destroy
+
+ # @settings_menu_item_set.destroy
flash[:notice] = 'Menu was successfully destroyed.'
render :json => {:status=> "Success", :url => settings_menus_path }.to_json
# respond_to do |format|
@@ -71,12 +72,110 @@ class Settings::MenusController < ApplicationController
# end
end
+ def export
+ @settings_menus = Menu.all.page(params[:page]).per(10)
+ menu = Menu.find(params[:id])
+
+ p = Axlsx::Package.new
+ wb = p.workbook
+ wb.styles do |s|
+ time_format = wb.styles.add_style :format_code => 'hh:mm:ss'
+ title = s.add_style :fg_color => "004586",
+ :b => true,
+ :sz => 12
+ wrap_text = s.add_style :sz => 11,
+ :alignment => { :horizontal => :left,:vertical => :center ,
+ :wrap_text => true}
+ header_text = s.add_style :fg_color=> "090909",
+ :b => true,
+ :sz => 12,
+ :border => { :style => :thin, :color => "00" },
+ :alignment => { :horizontal => :left,
+ :vertical => :center ,
+ :header_text => true}
+
+ # Menu Sheet
+ wb.add_worksheet(name: menu.name) do |sheet|
+ sheet.add_row ["Name",menu.name], :style=>title
+ sheet.add_row
+
+ sheet.add_row ["Category Code", "Category Name", "Item Code", "Item Name", "Item AltName", "Taxable", "Instance Code", "Instance Name", "Price"], :style=>header_text
+ menu.menu_categories.each do |mc|
+ mc.menu_items.each do |mi|
+ mi.menu_item_instances.each do |mii|
+ sheet.add_row [ mc.code, mc.name, mi.item_code, mi.name, mi.alt_name, mi.taxable, mii.item_instance_code, mii.item_instance_name, mii.price], :style=>wrap_text
+ end
+ end
+ end
+
+
+ # # Category
+ # menu.menu_categories.each do |mc|
+ # sheet.add_row ["Category"], :style=>wrap_text
+ # sheet.add_row %w(id menu_id code name alt_name order_by created_by menu_category_id is_available), :style=>header_text
+ # sheet.add_row [mc.id, mc.menu_id, mc.code, mc.name, mc.alt_name, mc.order_by, mc.created_by, mc.menu_category_id, mc.is_available], :style=>wrap_text
+ # sheet.add_row
+
+ # # Menu Item
+ # mc.menu_items.each do |mi|
+ # sheet.add_row ["Menu Item"], :style=>wrap_text
+ # sheet.add_row %w(id item_code name alt_name image_path description information unit type menu_category_id item_attributes item_options account_id min_qty taxable is_sub_item is_available created_by), :style=>header_text
+ # sheet.add_row [mi.id,mi.item_code, mi.name, mi.alt_name, mi.image_path, mi.description, mi.information, mi.unit, mi.type, mi.menu_category_id, mi.item_attributes, mi.item_options, mi.account_id, mi.min_qty, mi.taxable, mi.is_sub_item, mi.is_available, mi.created_by], :style=>wrap_text
+ # sheet.add_row
+
+ # # Menu Item Instance
+ # sheet.add_row ["Menu Item Instance"], :style=>wrap_text
+ # sheet.add_row %w(id menu_item_id item_instance_code item_instance_name item_attributes price is_on_promotion promotion_price is_available is_default), :style=>header_text
+ # mi.menu_item_instances.each do |mii|
+ # sheet.add_row [mii.id, mii.menu_item_id, mii.item_instance_code, mii.item_instance_name, mii.item_attributes, mii.price, mii.is_on_promotion, mii.promotion_price, mii.is_available, mii.is_default], :style=>wrap_text
+ # end
+ # sheet.add_row
+ # end
+ # end
+ end
+
+ # # Account
+ # wb.add_worksheet(name: "Account") do |sheet|
+ # sheet.add_row %w(id title account_type discount point bonus rebate), :style=>header_text
+ # Account.all.each do |acc|
+ # sheet.add_row [acc.id, acc.title,acc.account_type,acc.discount,acc.point,acc.bonus,acc.rebate], :style=>wrap_text
+ # end
+ # end
+
+ # # Item set
+ # wb.add_worksheet(name: "Item Set") do |sheet|
+ # sheet.add_row %w(id name alt_name min_selectable_qty max_selectable_qty), :style=>header_text
+ # ItemSet.all.each do |set|
+ # sheet.add_row [set.id,set.name, set.alt_name, set.min_selectable_qty, set.max_selectable_qty], :style=>wrap_text
+ # end
+ # end
+
+ # # Item Options
+ # wb.add_worksheet(name: "Menu Item Options") do |sheet|
+ # sheet.add_row %w(id option_type name value), :style=>header_text
+ # MenuItemOption.all.each do |option|
+ # sheet.add_row [option.id, option.option_type, option.name, option.value], :style=>wrap_text
+ # end
+ # end
+
+ # # Item Attributes
+ # wb.add_worksheet(name: "Menu Item Attributes") do |sheet|
+ # sheet.add_row %w(id attribute_type name value), :style=>header_text
+ # MenuItemAttribute.all.each do |attr|
+ # sheet.add_row [attr.id, attr.attribute_type,attr.name,attr.value], :style=>wrap_text
+ # end
+ # end
+ end
+
+ p.serialize("tmp/menus/" + menu.name + ".xlsx")
+ render :json => {status: true}
+ end
+
def import
if params[:file]
- Menu.import(params[:file])
- redirect_to settings_menus_path, notice: "Menu was successfully Imported"
- end
-
+ status = Menu.import(params[:file], current_user.name)
+ redirect_to settings_menus_path, notice: status
+ end
end
private
diff --git a/app/models/menu.rb b/app/models/menu.rb
index 9f4e6b14..d81079bd 100755
--- a/app/models/menu.rb
+++ b/app/models/menu.rb
@@ -45,99 +45,142 @@ class Menu < ApplicationRecord
end
end
- def self.import(file)
-
+ def self.import(file, created_by)
+ status = ""
spreadsheet = open_spreadsheet(file)
- sheet_count = spreadsheet.sheets.count-1
- for i in 0..sheet_count do
- header = spreadsheet.sheet(i).row(1)
- sheet_name = spreadsheet.sheets[i]
+ if spreadsheet.sheets.count > 1
+ sheet_count = spreadsheet.sheets.count-1
+ for i in 0..sheet_count do
+ header = spreadsheet.sheet(i).row(1)
+ sheet_name = spreadsheet.sheets[i]
- (2..spreadsheet.sheet(i).last_row).each do |ii|
- row = Hash[[header,spreadsheet.sheet(i).row(ii)].transpose]
- if sheet_name == "Account"
- # Account.create(id:row["id"], title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
- account = Account.find_by_id(row["id"])
- if account
- Account.create(title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
- else
- Account.create(id:row["id"], title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
- end
- elsif sheet_name == "Item Set"
- # ItemSet.create(id:row["id"], name: row[name], alt_name: row[alt_name], min_selectable_qty: row[min_selectable_qty], max_selectable_qty: row[max_selectable_qty])
- item_set = ItemSet.find_by_id(row["id"])
- if item_set
- ItemSet.create( name: row[name], alt_name: row[alt_name], min_selectable_qty: row[min_selectable_qty], max_selectable_qty: row[max_selectable_qty])
- else
- ItemSet.create(id:row["id"], name: row[name], alt_name: row[alt_name], min_selectable_qty: row[min_selectable_qty], max_selectable_qty: row[max_selectable_qty])
- end
- elsif sheet_name == "Menu Item Options"
- # MenuItemOption.create(id:row["id"], option_type: row["option_type"],name: row["name"],value: row["value"])
- item_options = MenuItemOption.find_by_id(row["id"])
- if item_options
- MenuItemOption.create( option_type: row["option_type"],name: row["name"],value: row["value"])
- else
- MenuItemOption.create(id:row["id"], option_type: row["option_type"],name: row["name"],value: row["value"])
- end
- elsif sheet_name == "Menu Item Attributes"
- # MenuItemAttribute.create(id:row["id"], attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
- item_attributes = MenuItemAttribute.find_by_id(row["id"])
- if item_attributes
- MenuItemAttribute.create( attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
- else
- MenuItemAttribute.create(id:row["id"], attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
- end
- elsif sheet_name == "Menu"
- menu = Menu.find_by_id(row["id"])
- if menu
- Menu.create(name: row["name"], is_active: row["is_active"], valid_days: row["valid_days"],valid_time_from: row["valid_time_from"], valid_time_to: row["valid_time_to"], created_by: row["created_by"])
- else
- Menu.create(id:row["id"], name: row["name"], is_active: row["is_active"], valid_days: row["valid_days"],valid_time_from: row["valid_time_from"], valid_time_to: row["valid_time_to"], created_by: row["created_by"])
- end
- elsif sheet_name == "Menu Category"
- # MenuCategory.create(id:row["id"], menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
- menu_category = MenuCategory.find_by_id(row["id"])
- if menu_category
- MenuCategory.create(menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
- else
- MenuCategory.create(id:row["id"], menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
- end
- elsif sheet_name == "Menu Item"
- # MenuItem.create(id:row["id"], item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: row["item_attributes"], item_options: row["item_options"], account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
- menu_item = MenuItem.find_by_id(row["id"])
- if menu_item
- MenuItem.create(item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: JSON.parse(row["item_attributes"]), item_options: JSON.parse(row["item_options"]), account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
- else
- MenuItem.create(id:row["id"], item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: JSON.parse(row["item_attributes"]), item_options: JSON.parse(row["item_options"]), account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
- end
- elsif sheet_name == "Menu Item Instance"
- # MenuItemInstance.create(id:row["id"], menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: row["item_attributes"], price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
- item_instance = MenuItemInstance.find_by_id(row["id"])
- if item_instance
- MenuItemInstance.create(menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: JSON.parse(row["item_attributes"]), price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
- else
- MenuItemInstance.create(id:row["id"], menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: JSON.parse(row["item_attributes"]), price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
- end
- elsif sheet_name == "Menu Instance Item Set"
- # MenuInstanceItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
- menu_instance_set = MenuInstanceItemSet.find_by_id(row["id"])
- if menu_instance_set
- MenuInstanceItemSet.create(item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
- else
- MenuInstanceItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
- end
- elsif sheet_name == "Menu Item Set"
- # MenuItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
- menu_item_set = MenuItemSet.find_by_id(row["id"])
- if menu_item_set
- MenuItemSet.create(item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
- else
- MenuItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
+ (2..spreadsheet.sheet(i).last_row).each do |ii|
+ row = Hash[[header,spreadsheet.sheet(i).row(ii)].transpose]
+ if sheet_name == "Account"
+ # Account.create(id:row["id"], title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
+ account = Account.find_by_id(row["id"])
+ if account
+ Account.create(title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
+ else
+ Account.create(id:row["id"], title: row["title"],account_type: row["account_type"],discount: row["discount"],point: row["point"],bonus: row["bonus"],rebate: row["rebate"])
+ end
+ elsif sheet_name == "Item Set"
+ # ItemSet.create(id:row["id"], name: row[name], alt_name: row[alt_name], min_selectable_qty: row[min_selectable_qty], max_selectable_qty: row[max_selectable_qty])
+ item_set = ItemSet.find_by_id(row["id"])
+ if item_set
+ ItemSet.create( name: row["name"], alt_name: row["alt_name"], min_selectable_qty: row["min_selectable_qty"], max_selectable_qty: row["max_selectable_qty"])
+ else
+ ItemSet.create(id:row["id"], name: row["name"], alt_name: row["alt_name"], min_selectable_qty: row["min_selectable_qty"], max_selectable_qty: row["max_selectable_qty"])
+ end
+ elsif sheet_name == "Menu Item Options"
+ # MenuItemOption.create(id:row["id"], option_type: row["option_type"],name: row["name"],value: row["value"])
+ item_options = MenuItemOption.find_by_id(row["id"])
+ if item_options
+ MenuItemOption.create( option_type: row["option_type"],name: row["name"],value: row["value"])
+ else
+ MenuItemOption.create(id:row["id"], option_type: row["option_type"],name: row["name"],value: row["value"])
+ end
+ elsif sheet_name == "Menu Item Attributes"
+ # MenuItemAttribute.create(id:row["id"], attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
+ item_attributes = MenuItemAttribute.find_by_id(row["id"])
+ if item_attributes
+ MenuItemAttribute.create( attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
+ else
+ MenuItemAttribute.create(id:row["id"], attribute_type: row["attribute_type"],name: row["name"],value: row["value"])
+ end
+ elsif sheet_name == "Menu"
+ menu = Menu.find_by_id(row["id"])
+ if menu
+ Menu.create(name: row["name"], is_active: row["is_active"], valid_days: row["valid_days"],valid_time_from: row["valid_time_from"], valid_time_to: row["valid_time_to"], created_by: row["created_by"])
+ else
+ Menu.create(id:row["id"], name: row["name"], is_active: row["is_active"], valid_days: row["valid_days"],valid_time_from: row["valid_time_from"], valid_time_to: row["valid_time_to"], created_by: row["created_by"])
+ end
+ elsif sheet_name == "Menu Category"
+ # MenuCategory.create(id:row["id"], menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
+ menu_category = MenuCategory.find_by_id(row["id"])
+ if menu_category
+ MenuCategory.create(menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
+ else
+ MenuCategory.create(id:row["id"], menu_id: row["menu_id"], code: row["code"], name: row["name"], alt_name: row["alt_name"], order_by: row["order_by"], created_by: row["created_by"], menu_category_id: row["menu_category_id"], is_available: row["is_available"])
+ end
+ elsif sheet_name == "Menu Item"
+ # MenuItem.create(id:row["id"], item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: row["item_attributes"], item_options: row["item_options"], account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
+ menu_item = MenuItem.find_by_id(row["id"])
+ if menu_item
+ MenuItem.create(item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: JSON.parse(row["item_attributes"]), item_options: JSON.parse(row["item_options"]), account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
+ else
+ MenuItem.create(id:row["id"], item_code: row["item_code"], name: row["name"], alt_name: row["alt_name"], image_path: row["image_path"], description: row["description"], information: row["information"], unit: row["unit"], type: row["type"], menu_category_id: row["menu_category_id"], item_attributes: JSON.parse(row["item_attributes"]), item_options: JSON.parse(row["item_options"]), account_id: row["account_id"], min_qty: row["min_qty"], taxable: row["taxable"], is_sub_item: row["is_sub_item"], is_available: row["is_available"], created_by: row["created_by"])
+ end
+ elsif sheet_name == "Menu Item Instance"
+ # MenuItemInstance.create(id:row["id"], menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: row["item_attributes"], price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
+ item_instance = MenuItemInstance.find_by_id(row["id"])
+ if item_instance
+ MenuItemInstance.create(menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: JSON.parse(row["item_attributes"]), price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
+ else
+ MenuItemInstance.create(id:row["id"], menu_item_id: row["menu_item_id"].to_i, item_instance_code: row["item_instance_code"], item_instance_name: row["item_instance_name"], item_attributes: JSON.parse(row["item_attributes"]), price: row["price"], is_on_promotion: row["is_on_promotion"], promotion_price: row["promotion_price"], is_available: row["is_available"], is_default: row["is_default"])
+ end
+ elsif sheet_name == "Menu Instance Item Set"
+ # MenuInstanceItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
+ menu_instance_set = MenuInstanceItemSet.find_by_id(row["id"])
+ if menu_instance_set
+ MenuInstanceItemSet.create(item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
+ else
+ MenuInstanceItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_instance_id: row["menu_item_instance_id"])
+ end
+ elsif sheet_name == "Menu Item Set"
+ # MenuItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
+ menu_item_set = MenuItemSet.find_by_id(row["id"])
+ if menu_item_set
+ MenuItemSet.create(item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
+ else
+ MenuItemSet.create(id:row["id"], item_set_id: row["item_set_id"], menu_item_id: row["menu_item_id"])
+ end
end
end
end
+ else
+ # Menu by Menu Import
+ accs = Account.all
+ account_id = 1
+ if accs.length > 0
+ account_id = accs[0].id
+ else
+ status = "No Account Created."
+ end
+
+ sheet = spreadsheet.sheet(0)
+ menu = sheet.row(1)[1]
+ imported_menu = Menu.create({name: menu, is_active: true, valid_days: "1,2,3,4,5,6,7",valid_time_from: "00:00:00", valid_time_to: "23:59:59", created_by: created_by})
+
+ (4..sheet.last_row).each do |ii|
+ row = Hash[[sheet.row(3),sheet.row(ii)].transpose]
+ menu_cat = MenuCategory.find_by_code(row["Category Code"])
+ if !menu_cat
+ menu_cat = MenuCategory.create({menu_id: imported_menu.id, code: row["Category Code"], name: row["Category Name"], alt_name: '', order_by: (ii - 3), created_by: created_by, menu_category_id: nil, is_available: 1})
+ # else
+ # status = status + "Category Code already exists."
+ end
+
+ menu_itm = MenuItem.find_by_item_code(row["Item Code"])
+ if !menu_itm
+ menu_itm = MenuItem.create(item_code: row["Item Code"], name: row["Item Name"], alt_name: row["Item AltName"], image_path: "", description: '', information: '', unit: '', type: "SimpleMenuItem", menu_category_id: menu_cat.id, item_attributes: "[]", item_options: "[]", account_id: account_id, is_sub_item: 0, is_available: 1, created_by: created_by)
+ # else
+ # status = status + "Item Code already exists for " + row["Item Name"] + "."
+ end
+
+ menu_inst = MenuItemInstance.find_by_item_instance_code(row["Instance Code"])
+ if !menu_inst
+ imported_instance = MenuItemInstance.create(menu_item_id: menu_itm.id, item_instance_code: row["Instance Code"], item_instance_name: row["Instance Name"], item_attributes: "[]", price: row["Price"], is_on_promotion: false, promotion_price: 0, is_available: true, is_default: false)
+ # else
+ # status = status + "Instance Code already exists for " + row["Instance Name"] + "."
+ end
+ end
end
-
+ # if status == ''
+ status="Menu Imported!"
+ # end
+
+ return status
end
def self.open_spreadsheet(file)
diff --git a/app/models/menu_category.rb b/app/models/menu_category.rb
index 666f251a..7fb23647 100755
--- a/app/models/menu_category.rb
+++ b/app/models/menu_category.rb
@@ -33,7 +33,7 @@ class MenuCategory < ApplicationRecord
abc = MenuItem.deleteRecursive(item)
end
menu_category.destroy
- return false
+ return true
end
end
diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb
index 836e0caf..03e90011 100755
--- a/app/models/menu_item.rb
+++ b/app/models/menu_item.rb
@@ -55,27 +55,35 @@ class MenuItem < ApplicationRecord
def self.deleteRecursive(menu_item)
# find the sub menu item of current item
- sub_menu_items = MenuItem.where("id=?",menu_item.id)
- if sub_menu_items.length != 0
- sub_menu_items.each do |subitem|
- # if deleteRecursive(subitem)
- # end
- end
- # find the instances of current menu item
- instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
- instances.each do |instance|
- instance.destroy
- end
- menu_item.destroy
- return true
- else
- instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
- instances.each do |instance|
- instance.destroy
- end
- menu_item.destroy
- return false
+ # sub_menu_items = MenuItem.where("id=?",menu_item.id)
+ # if sub_menu_items.length != 0
+ # # sub_menu_items.each do |subitem|
+ # # # if deleteRecursive(subitem)
+ # # # end
+ # # end
+ # # find the instances of current menu item
+ # instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
+ # instances.each do |instance|
+ # instance.menu_instance_item_sets.destroy_all
+ # end
+ # menu_item.menu_item_sets.destroy_all
+ # return true
+ # else
+ # instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
+ # instances.each do |instance|
+ # instance.menu_instance_item_sets.destroy_all
+ # end
+ # menu_item.menu_item_sets.destroy_all
+ # return true
+ # end
+ instances = MenuItemInstance.where("menu_item_id=?",menu_item.id)
+ instances.each do |instance|
+ instance.menu_instance_item_sets.destroy_all
+ instance.destroy
end
+ menu_item.menu_item_sets.destroy_all
+ menu_item.destroy
+ return true
end
# private
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb
index e42f33ec..d6a2d2f1 100755
--- a/app/views/layouts/_header.html.erb
+++ b/app/views/layouts/_header.html.erb
@@ -100,8 +100,8 @@
$.ajax({
type: method,
url: url ,
- success: function(data) {
- location.href = data.url;
+ success: function(data) {
+ location.href = data.url;
}
});
} else {
diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb
index ec935f04..f28e291f 100755
--- a/app/views/origami/home/show.html.erb
+++ b/app/views/origami/home/show.html.erb
@@ -300,7 +300,7 @@
<% end %>
<% end %>
- <% if !order_item.set_menu_items.nil?
+ <% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]'
JSON.parse(order_item.set_menu_items).each do |item_instance| %>
<%= item_instance["item_instance_name"] %>
diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb
index 43c4d5e7..565abcf7 100755
--- a/app/views/origami/rooms/show.html.erb
+++ b/app/views/origami/rooms/show.html.erb
@@ -370,7 +370,7 @@
<% end %>
<% end %>
- <% if !order_item.set_menu_items.nil?
+ <% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]'
JSON.parse(order_item.set_menu_items).each do |item_instance| %>
<%= item_instance["item_instance_name"] %>
diff --git a/app/views/settings/menus/export.html.erb b/app/views/settings/menus/export.html.erb
new file mode 100644
index 00000000..e69de29b
diff --git a/app/views/settings/menus/index.html.erb b/app/views/settings/menus/index.html.erb
index 5fafa5db..42eca334 100755
--- a/app/views/settings/menus/index.html.erb
+++ b/app/views/settings/menus/index.html.erb
@@ -62,9 +62,12 @@