Prévient la suppression d'adhérent ou de factures dans certaines conditions

This commit is contained in:
Pierre-Elliott Bécue 2015-08-30 14:43:29 +02:00
parent 00d67f1fc3
commit b949b42364
2 changed files with 15 additions and 3 deletions

View file

@ -15,6 +15,12 @@ delai_readh = delai_readh_jour * 86400
duree_adh_an = 1 duree_adh_an = 1
# Un compte avec une adhésion valide ne peut être détruit que lorsque celle-ci
# est expirée depuis plus que le délai indiqué ici. (secondes)
# Ici, on choisit 90 jours.
del_post_adh_jours = 90
del_post_adh = del_post_adh_jours * 86400
# Cotisation pour adhérer à l'association. Les services autres que l'accès à # Cotisation pour adhérer à l'association. Les services autres que l'accès à
# Internet sont offerts une et une fois pour toute aux personnes qui adhèrent, # Internet sont offerts une et une fois pour toute aux personnes qui adhèrent,
# et ce dès leur première fois. (comprendre : le compte Crans et cie ne sont pas # et ce dès leur première fois. (comprendre : le compte Crans et cie ne sont pas

View file

@ -1948,6 +1948,9 @@ class BaseProprietaire(BaseClasseCrans):
def delete(self, comment=''): def delete(self, comment=''):
"""Destruction du propriétaire""" """Destruction du propriétaire"""
if max(self.connexion(), self.adhesion()) + cotisation.del_post_adh >= time.time():
raise EnvironmentError("Vous ne pouvez supprimer un adhérent que %s jours après l'expiration de son adhésion et de sa connexion" % (cotisation.del_post_adh_jours,))
for m in self.machines(): for m in self.machines():
# Destruction machines # Destruction machines
m.delete(comment) m.delete(comment)
@ -4161,9 +4164,9 @@ class Facture(BaseClasseCrans):
_ = arts.pop() _ = arts.pop()
# on supprime les anciens articles # on supprime les anciens articles
if type(supprime)==dict: if type(supprime) == dict:
supprime = [supprime] supprime = [supprime]
if type(supprime)==list: if type(supprime) == list:
for art in supprime: for art in supprime:
arts.remove(art) arts.remove(art)
@ -4233,8 +4236,11 @@ class Facture(BaseClasseCrans):
def delete(self, comment=''): def delete(self, comment=''):
"""Suppression de la facture""" """Suppression de la facture"""
if self.controle(): if self.controle():
raise EnvironmentError(u"La facture a déjà été controlée, contacter trésorerie") if max(self.proprietaire().connexion(), self.proprietaire().adhesion()) + cotisation.del_post_adh >= time.time():
raise EnvironmentError(u"La facture a déjà été controlée, contacter trésorerie")
self.__proprietaire = None self.__proprietaire = None
self._delete(self.dn, comment) self._delete(self.dn, comment)