diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index 292e51c6..45074365 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -3200,7 +3200,7 @@ class Facture(BaseClasseCrans): art = art.split('~~') art = { 'code' : art[0], 'designation' : art[1], - 'nombre' : float(art[2]), + 'nombre' : int(art[2]), 'pu' : float(art[3]) } arts.append(art) @@ -3222,6 +3222,9 @@ class Facture(BaseClasseCrans): ajoute = [ajoute] if type(ajoute)==list: for art in ajoute: + if int(art['nombre']) != float(art['nombre']): + raise ValueError, u'nombre doit être un entier' + art['nombre'] = int(art['nombre']) if '~~' in ' '.join([str(x) for x in art.values()]): raise ValueError, u'Ne pas mettre de ~~ dans les champs' arts.append(art) @@ -3253,13 +3256,10 @@ class Facture(BaseClasseCrans): def articles(self): """ Retourne la liste des articles. - ajoute et supprime sont : - un article ou - une liste d'articles Un article est un dictionnaire de la forme : { 'code' : string, 'designation' : string, - 'nombre' : int/float, + 'nombre' : int, 'pu' : int/float } """ return self._articles() + self._frais() @@ -3282,14 +3282,18 @@ class Facture(BaseClasseCrans): url += "&business=paypal@crans.org" url += "¤cy_code=EUR" url += "&no_shipping=1" - #url += "&address_override=1" url += "&no_note=1" url += "&return=http://factures.crans.org/return" url += "&cancel_return=http://factures.crans.org/cancel" url += "&invoice=12345" # num de facture - url += "&item_name_1=coucou" - url += "&amount_1=12" - url += "&quantity_1=2" + + item_id = 0 + for item in self.articles(): + item_id += 1 + url += "&item_name_%d=%s" % (item_id, item['designation']) + url += "&amount_%d=%s" % (item_id, item['pu']) + url += "&quantity_%d=%s" % (item_id, int(item['nombre'])) + return url def save(self):