diff --git a/app/assets/stylesheets/settings.scss b/app/assets/stylesheets/settings.scss index 2660d836..ec02f7c4 100644 --- a/app/assets/stylesheets/settings.scss +++ b/app/assets/stylesheets/settings.scss @@ -56,4 +56,8 @@ ul.dropdown-menu li a{ .menu-item-img { margin: 10px; text-align: center; + } + + .padding-10 { + padding: 10px; } \ No newline at end of file diff --git a/app/controllers/settings/set_menu_items_controller.rb b/app/controllers/settings/set_menu_items_controller.rb index 73e8b4eb..64b9c945 100644 --- a/app/controllers/settings/set_menu_items_controller.rb +++ b/app/controllers/settings/set_menu_items_controller.rb @@ -1,6 +1,8 @@ class Settings::SetMenuItemsController < ApplicationController before_action :set_settings_menu_item, only: [:show, :edit, :update, :destroy] before_action :set_settings_menu_category, only: [:index, :show, :edit, :new, :update] + before_action :set_settings_item_attribute, only: [:index, :show, :edit, :new, :update ,:create] + before_action :set_settings_item_option, only: [:index, :show, :edit, :new, :update ,:create] # GET /settings/menu_items # GET /settings/menu_items.json def index @@ -18,22 +20,43 @@ class Settings::SetMenuItemsController < ApplicationController def new @settings_menu_item = MenuItem.new @settings_menu_item.type = "SetMenuItem" + @item_sets = ItemSet.all end # GET /settings/menu_items/1/edit def edit + @item_sets = ItemSet.all end # POST /settings/menu_items # POST /settings/menu_items.json def create @settings_menu_item = MenuItem.new(settings_menu_item_params) - if params[:simple_menu_item][:menu_item_id] == '' - @settings_menu_item.menu_category_id = params[:menu_category_id] - end + + # if params[:simple_menu_item][:menu_item_id] == '' + @settings_menu_item.menu_category_id = params[:menu_category_id] + # end @settings_menu_item.created_by = current_login_employee.name + + # Bind for Item Sets + if params[:simple_menu_item][:item_sets].count > 1 + params[:simple_menu_item][:item_sets].delete_at(0) + + sets = ItemSet.find(params[:simple_menu_item][:item_sets]) + + if sets.count > 0 + @settings_menu_item.item_sets = sets + end + end + + # Remove "" default first + params[:simple_menu_item][:item_attributes].delete_at(0) + params[:simple_menu_item][:item_options].delete_at(0) respond_to do |format| if @settings_menu_item.save + menu_item = MenuItem.find(@settings_menu_item.id) + menu_item.update_attributes(item_attributes: params[:simple_menu_item][:item_attributes], item_options: params[:simple_menu_item][:item_options]) + format.html { redirect_to settings_menu_category_set_menu_items_path, notice: 'Menu item was successfully created.' } format.json { render :show, status: :created, location: @settings_menu_item } else @@ -46,8 +69,27 @@ class Settings::SetMenuItemsController < ApplicationController # PATCH/PUT /settings/menu_items/1 # PATCH/PUT /settings/menu_items/1.json def update + # Remove "" default first + params[:simple_menu_item][:item_attributes].delete_at(0) + params[:simple_menu_item][:item_options].delete_at(0) + + # Bind for Item Sets + if params[:simple_menu_item][:item_sets].count > 1 + params[:simple_menu_item][:item_sets].delete_at(0) + + sets = ItemSet.find(params[:simple_menu_item][:item_sets]) + + if sets.count > 0 + @settings_menu_item.item_sets = sets + end + end + + @settings_menu_item.menu_category_id = params[:menu_category_id] + respond_to do |format| if @settings_menu_item.update(settings_menu_item_params) + @settings_menu_item.update_attributes(item_attributes: params[:simple_menu_item][:item_attributes], item_options: params[:simple_menu_item][:item_options]) + format.html { redirect_to settings_menu_category_set_menu_items_path, notice: 'Menu item was successfully updated.' } format.json { render :show, status: :ok, location: @settings_menu_item } else @@ -79,8 +121,16 @@ class Settings::SetMenuItemsController < ApplicationController @category = MenuCategory.find(params[:menu_category_id]) end + def set_settings_item_attribute + @item_attributes = MenuItemAttribute.all.order("id asc").map{|a| [a.name, a.value]} + end + + def set_settings_item_option + @item_options = MenuItemOption.all + end + # Never trust parameters from the scary internet, only allow the white list through. def settings_menu_item_params - params.require(:set_menu_item).permit(:item_code, :name, :alt_name, :type, :image_path, :menu_category_id,:account_id , :menu_item_id, :min_qty, :min_selectable_item, :max_selectable_item, :created_by) + params.require(:set_menu_item).permit(:item_code, :name, :alt_name, :type, :image_path, :menu_category_id,:account_id , :item_attributes, :item_options, :min_qty, :is_sub_item, :is_available, :created_by) end end diff --git a/app/controllers/settings/simple_menu_items_controller.rb b/app/controllers/settings/simple_menu_items_controller.rb index 3fa1945d..9d3ac5ed 100644 --- a/app/controllers/settings/simple_menu_items_controller.rb +++ b/app/controllers/settings/simple_menu_items_controller.rb @@ -1,6 +1,8 @@ class Settings::SimpleMenuItemsController < ApplicationController before_action :set_settings_menu_item, only: [:show, :edit, :update, :destroy ] before_action :set_settings_menu_category, only: [:index, :show, :edit, :new, :update ,:create] + before_action :set_settings_item_attribute, only: [:index, :show, :edit, :new, :update ,:create] + before_action :set_settings_item_option, only: [:index, :show, :edit, :new, :update ,:create] # GET /settings/menu_items # GET /settings/menu_items.json def index @@ -16,11 +18,13 @@ class Settings::SimpleMenuItemsController < ApplicationController # GET /settings/menu_items/new def new - @settings_menu_item = MenuItem.new + @settings_menu_item = MenuItem.new + @item_sets = ItemSet.all end # GET /settings/menu_items/1/edit - def edit + def edit + @item_sets = ItemSet.all end # POST /settings/menu_items @@ -28,13 +32,30 @@ class Settings::SimpleMenuItemsController < ApplicationController def create @settings_menu_item = MenuItem.new(settings_menu_item_params) - if params[:simple_menu_item][:menu_item_id] == '' - @settings_menu_item.menu_category_id = params[:menu_category_id] - end + # if params[:simple_menu_item][:menu_item_id] == '' + @settings_menu_item.menu_category_id = params[:menu_category_id] + # end @settings_menu_item.created_by = current_login_employee.name + # Bind for Item Sets + if params[:simple_menu_item][:item_sets].count > 1 + params[:simple_menu_item][:item_sets].delete_at(0) + + sets = ItemSet.find(params[:simple_menu_item][:item_sets]) + + if sets.count > 0 + @settings_menu_item.item_sets = sets + end + end + + # Remove "" default first + params[:simple_menu_item][:item_attributes].delete_at(0) + params[:simple_menu_item][:item_options].delete_at(0) respond_to do |format| if @settings_menu_item.save + menu_item = MenuItem.find(@settings_menu_item.id) + menu_item.update_attributes(item_attributes: params[:simple_menu_item][:item_attributes], item_options: params[:simple_menu_item][:item_options]) + format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully created.' } format.json { render :show, status: :created, location: @settings_menu_item } else @@ -47,8 +68,26 @@ class Settings::SimpleMenuItemsController < ApplicationController # PATCH/PUT /settings/menu_items/1 # PATCH/PUT /settings/menu_items/1.json def update + # Remove "" default first + params[:simple_menu_item][:item_attributes].delete_at(0) + params[:simple_menu_item][:item_options].delete_at(0) + + # Bind for Item Sets + if params[:simple_menu_item][:item_sets].count > 1 + params[:simple_menu_item][:item_sets].delete_at(0) + + sets = ItemSet.find(params[:simple_menu_item][:item_sets]) + + if sets.count > 0 + @settings_menu_item.item_sets = sets + end + end + + @settings_menu_item.menu_category_id = params[:menu_category_id] + respond_to do |format| if @settings_menu_item.update(settings_menu_item_params) + @settings_menu_item.update_attributes(item_attributes: params[:simple_menu_item][:item_attributes], item_options: params[:simple_menu_item][:item_options]) format.html { redirect_to settings_menu_category_simple_menu_items_path, notice: 'Menu item was successfully updated.' } format.json { render :show, status: :ok, location: @settings_menu_item } else @@ -80,8 +119,16 @@ class Settings::SimpleMenuItemsController < ApplicationController @category = MenuCategory.find(params[:menu_category_id]) end + def set_settings_item_attribute + @item_attributes = MenuItemAttribute.all.order("id asc") #.map{|a| [a.name, a.value]} + end + + def set_settings_item_option + @item_options = MenuItemOption.all + end + # Never trust parameters from the scary internet, only allow the white list through. def settings_menu_item_params - params.require(:simple_menu_item).permit(:item_code, :name, :alt_name, :type, :image_path, :menu_category_id,:account_id,:item_attributes, :menu_item_id, :min_qty, :min_selectable_item, :max_selectable_item, :created_by) + params.require(:simple_menu_item).permit(:item_code, :name, :alt_name, :type, :image_path, :menu_category_id, :account_id, :item_attributes, :item_options, :min_qty, :is_sub_item, :is_available, :created_by) end end diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb index 2f575d9f..8213ae88 100644 --- a/app/models/menu_item.rb +++ b/app/models/menu_item.rb @@ -3,14 +3,14 @@ class MenuItem < ApplicationRecord belongs_to :menu_category, :optional => true has_many :menu_item_instances - belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true - has_many :children, :class_name => "MenuItem", foreign_key: "menu_item_id" + # belongs_to :parent, :class_name => "MenuItem", foreign_key: "menu_item_id", :optional => true + # has_many :children, :class_name => "MenuItem", foreign_key: "menu_item_id" belongs_to :account has_many :menu_item_sets has_many :item_sets, through: :menu_item_sets - validates_presence_of :name, :type, :min_qty, :taxable, :min_selectable_item, :max_selectable_item + validates_presence_of :name, :type, :min_qty, :taxable default_scope { order('item_code asc') } diff --git a/app/views/crm/customers/_form.html.erb b/app/views/crm/customers/_form.html.erb index c913651a..e9cef629 100644 --- a/app/views/crm/customers/_form.html.erb +++ b/app/views/crm/customers/_form.html.erb @@ -1,4 +1,3 @@ - <%= simple_form_for([:crm,@crm_customer]) do |f| %> <%= f.error_notification %> diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index 14e38822..71772c92 100644 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -124,7 +124,7 @@ $(document).on('click',".customer_tr",function(){ var url = "customers/" + customer_id + "/edit"; } - $("#customer_tax_profiles").children().removeAttr("selected").css({'color':'#000','background':'none'});; + $("#customer_tax_profiles").children().removeAttr("selected").css({'color':'#000','background':'none'}); $.ajax({ type: "GET", @@ -135,7 +135,6 @@ $(document).on('click',".customer_tr",function(){ // Selected for Taxes var taxes = JSON.stringify(data.tax_profiles); var parse_taxes = JSON.parse(taxes); - console.log(parse_taxes); $.each(parse_taxes, function(i, value){ $("#customer_tax_profiles option[value='" + value + "']").attr("selected","selected").css({'color':'#fff','background':'#215d9c'}); }); diff --git a/app/views/settings/item_sets/_form.html.erb b/app/views/settings/item_sets/_form.html.erb index e28cab09..28441ea5 100644 --- a/app/views/settings/item_sets/_form.html.erb +++ b/app/views/settings/item_sets/_form.html.erb @@ -9,5 +9,6 @@
<%= f.button :submit ,:class=>'btn btn-success'%> + <%= link_to 'Back', settings_item_sets_path,:class => 'btn btn-danger' %>
<% end %> diff --git a/app/views/settings/item_sets/edit.html.erb b/app/views/settings/item_sets/edit.html.erb index 2f0d54ba..55a86645 100644 --- a/app/views/settings/item_sets/edit.html.erb +++ b/app/views/settings/item_sets/edit.html.erb @@ -1,4 +1,3 @@

Editing Settings Item Set

<%= render 'form', settings_item_set: @settings_item_set %> -<%= link_to 'Back', settings_item_sets_path,:class => 'btn btn-danger' %> diff --git a/app/views/settings/item_sets/new.html.erb b/app/views/settings/item_sets/new.html.erb index ff581dc6..003b758d 100644 --- a/app/views/settings/item_sets/new.html.erb +++ b/app/views/settings/item_sets/new.html.erb @@ -2,4 +2,3 @@ <%= render 'form', settings_item_set: @settings_item_set %> -<%= link_to 'Back', settings_item_sets_path,:class => 'btn btn-danger' %> diff --git a/app/views/settings/set_menu_items/_form.html.erb b/app/views/settings/set_menu_items/_form.html.erb index 1ac499fd..f243fb74 100644 --- a/app/views/settings/set_menu_items/_form.html.erb +++ b/app/views/settings/set_menu_items/_form.html.erb @@ -1,36 +1,52 @@ <%= simple_form_for([:settings,@category, @settings_menu_item]) do |f| %> <%= f.error_notification %> -
+ +
- +
+ +
+
+
+ + <%= f.file_field :image_path, :class => "img-thumbnail" %>
- <%= f.file_field :image_path, :class => "img-thumbnail" %>
-
-
-
- <%= f.input :item_code %> - <%= f.input :name %> - <%= f.input :alt_name %> - <%= f.input :type %> - <%= f.input :account_id, :label => "Account type", :collection => Account.collection %> - <%= f.input :menu_item_id, :label => "Parent Menu Item", :collection => MenuItem.collection %> - - <%= f.input :min_qty %> - <%= f.input :min_selectable_item %> - <%= f.input :max_selectable_item %> +
+
+ <%= f.input :item_sets, :collection => @item_sets, :input_html => { :multiple => true }, :class => "form-control item_sets" %> +
-
-
- <%= f.button :submit %> +
+ <%= f.button :submit %> +
<% end %> diff --git a/app/views/settings/set_menu_items/edit.html.erb b/app/views/settings/set_menu_items/edit.html.erb index 158b7c1c..6a4eb567 100644 --- a/app/views/settings/set_menu_items/edit.html.erb +++ b/app/views/settings/set_menu_items/edit.html.erb @@ -1,5 +1,3 @@ - -
- <%= render 'form', settings_set_menu_item: @settings_menu_item %> + + <%= render 'form', settings_set_menu_item: @settings_menu_item, item_sets: @item_sets %>
+ + \ No newline at end of file diff --git a/app/views/settings/set_menu_items/new.html.erb b/app/views/settings/set_menu_items/new.html.erb index c7d277bf..f0eaf2df 100644 --- a/app/views/settings/set_menu_items/new.html.erb +++ b/app/views/settings/set_menu_items/new.html.erb @@ -11,5 +11,5 @@
  • New
  • - <%= render 'form', settings_set_menu_item: @settings_menu_item %> + <%= render 'form', settings_set_menu_item: @settings_menu_item, item_attributes: @item_attributes, item_options: @item_options, item_sets: @item_sets %>
    diff --git a/app/views/settings/simple_menu_items/_form.html.erb b/app/views/settings/simple_menu_items/_form.html.erb index 2edc1e50..721c7230 100644 --- a/app/views/settings/simple_menu_items/_form.html.erb +++ b/app/views/settings/simple_menu_items/_form.html.erb @@ -1,35 +1,52 @@ <%= simple_form_for([:settings,@category, @settings_menu_item]) do |f| %> <%= f.error_notification %> -
    + +
    - +
    + +
    +
    +
    + + <%= f.file_field :image_path, :class => "img-thumbnail" %>
    - <%= f.file_field :image_path, :class => "img-thumbnail" %>
    -
    -
    -
    - <%= f.input :item_code %> - <%= f.input :name %> - <%= f.input :alt_name %> - <%= f.input :type %> - <%= f.input :account_id, :label => "Account type", :collection => Account.collection %> - <%= f.input :menu_item_id, :label => "Parent Menu Item", :collection => MenuItem.collection %> - <%= f.input :min_qty %> - <%= f.input :min_selectable_item %> - <%= f.input :max_selectable_item %> +
    +
    + <%= f.input :item_sets, :collection => @item_sets, :input_html => { :multiple => true }, :class => "form-control item_sets" %> +
    -
    -
    - <%= f.button :submit %> +
    + <%= f.button :submit %> +
    <% end %> diff --git a/app/views/settings/simple_menu_items/edit.html.erb b/app/views/settings/simple_menu_items/edit.html.erb index 07849c07..84c60e04 100644 --- a/app/views/settings/simple_menu_items/edit.html.erb +++ b/app/views/settings/simple_menu_items/edit.html.erb @@ -1,7 +1,3 @@ - -
    - <%= render 'form', settings_simple_menu_item: @settings_menu_item %> + + <%= render 'form', settings_simple_menu_item: @settings_menu_item, item_sets: @item_sets %>
    + + diff --git a/app/views/settings/simple_menu_items/new.html.erb b/app/views/settings/simple_menu_items/new.html.erb index 9e18525b..158e7d52 100644 --- a/app/views/settings/simple_menu_items/new.html.erb +++ b/app/views/settings/simple_menu_items/new.html.erb @@ -10,5 +10,9 @@
  • New
  • - <%= render 'form', settings_simple_menu_item: @settings_menu_item %> +
    +
    + <%= render 'form', settings_simple_menu_item: @settings_menu_item, item_attributes: @item_attributes, item_options: @item_options, item_sets: @item_sets %> +
    +
    diff --git a/db/migrate/20170331024749_create_menu_items.rb b/db/migrate/20170331024749_create_menu_items.rb index ce6d1486..75897d52 100644 --- a/db/migrate/20170331024749_create_menu_items.rb +++ b/db/migrate/20170331024749_create_menu_items.rb @@ -1,4 +1,3 @@ - class CreateMenuItems < ActiveRecord::Migration[5.1] def change create_table :menu_items do |t| @@ -10,12 +9,16 @@ class CreateMenuItems < ActiveRecord::Migration[5.1] t.string :information t.string :type, :null => false, :default => "SimpleMenuItem" t.references :menu_category, foreign_key: true - t.references :menu_item, foreign_key: true + t.json :item_attributes + t.json :item_options + # t.references :menu_item, foreign_key: true t.references :account, foreign_key: true t.integer :min_qty, :null => false, :default => 1 t.boolean :taxable, :null => false, :default => true - t.integer :min_selectable_item, :null => false, :default => 1 - t.integer :max_selectable_item, :null => false, :default => 1 + t.boolean :is_sub_item, :null => false, :default => false + t.boolean :is_available, :null => false, :default => true + # t.integer :min_selectable_item, :null => false, :default => 1 + # t.integer :max_selectable_item, :null => false, :default => 1 t.string :created_by t.timestamps diff --git a/db/migrate/20170628103624_create_print_settings.rb b/db/migrate/20170628103624_create_print_settings.rb index aca49a0d..28c0ae57 100644 --- a/db/migrate/20170628103624_create_print_settings.rb +++ b/db/migrate/20170628103624_create_print_settings.rb @@ -3,11 +3,7 @@ class CreatePrintSettings < ActiveRecord::Migration[5.1] create_table :print_settings do |t| t.string :name, :null => false t.string :unique_code, :null => false - t.string :template - t.string :db_name - t.string :db_type - t.string :db_username - t.string :db_password + t.string :template t.string :printer_name, :null => false t.string :api_settings t.decimal :page_width, :null => false, :default => 200 diff --git a/db/migrate/20170814041543_remove_d_bcols_from_print_settings.rb b/db/migrate/20170814041543_remove_d_bcols_from_print_settings.rb deleted file mode 100644 index 48a7de5d..00000000 --- a/db/migrate/20170814041543_remove_d_bcols_from_print_settings.rb +++ /dev/null @@ -1,8 +0,0 @@ -class RemoveDBcolsFromPrintSettings < ActiveRecord::Migration[5.1] - def change - remove_column :print_settings, :db_name, :string - remove_column :print_settings, :db_type, :string - remove_column :print_settings, :db_username, :string - remove_column :print_settings, :db_password, :string - end -end diff --git a/public/image/menu_images/if_Dish_food_Dome_dish_kitchen_restaurant_1886917.png b/public/image/menu_images/if_Dish_food_Dome_dish_kitchen_restaurant_1886917.png new file mode 100644 index 00000000..0c364b22 Binary files /dev/null and b/public/image/menu_images/if_Dish_food_Dome_dish_kitchen_restaurant_1886917.png differ