From 1885ddf7494f4af7150dcbadccc08f8cf7ac0556 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Wed, 7 Jul 2021 09:34:06 +0300 Subject: [PATCH 1/5] fix bind_invoice method --- app/models/bank_transaction.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 734075ac3..5b4f30adf 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -60,7 +60,7 @@ class BankTransaction < ApplicationRecord invoice = Invoice.find_by(number: invoice_no) errors.add(:base, I18n.t('invoice_was_not_found')) unless invoice - validate_invoice_data(invoice) + validate_invoice_data(invoice) if invoice return if errors.any? create_internal_payment_record(channel: (manual ? 'admin_payment' : nil), invoice: invoice, From 405e6804ccd5da49e3be80bfca0f3603c5e372f5 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Wed, 7 Jul 2021 18:22:14 +0300 Subject: [PATCH 2/5] fixes by review result --- app/models/bank_transaction.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 5b4f30adf..ae4fbf51b 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -59,8 +59,7 @@ class BankTransaction < ApplicationRecord end invoice = Invoice.find_by(number: invoice_no) - errors.add(:base, I18n.t('invoice_was_not_found')) unless invoice - validate_invoice_data(invoice) if invoice + validate_invoice_data(invoice) return if errors.any? create_internal_payment_record(channel: (manual ? 'admin_payment' : nil), invoice: invoice, @@ -68,6 +67,11 @@ class BankTransaction < ApplicationRecord end def validate_invoice_data(invoice) + unless invoice + errors.add(:base, I18n.t('invoice_was_not_found')) + return + end + if invoice.paid? errors.add(:base, I18n.t('invoice_is_already_binded')) return From 6643081c1880a8dbeace19f50189c310106b7ea5 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Thu, 8 Jul 2021 00:06:46 +0300 Subject: [PATCH 3/5] added test --- test/models/bank_transaction_test.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/models/bank_transaction_test.rb b/test/models/bank_transaction_test.rb index 9a9b02a74..46ac54d3c 100644 --- a/test/models/bank_transaction_test.rb +++ b/test/models/bank_transaction_test.rb @@ -136,6 +136,12 @@ class BankTransactionTest < ActiveSupport::TestCase assert transaction.errors.full_messages.include?('Invoice and transaction sums do not match') end + def test_binds_without_invoice_no + transaction = BankTransaction.new(sum: 9) + transaction.bind_invoice('') + assert transaction.errors.full_messages.include?('Invoice was not found') + end + def test_overpayment_is_not_matched_with_invoice create_payable_invoice(number: '2222', total: 10) transaction = BankTransaction.new(sum: 11) From a02a6c99cb9e990a63ee181bceb9d6550ffd3251 Mon Sep 17 00:00:00 2001 From: dinsmol Date: Fri, 9 Jul 2021 09:24:51 +0300 Subject: [PATCH 4/5] fixed undefined method settings error --- app/models/bank_transaction.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index ae4fbf51b..3377d06b8 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -106,7 +106,7 @@ class BankTransaction < ApplicationRecord private def reset_pending_registrar_balance_reload - return unless registrar.settings['balance_auto_reload'] + return unless registrar.present? && registrar.settings['balance_auto_reload'] registrar.settings['balance_auto_reload'].delete('pending') registrar.save! From 2224add1656fc7ef3a50098604af20ebfd35696e Mon Sep 17 00:00:00 2001 From: dinsmol Date: Wed, 14 Jul 2021 15:52:40 +0300 Subject: [PATCH 5/5] deleted checking of registrar present --- app/models/bank_transaction.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/bank_transaction.rb b/app/models/bank_transaction.rb index 3377d06b8..ae4fbf51b 100644 --- a/app/models/bank_transaction.rb +++ b/app/models/bank_transaction.rb @@ -106,7 +106,7 @@ class BankTransaction < ApplicationRecord private def reset_pending_registrar_balance_reload - return unless registrar.present? && registrar.settings['balance_auto_reload'] + return unless registrar.settings['balance_auto_reload'] registrar.settings['balance_auto_reload'].delete('pending') registrar.save!