add menu api
This commit is contained in:
9
app/controllers/api/restaurant/item_sets_controller.rb
Normal file
9
app/controllers/api/restaurant/item_sets_controller.rb
Normal file
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -6,8 +6,4 @@ class Api::Restaurant::MenuItemAttributesController < Api::ApiController
|
||||
def index
|
||||
@menu_attributes = MenuItemAttribute.all
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
6
app/views/api/restaurant/item_sets/index.json.jbuilder
Normal file
6
app/views/api/restaurant/item_sets/index.json.jbuilder
Normal file
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<hr class="hr_advance" />
|
||||
<li><%= link_to "Accounts", settings_accounts_path, :tabindex =>"-1" %></li>
|
||||
<hr class="hr_advance" />
|
||||
<li><%= link_to "Promotion", settings_promotions_path, :tabindex =>"-1" %></li>]
|
||||
<li><%= link_to "Promotion", settings_promotions_path, :tabindex =>"-1" %></li>
|
||||
<li><%= link_to "Products", settings_products_path, :tabindex =>"-1" %></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
<div class="form-inputs">
|
||||
<%= 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'} %>
|
||||
</div>
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Alt Name</th>
|
||||
<th>Min selectable qty</th>
|
||||
<th>Max selectable qty</th>
|
||||
<th>Action</th>
|
||||
@@ -24,6 +25,7 @@
|
||||
<% @settings_item_sets.each do |item| %>
|
||||
<tr>
|
||||
<td><%= item.name %></td>
|
||||
<td><%= item.alt_name %></td>
|
||||
<td><%= item.min_selectable_qty %></td>
|
||||
<td><%= item.max_selectable_qty %></td>
|
||||
<td><%= link_to 'Show', settings_item_set_path(item),:class=>'btn btn-sm btn-success' %>
|
||||
|
||||
@@ -17,6 +17,10 @@
|
||||
<td><strong>Name:</strong></td>
|
||||
<td><%= @settings_item_set.name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Alt Name:</strong></td>
|
||||
<td><%= @settings_item_set.alt_name %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Min selectable qty:</strong></td>
|
||||
<td> <%= @settings_item_set.min_selectable_qty %></td>
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<%= f.error_notification %>
|
||||
|
||||
<div class="form-inputs">
|
||||
<%= 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 %>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-actions">
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
<th>Menu</th>
|
||||
<th>Name</th>
|
||||
<th>Alt name</th>
|
||||
<th>Is Available</th>
|
||||
<th>Order by</th>
|
||||
<th>Parent</th>
|
||||
<th></th>
|
||||
@@ -31,6 +32,7 @@
|
||||
<td><%= link_to settings_menu_category.name, settings_menu_category_path(settings_menu_category) %></td>
|
||||
|
||||
<td><%= settings_menu_category.alt_name rescue ''%></td>
|
||||
<td><%= settings_menu_category.is_available rescue false%></td>
|
||||
<td><%= settings_menu_category.order_by rescue ''%></td>
|
||||
<td><%= settings_menu_category.parent.name rescue ''%></td>
|
||||
<td><%= 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?' } %></td></td>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<th>Menu</th>
|
||||
<th>Name</th>
|
||||
<th>Alt name</th>
|
||||
<th>Is Available</th>
|
||||
<th>Order by</th>
|
||||
<th>Created At</th>
|
||||
<th>Action</th>
|
||||
@@ -27,6 +28,7 @@
|
||||
<td><%= @settings_menu_category.menu.name %></td>
|
||||
<td><%= @settings_menu_category.name rescue "-" %></td>
|
||||
<td><%= @settings_menu_category.alt_name %></td>
|
||||
<td><%= settings_menu_category.is_available rescue false%></td>
|
||||
<td><%= @settings_menu_category.order_by %></td>
|
||||
<td><%= @settings_menu_category.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_menu_category_path(@settings_menu_category, @settings_menu_category) %></td>
|
||||
|
||||
@@ -21,10 +21,7 @@
|
||||
<th>Type</th>
|
||||
<th>Account Type</th>
|
||||
<th>Menu category</th>
|
||||
<th>Menu item</th>
|
||||
<th>Min qty</th>
|
||||
<th>Min selectable item</th>
|
||||
<th>Max selectable item</th>
|
||||
<th>Created At</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
@@ -38,10 +35,7 @@
|
||||
<td><%= @settings_menu_item.type %></td>
|
||||
<td><%= @settings_menu_item.account.title %></td>
|
||||
<td><%= @settings_menu_item.menu_category_id %></td>
|
||||
<td><%= @settings_menu_item.menu_item_id %></td>
|
||||
<td><%= @settings_menu_item.min_qty %></td>
|
||||
<td><%= @settings_menu_item.min_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.max_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, @settings_menu_item) %></td>
|
||||
@@ -51,58 +45,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if @sub_menu.count > 0 %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Sub Menu Items </h4>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item code</th>
|
||||
<th>Name</th>
|
||||
<th>Alt name</th>
|
||||
<th>Type</th>
|
||||
<th>Parent Item</th>
|
||||
<th>Created by</th>
|
||||
<th>Created at</th>
|
||||
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<% @sub_menu.each do |settings_menu_item| %>
|
||||
<tr>
|
||||
<td><%= settings_menu_item.item_code %></td>
|
||||
<td><%= settings_menu_item.name %></td>
|
||||
<td><%= settings_menu_item.alt_name %></td>
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
<% else %>
|
||||
<td><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
<% end %>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
|
||||
|
||||
<% end %>
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Item Instances
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
<th>Type</th>
|
||||
<th>Accout</th>
|
||||
<th>Menu category</th>
|
||||
<th>Menu item</th>
|
||||
<!-- <th>Menu item</th> -->
|
||||
<th>Min qty</th>
|
||||
<th>Min selectable item</th>
|
||||
<th>Max selectable item</th>
|
||||
<!-- <th>Min selectable item</th>
|
||||
<th>Max selectable item</th> -->
|
||||
<th>Created At</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
@@ -40,10 +40,7 @@
|
||||
<td><%= @settings_menu_item.type %></td>
|
||||
<td><%= @settings_menu_item.account.title %></td>
|
||||
<td><%= @settings_menu_item.menu_category_id %></td>
|
||||
<td><%= @settings_menu_item.menu_item_id %></td>
|
||||
<td><%= @settings_menu_item.min_qty %></td>
|
||||
<td><%= @settings_menu_item.min_selectable_item %></td>
|
||||
<td><%= @settings_menu_item.max_selectable_item %></td>
|
||||
|
||||
<td><%= @settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
@@ -54,60 +51,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<% if @sub_menu.count > 0 %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Sub Menu Items </h4>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item code</th>
|
||||
<th>Name</th>
|
||||
<th>Alt name</th>
|
||||
<th>Type</th>
|
||||
<th>Parent Item</th>
|
||||
<th>Created by</th>
|
||||
<th>Created at</th>
|
||||
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<% @sub_menu.each do |settings_menu_item| %>
|
||||
<tr>
|
||||
<td><%= settings_menu_item.item_code %></td>
|
||||
<td><%= settings_menu_item.name %></td>
|
||||
<td><%= settings_menu_item.alt_name %></td>
|
||||
<td><%= settings_menu_item.type %></td>
|
||||
<td><%= settings_menu_item.parent.name rescue "-" %></td>
|
||||
<td><%= settings_menu_item.created_by %></td>
|
||||
|
||||
<td><%= settings_menu_item.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %></td>
|
||||
|
||||
|
||||
<% if settings_menu_item.type == "SimpleMenuItem" %>
|
||||
<td><%= link_to 'Show', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_simple_menu_item_path(@category, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_menu_category_simple_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
<% else %>
|
||||
<td><%= link_to 'Show', settings_menu_category_set_menu_item_path(@category, settings_menu_item ) %></td>
|
||||
<td><%= link_to 'Edit', edit_settings_menu_category_set_menu_item_path(@category, settings_menu_item) %></td>
|
||||
<td><%= link_to 'Destroy', settings_menu_category_set_menu_item_path(@category, settings_menu_item ), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
||||
<% end %>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<%= paginate @sub_menu, param_name: :page, :outer_window => 3 %>
|
||||
|
||||
<% end %>
|
||||
|
||||
<br>
|
||||
<div class="card">
|
||||
<div class="card-block">
|
||||
<h4 class="card-title">Menu Item Instances
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user