diff --git a/app/models/sale.rb b/app/models/sale.rb index 7213c55f..4da248df 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1404,7 +1404,7 @@ def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type if payment_type.present? sale_payment = sale_payment.where(payment_method: payment_type) end - + return payments_total, sale_payment end @@ -1438,10 +1438,10 @@ end cash = 0.0 self.sale_payments.each do |pay| if pay.payment_method == 'cash' - cash = pay.payment_amount-self.amount_changed + cash += pay.payment_amount end end - return cash + return cash - self.amount_changed end def get_credit_amount diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 389d1f25..b5c65b21 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -70,7 +70,7 @@ class SalePayment < ApplicationRecord self.sale = invoice self.received_amount = cash_amount self.payment_reference = remark - + self.action_by = action_by #get all payment for this invoices if payment_for @@ -637,15 +637,14 @@ class SalePayment < ApplicationRecord def sale_update_payment_status(paid_amount, check_foc = false) #update amount_outstanding sale = self.sale + total_payment_amount = sale.sale_payments.reload.sum(&:payment_amount) sale.amount_received = sale.amount_received.to_f + paid_amount.to_f - sale.amount_changed = sale.amount_received.to_f - sale.grand_total.to_f - - all_received_amount = sale.sale_payments.reload.sum(&:payment_amount) + sale.amount_changed = total_payment_amount - sale.grand_total.to_f is_credit = sale.sale_payments.any? { |x| x.payment_method == "creditnote" } is_foc = sale.sale_payments.any? { |x| x.payment_method == "foc" } - if sale.grand_total <= all_received_amount && sale.sale_status == "new" + if sale.grand_total <= total_payment_amount && sale.sale_status == "new" sale.payment_status = "paid" if is_credit sale.payment_status = "outstanding"