Merge branch 'quick_service' of bitbucket.org:code2lab/sxrestaurant into split_bill

This commit is contained in:
phyusin
2018-02-23 15:29:36 +06:30
19 changed files with 284 additions and 125 deletions

View File

@@ -1,10 +1,11 @@
class ApplicationController < ActionController::Base
include LoginVerification
include LicenseVerification
#before_action :check_installation
protect_from_forgery with: :exception
# lookup domain for db from provision
before_action :lookup_domain, :set_locale
before_action :set_locale
helper_method :current_company,:current_login_employee,:current_user,:shop_detail
# alias_method :current_user, :current_login_employee,:current_user
@@ -22,67 +23,6 @@ class ApplicationController < ActionController::Base
{ locale: I18n.locale }
end
def lookup_domain
if request.subdomain.present? && request.subdomain != "www"
from = request.subdomain.downcase + "." + request.domain.downcase
@license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase
if (!@license.nil?)
# logger.info "Location - " + @license.name
ActiveRecord::Base.establish_connection(website_connection(@license))
# logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema
else
# reconnect_default_db
logger.info 'License is nil'
# redirect_to root_url(:host => request.domain) + "store_error"
render :json => [{ status: false, message: 'Invalid Access!'}]
end
else
# check for license file
# if check_license
# current_license(ENV["SX_PROVISION_URL"])
# else
# redirect_to activate_path
# end
end
end
def current_license(url)
@license = License.new(url)
flag = @license.detail_with_local_file()
if (flag == 0)
flash[:notice] = 'Expired or No License!'
elsif (flag == 2)
flash[:notice] = 'Expiring! Please, License extend...'
else
puts "RUN SAY BYAR"
end
end
def cache_license(url, lookup)
@license = License.new(url, lookup)
if (@license.detail_with_local_cache(lookup) == true)
return @license
else
return nil
end
end
def website_connection(license)
default_connection.dup.update(:host => license.dbhost, :database => license.dbschema.to_s.downcase,
:username => license.dbusername, :password => license.dbpassword)
end
def reconnect_default_db
ActiveRecord::Base.establish_connection(Rails.env)
end
# Regular database.yml configuration hash
def default_connection
@default_config ||= ActiveRecord::Base.connection.instance_variable_get("@config").dup
end
rescue_from CanCan::AccessDenied do |exception|
flash[:warning] = exception.message
redirect_to root_path
@@ -115,14 +55,6 @@ class ApplicationController < ActionController::Base
@employee = Employee.find_by_token_session(session[:session_token])
end
end
private
def check_license
if License.check_license_file
return true
end
return false
end
end

View File

@@ -1,5 +1,4 @@
class BaseCrmController < ActionController::Base
include LoginVerification
class BaseCrmController < ApplicationController
layout "CRM"
#before_action :check_installation

View File

@@ -1,5 +1,4 @@
class BaseInventoryController < ActionController::Base
include LoginVerification
class BaseInventoryController < ApplicationController
layout "inventory"
#before_action :check_installation

View File

@@ -1,5 +1,4 @@
class BaseOqsController < ActionController::Base
include LoginVerification
class BaseOqsController < ApplicationController
layout "OQS"
#before_action :check_installation

View File

@@ -1,5 +1,4 @@
class BaseOrigamiController < ActionController::Base
include LoginVerification
class BaseOrigamiController < ApplicationController
layout "origami"
# before_action :checkin_process

View File

@@ -1,5 +1,4 @@
class BaseReportController < ActionController::Base
include LoginVerification
class BaseReportController < ApplicationController
layout "application"
#before_action :check_installation

View File

@@ -1,9 +1,6 @@
class BaseWaiterController < ActionController::Base
include LoginVerification
class BaseWaiterController < ApplicationController
layout "waiter"
#before_action :check_installation
protect_from_forgery with: :exception
end

View File

