Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Billing, allow in-advance membership invoice cancellation
This patch allows an in-advance membership invoice made the previous fiscal year to be cancelled. This is need when a membership price is changed and its past invoices need to be cancelled to have a new one generated with the new price. https://appsignal.com/csa-admin/sites/672e0b61d2a5e4b5197f10e4/exceptions/incidents/378/samples/timestamp/2025-01-03T04:00:43Z ``` app/models/concerns/has_state.rb:24 app/models/invoice.rb:228 app/models/membership.rb:522 app/models/billing/invoicer.rb:70 app/models/billing/invoicer.rb:11 app/jobs/billing/member_invoicer_job.rb:14 activejob (8.0.1) lib/active_job/execution.rb:68 activesupport (8.0.1) lib/active_support/callbacks.rb:120 activesupport (8.0.1) lib/active_support/core_ext/object/with.rb:33 activesupport (8.0.1) lib/active_support/current_attributes.rb:214 activesupport (8.0.1) lib/active_support/current_attributes.rb:154 app/jobs/concerns/tenant_context.rb:23 lib/tenant.rb:59 activerecord (8.0.1) lib/active_record/connection_handling.rb:214 lib/tenant.rb:58 activerecord (8.0.1) lib/active_record/connection_handling.rb:398 activerecord (8.0.1) lib/active_record/connection_handling.rb:149 lib/tenant.rb:57 app/jobs/concerns/tenant_context.rb:22 app/jobs/concerns/tenant_context.rb:8 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:129 i18n (1.14.6) lib/i18n.rb:353 activejob (8.0.1) lib/active_job/translation.rb:9 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/core_ext/time/zones.rb:65 activejob (8.0.1) lib/active_job/timezones.rb:9 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:140 activejob (8.0.1) lib/active_job/execution.rb:67 activejob (8.0.1) lib/active_job/instrumentation.rb:32 activejob (8.0.1) lib/active_job/execution.rb:51 activejob (8.0.1) lib/active_job/instrumentation.rb:26 activerecord (8.0.1) lib/active_record/railties/job_runtime.rb:13 activejob (8.0.1) lib/active_job/instrumentation.rb:40 appsignal (4.3.2) lib/appsignal/hooks/active_support_notifications.rb:19 activesupport (8.0.1) lib/active_support/notifications/instrumenter.rb:58 appsignal (4.3.2) lib/appsignal/hooks/active_support_notifications.rb:18 activejob (8.0.1) lib/active_job/instrumentation.rb:39 activerecord (8.0.1) lib/active_record/railties/job_runtime.rb:11 activejob (8.0.1) lib/active_job/instrumentation.rb:26 activejob (8.0.1) lib/active_job/logging.rb:32 activesupport (8.0.1) lib/active_support/tagged_logging.rb:143 activesupport (8.0.1) lib/active_support/tagged_logging.rb:38 activesupport (8.0.1) lib/active_support/tagged_logging.rb:143 activejob (8.0.1) lib/active_job/logging.rb:39 activejob (8.0.1) lib/active_job/logging.rb:32 activejob (8.0.1) lib/active_job/execution.rb:29 activesupport (8.0.1) lib/active_support/callbacks.rb:120 activejob (8.0.1) lib/active_job/railtie.rb:95 activesupport (8.0.1) lib/active_support/reloader.rb:77 activesupport (8.0.1) lib/active_support/execution_wrapper.rb:87 activesupport (8.0.1) lib/active_support/reloader.rb:74 activejob (8.0.1) lib/active_job/railtie.rb:94 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:129 activesupport (8.0.1) lib/active_support/callbacks.rb:140 activejob (8.0.1) lib/active_job/execution.rb:27 appsignal (4.3.2) lib/appsignal/hooks/active_job.rb:69 solid_queue (1.1.2) app/models/solid_queue/claimed_execution.rb:95 solid_queue (1.1.2) app/models/solid_queue/claimed_execution.rb:61 solid_queue (1.1.2) lib/solid_queue/pool.rb:23 activesupport (8.0.1) lib/active_support/execution_wrapper.rb:91 solid_queue (1.1.2) lib/solid_queue/app_executor.rb:7 solid_queue (1.1.2) lib/solid_queue/pool.rb:22 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:48 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:22 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/ivar.rb:170 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/future.rb:55 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:359 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:350 <internal:kernel>:168 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:341 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340 concurrent-ruby (1.3.4) lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:340 ```
- Loading branch information