Les frais ne sont plus facturés, et on ajoute une fonction de remise (for future work)

This commit is contained in:
Pierre-Elliott Bécue 2015-03-25 14:48:01 +01:00
parent 7046a8cc87
commit b2afd29bb9

View file

@ -3973,9 +3973,6 @@ class Facture(BaseClasseCrans):
# levera une exeption # levera une exeption
self._crediter() self._crediter()
# ajout des frais à la liste d'articles
self.ajoute(self._frais())
# modifie la base ldap # modifie la base ldap
self._set("recuPaiement", [new]) self._set("recuPaiement", [new])
elif new == False: elif new == False:
@ -4061,30 +4058,11 @@ class Facture(BaseClasseCrans):
def _frais(self): def _frais(self):
""" """
Retourne une liste d'articles correspondants aux divers frais Retourne une liste d'articles correspondants aux divers frais
Facturer les frais étant illicite (article L112-12 du code monétaire et financier),
on droppe cette fonctionnalité. La fonction ne reste que pour des raisons de rétro-compatibilité.
""" """
arts = [] return []
# aucun frais pour une facture payée, ils sont intégrés aux articles
if self.recuPaiement():
return []
# frais de paiement par paypal
if self.modePaiement() == 'paypal':
# 25 centimes pour le paiement paypal
s = 0.25
# et on ajoute 3.5% du montant
for art in self._articles():
s += 0.035 * art['nombre'] * art['pu']
# arrondissage-tronquage
s = float(int(s*100)/100.0)
# ajoute à la liste d'articles de frais
arts.append( {'code':'FRAIS', 'designation':'Frais de tansaction PayPal', 'nombre':1, 'pu':round(s, 2)} )
return arts
def _articles(self, arts = None): def _articles(self, arts = None):
"""Retourne ou modifie la liste des articles de la base""" """Retourne ou modifie la liste des articles de la base"""
@ -4108,6 +4086,19 @@ class Facture(BaseClasseCrans):
return arts return arts
def remise(self, amount, reason):
"""Effectue une remise du montant annoncé. Cela crée un article
explicite annonçant qu'il y a une remise. Une remise ne peut
jamais excéder le montant total actuel de la facture."""
amount = min(amount, self.total())
self.ajoute({
'nombre': 1,
'code': 'REMISE',
'designation': 'Remise : %s' % (reason,),
'pu': -amount,
})
def ajoute(self, ajoute): def ajoute(self, ajoute):
"""Ajoute un/des article(s) à la facture """Ajoute un/des article(s) à la facture
ajoute est un article ou une liste d'articles ajoute est un article ou une liste d'articles
@ -4169,11 +4160,11 @@ class Facture(BaseClasseCrans):
'nombre' : int, 'nombre' : int,
'pu' : int/float } 'pu' : int/float }
""" """
return self._articles() + self._frais() return self._articles()
def total(self): def total(self):
""" """
Calcule le total de la facture, frais compris Calcule le total de la facture.
""" """
s = 0 s = 0
for art in self.articles(): for art in self.articles():