Odoo y los impuestos argentinos - Como saber que impuestos tiene una factura

Conociendo un poco más el módulo l10n_ar

Gustavo Orrillo
- 10/24/2020 - 2 min. de lectura

Esto es algo que debería haber comprendido antes. Como a partir de la versión 13 de Odoo, uno podía hacer para conocer dentro del objeto account.move, que impuestos se aplicaron a la factura (ya que en Argentina es habitual tener dos o más impuestos aplicados a una factura, por ejemplo IVA de Ventas y Percepciones de Ingresos Brutos). 

El caso es que en un principio, creo yo más por apuro que por otro motivo, no conocí bien como funcionaban los módulos l10n_ar y l10n_latam_invoice_document (desarrollados por AdHoc e incluidos en Odoo Community) y es por eso que me vi forzado a desarrollar el módulo account_move_tax.

El caso es, en Odoo 13 o 14; tenemos una factura y queremos conocer cuales son los impuestos aplicados a la misma. Aca entra en juego el campo computado l10n_latam_tax_ids. Este campo es del tipo One2many y apunto al account.move.line de los impuestos aplicados a la factura. Y dentro de cada objeto account.move.line tenemos un campo llamado tax_line_id en el cual se almacena el impuesto que se aplica en la linea.

Ahora a nivel código, por ejemplo, si queremos saber que impuestos se aplicaron en cada una de las facturas (junto con el monto del impuesto):

for tax_line in self.l10n_latam_tax_ids:
    print("Impuesto aplicado %s %s %s"%(tax_line.tax_line_id.name,tax_line.debit,tax_line.credit))

Tengan en cuenta que estamos lidiando con imputaciones contables, es por eso que vemos los montos de debit/credit en lugar de un campo genérico como "amount". Lo cual lleva a otro punto, Odoo es un sistema contable. O sea, para manejarlo hay que saber contabilidad. Si no lo saben... bueno, no conozco a nadie que haya quebrado por tomar un curso de contabilidad.

Otro tema...  como saber con que tipo de impuesto estamos trabajando? (IVA, Percepción, Retención...). Bueno, para eso debemos fijarnos en el campo tax_line_id.tax_group_id. En el grupo del impuesto se encuenta la información que describe al mismo. Hay dos campos primordiales ahí: Código AFIP IVA (l10n_ar_vat_afip_code) y Código AFIP Tributos (l10n_ar_afip_tribute_code). El primero indica la alícuota de IVA y el segundo indica que tipo de impuesto es. Más que eso no creo que se pueda decir, ya que mayor detalle lo puede brindar un contador.

Por último, para la versión 14 de la localización vamos a hacer cambios. Por ejemplo el modelo account.move.tax va a desaparecer  (ahora que comprendí como funciona el campo l10n_latam_tax_ids no es necesario) y por ende van a cambiar como funcionan los módulos de factura electrónica y percepciones. Con los correspondientes módulos de informes tributarios. Así que esten atentos por más noticias.


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.