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.

Répondre à