martes, 23 de diciembre de 2014

Odoo - Localización funcional para Colombia - NIIF


Contexto


La implementación de las Normas Internacionales de Información Financiera -NIIF- es un proceso que apenas está despegando en Colombia.  En términos generales podemos afirmar que tanto las empresas como los Contadores Públicos se enfrentan a un "mundo desconocido", de ahí que sea completamente normal que se lance una pregunta recurrente a los proveedores de software: ¿Este producto "maneja NIIF"?

Un aspecto interesante del asunto es que la pregunta no está bien formulada. Hablando en concreto de Odoo la respuesta al interrogante podría ser un SI categórico, ¿acaso no se usa en países en los que hace rato se adoptaron las NIIF?

La verdadera necesidad en Colombia, originada en la forma particular de adopción de las NIIF, es la generación de información financiera usando dos bases contables diferentes -o estándares si prefieren un término más elegante-: 1) NIIF y 2) Norma local anterior.  Esta condición deberá cumplirse por lo menos durante los siguientes cuatro años al primer período de aplicación de las NIIF, esto es, hasta el 2018 en unos casos y 2019 en otros.

Lo anterior es explicado por la necesidad del Estado de medir el impacto que tendría la aplicación de las NIIF en el recaudo de los tributos nacionales. Para el propósito que perseguimos, con saber esto es suficiente.

Grupos de entidades


Cuando nos referimos a las NIIF podría dar la impresión de que estamos frente a reglas únicas de aplicación general.  La realidad es bien diferente, para comenzar hay que decir que en Colombia se decidió dividir las entidades en tres grupos y para cada uno de ellos se establecieron obligaciones diferentes:

Grupo 1 Aplica Normas Internacionales de Información Financiera - NIIF
Grupo 2 Aplica Normas Internacionales de Información Financiera para Pequeñas y Medianas Empresas - NIIF para PYMES
Grupo 3 Aplica Normas de Información Financiera para Microempresas - NIF para Microempresas

Aquí surge el primer requerimiento de adaptación de Odoo:
Agregar un campo tipo "selection" en el formulario "Compañía" para indicar el grupo al que pertenece la entidad: Grupo 1, Grupo 2 o Grupo 3.
Este campo nos permitirá establecer, más adelante, reglas de comportamiento del sistema en el módulo "Contabilidad y Finanzas".

Registro de diferencias vs Libro Tributario


Hace solo algunos días, el 12 de diciembre, fue expedido el Decreto 2548 para orientar a las entidades acerca de la forma en que deben cumplir con la exigencia de emitir información financiera usando dos bases contables diferentes.  Al respecto se establecen dos alternativas, 1) Llevar un sistema de registro de todas las diferencias que surjan entre la aplicación de las NIIF y la norma local anterior -base fiscal-, y 2) Llevar de forma simultánea el registro de todos los hechos económicos aplicando las NIIF y la norma local anterior -base fiscal-.

La decisión de cuál alternativa elegir va a depender del volumen de transacciones que deben ser representadas de una forma diferente entre las NIIF y la norma local anterior.  Si el volumen es bajo, la mejor alternativa será el registro de todas las diferencias, si el volumen es alto, será el registro de todos los hechos económicos usando las dos bases contables.

Aquí surge el segundo requerimiento de adaptación de Odoo:
Agregar un campo tipo "selection" en el formulario "Compañía" para indicar la alternativa elegida para cumplir con la exigencia de emitir información financiera usando dos bases contables diferentes: Registro de todas las diferencias o Registro de todos los hechos económicos.
Este campo nos permitirá establecer, más adelante, reglas de comportamiento del sistema en el módulo "Contabilidad y Finanzas".

Información financiera vs Bases contables


Para terminar, es preciso hacer notar que a lo largo de esta entrada hemos hecho referencia a dos términos: 1) Información financiera, y 2) Bases contables.  De lo anterior se puede deducir que, para adaptar Odoo a las exigencias relacionadas con la adopción de las NIIF en Colombia, se requerirán cambios en dos características principales: 1) Los informes generados desde el módulo "Contabilidad y Finanzas", y 2) La configuración de cuentas contables y de comprobantes de contabilidad -Diarios, en lenguaje Odoo-.  De esto nos ocuparemos en futuras entradas.

