diff --git a/app/controllers/dining_charges_controller.rb b/app/controllers/settings/dining_charges_controller.rb similarity index 61% rename from app/controllers/dining_charges_controller.rb rename to app/controllers/settings/dining_charges_controller.rb index 7b95af58..6de504bf 100644 --- a/app/controllers/dining_charges_controller.rb +++ b/app/controllers/settings/dining_charges_controller.rb @@ -1,6 +1,7 @@ -class DiningChargesController < ApplicationController +class Settings::DiningChargesController < ApplicationController before_action :set_dining_charge, only: [:show, :edit, :update, :destroy] - + before_action :set_settings_facility + before_action :set_settings_zone # GET /dining_charges # GET /dining_charges.json def index @@ -25,10 +26,10 @@ class DiningChargesController < ApplicationController # POST /dining_charges.json def create @dining_charge = DiningCharge.new(dining_charge_params) - + @dining_charge.dining_facility_id = @settings_dining_facility.id respond_to do |format| if @dining_charge.save - format.html { redirect_to @dining_charge, notice: 'Dining charge was successfully created.' } + format.html { redirect_to edit_settings_zone_table_path(@zone,@settings_dining_facility), notice: 'Dining charge was successfully created.' } format.json { render :show, status: :created, location: @dining_charge } else format.html { render :new } @@ -41,8 +42,9 @@ class DiningChargesController < ApplicationController # PATCH/PUT /dining_charges/1.json def update respond_to do |format| + @dining_charge.dining_facility_id = @settings_dining_facility.id if @dining_charge.update(dining_charge_params) - format.html { redirect_to @dining_charge, notice: 'Dining charge was successfully updated.' } + format.html { redirect_to edit_settings_zone_table_path(@zone,@settings_dining_facility), notice: 'Dining charge was successfully updated.' } format.json { render :show, status: :ok, location: @dining_charge } else format.html { render :edit } @@ -67,8 +69,23 @@ class DiningChargesController < ApplicationController @dining_charge = DiningCharge.find(params[:id]) end + def set_settings_facility + if params[:table_id] + @table = true + @settings_dining_facility = Table.find(params[:table_id]) + elsif params[:room_id] + @room = true + @settings_dining_facility = Room.find(params[:room_id]) + end + end + + def set_settings_zone + @zone = Zone.find(params[:zone_id]) + end + # Never trust parameters from the scary internet, only allow the white list through. def dining_charge_params - params.fetch(:dining_charge, {}) + # 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) end end diff --git a/app/models/dining_charge.rb b/app/models/dining_charge.rb index 9a6c5524..0c52811f 100644 --- a/app/models/dining_charge.rb +++ b/app/models/dining_charge.rb @@ -1,2 +1,4 @@ class DiningCharge < ApplicationRecord + belongs_to :table + belongs_to :room end diff --git a/app/models/dining_facility.rb b/app/models/dining_facility.rb index 510da53d..f441612a 100644 --- a/app/models/dining_facility.rb +++ b/app/models/dining_facility.rb @@ -1,5 +1,6 @@ class DiningFacility < ApplicationRecord belongs_to :zone + has_many :dining_charges TABLE_TYPE = "Table" ROOM_TYPE = "Room" diff --git a/app/views/dining_charges/_form.html.erb b/app/views/dining_charges/_form.html.erb deleted file mode 100644 index 0d4232f9..00000000 --- a/app/views/dining_charges/_form.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -<%= simple_form_for(@dining_charge) do |f| %> - <%= f.error_notification %> - -
-
- -
- <%= f.button :submit %> -
-<% end %> diff --git a/app/views/dining_charges/edit.html.erb b/app/views/dining_charges/edit.html.erb deleted file mode 100644 index 042b88d2..00000000 --- a/app/views/dining_charges/edit.html.erb +++ /dev/null @@ -1,6 +0,0 @@ -

Editing Dining Charge

- -<%= render 'form', dining_charge: @dining_charge %> - -<%= link_to 'Show', @dining_charge %> | -<%= link_to 'Back', dining_charges_path %> diff --git a/app/views/dining_charges/new.html.erb b/app/views/dining_charges/new.html.erb deleted file mode 100644 index 9f56e5d3..00000000 --- a/app/views/dining_charges/new.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -

New Dining Charge

