Gestión de asientos recurrentes en Odoo

Agiliza aquellos movimientos periódicos generando tus propias plantillas

En las empresas en general, a menudo nos vemos obligados a llevar a cabo ciertas gestiones repetitivas, que acostumbran a requerir de nuestra inversión de tiempo y concentración, pero que no generan demasiado valor a nuestra a actividad diaria. En el ámbito contable, una de estas tareas podría ser la gestión de los asientos contables recurrentes o periódicos.

Esta entrada de blog tiene como objetivo ayudar al usuario y ahorrarle tiempo en gran parte de estos casos, para que él o sus trabajadores inviertan sus esfuerzos en generar valor para la empresa, en vez de invertir su tiempo en gestiones contables rutinarias.

¿Cuánto tiempo inviertes, por ejemplo, con los asientos contables manuales de las comisiones bancarias o las nóminas de toda tu plantilla? ¿Qué te parecería generar tus propias plantillas de asientos contables y poder crearlos con un par de clics? 

Si crees que esta funcionalidad puede resultarte útil, te mostramos cómo hacerlo a continuación...

Introducción y configuración inicial

Esta funcionalidad nos la aporta el módulo account_move_template. El primer paso consiste en asegurarnos de que el módulo está instalado correctamente así como sus correspondientes dependencias.

El módulo account_move_template ha sido desarrollado en su totalidad por la Odoo Community Association (OCA). Los miembros de la OCA juntamos esfuerzos para potenciar Odoo como ERP y lo mejoramos día a día.

Podemos realizar la descarga desde el repositorio financial-tools. Desde Sygel invitamos a todos los lectores a informarse acerca de la labor de la Comunidad y a participar a nivel técnico y/o funcional para potenciar el crecimiento colaborativo.

Apartado 1. Creando nuestro primer asiento contable plantilla


En este primer apartado mostraremos cómo crear un asiento contable plantilla para poder reutilizarlo en otros casos.

Paso 1.1: Cómo crear una plantilla. Ruta en Odoo donde podremos utilizar esta funcionalidad.

Paso 1.2: Campos generales de la plantilla. Explicamos las características básicas.

Paso 1.3: Líneas de la plantilla. Funcionalidades que podemos configurar en nuestra plantilla de asiento.

NOTA: En esta entrada de blog no profundizaremos  en conceptos contables ni analizaremos a fondo las funcionalidades financieras en Odoo. La finalidad es presentar una alternativa para aquellos asientos recurrentes y facilitarle el día a día a los usuarios.

Paso 1.1: Cómo crear una plantilla.

Una vez instalados los módulos necesarios, debemos dirigirnos al módulo de Facturación/Contabilidad. Una vez ahí haremos clic en el menú Configuración --> Journal Entry Templates.

Creamos una nueva plantilla. Hay que revisar que tengamos los permisos necesarios. En este caso deberemos haber activado, previamente, las características de contabilidad completas para nuestro usuario.

NOTA: Para activar las características de contabilidad completas, iremos al módulo de Ajustes --> Usuarios y compañías --> Usuarios. Seleccionamos un usuario y le activamos la casilla "Mostrar características de contabilidad completas" que se encuentra en el apartado "Configuración Técnica".

Odoo • Text and Image
Odoo • Image and Text

Paso 1.2: Campos generales de una plantilla de asiento.

Inmediatamente después de hacer clic para crear una nueva plantilla, vemos que existen 3 campos diferenciados.

Nombre: Aquí definiremos el nombre de nuestra plantilla para poder identificarla en nuestro listado de plantillas disponible.

Diario: Como todos los asientos pertenecen a un diario en concreto, aquí podemos definir el que corresponda según el caso.

Referencia: Es un campo libre donde podemos añadir el concepto que más se ajuste a nuestras necesidades. Recordamos que este apartado es editable en los asientos contables aún estando éstos en estado "publicado".

