Les frais ne sont plus facturés, et on ajoute une fonction de remise (for future work)
This commit is contained in:
parent
7046a8cc87
commit
b2afd29bb9
1 changed files with 18 additions and 27 deletions
|
@ -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,31 +4058,12 @@ 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 = []
|
|
||||||
|
|
||||||
# aucun frais pour une facture payée, ils sont intégrés aux articles
|
|
||||||
if self.recuPaiement():
|
|
||||||
return []
|
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():
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue