Propuesta Diseno Software Facturacion Electronica
Propuesta Diseno Software Facturacion Electronica
Propuesta Diseno Software Facturacion Electronica
Noviembre, 2017
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo ii
_____________________________
Ing. Luis Pablo Soto
Miembro Tribunal Examinador
_____________________________
Ing. Luis Chavarría Sánchez, M.Ed.
Miembro del Tribunal Examinador
_______________________________________
Ing. Sonia Mora González, MBA
Coordinadora del Proyecto de Graduación de la Licenciatura en Administración de Tecnología
de Información
Fecha: Noviembre, 2017
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo iii
I. Dedicatoria
Dedico este trabajo de graduación primeramente a Dios, por permitirme alcanzar este
sueño tan anhelado. A mi familia, en especial a mi madre, por ser una maravillosa persona,
II. Agradecimientos
En estas líneas quiero expresar mi más profundo agradecimiento a todos y cada una de
A mi profesor tutor Néstor Morales, amigo y consejero en este duro proceso. A la profesora
Sonia Mora, por su excelentísima ayuda y guía para retarme a alcanzar un mejor proyecto.
proyecto.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo v
III. Resumen
electrónica utilizando el sistema Odoo, según las obligaciones y requisitos de la resolución DGT-
R-48-2016 conocida como comprobantes electrónicos en la versión 4.2, la cual rige a partir de
octubre 2017.
publicaciones y resoluciones, así como una investigación de campo por medio de entrevistas
ISO/IEC 12207:2008 para el ciclo de vida del desarrollo del software. Se realizó una identificación
construyó una propuesta de solución del trabajo para el sistema de planificación de recursos
empresariales.
Finalmente, se elaboró un plan de implementación del proyecto, el cual puede ser adaptado
comprobantes electrónicos.
IV. Abstract
The main objective of this investigation is to define a software design proposal for
electronic invoicing using the software known as Odoo, according to the obligations and
requirements of the resolution DGT-R-48-2016, known as the electronic billing in its 4.2 version,
First, the records in Costa Rica were determined, taking as entries articles, laws and
resolutions, as well as a field investigation through interviews with general and financial managers
of the country.
Subsequently, the process was continued following the recommended activities of ISO/IEC
12207:2008 for the software development life cycle. Where an identification of the requirements
was made, a set of use cases was elaborated, a class diagram was designed, and a test proposal was
developed.
Then a prototype was made using the tool called Odoo Studio, where a work solution
Finally, a design implementation plan was developed, that can be adapted to other
businesses that have the need to satisfy the electronic invoicing legislation.
Keywords: Electronic invoicing, electronic billing, enterprise resource planning systems, Odoo, software design.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo vii
V. Tabla de contenido
III. Resumen.............................................................................................................................. v
2.3.5 HTTP......................................................................................................................... 61
4.6.2.6 Prueba conceptual del diseño detallado del software ..................................... 196
9.2.1 A. Plantilla del grupo de enfoque para el análisis de requerimientos del sistema .. 238
9.2.2 B. Plantilla del grupo de enfoque para el diseño de la arquitectura del sistema ..... 239
9.2.3 C. Plantilla del grupo de enfoque para el análisis de los requerimientos de software .
................................................................................................................................. 240
9.2.4 D. Plantilla del grupo de enfoque para el diseño de la arquitectura del software ... 241
9.2.5 E. Plantilla del grupo de enfoque para el diseño detallado del software ................ 242
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo xiii
9.6.1 A. Reunión del grupo de enfoque para el análisis de requerimientos del sistema .. 262
9.6.2 B. Reunión del grupo de enfoque para el diseño de la arquitectura del sistema..... 264
9.6.3 C. Reunión del grupo de enfoque para el análisis de los requerimientos de software ..
................................................................................................................................. 266
9.6.4 D. Reunión del grupo de enfoque para el diseño de la arquitectura del software... 268
9.6.5 E. Reunión del grupo de enfoque para el diseño detallado del software ................ 271
1. Capítulo 1
Introducción
Los impuestos son casi tan antiguos como la civilización humana, en sus primeras expresiones se
encuentran los tributos por medio del trabajo físico donde se debía construir, cultivar o realizar
algún trabajo para los nobles o la realeza. Con el pasar de cientos de años, la forma de cobrar
impuestos se fue especializando y las maneras de pagos se transforman en dos fuentes: por medio
evasión tributaria; las empresas y personas tratan de no pagar a los Gobiernos los diferentes
tributos que les imponen. En el siglo XXI con el avance tecnológico las diferentes naciones buscan
cuando se realice una venta de bienes o servicios y quede registrada en los sistemas tributarios.
Con esto, un estado puede conocer qué empresa vendió, a quién lo hizo y cuál fue el monto de esa
transacción, determinando así cuántos impuestos directos e indirectos le corresponde a cada uno
pagar.
electrónica o comprobantes electrónicos, lo cual se puede definir como el proceso de realizar una
venta o devolución y cómo debe ser enviada por algún medio tecnológico al ente tributario, el cual
deberá registrar y generalmente contestar por el mismo medio la recepción del documento.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 2
tecnológicos que deben implementarse en los documentos electrónicos para un sistema en Costa
Rica.
de código abierto Odoo en su versión 10, utilizado y comercializado por la empresa Delfix
software para lograr posteriormente desarrollar un sistema capaz de enviar y recibir comprobantes
electrónicos en el país.
sistema con las capacidades y requerimientos solicitados por la Ley. Debido a esto, el proyecto se
Dirección General de Tributación. El desarrollo del proyecto debe estar en conformidad con las
octubre del 2016 denominada “Comprobantes Electrónicos” y sus anexos y estructuras versión
4.2, actualizada parcialmente con las reformas en las resoluciones DGT-R-13-2017 y DGT-R-25-
2017.
sus anexos y estructuras, para plasmar en técnicas y herramientas del ámbito tecnológico lo
solicitado en la ley y sea utilizable luego por ingenieros en software y sistemas para desarrollar el
diseño propuesto.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 3
versó en aprender el sistema Odoo y cómo ajustar este programa particular con la legislación de
Costa Rica.
diferentes puestos altos de las organizaciones en el Área Metropolitana. En las conversaciones con
los gerentes, se analizó sobre el conocimiento sobre los cambios en sus sistemas informáticos y
En una segunda parte la investigación del problema sigue las actividades propuestas en la
ISO/IEC 12207:2008 sobre el Ciclo de Vida del Desarrollo de Sistemas. Cada actividad era
revisada con la empresa por medio de grupos de enfoque con los participantes claves del negocio.
descripción de la Compañía, la situación problemática, los objetivos del trabajo, así como los
alcances y limitaciones del proyecto. En el capítulo II, se expone la teoría necesaria para desarrollar
grupos de enfoque, análisis y diseño realizadas para obtener un diseño de software completo. En
Organización.
1.2 Antecedentes
basará el proyecto.
En este apartado se describe la Organización, sus servicios, la Misión, la Visión y los miembros
“Ser la mejor mezcla de costo versus beneficio para soluciones empresariales para PYMES
Tecnosoluciones, 2017)
“Ser la mejor opción de soluciones empresariales basada en software libre para PYMES
La organización se fundó en el 2011, por la necesidad de las pequeñas y medianas empresas para
obtener un sistema que permitiera integrar las áreas del negocio (como ventas, contabilidad,
Comunicación (CAMTIC). Las soluciones que brinda están orientadas al área de tecnología de
abierto que busca cubrir necesidades empresariales en los negocios, totalmente integrado entre
cada módulo del producto y funciona en cualquier negocio por su versatilidad de aplicaciones. La
diferentes áreas de los negocios como contabilidad, ventas, producción, compras, buscando que
los diferentes departamentos puedan compartir información con el objetivo de optimizar los
- Leaho Refrigeración Industrial: es una empresa que tiene 30 años de ofrecer servicios
eventos importantes.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 6
- TecnoAlfa & Sisea Seguridad: es una sociedad costarricense con más de 17 años en el
de primera línea en Costa Rica, para ofrecer el mejor y más confiable servicio integral de
seguridad.
- Implementación de Odoo.
Delfix Tecnosoluciones ha trabajado por la alineación de sus procesos con las mejores
prácticas del mercado. Algunos de esos procesos son: gestión de cambios, gestión de la
gestión de acceso a usuarios y la función de la mesa de servicio (service desk) alineados a las
producto.
El negocio cuenta con dos empresas que funcionan como staff, los cuales son claves en el
negocio y sirven de apoyo en la toma de decisiones a la gerencia. Uno está relacionado con los
servicios legales y el otro con los servicios de consultoría y apoyo a proyectos del negocio. En la
Gerencia General
Asesoría Asesoría
Legal Proyectos
Gerencia Gerencia de
Administrativa y Tecnologías de
Ventas Información
Desarrollo a la
Infraestructura Implementaciones Operaciones
medida
Figura 1.1. Organigrama del Negocio. Adaptado del Plan Estratégico de TI, Delfix Tecnosoluciones, 2016
Información (PETI), la Empresa busca alinear el producto a la legislación contable y legal de Costa
Rica. Por lo tanto, los proyectos que vayan en esa dirección tienen gran impacto en la organización
y tendrán el respaldo de la gerencia. Debido a esto y la trascendencia del cambio tecnológico que
de la factura electrónica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 8
1.2.1.4 Propuesta de valor. La Organización busca dar servicios de alta calidad a sus clientes,
• Liderazgo.
• Compromiso.
• Dedicación.
• Esfuerzo.
• Lealtad.
Con estos valores, el negocio pretende ser un aliado estratégico con sus clientes, los cuales no
solo obtendrán una herramienta tecnológica, sino también la ayuda necesaria para mejorar sus
Administrativa será la encargada de administrar el avance del proyecto, debido que el desarrollo
Además, la Empresa cuenta con dos compañías que brindan sus servicios y están
relacionadas con el proyecto. Una es el Bufete Murillo & Murillo que se encarga de los asuntos
proyectos de TI.
Los involucrados en el proyecto por parte del Negocio son los siguientes:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 9
de facilitar la información, autorizar entrevistas con los demás miembros del equipo de
para hacer viable el proyecto. Además, brindará recomendaciones desde el punto de vista
técnico al practicante.
proyecto de graduación. La gerente administrativa se apoya con este miembro del equipo
- Abogada del Bufete Murillo & Murillo: será la encargará de atender dudas legales con
Entre sus funciones estará recopilar la información necesaria para realizar el proyecto,
solicitar reuniones prioritarias a los involucrados para aclarar dudas, mostrar los avances y
obtener aprobaciones del trabajo realizado. Además, debe realizar las validaciones del
diseño del software, así como relacionarlo con los diferentes reglamentos legales existentes
en el país.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 10
En la Tabla 1.1 se presenta los roles de cada uno de los miembros de trabajo involucrados
en el proyecto:
Nota: La tabla 1.1 se realiza por medio del material obtenido por parte de la empresa Delfix Tecnosoluciones
Por otra parte, se presenta en la Figura 1.2. el organigrama del equipo de trabajo involucrado en el
Gerencia
Administrativa
Asesoría Asesoría
Legal Proyectos
Desarrollo a la Desarrollador
Infraestructura
medida del proyecto
Figura 1.2. Equipo de Trabajo. Adaptado de la información obtenida para el proyecto por parte del negocio.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 12
Empresa, se destaca el de “alinear el sistema Odoo con la legislación nacional en los aspectos
Este plan justifica la propuesta de diseño de software de la facturación electrónica con los
por medio de diferentes servicios web (en inglés, web services), permitiendo realizar el desarrollo
similares; debido a esto, se identifican las siguientes leyes, tesis, artículos y libros para realizar el
El proyecto al tener un marco legal definido se debe basar en las diferentes resoluciones
como “Comprobantes Electrónicos” publicada el 07 de octubre del 2016. Además, se tienen dos
reformas adicionales que modifican parcialmente esta resolución, las cuales son la DGT-R-13-
2017, dada el 20 de febrero del 2017 y la resolución DGT-R-25-2017 realizada el 19 de abril del
2017.
Otra fuente legal que afecta el proyecto será el Código de Normas y Procedimientos
Tributarios, Ley N° 4755 de 3 de mayo de 1971 y sus reformas, conocido como Código Tributario.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 13
En esta ley se establecen las normas generales, los procedimientos y sanciones tributarias de Costa
Rica.
Además, el trabajo deberá contemplar lo referido a la Ley 8454, definida como la Ley de
Certificados, Firmas Digitales y Documentos Electrónicos, esto porque las facturas electrónicas
Los comprobantes electrónicos es un tema actual en el país. La mayoría de las tesis analizadas se
enfocan desde un punto de vista jurídico, contable o social. Aunque el proyecto toma parte de esos
- Pereira, Anthony (2003). El documento digital en Costa Rica, una patria sin papel. [Trabajo
Costa Rica. Este ensayo brinda una serie de conceptos básicos en el tema de documentos
digitales, los cuales serán utilizados en el proyecto final. Además, ofrece a un nivel general
[Tesis de Licenciatura]. Universidad de Costa Rica, Costa Rica. La tesis enfoca elementos
tradicional.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 14
- Segura, José (2012). La fiscalidad del comercio electrónico en Costa Rica. [Tesis de
regulación en el país y como estos afectarán los ingresos tributarios. Además, se aborda
Costa Rica, Costa Rica. Esta tesis brindará información de cómo ha sido la evolución y el
auditoría para evaluar las amenazas técnicas sobre los servicios de cloud computing
Universidad de Costa Rica, Costa Rica. Este proyecto realiza varios análisis de diferentes
en los últimos años, por lo tanto, existe gran variedad de documentación que analiza el tema.
Ecuador con Costa Rica. Además, provee información sobre la legalidad de la factura y la
firma digital.
Revista del Tribunal Federal de Justicia Administrativa, México. Este artículo brinda
Este trabajo fue realizado desde un punto de vista contable, brindará al investigador
- Villeda, Rudy (2011). La factura electrónica como herramienta para mejorar el nivel de
cumplimiento tributario y reducir los niveles de evasión tributario del IVA. [Artículo para
Guatemala. Este artículo se enfoca sobre el concepto de factura electrónica y cómo esto
puede ayudar a mejorar la recaudación de fondos por medio del impuesto de ventas en el
país.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 16
- García, Paulina (2012). La factura electrónica como medida para evitar la evasión de
de la evasión de impuestos.
definen cuáles son los requisitos mínimos para un sistema nacional de facturación
electrónica
- García, Chong, Saavedra y Salazar (2014). Costo beneficio del uso de la factura electrónica
Universidad Nacional de San Martín, Perú. El trabajo se enfoca sobre posibles beneficios
Este ensayo da una realidad diferente al país, en el cual se abordan las deficiencias y
- Ruiz, Karina (2014). Factura Electrónica: Percepción del beneficio desde el punto de vista
de los contadores. [Tesis de Grado]. Universidad del Bío-Bío, Chile. Esta tesis se enfoca
electrónica en las MiPymes del sector comercio y servicios en México. [Artículo Revista
Global de Negocios]. Vol. 4, pp. 85-94, Revista Global de Negocios, México. Este artículo
provee una visión de cómo impacta en las pequeñas empresas una vez implementado la
trabajo brinda una perspectiva actual de un país que está próximo a implantar la facturación
electrónica.
Comercio, España.
- GS1 Costa Rica (2009). Factura Electrónica, Guía de Implementación. GS1 Costa Rica
Por otro lado, el proyecto se apoyará en los siguientes libros de facturación electrónica:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 18
Empresarial Inteligente.
- Pérez Villeda, Mario (2014). Optimice sus procesos de negocio con la factura electrónica.
administraciones públicas
CreateSpace
requerimientos y el diseño del software. La documentación de ambos temas es amplia. Entre las
- Aycart, David, Ginestá, Marc y Hernández, Martín (2017). Ingeniería del software en
Finalmente, con respecto de la herramienta de Odoo se utilizarán los siguientes libros para
Con base en las referencias anteriores se tiene una estructura sólida para iniciar el proyecto de
Organización, la cual motiva el desarrollo del proyecto, así como la mención de los beneficios
diseñados para cumplir con las Normas Internacionales de Información Financiera y con el Código
Tributario de cada país. Costa Rica no está exento de esto, los sistemas informáticos tienen que
estar en constante actualización con las reglas y lineamientos que desarrolla el Gobierno y los
distintos organismos.
siglas como NIIF, fueron ratificadas por el Colegio de Contadores Públicos de Costa Rica
económicos que son importante en los estados financieros con propósitos generales y
(pág.. 1)
Código Tributario, se encuentran las leyes relacionadas con los impuestos y tributos para las
empresas costarricenses.
normas generales para los efectos de la aplicación correcta de las leyes tributarias” (Asamblea
Legislativa de Costa Rica, 1971, pág. 31). Debido a esto, cada año se realizan modificaciones o
ampliaciones a los diferentes tributos, normas o leyes que se aplicarán a los obligados tributarios.
La misión de la Dirección General de Tributación, que funge como dependencia del Área
que el Estado demande”. Debido a esto, una mayoría de proyectos de ley van enfocados a mejorar
Por lo tanto, con los avances tecnológicos y la necesidad cada vez mayor de recaudar
mayores tributos, se impulsa una serie de directrices para fiscalizar eficientemente la recolección
El objetivo es tener una mejor recaudación y con ello, disminuir la evasión de impuestos.
transacción de venta. La forma de determinar esto se obtiene al conectar los sistemas contables o
de facturación de las empresas con los sistemas de recaudación del Ministerio de Hacienda.
Para realizar esa sincronización se ha creado una serie de resoluciones, leyes y normas que
El inicio de la regulación para la factura electrónica viene desde el 28 de febrero del 2003
La resolución DGT-04-03 fue planteada el 27 de enero del 2003, la cual autoriza el uso de
comprobantes digitales, siempre que cumplan los requisitos tributarios. Además, brinda la
la resolución N.º 04-03, se ha considerado preciso redefinir sus alcances y condiciones para
ajustarla a las necesidades que impone el desarrollo del comercio electrónico y las
tecnologías de información y comunicación, razón por la cual esta Dirección General emite
electrónicos.
en español Lenguaje de Marcado Extensible. El formato tiene dos usos; uno representa datos a
bajo nivel, por ejemplo, configuración de archivos y el segundo agrega metadatos a los
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 22
documentos (Fawcett, Ayers, & Quin, 2012). Se define que el XML es el formato universal para
incorpora cambios sobre las facturas electrónicas, las cuales deben estar en capacidad de utilizar
firma y certificados digitales, además se deja por fuera las relaciones comerciales entre terceros y
el Estado Costarricense, hasta que este último cuente con las condiciones tecnologías necesarias
de emisión y recepción de facturas por medios electrónicos. En el 2011, por medio de la resolución
DGT-R-019-2011 se deroga el transitorio del Estado y desde ese momento se considera que el
Gobierno tiene las condiciones necesarias para recibir facturas y además, se crea un transitorio
para que se pueda hacer uso de certificados electrónicos de empresas internacionales hasta que el
La Ley 8454 fue publicada el 30 de agosto del 2005 y se conoce como “Ley de Certificados,
Gobierno que usan activamente la firma y certificados digitales para realizar sus trámites para el
público.
La última norma del tema es la DGT-R-48-2016 el 7 de octubre del 2016 conocida como
normativa es la incorporación de un código QR (en inglés: Quick Response) que permite la lectura
lo que indica es que el código QR quedó suspendido su uso en comprobantes electrónicos hasta
donde indica la obligatoriedad de los comprobantes electrónicos para los obligados tributarios, es
decir, personas físicas, jurídicas y entes colectivos. Esto lo hace por medio de la DGT-R-51-2016.
trabajar con la factura electrónica (Cordero, 2017). Luego de esta fecha han salido los primeros
obstáculos, el principal fue no poder facturar en dólares u otra moneda que fuera distinta de los
colones. Es así, como se crea la modificación por medio de la DGT-R-25-2017, que agrega la
El paso de incluir a los grandes contribuyentes para probar el sistema es una señal
destacable por parte de Tributación Directa para que las empresas que venden sistemas contables
y de facturación actualicen sus sistemas y permitan enviar y recibir datos sobre comprobantes
electrónicos.
El Ministerio continúa realizando acciones remarcables, las cuales son: la directriz DGT-
siguiente:
partir del 15 de junio de 2017, fecha a partir de la cual se aplicará la sanción establecida en
contribuyentes a partir del 15 de junio, la Dirección Tributaria estará notificando a los diferentes
notificación un máximo de seis meses para obtener un sistema con la reglamentación legal.
Por lo tanto, los negocios deben prepararse desde este momento para obtener sistemas que
cumplan con los requisitos y procedimientos definidos para emitir y recibir comprobantes
electrónicos.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 25
En la Figura 1.3 se presenta la línea de tiempo de los acontecimientos de la facturación electrónica en el país, la cual brinda una correcta
comprensión de lo sucedido:
02/2003 09/2003 08/2005 09/2007 01/2009 08/2011 09/2011 02/2016 08/2016 10/2016 02/2017 04/2017 04/2017 04/2017 06/2017
DGT-R-019-2011.
DGT-R-51-2016. 10 grandes contribuyentes de
Registro Voluntario para Modificación DGT-02-09
Obligatoriedad de los impuestos comienzan a utilizarla
Profesionales
comprobantes
Resolución DGT-22-07. electrónicos
DGT-R-14-2016. DGT.R.25.2017. Modificación
Derogada DGT-R-48-2016
Modificación DGT-02-09
Figura 1.3. Acontecimientos de la Facturación Electrónica. Adaptado de las resoluciones y leyes de publicadas en Costa Rica, 2017
A continuación, se presenta la Tabla 1.2, la cual especifica cuáles leyes y resoluciones se encuentran vigentes. Estas resoluciones son
las que regulan los comprobantes electrónicos en el país:
Tabla 1.2 – Leyes y Resoluciones vigentes sobre la facturación electrónica
Fecha de Emisión Número Ley / Resolución Tema que trata
30/08/2005 Ley 8454 Ley de Certificados, Firmas Digitales y Documentos Electrónicos
07/08/2016 DGT-R-48-2016 Comprobantes Electrónicos. Resolución Principal.
10/10/2016 DGT-R-51-2016 Obligatoriedad para el uso de los Comprobantes Electrónicos
20/02/2017 DGT-R-13-2017 Especificaciones técnicas de los comprobantes y la medida de contingencia
03/04/2017 DGT-R-21-2017 Prórroga del plazo establecido para el uso de comprobantes electrónicos
19/04/2017 DGT-R-25-2017 Regulación sobre el uso de otras monedas en facturación electrónica
Nota: La tabla 1.2 se realiza por medio del material publicado por Tributación Directa, 2017
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 26
comercialicen sistemas ERP, debido a que deberán modernizarse siguiendo estas leyes.
Este requisito legal, impacta a los proveedores de software, los cuales han tenido que
desarrollar las diferentes integraciones para cumplir con los estándares y especificaciones técnicas
brindados por Tributación Directa. La primera especificación salió en el 2007 y hasta la fecha se
han presentado siete versiones. La última es la 4.2 y es utilizada por las 10 empresas que pertenecen
Es mandatorio para Delfix, desarrollar módulos para integrar con Tributación lo referente
principal de la compañía que es Odoo. Esto debido a no cumplir con la normativa legal del país,
datos, estructuras de archivos para recepción y envío de documentos XML, instalaciones de los
Por otro lado, otra dificultad que se presenta es la modificación de los procesos actuales de
los usuarios con el uso de los sistemas de facturación, es decir, se tiene que cambiar el momento
bienes o servicios a los clientes. Esto significa que cuando se entregan los bienes se debe
de llevar la factura impresa. Cuando se presentan problemas como daños a los productos,
etc, esto conduce a generar un documento “Sucio”. Este documento deberá luego ser
Dirección Tributaria:
Nota de Crédito y Nota de Débito Electrónicas: Son los comprobantes electrónicos que
permiten anular o modificar los efectos contables de la factura electrónica o tiquete electrónico,
Otra necesidad presente en los documentos electrónicos es que deben firmarse digitalmente,
esto siguiendo lo establecido en la Ley 8454. En ella, se define que los documentos electrónicos
que se otorguen, residan o transmitan por medios físicos. (Asamblea Legislativa de Costa
La firma digital permite identificar a una persona con la autoría y la integridad del documento
firmado.
Siguiendo con la problemática, debe ser posible generar un código de respuesta rápida
conocido como códigos QR, el cual permita la lectura a través de cualquier dispositivo de captura
compatible.
Por otra parte, según el artículo 10 - Entrega y confirmación de los archivos XML al cliente
de la DGT-R-48-2016, se indica que los comprobantes deben ser generados por medio del formato
electrónico XML. Este deberá de ser enviado en el mismo momento de la compra-venta de bienes
electrónico, siendo posible enviarlo por correo electrónico como un adjunto en el formato de
documento portable (PDF por sus siglas en inglés) o ser impreso para entregar al cliente.
documentos electrónicos, aunque no se tenga conexión con el sistema del Ministerio de Hacienda.
Una vez restablecida la conexión, debe ser posible enviar los comprobantes con una leyenda que
2017)
internet. El sistema debe ser capaz de seguir facturando y cuando se restablezca la conexión enviar
Odoo pueda recibir las respuestas de confirmación o rechazo de los documentos electrónicos. En
caso de rechazo se deberá generar una nota de crédito electrónica, volver a generar una factura
para diferenciar en el sistema cuáles documentos fueron rechazados y cuáles todavía se encuentran
pendientes de corrección.
documentos, porque las anulaciones o modificaciones han de realizarse por medio de notas de
crédito o notas de débito electrónicas, obligando a dejar sin modificación el documento original y
y bitácoras de cada transacción sobre los comprobantes electrónicos, para que en caso de requerir
Para hacer frente a esta problemática se realizará el proyecto que incluye un análisis y
siguiendo las buenas prácticas del desarrollo en Odoo, para que el proyecto pueda ser replicado en
las versiones anteriores y futuras del sistema. Finalmente, se brindarán las sugerencias para el
impactarán a los clientes y al negocio una vez que entren en rigor las resoluciones.
• Se obtendrá un diseño de software del módulo de facturación para Odoo con lo solicitado
sistema.
electrónicos.
• Se brindarán detalles de seguridad y diseño con respecto del uso de la firma electrónica en
permitiendo ahorrarle tiempo al equipo de desarrollo. Esto significa que podrá arrancar con
• Se brindará un plan de pruebas por utilizar una vez desarrollado las mejoras en el sistema,
ello permitirá ahorros en tiempos para los desarrolladores, los cuales deberán realizar las
pruebas recomendadas.
información detallada del proceso que conlleva y al final se convierte en información útil
para brindar a los clientes cuando necesiten realizar el pase de facturación en papel a la
latinoamericanos.
Finalmente, cuando la Empresa implante el diseño, se obtendrán los siguientes beneficios para
electrónica.
• Credibilidad del negocio con sus clientes, al desarrollar los comprobantes electrónicos
• Aumento de ventas, debido a que muchas PYMES tendrán que cambiar de proveedor de
• Agilidad en el proceso de auditoría por cualquier ente fiscal o privado en los módulos de
facturación electrónica.
• Disminución del costo de facturación para los clientes y la empresa, debido a que los
En la siguiente sección se presenta el objetivo principal que se desea alcanzar con la realización
del proyecto y los objetivos específicos que indican qué se obtendrá en cada etapa del desarrollo
del trabajo.
El objetivo general busca responder a las siguientes interrogantes del proyecto de los
comprobantes electrónicos:
- ¿Qué se va a realizar? Se define que la realización será una propuesta de diseño de software.
- ¿Mediante qué o cómo? Son dos elementos, primero basado en la reglamentación legal del
- ¿Para qué? Se busca obtener los pasos para el diseño de software de la facturación
facturación electrónica.
electrónica.
reformas sobre los comprobantes electrónicos para obtener los requerimientos técnicos y
los datos necesarios para el envío y recepción, cuáles funcionalidades mínimas debe tener el
sistema, qué permisos deberán tener los diferentes tipos de usuario. Por otro lado, se identificarán
y no funcionales con las leyes y normativas analizadas para construir las estructuras necesarias
para que el sistema pueda funcionar con facturación electrónica. Además, se realizarán diferentes
continuidad, entre otros que deberá tener la herramienta para ser comercializada.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 34
1.6 Alcance
En la siguiente sección se detalla cada una de las partes que serán elaboradas en el Trabajo Final
de Graduación (TFG) así como las actividades que no forman parte del proyecto buscando que las
El desarrollo del trabajo se hará por medio del proceso del Ciclo de Vida del Desarrollo de
Sistemas (sus siglas en inglés son SDLC), que es parte del ciclo de vida del software definido por
Standardization [ISO], 2008) es “Esta Norma Internacional establece un marco común para los
procesos del ciclo de vida del software, con una terminología bien definida, que puede ser
[INDECOPI], 2006) como “El proceso que contiene las actividades para el análisis de los
informáticas desde un análisis de factibilidad del desarrollo hasta la entrega y aceptación por parte
del cliente. Por lo tanto, se tomará como base el SDLC y se adecuará al proyecto.
En esta actividad se define la problemática por resolver, las herramientas que se utilizarán, se
analizarán los antecedentes y la forma de alcanzar los objetivos del proyecto. Se procede a detallar
que se resolverá con el proyecto. Se debe demostrar qué pasará si el proyecto no se ejecuta.
b) Herramientas por utilizar: se definen las herramientas por usar para el desarrollo del
para proponer la solución. Con la elaboración del anteproyecto se han identificado como
formato XML, el sistema base para la integración será Odoo, la forma de sincronizar la
c) Analizar los antecedentes: esta etapa incluirá una revisión de los antecedentes de la
comprobantes electrónicos.
d) Alcance de los objetivos: se utilizará una serie de recursos para alcanzar los objetivos, como
- Capítulo I (Introducción).
La siguiente actividad define los requerimientos técnicos, administrativos y legales que debe
contar el software dictados por las diferentes leyes y resoluciones del Gobierno de Costa Rica. Se
a) Requerimientos técnicos: se desarrollará una lista de requisitos técnicos que debe cumplir
c) Requerimientos legales: se brindará una serie de requisitos legales que deberá cumplir el
entendimiento de la implementación.
a) Diseño sobre arquitectura factura electrónica: se hará un diseño a alto nivel de los
Se definen los requerimientos del sistema, los cuales saldrán de las resoluciones tributarias y las
el sistema.
b) Diferencias con el sistema: se deberán establecer las brechas de las funcionalidades para
determinar cuáles se han de desarrollar y cuáles solo deben adaptarse. Cuando se dice
desarrollar significa que es una funcionalidad que no existe en el sistema, por otro lado, si
análisis de los requisitos de software. En esta etapa se describirá la estructura en un alto nivel y se
necesarios que deberá tener el sistema, los cuales podrían ser campos nuevos,
b) Mapeo de las funcionalidades: se deberá mapear qué requisitos obtenidos han sido
contemplados en el diseño.
- Tabla del mapeo de funcionalidades del Odoo con los requerimientos obtenidos.
En esta actividad se realizará un diseño detallado del software. Se actualizará el plan de pruebas
para las siguientes etapas. Además, realizar un prototipo no funcional. Se procede a detallar la
actividad:
a) Diseño detallado del software: en esta tarea se preparará un diseño detallado para cada
componente del software por medio de UML. Se deberá verificar que exista trazabilidad
hacia los requisitos del software y consistencia con las arquitecturas del sistema y software.
b) Plan de Pruebas: se realizará el plan de pruebas para indicar que tipo de pruebas se deberán
7) Plan de implementación.
En esta actividad se entregan los pasos que deberán realizar para concluir el proyecto siguiendo el
proceso SDLC. En esta tarea se obtendrán las conclusiones y recomendaciones enfocadas en guiar
a los desarrolladores una vez concluido el proyecto. Por otro lado, se brindará un cierre académico
a) Plan de implementación: se realizará un documento con los pasos por seguir para la
documentación desarrollada y las pautas para continuar con el desarrollo, pruebas y puesta
en operación.
- Se habrá alcanzado el objetivo principal que es: Elaborar una propuesta de diseño de
- Plan de implementación. Se entregará un documento con el plan por seguir para realizar el
Continuando con SDLC se describe qué actividades no se llegarán a hacer en el TFG según
INDECOPI (2006):
- Codificación y pruebas del software: En esta etapa se debe desarrollar cada componente,
realizar los procedimientos de pruebas y luego proceder a probar cada unidad de software.
- Integración del software: Se debe realizar el plan de integración para cada componente de
- Pruebas de calificación de software: Se deben evaluar el diseño, el código, las pruebas, los
- Integración del sistema: Se deben integrar los elementos de software con los elementos de
- Pruebas de calificación del sistema: En esta etapa se debe probar el sistema con cada
- Soporte a la aceptación del software: Se debe dar apoyo a las revisiones y pruebas de
1.7 Supuestos
En esta sección se detallan factores que se cumplirán durante la realización del trabajo.
En el desarrollo del proyecto de graduación, se estima que los siguientes elementos serán de
entre los miembros del equipo de trabajo. Por otra parte, coordinará y autorizará entrevistas
1.8 Entregables
En la siguiente sección se listan los entregables que tendrá el proyecto. Se identifican tres clases
En el siguiente apartado se brindarán los entregables de la gestión del proyecto. La gestión del
proyecto se puede definir como actividades o entregables que funcionan para llevar el control del
proyecto en sí.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 44
1.8.1.1 Minutas
Se elaborarán minutas de las reuniones que se tengan con los diferentes interesados del proyecto,
donde se señalarán los temas tratados y se dejará por escrito las tareas por realizar. Antes de
cualquier reunión se debe leer la minuta anterior para definir si se cumplieron los trabajos
planteados.
El cronograma de proyecto sirve de apoyo para las fechas de entrega de los productos, además será
un documento de control de avance. Las actividades que se incluyen son los entregables
El documento de solicitudes de cambios cuenta con el objetivo de llevar un mejor control sobre
los cambios que se realizan durante el desarrollo del proyecto. Además, dentro de este documento
“Una propuesta formal para modificar cualquier documento, entregable o pedir un cambio
Se realizará todas las semanas un informe sobre el estatus del TFG y se enviará al profesor asesor
El anexo cuatro corresponde al formato del informe semanal por utilizar en el proyecto.
En el siguiente apartado se detalla los entregables en cuanto al producto del proyecto. El desarrollo
desarrollar correctamente la integración del sistema de Odoo con el sistema de Tributación Directa
El negocio recibirá los siguientes entregables, los cuales correspondiente a los objetivos
específicos:
electrónicos.
DGT-R-48
facturación electrónica.
El informe final tiene fines académicos que pretenden desarrollar y detallar el proceso de
investigación, análisis, diseño y obtención de los resultados a través de la realización del proyecto
final de graduación.
- Capítulo 1 Introducción.
- Capítulo 6 Conclusiones.
- Capítulo 7 Recomendaciones.
- Apéndices.
- Anexos.
- Referencias bibliográficas.
1.9 Limitaciones
En esta sección se detallan las restricciones o limitaciones que podrían afectar la realización del
proyecto.
Durante el desarrollo del proyecto, habrá posibles factores que pueden afectar en el proceso, a
continuación, se mencionan.
2. Disponibilidad o apoyo del equipo de trabajo para aclarar dudas, emitir criterios técnicos
sistema Odoo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 48
2. Capítulo 2
Marco Teórico
Este capítulo brinda la información teórica necesaria para desarrollar el trabajo. Inicialmente se
legal de la facturación electrónica en Costa Rica. Se proseguirá con una explicación de elementos
necesarios para la facturación electrónica como: el metalenguaje XML, la firma digital y los
software, requerimientos y diseño de sistemas informáticos. Esto con el propósito de presentar los
elementos necesarios para un diseño de software de los comprobantes electrónicos en Costa Rica.
La facturación electrónica se puede definir según Koch (2017) como: “La emisión y recepción de
facturas conformes con el IVA en formato electrónico” (p. 8). Está definición tiene elementos
claves para determinar si se está utilizando la figura de facturación electrónica. El primer elemento
documento electrónico y el fisco del país recibe, revisa y aprueba o rechaza el documento.
El otro elemento de la definición sería que los documentos cuentan con IVA (impuesto al
(productos y servicios exentos) hasta en algunos países alrededor del 30%. La definición menciona
que los documentos deben estar conformes con el IVA, es decir, los documentos deben emitirse
con los impuestos legales del país, un documento que no tenga IVA no se categoriza como una
factura electrónica, un ejemplo son los recibos que realizan los bancos por las transacciones.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 49
electrónicos son: EDIFACT, XML, PDF, HTML, doc, xls, jpeg, csv; sin embargo como menciona
Pimentel (2014): “El tipo de formato electrónico de la factura no es relevante, sino únicamente el
hecho de que la factura presente un formato electrónico cuando sea expedida y recibida” (p. 12).
En el estudio realizado por Koch (2017) los países latinoamericanos son líderes en el
desarrollo de la factura electrónica en el mundo en conjunto con Asia y el oriente de Europa. Los
países más sobresalientes en este campo en la región son: México, Brasil y Chile. América Latina
evitar la evasión.
los líderes son: Noruega, Suecia y Dinamarca. Los líderes en Asia son: Singapur, Hong Kong,
Figura 2.1 - Madurez de la Facturación Electrónica en el mundo. Tomado de Koch (2017) que indica lo
siguiente: “El término "Rezagado" en la figura no significa que no haya actividad de facturación electrónica en estos
países, simplemente expresa que se encuentran en una etapa muy temprana. El término "Desarrollando" significa
que los países ya tienen algunas actividades de facturación electrónica, normalmente en el segmento B2C y / o EDI
El ente que regula lo referente a impuestos y tributos es el Servicio de Impuestos Internos de Chile
(las siglas son SII). Según Rodríguez (2015) “SII generó el primer proyecto de facturación
31 de enero del 2014 fue publicada la Ley 20.727, lo cual vuelve obligatorio el uso de la factura
Internos de Chile [SII], 2017, pág. 10). La implantación se realiza de manera paulatina y se realiza
Nota: Tomado de (Rodríguez Chicaiza, 2015, pág. 89). Fuente del autor, Servicio de Impuestos Internos, Calendario
según el tamaño de empresas. La Unidad de Fomento (UF) es una unidad financiera ajustable de acuerdo con la
electrónicos. Según explica García (2012) “a partir del 2011, la factura electrónica en México pasa
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 51
de ser optativa a obligatoria, con un objetivo primario: reducir las brechas de evasión que se
a diferencia de otros países, es que solo proporciona el estándar tecnológico por utilizar, pero no
brinda una herramienta global para las pequeñas y medianas empresas de manera gratuita (Vera
Según el último análisis sobre impacto sectorial del uso de Factura Electrónica en México
realizado en octubre 2016, se obtuvo el porcentaje de facturas al año de las empresas, se puede
apreciar en la Figura 2.2. En este estudio se concluye que se generan 501 millones de facturas
2%
25%
28%
11%
34%
Figura 2.2. Volumen de Facturación en México. Basado en los datos de (Asociación Mexicana de Proveedores
El informe agrega que el 96% de las facturas electrónicas son procesadas por proveedores
Esta nación según indica Rodríguez (2016) es el país que tiene la tasa más alta de penetración en
En Brasil a las facturas se les denomina Nota Fiscal. En el caso de la facturación electrónica
el nombre correcto sería Nota Fiscal Electrónica. La definición legal es cuando el documento es
servicio, la validez estará garantizada por la firma digital del emisor y por la autorización de la
representación digital de la factura. Se debe agregar como menciona Torres (2013) que “El emisor
y el destinatario deben almacenar las Notas Fiscales Electrónicas en archivos digitales de libre
elección” (p. 14). Brasil es un país con una legislación desarrollada en facturación electrónica y es
2003, se publicó la primera resolución número 04-03, desde ese momento a la fecha el proceso ha
sido largo y se han publicado cuatro resoluciones y siete especificaciones técnicas y estructuras
XML. Se recomienda visualizar la Figura 1.3 que muestra los acontecimientos de la facturación
electrónica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 53
El ente encargado para dictar las normas tributarias y la fiscalización del cumplimiento de
las obligaciones tributarias recae sobre la Dirección General de Tributación, según lo estipulado
versión 4.2 que entra a regir el primero de octubre del 2017. Actualmente se encuentran utilizando
y probando el sistema las 10 empresas más grandes del país, además de las empresas que
Informática a partir del 02 de abril y finalizando con varios sectores para el 01 de mayo del 2018.
(2016) es “Archivo electrónico en formato XML que cumple con los requisitos legales y
reglamentarios establecidos en la presente resolución, para las facturas, tiquetes, notas de crédito
Está definición trata de enmarcar los elementos necesarios para la emisión de facturación
electrónica. El primer elemento es la definición del formato, más adelante se definirá y explicará
qué son documentos XML. El segundo elemento y más importante define que se deben cumplir
Está resolución es amplia en comparación con las primeras que se habían publicado del
tema. Los principales artículos son la autorización de usar comprobantes electrónicos, la validez
jurídica, la forma de la numeración que debe ser consecutiva y no alterable, la aclaratoria del uso
de los anexos y especificaciones técnicas, los requisitos de los comprobantes electrónicos, envío,
contingencia, las diferentes imperativos de los obligados tributarios, requisitos de los sistemas para
la emisión de comprobantes electrónicos, la libre elección del sistema por utilizar para los
principalmente a la evasión de impuestos, pero como indican Cruz y Zamora (2013) también por
otras razones:
El hecho de que las facturas sean digitales es un cambio no solo en el estilo de hacer
comercio, sino también, es una forma que responde a las nuevas necesidades de la
ambiental, la eliminación del papel implica, entre otros aspectos. (p. 62)
permite utilizar dos medios para este fin, el primero es por medio de una firma digital, la cual
identifica al firmante y verifica la integridad del mensaje. El otro es la llave criptográfica del
pág. 4). El obligado tributario tendrá que elegir uno de los métodos para garantizar la autenticidad
factura electrónica, tiquete electrónico, nota de crédito electrónica y nota de débito electrónica.
Las facturas se dan principalmente entre el comercio entre empresas, mientras que el comercio
entre empresas y personas se utiliza el tiquete electrónico. Cualquier error en ambos documentos
solo podrá ser anulado o cambiado por medio de nota de crédito o débito según el caso.
La Dirección General de Tributación indica las tres figuras que existen para los obligados
D-140 que es la declaración de inscripción, modificación de datos y descripción del registro único.
sistemas informáticos deben ser capaces de enviar y recibir los comprobantes electrónicos.
y las empresas en regímenes especiales como zonas francas, que compran productos, pero
categoría especial para las compañías que desean ofrecer de manera gratuita los servicios
Los requisitos mínimos que deberán contener los comprobantes electrónicos están en el
- Clave numérica.
- Fecha de emisión del documento.
- Hora de emisión.
- Condiciones de la venta: crédito, contado, apartado, en consignación, arrendamiento con
opción de compra o cualquiera otra.
- Medio de pago: tarjeta, efectivo, cheque, transferencia o cualquier otra.
- Normativa vigente: “Autorizada mediante resolución N.º DGT-R-48-2016 del 7 de octubre
de 2016”.
- Los documentos pueden ser redactados en cualquier idioma.
- Detalle de la mercadería o servicio.
- Descuentos concedidos.
- Subtotal en moneda nacional o extranjera.
- Monto del impuesto Selectivo de Consumo.
- Valor de los servicios o mercaderías, separando los gravados de los exentos.
- Precio neto de venta, sin incluir el Impuesto General sobre las Ventas.
- Monto del Impuesto General sobre las Ventas.
- Valor total de la factura.
- Moneda extranjera en la que se realizó la transacción, solo si aplica.
La ley tipifica también tres situaciones que se podrían llegar a darse con los comprobantes en
el artículo 9. La primera son comprobantes con una situación normal: estos corresponden a los
sería contingencia: comprobantes que sustituyen al comprobante físico, el cual fue realizado
conforme con lo estipulado en el artículo 15. Finalmente, la tercera situación que se encuentre sin
internet el obligado tributario: estos comprobantes se realizaron, pero no se tenía internet para
En octubre del 2005 se publicó la ley 8454 conocida como Ley de Certificados, Firmas Digitales
y Documentos electrónicos. Esta ley regula lo referente al comercio electrónico, así como las
Entre las regulaciones principales se encuentra la del artículo 3 que trata del
transmitida por un medio electrónico o informático, se tendrá por jurídicamente equivalente a los
documentos que se otorguen, residan o transmitan por medios físicos” (Asamblea Legislativa de
Por lo tanto, esta ley facultaba a cualquier empresa la posibilidad de realizar trámites como
la facturación electrónica, pero la ley no aclara los mecanismos para realizarlo. Debido a esto, es
una obligación del Estado costarricense promulgar leyes que regulen los documentos electrónicos
y su aplicación práctica (Quirós Rohrmoser, 2007). Este vacío legal fue resuelto con la norma
permita verificar su integridad, así como identificar en forma unívoca y vincular jurídicamente al
autor con el documento electrónico” (Asamblea Legislativa de Costa Rica, 2005). Además, indica
que debe ser emitido por un certificado digital vigente. La autoridad encargada de emitir
técnicamente:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 58
digital asociada.
d) Las demás que establezca esta Ley y su Reglamento. (Asamblea Legislativa de Costa
al firmante del mensaje o transacción, contiene la clave pública del firmante y contiene a
que hace la entidad de certificación, como resultado de la verificación que efectúa sobre la
para generar la firma digital. En la Figura 2.3. se aprecia la tarjeta y el dispositivo, el lector
Figura 2.3. Firma Digital Costa Rica.Tomado del sitio del Gobierno de Costa Rica. (GobiernoCR, 2015)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 59
La llave criptográfica es otra posibilidad que pueden usar las empresas en lugar de utilizar la firma
electrónica. Está no tiene costo y es sencilla de obtener desde el sitio web habilitado por el
Ministerio de Hacienda.
La criptográfica es explicada por González (2004) como: “el arte de escribir en secreto, de
transformar un texto simple a un párrafo ilegible con lo que se asegura que solo la persona que
tenga la llave para leer el mensaje lo hará” (p. 24). La llave criptográfica presentada por el
Ministerio es comparable con la firma digital, sin embargo, está únicamente tiene validez
tributaria.
Para obtener la llave, basta con ingresar a la página web de la Administración Tributaria
Virtual (sus siglas, ATV) y se podrá descargar la llave a nivel de pruebas y a nivel de producción.
En el momento de la generación se solicitará ingresar un pin numérico, el cual junto con la llave
Por lo tanto, para firmar los documentos electrónicos será posible realizarlo por medio de
la firma digital obteniendo a través del Banco Central o sus afiliados o se podrá realizar por medio
de la llave criptográfica provista por el Ministerio de Hacienda, la decisión puede radicar en:
costos, respaldos legales, facilidad de implementación, cantidad de facturas por minuto y cantidad
El formato para los documentos electrónicos es XML definido como un lenguaje de etiquetas para
representar los datos de manera estructurada. Según la Dirección General de Tributación (2016)
electrónica que se deberá emitir en Costa Rica. Los documentos cuentan con la etiqueta de qué
documento electrónico se está enviando, en este caso una factura electrónica y por medio de los
nodo en el ejemplo serían clave, número consecutivo, emisor, nombre y así cada apertura y cierre
usando los símbolos de mayor y menor (Ejemplo: <nombre del nodo> Detalle </cierre del
nodo>).
Figura 2.4. Estructura XML. Formato del encabezado en XML de una factura electrónica. Fuente: Elaboración propia
y los mensajes de aceptación y rechazo. Los esquemas XML (en inglés, XML Schema) describen
la estructura de un documento XML y son conocidos como XML Schema Definition, la extensión
de estos archivos son las iniciales: XSD (World Wide Web Consortium [W3C], s.f.).
Las ventajas de utilizar los esquemas XML son: definir los tipos de datos, describir el
contenido permitido, delimitar restricciones a los datos, facilita definir tipos complejos y formatos
de datos, siendo ideal para proyectos que buscan tener una especificación clara y concreta. Es
decir, los esquemas brindan la estructura que tiene que contener un documento XML, el cual se
puede validar con ese esquema y si tiene algún error u omisión, se mostraría.
XML de cada documento electrónico y sus respuestas de aceptación y rechazo que espera recibir
el sistema tributario.
2.3.4 HTML
Cuando se construye una página web se hace por medio del lenguaje de marcas de hipertexto
(HTML - HyperTex Markup Language). Esto fue creado por británico Tim Berness-Lee en 1990.
El objetivo de HTML era que los científicos pudiesen compartir, intercambiar y acceder a
Además, Cruz y Velázquez (2015) indican que el HTML fue complementado por las hojas
de estilo en cascada o CSS (cascading style sheets), donde la utilidad radica en dotar de una mejor
2.3.5 HTTP
El protocolo denominado Hypertext Transfer Protocol (HTTP) es el método más usual para
intercambiar información en internet, al transferir las páginas o servicios web que provienen de un
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 62
servidor hacia un cliente. Este protocolo fue desarrollado por el World Wide Consortium (W3C)
y Internet Engineering Task Force (IETF). (Guillermo & Dávila, 2013, pág. 23)
Las características del protocolo HTTP son detalladas por Bautista (2013) como:
cadena de caracteres.
Internet).
(Multipart Internet Mail Extension) que proporcionan una representación de los datos y
- Existen ocho verbos que permiten que un cliente pueda dialogar con el servidor, pero los
tres verbos más utilizados son: GET, para recoger un objeto, POST, para enviar
- Cada operación HTTP implica una conexión con el servidor, que es liberada al término
de esta.
El servidor trata cada petición como una operación independiente del resto. (p. 10)
Un servicio web es un protocolo de comunicación entre dos o más aplicaciones o páginas web. De
manera formal es definido por Rodríguez (2016) como: “componentes de software cuya función
(incluso otros servicios web) a través de redes como por ejemplo Internet” (p. 10)
Por lo tanto, la forma que definió el Ministerio de Hacienda para enviar los comprobantes
electrónicos es por medio de servicios web, debido a la facilidad y escalabilidad que brinda este
protocolo.
Los tipos de servicios web más comunes son: Llamadas a procedimientos remotos (RPC -
El Ministerio de Hacienda define que el web service que se utilizará será el REST.
2.3.7 REST
Se puede definir que REST es un estilo de arquitectura de software que permite tener
sistemas distribuidos por el mundo, consumiendo estos servicios. Por lo tanto, está arquitectura
favorece obtener sistemas desacoplados. Además, Navarro (2007) indica que estos servicios
intentan emular el protocolo HTTP utilizando operaciones estándar como GET, PUT, POST,
DELETE.
tratarse cuando se trabaja en Internet. Los clientes y servidores pueden ser puestos
en funcionamiento durante años. Por tanto, los servidores antiguos deben ser
extensibilidad mediante el uso de las cabeceras, a través de las URIs, así como de
son varios tipos de proxys para Web. Algunos de ellos, las caches, se utilizan para
formato XML desde sistemas muy variados, con lenguajes y protocolos distintos, debido a esto
utilizar servicios web basado en REST permitirá no estar atado a una tecnología en particular y
Por lo tanto, los obligados por la ley de facturación electrónica deberán contar con un
sistema informático que permita generar y enviar estos comprobantes al Ministerio utilizando los
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 65
servicios web. Estos sistemas pueden ser sistemas simples de facturación o completos conocidos
Los sistemas de planificación de recursos empresariales (ERP por sus siglas en inglés, Enterprise
Resource Planning) son según Ramesh citado por Recio (1998) una “solución de software que
trata las necesidades de la empresa tomando el punto de vista de proceso de la organización para
Otra definición de los ERP la brinda Pastor (2008) la cual indica que es: “la parte neurálgica
central de donde emanan todas las decisiones de la empresa y desde donde se gestionan todos los
Los sistemas ERP son cada vez más usados en las compañías, esto porque el costo de los
sistemas ha disminuido y los beneficios resultantes para los negocios suelen ser altos. Lo anterior
organización.
Los sistemas ERP están enfocados en brindar decisiones a los negocios de manera más
transparente y rápida, es decir, tener la información en el momento que se necesita y por otro lado,
brindan las herramientas necesarias para que los colaboradores puedan trabajar de mejor manera,
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 66
manera “permiten controlar los diferentes procesos de la compañía entendiendo que todos los
departamentos de una empresa se relacionan entre sí, es decir, que el resultado de un proceso es
punto de inicio del siguiente” (p. 11). Los sistemas ERP están a lo largo del proceso de una
compañía, se trata de eliminar islas de información entre los diferentes departamentos, por
ejemplo, si una empresa realiza una cotización de ventas para un cliente y este la aprueba, el
departamento de almacenes e inventarios tendrá una alerta para despachar ese producto y una vez
La otra característica de un ERP es que son adaptables, esto significa según Hernández y
Vega (2009) que “los ERP están creados para adaptarse a la cultura organizacional de cada
empresa. Esto se logra por medio de la configuración o estandarización de los procesos de acuerdo
con las salidas o entradas de información que se necesite para cada módulo” (p. 7). Está
característica se debe entender como la posibilidad de trabajar con un sistema ERP de una manera
distinta de otra compañía, un ejemplo de esto sería cuando una empresa usa números de lote o
serie para sus productos y otra compañía no. Pueden usar el mismo sistema y dedicarse a lo mismo,
pero una organización tiene mejor desarrollado el proceso de inventarios que la otra.
La última característica de los sistemas ERP es la modularidad, esto significa que los
sistemas tienen un conjunto de módulos, los cuales son independientes entre sí, pero a la vez están
comunicados, la salida de un módulo es la entrada del otro (Benvenuto, 2006). Esta característica
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 67
permite la flexibilidad de estos sistemas. Los módulos principales son contabilidad, ventas,
definidas anteriormente. Según Mogrovejo (2017) “tiene sus orígenes en una versión inicial
denominada TinyERP desarrollada por la compañía Tiny SPRL, fundada en 2005. En el 2008
cambian el nombre con la finalidad de realizar un homenaje a su licencia libre y filosofía de código
incorporación de distintos módulos como carrito de compras, desarrollo para página web y
funcionalidades normales de un sistema ERP y siendo más bien un amplio sistema de aplicaciones.
El nombre anterior reflejaba solamente un ERP que era Libre. En cambio, la propuesta de Odoo,
tiene más de 10.000 módulos para adaptar y satisfacer las necesidades de cualquier compañía.
nombres de las empresas más grandes de internet, donde se descubre una relación entre la
Yahoo, tienen dos ‘o’ en sus nombres, el tener tres en Odoo es una forma ambiciosa por parte de
open source, una forma de describir lo que significa sería “el beneficio y ventaja principal del
código abierto radica precisamente en su nombre: disponibilidad del código fuente. Desde el punto
de vista del desarrollador esta constituye una alternativa óptima para entender sistemas complejos
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 68
y aplicar código aprendido en futuras soluciones” (Ortiz & Abad, 2009, pág. 2). Esto beneficia la
eficiencia del código y usabilidad, permitiendo recibir comentarios y contribuciones para corregir
Es necesario distinguir que el código abierto es diferente al software libre. El software libre
busca mantener las cuatro libertades básicas, las cuales son: libertad de ejecutar el programa,
libertad de distribuir copias de versiones modificadas a terceros (Free Software Foundation, 2001).
Por lo tanto, no todos los sistemas de código abierto son software libre, debido a las restricciones
Se puede mencionar que ambos sistemas favorecen el compartir su código fuente, pero
tienen filosofías distintas según explica Richard Stallman creador del proyecto GNU:
social. Para el movimiento del software libre, el software libre es un imperativo ético,
respeto esencial por la libertad de los usuarios. En cambio, la filosofía del código abierto
práctico. Sostiene que el software privativo no es una solución óptima para los problemas
En el caso de Odoo, se cuenta con dos licencias de código abierto. La primera es para sus
productos para la comunidad (empresas que no pagan servicios adicionales por el uso del sistema)
la LGPLv3 (GPL reducida), que permite utilizarlo con programas privativos. Estos programas
texto, los cuales se enlazan con Odoo y no están obligados a mostrar su código fuente.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 69
La otra licencia que usa Odoo es para sus productos Enterprise (corporativos), llamada
Odoo Enterprise Edition License v1.0. Está licencia brinda las libertades de mostrar el código
fuente, realizar modificaciones al sistema, ejecutar el programa oficial y también poderlo ejecutar
luego de realizarse modificaciones siempre que se tenga una suscripción valida en Odoo Enterprise
con la cantidad correcta de usuarios. La licencia prohíbe publicar, distribuir o vender copias del
La versión comunitaria difiere de la corporativa por los servicios que brinda Odoo con
respecto de sus productos. En la Tabla 2.2 se muestra las diferencias entre ambas versiones.
Actualización de versiones No Sí
Soluciones de errores No Sí
Versión Web Sí Sí
Versión Móvil No Sí
de Odoo Studio
Contabilidad Avanzada No Sí
Módulos Avanzados No Sí
Nota: Tomado de (Delfix Tecnosoluciones, 2016), muestra las diferencias de las ediciones de Odoo.
La empresa Odoo cuenta con tres niveles de certificación de sus representantes oficiales:
Ready Partner estas empresas están iniciando en el ecosistema del producto, Silver Partner
negocios que cuentan con experiencia vendiendo el sistema y Gold Partner organizaciones claves
en las implementaciones del sistema alrededor del mundo, es el nivel más prestigioso en Odoo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 70
2.5.1 Python:
La versión 10 de Odoo utiliza como lenguaje de programación principal Python. Este lenguaje es
de alto nivel, lo que significa que para que la computadora pueda entenderlo y seguir las
instrucciones programadas tiene que realizar un proceso de conversión, cuando los lenguajes
necesitan de este proceso se les conoce como lenguajes interpretados (Downey, Elkner, & Meyers,
2002).
Este lenguaje fue creado por Guido van Rossum a finales de los 80, la versión de Python
2.0 fue publicada en el 2000 y se lanza la versión 3.0 en diciembre del 2008 (Challenger-Pérez,
Díaz-Ricardo, & Becerra-García, 2014). Odoo en su versión 10 utiliza Python 2.7.9, la versión 3.0
Además, según el libro realizado por el creador de Python Guido van Rossum, dice lo
junto con su naturaleza interpretada, hacen de éste un lenguaje ideal para scripting y
2.5.2 PostgreSQL
En el caso de la tecnología para la base de datos, el sistema Odoo utiliza PostgreSQL. Esta
desarrollado por la Universidad de California; la versión 9.5 es la última y fue lanzada en febrero
del 2016. Es utilizada por empresas como la NASA, Apple, Skype, Cisco, Red Hat (Villafuerte,
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 71
2016). Esta base de datos es un sistema de código abierto y según Narváez (2014) es “considerado
el motor de código abierto más potente del mercado y sus características y prestaciones
últimas versiones, se encuentran a la par de las que poseen opciones comerciales como Oracle y
PostgreSQL es un sistema que está disponible para sistemas operativos como Windows,
Red Hat, Fedora, Debian, Ubuntu, entre otros muchos. Además, se cuentan con gestores gráficos
para administrar las bases de datos de una forma sencilla, uno se llama pgadmin y el otro
pgpoolAdmin, aunque se cuenta con una gran variedad de gestores. La versión recomendada para
Siguiendo con las tecnologías que utiliza Odoo otra sería el lenguaje XML. A nivel técnico
se define como: “un lenguaje de representación de datos que busca dar solución al problema de
expresar información estructurada de la manera más abstracta y reutilizable posible. Para esto,
hace uso de elementos los cuales se señalan a través de etiquetas” (Rodríguez Cruz, 2016, pág. 9).
Con el lenguaje XML es posible desarrollar la parte de visualización del sistema. Odoo por
XML a una página web, que sería lo que visualizaría en el navegador web (Moss, 2015). A parte
de las visualizaciones, los archivos XML son utilizados para guardar información o datos, para
reportes y para transporte de datos por medio de servicios web necesarios para la facturación
electrónica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 72
Odoo permite desarrollar también aplicaciones móviles y web a la medida por medio de lenguaje
de programación JavaScript. Además, permite la conexión del sistema por medio de servicios web
(en inglés: Web Service) a otros sistemas o programas, el protocolo principal para las conexiones
Según The Linux Documentación Project (TLDP) (s.f.) se puede definir el protocolo XML-
RPC como: un forma sencilla y portátil de realizar llamadas a procedimientos remotos a través de
HTTP. Además, este protocolo permite que se ejecute en sistemas operativos distintos.
En el caso del Ministerio de Hacienda, este define que el protocolo Web a utilizar debe ser el
REST. Será necesario utilizar alguna librería en Python que brinde conexiones por medio del
protocolo REST.
Controller), el principal objetivo es separar la lógica del negocio con los datos y además, con la
visualización (Moss, 2015). En la Figura 2.5 se muestra la relación de las tecnologías con respecto
del modelo MVC. También se debe mencionar que la estructura de Odoo es cliente/servidor, lo
cual significa que: “el servidor maneja la lógica de negocio y se comunica con la base de datos
independientemente del cliente que muestra la información a los usuarios y les permite
Odoo aprovechó su modelo MVC para facilitar el desarrollo a los programadores en las
campos y funciones en la vista modelo y el sistema se encarga de hacer las tablas y campos en la
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 73
base de datos por medio de la funcionalidad del modelo objeto relacional (ORM – object relation
model).
En el caso de la capa vista, que se refiere a la interfaz del usuario, el programador debe crear
un documento XML para mostrar los campos en la interfaz del sistema. La lógica del negocio se
realiza por medio de archivos Python, donde se construyen las funciones necesarias para la
Figura 2.5. Relación Tecnologías utilizadas en Odoo con MVC. Representación básica del MVC con respecto
oro indica que no se deben modificar directamente los módulos. Es considerado una mala práctica
y especialmente en los módulos oficiales de Odoo. Esto no permitirá una clara separación entre el
módulo original y las modificaciones nuevas, dificultando las actualizaciones en el sistema. (Reis,
2015)
deben realizarse utilizando el parámetro _inherit, lo cual permite heredar así los métodos y
atributos de ese módulo y facilitar modificaciones en cualquier nivel: modelos, vistas y lógica del
originales del sistema para cumplir con la nueva legislación de Costa Rica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 74
La facturación electrónica en el mundo es una realidad, por lo tanto, los diferentes software se han
preparado para brindar soluciones a sus clientes. En el caso de Odoo, la casa matriz ha desarrollado
herramientas para que sus partner (distribuidores oficiales) y empresas locales desarrollen los
módulos necesarios para conectar con el ministerio de impuestos de cada país. Por lo general,
Odoo no desarrollará los módulos necesarios en cada país, esta responsabilidad recae sobre los
proveedores oficiales.
En términos prácticos los desarrollos obligatorios que necesita Odoo para funcionar en la
legislación de un país se les conoce como localización. Por lo tanto, para Costa Rica se debe
establecer módulos de localización para que funcione la facturación electrónica. En Odoo los
principales desarrollos son compartidos por medio de una plataforma llamada Github, que permite
encargarse del control de versiones de un software y facilita compartir el código entre los diferentes
usuarios que tengan acceso a la rama (dirección donde se alberga el código fuente). La otra forma
de compartir módulos es por medio de la página oficial de Odoo para las aplicaciones en la
dirección apps.odoo.com, a pesar de que todos los módulos son de código abierto, una gran parte
tiene precios de venta para que los usuarios puedan descargar y utilizar esas aplicaciones.
sistema Odoo. Por lo tanto, es obligatorio para los clientes de este producto tener está herramienta
en los próximos meses, sino será necesario buscar sistemas alternativos para cumplir con los
requisitos legales en el país. Para conectar el sistema de Odoo con el Ministerio de Hacienda se
deben desarrollar módulos en el sistema y contratar una empresa que sirva de intermediario entre
ambos sistemas y por medio de servicios web se encargue de conectar y enviar la información
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 75
correspondiente. Los clientes deben pagar por este tipo de servicios por cantidad de facturas; a
El proyecto se centrará en desarrollar los módulos nativos en el sistema para conectar con
representantes oficiales del producto, siendo México el país con más representantes. En la Tabla
2.3 se aprecia cuántos representantes oficiales se tienen por país. En el caso de Costa Rica se
tienen seis representantes, entre esos Delfix Tecnosoluciones, quien es Gold Partner del producto.
matriz en comprobantes electrónicos hasta la versión 11, la cual fue lanzada el 4 de octubre del
2017. El desarrollo realizado fue para México. Según Louis (2017) se han elaborado tres reportes
campo y desarrollo de la facturación electrónica no es amplia, como en otros módulos que tiene el
sistema.
han sido creados por las empresas que venden los servicios de Odoo en la región. Entre estos se
encuentra el realizado en Chile por la empresa BMA, el cual está disponible hasta la versión 9 del
sistema. Por otro lado, en Argentina se tienen varias empresas que han desarrollado los módulos
necesarios para cumplir con la legislación. Una fue desarrollada por la empresa argentina
Ingeniería Adhoc, actualmente es desarrollada para la versión 8 y 9 de Odoo. Por otro lado, se
tiene un grupo llamado proyecto Aconcagua, sus desarrollos están enfocados en la versión 8 y
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 76
finalmente, el otro proyecto llamado “Otra Localización Argentina de Odoo”, son desarrollos
Bolivia 3 2 Honduras 3 2
Brasil 13 9 México 32 23
Chile 4 3 Nicaragua 4 3
Colombia 10 7 Panamá 6 4
Cuba 1 1 Perú 10 7
Ecuador 5 4 República 9 7
Dominicana
El Salvador 1 1 Uruguay 7 5
Guatemala 7 5 Venezuela 3 2
En el caso de Ecuador, también cuentan con los desarrollos para los comprobantes
herramienta Github, en la localización del país. Brasil es otro país que tiene diseñados los módulos
necesarios para la facturación electrónica y están desarrollados para la versión 8, 9 y 10 del sistema
Odoo.
Por otro lado, países como Colombia, Perú, Guatemala y Uruguay no tienen los módulos
necesarios para utilizar Odoo con comprobantes electrónicos, es posible que existan aplicaciones
desarrolladas, pero serían privados y sin posibilidad de determinar en qué estado de madurez se
encuentran.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 77
sistema Odoo, hace necesario realizar un módulo a la medida que contemple los requisitos de la
resolución del Ministerio de Hacienda. Debido a esto, se expone una serie de conceptos para
Estos están dados desde la concepción del sistema hasta el mantenimiento. Una definición formal
la brinda IEEE Computer Society (2014) indica: “La aplicación de un enfoque sistemático,
aplicación de la ingeniería del software” (p. xxxi). Otra definición es la brindada en el Systems
and Software Engineering Vocabulary (SEVOCAB) (s.f) definido como: “La aplicación
La ingeniería de software abarca tres elementos que son: proceso, métodos y herramientas.
El proceso del software es la base para la gestión de los proyectos de software y establece el
contexto para los métodos técnicos, además de asegurar la calidad del producto. Los métodos son
los encargados de definir cómo se realizará el software. Finalmente, las herramientas proporcionan
el soporte automático o semiautomático para el proceso y los métodos. (Pressman, 2014, pág. 12)
programa. Por lo tanto, es necesario seguir un proceso sistemático, el cual debe tener cómo mínimo
El análisis es la primera etapa para el desarrollo de software, la cual inicia cuando se intenta
Se prosigue brindando una solución al problema, por lo general, se tienen varias opciones y se
selecciona la considerada como mejor. El siguiente paso sería programar o desarrollar la solución
que se había considerado idónea para ese problema y finalmente, se realizan pruebas para
Formalmente, se define como el proceso del Ciclo de Vida del Desarrollo de Sistemas (sus
siglas en inglés, SDLC) en la ISO/IEC 12207:2008 y la definición del proceso sería: “El proceso
que contiene las actividades para el análisis de los requerimientos, diseño, codificación,
integración, pruebas e instalación y aceptación relacionadas con los productos software” (ISO,
Las normas ISO definen ampliamente el proceso de desarrollo, esto porque es concebida
para ser adaptada a cualquier necesidad. La norma se basa en dos principios: modularidad y
responsabilidad. El primero busca conseguir procesos con un mínimo acoplamiento y una máxima
cohesión. Mientras el segundo, se enfoca en tener un responsable para cada proceso. (Pacheco,
2017)
Para desarrollar cualquier proyecto de diseño de software es necesario realizar antes un proceso
necesita resolver. Una forma de definir esto es la mencionada por Sommerville (2015):
Los requerimientos para un sistema son descripciones de lo que el sistema debe hacer: el
servicio que ofrece y las restricciones en su operación. Tales requerimientos reflejan las
necesidades de los clientes por un sistema que atienda cierto propósito, como sería
debido a que una mala definición de los requisitos del cliente puede dar con el fracaso de todo el
construir. Ninguna otra parte del trabajo conceptual es tan ardua como establecer los
requerimientos técnicos detallados, incluyendo todas las interfaces con humanos, máquinas
y otros sistemas software. Ninguna otra parte del trabajo puede perjudicar tanto el resultado
final si se realiza de forma errónea. Ninguna otra parte es tan difícil de rectificar
sistema como un todo, más que a características o a servicios individuales del sistema.
(p.85)
como menciona (Gómez, 2011) “es un lenguaje gráfico que permite especificar, modelar, construir
y documentar los elementos que forman un sistema software, principalmente orientado a objetos,
sin embargo, UML no está diseñado exclusivamente para software orientado a objetos” (p. 67).
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 81
Por otro lado, los requerimientos no funcionales tienen una amplia clasificación, que se
externos se refieren a factores foráneos al sistema, como pueden ser regulatorios, legales,
Un modelo es una visión abstracta de un sistema que ignora algunos detalles del sistema.
Pueden desarrollarse modelos complementarios del sistema para mostrar el contexto, las
a los clientes y desarrolladores de la empresa es por medio de modelos, los cuales son desarrollados
según UML. La última versión de UML publicada es la 2.5 y entre los principales diagramas que
2. Diagramas de caso de uso, que exponen las interacciones entre un sistema y su entorno.
3. Diagramas de secuencias, que muestran las interacciones entre los actores y el sistema
4. Diagramas de clase, que revelan las clases de objeto en el sistema y las asociaciones
5. Diagramas de estado, que explican cómo reacciona el sistema frente a eventos internos
requerimientos que se puedan tener. Además, cualquier cambio en estos modelos es más
de software. (Pressman, 2014) lo define como “El diseño del software comienza una vez que se
código)” (p. 184). Además, (Gómez, 2011) define que “el proceso de diseño del sistema divide los
requerimientos en software o hardware. Establece una arquitectura completa del sistema. El diseño
de software identifica y describe las abstracciones fundamentales del sistema software y sus
Una forma de entender mejor el diseño de software sería compararlo con la construcción
de una casa. Los requisitos o solicitudes del cliente para realizar su casa serían similares al proceso
del análisis de requerimientos. Luego cuando el ingeniero diagrame esos requerimientos, realice
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 83
planos y hasta modelos a escala estas tareas tienen su respectiva similitud en el diseño del software
y finalmente, construir la casa tiene su analogía con la construcción e implementación del software.
obtener el qué realizar, mientras que el proceso de diseño su principal objetivo es responder a todos
los cómo. Por lo tanto, el proceso de diseño inicia tomando los casos de uso y realizando relaciones
(módulos), la forma en la que éstos interactúan y la estructura de datos que utilizan. Sin
embargo, en un sentido más amplio, los componentes se generalizan para que representen
los elementos de un sistema grande y sus interacciones. (Pressman, 2014, pág. 190)
Para definir el diseño arquitectónico se debería utilizar algún patrón arquitectónico como
Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno y luego, se
describe el núcleo de la solución a ese problema, de tal manera que se puede utilizar esta
solución un millón de veces, sin tener que hacerlo de la misma manera dos veces.
El enfoque es generar una arquitectura de alto nivel del sistema que se desea implantar por
medio de componentes o módulos. Deben representar los subsistemas, las configuraciones de red,
requerimientos en elementos de software tangibles para el desarrollador. Este proceso luego puede
verse mejorado por medio de patrones de diseño, pero como menciona Sommerville (2015):
Cuando usted comienza el diseño de un sistema, quizá sea difícil saber, por adelantado, si
necesitará un patrón particular. Por lo tanto, el uso de patrones en un proceso de diseño con
diseñadores inexpertos reconocer y seleccionar el patrón idóneo. En esta etapa se hace énfasis en
refinar los diagramas de clases, además de realizar diseños de la interfaz de usuario. Esta tarea
requerimientos con los desarrolladores y clientes. Es posiblemente este primer acercamiento real,
de las solicitudes del cliente que espera obtener una vez implementada la solución. Con el diseño
1) la interfaz de usuario (IU), 2) las interfaces externas que tienen que ver con otros
interfaces internas que involucran a los distintos componentes del diseño. Estos elementos
El patrón arquitectónico que utiliza Odoo como fue mencionado es el MVC. Este patrón
trabaja tres capas, permitiendo así, separar responsabilidades y cuando se realicen cambios, estos
sean independientes. Este patrón permite realizar cambios en una capa y no afectar a las otras,
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 85
facilitando la reutilización del código y no siendo necesaria modificación alguna de los datos
Sommerville (2015) indica que las empresas tienen funciones en común y esto conduce a
crear las arquitecturas de aplicación. Estas arquitecturas de aplicación encapsulan las principales
funcionalidades en módulos. Esto permite que se puedan reutilizar las aplicaciones, como son
Estos sistemas tienen en común que son ampliamente configurables y se pueden adaptar a
diferentes compañías e industrias con solo cambiar diferentes opciones o parámetros. Además,
cuentan con características para ampliar sus funcionalidades con desarrollos a la medida. Estos
desarrollos pueden ser a través de la misma interfaz del software o realizando herencias por medio
Esas adaptaciones o mejoras en un sistema ERP deben intentar cumplir con los principios
básicos de diseño de software. Sin embargo, como los sistemas de planificación empresarial
hacerse. En el caso de Odoo, cuando se desea realizar desarrollos a la medida, se debe cumplir con
Robert Martin en el 2000, recolecta y expone cinco principios en el diseño del software. Michael
Feathers introdujo el acrónimo S.O.L.I.D. (por sus siglas iniciales en inglés) para referirse a estos
Los cinco principios definidos por Martin (2000) son los siguientes:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 86
S: Single Responsability: Principio de responsabilidad única. Este principio indica que una clase
debe tener solo una razón para cambiar, es decir una clase tiene un solo propósito
O: Open-closed Principle (OCP): Principio abierto-cerrado. Un módulo debería estar abierto para
extensión pero cerrado para modificación. Los módulos podrán extenderse, sin la necesidad de
modificarlo. Es decir, cuando se diseña un software, este debe tener la capacidad de extenderse.
(Martin, 2000, p. 4)
L: Liskov Substitution Principle (LSP): Principio de sustitución de Liskov. Este principio dice que
las subclases deben ser sustituibles por sus clases base. El principio fue acuñado por Barbar Liskov
basa en que muchas interfaces específicas de cliente son mejores que una interfaz de propósito
general (Martin, 2000, p.14). Es decir, una interface debe tener un único propósito, en lugar de
se refiere a la dependencia que tienen los módulos sobre las abstracciones en lugar de otros
módulos. (Martin, 2000, p.12). Además, Hohman (2014) indica que el principio sugiere:
3. Capítulo 3
Marco Metodológico
Este capítulo se enfoca en definir el problema investigativo y la manera que se seguirá para resolver
ese problema. Inicialmente, se define el tipo de investigación, luego se desarrolla el método para
resolver el problema investigado, por último se define el procedimiento para conseguir el objetivo
del proyecto. Además, se definen varias técnicas e instrumentos para la recopilación de datos y su
culturales y sociales requiere otro tipo de métodos, que no se basan en experimentos ni teorías
Las características de una investigación cualitativa son descritas por Quecedo y Castaño
(2002) como:
3. Se trata de disminuir, pero siempre el investigador causa efectos al objeto del estudio.
de otras personas.
En la investigación cualitativa se tienen varios diseños para realizarlo. Entre los más
investigación que busca aprender el modo de vida de una unidad social concreta. Además,
el producto de esta investigación puede ser un escrito etnográfico o retrato del modo de
- Teoría fundamentada: Según Taylor y Francis, (2013); Torrance, (2011); Sullivan, (2009);
y Haig, (2006) citado por Hernández, Fernández y Baptista, (2014) lo definen como: “El
- Narrativos: Este método es conocido también como método biográfico y es definido por
Monje (2011) como: “la utilización sistemática de documentos que reflejan la vida de una
experiencias personales suelen reflejar tanto la vida como el contexto histórico social en el
que: “Considera que los seres humanos están vinculados con su mundo y pone el énfasis
- Investigación-acción: Según Sandín, (2003), citado por Hernández et al., (2014) lo define
administrativa, etc.) y que las personas tomen conciencia de su papel en ese proceso de
una propuesta de diseño de software para el sistema Odoo en el proceso específico de facturación
proyecto. Estos requerimientos serán verificados y aprobados por medio de procesos de entrevistas
y grupos de enfoque con los diferentes encargados del negocio y por personas externas que
brindarán su juicio experto, siguiendo las buenas prácticas definidas en la ISO/IEC 12207:2008.
Finalmente, se realizará un diseño para los módulos y arquitectura necesaria para la posible
facturación electrónica. Es decir, realizar una acción para modificar el sistema ERP actual. Según
Hernández et al., (2014) indica que “el precepto básico es que debe conducir a cambiar y por tanto
este cambio debe incorporarse en el propio proceso de investigación. Se indaga al mismo tiempo
que se interviene” (p. 496). Debido a esto, “implica la total colaboración de los participantes: en
las prácticas que requieren cambiarse y la implementación de los resultados del estudio”
país, mostrando en tiempo real o retrasado sus operaciones mercantiles principalmente las de
Según Hernández, et al., (2014) las preguntas de investigación son aquellas que se
pretenden responder al finalizar el estudio para lograr los objetivos. Estas deben ser congruentes
- ¿Cuáles son los reglamentos, leyes o regulaciones que norman o afectan la facturación
- ¿Cuáles son los requisitos para que una empresa o persona pueda brindar de manera
electrónica la facturación?
- ¿Cuáles son los requerimientos mínimos para que un sistema pueda emitir comprobantes
electrónicos?
- ¿Cómo se relacionan los módulos actuales del sistema con lo que solicita Tributación
Directa?
- ¿De qué manera se desarrollarán los faltantes encontrados en el sistema para emitir
facturación electrónica?
- ¿Qué elementos necesita Odoo a nivel de arquitectura para soportar los comprobantes
electrónicos?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 91
Costa Rica tuvo un déficit fiscal para el 2016 de 5,2% con respecto de sus ingresos, esto
equivale a una reducción de 32 mil millones en comparación del 2015. Por lo tanto, el Gobierno
Central está comprometido en recaudar mayores ingresos y desacelerar los gastos tratando de tener
las finanzas públicas bajo control. A pesar de los esfuerzos, aún no son suficientes y es necesario
realizar varios proyectos fiscales para corregir los desequilibrios fiscales (GobiernoCR, 2017).
país. Además, el Ministerio de Hacienda ha confirmado que para inicios del 2018 el gremio de
salud será el primer sector en ser incluido en la facturación electrónica y se espera ir incluyendo
cada mes un nuevo sector, entre los principales están los médicos, abogados, informáticos y
contadores.
En el país se cuentan con 36.950 empresas, la mayor parte son PYMES y representan el
78,3% (Ministerio de Economía, Industria y Comercio [MEIC], 2016). Dentro de los próximos
años cualquier compañía deberá emitir facturación electrónica, por lo tanto, se tendrá la necesidad
de sistemas accesibles y de bajo costo para cumplir con este requisito. Además, analizando los
ejemplos de países como México, Chile y Brasil, se provoca una disminución en la evasión fiscal,
El sistema Odoo, al ser de código abierto y no tener la necesidad de pagar licencias para
adquirirlo, se convierte en un sistema idóneo para las empresas micro, pequeñas y medianas del
país, debido a una alta mayoría de este tipo de empresas no cuentan con sistemas ERP o contables
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 92
para realizar sus funciones administrativas, mientras que otras sí tienen algún sistema, sin
para la conexión del sistema Odoo, sino para cualquier sistema que tenga la posibilidad de
En Costa Rica, no se cuentan aún con tesis, libros o documentos formales de cómo realizar
el diseño de software para un sistema ERP con un módulo de facturación electrónica conectado al
necesario aclarar que existen trabajos similares en el extranjero en áreas como el análisis de
comprobantes electrónicos, debido a esto, esos esfuerzos serán utilizados como fuentes en la
investigación.
El proyecto utilizará las siguientes fuentes de información para la elaboración del diseño
3.5.1 Fuentes primarias. Para el desarrollo del proyecto, se utilizarán las siguientes fuentes
primarias:
reformas y anexos.
3.5.2 Fuentes secundarias. Las fuentes secundarias utilizadas para la realización de este
proyecto fueron:
- Artículos de revistas.
- Publicaciones periodísticas.
Esto permitirá validar si el trabajo se está llevando de manera correcta y realizar cambios en el
semiestructuradas, las cuales “se basan en una guía de asuntos o preguntas y el entrevistador tiene
la libertad de introducir preguntas adicionales para precisar conceptos u obtener más información”
(Hernández, et al., 2014, pág. 403). En el apéndice A se encuentra la guía de entrevista que se
Al ser una entrevista semiestructurada, las preguntas permitirán realizar nuevas preguntas
o ampliaciones, brindando un análisis más profundo del tema. El objetivo de estas entrevistas es
Las entrevistas serán aplicadas a gerentes financieros o gerentes generales los cuales
deberán obtener en los próximos meses un sistema que cumpla con la resolución de comprobantes
electrónicos. Cada entrevistado debe pertenecer a distintos sectores para identificar características
ubicadas en el Gran Área Metropolitana y que son compañías que no deben ingresar a facturar de
El segundo instrumento para utilizar serán los grupos de enfoque, “los cuales consisten en
reuniones de grupos pequeños o medianos (de 3 a 10 personas), en las cuales los participantes
conversan a profundidad en torno a uno o varios temas” (Hernández, et al., 2014, pág. 408). Se
convocará a los diferentes desarrolladores y analistas de la empresa Delfix para validar los
requerimientos y el diseño que se irá elaborando a lo largo del proyecto. El tamaño del grupo no
será menor a dos personas ni mayor de cinco. El formato será semiestructurado, porque se
brindarán los temas a trabajar durante la sesión, sin embargo se dejará la posibilidad de trabajar en
En el apéndice B se muestran las cinco plantillas por utilizar en las reuniones para los grupos
El método utilizado fue por medio del proceso definido en el Ciclo de Vida del Desarrollo
de Sistemas (sus siglas en inglés son SDLC), el cual pertenece a la ISO/IEC 12207:2008, dado que
tarea no pertenece a la ISO, sin embargo se realizó como la tarea que brindó la transferencia del
El diseño básico de la investigación-acción fue el práctico, el cual tiene los siguientes pasos
según Stringer, (1999), citado por Hernández, et al., (2014) que son: “observar (construir un
bosquejo del problema y recolectar datos), pensar (analizar e interpretar) y actuar (resolver
problemáticas e implementar mejoras), las cuales se dan de manera cíclica, una y otra vez, hasta
que todo es resuelto, el cambio se logra o la mejora se introduce satisfactoriamente” (p. 497).
Diseño de la
Plan de Diseño detallado
arquitectura del
Implementación del software
software
mostrada en la Figura 3.2. Se tomó cada paso del ciclo SDLC y se realizaron los cuatro pasos,
estos fueron dando elementos para la siguiente tarea, hasta concluir con un plan de desarrollo para
la empresa.
plan de acción, el cual describe qué pasos se hicieron en esa tarea y luego se implementaron estas
de lo obtenido. Esto brindó los entregables definidos en cada etapa de la ISO y se muestran en el
siguiente capítulo.
sencillos. Por lo tanto, se trabajó con las siete actividades propuestas por la ISO y se aplicó en cada
instalación y aceptación enfocadas a los productos de software. La norma se utilizó de base para
la metodología del proyecto, pero fue adaptada a la realidad de la Empresa y del trabajo.
Esta fue la primera tarea definida en el proceso de desarrollo de la ISO. En la Tabla 3.1 se
a) Definir normas, métodos, Se obtuvieron las normas (leyes) por utilizar en el trabajo. Los
Ministerio de Hacienda.
La segunda actividad se enfocó en obtener los requerimientos del sistema. En la Tabla 3.2 se
La tercera actividad se enfocó en establecer la arquitectura del sistema a alto nivel. En la Tabla
manuales electrónicos.
La cuarta actividad se enfocó en analizar los requerimientos del software. En la Tabla 3.4 se define
a) Se establece y documenta los Se usó la plantilla del apéndice C para desarrollar los casos de
casos de uso.
software. En la Tabla 3.5 se procede con la definición de las tareas y sus respectivos entregables.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 99
requerimientos en los diferentes necesarios con sus respectivos tipos que fueron requeridos
sistema Odoo.
diseño a alto nivel para el implementación de los nuevos elementos que se incluyeron
c) Evaluar el diseño realizado Se realizó diagramas de actividad de los casos de uso para
software.
La sexta actividad se enfocó en detallar el diseño de cada elemento del software. En la Tabla 3.6
b) Desarrollar un plan inicial de Se realizó un plan de pruebas para ser ejecutado por el equipo
pruebas del sistema Odoo de software en las posteriores actividades del ciclo de
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 100
Tarea Entregable
La última actividad del proyecto se enfocó en definir los pasos para continuar con el proyecto de
la facturación electrónica por parte de la Compañía. En la Tabla 3.7 se procede con la definición
implementación
de implementación implementación.
4. Capítulo 4
Análisis de Resultados
Este capítulo se puede definir como el desarrollo general del proyecto de investigación. Se
presentan las actividades que fueron realizadas para cumplir lo definido en el proyecto dentro del
marco metodológico. Se realizan las primeras seis actividades propuestas de la Figura 3.2. La
herramientas, así como las tecnologías por utilizar. El método por emplear para realizar el proyecto
Desarrollo de Sistemas (SDLC). Las actividades que se desarrollarán serán las primeras seis tareas
del SDLC, con una tarea adicional que sería un plan de implementación.
Se utilizarán principalmente dos herramientas, las cuales son: las entrevistas y los grupos
de enfoque. La primera se enfoca en brindar un análisis previo del conocimiento y uso de los
comprobantes electrónicos de los gerentes en el país, por su parte, la segunda herramienta busca
Las tecnologías utilizadas son: Odoo como sistema ERP, lenguaje de programación es
Python, como base de datos sería Postgres y como web service se utilizará el REST definido por
la resolución. Además, se utilizarán diferentes diagramas del lenguaje UML, los cuales serán
gerentes generales y financieros con el objetivo de evaluar el impacto y conocimiento sobre los
los participantes han sido ocultados por principios de confidencialidad entre el investigador y los
entrevistados, dejando únicamente las iniciales de sus nombres. Por lo tanto, se procede a realizar
facturación electrónica. En el caso de una respuesta neutral, se refiere a que el entrevistado muestra
cierto agrado a la facturación electrónica pero también se manifiesta negativo en otros aspectos
del tema.
En general los entrevistados muestran dudas sí el país realmente está preparado para contar
con facturación electrónica. Un entrevistado indica que considera que estos proyectos tienen que
realizarse aunque no se tengan las condiciones necesarias, e ir poco a poco corrigiendo los errores
donde más del 70% tiene una apreciación negativa de la implementación de la facturación
electrónica. Entre las principales causas del rechazo se deben: a la falta de información, a la
complejidad del proceso y falta de herramientas tecnológicas para hacer frente al proceso.
Neutral Positivo
14% 14%
Negativo
72%
Figura 4.1. Opinión de la facturación electrónica. Análisis del apéndice E entrevistas realizadas.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 103
facturación electrónica?
En la Figura 4.2. se aprecia que el 70% dice que el país aún no se encuentra preparado
proceso. El casi 30% que se registra como un sí, se debe a su apoyo a la medida, pero en las
Hacienda iniciar el proceso de facturación electrónica. Sin embargo, la falta de comunicación por
parte del Ministerio ha conllevado a los contribuyentes a dudar del proceso y tener miedos de
Si
29%
No
71%
Figura 4.2. ¿Está preparada Costa Rica para la facturación electrónica?. Análisis del apéndice E entrevistas
realizadas
Los entrevistados comparten que entre los beneficios se encuentran mejores controles para el
negocio, esto principalmente a que deberán generar facturas por cualquier venta de productos o
servicios, además, cualquier organización deberá contar con un sistema para la emisión y recepción
de comprobantes electrónicos. Otro de los beneficios que detentan son las mejoras en la
recaudación de impuestos por parte del fisco. Finalmente, sobresale que solo un entrevistado
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 104
menciono como un beneficio el ahorro de papel. En la Figura 4.3 se pueden apreciar los beneficios
5 5
5
2
2
1
1
0
Mejores controles Mejoras en registros Mejoras en la recaudación Menos Papel
contables del impuesto
Figura 4.3. Beneficios de la facturación electrónica. Análisis del apéndice E entrevistas realizadas.
Por otro lado, los perjuicios o problemas que detectan los entrevistados se aprecian en la
Figura 4.4. Se considera que los participantes no están claros con los perjuicios, esto tiene cierta
2,5
2
2
1,5
1 1 1
1
0,5
0
Gastos por impresiones Gastos en sistemas de Falta de empresas que den Falta de cultura
cómputo el servicio
Figura 4.4. Perjuicios de la facturación electrónica. Análisis del apéndice E entrevistas realizadas
electrónica? Si la respuesta es sí, ¿ha sido sencillo utilizarlo?, Si la respuesta es no, ¿Piensa cambiar
realizadas casi el 60% dice que sus sistemas no funcionarán con la resolución de comprobantes
electrónicos, mientras que un 40% dice que sí, sin embargo, en sus respuestas se detecta que no
saben si finalmente funcionará debido a que aún no han probado esa funcionalidad. Se puede ver
Lo anterior demuestra que los proveedores de estos sistemas no están realizando campañas
de aclaración sobre los documentos electrónicos y el soporte que tendrán si continúan utilizando
Si
43%
No
57%
Figura 4.5. Sistema preparado para la facturación electrónica. Análisis del apéndice E entrevistas realizadas
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este modelo
En la Figura 4.6 se muestra los resultados obtenidos de la pregunta. Los entrevistados que
manifiestan que no al modelo, es debido porque el costo deberá ser transferido al cliente, dando
esto aumento en precios, además que se deberá gastar igual en tinta porque los clientes son
receptores manuales. También mencionan que el estado debería ser el que provee el sistema para
los contribuyentes.
Mientras los que manifiestan que es un buen modelo, lo explican porque estaría ligado a las ventas;
No
43%
Si
57%
Figura 4.6. Modelo de cobro por comprobante. Análisis del apéndice E entrevistas realizadas.
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación Directa
por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización? ¿Cómo piensa
solucionarlo?
El 100% de los entrevistados no ve dificultades por tener que enviar comprobantes electrónicos
por internet. Eso sí, varios mencionan que en zonas rurales esto podría ser complicado.
Esto refuerza la idea que el país sí puede iniciar con la facturación electrónica, por lo
menos, en el Gran Área Metropolitana (GAM), sin embargo, el estudio realizado no investiga las
En general, los entrevistados mencionan que la información ha sido escueta y este es el punto que
cambiarían. Entre las recomendaciones están: dar cursos virtuales, realizar publicidad en medios
7
6
6
5
4
3
2
2
1
0
Sistema provista por el Ministerio Mayor comunicación del proceso
Figura 4.7. Cambios a la facturación electrónica. Análisis del apéndice E entrevistas realizadas.
Hacienda debería de facilitar el sistema, el investigador coincide en este punto, el proceso sería
más transparente sí se diera un sistema con funciones para el firmado de los documentos XML.
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá invertir por
la facturación electrónica?
En la Figura 4.8 se agrupan los principales gastos que consideran incurrirán los empresarios. Los
entrevistados están claros en que deberán incurrir en capacitar al personal para el nuevo proceso
de facturación. Algunos contemplan gastos extras para adaptar su sistema a la nueva legislación.
8 7
4 3
2 1 1
0
Capacitación Auditoría en procesos Nuevo enlace de internet Desarrollos en el sistema
internos
Figura 4.8. Principales gastos por facturación electrónica. Análisis del apéndice E entrevistas realizadas.
Con las entrevistas realizadas, se tiene claro que la documentación brindada por el Ministerio
de Hacienda es insuficiente y genera dudas en los empresarios y gerentes. Por lo tanto, el proyecto
deberá brindar insumos necesarios para resolver este vacío generalizado, utilizando para esto la
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 108
resolución DGT-R-48 en conjunto con sus estructuras y anexos, así como, las herramientas
identificadas en este primer punto del ciclo de vida del desarrollo del software.
Para el análisis de requisitos del sistema estos serán obtenidos de la resolución DGT-R-48 y sus
anexos y estructuras en la versión 4.2, la cual rige a partir del 01 de octubre del 2017.
los siguientes:
Req-1. El sistema debe llevar una numeración consecutiva para los comprobantes
a. Los tres primeros dígitos para identificar la casa matriz o establecimiento principal
y sus sucursales.
b. Del cuarto al octavo dígito identificará la terminal o punto de venta. Si se tiene solo
i. Factura electrónica 01
comprobantes electrónicos.
Figura 4.9. Numeración consecutiva. Tomado de DGT-R-48-2016. (Dirección General de Tributación, 2016)
Req-2. La numeración debe iniciar en 1, en aquellos casos donde sea la primera vez que
Req-3. El sistema debe tener la capacidad de volver a iniciar con el número 1, en caso de
Req-4. El sistema debe generar de manera automática y consecutiva una clave numérica
electrónico.
electrónico.
electrónico.
electrónico.
h. Del dígito 43 al 45, señala el código de seguridad, el cual debe ser generado por el
sistema del obligado tributario. Estos dígitos pueden seguir algún patrón de
Ministerio de Hacienda.
comprobante
electrónico
comprobante
electrónico
Figura 4.10. Clave numérica. Tomado de Resolución DGT-R-48-2016. (Dirección General de Tributación,
2016)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 112
Req-5. El sistema debe generar una representación gráfica (es decir, un documento pdf)
donde los campos tipo de documento electrónico, clave del comprobante y numeración
Req-6. El sistema debe generar la clave numérica en un código QR, el cual podrá ser
Req-7. El sistema debe permitir registrar la identificación del cliente. Los datos que debe
tener son:
a. Nombre completo o razón social.
d. Dirección completa del negocio (Provincia, Cantón, Distrito, Barrio y otras señas)
01 Cédula física Se agrega tres ceros antes de iniciar con el número de cédula
02 Cédula jurídica Se debe agregar dos ceros antes de iniciar con el número de
dígitos
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 113
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Req-8. El sistema debe registrar la versión del documento. Se obtiene de los esquemas de
Req-9. El sistema debe incluir la mención “electrónica” en cada documento. Esto sería de
Req-10. El sistema debe contener la fecha de emisión, es decir, el día que son emitidos los
provisionales emitidos por contingencia, la fecha real se deberá poner en otro nodo del
Req-12. El sistema debe contener la hora de emisión del documento con la zona horario de
Costa Rica.
Req-14. El sistema debe registrar las condiciones de la venta o servicio. La codificación por
01 Contado
02 Crédito
03 Consignación
04 Apartado
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Req-15. El sistema debe registrar las condiciones para los medios de pago . La codificación
01 Efectivo
02 Tarjeta
03 Cheque
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Req-16. El sistema debe indicar la resolución vigente. En este momento sería: “Autorizada
Req-17. El sistema permite que los comprobantes puedan ser redactados en cualquier
español.
extranjera, unidad de medida, código de producto, descripción del producto o del servicio
extranjera.
Req-21. El sistema debe registrar el monto del Impuesto Selectivo de Consumo, cuando el
vendedor sea también obligado tributario del indicado impuesto y el monto de cualquier
Req-22. El sistema debe registrar el valor de los servicios prestados expresado en moneda
Req-23. El sistema debe registrar el valor de las mercancías expresado en moneda nacional
Req-24. El sistema debe registrar el precio neto de venta expresado en moneda nacional o
Req-25. El sistema debe registrar el monto del impuesto equivalente a la tarifa aplicada
sobre el precio neto de venta, con la indicación “Impuesto de Ventas” en caso de que el
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 116
cliente requiera dicho dato en el tiquete electrónico para respaldar el crédito, el sistema
Req-26. El sistema debe registrar el valor total de la factura en moneda nacional o moneda
extranjera.
internet”.
comunicación.
tiene un plazo máximo de tres horas luego de la recepción del archivo XML para aceptarlo
Req-29. El sistema debe emitir una representación gráfica (formato en pdf) en el momento
Req-30. El sistema debe una vez recibido el mensaje de confirmación del comprobante
Req-31. El sistema debe generar una nota de crédito electrónica para anular la factura
Req-32. El sistema debe recibir en un plazo no mayor a ocho días, el aceptado o rechazado
por parte del receptor del comprobante electrónico. Esto solo sucede entre emisores-
deben contar con los controles para evitar riesgos, daños, pérdida, destrucción, alteración,
sustracción o divulgación, así como contar con planes de evaluación, que permitan valorar
nuevamente.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 118
Req-38. El sistema debe imprimir los documentos electrónicos en formato pdf. En la parte
inferior debe contar con un código QR con un tamaño mínimo de 2,5 cm de alto x 2,5 cm
de ancho.
Req-41. En caso de falla del sistema, se debe hacer uso de comprobantes preimpresos
emitidos por una imprenta autorizada o por sistemas computarizados que cumplan con la
normativa que regula este tipo de comprobantes. Debe contar con la leyenda “comprobante
parte inferior ha de indicar “Este comprobante no puede ser utilizado para fines tributarios,
Req-42. Superada la contingencia, el sistema debe enviar los comprobantes a los receptores
Req-43. El sistema debe generar la información tipo numérica en los documentos XML
utilizando coma para separar los decimales y los miles no se deben de separar con ningún
carácter.
Req-44. El sistema debe realizar el redondeo de los decimales cuando el dígito final es
documentos electrónicos:
Req-8. El sistema debe registrar la versión del documento. Se obtiene de los esquemas de los
enviados y recibidos, durante cinco años y en algunas excepciones 10 años según art. 51 del Código
Tributario.
deben contar con los controles para evitar riesgos, daños, pérdida, destrucción, alteración,
sustracción o divulgación, así como contar con planes de evaluación, que permitan valorar la
y rechazo de estos.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 120
Requerimientos operacionales: En caso de falla del sistema, el proceso manual por seguir.
Req-41. En caso de falla del sistema, se debe hacer uso de comprobantes preimpresos
emitidos por una imprenta autorizada o por sistemas computarizados que cumplan con la
normativa que regula este tipo de comprobantes. Debe contar con la leyenda “comprobante
inferior debe de indicar “Este comprobante no puede ser utilizado para fines tributarios, por lo cual
Por otro lado, los requerimientos funcionales cumplen con la posibilidad de ser probados,
por lo cual deberán ser comprobados en las pruebas cuando se desarrolle el sistema.
El documento XML para los comprobantes electrónicos estará constituido con las siguientes partes
b) Detalle de la mercancía o servicio prestado: En esta parte se debe detallar una línea
por cada artículo, especificando cantidad, valor, impuestos adicionales y valor neto, así
como descuentos y recargos que afectan al total del documento y el monto total de la
transacción.
por ejemplo, se debe identificar la factura que se está modificando con una nota de
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 121
comprobante provisional.
de esto sería: incluir información de las cuentas bancarias, incluir multas o intereses en
Según los anexos, se indica que solo se puede utilizar un mecanismo de seguridad. Pero es posible
cambiarse en el tiempo, es decir, desde la firma digital a la llave criptográfica del Ministerio de
Hacienda o viceversa.
Los datos que tendrán los diferentes campos en los comprobantes electrónicos tienen la siguiente
clasificación:
- Dato condicional: Dependiendo de la condición, son campos que pueden ser obligatorios.
En el caso de los mensajes XML para la aceptación o rechazo de documentos se debe tener los
siguientes campos:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 122
- Clave numérica.
- Mensaje, el cual se tienen tres opciones aceptado, aceptación parcial (se permite arreglar
- Total de la factura.
- Numeración consecutiva.
En el caso del Ministerio de Hacienda, los mensajes de aprobación o rechazo deben tener los
siguientes campos:
- Clave numérica.
- Mensaje, el cual se tienen tres opciones aceptado, aceptación parcial (se permite arreglar
- Total de la factura.
veces a la dirección especificada por el contribuyente. Sino se recibe respuesta del contribuyente,
posibilidad de consultar por medio del protocolo de REST la respuesta del Ministerio sobre la
personas físicas o jurídicas. Los sistemas informáticos que utilicen deben ser capaces de
enviar y recibir los comprobantes electrónicos, así como las aprobaciones o rechazos de
y las empresas en regímenes especiales como zonas francas, que compran productos, pero
- Receptor Manual: Persona física o jurídica que no está obligado por ley a realizar o recibir
impreso o en documento pdf. Típicamente, serían todas las personas que no tienen
actividades lucrativas.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 124
categoría especial para las compañías que desean ofrecer de manera gratuita los servicios
A excepción de los receptores manuales, la ley específica las obligaciones de cada uno de estos
grupos.
electrónico.
electrónicos.
presente resolución.
respaldo.
tributario integral.
j. Ser responsable ante sus clientes o usuarios por el uso o destino que se haga de
instructivos de la solución.
le sean aplicables.
electrónico.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 126
comprobantes electrónicos.
electrónico.
d. Facilitar en caso de que así se requiera la revisión del sistema por parte de la
haya generado, emitido y recibido por este medio, conforme los plazos de
almacenamiento establecidos.
le sean aplicables.
Además, los sistemas para la emisión y recepción de comprobantes electrónicos deben cumplir
c. El sistema debe contar con las validaciones necesarias que controlen la numeración
e. El sistema debe contar con validaciones lógicas y aritméticas en los campos que
i. El sistema debe contar con un esquema de seguridad que garantice como mínimo
i. Número de cédula.
confirmación.
v. Fecha de emisión.
vi. Montos.
de Tributación.
k. El sistema debe contar con una interface o facilidad que permita recibir y cargar en
forma automatizada los comprobantes electrónicos que emitan sus proveedores, así
comprobantes.
información.
Anteriormente, se obtuvieron los requerimientos que debería tener cualquier sistema con respecto
Figura 4.11. Flujo de interacción de los comprobantes electrónicos. Fuente: Elaboración propia.
El flujo de interacción para los comprobantes electrónicos tiene los siguientes pasos:
3. Se genera el XML y el PDF para el cliente siempre que este sea Emisor-Receptor
electrónico o Receptor – no emisor electrónico. El medio por utilizar entre ellos será el
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 130
convenido entre partes el cual puede ser utilizando servicios web o servicios de correo
electrónico.
tres horas para responder enviar el mensaje. El Ministerio envía el mensaje por medio
el respaldo de su contabilidad. El medio por utilizar entre ellos será el convenido entre
partes el cual puede ser utilizando servicios web o servicios de correo electrónico.
6. El cliente envía el mensaje receptor, el cual puede ser de aceptación o rechazo del
validación del mensaje es de ocho días. Este mensaje se envía utilizando los servicios
REST.
comprobante electrónico. El medio por utilizar entre ellos será el convenido entre
partes, el cual puede ser utilizando servicios web o servicios de correo electrónico.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 131
- Al generar el comprobante este debe ser enviado al cliente y al Ministerio en el mismo acto
- El Ministerio tiene tres horas para contestar el aprobado o rechazado del comprobante.
Paso cuatro.
automatización en el proceso.
1. En el caso del sistema Odoo, el ingresar la factura y validarla para enviarse al Ministerio
factura en formato XML y pdf al receptor. Este proceso inicialmente será por medio de
correo electrónico, conforme avancen los obligados tributarios, los sistemas permitirán
recibir los comprobantes de manera automática por medio de servicios web. Corresponde
al paso tres.
Hacienda será un proceso automático. Corresponde a los pasos dos, cuatro y siete.
Hacienda. El emisor deberá reenviar ese comprobante al receptor, ese proceso inicialmente
6. El envío del comprobante aprobado del receptor hacia el emisor es un paso manual. Este
paso conforme se tenga más obligados de cumplir está resolución se irá automatizando
A nivel de hardware, el sistema Odoo soporta separar a nivel lógico los datos de la aplicación,
en la Figura 4.12 se muestra un modelo que se propone. La recomendación inicial es tener una
separación de servidores, uno tendría la base de datos PostgreSQL, mientras otro deberá contener
la aplicación. Además, el servidor de base de datos deberá tener una replicación por lo menos
diaria en otro sitio seguro, para garantizar los datos de los clientes y cumplir con requerimientos
La base de datos debe estar configurada para que solo sea posible acceder por medio de
red privada virtual (sus siglas en inglés: VPN). El servidor de la aplicación de Odoo deberá también
ser solo accesible por medio de un VPN. Igualmente, ese servidor con la aplicación de Odoo deberá
tener un sistema de firewall para aplicaciones de web (en inglés, WAF), lo cual protege de
problemas comunes como ataques de inyección de SQL, XSS y falsificación de peticiones de sitios
cruzados. Finalmente, la aplicación de Odoo debe desplegarse en un sitio https, que permita
Figura 4.12. Esquema del Hardware para Odoo. Realización con el equipo de infraestructura del negocio.
Los requerimientos obtenidos en la segunda actividad del ciclo de vida del desarrollo del software
5. Recepción y envío del mensaje del comprobante electrónico para el proveedor. Este caso
Para cada caso de uso se debe realizar casos de pruebas con diferentes escenarios. Cuando el
Los casos de uso tienen tres actores identificados y dos sistemas que interactúan:
- Facturador: Es el actor que usa el ERP para realizar los diferentes comprobantes
electrónicos.
- Proveedor: Es el actor que envía la facturación electrónica al correo. Se debe enviar una
facturador o encargado de cuentas por pagar es el encargado de registrar las facturas de los
proveedores cuando se realizan compras. Las figuras representadas en los casos de uso son la de
En el caso del receptor manual, no se incorpora directamente a los casos de uso, debido a que
el proceso original no se altera, solo que este actor no tiene interacción con el Ministerio de
Hacienda, terminando los casos del lado del sistema de Tributación antes que un flujo normal. Por
uso
electrónico – no emisor.
Secuencia Normal
de cliente.
validar el comprobante
electrónico.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 136
electrónico.
de Hacienda.
de manera correcta.
Descripción del caso de El facturador realiza una nota de débito o crédito electrónica para
Secuencia Normal
rectificativas.
electrónico.
electrónico.
de Hacienda.
de manera correcta.
siguiendo el paso 3.
Extensiones CU003
Comentarios N/A
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 140
Tabla 4.7 – CU003 Confirmación del comprobante electrónico por parte del cliente
ID Caso de Uso CU003
Nombre Caso de Uso Confirmación del comprobante electrónico por parte del
cliente.
Descripción del caso de El cliente envía una confirmación del comprobante electrónico
uso recibido.
CU002.
Secuencia Normal
PDF.
o rechazo.
Ministerio de Hacienda.
state_send_invoice si es aprobado
o rechazado el comprobante.
7 7 Si la confirmación es de aceptación, se
correcto.
cliente.
Tributario.
Comentarios El sistema del cliente se sale del proyecto y del análisis del caso
Actores Principales Facturador (solo en caso de falla). Sino el proceso es realizado por
CU001 o CU002.
Secuencia Normal
electrónico.
aceptación o rechazo.
5 5 Si la confirmación es de aceptación, se
termina el CU.
el documento correcto.
Ministerio de Hacienda.
facturador.
Secuencia Normal
contabilidad / proveedores /
facturas de proveedor.
validarla.
documento registrado.
documento electrónico).
confirmación.
la factura correctamente.
Extensiones N/A
Comentarios El sistema del proveedor se sale del proyecto y del caso de uso. El
Se realiza en la Tabla 4.10 una matriz de cobertura entre los casos de uso y los requerimientos
identificados. Cada equis en la tabla significa que ese requerimiento debe estar en ese caso de uso.
Req-1 X X X
Req-2 X X X
Req-3 X X X
Req-4 X X X
Req-5 X X X
Req-6 X X X
Req-7 X X X
Req-9 X X X
Req-10 X X X
Req-11 X X X
Req-12 X X X
Req-13 X X X
Req-14 X X X
Req-15 X X X
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 147
Req-16 X X X
Req-17 X X X
Req-18 X X X
Req-19 X X X
Req-20 X X X
Req-21 X X X
Req-22 X X X
Req-23 X X X
Req-24 X X X
Req-25 X X X
Req-26 X X X
Req-27 X
Req-28 X
Req-29 X X X
Req-30 X
Req-31 X
Req-32 X X
Req-36 X
Req-37 X X
Req-38 X X X
Req-39 X X
Req-42 X X
Req-43 X X X
Req-44 X X X
Se realiza en la Figura 4.13. un diagrama de casos de uso, el cual facilita la lectura para el
negocio.
casos de uso fácilmente observables son los primeros cuatro, en el caso de uso CU005, sería
visualizar al facturador como el receptor del comprobante electrónico. Es decir, el CU005 inicia
actividad se mostrarán a detalle cada caso de uso con los campos o métodos representativos. En
este caso, el facturador recibe el comprobante y debe enviar su aprobación o rechazo del
Figura 4.14. Diagrama de actividad. Fuente: Elaboración propia, basándose en los casos de uso.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 150
para cada caso de uso, especificando que métodos deberán utilizarse entre cada acción.
El diagrama de actividad del caso de uso CU001 y CU0002 se muestra en la Figura 4.15.
En la misma se muestran los métodos programables para realizar cada actividad, siendo posible
determinar en qué momento se debe utilizar las distintas funciones identificadas en el diagrama de
En la Figura 4.16 se muestra el diagrama de actividad del caso de uso CU003. En el sistema
Odoo el facturador solo debe registrar si el comprobante fue aprobado o rechazado por parte del
Figura 4.16. Diagrama de actividad CU003. Fuente: Elaboración propia, basándose en los casos de uso.
Además en la Figura 4.17 se muestra el diagrama de actividad del CU004. Por medio de la
el comprobante electrónico.
Figura 4.17. Diagrama de actividad CU004. Fuente: Elaboración propia,, basándose en los casos de uso.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 152
Finalmente en la Figura 4.18, se muestra el diagrama de actividad del caso de uso CU005.
Este muestra la interacción desde que un proveedor envía un comprobante electrónica hasta recibir
Figura 4.18. Diagrama de actividad CU005. Fuente: Elaboración propia, basándose en los casos de uso.
La actividad del análisis de requisitos de software es revisada en el apéndice F en la plantilla C.
4.5 Diseño de la arquitectura del software:
Esta actividad se enfoca en definir los desarrollos necesarios para los comprobantes electrónicos
en el sistema. Se debe verificar que se incluyan todos los requerimientos en el diseño del software.
la resolución DGT-R-48-2016 versión 4.2 se obtienen los campos necesarios que deberán estar en
la facturación electrónica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 153
Los datos que deberá tener el encabezado del XML y los comprobantes electrónicos se
muestran en la Tabla 4.11 . En la columna de Campo se tienen los tres valores identificados en la
parte de los documentos XML que son: obligatorio (Requerido), opcional y condicional. El
Siguiendo con los campos solicitados por el Ministerio de Hacienda, en la Tabla 4.12 se tienen
Para el tipo de código del producto o servicio se cuenta con la Tabla 4.13 . En el XML
nombre.
99 Otros
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 158
4.14 . En el XML debe ir el código, pero para efectos de visualización e impresión se mostrará la
descripción.
07 Servicio
98 Otros
Excepciones
Autorizadas
99 Otros
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 159
la Tabla 4.15 . En el XML debe ir el código, pero a nivel de impresión y visualización se debe
01 Compras autorizadas
organismos)
05 Zonas Francas
99 Otros
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
En el caso del apartado resumen de la factura, se detalla en la Tabla 4.16 los campos que incluye
esta sección.
b) Nota de débito que elimina una nota de crédito en la referencia en forma completa.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 161
Tributación, 2016)
Tabla 4.17 se revisan los campos que deberán desarrollarse. En el caso de las notas de débito y
crédito siempre es obligatorio estos campos cuenten con esa información, en cambio las facturas
y tiquetes es opcional.
Para llenar la información de referencia se cuenta con un tipo de documento, los cuales se
01 Factura electrónica
04 Tiquete electrónico
05 Nota de despacho
06 Contrato
07 Procedimiento
99 Otros
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Los códigos de referencia por utilizar cuando se usan los campos de información de
referencia se encuentran en la Tabla 4.19 .
Tabla 4.19 – Códigos de referencia
Código Códigos de referencia
03 Corrige monto
contingencia
99 Otros
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 163
llamado Otros. Los campos se aprecian en la Tabla 4.21 . Algunas utilidades serían como: enviar
información del usuario que creó el documento electrónico, la dirección o programa desde donde
Finalmente, los comprobantes electrónicos tendrán un campo para registrar la firma digital
o llave criptográfica para autentificar el documento. Este campo se muestra en la Tabla 4.22
Nodo para las firmas SignatureType Requerido Debe ser firmado utilizando la
firma digital o la llave
criptográfica del Ministerio de
Hacienda
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016)
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 164
la confirmación de aceptación o rechazo de estos, como parte de las obligaciones de los emisores-
También el sistema debe estar preparado para recibir las respuestas de validación por parte
Tabla 4.24 .
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 165
En el apéndice I se muestra el actual diagrama de clases que tiene el sistema Odoo. Los
modelos que se muestran son los siguientes, (en paréntesis se pone el nombre técnico del módulo):
implementación con el objetivo de indicar la estructura que maneja el sistema Odoo. En las
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 166
siguientes figuras se mostrarán solo los campos, métodos y clases necesarios para el proyecto de
la facturación electrónica.
Los cambios que se realizarán para incluir lo solicitado por la resolución de comprobantes
electrónicos se realizará por medio de herencias en Odoo y la creación de nuevas clases. Se realiza
de esta manera debido a las recomendaciones que brinda la empresa Odoo y en general, de las
buenas prácticas de la ingeniería de software, que indican no manipular directamente las clases
Odoo o si será necesario realizar un desarrollo, además, se indica el nombre técnico que deberá
llevar el campo y en clase se encontraría ese campo. Se agrega a la mayoría de las nuevas clases
la palabra electronic para determinar que son clases extras para los comprobantes electrónicos.
Los últimos tres campos de la Tabla 4.25 son campos necesarios para llevar una trazabilidad entre
Tributación y el sistema del cliente o del proveedor. Estos campos tendrán el estado de aceptado
sistema? – Nombre
Técnico
sistema? – Nombre
Técnico
sistema? – Nombre
Técnico
caso de que el
receptor sea un
extranjero
Nombre comercial String No. Nombre: PartnerElectronic
del receptor commercial_name
Provincia Many2one Sí. Nombre: state_id Relación entre partner –
countryState
Cantón Many2one No. Nombre: city_id PartnerElectronic
sistema? – Nombre
Técnico
sistema? – Nombre
Técnico
sistema? – Nombre
Técnico
documento de
referencia
Fecha de emisión DateTime No. Nombre: AccountInvoiceElectronic
del documento de date_issuance
referencia
Código de referencia Many2one No. Nombre: AccountInvoiceElectronic
reference_code_id
Razón de referencia String No. Nombre: name ReferenceCode
Número de String No. Nombre: name Resolution
resolución
Fecha de resolución String No. Nombre: Resolution
date_resolution
Firma SignatureType No.Nombre: signature CompanyElectronic
Estado de la factura String No. Nombre: AccountInvoiceElectronic
enviada a state_send_invoice
Tributación
Estado del mensaje String No. Nombre: AccountInvoiceElectronic
recibido por state_tributacion
Tributación
Estado de String No. Nombre: AccountInvoiceElectronic
aceptación o rechazo state_invoice_partner
de las facturas de
proveedor / cliente
Nota: Obtenido del anexo 1 de la Resolución DGT-R-48-2016 v. 4.2. (Dirección General de Tributación, 2016). Los campos
que se encuentran con un asterisco significan que, sí están en la clase, pero necesitan un ajuste a nivel del dato al
momento de enviar el XML al Ministerio de Hacienda.
Con lo obtenido, se elabora la Figura 4.19 que muestra el diagrama de clases con detalles
de implementación. El cual muestra las clases propias del sistema Odoo solo citadas, no se muestra
descuentos y totales.
+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*
electrónicos. Sobre esta función se realizarán los cambios para incluir las mejoras
de facturación electrónica.
Figura 4.19 – Diagrama de Clases con detalles de implementación. Fuente: Elaboración propia. Nota: detalle de clases de Odoo en el Apéndice I.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 174
comprobante electrónico.
muestran todos los campos necesarios para cumplir la resolución, pero una vez creados varios de
esos campos estarán ocultos para el usuario final buscando no mostrarle información innecesaria.
- Total_amount.
- Total_discount.
- Total_tax.
- Exoneration_total_Tax.
- Total_line_exoneration.
- Taxed_services_total.
- Exempt_services_total.
- Taxed_goods_total.
- Taxed_total.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 175
- Exempt_total.
- Sale_total.
- Exempt_total.
- Net_total .
En la siguiente actividad del ciclo de vida del desarrollo de sistemas se procede a realizar por
medio de mockups los desarrollos de las clases definidas en el diagrama de clases con detalles de
implementación.
F en la plantilla D.
En esta actividad se busca por medio de un prototipo no funcional mostrar los desarrollos
para el sistema Odoo pueda cumplir con la resolución DGT-R-48-2016. Estos prototipos son
diferentes pruebas para que la Empresa realice una vez desarrollado el proyecto.
Lo primero es crear los modelos nuevos que afectan a los comprobantes electrónicos, estos
serían métodos de pago que se observan en la Figura 4.20, condiciones de pago en la Figura 4.21,
Figura 4.20. Vista Lista de Métodos de Pago. Fuente: Elaboración propia utilizando Odoo Studio.
En el caso de la Figura 4.21 se muestra inicialmente la vista formulario que tiene los
campos de nombre, secuencia, activo y notas. En la parte inferior de la Figura 4.21 se muestra la
vista lista de los métodos de pago con las columnas de secuencia y nombre.
Figura 4.21. Vista Formulario y lista de Condiciones de Venta. Elaboración propia utilizando Odoo Studio.
En las vistas formulario solo es posible observar los campos públicos que estaban en el
diagrama de clases con detalles de implementación. Los campos privados son aquellos que el
Figura 4.22. Vista formulario de Documentos de Referencia. Elaboración propia utilizando Odoo Studio.
Además, en cada modelo que se debe crear es necesario desarrollar los permisos de usuario
para evitar la creación, eliminación o modificación de los registros. Las operaciones anteriores
Figura 4.23. Vista lista de Códigos de Referencia. Fuente: Elaboración propia utilizando Odoo Studio.
Los códigos o secuencias se basan en las tablas que brinda la resolución de los
comprobantes electrónicos. En los archivos tipo PDF se debe mostrar el campo nombre, pero en
los archivos XML deben ir los códigos que se muestran en cada figura.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 178
Figura 4.24 . Vista formulario de la Resolución. Elaboración propia utilizando Odoo Studio.
Algunos formularios cuentan con el campo llamado activo. Este campo tiene una
característica especial en el funcionamiento del sistema Odoo, cuando un registro tiene desmarcada
la casilla de verificación, el programa interpreta que debe ocultar ese registro, brindando una
eliminación a nivel lógico. De ser necesario, un usuario con permisos suficientes puede volver a
Figura 4.25. Menús en configuración de contabilidad. Fuente: Elaboración propia utilizando Odoo Studio.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 179
Luego de lo desarrollado en los módulos anteriores, se deben definir los tres modelos de
lugares, que serían cantones en la Figura 4.26, distritos en la Figura 4.27 y barrios en la Figura
4.28.
Figura 4.26. Vista lista de Cantones. Fuente: Elaboración propia utilizando Odoo Studio.
tienen los diferentes cantones, distritos y barrios del país. En la Figura 4.27 se muestra la relación
Figura 4.27.Vista formulario de distritos seleccionando un cantón. Elaboración propia utilizando Odoo Studio.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 180
Por buena práctica en el desarrollo en el software de Odoo, los campos que son
relacionados con otras clases, es decir, de tipo Many2One deben terminar con _id. En el caso de
Figura 4.28. Vista lista de barrios. Fuente: Elaboración propia utilizando Odoo Studio.
Figura 4.29. Menús en configuración de localización. Fuente: Elaboración propia utilizando Odoo Studio.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 181
Continuando con los desarrollos, se debe crear el modelo para el tipo de identificación, este
Figura 4.30. Vista lista de tipos de identificación. Fuente: Elaboración propia utilizando Odoo Studio.
Figura 4.31. Vista formulario de Exoneraciones. Fuente: Elaboración propia utilizando Odoo Studio.
El siguiente proceso es desarrollar los campos por medio de herencia, iniciando por la
compañía que se observa en la Figura 4.32 y luego por los contactos Figura 4.33.
En el caso del modelo de la compañía, se creó un campo llamado firma, este será de tipo
file (archivo) y contendrá la llave criptográfica del Ministerio de Hacienda o el archivo de la firma
Figura 4.32. Vista formulario de compañía. Fuente: Elaboración propia utilizando Odoo Studio.
identificación, así como los campos para contener el código del teléfono (por defecto 506), código
Figura 4.33. Vista formulario de Contactos. Fuente: Elaboración propia utilizando Odoo Studio.
Figura 4.34. Luego los campos de herencia para los productos el cual está en la Figura 4.35 y la
Figura 4.34. Vista lista de tipos de códigos de productos. Fuente: Elaboración propia utilizando Odoo Studio.
El menú para los tipos de código de productos debe plantearse en la configuración del
módulo de almacenes. En la Figura 4.35 se marca de color amarillo los dos campos nuevos creados
en el formulario de productos, esos son los únicos campos que el módulo de productos no tenía y
Figura 4.35. Vista formulario de los productos. Fuente: Elaboración propia utilizando Odoo Studio.
Figura 4.36. Vista formulario de impuestos. Fuente: Elaboración propia utilizando Odoo Studio.
Siguiendo con los desarrollos en los comprobantes electrónicos (tiquetes, facturas, notas
la Figura 4.37 se muestra la parte superior de los comprobantes electrónicos y los cambios a
realizarse. Por otro lado, en la Figura 4.38 se muestran las mejoras en la parte inferior del modelo
de facturación electrónica.
Figura 4.37. Vista formulario parte superior de comprobantes electrónicos. Elaboración propia Odoo Studio.
Los campos de la parte inferior de la Figura 4.38 serán ocultados luego de su desarrollo,
debido a que visualmente no son necesarios para el usuario del sistema, pero sí son requeridos en
Figura 4.38. Vista formulario parte inferior de comprobantes electrónicos. Elaboración propia Odoo Studio.
En la pestaña de otra información se pondrán los últimos campos necesarios para el modelo
automáticamente, luego de enviada la factura y una vez recibida la respuesta por parte del cliente
proveedor el campo que quedará vacío será el campo del cliente. El de Tributación siempre deberá
Figura 4.39. Vista formulario pestaña de otra información comprobantes electrónicos. Elaboración propia.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 186
Finalmente, se hará la herencia a las líneas de las facturas. Tiene la característica que la
mayoría de sus campos se ocultarán y su función será solo para el envío de los documentos XML.
Figura 4.40. Vista formulario líneas comprobantes electrónicos. Elaboración propia utilizando Odoo Studio.
diagrama de clases, con el objetivo de darle la capacidad al sistema sobre la emisión y recepción
propuesta de solución.
Continuando con las actividades del proceso de SDLC, se definen dos actividades para las
pruebas: la actividad nueve que corresponde a las pruebas de calificación del software y la
actividad 11 que se enfoca en las pruebas de calificación del sistema, donde se debe realizar un
proceso exhaustivo de revisión y corrección del sistema Odoo con las mejoras propuestas en el
proyecto.
expuesto en el proyecto.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 187
segunda etapa del proceso SDLC. Se debe indicar si se realizó el requerimiento. En caso de no
haberse realizado, explicar la razón o realizar el desarrollo para completar ese requerimiento.
Sí / No
Sí / No
Sí / No
Es necesario también verificar que el sistema y la empresa Delfix cumplan con las
obligaciones tributarias desarrolladas en el proyecto. Los requerimientos por cumplir son los
deberá asumir las obligaciones de esta figura. También, es necesario verificar la lista de requisitos
verificar si es mantenible el diseño y realizar cambios si es necesario. Cualquier variante debe ser
Si se realiza algún cambio deben ser revalidado contra los requerimientos no funcionales
del negocio para brindar un servicio óptimo y eficiente para los clientes.
Los casos de prueba se realizan para comprobar los casos de uso desarrollados
Pasos
( ) Fallido
Fecha:
Por otro lado, en la Tabla 4.28 se realiza un caso de prueba para crear un producto o servicio
en el sistema Odoo.
Pasos
Fecha:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 192
Siguiendo con los casos de prueba, se desarrolla en la Tabla 4.29 el caso de prueba para la
Pasos
electrónico consecutivo.
Fecha:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 193
Pasos
Se tendrá un comprobante
electrónico ( ) Exitoso
( ) Fallido
modificado enlazado a otra factura con un
consecutivo.
Fecha:
El siguiente caso de prueba no involucra la manipulación por usuarios sino son acciones que
Pasos
Fecha:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 195
El caso de prueba en la Tabla 4.32 , muestra lo que debería suceder cuando se envía
Pasos
por el proveedor.
Fecha:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 196
Los casos de prueba anteriores son los mínimos que se recomiendan realizar, pero el
Negocio podría ir ingresando nuevos casos, cada vez que realiza nuevas actividades del ciclo de
Las mejoras para los comprobantes electrónicos requiere el desarrollo de varios atributos
y métodos. Estos elementos fueron detallados en la etapa cinco del SDLC. Por lo tanto, se hará
una revisión exhaustiva en los atributos para verificar que se cumple con los tipos de campo
correctos en Python, con validaciones del tamaño máximo que soporta y los nombres técnicos sean
los propuestos en el proyecto. En el caso de los métodos, es necesario confirmar que realizan la
funcionalidad esperada.
modelo correcto en Odoo y también, que los modelos que necesitan datos previos estén
En la actividad seis del diseño detallado de software se presentan por medio de una
herramienta del sistema de Odoo los desarrollos que debe contener el proyecto. La recomendación
final de las pruebas es desarrollar basado en ese prototipo no funcional apoyado con el diagrama
de clases con detalles de implementación. En caso de realizar algún cambio, este deberá
5. Capítulo 5
Propuesta de Solución
electrónica para Delfix Tecnosoluciones y sus clientes. Comprende los pasos para que un
contribuyente pueda emitir comprobantes electrónicos y para desarrollar el diseño propuesto por
la Compañía.
Para que una empresa o persona física pueda emitir comprobantes electrónicos primero debe
facturación electrónica, proseguir con un método para firmar los comprobantes electrónicos y
registrarse en el sitio Tribunet para ser emisor-receptor electrónico. Con lo anterior, la Compañía
podrá emitir y recibir comprobantes electrónicos. En la Figura 5.1 se muestra un resumen del
1. Registro como
contribuyente
2. Selección de
5. Emisión de
sistema para la
facturación
emisión de
electrónica
comprobantes
Comprobantes
Electrónicos
3. Selección de
4. Registro como
Mecanismo para
emisor-receptor
el firmado
Figura 5.1. Ciclo para la emisión de comprobantes electrónicos. Basado en la Resolución DGT-R-48-2016 v.
Según las leyes tributarias de Costa Rica, cualquier persona física o jurídica que realice actividades
lucrativas debe inscribirse como contribuyente ante la Dirección General de Tributación. Se puede
realizar en línea utilizando el sitio Tribunet del Ministerio de Hacienda o en cualquier oficina de
Tributación en el país.
Para realizar esta proceso se utiliza la declaración de inscripción del registro único
tributario conocido como D-140. Se deben llenar los datos del obligado tributario como la cédula,
representantes legales.
(ATV), donde debe subir las declaraciones de impuestos de renta, de impuestos de ventas y las
La Dirección General de Tributación irá notificando a los diferentes sectores del país su obligación
de emitir facturación electrónica, por lo tanto, estos contribuyentes contarán con un sistema
En el caso de optar por un desarrollo propio, el negocio debe elaborar y mantener su propio
sistema e irlo adaptando a los cambios que surjan en la resolución, por lo general son las empresas
grandes las que invierten en este escenario. Es necesario analizar además el costo del desarrollo,
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 199
el cual podría ser alto y además, el mantenimiento podría serlo aún más, debido a que el Ministerio
puede realizar actualizaciones a la ley y estas pueden tener impactos fuertes en los sistemas
desarrollados.
En el caso de contratar un desarrollo de un tercero, será la opción más común entre las
compañías. Se cuenta con una serie de proveedores que brindan el servicio, entre estos Delfix
Tecnosoluciones. El costo del servicio por lo general será por comprobante electrónico, es decir,
por cada factura que se realice se le cobrará un monto a la empresa. Esto tendrá la ventaja que los
cambios en la ley no representaría ningún costo adicional para las compañías que contraten estos
servicios.
Finalmente, si se quiere optar por un sistema gratuito, esto aún no está disponible por parte del
Ministerio de Hacienda, la fecha estimada será para enero del 2018 según los últimos
comunicados. Sin embargo, en la resolución se indica que tendrán acceso las empresas registradas
para firmar los comprobantes electrónicos, para esto se tienen tres opciones: firma digital (personas
físicas), sello electrónico (personas jurídicas), llave criptográfica del Ministerio de Hacienda. Las
dos primeras tienen un costo por adquirirlas y deben ser tramitadas por el Banco Central de Costa
Además, es posible descargar una llave criptográfica a nivel de pruebas y otra llave para
producción.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 200
sitio ATV, que sirve para solicitar un token necesario para enviar los comprobantes electrónicos,
Una vez seleccionada la forma para el firmado electrónico de los comprobantes, el siguiente paso
luego registro de facturación electrónico como se muestra en la Figura 5.3. y en la parte inferior
se tendrá que marcar un recuadro sobre haber leído y aceptado lo correspondiente a la resolución
DGT-R-48-2016.
Figura 5.3. Registro de Facturación electrónica. Imagen obtenida del sitio https://tribunet.hacienda.go.cr/
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 201
recordando que las opciones son tres: emisor/receptor electrónico, receptor electrónico – no emisor
emisor/receptor.
5.4 se muestra un ejemplo de este. Este documento debe ser visible en las oficinas o local comercial
del cliente.
Figura 5.4. Constancia de Registro en Facturación Electrónica. Imagen obtenida del sitio
https://tribunet.hacienda.go.cr/
Una vez realizados los pasos anteriores, el contribuyente estará preparado para emitir y
proveedor externo, esta es una razón para el desarrollo del proyecto. Por lo tanto, en el capítulo 4,
se presentó ampliamente lo que necesita el sistema Odoo para funcionar con la facturación
El orden para desarrollar los módulos y los datos que deben registrarse son los siguientes:
ubicación son las deben desarrollarse. Para rellenar la información basarse en el documento
de Tribunet.
incluye un campo para adjuntar la firma, que podría ser la llave criptográfica del Ministerio
4. PartnerElectronic: La siguiente clase por desarrollar es la herencia para los clientes, esta
tiene una relación con las clases anteriores desarrolladas de ubicaciones y de tipo de
resolución.
6. ProductElectronic: La herencia de productos será la siguiente por desarrollar, está tiene una
relación con el módulo de tipos de código de productos y además un campo para escribir
de manera opcional cuando el producto tenga una medida comercial diferente de las
especificadas en la ley.
incluir un campo para el código de impuestos. Se debe hacer la carga de datos con lo
10. SaleConditions: Luego desarrollarse las condiciones de venta y llenarse con los datos de la
Tabla 4.3 .
12. ReferenceCode: Se debe continuar con la creación del módulo de códigos de referencia, la
14. InvoiceLineElectric: La herencia a las líneas de facturas sería lo siguiente por desarrollar.
Las líneas tienen una relación con la tabla de exoneration, además desarrollar una función
para obtener el porcentaje de exoneración. También, una función que calcule los totales de
15. AccountInvoiceElectronic: Este sería el último desarrollo en las clases del sistema. Tiene
resolución, compute_amount, que brinda los totales a la factura, send_invoice que envía al
En los desarrollos en Odoo se pueden cargar los módulos con datos previos, debido a esto, se
ha indicado con que tabla o documento se debe basar el desarrollador para rellenar la información.
Para realizar esto a nivel técnico se crea un archivo XML con los datos a ingresar. La ubicación
de estos archivos se hace típicamente en el sistema en una carpeta llamada templates. En el archivo
una línea adicional indicando cuáles archivos con datos de inicio debe cargarse. Un ejemplo del
documento XML puede ser la Tabla 4.18 que corresponde a los tipos de documento de referencia
Figura 5.5. Ejemplo carga de datos archivo XML. Fuente: Elaboración propia del archivo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 205
A continuación se detallan los pasos para enviar los comprobantes electrónicos hacia el
Ministerio de Hacienda ha definido esquemas de XML (en inglés, Schemas XML) para sus
diferentes documentos electrónicos, estos muestran la estructura que tiene que contener cada
documento XML que se envíe al sistema del Ministerio. Una herramienta para validar los
documentos XML con los esquemas puede ser la página en línea: https://www.xmlvalidation.com,
que basta con subir el documento XML y luego el XML Schema y el sistema validará que se cumpla
con la estructura.
una implementación en C para Python que cuenta con mejoras en rendimiento y en manejo de la
memoria RAM. Esta librería viene incluida en Python 2.5 y superior (Lundh, 2005). En la Figura
Figura 5.6. Creación de archivo XML. Fuente: Elaboración propia del archivo
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 206
El archivo que se generará en XML sería similar al de la Figura 5.7. El método para desarrollar lo
Luego de generado el XML, se debe realizar un proceso para iniciar sesión con el Ministerio de
Hacienda. El anexo tres de la resolución DGT-R-48-2016 indica cómo hacer el proceso para iniciar
sesión y utilizan el protocolo OAuth 2.0. Para consumir el web service estilo RestFull, se utilizará
1. Producción: https://idp.comprobanteselectronicos.go.cr/auth/realms/rut/protocol/openid-
connect/token
2. Pruebas: https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-
connect/token
Los parámetros para realizar el inicio de sesión se obtienen desde el sitio ATV que se mostró
anteriormente en la Figura 5.2, que serían el username y el password. La estructura del username
grant_type que siempre lleva la palabra password, client_id que lleva api-stag para pruebas y api-
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 207
prod para producción, además de lo mencionado con el username y password. En la Figura 5.8. se
Si se hace correctamente se obtendrá un código “200 OK” y devolverá un JSON con los datos
del token, el cual se muestra en la Figura 5.9, este debe ser renovado cada 5 minutos. Cada vez
que se crea un comprobante se solicita el token para estar en la capacidad de enviar los
comprobantes electrónicos.
Figura 5.8. Consumiendo el Token. Fuente: Elaboración propia utilizando el programa ARC.
El método por desarrollar según el diagrama de clases sería get_token y se ejecuta una vez
que el cliente valida algún documento electrónico. El sistema estará en la capacidad de recibir un
archivo JSON, el cual deberá ser almacenado en una variable y luego utilizado para enviar el
En el anexo dos de la resolución se indica que cada comprobante electrónico debe ir firmado. La
firma será realizado bajo el formato XAdES-EPES. XadES es el acrónimo para el estándar XML
En el caso del empaquetado de la firma, se debe utilizar el Enveloped, esto significa que
tanto el documento XML como la firma se encuentran en un mismo archivo y dentro de la misma
estructura XML. Existe otro modelo conocido Attached, el cual se encuentran en el mismo archivo,
El nodo a utilizar debe ser el ds:Signature, el cual se puede observar un ejemplo del XML en
la Figura 5.10.
Es decir, se debe crear el documento XML y luego de que este creado es necesario realizar
el firmado del archivo para luego proceder a enviarlo. El Ministerio de Hacienda habilitó la
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 209
debe obtener el token para iniciar sesión antes de enviar el documento electrónico.
Figura 5.10. Nodo de la firma en la factura electrónica. Imagen obtenida de los Anexos y Estructuras de la
Resolución DGT-R-48-2016
Para firmar un documento electrónico se hará uso de un programa externo. Este se realizará
utilizando servicios web con el sistema Odoo. Actualmente en Python no existen librerías para el
Luego de tener el documento XML firmado, este debe convertirse a un byte array y codificarse en
tipo texto compuesto por un juego de 64 caracteres (Castro, 2010). Permitiendo que los archivos
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 210
actúen como texto sin formato. Es necesario mencionar que el texto no está encriptado, solo
En el caso de Python se cuenta con la clase Base64, que permite codificar y decodificar
archivos. En la Figura 5.11 se muestra un ejemplo de cómo convertir el XML firmado a Base64.
XML y codificado en base64, se debe enviar al Ministerio de Hacienda un mensaje tipo JSON.
indica que se tendrán los siguientes métodos para el envío de comprobantes o respuestas del
receptor:
- Get (/recepción/{clave}: obtiene el estado del comprobante indicado por la clave numérica.
Además, se tienen dos métodos adicionales para solicitar información de los comprobantes
enviados:
El documento JSON que se forma tiene los siguientes campos requeridos: clave, fecha, emisor
campos opcionales: callbackURL que es la dirección web (URL) utilizada para que Hacienda envíe
campo consecutivoReceptor.
Un ejemplo del envío de los datos de un comprobante electrónico se muestra en la Figura 5.14.
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/comprobantes-electronicos-api.html#recepcion_post
En el caso de Python para generar archivos JSON, se realiza por medio de la clase del
mismo nombre y se utilizan principalmente dos funciones, la dumps para generar un String estilo
JSON y la loads para decodificar un JSON. En general, para crear los datos, se crea un arreglo
donde se cargarán los elementos requeridos y opcionales. En la Figura 5.15 se muestra una
Figura 5.15. Codificación del método JSON para enviar a Tributación. Fuente: Elaboración propia.
access_token obtenido al solicitar iniciar sesión. Por otro lado, enviar el JSON generado, el cual
es similar a la Figura 5.16. Una vez enviado el comprobante electrónico, se podrá consultar el
documento utilizando los otros tres métodos habilitados por el Ministerio de Hacienda.
En el caso de los otros tres métodos, igual se puede utilizar la herramienta ARC. En el
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/comprobantes-electronicos-api.html
Por otro lado, el método /comprobantes tiene cuatro funciones para retornar comprobantes,
https://tribunet.hacienda.go.cr/docs/esquemas/2016/v4.2/comprobantes-electronicos-api.html#comprobantes_get
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 215
devuelve un JSON de ese comprobante. Es necesario recalcar que para utilizar los métodos se
A nivel del desarrollo para utilizar los servicios REST con Python, existe una librería para
este propósito llamada Flask-RESTful. Este módulo permite crear servicios con un estilo
arquitectónico REST y además, consumir los métodos REST. Se recomienda utilizar esta librería
para el desarrollo. En la Figura 5.19 se muestra un ejemplo de cómo crear un servicio web
utilizando REST.
Figura 5.19. Servicio REST utilizando librería flask_restful. Fuente: Elaboración propia
Por otro lado, un cliente para utilizar un servicio REST se muestra en la Figura 5.20. Como
Figura 5.20. Cliente para utilizar servicios REST. Fuente: Elaboración propia
receptor electrónico. La forma de envío se puede definir entre el receptor y emisor, pero
inicialmente el proceso se estará realizando por correo electrónico. Es posible que dentro de un
tiempo estas figuras de emisor-receptor utilicen servicios web para automatizar el proceso.
En el caso del envío al receptor se le debe mandar el XML generado y firmado de los pasos
Además, remitir la respuesta del Ministerio de Hacienda sobre la aprobación o rechazo del
En caso de no recibir respuesta por parte del Ministerio de Hacienda sobre el estado de un
comprobante electrónico luego de tres horas, se puede volver a revisar el comprobante utilizando
el método rewiew_state_xml.
en el sistema Odoo. En el apéndice H se cuenta con la aprobación y comprensión del negocio para
este capítulo .
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 217
6. Capítulo 6
Conclusiones
En este capítulo se hará una síntesis de las conclusiones sobre los aspectos más relevantes que se
El desarrollo del proyecto debe enfocarse en el cumplimiento de los objetivos planteados al inicio
de la investigación, por lo tanto, se procede a resaltar las conclusiones obtenidas en cada objetivo
planteado.
- ¿Cuáles son los reglamentos, leyes o regulaciones que norman o afectan la facturación
4.2. Se complementa también con la Ley 4755 – Código de Normas y Procedimientos Tributarios,
Ley 8454 – Ley sobre Certificados, Firmas Digitales y Documentos Electrónicos y Ley 9416 –
Entregables:
Conclusiones:
• Basado en las entrevistas, el 70% de los gerentes consideran que la implantación de los
- ¿Cuáles son los requisitos para que una empresa o persona pueda brindar de manera electrónica
la facturación?
En el desarrollo del proyecto se determinan los requisitos para que un contribuyente pueda emitir
- ¿Cuáles son los requerimientos mínimos para que un sistema pueda emitir comprobantes
electrónicos?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 219
Entregables:
seguridad y operacionales.
Conclusiones:
uno de los sectores económicos del país. Por lo tanto, es necesario conocer y acatar las
- ¿Cómo se relacionan los módulos actuales del sistema con lo que solicita Tributación
Directa?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 220
El sistema Odoo cuenta con módulos para facturación de clientes y de proveedores, además de
integración con servicios web y envío de correos electrónicos. Por lo tanto, se realizan
- ¿De qué manera se desarrollarán los faltantes encontrados en el sistema para emitir
facturación electrónica?
Por medio de la identificación de los campos y métodos carentes en el sistema Odoo, se realiza un
diagrama de clases con detalles de implementación para desarrollar las mejoras de los módulos de
Entregables:
- Identificación de campos con su tamaño, tipo y obligación para los comprobantes electrónicos.
Conclusiones:
• Se demostró por medio del prototipo realizado que es posible realizar las mejoras indicadas
un sistema que cumpla con las obligaciones y requerimientos solicitados por el Ministerio
• Se concluye que el diagrama de clases elaborado tiene restricciones para cumplir con los
principios de software como el ISP y DIP debido a la estructura propia del sistema Odoo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 221
de la facturación electrónica.
- ¿Qué elementos necesita Odoo a nivel de arquitectura para soportar los comprobantes
electrónicos?
R-48-2016.
Entregables:
Conclusiones:
plazos entre las figuras de la resolución para el envío de los documentos y respuestas de
información.
Este plan de implementación puede ser utilizado por los obligados tributarios o empresas
que necesiten elaborar un software para comprobantes electrónicos basado en la resolución DGT-
R-48-2016 en la versión 4.2, debido a que este muestra los pasos necesarios que deben cumplirse
7. Capítulo 7
Recomendaciones
En este capítulo se exponen diferentes recomendaciones para los objetivos planteados y para el
Negocio que han surgido como parte del desarrollo del proyecto.
Recomendaciones:
• Se recomienda realizar sesiones con los clientes y colaboradores sobre temas generales de
Recomendaciones:
requerimientos en el sistema.
• Para realizar el desarrollo de las mejoras para el sistema Odoo, se recomienda utilizar como
de la facturación electrónica.
• Analizar nuevos esquemas de arquitectura para clientes que necesitan sistemas locales por
infraestructura y el sistema.
• Elaborar una propuesta para la comercialización del sistema Odoo con la facturación
electrónicos y los ingresos que se obtendrán una vez puesto en funcionamiento la nueva
• Ingresar al Comité Nacional de Factura Electrónica, para analizar las necesidades técnicas
8. Referencias
Aguilar, E., Calderón , J., Fallas, J., & Umaña, G. (2016). Plan Estratégico de Tecnologías de
Mexicana, S. A. Obtenido de
http://www.derechoshumanos.unlp.edu.ar/assets/files/documentos/como-hacer-
investigacion-cualitativa.pdf
https://costarica.eregulations.org/media/c%C3%B3digo%20tributario.pdf
Asamblea Legislativa de Costa Rica. (13 de octubre de 2005). Ley 8454. Ley de certificados,
firmas digitales y documentos electrónicos. San José, Costa Rica: La Gaceta. Obtenido de
http://www.firmadigital.go.cr/Documentos/ley%208454.pdf
vida del software (ISO/IEC 12207:1995). Norma Española UNE 71044. Génova, Madrid,
http://www.aenor.es/aenor/normas/normas/fichanorma.asp?tipo=N&codigo=N0022235#.
WT90dmg1_IU
Obtenido de http://amexipac.org/assets/impactos-sectoriales-amexipac.pdf
Bautista, E. (2013). Sistemas de apoyo a los servicios académicos que ofrece la COPADI.
Obtenido de
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/4172/Tesis.
pdf.pdf?sequence=1
http://flanagan.ugr.es/docencia/2005-2006/2/apuntes/ciclovida.pdf
politica/Columna_tributaria-factura-electronica-dolares-moneda_extranjera-
fisco_0_1170482953.html
spacio.uned.es/fez/eserv/tesisuned:IngInf-Rcastro/Documento.pdf
http://www.redalyc.org/articulo.oa?id=181531232001
Colegio de Contadores Públicos de Costa Rica. (2011). Circular Nº 06-2014. Circular, Costa
Rica.
Tecnología de la Información. Procesos del ciclo de vida del software. Norma Técnica
http://www.senasa.gob.pe/senasa/wp-content/uploads/2014/11/Certificacion-citricos-a-
mexico_26_mayo_2105_2.pdf
Cordero, C. (07 de Marzo de 2017). Tributación: factura electrónica inicia con 10 empresas el 21
http://www.elfinancierocr.com/tecnologia/factura-electronica-Ministerio-Hacienda-
Tributacion-Directa_0_1135086483.html
Obtenido de http://repositorio.uned.ac.cr/reuned/bitstream/120809/1157/1/2%20-
%20La%20espiral%20metodol%C3%B3gica%20de%20la%20investigaci%C3%B3n.pdf
Cruz Alaniz, A., & Zamora López, A. (2013). La Compra-Venta Electrónica: Estudio
Universidad de Costa Rica, Facultad de Derecho, San José, Costa Rica. Obtenido de
http://iij.ucr.ac.cr/wp-content/uploads/bsk-pdf-manager/2017/06/La-Compra-Venta-
Electr%C3%B3nica-Estudio-Comparativo-de-la-Legislaci%C3%B3n-de-la-
Uni%C3%B3n-Europea-y-la-Legislaci%C3%B3n-Costarricense.pdf
Cruz, M., & Velázquez, R. (2015). Construcción de una página web con PHP y LATEX para el
http://www.fcfm.buap.mx/assets/docs/docencia/tesis/matematicas/RosaVelazquezMedina
https://www.delfixcr.com/ediciones.html
Dirección General de Tributación. (01 de octubre de 2007). Nº DGT-22-07. 188. San José, Costa
Rica: La Gaceta.
Dirección General de Tributación. (09 de enero de 2009). Resolución DGT-02-09. Costa Rica.
Único Tributario. San José, Costa Rica: Gobierno de Costa Rica. Obtenido de
https://tribunet.hacienda.go.cr/docs/ManualFacturaElectronicaV1.pdf
Obtenido de
https://www.imprentanacional.go.cr/pub/2016/10/14/ALCA221_14_10_2016.pdf
inicio del uso de comprobantes electrónicos para los sectores aquí definidos. (N 178).
Obtenido de https://www.imprentanacional.go.cr/gaceta/?date=20/09/2017#hacienda
Dirección General de Tributación. (3 de abril de 2017). DGT-R- 21-2017. Alcance No 82, 2. San
https://www.facturaelectronica.cr/web/paginas/inicio/PDF.aspx?PDF=DGT-R-21-2017
Dirección General de Tributación. (20 de febrero de 2017). DGT-R-13-2017. San José, Costa
Rica: La Gaceta.
Downey, A., Elkner, J., & Meyers, C. (2002). Aprenda a Pensar Como un Programador con
https://www.researchgate.net/publication/228341985_Investigacion_en_Ingenieria_del_S
oftware_vs_Desarrollo_Software
Fawcett, J., Ayers, D., & Quin, L. (2012). Beginning XML (Quinta ed.). Wrox.
Fernández , M., & Téramond, C. (2002). Concepto, valor jurídico y regulación de la firma
digital en Costa Rica. Universidad de Costa Rica, Facultad de Derecho, San José.
Obtenido de http://repositorio.sibdi.ucr.ac.cr:8080/jspui/handle/123456789/1357
Free Software Foundation. (2001). El sistema operativo GNU. Obtenido de ¿Qué es el software
libre?: https://www.gnu.org/philosophy/free-sw.es.html
http://www.ief.es/documentos/recursos/publicaciones/revistas/cuadernos_formacion/2014
_18_19.pdf
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design patterns : elements of
García Salinas, P. (2012). La factura electrónica como medida para evitar la evasión de
http://ri.uaq.mx/xmlui/bitstream/handle/123456789/1104/RI000534.pdf?sequence=1&is
Allowed=y
GobiernoCR. (11 de Mayo de 2015). GobiernoCR - Por una ciudadanía mejor informada.
Obtenido de http://gobierno.cr/firma-digital-supero-los-100-mil-certificados-digitales/
GobiernoCR. (20 de Enero de 2017). Gobierno logró una reducción del déficit fiscal en el 2016.
deficit-fiscal-en-el-2016
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 230
http://www.cua.uam.mx/pdfs/conoce/libroselec/Notas_Analisis_Requerimiento.pdf
Obtenido de https://repositorio.itesm.mx/ortec/handle/11285/571244
GS1 Costa Rica. (2009). Guia de Implementación de Factura Electrónica (Vol. 2). San José,
Costa Rica.
Guillermo, E., & Dávila, D. (2013). Análisis, diseño e implementación de la aplicación web para
Hernández, J., & Vega , A. (2009). Desarrollo e Implantación de un Sfotware ERP para la
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/1136/Tesis.
pdf?sequence=1
Hernández, R., Fernández, C., & Baptista, M. (2014). Metodología de la investigación (Sexta
Obtenido de
http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/4271/Tesis
_Cuau_v5.pdf?sequence=1
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 231
IEEE Computer Society. (2014). Guide to the Software Engineering Body of Knowledge
2:v1:en
Jara, F., & Neira, B. (2013). Sistema de Planificación de Recursos Empresariales para una
http://repobib.ubiobio.cl/jspui/bitstream/123456789/144/3/Jara%20Saez,%20Francisco.p
df
summit.com
Louis, C. (2017). Contabilidad Electrónica Localizada a México. (Odoo, Editor, & Odoo)
5/post/nueva-localizacion-mexico-365
http://effbot.org/zone/celementtree.htm
http://www.cvc.uab.es/shared/teach/a21291/temes/object_oriented_design/materials_adic
ionals/principles_and_patterns.pdf
http://reventazon.meic.go.cr/informacion/pyme/2017/informe.pdf
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 232
Ministerio de Hacienda. (20 de abril de 2015). Ministerio de Hacienda Costa Rica. Recuperado
de-tributacion
Mogrovejo, J. (2017). Implementación del ERP Open Source Odoo en una PYME. Tesis de
http://www.dspace.espol.edu.ec/xmlui/bitstream/handle/123456789/38698/D-
106139.pdf?sequence=-1&isAllowed=y
https://carmonje.wikispaces.com/file/view/Monje+Carlos+Arturo+-
+Gu%C3%ADa+did%C3%A1ctica+Metodolog%C3%ADa+de+la+investigaci%C3%B3
n.pdf
Moss, G. (2015). Working with Odoo. Packt Publishing Ltd. doi:ISBN 978-1-78439-455-4
Perú. Obtenido de
http://repositorio.puce.edu.ec/bitstream/handle/22000/6386/9.21.000676.pdf?sequence=4
&isAllowed=y
http://users.dsic.upv.es/~rnavarro/NewWeb/docs/RestVsWebServices.pdf
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 233
https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html
Ortiz, P., & Abad, C. (2009). Desarrollo de sistemas basados en estándares y código open
source. Tesis de Grado, Escuela Superior Politécnica del Litoral, Ecuador. Obtenido de
http://www.dspace.espol.edu.ec/xmlui/handle/123456789/354
http://tesis.ucsm.edu.pe/repositorio/handle/UCSM/6026
http://www.lawebdelprogramador.com/pdf/1899-Compendio-de-Ingenieria-del-Software-
rev-07.html
Palomino, J., & Poma, A. (2015). Sistemas ERP. Universidad Peruana Los Andes,
https://es.scribd.com/document/271940691/SISTEMA-DE-INFORMACION-ERP
http://minerva.uca.es/publicaciones/asp/tesis/pastor_fernandez.pdf
Peñas, A. (2016). Implantación del ERP Odoo en una PYME dedicada al Comercio Minorista.
http://uvadoc.uva.es/handle/10324/16892
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 234
https://www.odoo.com/es_ES/blog/nuestro-blog-5/post/odoo-the-new-openerp-156
Project Management Institute, Inc. (2013). Guía de los fundamentos para la Dirección de
Proyectos (5 ed.).
Obtenido de http://www.redalyc.org/articulo.oa?id=17501402
Universidad de Costa Rica, Facultad de Derecho, San José, Costa Rica. Obtenido de
http://repositorio.sibdi.ucr.ac.cr:8080/jspui/handle/123456789/1448
Recio, A. (1998). Estudio del proceso de cambio y resistencia por implantación de sistemas ERP
http://www.mty.itesm.mx/die/ddre/transferencia/Transferencia45/eep-05.htm
Reis, D. (2015). Odoo Development Essentials. Birmingham, Reino Unido: Packt Publishing
Ltd.
http://repositorio.uasb.edu.ec/bitstream/10644/4782/1/T1794-MT-Rodriguez-
La%20facturacion.pdf
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 235
doi:10.13140/RG.2.2.11325.05603
Rodríguez, G., Flores, J., & García, E. (1996). Enfoques de la Investigación Cualitativa.
http://media.utp.edu.co/institutoambiental2011/archivos/metodologia-de-la-
investigacion-cualitativa/investigacioncualitativa.doc
Rossum, G. v. (2017). El tutorial de Python. (F. Drake, Ed.) Python Software Foundation.
Obtenido de http://docs.python.org.ar/tutorial/pdfs/TutorialPython3.pdf
Servicio de Impuestos Internos de Chile [SII]. (2017). Plan Estratégico 2017 - 2021. Santiago,
Stallman, R. (2016). Por qué el «código abierto» pierde de vista lo esencial del software libre.
https://www.gnu.org/philosophy/open-source-misses-the-point.es.htm
Systems and Software Engineering Vocabulary [SEVOCAB]. (s.f). Definitions for software and
https://pascal.computer.org/sev_display/index.action
The Linux Documentación Project [TLDP]. (s.f.). XML-RPC HOWTO. Obtenido de What is
XML-RPC?: http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-intro.html
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 236
tesis.dgbiblio.unam.mx:000694062
vera_rc.pdf?sequence=1
Villafuerte, P. (2016). Análisis y Creación del modelo de Base de Datos para la gestión de las
variables que definen los modelos de contaminación ambiental en el aire, agua, tierra y
CINT-PTG-N.120.pdf
9. Apéndices
9.2.1 A. Plantilla del grupo de enfoque para el análisis de requerimientos del sistema
problemas. Está plantilla tiene el propósito de verificar los requerimientos del sistema, la
clasificación de los requerimientos no funcionales, revisar las partes de los documentos XML,
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
2. Requerimientos detectados
4. Figuras de la resolución
Resumen de la sesión:
9.2.2 B. Plantilla del grupo de enfoque para el diseño de la arquitectura del sistema
problemas. Está plantilla tiene el propósito de verificar la arquitectura del sistema, en donde se
arquitectura de hardware.
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
9.2.3 C. Plantilla del grupo de enfoque para el análisis de los requerimientos de software
problemas. Está plantilla tiene el propósito de confirmar los casos de uso detectado y explicar el
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
9.2.4 D. Plantilla del grupo de enfoque para el diseño de la arquitectura del software
problemas. Está plantilla tiene el propósito de revisar los campos(atributos) y métodos detectados
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
1. Explicación de cada tabla con los campos que debe llevar el sistema
Resumen de la sesión:
9.2.5 E. Plantilla del grupo de enfoque para el diseño detallado del software
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
Descripción del caso de uso <descripción del caso de uso en el contexto del proyecto>
Secuencia Normal
1 1
2 2
3 3
4 4
5 5
6 6
n n
Excepciones <cada excepción inicia con E. y seguido del número del paso con una
prueba>
Pasos
<Pasos que debería realizar un usuario para probar este caso de prueba>
Resultados de la Prueba
<Cual sería la respuesta esperada si el caso de <Se debe indicar si la prueba fue exitosa o
fallido>
prueba funciona correctamente>
Preguntas:
Estoy de acuerdo, esto trae beneficios para el cliente y gobierno. Sin embargo, no siento realmente
un valor agregado en las empresas en sí, porque el proceso considero que es más complejo del que
se hace en este momento. Al final, los productos y servicios se verán encarecidos por la facturación
facturación electrónica?
En los sectores informales aún les falta. La solución sería implementarlo de manera gradual. En
Considero que los principales beneficios son eficiencia, mejores controles y se tendrá un único
respaldo contable el cual estará digitalizado. Por el lado de las desventajas, es que las personas
siempre quieren llevarse su factura impresa por temas de seguridad y respaldos, por lo que
legislación?
En este momento nos encontramos en un cambio de sistema, esto para contar con el tema de la
facturación electrónica.
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
Ese modelo no me gusta, porque es un gasto que se tendrá que transferir al cliente. Actualmente
se gasta imprimiendo las facturas en temas de tinta y el mismo daño de la impresora; y ahora se
Considero que el mejor modelo sería recibir un cobro fijo mensual, que no tenga variaciones por
la cantidad de facturas. Sino es así, puede ser problemático para empresas que realizan facturas
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
En general, nuestra empresa no debe tener problemas, pero me genera igual preocupaciones. Si se
cae el sistema, se paralizaría el negocio. A pesar de esto, no pienso adquirir ningún servicio extra
de internet al principio.
Desarrollaría un portal para que las empresas se conectaran a ese sistema de manera sencilla,
Brindar mayor información del tema. Falta mucha documentación del proceso en que estamos.
Además, realizaría pruebas en el sistema, porque estoy seguro que se caerá una vez que entre la
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
He contemplado realizar gastos en capacitación, en auditoría de los procesos internos y podría ser,
Preguntas:
El país no está preparado para iniciar con la facturación electrónica. Todavía estamos en pañales
para meter esto en las PYMES, el país debería enfocarse en otros proyectos más importantes.
En nuestro caso, hemos consultado a Tributación y las respuesta y manejo del tema nos ha dado
una mala sensación. Se ha utiliza tanto medios virtuales como ir directamente a las oficinas.
facturación electrónica?
No. La facturación electrónica es un proyecto poco viable y tengo serias dudas de que el mismo
Los beneficios principales es el orden que genera, obligará a las empresas en general a llevar
En el caso de los perjuicios, considero que se tendrá que invertir en sistemas de cómputo y se
podría tomar malas decisiones debido a que pronto se tiene que comenzar con la facturación
electrónica.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 249
legislación?
La empresa cuenta con un sistema que si está preparado para la facturación electrónica.
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
Me parece que la mayoría de países utilizan lo realizan de esa manera. Me parece que es una buena
forma de cobro, solo que tengo dudas del monto que se cobraría en el país.
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
Nuestra organización está preparada para esto, no nos preocupa que sea necesario el uso del
internet.
Me enfocaría en dar educación en los aspectos tributarios. La mayoría de personas no tienen bases
sobre esto.
Además, realizar mayor publicidad en medios masivos, porque pronto entrará a regir la factura
electrónica.
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Los gastos serían cualquier adaptación que se deba realizar en el sistema y capacitaciones al
personal.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 251
Preguntas:
Me ha faltado información, pienso que los pequeños empresariales vamos a tener que realizar más
facturación electrónica?
Lo dudo. Es un proyecto complejo para el país y veo difícil la implementación por la forma que se
Los beneficios para el gobierno es lograr reducir la evasión fiscal y en el caso de los negocios no
creo que existan beneficios, es algo que se tiene que cumplir y ya.
Los perjuicios considero que las empresas pequeñas tenemos que invertir más para cumplir y este
legislación?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 252
Asumo que mi sistema lo tendrá, pero aún no se ha realizado las mejoras para esto.
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
Me parece bien que sea por cada factura. Estará ligado al volumen de ventas y se puede incluir
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
No es problemático.
Me enfocaría en dar educación en los aspectos tributarios. La mayoría de personas no tienen bases
sobre esto.
Considero que los canales de comunicación han sido limitados. Se necesita invertir en mayor
Realmente, la información que conozco es por las noticias, pero no parte del Ministerio de
Hacienda.
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Preguntas:
Que aún no está implementado. Falta demasiado información para que sea real en el país.
facturación electrónica?
No, falta información; el país no está preparado para este tipo de proyectos.
Yo no veo beneficios para las empresas. En el caso del país, sería que se mejora la recaudación de
impuestos.
legislación?
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
Ese modelo no me parece, lo veo muy complicado. Además es caro comparándolo con las facturas
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
La facturación electrónica tiene que estar más accesible, deben de facilitar algún sistema porque
no todas las empresas podrán pagarle a otra compañía por utilizar facturación electrónica.
Realmente creo que estos procesos vienen a entorpecer el recaudo en lugar de beneficiar a los
contribuyentes.
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Los nuevos costos serían capacitación a empleado por lo menos dos personas, en caso de que
Es posible que se deba realizar un mayor gasto en tecnología para soportar la facturación.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 255
Preguntas:
Es poco la información que se tiene, nos genera preocupación sobre cuando iniciará nuestro sector
Además, considero que el tema debería ser liderado en la empresa por el contador de nuestra
facturación electrónica?
Siento que no, pero es un deber, porque con la facturación electrónica se reduce el tema de la
En los beneficios que puedo mencionar sería la reducción fiscal y el orden, porque ahora todo
mundo dará facturas en las transacciones. Además, van a ayudar a desnudar a las empresas que
Lo que pienso de perjuicio, es que los negocios no podemos meter facturas del sector salud, por lo
que no entiendo porque inician con ese sector y al final no es un gasto para la contabilidad.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 256
legislación?
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
Mayor información del tema, realmente no se sabe cuál es el proceso a seguir. Se tienen que
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Espero más bien ahorros, como que se reduzca el costo de impresiones, costo de mantenimiento
de las impresoras. Tal vez un gasto sea capacitaciones, pero este será pequeño.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 257
Preguntas:
Para mi lejos de controlar la parte fiscal que le corresponde pagar a cada empresa, más bien esto
También, es necesario inculcar una mayor cultura en impuestos, porque actualmente la gente no
está motivada a pagar impuestos al gobierno debido a que no se ven las obras que realizan.
Por lo tanto, la facturación electrónica dará mayor fuga de negocios porque será más fácil y barato
dan acceso a plataformas gratuitas. Falta una planificación para el despliegue de este proceso,
Además, las PYMES tendrán que invertir en desarrollar mejoras a su sistema las cuales será
facturación electrónica?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 258
No. deberían realizar una planificación de unos 5 a 10 años para ir implementando gradualmente
la factura electrónica. Es ilógico la forma en que el gobierno va a salir a la fuerza, aunque las
Los beneficios podrían ser que se tendrán controles en las ventas y gastos de las compañías,
además, que los ciudadanos tendrán mayor información para pagar sus tributos.
Pero desde el lado negativo veo que el país no tiene una cultura de impuestos y considero que este
cambio no se podrá realizar. Además, el cambio ha sido demasiado acelerado y puede ser que esto
legislación?
No, estoy investigando para ver que existe en el mercado y desarrollarlo para mi negocio y no
depender de un tercero.
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
No, creo que el gobierno debería de dar la plataforma, sin que se cobre un solo centavo. Por eso
se pagan impuestos. Esto sería un incentivo, la gente usaría y acogería mejor la facturación
electrónica. El Gobierno hace que el empresario tenga que gastar más dinero porque deberá
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
No tengo dificultades en ese aspecto. Igual pienso que no todo el país tiene acceso a internet y esto
Iniciaría con educación fiscal. Actualmente no se cuentan con esto, por eso la gente evade
impuestos y tributos.
Se tiene un alto riesgo del que el proyecto falle debido a la falta de comunicación técnica eficaz
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Muchas empresas tendrán que cambiar su sistema completamente, el costo de esto puede ser
capacitaciones.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 260
Es necesario para el país . En otros países ya se implementa y por orden es mejor para la empresa
facturación electrónica?
La verdad es que el país nunca va a estar preparado, por lo tanto , tiene que ser un cambio disruptivo
y ponerse en práctica de una vez y en el camino ir cambiando los errores que se detecten.
Beneficio: Más orden, menos papel, se complica menos el tema de la facturación y trámite entre
las compañías y mejora la comunicación con el Ministerio de Hacienda. También, los proveedores
Pienso que los perjuicios solo son para los evasores fiscales.
legislación?
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 261
5. ¿Estaría dispuesto a pagar una renta mensual por el uso del software? Típicamente, este
Todo depende del costo y los beneficios que se obtengan. Necesito obtener mayor información del
tema para ver como cobran diferentes proveedores y ver las opciones que tiene el mercado.
6. El sistema desarrollado en Costa Rica debe conectarse a los sistemas del Tributación
Directa por medio de internet. ¿Tiene alguna dificultad que le impediría la utilización?
No, la empresa cuenta con una buena infraestructura y esto no sería ningún impedimento.
Una mayor comunicación con las empresas. Se empezó con compañías grandes que tienen un buen
control, pero la comunicación con pymes ha sido nulo y se necesita tener esa apertura para depurar
Considero que se tiene poca información, falta que brinden cursos o documentación puntual del
tema.
8. A parte de los costos del sistema, ¿Qué otros costos o gastos considera que deberá
Tengo dudas, no sé qué necesito realmente para facturar. Si ocupo algún dispositivo o impresora
especial. En Panamá se usa la impresora fiscal pero acá en Costa Rica no estoy seguro si necesito
demasiado.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 262
9.6.1 A. Reunión del grupo de enfoque para el análisis de requerimientos del sistema
problemas. Está plantilla tiene el propósito de verificar los requerimientos del sistema, la
clasificación de los requerimientos no funcionales, revisar las partes de los documentos XML,
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
2. Requerimientos detectados
4. Figuras de la resolución
Resumen de la sesión:
Logros obtenidos:
- Se revisa cada uno de los requerimientos, en algunos es necesario tomar apuntes para
documento en este formato. A nivel técnico se indica que se realizable realizar un formato
similar.
- Se revisan las figuras de la resolución. La figura de receptor manual genera dudas al inicio
de la sesión, porque un participante comenta que ahora los ciudadanos deberían estar
aprobando las facturas que les dieran. Se revisa el punto y se aclara la duda.
- Se detalla las obligaciones de cada figura, incluyendo las obligaciones de los sistemas
Temas pendientes:
Los miembros de la sesión de trabajo son participativos, realizan varias preguntas de los
Las figuras de la ley generan muchas consultas, por lo tanto, se agrega antes de especificar cada
Se puede concluir, que el equipo está entusiasmo por arrancar el proceso de facturación electrónica,
además, se ha logrado despejar las dudas que tenían al inicio de la sesión y se considera que las
próximas reuniones serán aún más provechosas por el conocimiento adquirido del equipo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 264
9.6.2 B. Reunión del grupo de enfoque para el diseño de la arquitectura del sistema
problemas. Está plantilla tiene el propósito de verificar la arquitectura del sistema, en donde se
arquitectura de hardware.
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
Logros obtenidos:
- Se realiza una explicación de los pasos, se generan ciertas dudas porque no se cuentan con
- Se aclara con el flujo cuando se debe enviar un documento XML y cuando se debe enviar
un documento PDF. Además, se indica que se debe utilizar un servicio web estilo REST
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 265
para enviar la documentación. Los participantes solicitan una investigación sobre el cómo
- Se revisa la propuesta del hardware recomendado para Odoo. Los participantes realizan
Temas pendientes:
- El investigador incorporará los cambios al modelo del hardware propuesto para la solución
de Odoo.
En este segundo grupo de enfoque fue más difícil de trabajar, debido a la cantidad de dudas que
salieron en el flujo de interacción. El investigador se apoya por medio de dibujos en la pizarra para
ejemplificar posibilidad del flujo de interacción, buscando resolver las dudas de los participantes.
En la segunda parte de la revisión del hardware recomendado, se reciben buenas sugerencias del
modelo que serán incorporadas para beneficio del negocio. El modelo se realiza siguiendo las
Se concluye que es necesario ampliar el flujo de interacción para hacer una lectura más sencilla y
también realizar pequeños cambios al esquema de hardware propuesto para soportar Odoo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 266
9.6.3 C. Reunión del grupo de enfoque para el análisis de los requerimientos de software
problemas. Está plantilla tiene el propósito de confirmar los casos de uso detectado y explicar el
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
Logros obtenidos:
- Se revisa uno a uno cada caso de uso. Se dan por satisfecho el equipo de trabajo con el
nivel de detalle.
- Se explica el diagrama de actividad de los casos de uso a un nivel macro. Los participantes
terminan de despejar dudas y se realizan preguntas de ciclo y que pasaría en los casos de
Temas pendientes:
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 267
Está tercera sesión de grupo de enfoque es más rápida que las otras, es posible que las personas
tengan ya un mejor conocimiento de la ley debido a las sesiones previas. Los casos de uso son
discutidos pero se llega a la conclusión que no es necesario aumentar el nivel de detalle. Uno de
los participantes indica que en este momento no ve la necesidad de agregar más detalle porque no
le agregaría valor al desarrollo del sistema. El diagrama de actividad, genera un buen resumen de
los casos de uso y se logra observar a los participantes con una visión clara del proceso que seguirá
electrónicos.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 268
9.6.4 D. Reunión del grupo de enfoque para el diseño de la arquitectura del software
problemas. Está plantilla tiene el propósito de revisar los campos(atributos) y métodos detectados
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
1. Explicación de cada tabla con los campos que debe llevar el sistema
Resumen de la sesión:
Logros obtenidos:
- Se revisa las diferentes tablas con los campos que deben contener los comprobantes
electrónicos. Además, de las tablas que tendrán la información para rellenar las mismas.
- Se revisa los campos a desarrollar y los campos que ya están incluidos en el sistema Odoo.
Se tiene una larga discusión y se solicitan varios cambios por parte de los miembros del
equipo.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 269
discute la posibilidad de agregar patrones de diseño y tratar de cumplir con los principios
de diseño de software. Uno de los miembros de la reunión indica que Odoo implementa
patrones en sus diferentes capas y que no es necesario agregarla al diseño que se desarrolla.
única, los miembros del grupo de enfoque comentan que la estructura de Odoo es diferente
y que separarlo en varias clases ocasionará mayores problemas a la hora de migrar el código
Temas pendientes:
La sesión de trabajo, ha sido la más larga en tiempo con respecto a las anteriores. Se revisan con
mucho detalle las tablas de los campos a desarrollar y los campos que ya estarían incluidos en el
sistema Odoo, por otro lado, se revisan los métodos a desarrollar y se concluye que es necesario
concluye que el diseño cumple con lo necesario para desarrollarse en el sistema Odoo, pero se
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 270
logran notar que existen limitaciones para cumplir con un diseño que cumpla con todos los
9.6.5 E. Reunión del grupo de enfoque para el diseño detallado del software
Temas a tratar:
En cada sesión se debe cumplir una agenda de temas a tratar. En esta reunión se abarcan los
siguientes:
Resumen de la sesión:
Logros obtenidos:
desarrollo para que no cualquier usuario pueda crear o borrar algún registro.
de los miembros en sobre manera, porque les da una forma sencilla de comprobar si el
- Las pruebas de arquitectura y requisitos, los miembros indican que son claros pero
conllevan realizar algún formulario o documento para registrar cuando se lleven a cabo las
pruebas.
- Se muestran los cuatro casos de prueba, se solicita agregar dos casos más.
Temas pendientes:
los miembros del grupo de enfoque quieren utilizarlo como base para el desarrollo.
Está sesión es clave porque muestra el desarrollo a nivel de un prototipo del producto final, el cual
los participantes manifiestan que esto les da seguridad en el desarrollo, porque saben que será
En el caso de las pruebas, estas sustentarán una vez desarrollo el producto, que el mismo cumple
deben durante y luego de finalizado el desarrollo realizar las recomendaciones propuestas de las
pruebas.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 273
Objetivo de la
Aprobación del capítulo 4 – Análisis de Resultados
reunión:
Temas Tratados
Próxima reunión
Objetivo de la
Revisión y Aprobación del capítulo 5 – Propuesta de solución
reunión:
Temas Tratados
Próxima reunión
10. Anexos
Presentes:
Participantes:
Ausentes:
Temas Tratados
Próxima reunión
y del negocio.
Actividades/semanas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1. Reuniones con profesor X X X X
asignado
2. Entrega de X
anteproyecto revisado y
ajustado
3. Comunicación de X
cambios a la
coordinación TFG
4. Elaboración del capítulo X X
1
5. Elaboración X X
documentación
implementación del
proceso
6. Entrega del Capítulo 1 X
(Introducción)
7. Entrega documentación X
implementación del
proceso
8. Evaluación por parte de X X X
la organización
9. Análisis de la normativa X X X
legal del país
10. Mapeo de X X X
requerimientos
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 280
Actividades/semanas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
11. Entrega documentación X
de requerimientos
12. Elaboración Marco X X X
Teórico
13. Elaboración Marco X X X
Metodológico
14. Entrega del Capítulo II X
(Marco Teórico)
15. Entrega del Capítulo III X
(Marco Metodológico)
Actividades/semanas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
27. Elaboración de X
Recomendaciones
28. Entrega del Capítulo VI X
(Conclusiones)
29. Entrega del Capítulo VII X
(Recomendaciones)
30. Transferencia del X X
conocimiento
31. Propuesta de Diseño de X
Software de la
facturación electrónica
32. Entrega del Informe X
Final Académico
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 282
Información general
Datos generales
N° Informe XX Semanas Del 26 de mayo Estado
Al 30 de mayo
Resumen XXXXXXXXXX Rojo: avance > 10%.
ejecutivo de XXXXXXXXXXX Amarillo: 5% <
este informe XXXXXXXXXX avance < = 10%.
Verde: avance < =
5%.
Responsable XXXXXXXXXX
Revisado
Elaborado por
por
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 284
11. Glosario
A continuación, se presenta una lista de palabras con sus respectivos significados los cuales fueron
• Archivo XML: Lenguaje de etiquetas para representar los datos de manera estructurada.
XML son las siglas de eXtensible Markup Languaje. Es el formato seleccionado por la
contribuyentes.
• Código Abierto: programas que permite observar el código fuente para su estudio y
modificación. Puede ser que tenga restricciones para compartir el software o para realizar
modificaciones.
• Código QR: Sus siglas significan Quick Response (Código de respuesta rápida). Es un
código cuadrado que permite almacenar datos codificados. En la ley, esto permitirá realizar
• Contribuyente: persona o empresa que debe pagar impuestos por sus actividades
lucrativas al fisco.
comprobantes electrónicos.
• Método de contingencia: Serían los procedimientos a utilizar en caso de falla del sistema
Ministerio de Hacienda.
• Odoo: sistema ERP de código abierto. Tiene un amplio conjunto de aplicaciones para
“Se entiende por pequeñas y medianas empresas (PYMES) toda unidad productiva de
carácter permanente que disponga de los recursos humanos los maneje y opere, bajo las
• PostgreSQL: Es la base de datos que utiliza el sistema Odoo para guardar sus registros y
almacenar la información.
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 286
pueden ser en la nube o instalados en los equipos propios de los obligados tributarios.
país. Deben recibir las facturas electrónicos de sus proveedores en sistemas informáticos
la facturación en forma manual por medio de una representación gráfica en el mismo acto
• REST: es un estilo de arquitectura de software que permite tener sistemas distribuidos por
el mundo, consumiendo estos servicios. Por lo tanto, está arquitectura favorece a obtener
sistemas desacoplados.
• Servicio Web: Conjunto de protocolos y estándares que sirven para intercambiar datos
Ministerio define la transmisión de los facturas electrónicos por medio de un servicio web.
las áreas del negocio para permitir compartir información. La siglas son ERP por su
Propuesta de Diseño de Software para la Facturación Electrónica con el ERP Odoo 287
nombre en inglés Enterprise Resource Planning. Entre los módulos principales están
• Software Libre: programas que cumplen las cuatro libertades que son ejecutar los sistemas
sistemas de software.