Paso 1.3: Parámetros en las líneas de las plantillas.

En este apartado de la entrada del blog, explicamos punto por punto la funcionalidad y el significado de cada uno de los campos que podemos utilizar al crear líneas en nuestra plantilla.

Apartado General


Secuencia: Cada línea debe tener una secuencia distinta; no puede haber dos con la misma. La secuencia sirve para identificar cada una de las líneas mediante una enumeración, además de asignar un orden en los apuntes cuando generemos nuestro asiento plantilla. Podemos escoger la que nos vaya mejor en cada caso.

Etiqueta: Sirve para describir brevemente cada una de las líneas de las plantillas. Lo que se convertirá en la etiqueta de los apuntes contables.

Account: Cuenta contable para esa línea de la plantilla. Esta información será traspasada al apunte.

Empresa: Es un campo opcional que servirá para traspasar la información a los apuntes contables de la plantilla. Asignar una empresa en un apunte contable sirve para relacionar un movimiento de saldo con una persona o entidad. En algunos casos es necesario, como en las facturas. En otros, como en los traspasos de saldo a nivel interno entre cuentas contables, no es necesario.

Plazos de pago: A indicar en caso de que el apunte tenga distintos vencimientos. Unos ejemplos podrían ser: a 30 días, a 60 días, etc. En el caso de las plantillas de asientos, es probable que sea un campo que no acostumbremos a utilizar.

Odoo • A picture with a caption

Apartado Importe


Dirección: Si el importe de ese apunte hace referencia al "Debe" o al "Haber".

Tipo: Éste es uno de los parámetros que nos proporciona más versatilidad al generar las plantillas de asiento y el que merece una especial atención. Hay dos opciones para escoger: "User Input" hace referencia a un importe que el usuario indicará manualmente cada vez que genere un asiento contable mediante la plantilla. Por otra parte, "Computed" nos permite la opción de tratarlo como un importe calculado mediante fórmulas. Podemos observar que si escogemos esta segunda opción nos aparece otro campo adicional, en el cual podemos indicar una fórmula que nos servirá para calcular el importe de ese apunte. En los próximos apartados mostraremos un ejemplo más detallado sobre su uso.

Notas: Se trata de un campo donde el usuario puede hacer sus anotaciones, aunque no tiene tendrá ningún impacto contable.

Odoo • A picture with a caption

Odoo • A picture with a caption

Apartado Impuestos


Generador de impuesto: Este campo podrá ser editado en el asiento generado mediante el módulo account_move_line_tax_editable cuyo uso recomendamos. En general, permite editar los impuestos de los apuntes. En el caso en cuestión, sirve para indicar el impuesto que genera el apunte. Este módulo ha sido desarrollado por la OCA y podemos encontrarlo en el repositorio financial-tools.

Impuestos: En esta casilla indicaremos los impuestos que deben aplicarse al apunte en cuestión. Un ejemplo podría ser el IRPF que se aplica a la cuenta 640 cuando estamos realizando nóminas, o el IVA que aplicamos a la cuenta 626 en el caso de las comisiones bancarias.

Odoo • A picture with a caption

Apartado 2. Caso práctico. Creando una plantilla para nóminas


Ahora que ya conocemos las posibilidades de las plantillas para generar asientos, vamos a trabajar un caso práctico habitual. Generar nóminas por medio de un asiento plantilla. Puedes encontrar más información sobre cómo gestionar las nóminas en Odoo en este enlace.

Paso 2.1:  Apunte 640. Sueldos y Salarios. Importe calculado (cantidad fija). También puede ser manual si el salario depende, por ejemplo, de las horas trabajadas, etc. En el ejemplo lo haremos mediante un calculado, pero con un importe fijo. Como si fuera una retribución bruta sin variaciones.

Paso 2.2: Apunte 4751. Hacienda Pública, acreedora por retenciones practicadas. Importe calculado. 8,6% sobre la retribución bruta.

