Bonjour à tous, je reviens à la charge sur le sujet, avec : *1. Une solution :* je suis parvenu à choisir l'unité en fonction du type Part (p, donc %) ou Unité (u donc aucune unité affichée) :
<if test="line.unit.symbol == 'p'"> <(format_number(line.quantity*100, invoice.party.lang, digits=line.unit_digits) + (line.unit and (' ' + '%') or '')) or ''> </if> <if test="line.unit.symbol == 'u'"> <(format_number(line.quantity, invoice.party.lang, digits=line.unit_digits) + (line.unit and (' ') or '')) or ''> </if> Le '*100' du premier cas permet d'afficher des pourcentages. *2. Une question : * dans le 1er cas (<if test="line.unit.symbol == 'p'">), j'ai encore 4 chiffres float après la virgule, là où je souhaiterais n'en avoir que 2. J'ai tenté diverses formules pythonesques, mais impossible d'y parvenir. avez-vous la solution à ce petit souci de formatage ? D'avance merci ! JMarc Le 29 avril 2016 à 10:05, JMarc Legrand <jeanmarclegrand1...@gmail.com> a écrit : > > > Le vendredi 22 avril 2016 18:25:03 UTC+2, Cédric Krier a écrit : >> >> On 2016-04-20 02:00, JMarc Legrand wrote: >> > Rebonjour ! >> > >> > Dans le même travail sur les templates de facture, je me casse les >> dents >> > sur le formatage des quantités. >> > >> > La compagnie utilise les unités suivantes : Part ou Unité. >> > >> > Dans le cas d'Unité, j'ai un affichage du type : 2 u => et je voudrais >> > supprimer le u >> > Dans le cas de Part, j'ai un affichage du type : 0.2500 p => et je >> voudrais >> > avoir 25 % (sans p) >> > >> > La case quantité est codée ainsi : >> > >> > <(format_number(line.quantity, invoice.party.lang, >> digits=line.unit_digits) >> > + (line.unit and (' ' + line.unit.symbol) or '')) or ''> >> > >> > J'ai tenté un : >> > >> > >> > <if test="line.unit.symbol == 'p'"> >> > <(format_number(line.quantity, invoice.party.lang, >> > digits=line.unit_digits)*100 + (line.unit and (' %') or '')) or ''> >> >> format_number retourne une string donc ça n'a pas de sens de multiplier. >> >> C'est bien ce que je pressentais... > >> > </if> >> > <else> >> >> Genshi ne supporte pas ce format de clause. Il faut utiliser >> when/choose/otherwise ou bien des if successif. >> >> Arf, le template est plein de when, choose et otherwise, j'aurais dû m'en > douter. Je vais relire la doc Genshi. Je me suis cru dans un Jinja, je > pense... > > >> > <(format_number(line.quantity, invoice.party.lang, >> > digits=line.unit_digits) + (line.unit and ('') or '')) or ''> >> > </else> >> > >> > >> > Mais je reçois un message d'erreur que je ne parviens pas à décrypter. >> >> Ce serait bien de les poster s'il faut plus d'aide. >> >> OK je retravaille là-dessus et je reviens vers la liste si besoin. > Merci pour votre aide ! > JMarc > > -- > Vous recevez ce message, car vous êtes abonné à un sujet dans le groupe > Google Groupes "tryton-fr". > Cette discussion peut être lue sur le Web à l'adresse > https://groups.google.com/d/msgid/tryton-fr/d49a430c-78b8-43c1-adfc-9015dade5185%40googlegroups.com > <https://groups.google.com/d/msgid/tryton-fr/d49a430c-78b8-43c1-adfc-9015dade5185%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes tryton-fr. Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/tryton-fr/CAHLbO_QGaU%3D4DCWapYGssfGWc1yRcKAM%3DVVnDxV8wwom8QsLoA%40mail.gmail.com.