Retenciones automáticas en Odoo Community 13 - Retenciones calculadas por código

Gustavo Orrillo
- 03/22/2020 - 2 min. de lectura

Esta es la primer parte de las retenciones a pagos a proveedores. En el post anterior cubrimos las retenciones manuales en pagos a proveedores, En este post vamos a hablar cuando la retención  puede ser calculada mediante una regla o código Python. Esto se puede dar en situaciones en las cuales decimos "el impuesto X es un 3%  del monto a pagarle al proveedor por la factura". Aun no llegamos al calculo de retenciones de ganancias por ejemplo, a ello llegaremos en otro post.

El módulo que permite calcular las retenciones en forma automática es el módulo account_automatic_withholding, el cual fue migrado de la localización argentina de versión 12. Este módulo se instala como cualquier otro. La diferencia es cuando se cargan los impuestos. En los mismos, si el impuesto es un impuesto de pago a proveedores se verá un nuevo campo: Type que indica si la retención será manual, si será por medio de un código Python o por medio de reglas. En este post nos concentraremos en el código Python debido a que me siento más cómodo con ello y creo que cubre las necesidades de todos.


Aca se puede ver como se configura una retención y se indica que la misma se calcula con código Python. Tambien se puede ver otros campos como por ejemplo "Monto base" (importante setearlo), mínimo no imponible y monto no imponible. Pero volvamos al código. Basicamente lo que hice con el código es que el cálculo devuelva un 10% de la base imponible, eso lo hice mediante la formula:

result = withholdable_base_amount * 0.10

 

En este código, basicamente indicamos que el monto de la retención es un 10% del monto susceptible de retención. Hay otras variables, como por ejemplo partner (el partner que se usa en el pago), payment (el recibo que se está procesando) y withholding_tax para el impuesto de la retención. Yo lo que recomiendo es, usar estas variables y por otros módulos crear campos computados con la información que se va a usar en el cálculo del impuesto. No computar el valor de un partner en el cálculo de la retencion, ya que si bien es posible, en un campo computado tenemos más herramientas praa resolver el problema y ademas es más sencillo de depurar.

Seguidamente, damos de alta una factura de proveedor por $1000 y lo validamos


En un paso posterior creamos un pago a proveedor e indicamos que vamos a pagar la factura que acabamos de cargar:


Para luego presionar el botón "Calcular Retenciones", el cual insertará una línea en el pago con la retención calculada


Allí se pueden completar los detalles de la retención para luego validarla y marcar como pagada la factura del proveedor.

Los módulos de retenciones en los pagos son bastante complejos y documentarlos es un "moving target". Nunca la documentación va a estar completa y estamos constantemente actualizando los módulos. Si desean implementarlo nuestro consejo es, estudienlo. Si comprenden bien su funcionamiento y un contador indica que su funcionamiento es correcto, implementenlo en un cliente. Caso contrario, contraten a un consultor especializado en Odoo que seguro los va a poder ayudar.



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.