diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index 95162fb2..4825d161 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -643,18 +643,14 @@ class SalePayment < ApplicationRecord is_foc = sale_payments.any? { |x| x.payment_method == "foc" } || check_foc if is_foc - total_payment_amount = 0.0 - else - total_payment_amount = sale_payments.sum(&:payment_amount) - end - - sale.amount_received = sale.amount_received.to_f + paid_amount.to_f - sale.amount_changed = total_payment_amount - sale.grand_total.to_f - - if is_foc + sale.amount_received = 0.0 + sale.amount_changed = 0.0 sale.payment_status = 'foc' sale.sale_status = 'completed' - elsif sale.grand_total <= total_payment_amount && sale.sale_status == "new" + elsif sale.grand_total <= sale_payments.sum(&:payment_amount) && sale.sale_status == "new" + sale.amount_received = sale.amount_received + paid_amount + sale.amount_changed = sale_payments.sum(&:payment_amount) - sale.grand_total + sale.payment_status = "paid" if is_credit sale.payment_status = "outstanding" diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index f3280f76..afd4ab29 100755 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -152,11 +152,12 @@ class ShiftSale < ApplicationRecord def self.get_by_shift_other_payment(shift) payment_methods = SalePayment.where.not(payment_method: ['cash', 'creditnote', 'foc']).distinct.pluck(:payment_method) - other_payment = Sale.select("sale_payments.payment_method as name, + other_payment = Sale.select("sales.sale_id,sale_payments.payment_method as name, #{payment_methods.map { |method| "SUM(case when (sale_payments.payment_method='#{method}') then sale_payments.payment_amount else 0 end) as #{method}"}.join(', ')}, SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .where("sales.shift_sale_id =? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.id) + return other_payment end def self.calculate_total_price_by_accounts(shift,type)