- -<%= render 'form', dining_charge: @dining_charge %> - -<%= link_to 'Back', dining_charges_path %> diff --git a/app/views/dining_charges/_dining_charge.json.jbuilder b/app/views/settings/dining_charges/_dining_charge.json.jbuilder similarity index 100% rename from app/views/dining_charges/_dining_charge.json.jbuilder rename to app/views/settings/dining_charges/_dining_charge.json.jbuilder diff --git a/app/views/settings/dining_charges/_form.html.erb b/app/views/settings/dining_charges/_form.html.erb new file mode 100644 index 00000000..47801ef6 --- /dev/null +++ b/app/views/settings/dining_charges/_form.html.erb @@ -0,0 +1,18 @@ +<%= simple_form_for([:settings,@zone,@settings_dining_facility,@dining_charge]) do |f| %> + <%= f.error_notification %> + +
+ <%= f.input :item_code %> + <%= f.input :unit_price %> + <%= f.input :taxable %> + <%= f.input :charge_type %> + <%= f.input :minimum_free_time %> + <%= f.input :charge_block %> + <%= f.input :time_rounding %> + <%= f.input :time_rounding_block %> +
+ +
+ <%= f.button :submit %> +
+<% end %> diff --git a/app/views/settings/dining_charges/edit.html.erb b/app/views/settings/dining_charges/edit.html.erb new file mode 100644 index 00000000..1b0eb406 --- /dev/null +++ b/app/views/settings/dining_charges/edit.html.erb @@ -0,0 +1,19 @@ + + +
+ + <%= render 'form', dining_charge: @dining_charge %> +
diff --git a/app/views/dining_charges/index.html.erb b/app/views/settings/dining_charges/index.html.erb similarity index 100% rename from app/views/dining_charges/index.html.erb rename to app/views/settings/dining_charges/index.html.erb diff --git a/app/views/dining_charges/index.json.jbuilder b/app/views/settings/dining_charges/index.json.jbuilder similarity index 100% rename from app/views/dining_charges/index.json.jbuilder rename to app/views/settings/dining_charges/index.json.jbuilder diff --git a/app/views/settings/dining_charges/new.html.erb b/app/views/settings/dining_charges/new.html.erb new file mode 100644 index 00000000..1caba288 --- /dev/null +++ b/app/views/settings/dining_charges/new.html.erb @@ -0,0 +1,18 @@ + +
+ + <%= render 'form', dining_charge: @dining_charge %> +
diff --git a/app/views/dining_charges/show.html.erb b/app/views/settings/dining_charges/show.html.erb similarity index 100% rename from app/views/dining_charges/show.html.erb rename to app/views/settings/dining_charges/show.html.erb diff --git a/app/views/dining_charges/show.json.jbuilder b/app/views/settings/dining_charges/show.json.jbuilder similarity index 100% rename from app/views/dining_charges/show.json.jbuilder rename to app/views/settings/dining_charges/show.json.jbuilder diff --git a/app/views/settings/tables/_form.html.erb b/app/views/settings/tables/_form.html.erb index 169e1601..3d641592 100644 --- a/app/views/settings/tables/_form.html.erb +++ b/app/views/settings/tables/_form.html.erb @@ -7,6 +7,26 @@ <%= f.input :seater %> <%= f.input :order_by %> <%= f.input :is_active %> + <% if @settings_table.dining_charges.length == 0 %> +
+
+ <%= link_to 'Add For Extra Charges', new_settings_zone_table_dining_charge_path(@zone,@settings_table),:class => 'btn btn-primary' %> +
+
+ <% else %> + <% @settings_table.dining_charges.each do |dc| %> +
+
Dining Charge
+
item code : <%= dc.item_code %>
+
Unit price : <%= dc.unit_price %>
+
Charge type : <%= dc.charge_type %>
+
+ <%= link_to 'Edit Charges', edit_settings_zone_table_dining_charge_path(@zone,@settings_table,dc),:class => 'btn btn-primary' %> + +
+
+ <% end %> + <% end %>
diff --git a/config/routes.rb b/config/routes.rb index 12e3f542..b6af8698 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,7 +2,6 @@ require 'sidekiq/web' Rails.application.routes.draw do - resources :dining_charges root 'home#index' mount Sidekiq::Web => '/kiq' @@ -146,6 +145,7 @@ Rails.application.routes.draw do get 'sale/:sale_id/payment/others_payment/Master' => "master#index" get 'sale/:sale_id/payment/others_payment/JCB' => "jcb#index" get 'sale/:sale_id/payment/others_payment/Redeem' => "redeem_payments#index" + get 'sale/:sale_id/payment/others_payment/Voucher' => "voucher#index" #---------Void --------------# post 'sale/:sale_id/void' => 'void#overall_void' @@ -254,9 +254,13 @@ Rails.application.routes.draw do #zones resources :zones do #tables - resources :tables + resources :tables do + resources :dining_charges + end #rooms - resources :rooms + resources :rooms do + resources :dining_charges + end end end