--------------

Advertencia: La especificación de requerimientos sobre la adaptación de Odoo para cumplir las exigencias relacionadas con la adopción de las NIIF en Colombia no pretenden ser un curso de NIIF. Nuestro objetivo está limitado a orientar a los desarrolladores sobre las funcionalidades que deben ser incorporadas en Odoo.

--------------

viernes, 19 de diciembre de 2014

Odoo - Localización funcional para Colombia - Información exógena: Formato 1008

Continuando con la tarea de documentar las especificaciones de requerimientos funcionales para avanzar en la localización de Odoo para Colombia, vamos a abordar un tema de especial interés para las empresas: La información exógena.

La DIAN definió mediante Resolución 000220 del 31 de octubre del 2014 las reglas para la presentación de la información exógena correspondiente al año gravable 2015.  El numeral 18.7 de la la misma -pág 32-, establece los criterios que se deben cumplir en el reporte de los deudores al 31 de diciembre del año gravable, a su vez, el Anexo 24 Formato 1008v7 define la estructura de datos del archivo XML a reportar.

Cuentas a conceptos


La información sobre las cuentas por cobrar a diciembre 31 del año gravable deben ser reportadas a través de cuatro conceptos:

CONCEPTO DESCRIPCIÓN
1315 El valor total del saldo de las cuentas por cobrar a clientes
1316 El valor total del saldo de las cuentas por cobrar a accionistas, socios, comuneros,cooperados y compañías vinculadas
1317 El valor total de otras cuentas por cobrar
1318 El valor total del saldo fiscal de la provisión de cartera, en el concepto 1318, identificándolo con el NIT del deudor

Como este esquema se repite para otros formatos, lo mejor es diseñar un mecanismo genérico de asociación de cuentas contables a conceptos.  En la siguiente imagen se puede observar un posible diseño de interfaz de usuario:



  • Formato: Lista de formatos exigidos por la DIAN
  • Año fiscal: Año gravable sobre el cual se aplica la configuración de conceptos y cuentas.
  • Concepto: Conceptos definidos en la resolución.  Estos han permanecido relativamente estables.
  • Cuentas: Cuentas contables asociadas a cada concepto.  Aquí se deben cumplir dos reglas, a) que las cuentas contables sean del nivel de registro, es decir, diferentes a tipo "Vista", y b) que las cuentas solo puedan ser asignadas a un único concepto.
  • Generar archivo: Cuadro de chequeo para indicar si el archivo debe ser generado en formato csv o xml.
  • Cuantía a reportar: Valor a partir del cual se deben reportar los datos individualizados por tercero.  Las cuantías inferiores a esta cifra se deben acumular en un solo registro, asignando el tercero "CUANTÍAS MENORES".
  • Saldo - Débitos - Créditos: Campos para indicar al sistema la fuente de datos para realizar el cómputo y procesar el archivo.  En el caso del formato 1008 serán los saldos de las cuentas por tercero.

Validaciones


Antes de generar el archivo es recomendable realizar algunas verificaciones:
  • Que todas los movimientos o saldos de las cuentas contables asociadas a los conceptos tengan asignado un tercero, es decir, que el campo "Empresa" esté diligenciado.
  • Que el tercero -Partner- tenga los datos requeridos. Ver: Odoo - Localización funcional para Colombia - Especificación de requerimientos - "Terceros".
  • La verificación de la cuantía a reportar de forma individualizada por tercero debe realizarse tomando todas las cuentas contables asociadas a los conceptos, así por ejemplo, si el tercero tiene saldos en dos conceptos diferentes, cada uno por un valor inferior a la cuantía a reportar, pero sumados los dos supera dicha cuantía, el tercero debe ser reportado de forma individual, no puede acumularse en cuantías menores.

Archivo


El archivo csv debe contener los campos indicados en el Anexo 24 Formato 1008v7

Para ver como debería generarse el archivo xml se puede hacer uso del prevalidador publicado por la DIAN para el año 2013, el cual está disponible en: Información de Relevancia Tributaria vigencia 2013.
       
-----------------------------

¿Algún voluntario para hacer este desarrollo? 

-----------------------------

