shift double update for sx cashier

This commit is contained in:
phyusin
2018-11-13 17:21:45 +06:30
parent 00ad7cfeb0
commit fe9b1ace90
2 changed files with 57 additions and 46 deletions

View File

@@ -34,16 +34,20 @@ class Api::PaymentsController < Api::ApiController
if status == true && @membership_data["status"] == true
sale_payment = SalePayment.new
sale_payment.process_payment(sale, current_login_employee, 0, "cash")
status = sale_payment.process_payment(sale, current_login_employee, 0, "cash")
#card_balance amount for Paymal payment
card_balance_amount = SaleAudit.getCardBalanceAmount(params[:sale_id])
render json: JSON.generate({:status => true, :balance_amount => card_balance_amount,:receipt_no => sale.receipt_no, :message => "Payment successful."})
else
if @membership_data["card_balance_amount"] != "null"
render json: JSON.generate({:status => false, :balance_amount => @membership_data["card_balance_amount"], :error_message => @membership_data["message"]})
if @membership_data
if @membership_data["card_balance_amount"] != "null"
render json: JSON.generate({:status => false, :balance_amount => @membership_data["card_balance_amount"], :error_message => @membership_data["message"]})
else
render json: JSON.generate({:status => false, :error_message => @membership_data["message"]})
end
else
render json: JSON.generate({:status => false, :error_message => @membership_data["message"]})
render json: JSON.generate({:status => false, :error_message => "Payment failed!"})
end
end
else

View File

@@ -73,39 +73,46 @@ class SalePayment < ApplicationRecord
puts "it was something else"
end
#record an payment in sale-audit
remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}"
if payment_for
shift = ShiftSale.current_open_shift(self.sale.cashier_id)
if !shift.nil?
shift_sale_id = shift.id
if payment_status
#record an payment in sale-audit
remark = "Payment #{payment_method}- for Invoice #{invoice.receipt_no} Due [#{amount_due}]| pay amount -> #{cash_amount} | Payment Status ->#{payment_status}"
if payment_for
shift = ShiftSale.current_open_shift(self.sale.cashier_id)
if !shift.nil?
shift_sale_id = shift.id
else
shift = ShiftSale.current_shift
shift_sale_id = shift.id
end
remark = "#{self.sale_payment_id}||#{shift_sale_id} -> #{remark}"
sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name)
if payment_method == "cash"
update_shift_for_credit_payment
end
else
shift = ShiftSale.current_shift
shift_sale_id = shift.id
sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name)
end
remark = "#{self.sale_payment_id}||#{shift_sale_id} -> #{remark}"
sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name)
if payment_method == "cash"
update_shift_for_credit_payment
# update complete order items in oqs
booking = Booking.find_by_sale_id(sale_id)
booking.booking_orders.each do |sodr|
assigned =AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").pluck(:assigned_order_item_id)
AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(delivery_status: true)
# AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
# aoi.delivery_status = 1
# aoi.save
# end
end
return true, self.save,membership_data
else
sale_audit = SaleAudit.record_payment(invoice.id, remark, action_by.name)
#record an payment in sale-audit
remark = "Payment failed - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]"
sale_audit = SaleAudit.record_payment(invoice.id, remark,action_by.name)
return false, "Payment failed"
end
# update complete order items in oqs
booking = Booking.find_by_sale_id(sale_id)
booking.booking_orders.each do |sodr|
assigned =AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").pluck(:assigned_order_item_id)
AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(delivery_status: true)
# AssignedOrderItem.where("order_id = '#{ sodr.order_id }'").find_each do |aoi|
# aoi.delivery_status = 1
# aoi.save
# end
end
return true, self.save,membership_data
else
#record an payment in sale-audit
remark = "No outstanding Amount - Grand Total [#{invoice.grand_total}] | Due [#{amount_due}] | Paid [#{invoice.amount_received}]"
@@ -324,7 +331,7 @@ class SalePayment < ApplicationRecord
self.outstanding_amount = credit_sale_payment - self.received_amount.to_f
end
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
if !payment_for
sale_update_payment_status(self.received_amount,status)
end
@@ -346,7 +353,7 @@ class SalePayment < ApplicationRecord
# self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.outstanding_amount = 0.00
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
# sale_update_payment_status(self.received_amount)
sale_update_payment_status(0)
return payment_status
@@ -360,7 +367,7 @@ class SalePayment < ApplicationRecord
self.customer_id = self.customer_id
self.outstanding_amount = 0 - self.received_amount.to_f
self.payment_status = "outstanding"
payment_method = self.save!
payment_status = self.save!
sale_update_payment_status(self.received_amount)
return payment_status
@@ -378,7 +385,7 @@ class SalePayment < ApplicationRecord
self.outstanding_amount = credit_payment[0].payment_amount.to_f - self.received_amount.to_f
end
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
if payment_for
update_shift_for_credit_payment
else
@@ -396,7 +403,7 @@ class SalePayment < ApplicationRecord
self.payment_reference = self.voucher_no
self.outstanding_amount = self.sale.grand_total- self.received_amount
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
sale_update_payment_status(self.received_amount)
return payment_status
@@ -412,7 +419,7 @@ class SalePayment < ApplicationRecord
self.payment_reference = self.giftcard_no
self.outstanding_amount = self.sale.grand_total- self.received_amount
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
sale_update_payment_status(self.received_amount)
return payment_status
@@ -436,9 +443,9 @@ class SalePayment < ApplicationRecord
self.payment_amount = self.received_amount
self.payment_reference = self.voucher_no
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "pending"
payment_method = self.save!
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
self.payment_status = "paid"
payment_status = self.save!
# SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
sale_update_payment_status(self.received_amount.to_f)
else
@@ -470,8 +477,8 @@ class SalePayment < ApplicationRecord
self.payment_reference = self.voucher_no
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "paid"
payment_method = self.save!
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
payment_status = self.save!
# SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
sale_update_payment_status(self.received_amount.to_f)
else
@@ -490,7 +497,7 @@ class SalePayment < ApplicationRecord
# self.payment_reference = self.payment_reference
self.outstanding_amount = self.sale.grand_total- self.received_amount
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
sale_update_payment_status(self.received_amount)
return payment_status
end
@@ -520,7 +527,7 @@ class SalePayment < ApplicationRecord
self.payment_reference = self.voucher_no
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
SalePayment.where(:sale_payment_id => self.sale_payment_id).update_all(:payment_status => 'paid')
sale_update_payment_status(self.received_amount.to_f)
@@ -539,12 +546,12 @@ class SalePayment < ApplicationRecord
self.payment_reference = self.payment_reference
self.outstanding_amount = self.sale.grand_total.to_f - self.received_amount.to_f
self.payment_status = "paid"
payment_method = self.save!
payment_status = self.save!
sale_update_payment_status(self.received_amount)
return payment_status
end
def sale_update_payment_status(paid_amount,check_foc = false)
def sale_update_payment_status(paid_amount,check_foc = false)
#update amount_outstanding
self.sale.amount_received = self.sale.amount_received.to_f + paid_amount.to_f
self.sale.save!