From 1b377dadcd2b9b54e592235fbb04209276efec04 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Wed, 11 Jan 2023 16:28:06 +0200 Subject: [PATCH] added more conditions for unpaid and cancelled statuses --- app/controllers/eis_billing/invoices_controller.rb | 7 +++++-- app/models/concerns/invoice/cancellable.rb | 2 ++ test/integration/eis_billing/invoices_test.rb | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/controllers/eis_billing/invoices_controller.rb b/app/controllers/eis_billing/invoices_controller.rb index 58d1d72e0..859ed6018 100644 --- a/app/controllers/eis_billing/invoices_controller.rb +++ b/app/controllers/eis_billing/invoices_controller.rb @@ -26,12 +26,15 @@ module EisBilling def payment_orders_handler if @invoice.payment_orders.present? - return if (@invoice.paid? && status.paid?) || (@invoice.cancelled? && status.cancelled?) + return if (@invoice.paid? && status.paid?) || (@invoice.unpaid? && status.issued?) - if status.cancelled? || status.failed? + if status.issued? @invoice.cancel_manualy elsif status.paid? @invoice.autobind_manually + else + # TODO + # CANCELLED end else return unless status.paid? diff --git a/app/models/concerns/invoice/cancellable.rb b/app/models/concerns/invoice/cancellable.rb index 29c09f47c..139f1e334 100644 --- a/app/models/concerns/invoice/cancellable.rb +++ b/app/models/concerns/invoice/cancellable.rb @@ -33,6 +33,8 @@ module Invoice::Cancellable end def cancel_manualy + return unless cancellable? + account_activity = AccountActivity.find_by(invoice_id: id) account_activity_dup = account_activity.dup account_activity_dup.sum = -account_activity.sum.to_i diff --git a/test/integration/eis_billing/invoices_test.rb b/test/integration/eis_billing/invoices_test.rb index 592af6d02..734b93b45 100644 --- a/test/integration/eis_billing/invoices_test.rb +++ b/test/integration/eis_billing/invoices_test.rb @@ -303,4 +303,6 @@ class EInvoiceResponseTest < ApplicationIntegrationTest assert_equal registry_response[:message], 'Invoice with nonexisted-invoice number not found' end + + test 'it should ignore if you trying to set failed status to canceled' end