diff --git a/app/controllers/origami/voucher_controller.rb b/app/controllers/origami/voucher_controller.rb
new file mode 100644
index 00000000..a9bdcc2b
--- /dev/null
+++ b/app/controllers/origami/voucher_controller.rb
@@ -0,0 +1,32 @@
+class Origami::VoucherController < BaseOrigamiController
+
+ def index
+ @sale_id = params[:sale_id]
+
+ # limit voucher_amount
+ sale_data = Sale.find_by_sale_id(@sale_id)
+ total = sale_data.grand_total
+ @vouchercount = 0
+ others = 0
+ sale_data.sale_payments.each do |sale_payment|
+ if sale_payment.payment_method == "voucher"
+ @vouchercount = @vouchercount + sale_payment.payment_amount
+ else
+ others = others + sale_payment.payment_amount
+ end
+ end
+ @can_voucher = total - @vouchercount - others
+
+ end
+
+ def create
+ cash = params[:amount]
+ sale_id = params[:sale_id]
+ if(Sale.exists?(sale_id))
+ saleObj = Sale.find(sale_id)
+ sale_payment = SalePayment.new
+ @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "voucher")
+ end
+ end
+
+end
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/origami/voucher/create.json.jbuilder b/app/views/origami/voucher/create.json.jbuilder
new file mode 100644
index 00000000..9767a7d8
--- /dev/null
+++ b/app/views/origami/voucher/create.json.jbuilder
@@ -0,0 +1,5 @@
+if(@status)
+ json.status @status
+else
+ json.status false
+end
diff --git a/app/views/origami/voucher/index.html.erb b/app/views/origami/voucher/index.html.erb
new file mode 100644
index 00000000..809793ce
--- /dev/null
+++ b/app/views/origami/voucher/index.html.erb
@@ -0,0 +1,169 @@
+
+
+
+
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
diff --git a/lib/tasks/menu_osaka.rake b/lib/tasks/menu_osaka.rake
index 0acc4a1e..117fdb5c 100644
--- a/lib/tasks/menu_osaka.rake
+++ b/lib/tasks/menu_osaka.rake
@@ -1224,6 +1224,7 @@ payment_methods = PaymentMethodSetting.create({payment_method:"VISA",gateway_url
payment_methods = PaymentMethodSetting.create({payment_method:"JCB",gateway_url: "http://staging.membership.paypar.ws"})
payment_methods = PaymentMethodSetting.create({payment_method:"Master",gateway_url: "http://staging.membership.paypar.ws"})
payment_methods = PaymentMethodSetting.create({payment_method:"Redeem",gateway_url: "http://staging.membership.paypar.ws",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv"})
+payment_methods = PaymentMethodSetting.create({payment_method:"Voucher",gateway_url: "http://staging.membership.paypar.ws",merchant_account_id:"RxzaYyAGzm7VqAZ4hKnv"})
#Default Order Queue stations
order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['I0001','I0002','I0003','I0004']), print_copy:false, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"})