diff --git a/app/assets/javascripts/dining_charges.coffee b/app/assets/javascripts/dining_charges.coffee
new file mode 100644
index 00000000..24f83d18
--- /dev/null
+++ b/app/assets/javascripts/dining_charges.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://coffeescript.org/
diff --git a/app/assets/stylesheets/dining_charges.scss b/app/assets/stylesheets/dining_charges.scss
new file mode 100644
index 00000000..b0d4ba51
--- /dev/null
+++ b/app/assets/stylesheets/dining_charges.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the dining_charges controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/origami/voucher_controller.rb b/app/controllers/origami/voucher_controller.rb
new file mode 100644
index 00000000..7eda6084
--- /dev/null
+++ b/app/controllers/origami/voucher_controller.rb
@@ -0,0 +1,72 @@
+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]
+ sale_id = params[:refnumber]
+ if(Sale.exists?(sale_id))
+ customer_data= Customer.find_by_customer_id(sale_data.customer_id)
+ if customer_data
+ membership_id = customer_data.membership_id
+ membership_setting = MembershipSetting.find_by_membership_type("paypar_url")
+ if membership_setting.gateway_url
+ member_actions =MembershipAction.find_by_membership_type("get_account_balance") #need to modify here
+ if member_actions.gateway_url
+ campaign_type_id = member_actions.additional_parameter["campaign_type_id"]
+ url = membership_setting.gateway_url.to_s + member_actions.gateway_url.to_s
+ merchant_uid= member_actions.merchant_account_id
+ auth_token = member_actions.auth_token.to_s
+ # membership_data = SalePayment.get_paypar_account(url,membership_setting.auth_token,@membership_id,@campaign_type_id,merchant_uid,auth_token)
+ # if membership_data["status"]==true
+ begin
+ response = HTTParty.get(url,
+ :body => { app_token: token,membership_id:membership_id,
+ campaign_type_id:campaign_type_id,merchant_uid:merchant_uid,
+ auth_token:auth_token
+ }.to_json,
+ :headers => {
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json'
+ }, :timeout => 10
+ )
+ rescue Net::OpenTimeout
+ response = { status: false }
+
+ rescue OpenURI::HTTPError
+ response = { status: false}
+
+ rescue SocketError
+ response = { status: false}
+ end
+ # end
+ end
+ end
+ end
+ if( response["status"]==true )
+ saleObj = Sale.find(sale_id)
+ sale_payment = SalePayment.new
+ @status, @sale = sale_payment.process_payment(saleObj, @user, cash, "voucher")
+ end
+ end
+ end
+
+end
diff --git a/app/controllers/settings/dining_charges_controller.rb b/app/controllers/settings/dining_charges_controller.rb
new file mode 100644
index 00000000..6de504bf
--- /dev/null
+++ b/app/controllers/settings/dining_charges_controller.rb
@@ -0,0 +1,91 @@
+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
+ @dining_charges = DiningCharge.all
+ end
+
+ # GET /dining_charges/1
+ # GET /dining_charges/1.json
+ def show
+ end
+
+ # GET /dining_charges/new
+ def new
+ @dining_charge = DiningCharge.new
+ end
+
+ # GET /dining_charges/1/edit
+ def edit
+ end
+
+ # POST /dining_charges
+ # 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 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 }
+ format.json { render json: @dining_charge.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # PATCH/PUT /dining_charges/1
+ # 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 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 }
+ format.json { render json: @dining_charge.errors, status: :unprocessable_entity }
+ end
+ end
+ end
+
+ # DELETE /dining_charges/1
+ # DELETE /dining_charges/1.json
+ def destroy
+ @dining_charge.destroy
+ respond_to do |format|
+ format.html { redirect_to dining_charges_url, notice: 'Dining charge was successfully destroyed.' }
+ format.json { head :no_content }
+ end
+ end
+
+ private
+ # Use callbacks to share common setup or constraints between actions.
+ def set_dining_charge
+ @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.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/helpers/dining_charges_helper.rb b/app/helpers/dining_charges_helper.rb
new file mode 100644
index 00000000..972a028c
--- /dev/null
+++ b/app/helpers/dining_charges_helper.rb
@@ -0,0 +1,2 @@
+module DiningChargesHelper
+end
diff --git a/app/models/dining_charge.rb b/app/models/dining_charge.rb
new file mode 100644
index 00000000..e1d70278
--- /dev/null
+++ b/app/models/dining_charge.rb
@@ -0,0 +1,41 @@
+class DiningCharge < ApplicationRecord
+ belongs_to :table
+ belongs_to :room
+
+ def amount_calculate(dining_charges_obj, checkin , checkout)
+
+ if !checkin.nil? && !checkout.nil? && !dining_charges_obj.nil?
+
+ minutes = ((checkin - checkout) * 24 * 60).to_i # stay minutes
+ dining_minutes = minutes - dining_charges_obj.minimum_free_time # stayminutes - free minutes
+ charge_type = dining_charges_obj.charge_type
+ if charge_type == 'hr'
+
+ elsif charge_type == 'day'
+ price = charge_by_day
+ end
+ end
+
+ end
+
+ def charge_by_hour
+
+ end
+
+ def charge_by_day(chargesObj, dining_minutes)
+ minues_per_day = 12 * 60
+ result = dining_minutes / minues_per_day
+ if result < 1
+ return chargesObj.unit_price
+ elsif result > 1
+ solid_price = result * chargesObj.unit_price
+
+ remain_value = dining_minutes % minues_per_day
+ roundingblock = remain_value / chargesObj.time_rounding_block
+ if roundingblock > 1
+
+ end
+ end
+ end
+
+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/home/dashboard.html.erb b/app/views/home/dashboard.html.erb
index 6b49c880..c2074720 100644
--- a/app/views/home/dashboard.html.erb
+++ b/app/views/home/dashboard.html.erb
@@ -1,12 +1,12 @@
-
-
+
-
+
<% if current_login_employee.role = "admin" %>
+
<% elsif current_login_employee.role = "cashier" %>
<%= link_to "Cashier Station", origami_path %>
- <% elsif current_login_employee = "waiter" %>
+ <% elsif current_login_employee = "account" %>
<%= link_to "Cashier Station", oishi_path %>
<% else %>
@@ -18,18 +18,30 @@
-
-
-
- <%= shop.address %>
-
-
- <%= shop.phone_no %>
-
-
-
+
+
+
+
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..db4de245
--- /dev/null
+++ b/app/views/origami/voucher/index.html.erb
@@ -0,0 +1,179 @@
+
+
+
+
diff --git a/app/views/settings/dining_charges/_dining_charge.json.jbuilder b/app/views/settings/dining_charges/_dining_charge.json.jbuilder
new file mode 100644
index 00000000..045eb7ae
--- /dev/null
+++ b/app/views/settings/dining_charges/_dining_charge.json.jbuilder
@@ -0,0 +1,2 @@
+json.extract! dining_charge, :id, :created_at, :updated_at
+json.url dining_charge_url(dining_charge, format: :json)
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/settings/dining_charges/index.html.erb b/app/views/settings/dining_charges/index.html.erb
new file mode 100644
index 00000000..0b3424ac
--- /dev/null
+++ b/app/views/settings/dining_charges/index.html.erb
@@ -0,0 +1,25 @@
+
<%= notice %>
+
+
Dining Charges
+
+
+
+
+ |
+
+
+
+
+ <% @dining_charges.each do |dining_charge| %>
+
+ | <%= link_to 'Show', dining_charge %> |
+ <%= link_to 'Edit', edit_dining_charge_path(dining_charge) %> |
+ <%= link_to 'Destroy', dining_charge, method: :delete, data: { confirm: 'Are you sure?' } %> |
+
+ <% end %>
+
+
+
+
+
+<%= link_to 'New Dining Charge', new_dining_charge_path %>
diff --git a/app/views/settings/dining_charges/index.json.jbuilder b/app/views/settings/dining_charges/index.json.jbuilder
new file mode 100644
index 00000000..0bb9b37d
--- /dev/null
+++ b/app/views/settings/dining_charges/index.json.jbuilder
@@ -0,0 +1 @@
+json.array! @dining_charges, partial: 'dining_charges/dining_charge', as: :dining_charge
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/settings/dining_charges/show.html.erb b/app/views/settings/dining_charges/show.html.erb
new file mode 100644
index 00000000..b37298ae
--- /dev/null
+++ b/app/views/settings/dining_charges/show.html.erb
@@ -0,0 +1,4 @@
+
<%= notice %>
+
+<%= link_to 'Edit', edit_dining_charge_path(@dining_charge) %> |
+<%= link_to 'Back', dining_charges_path %>
diff --git a/app/views/settings/dining_charges/show.json.jbuilder b/app/views/settings/dining_charges/show.json.jbuilder
new file mode 100644
index 00000000..a91128e1
--- /dev/null
+++ b/app/views/settings/dining_charges/show.json.jbuilder
@@ -0,0 +1 @@
+json.partial! "dining_charges/dining_charge", dining_charge: @dining_charge
diff --git a/app/views/settings/employees/index.html.erb b/app/views/settings/employees/index.html.erb
index b44a2dcd..7c1f2eb7 100644
--- a/app/views/settings/employees/index.html.erb
+++ b/app/views/settings/employees/index.html.erb
@@ -16,6 +16,7 @@
Name |
Role |
Created At |
+
Updated At |
Action |
@@ -26,6 +27,7 @@
<%= link_to employee.name,settings_employee_path(employee) %> |
<%= employee.role %> |
<%= employee.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> |
+
<%= employee.updated_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> |
<%= link_to 'Edit', edit_settings_employee_path(employee) %>
<%if employee.role != "administrator"%>
diff --git a/app/views/settings/employees/show.html.erb b/app/views/settings/employees/show.html.erb
index cad7a6ad..1869fcde 100644
--- a/app/views/settings/employees/show.html.erb
+++ b/app/views/settings/employees/show.html.erb
@@ -2,7 +2,7 @@
@@ -15,7 +15,8 @@
|
| Name |
Role |
-
+ Created At |
+ Updated At |
Action |
@@ -24,6 +25,8 @@
| <%= @employee.name %> |
<%= @employee.role %> |
+ <%= @employee.created_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> |
+ <%= @employee.updated_at.utc.getlocal.strftime("%Y-%m-%d/%I:%M %p") %> |
<%= link_to 'Edit', edit_settings_employee_path(@employee) %>
|
@@ -34,4 +37,3 @@
-
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 599ec8c8..54bbbf9e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -137,6 +137,7 @@ Rails.application.routes.draw do
post 'payment/visa' => "visa#create"
post 'payment/paypar' => 'paypar_payments#create'
post 'payment/credit' => 'credit_payments#create'
+ post 'payment/voucher' => 'voucher_payments#create'
get 'sale/:sale_id/payment/credit_payment' => "credit_payments#index"
get 'sale/:sale_id/payment/others_payment' => "others_payments#index"
@@ -145,6 +146,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'
@@ -255,9 +257,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/db/migrate/20170811052036_create_dining_charges.rb b/db/migrate/20170811052036_create_dining_charges.rb
new file mode 100644
index 00000000..3a77ad18
--- /dev/null
+++ b/db/migrate/20170811052036_create_dining_charges.rb
@@ -0,0 +1,16 @@
+class CreateDiningCharges < ActiveRecord::Migration[5.1]
+ def change
+ create_table :dining_charges do |t|
+ t.references :dining_facility
+ t.string :item_code, :null => false
+ t.integer :unit_price, :default => 0
+ t.boolean :taxable, :default => true
+ t.string :charge_type, :default => "hr"
+ t.time :minimum_free_time
+ t.time :charge_block
+ t.string :time_rounding, :default => "down"
+ t.time :time_rounding_block
+ t.timestamps
+ 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"})
diff --git a/spec/controllers/dining_charges_controller_spec.rb b/spec/controllers/dining_charges_controller_spec.rb
new file mode 100644
index 00000000..2d92fe46
--- /dev/null
+++ b/spec/controllers/dining_charges_controller_spec.rb
@@ -0,0 +1,141 @@
+require 'rails_helper'
+
+# This spec was generated by rspec-rails when you ran the scaffold generator.
+# It demonstrates how one might use RSpec to specify the controller code that
+# was generated by Rails when you ran the scaffold generator.
+#
+# It assumes that the implementation code is generated by the rails scaffold
+# generator. If you are using any extension libraries to generate different
+# controller code, this generated spec may or may not pass.
+#
+# It only uses APIs available in rails and/or rspec-rails. There are a number
+# of tools you can use to make these specs even more expressive, but we're
+# sticking to rails and rspec-rails APIs to keep things simple and stable.
+#
+# Compared to earlier versions of this generator, there is very limited use of
+# stubs and message expectations in this spec. Stubs are only used when there
+# is no simpler way to get a handle on the object needed for the example.
+# Message expectations are only used when there is no simpler way to specify
+# that an instance is receiving a specific message.
+#
+# Also compared to earlier versions of this generator, there are no longer any
+# expectations of assigns and templates rendered. These features have been
+# removed from Rails core in Rails 5, but can be added back in via the
+# `rails-controller-testing` gem.
+
+RSpec.describe DiningChargesController, type: :controller do
+
+ # This should return the minimal set of attributes required to create a valid
+ # DiningCharge. As you add validations to DiningCharge, be sure to
+ # adjust the attributes here as well.
+ let(:valid_attributes) {
+ skip("Add a hash of attributes valid for your model")
+ }
+
+ let(:invalid_attributes) {
+ skip("Add a hash of attributes invalid for your model")
+ }
+
+ # This should return the minimal set of values that should be in the session
+ # in order to pass any filters (e.g. authentication) defined in
+ # DiningChargesController. Be sure to keep this updated too.
+ let(:valid_session) { {} }
+
+ describe "GET #index" do
+ it "returns a success response" do
+ dining_charge = DiningCharge.create! valid_attributes
+ get :index, params: {}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+
+ describe "GET #show" do
+ it "returns a success response" do
+ dining_charge = DiningCharge.create! valid_attributes
+ get :show, params: {id: dining_charge.to_param}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+
+ describe "GET #new" do
+ it "returns a success response" do
+ get :new, params: {}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+
+ describe "GET #edit" do
+ it "returns a success response" do
+ dining_charge = DiningCharge.create! valid_attributes
+ get :edit, params: {id: dining_charge.to_param}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+
+ describe "POST #create" do
+ context "with valid params" do
+ it "creates a new DiningCharge" do
+ expect {
+ post :create, params: {dining_charge: valid_attributes}, session: valid_session
+ }.to change(DiningCharge, :count).by(1)
+ end
+
+ it "redirects to the created dining_charge" do
+ post :create, params: {dining_charge: valid_attributes}, session: valid_session
+ expect(response).to redirect_to(DiningCharge.last)
+ end
+ end
+
+ context "with invalid params" do
+ it "returns a success response (i.e. to display the 'new' template)" do
+ post :create, params: {dining_charge: invalid_attributes}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+ end
+
+ describe "PUT #update" do
+ context "with valid params" do
+ let(:new_attributes) {
+ skip("Add a hash of attributes valid for your model")
+ }
+
+ it "updates the requested dining_charge" do
+ dining_charge = DiningCharge.create! valid_attributes
+ put :update, params: {id: dining_charge.to_param, dining_charge: new_attributes}, session: valid_session
+ dining_charge.reload
+ skip("Add assertions for updated state")
+ end
+
+ it "redirects to the dining_charge" do
+ dining_charge = DiningCharge.create! valid_attributes
+ put :update, params: {id: dining_charge.to_param, dining_charge: valid_attributes}, session: valid_session
+ expect(response).to redirect_to(dining_charge)
+ end
+ end
+
+ context "with invalid params" do
+ it "returns a success response (i.e. to display the 'edit' template)" do
+ dining_charge = DiningCharge.create! valid_attributes
+ put :update, params: {id: dining_charge.to_param, dining_charge: invalid_attributes}, session: valid_session
+ expect(response).to be_success
+ end
+ end
+ end
+
+ describe "DELETE #destroy" do
+ it "destroys the requested dining_charge" do
+ dining_charge = DiningCharge.create! valid_attributes
+ expect {
+ delete :destroy, params: {id: dining_charge.to_param}, session: valid_session
+ }.to change(DiningCharge, :count).by(-1)
+ end
+
+ it "redirects to the dining_charges list" do
+ dining_charge = DiningCharge.create! valid_attributes
+ delete :destroy, params: {id: dining_charge.to_param}, session: valid_session
+ expect(response).to redirect_to(dining_charges_url)
+ end
+ end
+
+end
diff --git a/spec/helpers/dining_charges_helper_spec.rb b/spec/helpers/dining_charges_helper_spec.rb
new file mode 100644
index 00000000..9592fc0b
--- /dev/null
+++ b/spec/helpers/dining_charges_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+# Specs in this file have access to a helper object that includes
+# the DiningChargesHelper. For example:
+#
+# describe DiningChargesHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# expect(helper.concat_strings("this","that")).to eq("this that")
+# end
+# end
+# end
+RSpec.describe DiningChargesHelper, type: :helper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/dining_charge_spec.rb b/spec/models/dining_charge_spec.rb
new file mode 100644
index 00000000..bc7b0d21
--- /dev/null
+++ b/spec/models/dining_charge_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe DiningCharge, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/requests/dining_charges_spec.rb b/spec/requests/dining_charges_spec.rb
new file mode 100644
index 00000000..79ac650c
--- /dev/null
+++ b/spec/requests/dining_charges_spec.rb
@@ -0,0 +1,10 @@
+require 'rails_helper'
+
+RSpec.describe "DiningCharges", type: :request do
+ describe "GET /dining_charges" do
+ it "works! (now write some real specs)" do
+ get dining_charges_path
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/routing/dining_charges_routing_spec.rb b/spec/routing/dining_charges_routing_spec.rb
new file mode 100644
index 00000000..0cf8211b
--- /dev/null
+++ b/spec/routing/dining_charges_routing_spec.rb
@@ -0,0 +1,39 @@
+require "rails_helper"
+
+RSpec.describe DiningChargesController, type: :routing do
+ describe "routing" do
+
+ it "routes to #index" do
+ expect(:get => "/dining_charges").to route_to("dining_charges#index")
+ end
+
+ it "routes to #new" do
+ expect(:get => "/dining_charges/new").to route_to("dining_charges#new")
+ end
+
+ it "routes to #show" do
+ expect(:get => "/dining_charges/1").to route_to("dining_charges#show", :id => "1")
+ end
+
+ it "routes to #edit" do
+ expect(:get => "/dining_charges/1/edit").to route_to("dining_charges#edit", :id => "1")
+ end
+
+ it "routes to #create" do
+ expect(:post => "/dining_charges").to route_to("dining_charges#create")
+ end
+
+ it "routes to #update via PUT" do
+ expect(:put => "/dining_charges/1").to route_to("dining_charges#update", :id => "1")
+ end
+
+ it "routes to #update via PATCH" do
+ expect(:patch => "/dining_charges/1").to route_to("dining_charges#update", :id => "1")
+ end
+
+ it "routes to #destroy" do
+ expect(:delete => "/dining_charges/1").to route_to("dining_charges#destroy", :id => "1")
+ end
+
+ end
+end
diff --git a/spec/views/dining_charges/edit.html.erb_spec.rb b/spec/views/dining_charges/edit.html.erb_spec.rb
new file mode 100644
index 00000000..d91e5fea
--- /dev/null
+++ b/spec/views/dining_charges/edit.html.erb_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+RSpec.describe "dining_charges/edit", type: :view do
+ before(:each) do
+ @dining_charge = assign(:dining_charge, DiningCharge.create!())
+ end
+
+ it "renders the edit dining_charge form" do
+ render
+
+ assert_select "form[action=?][method=?]", dining_charge_path(@dining_charge), "post" do
+ end
+ end
+end
diff --git a/spec/views/dining_charges/index.html.erb_spec.rb b/spec/views/dining_charges/index.html.erb_spec.rb
new file mode 100644
index 00000000..1712a84f
--- /dev/null
+++ b/spec/views/dining_charges/index.html.erb_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+RSpec.describe "dining_charges/index", type: :view do
+ before(:each) do
+ assign(:dining_charges, [
+ DiningCharge.create!(),
+ DiningCharge.create!()
+ ])
+ end
+
+ it "renders a list of dining_charges" do
+ render
+ end
+end
diff --git a/spec/views/dining_charges/new.html.erb_spec.rb b/spec/views/dining_charges/new.html.erb_spec.rb
new file mode 100644
index 00000000..91bb8ac2
--- /dev/null
+++ b/spec/views/dining_charges/new.html.erb_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+RSpec.describe "dining_charges/new", type: :view do
+ before(:each) do
+ assign(:dining_charge, DiningCharge.new())
+ end
+
+ it "renders new dining_charge form" do
+ render
+
+ assert_select "form[action=?][method=?]", dining_charges_path, "post" do
+ end
+ end
+end
diff --git a/spec/views/dining_charges/show.html.erb_spec.rb b/spec/views/dining_charges/show.html.erb_spec.rb
new file mode 100644
index 00000000..e3674b43
--- /dev/null
+++ b/spec/views/dining_charges/show.html.erb_spec.rb
@@ -0,0 +1,11 @@
+require 'rails_helper'
+
+RSpec.describe "dining_charges/show", type: :view do
+ before(:each) do
+ @dining_charge = assign(:dining_charge, DiningCharge.create!())
+ end
+
+ it "renders attributes in
" do
+ render
+ end
+end
diff --git a/test/system/dining_charges_test.rb b/test/system/dining_charges_test.rb
new file mode 100644
index 00000000..3ed188c5
--- /dev/null
+++ b/test/system/dining_charges_test.rb
@@ -0,0 +1,9 @@
+require "application_system_test_case"
+
+class DiningChargesTest < ApplicationSystemTestCase
+ # test "visiting the index" do
+ # visit dining_charges_url
+ #
+ # assert_selector "h1", text: "DiningCharge"
+ # end
+end