@@ -0,0 +1,83 @@
module LicenseVerification
extend ActiveSupport::Concern
included do
before_action :lookup_domain
end
protected
def lookup_domain
if request.subdomain.present? && request.subdomain != "www"
from = request.subdomain.downcase + "." + request.domain.downcase
@license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase
if (!@license.nil?)
# logger.info "Location - " + @license.name
ActiveRecord::Base.establish_connection(website_connection(@license))
authenticate_session_token
# logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema
else
# reconnect_default_db
logger.info 'License is nil'
# redirect_to root_url(:host => request.domain) + "store_error"
render :json => [{ status: false, message: 'Invalid Access!'}]
end
else
# check for license file
# if check_license
# current_license(ENV["SX_PROVISION_URL"])
# else
# redirect_to activate_path
# end
end
end
def authenticate_session_token
token = session[:session_token]
if (token)
#@current_user = User.find_by(api_key: token)
#Rails.logger.debug "token - " + token.to_s
@user = Employee.authenticate_by_token(token)
if !@user
flash[:notice] = 'Invalid Access!'
end
end
end
def current_license(url)
@license = License.new(url)
flag = @license.detail_with_local_file()
if (flag == 0)
flash[:notice] = 'Expired or No License!'
elsif (flag == 2)
flash[:notice] = 'Expiring! Please, License extend...'
else
puts "RUN SAY BYAR"
end
end
def cache_license(url, lookup)
@license = License.new(url, lookup)
if (@license.detail_with_local_cache(lookup) == true)
return @license
else
return nil
end
end
def website_connection(license)
default_connection.dup.update(:host => license.dbhost, :database => license.dbschema.to_s.downcase,
:username => license.dbusername, :password => license.dbpassword)
end
def reconnect_default_db
ActiveRecord::Base.establish_connection(Rails.env)
end
# Regular database.yml configuration hash
def default_connection
@default_config ||= ActiveRecord::Base.connection.instance_variable_get("@config").dup
end
end

View File

@@ -4,13 +4,12 @@ module LoginVerification
included do
before_action :authenticate
helper_method :current_company,:current_login_employee
end
protected
# Authenticate the user with token based authentication
def authenticate
def authenticate
authenticate_session_token || render_unauthorized
end
@@ -18,12 +17,14 @@ module LoginVerification
token = session[:session_token]
if (token)
#@current_user = User.find_by(api_key: token)
Rails.logger.debug "token - " + token.to_s
#Rails.logger.debug "token - " + token.to_s
@user = Employee.authenticate_by_token(token)
if @user
return true
#Maybe log - login?
else
flash[:notice] = 'Invalid Access!'
end
end
end
@@ -50,6 +51,10 @@ module LoginVerification
end
private
def check_license
License.check_license_file
end
def check_installation
if current_company.nil?
redirect_to install_path

View File

@@ -1,6 +1,6 @@
class HomeController < ApplicationController
class HomeController < ApplicationController
# layout "application", except: [:index, :show]
skip_before_action :authenticate, only: [:index, :show, :create, :update, :destroy]
# skip_before_action only: [:index, :show, :create, :update, :destroy]
def index
# @employees = Employee.all_emp_except_waiter.order("name asc")

View File

@@ -93,7 +93,7 @@ class Origami::PaymentsController < BaseOrigamiController
#end rounding adjustment
sale_payment = SalePayment.new
sale_payment.process_payment(saleObj, @user, cash, "cash")
sale_payment.process_payment(saleObj, @usercurrent_user.name, cash, "cash")
render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error "})
rebate_amount = nil
@@ -350,6 +350,7 @@ class Origami::PaymentsController < BaseOrigamiController
cash = params[:cash]
sale_id = params[:sale_id]
sub_total = params[:sub_total]
remark = params[:remark]
member_info = nil
rebate_amount = nil
current_balance = nil
@@ -363,7 +364,7 @@ class Origami::PaymentsController < BaseOrigamiController
end
sale_payment = SalePayment.new
sale_payment.process_payment(saleObj, @user, cash, "foc")
sale_payment.process_payment(saleObj, current_user.name, cash, "foc" ,remark)
# For Cashier by Zone
bookings = Booking.where("sale_id='#{sale_id}'")

View File

@@ -3,7 +3,7 @@ class Origami::VoidController < BaseOrigamiController
def overall_void
sale_id = params[:sale_id]
remark = params[:remark]
if Sale.exists?(sale_id)
sale = Sale.find_by_sale_id(sale_id)
@@ -69,12 +69,8 @@ class Origami::VoidController < BaseOrigamiController
end
# FOr Sale Audit
action_by = current_user.id
if table.nil?
remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table -> nil"
else
remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
end
action_by = current_user.name
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,"SALEVOID" )
# For Print