lunes, 15 de diciembre de 2014

Odoo - Localización funcional para Colombia - Especificación de requerimientos - "Terceros"


Con ocasión de la especificación detallada de requerimientos funcionales para lograr una localización de Odoo aceptable para el contexto Colombiano, hemos decidido ampliar una entrada publicada a mediados del año 2013: OpenERP - Localización funcional para Colombia - "Terceros".

¿Por qué es necesario adaptar la forma como se capturan los datos de "Terceros" en Odoo?


Simple, porque es una necesidad que surge a partir de la obligación de reportar información a la DIAN, y no se trata de una necesidad reciente dado que desde el año 2005 se introdujo en Colombia lo que en jerga técnica conocemos como "Información exógena" o "Medios magnéticos".

Para el año 2015 la DIAN ya definió quienes están obligados a reportar información, así como las características técnicas que ésta debe cumplir, lo hizo a través de la Resolución 000220 del 31 de octubre del 2014 y sus anexos.  El Título V -páginas 20 a 38- de la citada resolución es el que nos interesa debido a que es el que tiene aplicación para la mayoría de potenciales usuarios de Odoo en Colombia.  Una lectura rápida de este título nos permite identificar la estructura de datos requeridos para los terceros, a modo de ejemplo, en el numeral 18.2 Información de pagos o abonos en cuenta y de retenciones en la fuente practicadas, se lee "los obligados a presentar información, por el año gravable 2015, deberán suministrar los apellidos y nombres o razón social, identificación, dirección y país de residencia o domicilio de cada una de las personas o entidades beneficiarias de los pagos o abonos en cuenta...". (Subrayado fuera de texto)

Para tener una visión más precisa acerca de la estructura de los datos a reportar es necesario acudir a los anexos técnicos.  Siguiendo con el ejemplo propuesto, el Anexo 19 Formato 1001v9, establece en el "Formato del contenido" -página 3-, entre otros, los siguientes campos:

  • tdoc - Tipo de documento
  • nid - Número de identificación
  • dv - Dígito de verificación
  • apl1 - Primer apellido del informado
  • apl2 - Segundo apellido del informado
  • nom1 - Primer nombre del informado
  • nom2 - Otros nombres del informado
  • raz - Razón social del informado
  • dir - Dirección
  • dpto - Código departamento
  • mun - Código municipio
  • país - País de residencia o domicilio

Validaciones


En la entrada OpenERP - Localización funcional para Colombia - "Terceros" expusimos algunas validaciones básicas, vamos a profundizar un poco sobre el tema.

El campo "Naturaleza" no es exigido por la DIAN, pero si es útil para realizar algunas validaciones y también para definir, en un futuro, reglas de comportamiento del sistema en el manejo de impuestos.

Recordemos que la naturaleza hace referencia a si el tercero es una "Persona natural" o una "Persona jurídica", esto se puede implementar con un campo tipo "selection".  También es preciso señalar que tanto una persona natural como una jurídica pueden ser marcados como "Is a Company", es decir, ambos pueden ser una empresa con la que tenemos algún tipo de relación comercial y ambos pueden tener "Contactos" asociados.

Dicho lo anterior, veamos las validaciones:

  • Si el tercero es persona natural los campos apl1 y nom1 son obligatorios.
    • Si el tercero es persona jurídica los campos apellidos y nombres deben estar vacíos.  
    • Si el tercero es persona jurídica los únicos tipos de documentos permitidos son "NIT", "Tipo de documento extranjero" y "Para uso definido por la DIAN". 
    • Si el tercero es persona jurídica y el tipo de documento es NIT, el número de documento debe contener 9 dígitos.
    • Los campos tipo de documento y número de documento son obligatorios.
    • Si el tercero es "Persona Jurídica" no puede ser a la vez "Contacto" de otro tercero.  Visto de otra manera, si el tercero es "Persona Jurídica" siempre tendrá marcada la casilla "Is a Company".

    -------------------

    Con lo descrito en esta entrada y en OpenERP - Localización funcional para Colombia - "Terceros" completamos los insumos para realizar las adecuaciones del tercero según los requerimientos 001 a 003 de la "Lista de requerimientos funcionales".

    -------------------