Modificando la precisión de los montos, cantidades, etc...
Un pedido recurrente es el de modificar la precisión de las cantidades o los precios. Por default Odoo maneja una precisión de 3 decimales para las cantidades. Y muchos clientes se encuentran en la necesidad de modificar la precisión de las cantidades para que las mismas pasen de 3 decimales a 0 decimales. Lo cual se puede hacer mediante el menu Ajustes > Técnico > Estructura de la base de datos > Precisión decimal. Allí hay que modificar el registro "Product Unit of Measure" a la cantidad que uno necesite.
Ahora, aca se presenta el problema que la precisión del campo cantidad es el mismo tanto para compras como para ventas, y muchas veces por necesidades de negocio necesitamos que la precisión en las compras sea diferente a la precisión de las cantidades en las ventas (debido a que compramos materias primas las cuales vienen en diferentes unidades de medida). Entonces, la solución delineada anteriormente no sirve.
Lo que hay que hacer es; crear un módulo, heredar el modelo en el cual se encuentra el campo al cual uno necesita modificar, y redefinir su precisión. Por ejemplo con esta línea de código:
product_qty = fields.Float(string='Quantity', digits='Product Unit of Measure', required=True)
https://github.com/ctmil/purchase_qty_precision
La idea de publicar este módulo es demostrar este concepto con la comunidad, ya que es una situación en la que nos encontramos frecuentemente. Por ejemplo, vendemos en pesos argentinos y compramos en dolares. Por ende, los precios de compra deben contener decimales y los precios de venta no.
Acerca de:
Gustavo Orrillo
Passionate about programming, he has implemented Odoo for different types of businesses since 2010. In Moldeo Interactive he is a founding Partner and Programmer; In addition to writing on the Blog about different topics related to the developments he makes.