From 9d64a7f595d602b2292640b162e65bbc39cc6d07 Mon Sep 17 00:00:00 2001 From: pskl Date: Wed, 21 Aug 2024 12:03:32 +0200 Subject: [PATCH] Minor fixes (#1076) --- app/controllers/schoolings_controller.rb | 2 +- app/jobs/poll_payments_server_job.rb | 3 +++ app/models/pfmp_state_machine.rb | 1 + app/models/rib.rb | 4 ++-- spec/models/rib_spec.rb | 1 + 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/schoolings_controller.rb b/app/controllers/schoolings_controller.rb index 39ab9e46a..01cbf1479 100644 --- a/app/controllers/schoolings_controller.rb +++ b/app/controllers/schoolings_controller.rb @@ -37,7 +37,7 @@ def set_classe def retry_eligibile_payment_requests! @schooling.pfmps.in_state(:validated).each do |pfmp| payment_request = pfmp.latest_payment_request - payment_request.mark_ready! if payment_request.eligible_for_auto_retry? + payment_request.mark_ready! if payment_request&.eligible_for_auto_retry? end end end diff --git a/app/jobs/poll_payments_server_job.rb b/app/jobs/poll_payments_server_job.rb index 0cf2333e8..01aab16c2 100644 --- a/app/jobs/poll_payments_server_job.rb +++ b/app/jobs/poll_payments_server_job.rb @@ -18,6 +18,9 @@ def perform ProcessASPResponseFileJob.perform_later(filename) ASP::Server.remove_file!(filename: filename) + rescue ASP::Errors::UnmatchedResponseFile => e + Sentry.capture_exception(e) + next end end end diff --git a/app/models/pfmp_state_machine.rb b/app/models/pfmp_state_machine.rb index b97cc4900..d5d6c0441 100644 --- a/app/models/pfmp_state_machine.rb +++ b/app/models/pfmp_state_machine.rb @@ -12,6 +12,7 @@ class PfmpStateMachine transition from: :completed, to: :validated transition from: :completed, to: :pending transition from: :validated, to: :rectified + transition from: :rectified, to: :rectified guard_transition(to: :completed) do |pfmp| pfmp.day_count.present? diff --git a/app/models/rib.rb b/app/models/rib.rb index 00c8546d6..62e416ad1 100644 --- a/app/models/rib.rb +++ b/app/models/rib.rb @@ -5,7 +5,7 @@ class Rib < ApplicationRecord enum :owner_type, { personal: 0, other_person: 1, moral_person: 2 } - has_one :payment_request, class_name: "ASP::PaymentRequest", dependent: :nullify + has_many :payment_requests, class_name: "ASP::PaymentRequest", dependent: :nullify validates :iban, :bic, :name, presence: true @@ -45,7 +45,7 @@ def archive! end def archivable? - payment_request.nil? || payment_request.terminated? + payment_requests.empty? || payment_requests.all?(&:terminated?) end def readonly? diff --git a/spec/models/rib_spec.rb b/spec/models/rib_spec.rb index 89bc75478..b291dfc92 100644 --- a/spec/models/rib_spec.rb +++ b/spec/models/rib_spec.rb @@ -7,6 +7,7 @@ describe "associations" do it { is_expected.to belong_to(:student) } + it { is_expected.to have_many(:payment_requests) } end describe "validations" do