Creación de Campos con Decimales Dinamicos
Un aspecto fundamental en la parte administrativa es la contable donde la presición decimal debe ser muy controlada, tanto en la generación de reportes como en la creación de algunos formularios.
Dentro de las muchas bondades que siempre describo en mis articulos, Odoo cuenta con una presición dinamica, esta precisón puede ser moderada por el usuario final (cliente), esto le ayudara a aumentar o disminuir el numero de decimales en Odoo de acuerdo a sus necesidades y sin tener que programar o editar el codigo fuente.
La precisión decimal la encontramos en el Menu Configuración --> Tenico --> Estructura de la Base de Datos --> Presición Decimal.
El primer paso es crear tu precisión Decimal mediante una vista XML.
<?xml version="1.0" encoding="UTF-8"?> <odoo> <data> <!-- Mi presicion decimal--> <record model="decimal.precision" id="precision_discounts"> <field name="name">Discount</field> <field name="digits">6</field> </record> </data> </odoo>
Al instalar nuestro modulo o actualizarlo, nos creara el registro correspondiente al XML:
El valor digits es el numero de decimales que tendra el campo que lo utilice como su presición decimal.
# -*- coding: utf-8 -*- from openerp.exceptions import UserError from openerp import api, fields, models, _, tools import openerp.addons.decimal_precision as dp class Accountinvoice(models.Model): _inherit = 'account.invoice' _name = 'account.invoice' invoice_discount_amount = fields.Float(digits=dp.get_precision('Discount'), string='Descuento Total en Monto')
En el ejemplo anterior herede facturas y cree mi campo llamado Descuento Total con 6 Decimales en su parte flotante, el campo se visualiza de la siguiente manera en el Sistema:
Si modificamos la presición decimal a 4.
Veriamos el campo actualizado y los registros anteriores redondeados al nuevo numero de decimales.
Una presición puede ser reutilzada muchas veces no es necesario crear una por cada campo a menos que el proceso lo requiera.
Espero que les ayude esta información y no se olviden dejar sus comentarios.