use traitement model
when a dossier is terminated (accepte, refuse or classe_sans_suite), we store now `processed_at` and `motivation` in a traitement instance
This commit is contained in:
parent
f631acd118
commit
a072d35211
14 changed files with 107 additions and 29 deletions
|
@ -127,11 +127,15 @@ FactoryBot.define do
|
|||
end
|
||||
|
||||
trait :accepte do
|
||||
after(:create) do |dossier, _evaluator|
|
||||
transient do
|
||||
motivation { nil }
|
||||
end
|
||||
|
||||
after(:create) do |dossier, evaluator|
|
||||
dossier.state = Dossier.states.fetch(:accepte)
|
||||
dossier.en_construction_at ||= dossier.created_at + 1.minute
|
||||
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
|
||||
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
|
||||
dossier.traitements.build(state: Dossier.states.fetch(:accepte), processed_at: dossier.en_instruction_at + 1.minute, motivation: evaluator.motivation)
|
||||
dossier.save!
|
||||
end
|
||||
end
|
||||
|
@ -141,7 +145,7 @@ FactoryBot.define do
|
|||
dossier.state = Dossier.states.fetch(:refuse)
|
||||
dossier.en_construction_at ||= dossier.created_at + 1.minute
|
||||
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
|
||||
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
|
||||
dossier.traitements.build(state: Dossier.states.fetch(:refuse), processed_at: dossier.en_instruction_at + 1.minute)
|
||||
dossier.save!
|
||||
end
|
||||
end
|
||||
|
@ -151,14 +155,14 @@ FactoryBot.define do
|
|||
dossier.state = Dossier.states.fetch(:sans_suite)
|
||||
dossier.en_construction_at ||= dossier.created_at + 1.minute
|
||||
dossier.en_instruction_at ||= dossier.en_construction_at + 1.minute
|
||||
dossier.processed_at ||= dossier.en_instruction_at + 1.minute
|
||||
dossier.traitements.build(state: Dossier.states.fetch(:sans_suite), processed_at: dossier.en_instruction_at + 1.minute)
|
||||
dossier.save!
|
||||
end
|
||||
end
|
||||
|
||||
trait :with_motivation do
|
||||
after(:create) do |dossier, _evaluator|
|
||||
dossier.motivation = case dossier.state
|
||||
motivation = case dossier.state
|
||||
when Dossier.states.fetch(:refuse)
|
||||
'L’entreprise concernée n’est pas agréée.'
|
||||
when Dossier.states.fetch(:sans_suite)
|
||||
|
@ -166,6 +170,7 @@ FactoryBot.define do
|
|||
else
|
||||
'Vous avez validé les conditions.'
|
||||
end
|
||||
dossier.traitements.last.update!(motivation: motivation)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue