update shift only if sales completed
This commit is contained in:
@@ -8,11 +8,11 @@ class Foodcourt::PaymalController < BaseFoodcourtController
|
|||||||
if(Sale.exists?(sale_id))
|
if(Sale.exists?(sale_id))
|
||||||
saleObj = Sale.find(sale_id)
|
saleObj = Sale.find(sale_id)
|
||||||
sale_payment = SalePayment.new
|
sale_payment = SalePayment.new
|
||||||
status, @sale,@membership_data = sale_payment.process_payment(saleObj, current_user, cash, "paymal",account_no)
|
status, @sale, @membership_data = sale_payment.process_payment(saleObj, current_user, cash, "paymal",account_no)
|
||||||
if status == true && @membership_data["status"] == true
|
if status == true && @membership_data["status"] == true
|
||||||
@out = true, "Success!"
|
@out = true, "Success!"
|
||||||
else
|
else
|
||||||
@out =false, @membership_data["message"]
|
@out = false, @membership_data["message"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -17,27 +17,16 @@ class Foodcourt::PaymentsController < BaseFoodcourtController
|
|||||||
if(Sale.exists?(sale_id))
|
if(Sale.exists?(sale_id))
|
||||||
saleObj = Sale.find(sale_id)
|
saleObj = Sale.find(sale_id)
|
||||||
sale_items = SaleItem.get_all_sale_items(sale_id)
|
sale_items = SaleItem.get_all_sale_items(sale_id)
|
||||||
#shop_detail = Shop.first
|
|
||||||
# rounding adjustment
|
|
||||||
if !path.include? ("credit_payment")
|
|
||||||
if current_shop.is_rounding_adj
|
|
||||||
new_total = Sale.get_rounding_adjustment(saleObj.grand_total)
|
|
||||||
rounding_adj = new_total - saleObj.grand_total
|
|
||||||
saleObj.update_attributes(grand_total: new_total,old_grand_total: saleObj.grand_total,rounding_adjustment:rounding_adj) if rounding_adj > 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
#end rounding adjustment
|
|
||||||
sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last
|
sp = SalePayment.where('sale_id=? and payment_method=? and payment_status=?', sale_id, 'kbzpay', 'paid').last
|
||||||
if is_kbz == 'false'
|
if is_kbz == 'false'
|
||||||
Rails.logger.info '################ CASH PAYMENT #################'
|
Rails.logger.info '################ CASH PAYMENT #################'
|
||||||
sale_payment = SalePayment.new
|
sale_payment = SalePayment.new
|
||||||
sale_payment.process_payment(saleObj, current_user, cash, "cash")
|
sale_payment.process_payment(saleObj, current_user, cash, "cash")
|
||||||
else
|
else
|
||||||
sp.kbz_edit_sale_payment(sp.received_amount.to_f, current_user)
|
sp.kbz_edit_sale_payment(sp.received_amount.to_f, current_user)
|
||||||
end
|
end
|
||||||
|
|
||||||
# end
|
|
||||||
|
|
||||||
if !path.include? ("credit_payment")
|
if !path.include? ("credit_payment")
|
||||||
rebate_amount = nil
|
rebate_amount = nil
|
||||||
# For Cashier by Zone
|
# For Cashier by Zone
|
||||||
@@ -70,72 +59,72 @@ class Foodcourt::PaymentsController < BaseFoodcourtController
|
|||||||
unique_code = PrintSetting.where("unique_code REGEXP ?", "receipt.*bill.*pdf").first.unique_code
|
unique_code = PrintSetting.where("unique_code REGEXP ?", "receipt.*bill.*pdf").first.unique_code
|
||||||
end
|
end
|
||||||
|
|
||||||
customer = saleObj.customer
|
customer = saleObj.customer
|
||||||
|
|
||||||
# get member information
|
# get member information
|
||||||
rebate = MembershipSetting.find_by_rebate(1)
|
rebate = MembershipSetting.find_by_rebate(1)
|
||||||
credit_data = SalePayment.find_by_sale_id_and_payment_method(sale_id,'creditnote')
|
credit_data = SalePayment.find_by_sale_id_and_payment_method(sale_id,'creditnote')
|
||||||
|
|
||||||
if customer.membership_id != nil && rebate && credit_data.nil?
|
if customer.membership_id != nil && rebate && credit_data.nil?
|
||||||
member_info = Customer.get_member_account(customer)
|
member_info = Customer.get_member_account(customer)
|
||||||
|
|
||||||
if member_info["status"] == true
|
if member_info["status"] == true
|
||||||
rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no)
|
rebate_amount = Customer.get_membership_transactions(customer,saleObj.receipt_no)
|
||||||
current_balance = SaleAudit.paymal_search(sale_id)
|
current_balance = SaleAudit.paymal_search(sale_id)
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#orders print out
|
#orders print out
|
||||||
# if type == "quick_service"
|
# if type == "quick_service"
|
||||||
booking = Booking.find_by_sale_id(sale_id)
|
booking = Booking.find_by_sale_id(sale_id)
|
||||||
if booking.dining_facility_id.to_i>0
|
if booking.dining_facility_id.to_i>0
|
||||||
table_id = booking.dining_facility_id
|
table_id = booking.dining_facility_id
|
||||||
else
|
else
|
||||||
table_id = 0
|
table_id = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
latest_order = booking.booking_orders.order("order_id DESC").limit(1).first()
|
latest_order = booking.booking_orders.order("order_id DESC").limit(1).first()
|
||||||
if !latest_order.nil?
|
if !latest_order.nil?
|
||||||
latest_order_no = latest_order.order_id
|
latest_order_no = latest_order.order_id
|
||||||
end
|
end
|
||||||
|
|
||||||
booking.booking_orders.each do |order|
|
booking.booking_orders.each do |order|
|
||||||
# Order.pay_process_order_queue(order.order_id, table_id)
|
# Order.pay_process_order_queue(order.order_id, table_id)
|
||||||
oqs = OrderQueueStation.new
|
oqs = OrderQueueStation.new
|
||||||
oqs.pay_process_order_queue(order.order_id, table_id)
|
oqs.pay_process_order_queue(order.order_id, table_id)
|
||||||
|
|
||||||
assign_order = AssignedOrderItem.assigned_order_item_by_job(order.order_id)
|
assign_order = AssignedOrderItem.assigned_order_item_by_job(order.order_id)
|
||||||
from = getCloudDomain #get sub domain in cloud mode
|
from = getCloudDomain #get sub domain in cloud mode
|
||||||
ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from
|
ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from
|
||||||
end
|
end
|
||||||
|
|
||||||
# end
|
# end
|
||||||
|
|
||||||
#for card sale data
|
#for card sale data
|
||||||
card_data = Array.new
|
card_data = Array.new
|
||||||
# card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id)
|
# card_sale_trans_ref_no = Sale.getCardSaleTrans(sale_id)
|
||||||
# if !card_sale_trans_ref_no.nil?
|
# if !card_sale_trans_ref_no.nil?
|
||||||
# card_sale_trans_ref_no.each do |cash_sale_trans|
|
# card_sale_trans_ref_no.each do |cash_sale_trans|
|
||||||
# card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s
|
# card_res_date = cash_sale_trans.res_date.strftime("%Y-%m-%d").to_s
|
||||||
# card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s
|
# card_res_time = cash_sale_trans.res_time.strftime("%H:%M").to_s
|
||||||
# card_no = cash_sale_trans.pan.last(4)
|
# card_no = cash_sale_trans.pan.last(4)
|
||||||
# card_no = card_no.rjust(19,"**** **** **** ")
|
# card_no = card_no.rjust(19,"**** **** **** ")
|
||||||
# card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id})
|
# card_data.push({'res_date' => card_res_date, 'res_time' => card_res_time, 'batch_no' => cash_sale_trans.batch_no, 'trace' => cash_sale_trans.trace, 'pan' => card_no, 'app' => cash_sale_trans.app, 'tid' => cash_sale_trans.terminal_id, 'app_code' => cash_sale_trans.app_code, 'ref_no' => cash_sale_trans.ref_no, 'mid' => cash_sale_trans.merchant_id})
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
|
|
||||||
#card_balance amount for Paymal payment
|
#card_balance amount for Paymal payment
|
||||||
card_balance_amount,transaction_ref = SaleAudit.getCardBalanceAmount(sale_id)
|
card_balance_amount,transaction_ref = SaleAudit.getCardBalanceAmount(sale_id)
|
||||||
|
|
||||||
# get printer info
|
# get printer info
|
||||||
print_settings=PrintSetting.find_by_unique_code(unique_code)
|
print_settings=PrintSetting.find_by_unique_code(unique_code)
|
||||||
# Calculate Food and Beverage Total
|
# Calculate Food and Beverage Total
|
||||||
item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items)
|
item_price_by_accounts = SaleItem.calculate_price_by_accounts(saleObj.sale_items)
|
||||||
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items)
|
discount_price_by_accounts = SaleItem.get_discount_price_by_accounts(saleObj.sale_items)
|
||||||
other_amount = SaleItem.calculate_other_charges(sale_items)
|
other_amount = SaleItem.calculate_other_charges(sale_items)
|
||||||
|
|
||||||
printer = Printer::ReceiptPrinter.new(print_settings)
|
printer = Printer::ReceiptPrinter.new(print_settings)
|
||||||
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil, cashier_terminal,sale_items,saleObj,account_no, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,current_shop, 'paid',current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil,transaction_ref)
|
filename, sale_receipt_no, printer_name = printer.print_receipt_bill(print_settings, false, nil, cashier_terminal,sale_items,saleObj,account_no, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,current_shop, 'paid',current_balance,card_data,other_amount,latest_order_no,card_balance_amount,nil,transaction_ref)
|
||||||
|
|
||||||
#end
|
#end
|
||||||
end
|
end
|
||||||
@@ -155,7 +144,7 @@ class Foodcourt::PaymentsController < BaseFoodcourtController
|
|||||||
@cash_exist = PaymentMethodSetting.cash_exist
|
@cash_exist = PaymentMethodSetting.cash_exist
|
||||||
@credit_exist = PaymentMethodSetting.credit_exist
|
@credit_exist = PaymentMethodSetting.credit_exist
|
||||||
display_type = Lookup.find_by_lookup_type("display_type")
|
display_type = Lookup.find_by_lookup_type("display_type")
|
||||||
if !display_type.nil? && display_type.value.to_i ==2
|
if !display_type.nil? && display_type.value.to_i == 2
|
||||||
@display_type = display_type.value
|
@display_type = display_type.value
|
||||||
else
|
else
|
||||||
@display_type = nil
|
@display_type = nil
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class Foodcourt::VoidController < BaseFoodcourtController
|
|||||||
remark = params[:remark]
|
remark = params[:remark]
|
||||||
order_source = params[:type] #tax profile source
|
order_source = params[:type] #tax profile source
|
||||||
access_code = params[:access_code]
|
access_code = params[:access_code]
|
||||||
|
|
||||||
if Sale.exists?(sale_id)
|
if Sale.exists?(sale_id)
|
||||||
sale = Sale.find_by_sale_id(sale_id)
|
sale = Sale.find_by_sale_id(sale_id)
|
||||||
# update count for shift sale
|
# update count for shift sale
|
||||||
@@ -55,21 +56,11 @@ class Foodcourt::VoidController < BaseFoodcourtController
|
|||||||
Rails.logger.debug membership_response.to_json
|
Rails.logger.debug membership_response.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# For Print
|
# For Print
|
||||||
member_info = nil
|
member_info = nil
|
||||||
rebate_amount = nil
|
rebate_amount = nil
|
||||||
current_balance = nil
|
current_balance = nil
|
||||||
|
|
||||||
# For Cashier by Zone
|
|
||||||
bookings = Booking.where("sale_id='#{sale_id}'")
|
|
||||||
if bookings.count > 1
|
|
||||||
# for Multiple Booking
|
|
||||||
if bookings[0].dining_facility_id.to_i>0
|
|
||||||
table = DiningFacility.find(bookings[0].dining_facility_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if bookings[0].dining_facility_id.to_i > 0
|
if bookings[0].dining_facility_id.to_i > 0
|
||||||
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
||||||
cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id)
|
cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id)
|
||||||
|
|||||||
@@ -34,15 +34,6 @@ class Origami::VoidController < BaseOrigamiController
|
|||||||
sale.sale_status = 'void'
|
sale.sale_status = 'void'
|
||||||
sale.save
|
sale.save
|
||||||
|
|
||||||
# No Need
|
|
||||||
# bookings = sale.bookings
|
|
||||||
# bookings.each do |booking|
|
|
||||||
# orders = booking.orders
|
|
||||||
# orders.each do |order|
|
|
||||||
# # order.status = 'void'
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
|
|
||||||
if table = sale.booking.dining_facility
|
if table = sale.booking.dining_facility
|
||||||
unless table.current_bookings.exists?
|
unless table.current_bookings.exists?
|
||||||
table.update_attributes(status: 'available')
|
table.update_attributes(status: 'available')
|
||||||
@@ -59,20 +50,10 @@ class Origami::VoidController < BaseOrigamiController
|
|||||||
sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_user.name, action_by,remark,"SALEVOID" )
|
sale_audit = SaleAudit.record_audit_for_edit(sale_id,current_user.name, action_by,remark,"SALEVOID" )
|
||||||
|
|
||||||
# For Print
|
# For Print
|
||||||
|
|
||||||
member_info = nil
|
member_info = nil
|
||||||
rebate_amount = nil
|
rebate_amount = nil
|
||||||
current_balance = nil
|
current_balance = nil
|
||||||
|
|
||||||
# For Cashier by Zone
|
|
||||||
bookings = Booking.where("sale_id='#{sale_id}'")
|
|
||||||
if bookings.count > 1
|
|
||||||
# for Multiple Booking
|
|
||||||
if bookings[0].dining_facility_id.to_i>0
|
|
||||||
table = DiningFacility.find(bookings[0].dining_facility_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if bookings[0].dining_facility_id.to_i > 0
|
if bookings[0].dining_facility_id.to_i > 0
|
||||||
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
||||||
cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id)
|
cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id)
|
||||||
@@ -81,17 +62,6 @@ class Origami::VoidController < BaseOrigamiController
|
|||||||
cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id)
|
cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
# if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
|
||||||
# get printer info
|
|
||||||
# print_settings = PrintSetting.find_by_unique_code('ReceiptBillPdf') # SaleItemsPdf
|
|
||||||
#
|
|
||||||
# if !print_settings.nil?
|
|
||||||
# unique_code = 'ReceiptBillPdf'
|
|
||||||
# elsif
|
|
||||||
# unique_code = 'ReceiptBillStarPdf'
|
|
||||||
# end
|
|
||||||
|
|
||||||
customer= Customer.find(sale.customer_id)
|
customer= Customer.find(sale.customer_id)
|
||||||
|
|
||||||
#shop detail
|
#shop detail
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ class SalePayment < ApplicationRecord
|
|||||||
when "foc"
|
when "foc"
|
||||||
payment_status = foc_payment
|
payment_status = foc_payment
|
||||||
when "paymal"
|
when "paymal"
|
||||||
payment_status,membership_data = paymal_payment
|
payment_status, membership_data = paymal_payment
|
||||||
when "JunctionPay"
|
when "JunctionPay"
|
||||||
payment_status = junction_pay_payment
|
payment_status = junction_pay_payment
|
||||||
when "dinga"
|
when "dinga"
|
||||||
@@ -544,7 +544,7 @@ class SalePayment < ApplicationRecord
|
|||||||
remark = "#{membership_data} PayMal Payment- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} "
|
remark = "#{membership_data} PayMal Payment- for Customer #{self.sale.customer_id} Sale Id [#{self.sale.sale_id}]| pay amount -> #{self.received_amount} "
|
||||||
sale_audit = SaleAudit.record_paymal(self.sale.sale_id, remark, 1)
|
sale_audit = SaleAudit.record_paymal(self.sale.sale_id, remark, 1)
|
||||||
|
|
||||||
if membership_data["status"]==true
|
if membership_data["status"] == true
|
||||||
self.payment_method = "paymal"
|
self.payment_method = "paymal"
|
||||||
self.payment_amount = self.received_amount
|
self.payment_amount = self.received_amount
|
||||||
# self.payment_reference = self.voucher_no
|
# self.payment_reference = self.voucher_no
|
||||||
@@ -553,7 +553,6 @@ class SalePayment < ApplicationRecord
|
|||||||
payment_status = self.save!
|
payment_status = self.save!
|
||||||
# SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
|
# SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
|
||||||
sale_update_payment_status(self.received_amount.to_f)
|
sale_update_payment_status(self.received_amount.to_f)
|
||||||
|
|
||||||
else
|
else
|
||||||
sale_update_payment_status(0)
|
sale_update_payment_status(0)
|
||||||
end
|
end
|
||||||
@@ -603,7 +602,6 @@ class SalePayment < ApplicationRecord
|
|||||||
payment_status = self.save!
|
payment_status = self.save!
|
||||||
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
|
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
|
||||||
sale_update_payment_status(self.received_amount.to_f)
|
sale_update_payment_status(self.received_amount.to_f)
|
||||||
|
|
||||||
else
|
else
|
||||||
sale_update_payment_status(0)
|
sale_update_payment_status(0)
|
||||||
end
|
end
|
||||||
@@ -677,8 +675,11 @@ class SalePayment < ApplicationRecord
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
sale.save!
|
sale.save!
|
||||||
table_update_status(sale)
|
|
||||||
update_shift
|
if sale.sale_status == 'completed'
|
||||||
|
table_update_status(sale)
|
||||||
|
update_shift
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# update for cashier shift
|
# update for cashier shift
|
||||||
|
|||||||
Reference in New Issue
Block a user