diff --git a/app/controllers/eis_billing/payment_status_controller.rb b/app/controllers/eis_billing/payment_status_controller.rb index 4fa626e5dc..015eed64a4 100644 --- a/app/controllers/eis_billing/payment_status_controller.rb +++ b/app/controllers/eis_billing/payment_status_controller.rb @@ -10,9 +10,7 @@ def update bank = create_bank_transfer(invoice: invoice, sum: params[:standing_amount], paid_at: params[:transaction_time]) create_payment_order(invoice: invoice, everypay_response: params, payment_status: payment_status) - - registrar = invoice.buyer - bank.create_activity(registrar, invoice) + bank.bind_invoice(params[:order_reference]) respond_to do |format| format.json do diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index ef2ab33708..bd437fe960 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -88,7 +88,16 @@ def validate_invoice_data(invoice) errors.add(:base, I18n.t('invoice_and_transaction_sums_do_not_match')) if invoice.total != sum end + def parsed_ref_number + reference_no || ref_number_from_description + end + + private + def create_activity(registrar, invoice) + validate_invoice_data(invoice) + return if errors.any? + activity = AccountActivity.new(account: registrar.cash_account, bank_transaction: self, invoice: invoice, sum: invoice.subtotal, currency: currency, description: description, @@ -102,12 +111,6 @@ def create_activity(registrar, invoice) end end - def parsed_ref_number - reference_no || ref_number_from_description - end - - private - def reset_pending_registrar_balance_reload(registrar) return unless registrar.settings['balance_auto_reload'] diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index fbf2fdc59d..de1f629b0b 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -37,8 +37,7 @@ def test_binds_if_this_sum_invoice_already_present first_transaction = BankTransaction.new(sum: 10, description: 'Order nr 1 from registrar 1234567 second number 2345678') - - first_transaction.create_activity(another_invoice.buyer, another_invoice) + first_transaction.bind_invoice(another_invoice.number) transaction = BankTransaction.new(sum: 10, description: 'Order nr 1 from registrar 1234567 second number 2345678')