diff --git a/app/controllers/admin/invoices_controller.rb b/app/controllers/admin/invoices_controller.rb index 43a1b1ee1..cf17d78a1 100644 --- a/app/controllers/admin/invoices_controller.rb +++ b/app/controllers/admin/invoices_controller.rb @@ -26,7 +26,7 @@ module Admin account_activity = AccountActivity.find_by(invoice_id: invoice_id) account_activity_dup = account_activity.dup - account_activity_dup.sum = -account_activity.sum + account_activity_dup.sum = -account_activity.sum.to_i if account_activity_dup.save and invoice.update(cancelled_at: Time.zone.today) flash[:notice] = t(:payment_was_cancelled) diff --git a/config/routes.rb b/config/routes.rb index 9a8f50b41..a6a9f5ab3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -232,7 +232,6 @@ Rails.application.routes.draw do resources :invoices, except: %i[edit update destroy] do collection do - # get ':id/cancel_paid', to: 'invoices#cancel_paid', as: 'get_cancel_paid' post ':id/cancel_paid', to: 'invoices#cancel_paid', as: 'cancel_paid' end resource :delivery, controller: 'invoices/delivery', only: %i[new create] diff --git a/test/integration/admin_area/invoices_test.rb b/test/integration/admin_area/invoices_test.rb index 2aa17201d..01c1a29d7 100644 --- a/test/integration/admin_area/invoices_test.rb +++ b/test/integration/admin_area/invoices_test.rb @@ -4,6 +4,23 @@ class AdminAreaInvoicesIntegrationTest < ApplicationIntegrationTest setup do @invoice = invoices(:one) sign_in users(:admin) + + @account = accounts(:cash) + @registrar = registrars(:bestnames) + end + + def test_cancel_paid_invoice + @invoice.account_activity.update(sum: 10) + assert @invoice.paid? + + assert_equal @registrar.balance, 100 + + assert_no_difference 'Invoice.count' do + assert_difference 'AccountActivity.count' do + post cancel_paid_admin_invoices_path(id: @invoice.id) + "?invoice_id=#{@invoice.id}" + end + end + assert_equal @registrar.balance, 90 end def test_create_new_invoice