From 464e72012bb52cbcb10dc37446980ca51261079c Mon Sep 17 00:00:00 2001 From: Yan Date: Tue, 27 Jun 2017 15:26:02 +0630 Subject: [PATCH] waiter and cashier in api/bill_controller --- app/controllers/api/api_controller.rb | 7 ++++++- app/controllers/api/bill_controller.rb | 6 +++--- app/models/sale.rb | 23 +++++++++++++++-------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/api_controller.rb b/app/controllers/api/api_controller.rb index c61b5bc2..5b60b5df 100644 --- a/app/controllers/api/api_controller.rb +++ b/app/controllers/api/api_controller.rb @@ -1,6 +1,6 @@ class Api::ApiController < ActionController::API include TokenVerification - helper_method :current_token, :current_login_employee + helper_method :current_token, :current_login_employee, :get_cashier private @@ -13,6 +13,11 @@ class Api::ApiController < ActionController::API end end + # Get current Cashier + def get_cashier + @cashier = Employee.where("role = 'cashier' AND token_session <> ''") + end + def current_login_employee @employee = Employee.find_by_token_session(current_token) end diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb index f7a4070d..ab9c56f8 100644 --- a/app/controllers/api/bill_controller.rb +++ b/app/controllers/api/bill_controller.rb @@ -13,7 +13,7 @@ class Api::BillController < Api::ApiController if booking if booking.sale_id.nil? @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee) + @status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, get_cashier) else @status = true @sale_id = booking.sale_id @@ -22,7 +22,7 @@ class Api::BillController < Api::ApiController elsif (params[:order_id]) @sale = Sale.new - @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee) + @status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier) end @sale_data = Sale.find_by_sale_id(@sale_id) @@ -32,7 +32,7 @@ class Api::BillController < Api::ApiController #shop detail shop_details = Shop.find(1) - customer= Customer.where('customer_id=' + @sale_data.customer_id) + customer= Customer.find(@sale_data.customer_id) # get member information member_info = Customer.get_member_account(customer) diff --git a/app/models/sale.rb b/app/models/sale.rb index 8f7f17d8..a214c551 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -25,7 +25,7 @@ class Sale < ApplicationRecord SALE_STATUS_OUTSTANDING = "outstanding" SALE_STATUS_COMPLETED = "completed" - def generate_invoice_from_booking(booking_id, requested_by) + def generate_invoice_from_booking(booking_id, requested_by, cashier) booking = Booking.find(booking_id) status = false Rails.logger.debug "Booking -> " + booking.id.to_s @@ -35,9 +35,9 @@ class Sale < ApplicationRecord booking.booking_orders.each do |order| if booking.sale_id - status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by) + status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by, cashier) else - status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by) + status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by, cashier) end booking.sale_id = sale_id end @@ -47,7 +47,7 @@ class Sale < ApplicationRecord end end - def generate_invoice_from_order (order_id, sale_id, booking, requested_by) + def generate_invoice_from_order (order_id, sale_id, booking, requested_by, cashier) taxable = true #if sale_id is exsit and validate #add order to that invoice @@ -66,12 +66,19 @@ class Sale < ApplicationRecord #Default Tax - Values self.tax_type = "exclusive" - # set cashier by current login - self.cashier_id = requested_by.id - self.cashier_name = requested_by.name + # set cashier + if cashier != nil + self.cashier_id = cashier[0].id + self.cashier_name = cashier[0].name + else + self.cashier_id = requested_by.id + self.cashier_name = requested_by.name + end + + # set waiter self.requested_by = requested_by.name - self.requested_at = DateTime.now.utc + self.requested_at = DateTime.now.utc.getlocal Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}" if order