Class: Adherent::Payment

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/adherent/payment.rb

Overview

La classe Payment permet d’enregistrer les payments effectués par les adhérents

Un callback after_create tente d’imputer le réglement sur une adhésion qui soit due.

Comme il est possible qu’un adhérent fasse un réglement pour plusieurs personnes (les membres de sa famille par exemple), il est possible d’éclater des payments sur différents réglements. Un payment a donc plusieurs réglements.

Des méthodes non_impute et imputation_on_adh(adhesion) permettent de savoir si la totalité du payment a été affectée à un réglement et d’imputer le montant sur une adhésion spécifiée.

Un validator spécifique est mis en place pour interdire de diminuer le payment en dessous des montants déja imputés.

Instance Method Summary collapse

Instance Method Details

#imputation_on_adh(adh_id) ⇒ Object

Pour faire une imputation sur une adhesion dont l’id est transmise en argument. Utile lorsque le payment est fait par un membre pour payer l’adhésion d’un tiers (par exemple un membre de sa famille). TODO faire que la valeur de retour soit true ou false pour que la méthode créate du controller puisse tester et rediriger en conséquence



46
47
48
# File 'app/models/adherent/payment.rb', line 46

def imputation_on_adh(adh_id)
  Adhesion.find(adh_id).add_reglement(id, non_impute) 
end

#imputeObject



56
57
58
# File 'app/models/adherent/payment.rb', line 56

def impute
  reglements(true).sum(:amount)
end

#non_imputeObject

calcule le montant du paiement qui n’a pas été imputé, donc qui ne correspond pas à des réglements



52
53
54
# File 'app/models/adherent/payment.rb', line 52

def non_impute
  amount - impute
end