precisión decimal

290 views
Skip to first unread message

Victor Martin

unread,
Jan 29, 2016, 10:40:36 AM1/29/16
to Usuarios Odoo / OpenERP en España
Tengo una clase que hereda de product.template y añade un nuevo campo.  Quiero que este nuevo campo tenga 3 decimales, y lo defino de manera que vaya a buscar los decimales correspondientes a Stock Weight (ver imagen adjunta).  El código correspondiente es el siguiente:


...

import openerp.addons.decimal_precision as dp

...


special_weight = fields.Float(string='Special Weight',
digits_compute=dp.get_precision('Stock Weight'))

En la vista correspondiente defino el campo:

...
<field name="special_weight"
required="False"/>
...

Sin embargo me muestra el campo con 2 decimales.  ¿Alguna idea?

Gracias y un saludo,
Víctor Martín
stock_weight.PNG

Yasser Osuna

unread,
Jan 29, 2016, 3:11:37 PM1/29/16
to openerp-s...@googlegroups.com
special_weight = fields.Float(string='Special Weight',
                               digits_compute=dp.get_precision('Stock Weight',3))

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Victor Martin

unread,
Feb 1, 2016, 4:38:38 AM2/1/16
to Usuarios Odoo / OpenERP en España
Hola Yasser, 

Lo probé pero eso genera el siguiente error:

    digits_compute=dp.get_precision('Stock Weight',3),
TypeError: get_precision() takes exactly 1 argument (2 given)


Saludos
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.

juan salcedo

unread,
Feb 1, 2016, 4:45:02 PM2/1/16
to Usuarios Odoo / OpenERP en España
Cuando uno usa 'get_precision' siempre realiza el redondeo definido en la moneda que estés usando, asumo que la moneda que usas tiene un factor de redondeo '0.010000' y es por eso que redondea a 2 decimales, al cambiar los decimales en la estructura de la base de datos solo estas diciendo: reserva 3 espacios en la base de datos para la parte decimal, mas no es responsable del redondeo. Conclusión: ve a la moneda que estés usando y al 'factor de redondeo' para poder redondear a 3 decimales usas '0.001000', espero te haya podido ayudar, saludos.

Victor Martin

unread,
Feb 2, 2016, 8:25:00 AM2/2/16
to Usuarios Odoo / OpenERP en España
Gracias Juan, pero en mi caso se trata de get_precision('Stock Weight').  No se trata de un importe sino de un peso, así que no debería depender de ninguna moneda.  No obstante lo que comentas me ha hecho pensar que pudiera depender también de las unidades de medida, pero parece que tampoco porque tengo puesto 3 decimales en los kg.

También he probado con get_precision('Product UoS') y con get_precision('Product Unit Of Measure') con el mismo resultado :(
Message has been deleted

Victor Martin

unread,
Feb 4, 2016, 3:20:10 AM2/4/16
to Usuarios Odoo / OpenERP en España
Solución:  en V8 no es digits_compute, sino digits

Saludos,
Víctor Martín
Reply all
Reply to author
Forward
0 new messages