Paso 2.3.1 y 2.3.2: Apuntes 476. Organismos de la Seguridad Social, acreedores. Importes calculados (cantidad fija). Aunque no sea tan habitual, en este caso hemos diferenciado la Seguridad Social a cargo del trabajador y la Seguridad Social a cargo de la empresa para mostrar el ejemplo con detalle. Hay casos en que los usuarios prefieren crearse subcuentas para tener ciertos aspectos diferenciados.

Paso 2.4: Apunte 465. Remuneraciones pendientes de pago. Importe calculado. (Retribución bruta - IRPF).

Paso 2.5: Apunte 642. Gastos Seguridad Social. Importe calculado. (Seguridad Social a cargo de la empresa).

Odoo • Image and Text

Paso 2.1: Cuenta 640. Sueldos y salarios.

En el caso de ejemplo trabajamos con una retribución bruta de 1096,25€.

Secuencia: 0. Será el primer apunte del asiento.

Etiqueta: Los detalles del apunte --> "Retribución bruta".

Cuenta: 640000 Sueldos y salarios.

Empresa: Trabajador 1.

Dirección: Debe.

Tipo: Calculado. Indicamos una cantidad fija: 1096,25€.

Impuestos: Retenciones IRPF (Trabajadores) dinerarios.

NOTA IMPORTANTE: Hay que tener en cuenta que el campo del cálculo debe estar expresado en nomenclatura Python, por lo que las comas deberán ser puntos y no utilizaremos separadores de miles.

Paso 2.2: Cuenta 4751. Hacienda Pública.

En este caso, estamos aplicando una retención del 8,6%.

Secuencia: 1. Será el segundo apunte del asiento.

Etiqueta: Los detalles del apunte --> Retención por IRPF.

Cuenta: 475100 Hacienda Pública, acreedora por retenciones practicadas.

Empresa: Trabajador 1.

Dirección: Haber.

Tipo: Calculado. En este caso hemos utilizado la fórmula "L0*0.086", que significa que multiplicamos el importe de la línea 0 (Apunte 640, retribución bruta) por 0.086 que hace referencia al 8,6% de retención por IRPF.

Creador de Impuesto: Debemos escoger el mismo impuesto que hemos aplicado en el paso anterior; es decir, Retenciones IRPF (Trabajadores) dinerarios. Así le indicaremos a ese apunte cuál es el impuesto causante de su creación.

Odoo • Text and Image
Odoo • Image and Text

Paso 2.3.1: Cuenta 476. Organismos de la SS, acreedores. (a cargo del trabajador)

Secuencia: 2. Será el tercer apunte del asiento.

Etiqueta: Los detalles del apunte --> SS a cargo del trabajador.

Cuenta: 476000 Organismos de la Seguridad Social, acreedores.

Empresa: Trabajador 1.

Dirección: Haber.

Tipo: Calculado. En la fórmula hemos indicado una cantidad fija de 108,18€.

2.3.2: Cuenta 476. Organismos de la SS, acreedores. (a cargo de la empresa)

Secuencia: 3. Será el cuarto apunte del asiento.

Etiqueta: Los detalles del apunte --> SS a cargo de la empresa (acreedores)

Cuenta: 476000 Organismos de la Seguridad Social, acreedores.

Empresa: Trabajador 1.

Dirección: Haber.

Tipo: Calculado. En la fórmula hemos indicado una cantidad fija de 372,63€

Odoo • Text and Image
Odoo • Image and Text

2.4: Cuenta 465. Remuneraciones pendientes de pago.

Secuencia: 4. Será el quinto apunte del asiento.

Etiqueta: Los detalles del apunte --> Retribución neta.

Cuenta: 465000 Remuneraciones pendientes de pago.

Empresa: Trabajador 1.

Dirección: Haber.

