diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index b2a7c110..2eb76a2f 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -3973,9 +3973,6 @@ class Facture(BaseClasseCrans): # levera une exeption self._crediter() - # ajout des frais à la liste d'articles - self.ajoute(self._frais()) - # modifie la base ldap self._set("recuPaiement", [new]) elif new == False: @@ -4061,30 +4058,11 @@ class Facture(BaseClasseCrans): def _frais(self): """ 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 = [] - - # 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 + return [] def _articles(self, arts = None): """Retourne ou modifie la liste des articles de la base""" @@ -4108,6 +4086,19 @@ class Facture(BaseClasseCrans): 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): """Ajoute un/des article(s) à la facture ajoute est un article ou une liste d'articles @@ -4169,11 +4160,11 @@ class Facture(BaseClasseCrans): 'nombre' : int, 'pu' : int/float } """ - return self._articles() + self._frais() + return self._articles() def total(self): """ - Calcule le total de la facture, frais compris + Calcule le total de la facture. """ s = 0 for art in self.articles():