Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
erp:odoo12:arrondi [2020/09/27 07:29] marclebrun créée |
erp:odoo12:arrondi [2020/09/27 14:05] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Arrondir des valeurs numériques ====== | + | ====== Arrondir des valeurs ====== |
+ | |||
+ | La méthode **round()** est une méthode du modèle **res_currency**. | ||
+ | |||
+ | ^ Source | /addons/base/models/res_currency.py | | ||
+ | ^ Classe | Currency(models.Model) | | ||
+ | ^ Modèle | res.currency | | ||
+ | ^ Méthode | round(self, amount) | | ||
===== Selon la devise ===== | ===== Selon la devise ===== | ||
- | Dans un modèle, pour arrondir un prix selon les règles d'arrondi | + | Dans un modèle, pour arrondir des valeurs selon les règles d'arrondi |
de la devise de la société : | de la devise de la société : | ||
<code python> | <code python> | ||
+ | nombres = [0.236, 1.528, 3.935, 10.999] | ||
+ | |||
arrondi = self.env.user.company_id.currency_id.round | arrondi = self.env.user.company_id.currency_id.round | ||
- | nombres = [0.236, 1.528, 3.935, 10.999] | ||
for n in nombres: | for n in nombres: | ||
print("Arrondi de %7.4f = %7.4f" % (n, arrondi(n))) | print("Arrondi de %7.4f = %7.4f" % (n, arrondi(n))) | ||
</code> | </code> | ||
+ | |||
+ | Résultat : | ||
+ | |||
+ | <code> | ||
+ | Arrondi de 0.2360 = 0.2400 | ||
+ | Arrondi de 1.5280 = 1.5300 | ||
+ | Arrondi de 3.9350 = 3.9400 | ||
+ | Arrondi de 10.9990 = 11.0000 | ||
+ | </code> | ||
+ | |||
+ | L'arrondi peut s'obtenir depuis n'importe quel ''recordset'' contenant un lien | ||
+ | avec la société, comme par exemple dans une facture : | ||
+ | |||
+ | <code python> | ||
+ | arrondi = invoice.company_id.currency_id.round | ||
+ | </code> | ||
+ | |||