Tipo: Calculado. Para calcular la retribución neta hacemos una sencilla operación matemática "L0-L1-L2". La línea 0 (retribución bruta) - la línea 1 (IRPF) - la línea 2 (SS a cargo del trabajador).

2.5: Cuenta 642. Seguridad Social a cargo de la empresa.

Secuencia: 5. Será el sexto apunte del asiento.

Etiqueta: Los detalles del apunte --> SS a cargo de la empresa.

Cuenta: 642000 Seguridad Social a cargo de la empresa.

Empresa: Trabajador 1.

Dirección: Debe

Tipo: Calculado. En este caso hemos utilizado una fórmula muy simple. Únicamente hemos indicado "L3". Es decir, el mismo importe que la línea 3 (SS a cargo de la empresa). También podríamos haber puesto el importe fijo de 372,63€, por ejemplo.

Odoo • Text and Image

Generando el asiento contable a partir de la plantilla

Una vez estén creadas todas la líneas debemos guardar nuestra plantilla. Posteriormente, generar el asiento es tan sencillo como hacer clic en el botón "Generate Journal Entry" que destacamos en esta imagen.

Odoo • A picture with a caption
 

Para el caso de ejemplo, nuestro asiento contable tendrá el aspecto de esta segunda captura.

Odoo • A picture with a caption
 

Aspectos a tener en cuenta


Es probable que, en muchos casos, los asientos no puedan ser tan "idílicamente" automatizados mediante plantillas. Sobre todo cuando hablamos de nóminas. Sin embargo, podemos dejar una plantilla preparada con su correspondiente estructura de apuntes e indicarles el tipo de importe "A introducir por el usuario" en vez de "Calculado". De esta forma, sólo deberemos preocuparnos de los importes de los asientos y tendremos gran parte del trabajo hecha.

  • El cálculo de las fórmulas es secuencial. Para aquellas líneas que escojamos el tipo "Calculado" deberemos tener en cuenta que los importes dependientes hayan sido calculados previamente. Por ejemplo: Nos aparecerá un error al generar el asiento, si en la L0 hemos indicado que el importe es igual a la suma de L2 y L3. Al calcular la L0, las líneas con secuencia 2 y secuencia 3 no existen aún. Por ello deberemos tener el cuenta el orden en el que confeccionamos nuestras líneas del asiento plantilla.

  • Los números de línea hacen referencia al número de secuencia. La L0, hace referencia a la línea con número de secuencia 0, la L1 hace referencia a la línea con número de secuencia 1,  y así sucesivamente.

  • El asiento que se genera estará en estado "Borrador".  Una vez generado el asiento mediante la plantilla, éste no tendrá validez contable hasta que no lo publiquemos. Asimismo, teniendo en cuenta que se trata de un asiento borrador, podemos editar aquello que necesitemos.

  • Formato de las fórmulas en las líneas con tipo "Calculado".  Es importante recordar que las fórmulas deben estar expresadas correctamente en nomenclatura Python. por ello utilizaremos el punto "." y no la coma "," para diferenciar los decimales. Por otra parte tampoco utilizaremos separador de miles.

  • Otra ruta para crear el asiento contable a partir de la plantilla.  En vez de entrar en la plantilla correspondiente cada vez que queramos hacer uso de ésta, también podemos crear los asientos mediante la ruta: módulo de Facturación/Contabilidad --> Contabilidad --> Asientos contables --> Create entry from template. Una vez seleccionado ese punto de menú se abrirá un asistente donde podremos seleccionar la plantilla de asiento a utilizar.

Consejo: Si quieres saber más acerca de los conceptos para generar los asientos de nóminas en Odoo, echa un vistazo a nuestro post Gestión de nóminas en Odoo.

Como su implantador de confianza, SYGEL apuesta por compartir el conocimiento con sus clientes y la Comunidad. Ayudamos a que el usuario consiga ser autosuficiente con la herramienta y potenciamos la difusión de la marca Odoo para hacerlo accesible a todos los niveles.