From 29b3f945737f81045514552dcaa01b0c9f6e7904 Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 17 Aug 2017 18:55:13 +0630 Subject: [PATCH] add menu api --- .../api/restaurant/item_sets_controller.rb | 9 +++ .../api/restaurant/menu_controller.rb | 3 +- .../menu_item_attributes_controller.rb | 4 -- .../concerns/token_verification.rb | 3 +- .../settings/item_sets_controller.rb | 2 +- .../settings/menu_categories_controller.rb | 2 +- .../settings/set_menu_items_controller.rb | 2 +- .../settings/simple_menu_items_controller.rb | 2 +- app/models/employee.rb | 1 - .../restaurant/item_sets/index.json.jbuilder | 6 ++ .../api/restaurant/menu/_menu.json.jbuilder | 5 +- .../restaurant/menu/_menu_item.json.jbuilder | 60 ++++++++++-------- .../api/restaurant/menu/index.json.jbuilder | 12 ++-- app/views/layouts/_header.html.erb | 2 +- app/views/settings/item_sets/_form.html.erb | 1 + app/views/settings/item_sets/index.html.erb | 2 + app/views/settings/item_sets/show.html.erb | 4 ++ .../settings/menu_categories/_form.html.erb | 4 +- .../settings/menu_categories/index.html.erb | 2 + .../settings/menu_categories/show.html.erb | 2 + .../settings/set_menu_items/show.html.erb | 57 ----------------- .../settings/simple_menu_items/show.html.erb | 62 +------------------ config/routes.rb | 1 + .../20170327152733_create_menu_categories.rb | 2 +- db/migrate/20170811071000_create_item_sets.rb | 1 + .../20170816042256_settings_products.rb | 1 - 26 files changed, 84 insertions(+), 168 deletions(-) create mode 100644 app/controllers/api/restaurant/item_sets_controller.rb create mode 100644 app/views/api/restaurant/item_sets/index.json.jbuilder diff --git a/app/controllers/api/restaurant/item_sets_controller.rb b/app/controllers/api/restaurant/item_sets_controller.rb new file mode 100644 index 00000000..a7ad9efc --- /dev/null +++ b/app/controllers/api/restaurant/item_sets_controller.rb @@ -0,0 +1,9 @@ +class Api::Restaurant::ItemSetsController < Api::ApiController + + #Description + # Pull the default menu details and also other available (active) menus + # Input Params - order_id + def index + @item_sets = ItemSet.all + end +end diff --git a/app/controllers/api/restaurant/menu_controller.rb b/app/controllers/api/restaurant/menu_controller.rb index fe7983ea..f6f2902b 100644 --- a/app/controllers/api/restaurant/menu_controller.rb +++ b/app/controllers/api/restaurant/menu_controller.rb @@ -5,8 +5,7 @@ class Api::Restaurant::MenuController < Api::ApiController # Input Params - order_id def index @menus = Menu.all - @current_menu = Menu.current_menu - + # @current_menu = Menu.current_menu end #Description diff --git a/app/controllers/api/restaurant/menu_item_attributes_controller.rb b/app/controllers/api/restaurant/menu_item_attributes_controller.rb index f2aead8f..1b6a48d4 100644 --- a/app/controllers/api/restaurant/menu_item_attributes_controller.rb +++ b/app/controllers/api/restaurant/menu_item_attributes_controller.rb @@ -6,8 +6,4 @@ class Api::Restaurant::MenuItemAttributesController < Api::ApiController def index @menu_attributes = MenuItemAttribute.all end - - - - end diff --git a/app/controllers/concerns/token_verification.rb b/app/controllers/concerns/token_verification.rb index 0cc6c263..66658b6a 100644 --- a/app/controllers/concerns/token_verification.rb +++ b/app/controllers/concerns/token_verification.rb @@ -14,10 +14,9 @@ module TokenVerification end def authenticate_token - authenticate_with_http_token do |token, options| + authenticate_with_http_token do |token, options| #@current_user = User.find_by(api_key: token) Rails.logger.debug "token - " + token.to_s - @user = Employee.authenticate_by_token(token) if @user return true diff --git a/app/controllers/settings/item_sets_controller.rb b/app/controllers/settings/item_sets_controller.rb index 5564ed98..cbd74edb 100644 --- a/app/controllers/settings/item_sets_controller.rb +++ b/app/controllers/settings/item_sets_controller.rb @@ -69,6 +69,6 @@ class Settings::ItemSetsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def settings_item_set_params - params.require(:item_set).permit(:name, :min_selectable_qty, :max_selectable_qty) + params.require(:item_set).permit(:name, :alt_name, :min_selectable_qty, :max_selectable_qty) end end diff --git a/app/controllers/settings/menu_categories_controller.rb b/app/controllers/settings/menu_categories_controller.rb index 8ca9cfb4..a15cca20 100644 --- a/app/controllers/settings/menu_categories_controller.rb +++ b/app/controllers/settings/menu_categories_controller.rb @@ -89,6 +89,6 @@ class Settings::MenuCategoriesController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def settings_menu_category_params - params.require(:menu_category).permit(:code, :menu_id, :name, :alt_name, :order_by, :menu_category_id) + params.require(:menu_category).permit(:code, :menu_id, :name, :alt_name, :order_by, :menu_category_id, :is_available) end end diff --git a/app/controllers/settings/set_menu_items_controller.rb b/app/controllers/settings/set_menu_items_controller.rb index 64b9c945..60fa3b7d 100644 --- a/app/controllers/settings/set_menu_items_controller.rb +++ b/app/controllers/settings/set_menu_items_controller.rb @@ -12,7 +12,7 @@ class Settings::SetMenuItemsController < ApplicationController # GET /settings/menu_items/1 # GET /settings/menu_items/1.json def show - @sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) + # @sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) @menu_item_instance = MenuItemInstance.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) end diff --git a/app/controllers/settings/simple_menu_items_controller.rb b/app/controllers/settings/simple_menu_items_controller.rb index 9d3ac5ed..60949618 100644 --- a/app/controllers/settings/simple_menu_items_controller.rb +++ b/app/controllers/settings/simple_menu_items_controller.rb @@ -12,7 +12,7 @@ class Settings::SimpleMenuItemsController < ApplicationController # GET /settings/menu_items/1 # GET /settings/menu_items/1.json def show - @sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) + # @sub_menu = MenuItem.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) @menu_item_instance = MenuItemInstance.where("menu_item_id=?",params[:id]).page(params[:page]).per(10) end diff --git a/app/models/employee.rb b/app/models/employee.rb index 7693c448..85aeaec1 100644 --- a/app/models/employee.rb +++ b/app/models/employee.rb @@ -35,7 +35,6 @@ class Employee < ApplicationRecord end def self.authenticate_by_token(session_token) - if (session_token) user = Employee.find_by_token_session(session_token) if user && user.session_expiry.utc > DateTime.now.utc diff --git a/app/views/api/restaurant/item_sets/index.json.jbuilder b/app/views/api/restaurant/item_sets/index.json.jbuilder new file mode 100644 index 00000000..eb39022d --- /dev/null +++ b/app/views/api/restaurant/item_sets/index.json.jbuilder @@ -0,0 +1,6 @@ +json.array! @item_sets do |set| + json.name set.name + json.alt_name set.alt_name + json.min_selectable_qty set.min_selectable_qty + json.max_selectable_qty set.max_selectable_qty +end diff --git a/app/views/api/restaurant/menu/_menu.json.jbuilder b/app/views/api/restaurant/menu/_menu.json.jbuilder index 43721ff0..cfa950d7 100644 --- a/app/views/api/restaurant/menu/_menu.json.jbuilder +++ b/app/views/api/restaurant/menu/_menu.json.jbuilder @@ -5,13 +5,14 @@ json.valid_time_from menu.valid_time_from.strftime("%H:%M") json.valid_time_to menu.valid_time_to.strftime("%H:%M") if (menu.menu_categories) - json.menu_categories menu.menu_categories do |category| + json.categories menu.menu_categories do |category| json.id category.id json.name category.name json.alt_name category.alt_name + json.is_available category.is_available if category.menu_items - json.menu_items category.menu_items do |item| + json.items category.menu_items do |item| json.partial! 'api/restaurant/menu/menu_item', item: item end end diff --git a/app/views/api/restaurant/menu/_menu_item.json.jbuilder b/app/views/api/restaurant/menu/_menu_item.json.jbuilder index c93c3b12..f0b790b7 100644 --- a/app/views/api/restaurant/menu/_menu_item.json.jbuilder +++ b/app/views/api/restaurant/menu/_menu_item.json.jbuilder @@ -1,40 +1,46 @@ #Menu Item Information -json.item_code item.item_code -json.name item.name -json.alt_name item.alt_name -json.type item.type -json.min_qty item.min_qty -json.min_selectable_item item.min_selectable_item -json.max_selectable_item item.max_selectable_item +json.id item.id +json.item_code item.item_code +json.name item.name +json.alt_name item.alt_name +json.image item.image_path.url +json.description item.description +json.Information item.information +json.type item.type +json.account_id item.account_id +json.min_qty item.min_qty +json.is_available item.is_available +json.is_sub_item item.is_sub_item +json.attributes item.item_attributes +json.options item.item_options +# json.min_selectable_item item.min_selectable_item +# json.max_selectable_item item.max_selectable_item #Item instance -if item.menu_item_instances.count == 1 then +# if item.menu_item_instances.count == 1 then +# item_instance = item.menu_item_instances[0] +# json.price = item_instance.price +# json.is_available = item_instance.is_available +# json.is_on_promotion = item_instance.is_on_promotion +# json.promotion_price = item_instance.promotion_price +# json.item_attributes = item_instance.item_attributes - item_instance = item.menu_item_instances[0] - json.price = item_instance.price - json.is_available = item_instance.is_available - json.is_on_promotion = item_instance.is_on_promotion - json.promotion_price = item_instance.promotion_price - json.item_attributes = item_instance.item_attributes - -elsif item.menu_item_instances.count > 1 then - - json.item_instances item.menu_item_instances do |is| - json.item_instance_item_code = is.item_instance_code - json.item_instance_name = is.item_instance_name +# elsif item.menu_item_instances.count > 1 then + json.instances item.menu_item_instances do |is| + json.code = is.item_instance_code + json.name = is.item_instance_name json.price = is.price json.is_available = is.is_available json.is_on_promotion = is.is_on_promotion json.promotion_price = is.promotion_price json.item_attributes = is.item_attributes - end + # end end #Child Menu items -if (item.children) then - json.set_items item.children.each do |item| - json.partial! 'api/restaurant/menu/menu_item', item: item - end - -end +# if (item.children) then +# json.set_items item.children.each do |item| +# json.partial! 'api/restaurant/menu/menu_item', item: item +# end +# end diff --git a/app/views/api/restaurant/menu/index.json.jbuilder b/app/views/api/restaurant/menu/index.json.jbuilder index b4241854..55e876f6 100644 --- a/app/views/api/restaurant/menu/index.json.jbuilder +++ b/app/views/api/restaurant/menu/index.json.jbuilder @@ -4,9 +4,11 @@ json.array! @menus do |menu| json.valid_days menu.valid_days json.valid_time_from menu.valid_time_from.strftime("%H:%M") json.valid_time_to menu.valid_time_to.strftime("%H:%M") - if (@current_menu) - json.current_menu do - json.partial! 'api/restaurant/menu/menu', menu: @current_menu - end - end + + json.partial! 'api/restaurant/menu/menu', menu: menu + # if (@current_menu) + # json.current_menu do + # json.partial! 'api/restaurant/menu/menu', menu: @current_menu + # end + # end end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index d7ccedaf..0daa8f5f 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -31,7 +31,7 @@
  • <%= link_to "Accounts", settings_accounts_path, :tabindex =>"-1" %>

  • -
  • <%= link_to "Promotion", settings_promotions_path, :tabindex =>"-1" %>
  • ] +
  • <%= link_to "Promotion", settings_promotions_path, :tabindex =>"-1" %>
  • <%= link_to "Products", settings_products_path, :tabindex =>"-1" %>
  • diff --git a/app/views/settings/item_sets/_form.html.erb b/app/views/settings/item_sets/_form.html.erb index 28441ea5..8eb23795 100644 --- a/app/views/settings/item_sets/_form.html.erb +++ b/app/views/settings/item_sets/_form.html.erb @@ -3,6 +3,7 @@
    <%= f.input :name %> + <%= f.input :alt_name %> <%= f.input :min_selectable_qty,input_html: {value: f.object.min_selectable_qty || '0'} %> <%= f.input :max_selectable_qty,input_html: {value: f.object.max_selectable_qty || '0'} %>
    diff --git a/app/views/settings/item_sets/index.html.erb b/app/views/settings/item_sets/index.html.erb index 80db10b9..b530a018 100644 --- a/app/views/settings/item_sets/index.html.erb +++ b/app/views/settings/item_sets/index.html.erb @@ -14,6 +14,7 @@ Name + Alt Name Min selectable qty Max selectable qty Action @@ -24,6 +25,7 @@ <% @settings_item_sets.each do |item| %> <%= item.name %> + <%= item.alt_name %> <%= item.min_selectable_qty %> <%= item.max_selectable_qty %> <%= link_to 'Show', settings_item_set_path(item),:class=>'btn btn-sm btn-success' %> diff --git a/app/views/settings/item_sets/show.html.erb b/app/views/settings/item_sets/show.html.erb index f863b5fc..21e5f132 100644 --- a/app/views/settings/item_sets/show.html.erb +++ b/app/views/settings/item_sets/show.html.erb @@ -17,6 +17,10 @@ Name: <%= @settings_item_set.name %> + + Alt Name: + <%= @settings_item_set.alt_name %> + Min selectable qty: <%= @settings_item_set.min_selectable_qty %> diff --git a/app/views/settings/menu_categories/_form.html.erb b/app/views/settings/menu_categories/_form.html.erb index 6a48555d..b611b397 100644 --- a/app/views/settings/menu_categories/_form.html.erb +++ b/app/views/settings/menu_categories/_form.html.erb @@ -2,13 +2,13 @@ <%= f.error_notification %>
    - <%= f.input :menu_id, as: :hidden %> + <%= f.input :menu_id, as: :hidden %> <%= f.input :code, label: "Category Code" %> <%= f.input :name %> <%= f.input :alt_name %> + <%= f.input :is_available %> <%= f.input :order_by %> <%= f.association :parent %> -
    diff --git a/app/views/settings/menu_categories/index.html.erb b/app/views/settings/menu_categories/index.html.erb index 8ac80a16..9345469c 100644 --- a/app/views/settings/menu_categories/index.html.erb +++ b/app/views/settings/menu_categories/index.html.erb @@ -17,6 +17,7 @@ Menu Name Alt name + Is Available Order by Parent @@ -31,6 +32,7 @@ <%= link_to settings_menu_category.name, settings_menu_category_path(settings_menu_category) %> <%= settings_menu_category.alt_name rescue ''%> + <%= settings_menu_category.is_available rescue false%> <%= settings_menu_category.order_by rescue ''%> <%= settings_menu_category.parent.name rescue ''%> <%= link_to 'Edit', edit_settings_menu_category_path(settings_menu_category) %> | <%= link_to 'Destroy', settings_menu_category_path(settings_menu_category), method: :delete, data: { confirm: 'Are you sure?' } %> diff --git a/app/views/settings/menu_categories/show.html.erb b/app/views/settings/menu_categories/show.html.erb index 7e1f44af..737709cd 100644 --- a/app/views/settings/menu_categories/show.html.erb +++ b/app/views/settings/menu_categories/show.html.erb @@ -16,6 +16,7 @@ Menu Name Alt name + Is Available Order by Created At Action @@ -27,6 +28,7 @@ <%= @settings_menu_category.menu.name %> <%= @settings_menu_category.name rescue "-" %> <%= @settings_menu_category.alt_name %> + <%= settings_menu_category.is_available rescue false%> <%= @settings_menu_category.order_by %> <%= @settings_menu_category.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> <%= link_to 'Edit', edit_settings_menu_menu_category_path(@settings_menu_category, @settings_menu_category) %> diff --git a/app/views/settings/set_menu_items/show.html.erb b/app/views/settings/set_menu_items/show.html.erb index a5762fc3..6cec8cab 100644 --- a/app/views/settings/set_menu_items/show.html.erb +++ b/app/views/settings/set_menu_items/show.html.erb @@ -21,10 +21,7 @@ Type Account Type Menu category - Menu item Min qty - Min selectable item - Max selectable item Created At Action @@ -38,10 +35,7 @@ <%= @settings_menu_item.type %> <%= @settings_menu_item.account.title %> <%= @settings_menu_item.menu_category_id %> - <%= @settings_menu_item.menu_item_id %> <%= @settings_menu_item.min_qty %> - <%= @settings_menu_item.min_selectable_item %> - <%= @settings_menu_item.max_selectable_item %> <%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> <%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, @settings_menu_item) %> @@ -51,58 +45,7 @@
    -<% if @sub_menu.count > 0 %> -
    -
    -
    -

    Sub Menu Items

    - - - - - - - - - - - - - - - - - <% @sub_menu.each do |settings_menu_item| %> - - - - - - - - - - - <% if settings_menu_item.type == "SimpleMenuItem" %> - - - - <% else %> - - - - <% end %> - - <% end %> - -
    Item codeNameAlt nameTypeParent ItemCreated byCreated at
    <%= settings_menu_item.item_code %><%= settings_menu_item.name %><%= settings_menu_item.alt_name %><%= settings_menu_item.type %><%= settings_menu_item.parent.name rescue "-" %><%= settings_menu_item.created_by %><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %>
    -
    -
    - <%= paginate @sub_menu, param_name: :page, :outer_window => 3 %> - -<% end %> -

    Menu Item Instances diff --git a/app/views/settings/simple_menu_items/show.html.erb b/app/views/settings/simple_menu_items/show.html.erb index 9bfae1b0..d9961c92 100644 --- a/app/views/settings/simple_menu_items/show.html.erb +++ b/app/views/settings/simple_menu_items/show.html.erb @@ -23,10 +23,10 @@ Type Accout Menu category - Menu item + Min qty - Min selectable item - Max selectable item + Created At Action @@ -40,10 +40,7 @@ <%= @settings_menu_item.type %> <%= @settings_menu_item.account.title %> <%= @settings_menu_item.menu_category_id %> - <%= @settings_menu_item.menu_item_id %> <%= @settings_menu_item.min_qty %> - <%= @settings_menu_item.min_selectable_item %> - <%= @settings_menu_item.max_selectable_item %> <%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> @@ -54,60 +51,7 @@

    -<% if @sub_menu.count > 0 %> -
    -
    -
    -

    Sub Menu Items

    - - - - - - - - - - - - - - - - - <% @sub_menu.each do |settings_menu_item| %> - - - - - - - - - - - - <% if settings_menu_item.type == "SimpleMenuItem" %> - - - - <% else %> - - - - <% end %> - - <% end %> - -
    Item codeNameAlt nameTypeParent ItemCreated byCreated at
    <%= settings_menu_item.item_code %><%= settings_menu_item.name %><%= settings_menu_item.alt_name %><%= settings_menu_item.type %><%= settings_menu_item.parent.name rescue "-" %><%= settings_menu_item.created_by %><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %>
    -
    -
    - <%= paginate @sub_menu, param_name: :page, :outer_window => 3 %> - -<% end %> - -

    Menu Item Instances diff --git a/config/routes.rb b/config/routes.rb index 631f1316..619295eb 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,6 +35,7 @@ Rails.application.routes.draw do resources :menu_item_attributes, only: [:index] resources :menu_item_options, only: [:index] resources :menu_sold_out, only: [:index] + get "item_sets" => "item_sets#index" end #User request move table or bills diff --git a/db/migrate/20170327152733_create_menu_categories.rb b/db/migrate/20170327152733_create_menu_categories.rb index 59e3a8c9..3b978654 100644 --- a/db/migrate/20170327152733_create_menu_categories.rb +++ b/db/migrate/20170327152733_create_menu_categories.rb @@ -8,7 +8,7 @@ class CreateMenuCategories < ActiveRecord::Migration[5.1] t.integer :order_by t.string :created_by, :null => false t.references :menu_category, :null => true - + t.boolean :is_available, :null => false, :default => true t.timestamps end end diff --git a/db/migrate/20170811071000_create_item_sets.rb b/db/migrate/20170811071000_create_item_sets.rb index d666222c..07b42355 100644 --- a/db/migrate/20170811071000_create_item_sets.rb +++ b/db/migrate/20170811071000_create_item_sets.rb @@ -2,6 +2,7 @@ class CreateItemSets < ActiveRecord::Migration[5.1] def change create_table :item_sets do |t| t.string :name + t.string :alt_name t.integer :min_selectable_qty t.integer :max_selectable_qty diff --git a/db/migrate/20170816042256_settings_products.rb b/db/migrate/20170816042256_settings_products.rb index 69c790fc..73535db3 100644 --- a/db/migrate/20170816042256_settings_products.rb +++ b/db/migrate/20170816042256_settings_products.rb @@ -2,7 +2,6 @@ class SettingsProducts < ActiveRecord::Migration[5.1] def change create_table :products do |t| t.string :item_code, :limit => 16 - t.string :name, :null => false t.string :alt_name t.integer :unit_price