From 3e9b9c6b8b3a428818b16da5be0c50d99947489b Mon Sep 17 00:00:00 2001 From: yamin Date: Wed, 16 Aug 2017 10:46:03 +0630 Subject: [PATCH 1/8] CalculatePriceInDiningCharges --- .../settings/dining_charges_controller.rb | 2 +- .../settings/dining_charges/_form.html.erb | 43 +++++++++++++++++-- .../settings/dining_charges/new.html.erb | 6 +-- 3 files changed, 44 insertions(+), 7 deletions(-) diff --git a/app/controllers/settings/dining_charges_controller.rb b/app/controllers/settings/dining_charges_controller.rb index 31763b02..854354c2 100644 --- a/app/controllers/settings/dining_charges_controller.rb +++ b/app/controllers/settings/dining_charges_controller.rb @@ -97,6 +97,6 @@ class Settings::DiningChargesController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def dining_charge_params # params.fetch(:dining_charge, {}) - params.require(:dining_charge).permit(:item_code, :unit_price, :taxable, :charge_type,:minimum_free_time ,:charge_block,:time_rounding,:time_rounding_block, :zone_id) + params.require(:dining_charge).permit(:item_code, :unit_price, :taxable, :charge_type,:minimum_free_time ,:charge_block,:time_rounding,:time_rounding_block, :zone_id, :time_rounding_block_price) end end diff --git a/app/views/settings/dining_charges/_form.html.erb b/app/views/settings/dining_charges/_form.html.erb index 2349025a..5cc25062 100644 --- a/app/views/settings/dining_charges/_form.html.erb +++ b/app/views/settings/dining_charges/_form.html.erb @@ -3,13 +3,14 @@
<%= f.input :item_code, :input_html => { :id => 'item_code' } %> - <%= f.input :unit_price %> + <%= f.input :unit_price, :input_html => { :id => 'unit_price'} %> <%= f.input :taxable %> <%= f.input :charge_type, :collection => [:hr, :day] %> <%= f.input :minimum_free_time %> - <%= f.input :charge_block %> + <%= f.input :charge_block, :input_html => { :id => 'charge_block'} %> <%= f.input :time_rounding %> - <%= f.input :time_rounding_block %> + <%= f.input :time_rounding_block, :input_html => { :id => 'time_rounding_block'} %> + <%= f.input :time_rounding_block_price, :input_html => { :id => 'time_rounding_block_price'} %>
@@ -17,3 +18,39 @@
<% end %> + diff --git a/app/views/settings/dining_charges/new.html.erb b/app/views/settings/dining_charges/new.html.erb index 2aa13a4b..bece2a2e 100644 --- a/app/views/settings/dining_charges/new.html.erb +++ b/app/views/settings/dining_charges/new.html.erb @@ -16,8 +16,9 @@ <%= render 'form', dining_charge: @dining_charge %> + \ No newline at end of file From db43ae186c45812bc9213e58f320ca5fae1d15e1 Mon Sep 17 00:00:00 2001 From: Phyo Date: Wed, 16 Aug 2017 11:00:37 +0630 Subject: [PATCH 2/8] DB for promtion, promotion product,product --- config/routes.rb | 3 +++ db/migrate/20170815044557_create_promotion.rb | 18 ++++++++++++++++++ .../20170815051517_create_promotion_product.rb | 13 +++++++++++++ db/migrate/20170816042256_create_product.rb | 17 +++++++++++++++++ 4 files changed, 51 insertions(+) create mode 100644 db/migrate/20170815044557_create_promotion.rb create mode 100644 db/migrate/20170815051517_create_promotion_product.rb create mode 100644 db/migrate/20170816042256_create_product.rb diff --git a/config/routes.rb b/config/routes.rb index 9e62023c..241c3826 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -264,6 +264,9 @@ Rails.application.routes.draw do end end + #promotion + resources :promotions + end #--------- Transactions Sections ------------# diff --git a/db/migrate/20170815044557_create_promotion.rb b/db/migrate/20170815044557_create_promotion.rb new file mode 100644 index 00000000..124ad8d9 --- /dev/null +++ b/db/migrate/20170815044557_create_promotion.rb @@ -0,0 +1,18 @@ +class CreatePromotion < ActiveRecord::Migration[5.1] + def change + create_table :promotions do |t| + t.string :promo_code, :limit => 16 + + t.datetime :promo_start_date, :null => false + t.datetime :promo_end_date, :null => false + t.time :promo_start_hour, :null => false + t.time :promo_end_hour, :null => false + t.string :promo_day, :null => false, :default => "[0,1,2,3,4,5,6]" + t.string :promo_type, :null => false, :default => "Quantity" + t.string :original_product + t.integer :min_qty + t.string :created_by, :null => false + t.timestamps + end + end +end diff --git a/db/migrate/20170815051517_create_promotion_product.rb b/db/migrate/20170815051517_create_promotion_product.rb new file mode 100644 index 00000000..dbbc198a --- /dev/null +++ b/db/migrate/20170815051517_create_promotion_product.rb @@ -0,0 +1,13 @@ +class CreatePromotionProduct < ActiveRecord::Migration[5.1] + def change + create_table :promotion_products do |t| + t.references :promotion, foreign_key: true + t.string :item_code, :null => false + t.integer :min_qty + t.integer :net_off + t.integer :net_price + t.integer :percentage + t.timestamps + end + end +end diff --git a/db/migrate/20170816042256_create_product.rb b/db/migrate/20170816042256_create_product.rb new file mode 100644 index 00000000..a329d69b --- /dev/null +++ b/db/migrate/20170816042256_create_product.rb @@ -0,0 +1,17 @@ +class CreateProduct < 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 + t.string :image_path + t.string :description + t.string :information + t.boolean :taxable + t.string :created_by, :null => false + t.timestamps + end + end +end From 4fc748e877512213d373b132e292fe70c8807994 Mon Sep 17 00:00:00 2001 From: yamin Date: Wed, 16 Aug 2017 18:19:20 +0630 Subject: [PATCH 3/8] CRUDforProducts --- .../settings/products_controller.rb | 76 +++++++++++++++++++ app/models/product.rb | 3 + app/views/layouts/_header.html.erb | 2 + app/views/settings/products/_form.html.erb | 18 +++++ .../products/_settings_product.json.jbuilder | 2 + app/views/settings/products/edit.html.erb | 10 +++ app/views/settings/products/index.html.erb | 45 +++++++++++ .../settings/products/index.json.jbuilder | 1 + app/views/settings/products/new.html.erb | 26 +++++++ app/views/settings/products/show.html.erb | 33 ++++++++ .../settings/products/show.json.jbuilder | 1 + config/routes.rb | 2 + ...rb => 20170816042256_settings_products.rb} | 2 +- 13 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 app/controllers/settings/products_controller.rb create mode 100644 app/models/product.rb create mode 100644 app/views/settings/products/_form.html.erb create mode 100644 app/views/settings/products/_settings_product.json.jbuilder create mode 100644 app/views/settings/products/edit.html.erb create mode 100644 app/views/settings/products/index.html.erb create mode 100644 app/views/settings/products/index.json.jbuilder create mode 100644 app/views/settings/products/new.html.erb create mode 100644 app/views/settings/products/show.html.erb create mode 100644 app/views/settings/products/show.json.jbuilder rename db/migrate/{20170816042256_create_product.rb => 20170816042256_settings_products.rb} (87%) diff --git a/app/controllers/settings/products_controller.rb b/app/controllers/settings/products_controller.rb new file mode 100644 index 00000000..0c2fa15d --- /dev/null +++ b/app/controllers/settings/products_controller.rb @@ -0,0 +1,76 @@ +class Settings::ProductsController < ApplicationController + before_action :set_settings_product, only: [:show, :edit, :update, :destroy] + + # GET /settings/products + # GET /settings/products.json + def index + @settings_products = Product.all + end + + # GET /settings/products/1 + # GET /settings/products/1.json + def show + end + + # GET /settings/products/new + def new + @settings_product = Product.new + end + + # GET /settings/products/1/edit + def edit + end + + # POST /settings/products + # POST /settings/products.json + def create + + @settings_product = Product.new(settings_product_params) + @settings_product.created_by = current_user.name + respond_to do |format| + if @settings_product.save + format.html { redirect_to settings_products_path, notice: 'Product was successfully created.' } + format.json { render :show, status: :created, location: @settings_product } + else + format.html { render :new } + format.json { render json: @settings_product.errors, status: :unprocessable_entity } + end + end + end + + # PATCH/PUT /settings/products/1 + # PATCH/PUT /settings/products/1.json + def update + respond_to do |format| + if @settings_product.update(settings_product_params) + format.html { redirect_to settings_product_path, notice: 'Product was successfully updated.' } + format.json { render :show, status: :ok, location: @settings_product } + else + format.html { render :edit } + format.json { render json: @settings_product.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /settings/products/1 + # DELETE /settings/products/1.json + def destroy + @settings_product.destroy + respond_to do |format| + format.html { redirect_to settings_products_path, notice: 'Product was successfully destroyed.' } + format.json { head :no_content } + end + end + + private + # Use callbacks to share common setup or constraints between actions. + def set_settings_product + @settings_product = Product.find(params[:id]) + end + + # Never trust parameters from the scary internet, only allow the white list through. + def settings_product_params + params.require(:product).permit(:item_code, :name, :alt_name, :unit_price, :image_path, :description, :information, :taxable,:created_by) + end + +end diff --git a/app/models/product.rb b/app/models/product.rb new file mode 100644 index 00000000..042e1730 --- /dev/null +++ b/app/models/product.rb @@ -0,0 +1,3 @@ +class Product < ApplicationRecord + validates_presence_of :name +end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index bc5ce498..441cfe91 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -28,6 +28,8 @@
  • <%= link_to "Employees", settings_employees_path, :tabindex =>"-1" %>

  • <%= link_to "Accounts", settings_accounts_path, :tabindex =>"-1" %>
  • +
    +
  • <%= link_to "Products", settings_products_path, :tabindex =>"-1" %>
  • diff --git a/app/views/settings/products/_form.html.erb b/app/views/settings/products/_form.html.erb new file mode 100644 index 00000000..37a049c6 --- /dev/null +++ b/app/views/settings/products/_form.html.erb @@ -0,0 +1,18 @@ +<%= simple_form_for([:settings,@settings_product]) do |f| %> + <%= f.error_notification %> + +
    + <%= f.input :item_code, :input_html => { :id => 'item_code' } %> + <%= f.input :name %> + <%= f.input :alt_name %> + <%= f.input :unit_price %> + <%= f.input :image_path %> + <%= f.input :description %> + <%= f.input :information %> + +
    + +
    + <%= f.button :submit %> +
    +<% end %> diff --git a/app/views/settings/products/_settings_product.json.jbuilder b/app/views/settings/products/_settings_product.json.jbuilder new file mode 100644 index 00000000..608fdefb --- /dev/null +++ b/app/views/settings/products/_settings_product.json.jbuilder @@ -0,0 +1,2 @@ +json.extract! settings_product, :id, :created_at, :updated_at +json.url settings_product_url(settings_product, format: :json) diff --git a/app/views/settings/products/edit.html.erb b/app/views/settings/products/edit.html.erb new file mode 100644 index 00000000..634381df --- /dev/null +++ b/app/views/settings/products/edit.html.erb @@ -0,0 +1,10 @@ +
    + + <%= render 'form', settings_product: @settings_product %> +
    diff --git a/app/views/settings/products/index.html.erb b/app/views/settings/products/index.html.erb new file mode 100644 index 00000000..3f49a401 --- /dev/null +++ b/app/views/settings/products/index.html.erb @@ -0,0 +1,45 @@ + + +
    +
    + + + + + + + + + + + + + + + + + <% @settings_products.each do |settings_product| %> + + + + + + + + + + + + + <% end %> + +
    Item CodeNameAlt NameUnit PriceDescriptionInformationTaxable
    <%= settings_product.item_code %><%= settings_product.name %><%= settings_product.alt_name %><%= settings_product.unit_price %><%= settings_product.description %><%= settings_product.information %><%= settings_product.taxable %><%= link_to 'Show', settings_product_path(settings_product) %><%= link_to 'Edit', edit_settings_product_path(settings_product) %><%= link_to 'Destroy', settings_product_path(settings_product), method: :delete, data: { confirm: 'Are you sure?' } %>
    +
    diff --git a/app/views/settings/products/index.json.jbuilder b/app/views/settings/products/index.json.jbuilder new file mode 100644 index 00000000..bc08f2a7 --- /dev/null +++ b/app/views/settings/products/index.json.jbuilder @@ -0,0 +1 @@ +json.array! @settings_products, partial: 'settings_products/settings_product', as: :settings_product diff --git a/app/views/settings/products/new.html.erb b/app/views/settings/products/new.html.erb new file mode 100644 index 00000000..e971f70d --- /dev/null +++ b/app/views/settings/products/new.html.erb @@ -0,0 +1,26 @@ +
    + + <%= render 'form', settings_product: @settings_product %> +
    + + diff --git a/app/views/settings/products/show.html.erb b/app/views/settings/products/show.html.erb new file mode 100644 index 00000000..f16b5426 --- /dev/null +++ b/app/views/settings/products/show.html.erb @@ -0,0 +1,33 @@ + +
    +
    +

    Product

    + + + + + + + + + + + + + + + + +
    Item code<%= @settings_product.item_code %>
    Name<%= @settings_product.name %>
    Alt name<%= @settings_product.alt_name %>
    Unit price<%= @settings_product.unit_price %>
    Image path<%= image_tag @settings_product.image_path, :size => '200x200'%>
    Description<%= @settings_product.description %>
    Information<%= @settings_product.information %>
    Taxable<%= @settings_product.taxable %>
    <%= link_to 'Edit', edit_settings_product_path(@settings_product) %><%= link_to 'Destroy', settings_product_path(@settings_product), method: :delete, data: { confirm: 'Are you sure?' } %>
    +
    +
    + + diff --git a/app/views/settings/products/show.json.jbuilder b/app/views/settings/products/show.json.jbuilder new file mode 100644 index 00000000..aef1705d --- /dev/null +++ b/app/views/settings/products/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "settings_products/settings_product", settings_product: @settings_product diff --git a/config/routes.rb b/config/routes.rb index 51431474..93a7985a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -237,6 +237,8 @@ Rails.application.routes.draw do resources :menu_item_options #tax_profiles resources :tax_profiles + #products + resources :products #lookups resources :lookups #cashier_terminals diff --git a/db/migrate/20170816042256_create_product.rb b/db/migrate/20170816042256_settings_products.rb similarity index 87% rename from db/migrate/20170816042256_create_product.rb rename to db/migrate/20170816042256_settings_products.rb index a329d69b..69c790fc 100644 --- a/db/migrate/20170816042256_create_product.rb +++ b/db/migrate/20170816042256_settings_products.rb @@ -1,4 +1,4 @@ -class CreateProduct < ActiveRecord::Migration[5.1] +class SettingsProducts < ActiveRecord::Migration[5.1] def change create_table :products do |t| t.string :item_code, :limit => 16 From fc2927b341a7a55d8bd24f1bbbbaaa6a5ce51468 Mon Sep 17 00:00:00 2001 From: Phyo Date: Wed, 16 Aug 2017 18:36:23 +0630 Subject: [PATCH 4/8] Promotion CRUD --- .../settings/promotions_controller.rb | 76 +++++++++++++++++++ app/helpers/settings/promotions_helper.rb | 2 + app/models/promotion.rb | 2 + app/views/layouts/_header.html.erb | 2 + app/views/settings/promotions/_form.html.erb | 48 ++++++++++++ .../promotions/_promotion.json.jbuilder | 2 + app/views/settings/promotions/edit.html.erb | 10 +++ app/views/settings/promotions/index.html.erb | 58 ++++++++++++++ .../settings/promotions/index.json.jbuilder | 1 + app/views/settings/promotions/new.html.erb | 17 +++++ app/views/settings/promotions/show.html.erb | 4 + .../settings/promotions/show.json.jbuilder | 1 + db/migrate/20170815044557_create_promotion.rb | 4 +- 13 files changed, 225 insertions(+), 2 deletions(-) create mode 100644 app/controllers/settings/promotions_controller.rb create mode 100644 app/helpers/settings/promotions_helper.rb create mode 100644 app/models/promotion.rb create mode 100644 app/views/settings/promotions/_form.html.erb create mode 100644 app/views/settings/promotions/_promotion.json.jbuilder create mode 100644 app/views/settings/promotions/edit.html.erb create mode 100644 app/views/settings/promotions/index.html.erb create mode 100644 app/views/settings/promotions/index.json.jbuilder create mode 100644 app/views/settings/promotions/new.html.erb create mode 100644 app/views/settings/promotions/show.html.erb create mode 100644 app/views/settings/promotions/show.json.jbuilder diff --git a/app/controllers/settings/promotions_controller.rb b/app/controllers/settings/promotions_controller.rb new file mode 100644 index 00000000..277cf62d --- /dev/null +++ b/app/controllers/settings/promotions_controller.rb @@ -0,0 +1,76 @@ +class Settings::PromotionsController < ApplicationController + before_action :set_promotion, only: [:show, :edit, :update, :destroy] + + # GET /promotions + # GET /promotions.json + def index + @promotions = Promotion.all + end + + # GET /promotions/1 + # GET /promotions/1.json + def show + end + + # GET /promotions/new + def new + @promotion = Promotion.new + @promotion.promo_start_date = DateTime.now + @promotion.promo_end_date = DateTime.now + end + + # GET /promotions/1/edit + def edit + end + + # POST /promotions + # POST /promotions.json + def create + @promotion = Promotion.new(promotion_params) + @promotion.created_by = current_login_employee.id + respond_to do |format| + if @promotion.save + format.html { redirect_to settings_promotions_path, notice: 'Promotion was successfully created.' } + format.json { render :show, status: :created, location: @promotion } + else + format.html { render :new } + format.json { render json: @promotion.errors, status: :unprocessable_entity } + end + end + end + + # PATCH/PUT /promotions/1 + # PATCH/PUT /promotions/1.json + def update + respond_to do |format| + if @promotion.update(promotion_params) + format.html { redirect_to settings_promotions_path, notice: 'Promotion was successfully updated.' } + format.json { render :show, status: :ok, location: @promotion } + else + format.html { render :edit } + format.json { render json: @promotion.errors, status: :unprocessable_entity } + end + end + end + + # DELETE /promotions/1 + # DELETE /promotions/1.json + def destroy + @promotion.destroy + respond_to do |format| + format.html { redirect_to settings_promotions_path, notice: 'Promotion was successfully destroyed.' } + format.json { head :no_content } + end + end + + private + # Use callbacks to share common setup or constraints between actions. + def set_promotion + @promotion = Promotion.find(params[:id]) + end + + # Never trust parameters from the scary internet, only allow the white list through. + def promotion_params + params.require(:promotion).permit(:promo_code, :promo_start_date, :promo_end_date, :promo_start_hour,:promo_end_hour ,:promo_day, :promo_type,:original_product ,:min_qty ,:created_by) + end +end diff --git a/app/helpers/settings/promotions_helper.rb b/app/helpers/settings/promotions_helper.rb new file mode 100644 index 00000000..787c2194 --- /dev/null +++ b/app/helpers/settings/promotions_helper.rb @@ -0,0 +1,2 @@ +module Settings::PromotionsHelper +end diff --git a/app/models/promotion.rb b/app/models/promotion.rb new file mode 100644 index 00000000..9b5c4c12 --- /dev/null +++ b/app/models/promotion.rb @@ -0,0 +1,2 @@ +class Promotion < ApplicationRecord +end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index bc5ce498..df1e13ce 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -28,6 +28,8 @@
  • <%= link_to "Employees", settings_employees_path, :tabindex =>"-1" %>

  • <%= link_to "Accounts", settings_accounts_path, :tabindex =>"-1" %>
  • +
    +
  • <%= link_to "Promotion", settings_promotions_path, :tabindex =>"-1" %>
  • diff --git a/app/views/settings/promotions/_form.html.erb b/app/views/settings/promotions/_form.html.erb new file mode 100644 index 00000000..98dbb7fe --- /dev/null +++ b/app/views/settings/promotions/_form.html.erb @@ -0,0 +1,48 @@ +<%= simple_form_for([:settings,@promotion]) do |f| %> + <%= f.error_notification %> + +
    +
    +
    +
    <%= f.input :promo_code %>
    +
    +
    +
    +
    + Promo Start Date + <%= f.date_field :promo_start_date, :placeholder => "From Date" , :class => "form-control"%> +
    +
    +
    + Promo End Date + <%= f.date_field :promo_end_date ,:placeholder => "To Date" , :class => "form-control"%> +
    +
    +
    +
    + <%= f.input :promo_start_hour %> + +
    +
    <%= f.input :promo_end_hour %>
    +
    +
    +
    <%= f.input :promo_day %>
    +
    +
    +
    + <%= f.input :promo_type,input_html: { class: "" }, + collection: %w{Quantity Net_off Net_price Percentage},:class => 'form-control' ,:label => "" %> +
    +
    +
    +
    <%= f.input :original_product,collection: MenuItem.order("name desc"),input_html: { selected: 2 } %>
    +
    <%= f.input :min_qty %>
    +
    +
    +
    + +
    + <%= f.button :submit %> +
    +<% end %> diff --git a/app/views/settings/promotions/_promotion.json.jbuilder b/app/views/settings/promotions/_promotion.json.jbuilder new file mode 100644 index 00000000..d9b08aef --- /dev/null +++ b/app/views/settings/promotions/_promotion.json.jbuilder @@ -0,0 +1,2 @@ +json.extract! promotion, :id, :created_at, :updated_at +json.url promotion_url(promotion, format: :json) diff --git a/app/views/settings/promotions/edit.html.erb b/app/views/settings/promotions/edit.html.erb new file mode 100644 index 00000000..47a01b80 --- /dev/null +++ b/app/views/settings/promotions/edit.html.erb @@ -0,0 +1,10 @@ +
    + + <%= render 'form', promotion: @promotion %> +
    diff --git a/app/views/settings/promotions/index.html.erb b/app/views/settings/promotions/index.html.erb new file mode 100644 index 00000000..606b138b --- /dev/null +++ b/app/views/settings/promotions/index.html.erb @@ -0,0 +1,58 @@ +

    <%= notice %>

    + + + + +
    +
    + + + + + + + + + + + + + + + + + + <% @promotions.each do |pro| %> + + + + + + + + + <% if Employee.exists?(pro.created_by) %> + + <% else %> + + <% end %> + + + + + <% end %> + +
    Promotion CodeStart DateEnd DateStart TimeEnd TimePromotion DayOriginal ProductCreated ByCreated At
    <%= link_to pro.promo_code, settings_promotion_path(pro) %><%= pro.promo_start_date %><%= pro.promo_end_date %><%= pro.promo_start_hour.strftime("%I:%M %P") rescue "-" %><%= pro.promo_end_hour.strftime("%I:%M %P") rescue "-" %><%= pro.promo_day %> + <% if MenuItem.exists?(pro.original_product) %> + <%= MenuItem.find(pro.original_product).name %> + <% end %> + <%= Employee.find(pro.created_by).name %><%= pro.created_by %><%= pro.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %><%= link_to 'Edit', edit_settings_promotion_path(pro) %><%= link_to 'Destroy', settings_promotion_path(pro), method: :delete, data: { confirm: 'Are you sure?' } %>
    +
    diff --git a/app/views/settings/promotions/index.json.jbuilder b/app/views/settings/promotions/index.json.jbuilder new file mode 100644 index 00000000..1c9c5f97 --- /dev/null +++ b/app/views/settings/promotions/index.json.jbuilder @@ -0,0 +1 @@ +json.array! @promotions, partial: 'promotions/promotion', as: :promotion diff --git a/app/views/settings/promotions/new.html.erb b/app/views/settings/promotions/new.html.erb new file mode 100644 index 00000000..c7748bb6 --- /dev/null +++ b/app/views/settings/promotions/new.html.erb @@ -0,0 +1,17 @@ + +
    + + <%= render 'form', promotion: @promotion %> +
    + diff --git a/app/views/settings/promotions/show.html.erb b/app/views/settings/promotions/show.html.erb new file mode 100644 index 00000000..4dd7e593 --- /dev/null +++ b/app/views/settings/promotions/show.html.erb @@ -0,0 +1,4 @@ +

    <%= notice %>

    + +<%= link_to 'Edit', edit_promotion_path(@promotion) %> | +<%= link_to 'Back', promotions_path %> diff --git a/app/views/settings/promotions/show.json.jbuilder b/app/views/settings/promotions/show.json.jbuilder new file mode 100644 index 00000000..52507108 --- /dev/null +++ b/app/views/settings/promotions/show.json.jbuilder @@ -0,0 +1 @@ +json.partial! "promotions/promotion", promotion: @promotion diff --git a/db/migrate/20170815044557_create_promotion.rb b/db/migrate/20170815044557_create_promotion.rb index 124ad8d9..fddf293b 100644 --- a/db/migrate/20170815044557_create_promotion.rb +++ b/db/migrate/20170815044557_create_promotion.rb @@ -3,8 +3,8 @@ class CreatePromotion < ActiveRecord::Migration[5.1] create_table :promotions do |t| t.string :promo_code, :limit => 16 - t.datetime :promo_start_date, :null => false - t.datetime :promo_end_date, :null => false + t.date :promo_start_date, :null => false + t.date :promo_end_date, :null => false t.time :promo_start_hour, :null => false t.time :promo_end_hour, :null => false t.string :promo_day, :null => false, :default => "[0,1,2,3,4,5,6]" From 88eb1d6c64e18828fff6aefc5293989e8f9a5e77 Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 17 Aug 2017 10:43:45 +0630 Subject: [PATCH 5/8] update seed --- db/seeds.rb | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/db/seeds.rb b/db/seeds.rb index 8bc16f74..5ab0d36d 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -175,4 +175,75 @@ queue_no_printer=PrintSetting.create({name: "Queue No", unique_code: "QueueNoPdf cashier_terminal = CashierTerminal.create({name:"Terminal 1"}) cashier_terminal2 = CashierTerminal.create({name:"Terminal 2"}) cashier_terminal3 = CashierTerminal.create({name:"Terminal 3"}) + +zone = Zone.create({id:1, name: "H1", is_active:true, created_by: "SYSTEM DEFAULT"}) + table = Table.create({name:"61", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"62", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"53", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"54", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"24", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"25", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"26", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"34", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"35", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"45", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"46", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"47", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"48", zone: zone, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + +zone2 = Zone.create({id:2, name: "H2", is_active:true, created_by: "SYSTEM DEFAULT"}) + table = Table.create({name:"51", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"52", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"11", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"12", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"21", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"22", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"23", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"31", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"32", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"33", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"41", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"42", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"43", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"44", zone: zone2, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) +zone3 = Zone.create({id:3, name: "H3", is_active:true, created_by: "SYSTEM DEFAULT"}) + table = Table.create({name:"71", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"72", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"73", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"74", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"75", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"76", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"77", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + table = Table.create({name:"78", zone: zone3, status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"}) + +member_setting = MembershipSetting.create({membership_type:"paypar_url",gateway_url: "http://staging.membership.paypar.ws",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"}) + +member_actions= MembershipAction.create([{membership_type:"get_account_balance",gateway_url:"/api/membership_campaigns/get_correspond_account_data",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"redeem",gateway_url:"/api/membership_campaigns/redeem",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"create_membership_customer",gateway_url:"/api/generic_customer/create_membership_customer",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"update_membership_customer",gateway_url:"/api/generic_customer/update_membership_customer",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"get_all_member_group",gateway_url:"/api/member_group/get_all_member_group",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"rebate",gateway_url:"/api/membership_campaigns/rebate",additional_parameter:{campaign_type_id:1},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"get_all_member_account",gateway_url:"/api/generic_customer/get_membership_data",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"get_member_transactions",gateway_url:"/api/generic_customer/get_membership_transactions",merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"member_discount",gateway_url:"/api/membership_campaigns/discount",additional_parameter:{campaign_type_id:6},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, + {membership_type:"get_member_campaign",gateway_url:"/api/membership_campaigns/get_member_campaign",additional_parameter:{campaign_type_id:6},merchant_account_id:"vWSsseoZCzxd6xcNf_uS",auth_token:"code2lab"}, +]) + +payment_methods = PaymentMethodSetting.create({payment_method:"MPU",gateway_url: "http://membership.paypar.ws"}) +payment_methods = PaymentMethodSetting.create({payment_method:"VISA",gateway_url: "http://membership.paypar.ws"}) +payment_methods = PaymentMethodSetting.create({payment_method:"JCB",gateway_url: "http://membership.paypar.ws"}) +payment_methods = PaymentMethodSetting.create({payment_method:"Master",gateway_url: "http://membership.paypar.ws"}) +payment_methods = PaymentMethodSetting.create({payment_method:"Redeem",gateway_url: "http://membership.paypar.ws",merchant_account_id:"vWSsseoZCzxd6xcNf_uS"}) + +#Default Order Queue stations +order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['01001','01002','01003','01004']), print_copy:true, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) +order_queue_station2 = OrderQueueStation.create({station_name: "K2", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['02005','02006','02007','02008']), print_copy:true, cut_per_item: true, use_alternate_name: true, created_by: "SYSTEM DEFAULT"}) +zone_order_queue_station = OrderQueueStation.create({station_name: "K3", is_active: true, printer_name: "Cashier", processing_items: JSON.generate(['01001','01002','01003','01004','02005','02006','02007','02008']), print_copy: true, cut_per_item: true, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) + +# QueueStationZone +zone_queue_station1 = OrderQueueProcessByZone.create({order_queue_station: order_queue_station1, zone: zone}) +zone_queue_station2 = OrderQueueProcessByZone.create({order_queue_station: order_queue_station2, zone: zone2}) +zone_queue_station3 = OrderQueueProcessByZone.create({order_queue_station: zone_order_queue_station, zone: zone3}) + puts " Finished System Default Set Up Data " From 9702299fa7b88df75a6936a3cbd027133b38b2f5 Mon Sep 17 00:00:00 2001 From: Nweni Date: Thu, 17 Aug 2017 17:40:18 +0630 Subject: [PATCH 6/8] Update --- app/models/shop.rb | 114 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/app/models/shop.rb b/app/models/shop.rb index 1cf1119c..dbb0930e 100644 --- a/app/models/shop.rb +++ b/app/models/shop.rb @@ -1,2 +1,116 @@ class Shop < ApplicationRecord + + def promo_activate + current_day = Time.now.strftime("%Y-%d-%m") + current_time = Time.now.strftime('%H:%M') + day = Date.today.wday + promoList = is_between_promo_datetime(current_day,current_time) + if promoList.size > 0 + itemList = combine_item(saleObj) + is_promo_day(promoList,day, itemList) + end + end + + def is_between_promo_datetime(current_day,current_time) + promoList = Promotion.where('( promo_start_date < ? AND promo_end_date > ?) AND (promo_start_time < ? AND promo_end_time > ?)', current_day, current_day, current_time, current_time) + return promoList + end + + def combine_item(saleObj) + itemList = saleObj.sale_items.group(:product_code).sum(:qty) + end + + def is_promo_day(promoList, day, orderitemList) + promoList.each do |promo| + dayresult = promo.promo_day.include?(day) + if dayresult + orderitemList.each do |item| + find_promo_item(promo, item) + end + end + end + end + + def find_promo_item(promo, orderitem) + if promo.prouduct_item == orderitem + if promo.minmum_qty < orderitem.qty + return false + else + same, promo_item_code = check_giveaway_product(promo, orderitem) + if same + give_promotion_same_product + else + find_promo_item_in_orderlist + end + end + end + end + + def check_giveaway_product(promo, orderitem) + promo.promotion_products.each do |promo_product| + if promo_product.item_code == orderitem.item_code + return true, promo_product.item_code + else + return false, promo_product.item_code + end + end + end + + def self.give_promotion_same_product(qty, promoqty, foc_min_qty) + multiple = qty / promoqty # loop count + charge_qty = 0 + foc_qty = 0 + if multiple > 0 + multiple.times.each do |key| + if qty >= promoqty + charge_qty += promoqty + different = qty - promoqty + qty = different + if different == 0 + Shop.add_promotion_item + foc_qty += foc_min_qty + else + foc_qty += foc_min_qty + qty = qty - foc_min_qty + end + else + if multiple == foc_qty + charge_qty += qty + else + charge_qty += qty + end + end + end + else + charge_qty = qty + end + puts "Charged - " + charge_qty.to_s + puts "FOC - " + foc_qty.to_s + end + + def find_promo_item_in_orderlist(promo_item_code, orderitemList) + orderitemList.each do |item| + if item.item_code == promo_item_code + give_promotion_second_product(item) + else + add_promotion_second_item + end + end + end + + def give_promotion_second_product(item, foc_min_qty) + if item.qty > foc_min_qty + + else + + end + end + + def self.add_promotion_item + + end + + def self.add_promotion_second_item + + end end From 29b3f945737f81045514552dcaa01b0c9f6e7904 Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 17 Aug 2017 18:55:13 +0630 Subject: [PATCH 7/8] 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 From 48461da9ea08f45fb4db0439f1783d1796a47a66 Mon Sep 17 00:00:00 2001 From: Yan Date: Fri, 18 Aug 2017 11:24:38 +0630 Subject: [PATCH 8/8] add fields for Menu Sync --- .../menu_item_options_controller.rb | 5 ---- .../settings/menu_item_options_controller.rb | 2 +- app/models/menu_item_option.rb | 1 - .../restaurant/item_sets/index.json.jbuilder | 1 + .../menu_item_attributes/index.json.jbuilder | 1 + .../menu_item_options/index.json.jbuilder | 2 ++ .../settings/menu_item_options/_form.html.erb | 1 + .../settings/menu_item_options/index.html.erb | 2 ++ .../settings/menu_item_options/show.html.erb | 2 ++ ...20170402083525_create_menu_item_options.rb | 1 + db/seeds.rb | 23 ++++++++----------- 11 files changed, 21 insertions(+), 20 deletions(-) diff --git a/app/controllers/api/restaurant/menu_item_options_controller.rb b/app/controllers/api/restaurant/menu_item_options_controller.rb index cc898add..16bd2f90 100644 --- a/app/controllers/api/restaurant/menu_item_options_controller.rb +++ b/app/controllers/api/restaurant/menu_item_options_controller.rb @@ -1,13 +1,8 @@ class Api::Restaurant::MenuItemOptionsController < Api::ApiController - #Description # Pull the default menu details and also other available (active) menus # Input Params - order_id def index @menu_options = MenuItemOption.all end - - - - end diff --git a/app/controllers/settings/menu_item_options_controller.rb b/app/controllers/settings/menu_item_options_controller.rb index 41679796..f74b0689 100644 --- a/app/controllers/settings/menu_item_options_controller.rb +++ b/app/controllers/settings/menu_item_options_controller.rb @@ -70,6 +70,6 @@ class Settings::MenuItemOptionsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def settings_menu_item_option_params - params.require(:menu_item_option).permit(:name, :value) + params.require(:menu_item_option).permit(:option_type, :name, :value) end end diff --git a/app/models/menu_item_option.rb b/app/models/menu_item_option.rb index fdf2d137..fffdf210 100644 --- a/app/models/menu_item_option.rb +++ b/app/models/menu_item_option.rb @@ -1,4 +1,3 @@ class MenuItemOption < ApplicationRecord validates_presence_of :name, :value - end diff --git a/app/views/api/restaurant/item_sets/index.json.jbuilder b/app/views/api/restaurant/item_sets/index.json.jbuilder index eb39022d..73ebeb12 100644 --- a/app/views/api/restaurant/item_sets/index.json.jbuilder +++ b/app/views/api/restaurant/item_sets/index.json.jbuilder @@ -1,4 +1,5 @@ json.array! @item_sets do |set| + json.id set.id json.name set.name json.alt_name set.alt_name json.min_selectable_qty set.min_selectable_qty diff --git a/app/views/api/restaurant/menu_item_attributes/index.json.jbuilder b/app/views/api/restaurant/menu_item_attributes/index.json.jbuilder index 0dc729eb..4a265fb6 100644 --- a/app/views/api/restaurant/menu_item_attributes/index.json.jbuilder +++ b/app/views/api/restaurant/menu_item_attributes/index.json.jbuilder @@ -1,4 +1,5 @@ json.array! @menu_attributes do |attribute| + json.id attribute.id json.type attribute.attribute_type json.name attribute.name json.value attribute.value diff --git a/app/views/api/restaurant/menu_item_options/index.json.jbuilder b/app/views/api/restaurant/menu_item_options/index.json.jbuilder index eae1c761..c7ce21aa 100644 --- a/app/views/api/restaurant/menu_item_options/index.json.jbuilder +++ b/app/views/api/restaurant/menu_item_options/index.json.jbuilder @@ -1,4 +1,6 @@ json.array! @menu_options do |option| + json.id option.id + json.type option.option_type json.name option.name json.value option.value end diff --git a/app/views/settings/menu_item_options/_form.html.erb b/app/views/settings/menu_item_options/_form.html.erb index a8365c65..6cc46cbd 100644 --- a/app/views/settings/menu_item_options/_form.html.erb +++ b/app/views/settings/menu_item_options/_form.html.erb @@ -3,6 +3,7 @@ <%= f.error_notification %>
    + <%= f.input :option_type %> <%= f.input :name %> <%= f.input :value %> diff --git a/app/views/settings/menu_item_options/index.html.erb b/app/views/settings/menu_item_options/index.html.erb index e87343f8..0818f57b 100644 --- a/app/views/settings/menu_item_options/index.html.erb +++ b/app/views/settings/menu_item_options/index.html.erb @@ -13,6 +13,7 @@ + @@ -21,6 +22,7 @@ <% @settings_menu_item_options.each do |settings_menu_item_option| %> +
    Type Name Value
    <%= settings_menu_item_option.option_type %> <%= link_to settings_menu_item_option.name, settings_menu_item_option_path(settings_menu_item_option) %> <%= settings_menu_item_option.value %> <%= link_to 'Edit', edit_settings_menu_item_option_path(settings_menu_item_option) %> diff --git a/app/views/settings/menu_item_options/show.html.erb b/app/views/settings/menu_item_options/show.html.erb index 611f3165..413de12d 100644 --- a/app/views/settings/menu_item_options/show.html.erb +++ b/app/views/settings/menu_item_options/show.html.erb @@ -13,6 +13,7 @@ + @@ -22,6 +23,7 @@ + diff --git a/db/migrate/20170402083525_create_menu_item_options.rb b/db/migrate/20170402083525_create_menu_item_options.rb index 841b66a0..de39d55e 100644 --- a/db/migrate/20170402083525_create_menu_item_options.rb +++ b/db/migrate/20170402083525_create_menu_item_options.rb @@ -1,6 +1,7 @@ class CreateMenuItemOptions < ActiveRecord::Migration[5.1] def change create_table :menu_item_options do |t| + t.string :option_type t.string :name, :null => false t.string :value, :null => false diff --git a/db/seeds.rb b/db/seeds.rb index 5ab0d36d..2a9e422a 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -114,18 +114,20 @@ customer2 = Customer.create({name:"TAKEAWAY", email: "cus2@customer.com", contac tax_profiles = TaxProfile.create({id:1, name: "Commercial Tax", rate:5.0, order_by:2, created_by:"SYSTEM DEFAULT"}) service_charges = TaxProfile.create({id:2, name: "Service Charges", rate:10.0, order_by:1, created_by:"SYSTEM DEFAULT"}) -#Account for Menu Item Type (eg: Food, Beverage) -# food = Account.create({title: "Food", account_type: "0"}) -# beverage = Account.create({title: "Beverage", account_type: "1"}) - #Default menu -# menu = Menu.create({name: "Main Menu", is_active: true, created_by: "SYSTEM DEFAULT"}) +menu = Menu.create({name: "Main Menu", is_active: true, created_by: "SYSTEM DEFAULT"}) -menu_options = MenuItemOption.create([{name: "Less Spicy", value: "less_spicy"},{name: "Spicy", value: "spicy"},{name: "Super Spicy", value: "super_spicy"}]) -menu_options = MenuItemOption.create([{name: "Less Oil", value: "less_oil"},{name: "No MSG", value: "no_msg"},{name: "Less Sweet", value: "less_sweet"}]) +#Default Account +food = Account.create({title: "Food", account_type: "0"}) +beverage = Account.create({title: "Beverage", account_type: "1"}) +product = Account.create({title: "Product", account_type: "2"}) + +#Default Menu Options +menu_options = MenuItemOption.create([{option_type: "Spicy", name: "Less Spicy", value: "less_spicy"},{option_type: "Spicy", name: "Spicy", value: "spicy"},{option_type: "Spicy", name: "Super Spicy", value: "super_spicy"}]) +menu_options = MenuItemOption.create([{option_type: "Oil", name: "Less Oil", value: "less_oil"},{name: "No MSG", value: "no_msg"},{option_type: "Sweet", name: "Less Sweet", value: "less_sweet"}]) # #Default Menu Category -# menu_category1 = MenuCategory.create({menu: menu, code:"C001", name: "Soup Base", alt_name: "Soup_base", order_by: 1,created_by: "SYSTEM DEFAULT"}) + menu_category1 = MenuCategory.create({menu: menu, code:"C001", name: "Soup Base", alt_name: "Soup_base", order_by: 1, is_available: 1, created_by: "SYSTEM DEFAULT"}) # menu_category2 = MenuCategory.create({menu: menu, code:"C005", name: "Beef & Mutton", alt_name: "Beef_and_mutton", order_by: 2,created_by: "SYSTEM DEFAULT"}) # menu_category3 = MenuCategory.create({menu: menu, code:"C006", name: "Pork", alt_name: "Pork", order_by: 3,created_by: "SYSTEM DEFAULT"}) # menu_category4 = MenuCategory.create({menu: menu, code:"C006", name: "Chicken", alt_name: "Chicken", order_by: 1, menu_category_id: menu_category3.id, created_by: "SYSTEM DEFAULT"}) @@ -154,11 +156,6 @@ activated_at:"2017-06-26 08:36:24",license_data:"test",base_currency:"111",id_pr # order_queue_station2 = OrderQueueStation.create({station_name: "Queue Station 2", is_active: true,printer_name: "drink_printer", processing_items: JSON.generate(['02005','02006','02007','02008']), print_copy:true, cut_per_item: true, use_alternate_name: true, created_by: "SYSTEM DEFAULT"}) # zone_order_queue_station = OrderQueueStation.create({station_name: "Zone 1 Queue Station 2", is_active: true, printer_name: "print_station", processing_items: JSON.generate(['01001','01002','01003','01004','02005','02006','02007','02008']), print_copy: true, cut_per_item: true, use_alternate_name: false, created_by: "SYSTEM DEFAULT"}) - -#Default Order Queue Process By Zone -# zone_queue_station = OrderQueueProcessByZone.create({order_queue_station: zone_order_queue_station, zone: zone2}) - - #Create Adminstrator employee admin_employee = Employee.create({name: "Administrator", role: "administrator", password: "99999", emp_id:"999", created_by: "SYSTEM DEFAULT"}) admin_employee = Employee.create({name: "Waiter", role: "waiter", password: "11111", emp_id:"111", created_by: "SYSTEM DEFAULT"})
    Type Name Value Created At
    <%= @settings_menu_item_option.option_type %> <%= @settings_menu_item_option.name %> <%= @settings_menu_item_option.value rescue "-" %> <%=l @settings_menu_item_option.created_at, format: :short %>