factures: designation est un unicode (si possible)

This commit is contained in:
Daniel STAN 2015-05-23 12:38:08 +02:00
parent d23bda8bd2
commit 8b3832355e
4 changed files with 40 additions and 18 deletions

View file

@ -4080,8 +4080,11 @@ class Facture(BaseClasseCrans):
# modifie la liste des articles
if arts != None:
self._set('article',
['%s~~%s~~%s~~%s' % (art['code'], art['designation'],
str(art['nombre']), str(art['pu']))
['%s~~%s~~%s~~%s' % (
art['code'],
art['designation'].encode('utf-8', errors='replace'),
str(art['nombre']),
str(art['pu']))
for art in arts])
# charge la liste des articles
@ -4089,7 +4092,7 @@ class Facture(BaseClasseCrans):
for art in self._data.get("article", []):
art = art.split('~~')
art = { 'code' : art[0],
'designation' : art[1],
'designation' : art[1].decode('utf-8', errors='replace'),
'nombre' : int(art[2]),
'pu' : float(art[3]) }
arts.append(art)
@ -4105,7 +4108,7 @@ class Facture(BaseClasseCrans):
self.ajoute({
'nombre': 1,
'code': 'REMISE',
'designation': 'Remise : %s' % (reason,),
'designation': u'Remise : %s' % (reason,),
'pu': -amount,
})
@ -4130,7 +4133,7 @@ class Facture(BaseClasseCrans):
if float(int(art['pu']*100)/100.0) != 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([str(x) for x in art.values()]):
if '~~' in ' '.join([unicode(x) for x in art.values()]):
raise ValueError, u'Ne pas mettre de ~~ dans les champs'
arts.append(art)
@ -4166,7 +4169,7 @@ class Facture(BaseClasseCrans):
Retourne la liste des articles.
Un article est un dictionnaire de la forme :
{ 'code' : string,
'designation' : string,
'designation' : unicode,
'nombre' : int,
'pu' : int/float }
"""
@ -4204,7 +4207,7 @@ class Facture(BaseClasseCrans):
item_id = 0
for item in self.articles():
item_id += 1
url += "&item_name_%d=%s" % (item_id, item['designation'])
url += "&item_name_%d=%s" % (item_id, item['designation'].encode('ascii', errors='replace'))
url += "&amount_%d=%s" % (item_id, item['pu'])
url += "&quantity_%d=%s" % (item_id, int(item['nombre']))