Мое приложение для выставления счетов регистрирует несколько платежей / счет. У меня проблема в том, что клиент может расплатиться наличными сверх того, что должен. Поэтому, когда я просматриваю итоги, итоговые суммы денежных средств превышают суммы, причитающиеся, поэтому это не реалистичное представление о том, что мне заплатили (потому что я внес изменение). По сути, я хочу переопределить сбор платежей, так что, если я укажу аргумент (true), он покажет мне все платежи, но любые суммы, причитающиеся клиенту, будут вычтены из наличного платежа.
Пример 1:
Счет на общую сумму 25
Interac Платная: $ 10
Оплачено наличными: $ 20
Изменение: $ 5
Пример 2 (с возвратом денег):
Счет на общую сумму 25
Interac Платная: $ 30
Изменение: $ 5
В моей модели Invoice.rb:
has_many :payments, :dependent => :destroy do
def ???(actual_amounts = false)
// call to super() ???
// Find any cash payments and override value to account for change.
// If there isn't a cash payment, make one.
end
end
Итак, вот результаты, которые я ожидал бы для обоих примеров:
Пример 1:
Позвоните на @invoice.payments
и получите 10 и 20 долларов соответственно
Звоните на @invoice.payments(true)
и получите 10 и 15 долларов соответственно
Пример 2:
Звоните на @invoice.payments
доходность $ 30
Позвоните на @invoice.payments(true)
и получите $ 30 Interac и - $ 5 Cash