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 class Api::ApiController < ActionController::API
include TokenVerification include TokenVerification
helper_method :current_token, :current_login_employee helper_method :current_token, :current_login_employee, :get_cashier
private private
@@ -13,6 +13,11 @@ class Api::ApiController < ActionController::API
end end
end end
# Get current Cashier
def get_cashier
@cashier = Employee.where("role = 'cashier' AND token_session <> ''")
end
def current_login_employee def current_login_employee
@employee = Employee.find_by_token_session(current_token) @employee = Employee.find_by_token_session(current_token)
end end

View File

@@ -13,7 +13,7 @@ class Api::BillController < Api::ApiController
if booking if booking
if booking.sale_id.nil? if booking.sale_id.nil?
@sale = Sale.new @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 else
@status = true @status = true
@sale_id = booking.sale_id @sale_id = booking.sale_id
@@ -22,7 +22,7 @@ class Api::BillController < Api::ApiController
elsif (params[:order_id]) elsif (params[:order_id])
@sale = Sale.new @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 end
@sale_data = Sale.find_by_sale_id(@sale_id) @sale_data = Sale.find_by_sale_id(@sale_id)
@@ -32,7 +32,7 @@ class Api::BillController < Api::ApiController
#shop detail #shop detail
shop_details = Shop.find(1) shop_details = Shop.find(1)
customer= Customer.where('customer_id=' + @sale_data.customer_id) customer= Customer.find(@sale_data.customer_id)
# get member information # get member information
member_info = Customer.get_member_account(customer) member_info = Customer.get_member_account(customer)

View File

@@ -25,7 +25,7 @@ class Sale < ApplicationRecord
SALE_STATUS_OUTSTANDING = "outstanding" SALE_STATUS_OUTSTANDING = "outstanding"
SALE_STATUS_COMPLETED = "completed" 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) booking = Booking.find(booking_id)
status = false status = false
Rails.logger.debug "Booking -> " + booking.id.to_s Rails.logger.debug "Booking -> " + booking.id.to_s
@@ -35,9 +35,9 @@ class Sale < ApplicationRecord
booking.booking_orders.each do |order| booking.booking_orders.each do |order|
if booking.sale_id 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 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 end
booking.sale_id = sale_id booking.sale_id = sale_id
end end
@@ -47,7 +47,7 @@ class Sale < ApplicationRecord
end end
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 taxable = true
#if sale_id is exsit and validate #if sale_id is exsit and validate
#add order to that invoice #add order to that invoice
@@ -66,12 +66,19 @@ class Sale < ApplicationRecord
#Default Tax - Values #Default Tax - Values
self.tax_type = "exclusive" self.tax_type = "exclusive"
# set cashier by current login # 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_id = requested_by.id
self.cashier_name = requested_by.name self.cashier_name = requested_by.name
end
# set waiter
self.requested_by = requested_by.name 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}" Rails.logger.debug "Order -> #{order.id} | order_status -> #{order.status}"
if order if order