From 4c69c1d5d2d3a8adddeda90fa742fe29cdec4557 Mon Sep 17 00:00:00 2001 From: yarzar_code Date: Tue, 14 Jan 2020 14:21:46 +0630 Subject: [PATCH 1/6] Print close cashier --- app/controllers/home_controller.rb | 2 +- app/controllers/origami/payments_controller.rb | 2 +- app/controllers/origami/shifts_controller.rb | 2 +- app/models/sale.rb | 4 ++-- app/views/home/dashboard.html.erb | 2 +- app/views/layouts/_header.html.erb | 8 +++++++- 6 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index dcf31a36..0da2bbf5 100755 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -100,7 +100,7 @@ class HomeController < ApplicationController @sales = Sale.receipt_date_between(@from, @to).completed if current_user.present? && !(current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor') - if shift = ShiftSale.current_open_shift(current_user.id) + if shift = ShiftSale.current_open_shift(current_user) @orders = @orders.where(shift_sale_id: shift.id) @sales = @sales.where(shift_sale_id: shift.id) end diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index 7951c348..a5b38db2 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -192,7 +192,7 @@ class Origami::PaymentsController < BaseOrigamiController end #card_balance amount for Paymal payment - card_balance_amount = SaleAudit.getCardBalanceAmount(sale_id) + card_balance_amount,transaction_ref = SaleAudit.getCardBalanceAmount(sale_id) # get printer info print_settings = PrintSetting.find_by_unique_code(unique_code) diff --git a/app/controllers/origami/shifts_controller.rb b/app/controllers/origami/shifts_controller.rb index 8b7bdf91..bbe2cf57 100755 --- a/app/controllers/origami/shifts_controller.rb +++ b/app/controllers/origami/shifts_controller.rb @@ -126,7 +126,7 @@ class Origami::ShiftsController < BaseOrigamiController if find_close_cashier_print[0][1].to_i > 0 - printer.print_close_cashier(print_settings,cashier_terminal,current_shop, @sale_items, @total_other_charges_info, current_shop,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway,@total_other_charges,@total_waste,@total_spoile,@total_credit_payments) + printer.print_close_cashier(print_settings,cashier_terminal, @shift, @sale_items, @total_other_charges_info, current_shop,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway,@total_other_charges,@total_waste,@total_spoile,@total_credit_payments) end end end diff --git a/app/models/sale.rb b/app/models/sale.rb index 74460cdf..c2faae54 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1496,7 +1496,7 @@ end end if current_user.present? && !(current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor') - if shift = ShiftSale.current_open_shift(current_user.id) + if shift = ShiftSale.current_open_shift(current_user) query = query.where("shift_sale_id='#{shift.id}'") end @@ -1523,7 +1523,7 @@ end end if current_user.present? && !(current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor') - if shift = ShiftSale.current_open_shift(current_user.id) + if shift = ShiftSale.current_open_shift(current_user) query = query.where("shift_sale_id='#{shift.id}'") end end diff --git a/app/views/home/dashboard.html.erb b/app/views/home/dashboard.html.erb index 71f7398a..4cb3bde2 100755 --- a/app/views/home/dashboard.html.erb +++ b/app/views/home/dashboard.html.erb @@ -347,7 +347,7 @@ <% end %> <% end %> - <% if isMobile.include? "Mobile" %> + <% if isMobile.to_s.include? "Mobile" %>
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index ab91b06f..e3bba515 100755 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -19,8 +19,14 @@ <% if current_login_employee.role == "administrator" || current_login_employee.role == "manager" || current_login_employee.role == "account" %> - <% elsif current_login_employee.role == "supervisor" || current_login_employee.role == "cashier" || current_login_employee.role == "waiter" %> + <% elsif current_login_employee.role == "supervisor" %> + <% elsif current_login_employee.role == "cashier" || current_login_employee.role == "waiter"%> + <%if ShiftSale.current_open_shift(current_login_employee) %> + + <%else%> + + <%end%> <%else%> <% end %> From c5eb5d667898d2c3e709bea3c97e33f0d6be2fae Mon Sep 17 00:00:00 2001 From: Zin Moe Date: Tue, 14 Jan 2020 14:58:23 +0630 Subject: [PATCH 2/6] add app_id and auth_token to employee --- .../settings/employees_controller.rb | 11 ++++- app/models/employee.rb | 12 +++++ app/views/settings/employees/show.html.erb | 14 +++++- config/initializers/action_controller.rb | 44 +++++++++---------- config/locales/en.yml | 3 ++ config/routes.rb | 4 +- ..._add_app_id_and_auth_token_to_employees.rb | 9 ++++ 7 files changed, 71 insertions(+), 26 deletions(-) create mode 100644 db/migrate/20200114053707_add_app_id_and_auth_token_to_employees.rb diff --git a/app/controllers/settings/employees_controller.rb b/app/controllers/settings/employees_controller.rb index 448816f5..172ccd5e 100755 --- a/app/controllers/settings/employees_controller.rb +++ b/app/controllers/settings/employees_controller.rb @@ -1,6 +1,6 @@ class Settings::EmployeesController < ApplicationController load_and_authorize_resource - before_action :set_employee, only: [:show, :edit, :update, :destroy] + before_action :set_employee, only: [:show, :edit, :update, :destroy, :change_auth_token] # GET /employees @@ -38,6 +38,13 @@ class Settings::EmployeesController < ApplicationController format.html { render :new } end end + end + + def change_auth_token + @employee.auth_token = SecureRandom.hex(10) + @employee.save + flash[:notice] = 'Auth Token was successfully updated.' + redirect_to settings_employee_url(@employee) end # PATCH/PUT /employees/1 @@ -71,6 +78,6 @@ class Settings::EmployeesController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def employee_params - params.require(:employee).permit(:name, :role, :is_active, :emp_id, :password,:order_queue_station_id, :image_path) + params.require(:employee).permit(:name, :role, :is_active, :emp_id, :password,:order_queue_station_id, :image_path, :app_id, :auth_token) end end diff --git a/app/models/employee.rb b/app/models/employee.rb index 420491af..69b41fd2 100755 --- a/app/models/employee.rb +++ b/app/models/employee.rb @@ -1,5 +1,6 @@ class Employee < ApplicationRecord has_secure_password + # has_secure_token :auth_token has_many :commissioners has_many :shit_sales has_one :current_shift, -> { where.not(shift_started_at: nil).where(shift_closed_at: nil) },class_name: "ShiftSale" @@ -11,6 +12,7 @@ class Employee < ApplicationRecord validates :emp_id, uniqueness: true, numericality: true, length: {in: 1..4}, allow_blank: true validates :password, numericality: true, length: {in: 3..9}, allow_blank: true + before_create :generate_app_id, :generate_auth_token #, if: Proc.new { self.role == "app" } # Employee Image Uploader mount_uploader :image_path, EmployeeImageUploader @@ -89,4 +91,14 @@ class Employee < ApplicationRecord return expiry_time end + + def generate_app_id + return if self.role != 'app' + self.app_id = SecureRandom.urlsafe_base64(nil, false) + end + + def generate_auth_token + return if self.role != 'app' + self.auth_token = SecureRandom.hex(10) + end end diff --git a/app/views/settings/employees/show.html.erb b/app/views/settings/employees/show.html.erb index 87707b22..b5508f1b 100755 --- a/app/views/settings/employees/show.html.erb +++ b/app/views/settings/employees/show.html.erb @@ -54,12 +54,24 @@ <%= t("views.right_panel.detail.employee_photo") %> <%= image_tag @employee.image_path, :size => '200x200'%> + <% if @employee.role == 'app' %> + + <%= t("views.right_panel.detail.employee_app_id") %> + <%= @employee.app_id %> + + + <%= t("views.right_panel.detail.employee_auth_token") %> + <%= @employee.auth_token %> + + <% end %> <%= link_to t("views.btn.edit"), edit_settings_employee_path(@employee),:class => 'btn btn-primary btn-lg waves-effect' %> + <% if @employee.role == 'app' %> + <%= link_to t("views.btn.change_auth_token"), settings_change_auth_token_url(id: @employee.id), class: 'btn btn-primary btn-lg waves-effect' %> + <% end %> <%if @employee.role != "administrator"%> - diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 091abd33..b0bed108 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -4,28 +4,28 @@ class ActionController::Base private def lookup_domain - if request.subdomains.last && request.subdomains.last != "www" && ENV["SERVER_CODE"] = "cloud" - from = request.host - @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase - if (!@license.nil?) - logger.info "Location - " + @license.dbschema - 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 + # if request.subdomains.last && request.subdomains.last != "www" && ENV["SERVER_CODE"] = "cloud" + # from = request.host + # @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase + # if (!@license.nil?) + # logger.info "Location - " + @license.dbschema + # 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 diff --git a/config/locales/en.yml b/config/locales/en.yml index 36cf661c..68c7bc53 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -112,6 +112,7 @@ en: del: "DEL" clr: "CLR" assign: "ASSIGN" + change_auth_token: "Change Auth Token" print_order_summary: "Print Order Summary" memeber_card: "Member Card" @@ -678,6 +679,8 @@ en: edit_btn_txt: "to edit " delete_btn_txt: "to delete " update_btn_txt: "to update " + employee_app_id: "App ID" + employee_auth_token: "Auth Token" helpers: page_entries_info: diff --git a/config/routes.rb b/config/routes.rb index cdb0901d..0ba5e788 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -432,7 +432,9 @@ scope "(:locale)", locale: /en|mm/ do resources :display_images end #employees - resources :employees + resources :employees + get '/:id/change_auth_token' => 'employees#change_auth_token', as: 'change_auth_token' + #menu resources :menus do collection do diff --git a/db/migrate/20200114053707_add_app_id_and_auth_token_to_employees.rb b/db/migrate/20200114053707_add_app_id_and_auth_token_to_employees.rb new file mode 100644 index 00000000..a76b895e --- /dev/null +++ b/db/migrate/20200114053707_add_app_id_and_auth_token_to_employees.rb @@ -0,0 +1,9 @@ +class AddAppIdAndAuthTokenToEmployees < ActiveRecord::Migration[5.1] + def change + add_column :employees, :app_id, :string, unique: true + add_column :employees, :auth_token, :string, unique: true + + add_index :employees, :app_id + add_index :employees, :auth_token + end +end From dda9f9d04c4f5ae478e3123d4495f137533b2cc2 Mon Sep 17 00:00:00 2001 From: yarzar_code Date: Tue, 14 Jan 2020 15:14:20 +0630 Subject: [PATCH 3/6] . --- app/controllers/origami/payments_controller.rb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index af1e57e6..a5b38db2 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -192,11 +192,7 @@ class Origami::PaymentsController < BaseOrigamiController end #card_balance amount for Paymal payment -<<<<<<< HEAD card_balance_amount,transaction_ref = SaleAudit.getCardBalanceAmount(sale_id) -======= - card_balance_amount, transaction_ref = SaleAudit.getCardBalanceAmount(sale_id) ->>>>>>> 60af9124bb181c662358624e1e6fbee1be36a2bb # get printer info print_settings = PrintSetting.find_by_unique_code(unique_code) From 37ff82ae5d2cbb46ae02deac9937cf8f2258b697 Mon Sep 17 00:00:00 2001 From: Zin Moe Date: Tue, 14 Jan 2020 15:34:02 +0630 Subject: [PATCH 4/6] modify generate auth token method --- app/models/employee.rb | 2 ++ config/initializers/action_controller.rb | 44 ++++++++++++------------ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/models/employee.rb b/app/models/employee.rb index 69b41fd2..907aa9ad 100755 --- a/app/models/employee.rb +++ b/app/models/employee.rb @@ -100,5 +100,7 @@ class Employee < ApplicationRecord def generate_auth_token return if self.role != 'app' self.auth_token = SecureRandom.hex(10) + rescue ActiveRecord::RecordNotUnique + retry end end diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index b0bed108..091abd33 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -4,28 +4,28 @@ class ActionController::Base private def lookup_domain - # if request.subdomains.last && request.subdomains.last != "www" && ENV["SERVER_CODE"] = "cloud" - # from = request.host - # @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase - # if (!@license.nil?) - # logger.info "Location - " + @license.dbschema - # 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 + if request.subdomains.last && request.subdomains.last != "www" && ENV["SERVER_CODE"] = "cloud" + from = request.host + @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase + if (!@license.nil?) + logger.info "Location - " + @license.dbschema + 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 From 406a18d1d6b67b7b066502580dd7e660e695f686 Mon Sep 17 00:00:00 2001 From: Zin Moe Date: Tue, 14 Jan 2020 15:47:27 +0630 Subject: [PATCH 5/6] . --- app/controllers/settings/employees_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/settings/employees_controller.rb b/app/controllers/settings/employees_controller.rb index 172ccd5e..fd5fd796 100755 --- a/app/controllers/settings/employees_controller.rb +++ b/app/controllers/settings/employees_controller.rb @@ -41,7 +41,7 @@ class Settings::EmployeesController < ApplicationController end def change_auth_token - @employee.auth_token = SecureRandom.hex(10) + @employee.auth_token = @employee.generate_auth_token #SecureRandom.hex(10) @employee.save flash[:notice] = 'Auth Token was successfully updated.' redirect_to settings_employee_url(@employee) From 93928aedd509f9b6f328c1886bcf0f7cb4fd66a0 Mon Sep 17 00:00:00 2001 From: Zin Moe Date: Tue, 14 Jan 2020 17:23:52 +0630 Subject: [PATCH 6/6] change cloumn auth_token to app_token in employees --- app/controllers/settings/employees_controller.rb | 6 +++--- app/models/employee.rb | 12 +++++++----- app/views/settings/employees/show.html.erb | 10 +++++----- config/locales/en.yml | 4 ++-- config/routes.rb | 2 +- ...14103715_change_column_auth_token_to_app_token.rb | 5 +++++ 6 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 db/migrate/20200114103715_change_column_auth_token_to_app_token.rb diff --git a/app/controllers/settings/employees_controller.rb b/app/controllers/settings/employees_controller.rb index fd5fd796..bcbec6ff 100755 --- a/app/controllers/settings/employees_controller.rb +++ b/app/controllers/settings/employees_controller.rb @@ -40,8 +40,8 @@ class Settings::EmployeesController < ApplicationController end end - def change_auth_token - @employee.auth_token = @employee.generate_auth_token #SecureRandom.hex(10) + def change_app_token + @employee.app_token = @employee.generate_app_token #SecureRandom.hex(10) @employee.save flash[:notice] = 'Auth Token was successfully updated.' redirect_to settings_employee_url(@employee) @@ -78,6 +78,6 @@ class Settings::EmployeesController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def employee_params - params.require(:employee).permit(:name, :role, :is_active, :emp_id, :password,:order_queue_station_id, :image_path, :app_id, :auth_token) + params.require(:employee).permit(:name, :role, :is_active, :emp_id, :password,:order_queue_station_id, :image_path, :app_id, :app_token) end end diff --git a/app/models/employee.rb b/app/models/employee.rb index 907aa9ad..9d18c6c6 100755 --- a/app/models/employee.rb +++ b/app/models/employee.rb @@ -12,7 +12,7 @@ class Employee < ApplicationRecord validates :emp_id, uniqueness: true, numericality: true, length: {in: 1..4}, allow_blank: true validates :password, numericality: true, length: {in: 3..9}, allow_blank: true - before_create :generate_app_id, :generate_auth_token #, if: Proc.new { self.role == "app" } + before_create :generate_app_id, :generate_app_token , if: Proc.new { self.role == "application" } # Employee Image Uploader mount_uploader :image_path, EmployeeImageUploader @@ -93,13 +93,15 @@ class Employee < ApplicationRecord end def generate_app_id - return if self.role != 'app' + # return if self.role != 'application' self.app_id = SecureRandom.urlsafe_base64(nil, false) + rescue ActiveRecord::RecordNotUnique + retry end - def generate_auth_token - return if self.role != 'app' - self.auth_token = SecureRandom.hex(10) + def generate_app_token + # return if self.role != 'application' + self.app_token = SecureRandom.hex(10) rescue ActiveRecord::RecordNotUnique retry end diff --git a/app/views/settings/employees/show.html.erb b/app/views/settings/employees/show.html.erb index b5508f1b..807dc54a 100755 --- a/app/views/settings/employees/show.html.erb +++ b/app/views/settings/employees/show.html.erb @@ -54,22 +54,22 @@ <%= t("views.right_panel.detail.employee_photo") %> <%= image_tag @employee.image_path, :size => '200x200'%> - <% if @employee.role == 'app' %> + <% if @employee.role == 'application' %> <%= t("views.right_panel.detail.employee_app_id") %> <%= @employee.app_id %> - <%= t("views.right_panel.detail.employee_auth_token") %> - <%= @employee.auth_token %> + <%= t("views.right_panel.detail.employee_app_token") %> + <%= @employee.app_token %> <% end %> <%= link_to t("views.btn.edit"), edit_settings_employee_path(@employee),:class => 'btn btn-primary btn-lg waves-effect' %> - <% if @employee.role == 'app' %> - <%= link_to t("views.btn.change_auth_token"), settings_change_auth_token_url(id: @employee.id), class: 'btn btn-primary btn-lg waves-effect' %> + <% if @employee.role == 'application' %> + <%= link_to t("views.btn.change_app_token"), settings_change_app_token_url(id: @employee.id), class: 'btn btn-primary btn-lg waves-effect' %> <% end %> <%if @employee.role != "administrator"%>