waiter and cashier in api/bill_controller

This commit is contained in:
Yan
2017-06-27 15:26:02 +06:30
parent def8ce34c2
commit 464e72012b
3 changed files with 24 additions and 12 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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