generated from betagouv/rails-template
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
27 changed files
with
320 additions
and
55 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# frozen_string_literal: true | ||
|
||
module PaymentDecorator | ||
BADGE_STATE_MAPPING = { | ||
ready: :success, | ||
blocked: :error, | ||
pending: :info | ||
}.freeze | ||
|
||
def summary | ||
dsfr_badge(status: BADGE_STATE_MAPPING[current_state.to_sym]) do | ||
status | ||
end | ||
end | ||
|
||
def status | ||
t("payments.state.#{current_state}") | ||
end | ||
|
||
def description | ||
t("payments.description.#{current_state}") | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# frozen_string_literal: true | ||
|
||
class PreparePaymentsJob < ApplicationJob | ||
queue_as :default | ||
|
||
def perform | ||
Payment | ||
.includes(:student) | ||
.in_state(:pending) | ||
.find_each do |payment| | ||
payment.mark_ready! | ||
rescue Statesman::GuardFailedError | ||
payment.block! | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# frozen_string_literal: true | ||
|
||
module ASP | ||
class StudentChecker | ||
attr_reader :student | ||
|
||
DATA_REQUIREMENTS = %i[rib birthplace_information address_information biological_sex].freeze | ||
|
||
def initialize(student) | ||
@student = student | ||
end | ||
|
||
def ready? | ||
DATA_REQUIREMENTS.all? { |requirement| can_provide?(requirement) } | ||
end | ||
|
||
private | ||
|
||
def attributes_present?(attributes) | ||
attributes.all? { |attr| student.send(attr).present? } | ||
end | ||
|
||
def can_provide?(requirement) | ||
case requirement | ||
when :rib | ||
student.rib.present? | ||
when :birthplace_information | ||
attributes_present? %i[birthplace_city_insee_code birthplace_country_insee_code] | ||
when :address_information | ||
attributes_present? %i[address_postal_code address_city_insee_code address_country_code] | ||
when :biological_sex | ||
student.male? || student.female? | ||
else | ||
raise ArgumentError, "don't know how to check for #{requirement}" | ||
end | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# language: fr | ||
|
||
Fonctionnalité: Gestion des paiements | ||
Contexte: | ||
Sachant que je suis un personnel MENJ directeur de l'établissement "DINUM" | ||
Et que mon établissement propose une formation "Art" rémunérée à 10 euros par jour et plafonnée à 100 euros par an | ||
Et que l'API SYGNE renvoie 10 élèves dans la classe de "A1" formation "Art" dont "Marie Curie", INE "MC" pour l'établissement "DINUM" | ||
Et que je me connecte en tant que personnel MENJ | ||
Et que toutes les tâches de fond sont terminées | ||
Et que je passe l'écran d'accueil | ||
Et que je consulte la liste des classes | ||
Et que je consulte le profil de "Marie Curie" dans la classe de "A1" | ||
|
||
Scénario: Le personnel de direction peut voir un paiement planifié | ||
Sachant que je renseigne et valide une PFMP de 3 jours | ||
Quand je consulte le profil de "Marie Curie" dans la classe de "A1" | ||
Et que je consulte la dernière PFMP | ||
Alors je peux voir un paiement "Planifié" de 30 euros | ||
|
||
Scénario: Le personnel de direction peut voir un paiement bloqué | ||
Sachant que je renseigne et valide une PFMP de 3 jours | ||
Et que la tâche de préparation des paiements démarre | ||
Et que toutes les tâches de fond sont terminées | ||
Quand je consulte le profil de "Marie Curie" dans la classe de "A1" | ||
Et que je consulte la dernière PFMP | ||
Alors je peux voir un paiement "Bloqué" de 30 euros | ||
Et la page contient "Il manque des informations pour envoyer le paiement" | ||
|
||
Scénario: Le personnel de direction peut voir un paiment prêt pour l'ASP | ||
Sachant que l'API SYGNE peut fournir les informations complètes des étudiants | ||
Et que les informations personnelles ont été récupérées pour l'élève avec l'INE "MC" | ||
Et que je renseigne et valide une PFMP de 3 jours | ||
Et que l'élève "Marie Curie" a déjà des coordonnées bancaires | ||
Et que la tâche de préparation des paiements démarre | ||
Et que toutes les tâches de fond sont terminées | ||
Quand je consulte le profil de "Marie Curie" dans la classe de "A1" | ||
Et que je consulte la dernière PFMP | ||
Alors je peux voir un paiement "Prêt" de 30 euros | ||
Et la page contient "Ce paiement est prêt à l'envoi" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# frozen_string_literal: true | ||
|
||
World(ActionView::Helpers::NumberHelper) | ||
|
||
Quand("la tâche de préparation des paiements démarre") do | ||
PreparePaymentsJob.perform_later | ||
end | ||
|
||
Alors("je peux voir un paiement {string} de {int} euros") do |state, amount| | ||
steps %( | ||
Alors la page contient "#{state}" | ||
Et la page contient "#{number_to_currency(amount)}" | ||
) | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.