From 4ee1ea55d135c38bfa09ef14489d7253c5a89fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pierre-Elliott=20B=C3=A9cue?= Date: Mon, 7 Sep 2015 23:49:45 +0200 Subject: [PATCH] =?UTF-8?q?Bug=20signal=C3=A9=20par=20Hamza=20:=20soucis?= =?UTF-8?q?=20d'encodage=20dans=20le=20commentaire=20de=20modif=20solde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/ldap_crans.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 3dd8de7b..52f401a4 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -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)