Bug signalé par Hamza : soucis d'encodage dans le commentaire de modif solde

This commit is contained in:
Pierre-Elliott Bécue 2015-09-07 23:49:45 +02:00
parent 1c675f251c
commit 4ee1ea55d1

View file

@ -1227,7 +1227,7 @@ class BaseClasseCrans(CransLdap):
# Cas spécial
if "solde" in self.modifs:
diff = float(self._init_data.get('solde', [0])[0]) - float(self._data.get('solde', [0])[0])
diff = round(float(self._init_data.get('solde', [0])[0]) - float(self._data.get('solde', [0])[0]), 2)
if diff > 0:
modif['solde'] = "debit %s Euros" % str(diff)
else:
@ -4042,7 +4042,7 @@ class Facture(BaseClasseCrans):
proprio.solde(operation=art['nombre']*art["pu"],
comment="Facture n°%s : %s" %
(self.numero(),
art['designation'].encode('utf-8', errors='ignore')))
art['designation'].encode(config.ldap_encoding, errors='ignore')))
proprio.save()
if self.modePaiement() == 'solde':
proprio = self.proprietaire()
@ -4089,17 +4089,17 @@ class Facture(BaseClasseCrans):
self._set('article',
['%s~~%s~~%s~~%s' % (
art['code'],
art['designation'].encode('utf-8', errors='replace'),
art['designation'].decode(config.in_encoding, errors='replace'),
str(art['nombre']),
str(art['pu']))
for art in arts])
for art in arts])
# charge la liste des articles
arts = []
for art in self._data.get("article", []):
art = art.split('~~')
art = { 'code' : art[0],
'designation' : art[1].decode('utf-8', errors='replace'),
'designation' : art[1].decode(config.ldap_encoding, errors='replace'),
'nombre' : int(art[2]),
'pu' : float(art[3]) }
arts.append(art)
@ -4133,6 +4133,7 @@ class Facture(BaseClasseCrans):
# ajoute les articles
if type(ajoute)==dict:
ajoute = [ajoute]
if type(ajoute)==list:
for art in ajoute:
if int(art['nombre']) != float(art['nombre']):
@ -4140,7 +4141,7 @@ class Facture(BaseClasseCrans):
if round(art['pu'], 2) != art['pu']:
raise ValueError, u'pu ne doit pas avoir plus de 2 chiffres apres la virgule'
art['nombre'] = int(art['nombre'])
if '~~' in ' '.join([unicode(x) for x in art.values()]):
if '~~' in art['designation'].decode(config.in_encoding):
raise ValueError, u'Ne pas mettre de ~~ dans les champs'
arts.append(art)