demarches-normaliennes/app/components/instructeurs/sva_svr_decision_badge_component.rb
2024-11-26 16:35:44 +01:00

84 lines
1.9 KiB
Ruby
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# frozen_string_literal: true
class Instructeurs::SVASVRDecisionBadgeComponent < ApplicationComponent
attr_reader :dossier
attr_reader :procedure
attr_reader :with_label
def initialize(dossier:, procedure:, with_label: false)
@dossier = dossier
@procedure = procedure
@decision = procedure.sva_svr_configuration.decision.to_sym
@with_label = with_label
end
def render?
return false unless procedure.sva_svr_enabled?
[:en_construction, :en_instruction].include? dossier.state.to_sym
end
def without_date?
dossier.sva_svr_decision_on.nil?
end
def classes
class_names(
'fr-badge fr-badge--sm': true,
'fr-badge--warning': soon?,
'fr-badge--info': !without_date? && !soon?
)
end
def soon?
return false if dossier.sva_svr_decision_on.nil?
dossier.sva_svr_decision_on < 7.days.from_now.to_date
end
def pending_correction?
dossier.pending_correction?
end
def days_count
(dossier.sva_svr_decision_on - Date.current).to_i
end
def sva?
@decision == :sva
end
def svr?
@decision == :svr
end
def label_for_badge
"#{human_decision} : "
end
def title
if previously_termine?
t('.previously_termine_title')
elsif depose_before_configuration?
t('.depose_before_configuration_title', decision: human_decision)
elsif without_date?
t('.manual_decision_title', decision: human_decision)
elsif pending_correction?
t(".dossier_terminated_x_days_after_correction", count: days_count)
else
t(".dossier_terminated_on", date: helpers.l(dossier.sva_svr_decision_on))
end
end
def human_decision
procedure.sva_svr_configuration.human_decision
end
def previously_termine?
dossier.previously_termine?
end
def depose_before_configuration?
dossier.sva_svr_decision_on.nil? && dossier.sva_svr_decision_triggered_at.nil?
end
end