UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... ·...

122
UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES “UNIANDES” FACULTAD DE SISTEMAS MERCANTILES CARRERA DE SISTEMAS PROYECTO DE EXAMEN COMPLEXIVO PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN SISTEMAS E INFORMÁTICA TEMA: APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES ELECTRÓNICOS DE LOS CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA. AUTOR: TEC. JURADO PUPIALES JOSÉ MIGUEL ASESOR: ING. MARTÍNEZ CARLOS, MGS. AMBATO ECUADOR 2015

Transcript of UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... ·...

Page 1: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES

“UNIANDES”

FACULTAD DE SISTEMAS MERCANTILES

CARRERA DE SISTEMAS

PROYECTO DE EXAMEN COMPLEXIVO PREVIO A LA OBTENCIÓN

DEL TÍTULO DE INGENIERO EN SISTEMAS E INFORMÁTICA

TEMA: APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES

ELECTRÓNICOS DE LOS CLIENTES DE LA EMPRESA INPRISE DE

LA CIUDAD DE IBARRA.

AUTOR: TEC. JURADO PUPIALES JOSÉ MIGUEL

ASESOR: ING. MARTÍNEZ CARLOS, MGS.

AMBATO – ECUADOR

2015

Page 2: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

CERTIFICACIÓN DEL ASESOR

En calidad de asesor del presente trabajo de investigación, certifico que la tesis cuyo tema

es “Aplicación web para la emisión de comprobantes electrónicos de los clientes de la

empresa INPRISE de la ciudad de Ibarra”, elaborado por Jurado Pupiales José

Miguel, cumple con los requisitos metodológicos y científicos que la Universidad

Regional Autónoma de Los Andes “UNIANDES” exige, por lo tanto autorizo su

presentación para los trámites pertinentes.

Atentamente,

Ing. Carlos Martínez. Mgs

ASESOR

Page 3: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

DECLARACIÓN DE AUTORÍA DEL TRABAJO DE TESIS

Ante las autoridades de la Universidad Regional Autónoma de los Andes –UNIANDES-

declaro que el contenido del presente proyecto cuyo tema es: “APLICACIÓN WEB

PARA LA EMISIÓN DE COMPROBANTES ELECTRÓNICOS DE LOS

CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA”,

presentado como requisito previo a la obtención del título de INGENIERO EN

SISTEMAS E INFORMÁTICA es original, de mi autoría y total responsabilidad.

Además autorizo a la Universidad Regional Autónoma de Los Andes –UNIANDES-

para que pueda emplear el presente trabajo como apoyo para futuras investigaciones

relacionadas con el tema planteado.

Atentamente,

Tec. Jurado Pupiales José Miguel

C.I. 100331041-2

Page 4: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

DEDICATORIA

El presente trabajo investigativo se lo dedico a mis padres, quienes son un pilar

fundamental en mi vida ya que han velado por mi bienestar y educación siendo mi

apoyo en todo momento y a la vez me enseñaron valores importantes para el diario

vivir.

Page 5: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

AGRADECIMIENTO

Agradezco de todo corazón a todas las personas que me ayudaron en el transcurso del

proceso de formación de mi carrera en especial a las Autoridades, Docentes,

Administrativos y todos quienes conforman la Universidad Regional Autónoma de Los

Andes –UNIANDES- Extensión Ibarra.

Además quiero agradecer a mis padres y hermanos quienes me apoyaron a cumplir una de

mis metas más anheladas.

Finalmente agradezco a mi novia por ser un pilar fundamental dentro de mi vida personal y

profesional.

Page 6: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ÍNDICE GENERAL

CERTIFICACIÓN DEL ASESOR

DECLARACIÓN DE AUTORÍA

DEDICATORIA

AGRADECIMIENTO

RESUMEN EJECUTIVO

ABSTRACT

CAPÍTULO I ............................................................................................................................. 1

1. INTRODUCCIÓN ............................................................................................................. 1

1.1. Antecedentes de la investigación .................................................................................. 1

1.2. Planteamiento del problema ......................................................................................... 2

1.3. Formulación del problema ............................................................................................ 3

1.4. Delimitación del problema ........................................................................................... 3

1.5. Objeto de investigación y campo de acción ................................................................. 3

1.5.1. Objeto de investigación ..................................................................................... 3

1.5.2. Campo de acción ............................................................................................... 3

1.6. Identificación de la línea de investigación.................................................................... 3

1.7. Objetivos ....................................................................................................................... 3

1.7.1. Objetivo General ............................................................................................... 3

1.7.2. Objetivos Específicos ........................................................................................ 3

1.8. Idea a Defender ............................................................................................................. 4

1.9. Justificación de la necesidad, actualidad e importancia del tema. ................................ 4

1.10. Metodología investigativa a emplear ............................................................................ 5

CAPÍTULO II ......................................................................................................................... 11

2. MARCO TEÓRICO ........................................................................................................ 11

2.1. Origen de los procesos de emisión de comprobantes electrónicos ............................. 11

2.2. Análisis de las distintas posiciones teóricas sobre el objeto de investigación ............ 12

2.3. Valoración crítica de los conceptos principales.......................................................... 13

2.3.1. Procesos de facturación electrónica ................................................................ 13

2.3.2. Herramientas de desarrollo ............................................................................. 20

2.3.3. Servidores web ................................................................................................ 25

2.3.4. Base de datos ................................................................................................... 26

Page 7: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

2.3.5. Lenguajes de Programación ............................................................................ 32

2.4. Análisis crítico ............................................................................................................ 39

2.5. Conclusiones parciales del capítulo ............................................................................ 39

CAPÍTULO III ........................................................................................................................ 40

3. MARCO PROPOSITIVO ............................................................................................... 40

3.1. Título .......................................................................................................................... 40

3.2. Objetivo ...................................................................................................................... 40

3.3. Desarrollo de la Propuesta .......................................................................................... 40

3.4. Modelo de Cascada ..................................................................................................... 41

3.4.1. Análisis ....................................................................................................................... 41

3.4.1.1. Problemática Actual ........................................................................................ 41

3.4.1.2. Descripción de los cambios deseados ............................................................. 42

3.4.1.3. Beneficiarios del proyecto ............................................................................... 43

3.4.1.4. Requisitos de hardware ................................................................................... 44

3.4.1.5. Requisitos de Software .................................................................................... 44

3.4.1.6. Requerimientos por parte de la Administración Tributaria ............................. 45

3.4.2. Diseño ......................................................................................................................... 46

3.4.2.1. Arquitectura de la aplicación .......................................................................... 46

3.4.2.2. Diagrama de Contexto ..................................................................................... 46

3.4.2.3. Diagrama de Nivel 0 ....................................................................................... 47

3.4.2.4. Diagrama de Nivel 1 – Registro de Cliente .................................................... 48

3.4.2.5. Registro de Productos ..................................................................................... 49

3.4.2.6. Registro de Factura ......................................................................................... 50

3.4.2.7. Crea una empresa ............................................................................................ 51

3.4.2.8. Envió de XML al Web Service SRI ................................................................ 52

3.4.2.9. Diseño de la base de datos. ............................................................................. 53

3.4.2.10. Diagrama conceptual de la base de datos ........................................................ 54

3.4.2.11. Diagrama lógico de la base de datos. .............................................................. 55

3.4.2.12. Funcionabilidad de las tablas .......................................................................... 56

3.4.2.13. Diseño de la Pantalla Principal ....................................................................... 57

3.4.2.14. Diseño de Entradas y Salidas .......................................................................... 58

3.4.3. Codificación ................................................................................................................ 64

3.4.3.1. Formato XML emitido por la administración tributaria (SRI) ........................ 64

Page 8: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

3.4.3.2. Función que me permite firmar un documento electrónico ............................ 66

3.4.3.3. Función que me permite enviar documentos electrónicos al Web Service

SRI para su validación y envió de e-mail a los clientes de las empresas .......................... 71

3.4.3.4. Función que me permite mostrar los comprobantes emitidos en la

aplicación web ................................................................................................................... 77

3.4.3.5. Función que me permite exportar archivos en formato CSV .......................... 78

3.4.4. Implementación (esquema de la Aplicación web) ...................................................... 79

3.4.4.1. Trabajando con la aplicación .......................................................................... 79

3.4.5. Pruebas de Funcionalidad ........................................................................................... 83

3.4.5.1. Pruebas con datos reales .................................................................................. 83

3.4.5.2. Prueba con datos erróneos ............................................................................... 83

3.4.5.3. Pruebas de velocidad en navegadores ............................................................. 85

3.4.5.4. Pruebas de Hardware y Software .................................................................... 86

3.4.5.5. Pruebas de seguridad lógica ............................................................................ 86

3.4.6. Mantenimiento ............................................................................................................ 87

CONCLUSIONES .................................................................................................................. 88

RECOMENDACIONES ........................................................................................................ 89

BIBLIOGRAFÍA

LINKOGRAFÍA

ANEXOS

Page 9: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ÍNDICE DE TABLAS

Tabla 1 Entidades de Certificación de firmas electrónicas ....................................................... 19

Tabla 2 XML vs HMTL ............................................................................................................ 21

Tabla 3 Beneficiarios de la aplicación web .............................................................................. 44

Tabla 4 Características y costos de hardware utilizado ............................................................ 44

Tabla 5 Características sobre el Software a utilizar. ................................................................. 45

Tabla 6 Función de la Tablas de la Base de Datos ................................................................... 56

Tabla 7 Pruebas de Hardware y Software propietario .............................................................. 86

Tabla 8 Pruebas de Hardware y Software libre ........................................................................ 86

Tabla 9 Opciones del módulo de seguridad .............................................................................. 87

Page 10: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ÍNDICE DE FIGURAS

Figura 1 XML y otros lenguajes de marcas ......................................................................... 21

Figura 2 Aplicaciones de XML ........................................................................................... 22

Figura 3 Componentes de un sistema PostgreSQL .............................................................. 30

Figura 4 Proceso de sus dos elementos ................................................................................ 38

Figura 5 Ciclo de Vida del Software - Modelo Cascada ..................................................... 41

Figura 6 Esquema de la aplicación web para INPRISE ....................................................... 46

Figura 7 Diagrama de contexto de la Aplicación Web ........................................................ 46

Figura 8 Diagrama de nivel 0 de la Aplicación Web ........................................................... 47

Figura 9 Diagrama de nivel 1 de la Aplicación web – Registro de Clientes ....................... 48

Figura 10 Diagrama Nivel 1 de la Aplicación web - Registro de Productos ....................... 49

Figura 11 Diagrama Nivel 1 de la Aplicación Web - Registro de Facturas ........................ 50

Figura 12 Diagrama Nivel 1 de la Aplicación Web - Creación de una empresa ................. 51

Figura 13 Diagrama Nivel 1 de la Aplicación Web - Envió de XML al Web Service SRI 52

Figura 14 Diseño de la base de datos ................................................................................... 53

Figura 15 Base de datos conceptual de la Aplicación Web ................................................. 54

Figura 16 Diagrama lógico de la base de datos de la Aplicación Web................................ 55

Figura 17 Pantalla Principal de la Aplicación Web ............................................................. 57

Figura 18 Mapa de Sitio ....................................................................................................... 57

Figura 19 Pantalla Principal del Administrador .................................................................. 58

Figura 20 Formularios para registrar y poder realizar una factura nueva, agregar un

producto, agregar un cliente e agregar una categoría. ......................................................... 59

Figura 21 Formulario para crear una nueva empresa. ......................................................... 60

Figura 22 Formulario para ingresar un archivo CSV de la empresa.................................... 60

Figura 23 Formulario para realizar una factura ................................................................... 61

Figura 24 Formulario en el que se visualiza los comprobantes electrónicos emitidos ........ 61

Figura 25 Envió del correo electrónico al cliente de la empresa ......................................... 62

Figura 26 Visualización del documento RIDE emitido ....................................................... 62

Figura 27 Visualización del documento XML emitido ....................................................... 63

Figura 28 Visualización de reportes en Excel y CSV .......................................................... 63

Figura 29 Diseño entrada de la Aplicación Web ................................................................. 79

Figura 30 Ingreso de la dirección web para acceder a la aplicación .................................... 79

Page 11: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Figura 31 Ingreso a la pantalla donde deberá ingresar el usuario y contraseña ................... 80

Figura 32 Ingreso a la pantalla principal cuando esta logueado .......................................... 80

Figura 33 Documentos emitidos por la Aplicación: RIDE y XML al usuario .................... 81

Figura 34 Correo emitido a los usuarios de las empresas con los documentos electrónicos

............................................................................................................................................. 82

Figura 35 Reportes en CSV ó EXCEL ................................................................................ 82

Figura 36 Pruebas con datos reales ...................................................................................... 83

Figura 37 Prueba con datos erróneos ................................................................................... 84

Figura 38 Error emitido por el Web Service del SRI........................................................... 84

Figura 39 Pruebas de velocidad ........................................................................................... 85

Page 12: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

RESUMEN EJECUTIVO

Hoy en día el Servicio de Rentas Internas SRI es la entidad que administra los asuntos

tributarios en el Ecuador, por lo que con la Resolución No. NAC-DGERCGC12-00105

fechado el 9 de marzo del 2012, en el cual resuelve que se promueva la emisión de

comprobantes electrónicos en los sujetos pasivos, es por ello que las empresas deberán

cumplir con los requerimientos emitidos en dicho organismo. Las empresas clientes de

INPRISE preocupadas al no contar en sus sistemas actuales con una aplicación que les

permita emitir dichos documentos electrónicos, han visto la necesidad de solicitar a la

empresa INPRISE la implementación de una aplicación web que ayude a cumplir con la

resolución, ya que dicha empresa se encarga de solucionar los problemas tecnológicos que

poseen sus clientes.

A través de un estudio enfocado en una entrevista al Gerente – Propietario de la Empresa

INPRISE se determinó los principales requerimientos que tienen los clientes de INPRISE

tales como: dificultades, seguridades al momento de implementar la aplicación web,

beneficios que tendrían los clientes cuando se implemente dicha aplicación. Dentro de la

metodología empleada está la cuali-cuantitativa y cualitativa con su método analítico-

sintético inmerso en los tipos de investigación bibliográfica y de campo, para el desarrollo

de lo propuesto se utilizó el método de cascada enmarcándose en la línea de investigación

“Desarrollo de software y programación de sistemas”.

Con la implementación de la aplicación web en los clientes de INPRISE se mejorará los

procesos de emisión de comprobantes electrónicos y a la vez se cumplirá con los requisitos

emitidos por la Administración Tributaria.

Page 13: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ABSTRACT

Nowadays the Internal Revenue Service (IRS) is an institution which manages the tax

administration in Ecuador, so with solution Number NAC-DGERCGC12-00105 dated on

March 9th

, 2012 it is established issuing electronic invoice on taxpayers, then all companies

must comply with the requirements issued by this institution. So that the companies that

are clients of “INPRISE” Company worried because their current systems do not have an

application which lets to issue those electronic documents, consequently they have seen the

need to demand from the INPRISE Company the implementation of a web application that

lets them to comply with that resolution, so this company is responsible to solve its clients’

technological problems.

By a study focused on an interview to the Owner Manager from the Company “INPRISE”,

the principal customers’ requirements were determined, they were: difficulties, assurances

when implementing a web application, benefits that the customers could get when the web

application can be implemented. The methodology used to develop this paperwork is the

quali-quantitative and qualitative with the methods analytic-synthetic related to the

bibliographic and field research, for the development of the proposal the cascade method

was applied framed in the research line of “Software development and Systems

Programming”.

With the implementation of this web page the INPRISE’s customers will improve the issue

of electronic invoice at the same time they could comply with the requirements asked by

the Tax Administration.

Page 14: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

1

CAPÍTULO I

1. INTRODUCCIÓN

1.1. Antecedentes de la investigación

En el Ecuador la institución que administra los asuntos tributarios es el Servicio de Rentas

Internas (SRI), el mismo que fue creado el 02 de diciembre de 1997 basándose en los

principios de justicia y equidad, como respuesta a la alta evasión tributaria, alimentada por

la ausencia casi total de cultura tributaria. Desde su creación se ha destacado por ser una

institución independiente en la definición de políticas y estrategias de gestión que han

permitido que se maneje con equilibrio, transparencia y firmeza en la toma de decisiones,

aplicando de manera transparente tanto sus políticas como la legislación tributaria. (SRI,

2015)

El SRI mediante Decreto Ejecutivo Nº 3055, publicado en el Registro Oficial Nº 679, del

08 octubre del 2002, expidió el Reglamento de Comprobantes de Venta y Retención; que

tiene como finalidad regular la emisión de los comprobantes de venta y retenciones que

regula las actividades económicas y comerciales con fines de declaración de impuestos en

el Ecuador.

Desde esta fecha en adelante el SRI ha regulado el proceso de facturación incorporando

nuevas normativas, resoluciones, mecanismos de emisión, que permiten que las actividades

comerciales tanto de empresas como de personas naturales se cumplan, cumpliendo la

normativa legal vigente.

Por lo anteriormente expuesto, la Administración Tributaria (SRI), con el afán de facilitar

los procesos, ha permitido y ha incentivado a incorporar herramientas tecnológicas en las

empresas y negocios que faciliten el cumplimiento de las obligaciones tributarias en el

Ecuador, por tal motivo según la Resolución No. NAC-DGERCGC12-00105 con fecha 9

de marzo del 2012, se promueve la emisión de comprobantes electrónicos en el que

RESUELVE: EXPEDIR LAS NORMAS PARA EL NUEVO ESQUEMA DE

EMISIÓN DE COMPROBANTES DE VENTA, RETENCIÓN Y DOCUMENTOS

COMPLEMENTARIOS MEDIANTE MENSAJE DE DATOS (COMPROBANTES

ELECTRÓNICOS), mencionando que se debe cumplir con los requisitos legales y

reglamentarios de dicha entidad hacia los sujetos pasivos.

Page 15: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

2

El objetivo de la emisión de los comprobantes electrónicos es el de reemplazar el papel y

aportar con el cuidado del medio ambiente, pero al mismo tiempo se garantiza la seguridad

de la información de cada uno de los contribuyentes.

Es por ello que INPRISE siendo una empresa global de comercio y servicios de soluciones

tecnológicas, ya que fue creada con la finalidad de contribuir a entidades que necesitan

automatizar procesos; usando software libre y estándares abiertos, y así poder lograr que

todas las soluciones sean accesibles a nuestros futuros clientes.

La compañía se mantiene en una posición de liderazgo en Gestión y Desarrollo de

Proyectos Tecnológicos, por lo que ha visto la necesidad de desarrollar una aplicación web

para la emisión de comprobantes electrónicos de sus clientes, facilitando el ahorro en el

gasto de papelería física y tintas de impresión, existe menor probabilidad de falsificación

de documentos, mayor seguridad en el resguardo de los documentos, reducción de tiempos

de envío de comprobantes, procesos administrativos más rápidos y eficientes y para

finalizar mencionar que la emisión de los comprobantes electrónicos tienen la misma

validez que los documentos físicos.

1.2. Planteamiento del problema

En la Provincia de Imbabura, en la Ciudad de Ibarra la empresa INPRISE tiene su base de

operaciones que consiste básicamente en proveer de soluciones tecnológicas empresariales

a sus clientes que les permita mejorar y automatizar sus procesos, en la cual se han

encontrado las siguientes situaciones:

Las empresas tienen dificultades con sus clientes al momento de entregar los

comprobantes electrónicos ocasionando pérdidas económicas, de tiempo y

recursos.

Se tiene la dificultad de integrar en una sola aplicación los procesos de las

empresas y sus negocios, lo que implicaría inversión alta en nuevos sistemas y

aplicaciones para sus dueños.

Las empresas se ven en la obligación de cumplir los requerimientos por parte de la

Administración Tributaria del Ecuador, en los plazos establecidos sobre la emisión

de comprobantes electrónicos a sus clientes.

Page 16: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

3

1.3. Formulación del problema

¿Cómo mejorar los procesos de emisión de comprobantes electrónicos en los clientes de la

empresa INPRISE de la Ciudad de Ibarra?

1.4. Delimitación del problema

Esta investigación se realizará en los clientes de la empresa INPRISE de la ciudad de

Ibarra, por medio de la implementación de una aplicación web para mejorar los procesos

de emisión de comprobantes electrónicos.

1.5. Objeto de investigación y campo de acción

1.5.1. Objeto de investigación

Procesos Informáticos

1.5.2. Campo de acción

Aplicaciones Web

1.6. Identificación de la línea de investigación

Desarrollo de software y programación de sistemas

1.7. Objetivos

1.7.1. Objetivo General

Implementar una aplicación web para mejorar los procesos de emisión de comprobantes

electrónicos de los clientes de la empresa INPRISE de la ciudad de Ibarra.

1.7.2. Objetivos Específicos

Fundamentar teóricamente los procesos de emisión de comprobantes electrónicos y

aplicación web.

Diagnosticar los procesos de facturación que aplican las empresas clientes de

INPRISE.

Desarrollar la aplicación web de emisión de comprobantes electrónicos en la

empresa INPRISE para sus clientes.

Page 17: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

4

1.8. Idea a Defender

Con la implementación de la aplicación web se mejorará los procesos de emisión de

comprobantes electrónicos de los clientes de la empresa INPRISE de la ciudad de Ibarra.

1.9. Justificación de la necesidad, actualidad e importancia del tema.

La implementación de una aplicación web como soporte a los procesos en las empresas

clientes de INPRISE, es una necesidad para poder cumplir con los requerimientos emitidos

por parte de la Administración tributaria (SRI), y así realizar la emisión de los

comprobantes electrónicos a cada uno de los usuarios de las empresas, como se enuncia en

la resolución emitida por dicha entidad tributaria.

El presente proyecto está enfocado a solucionar la problemática de los clientes de

INPRISE, implementando una aplicación web para mejorar y dar cumplimento con los

procesos de emisión de comprobantes electrónicos, buscando siempre calidad en el

servicio hacia sus usuarios. Además se puede mencionar entre otros beneficios de la

implementación de ésta aplicación web los siguientes:

Permitirá a las empresas ahorro de recursos, disminución de uso del papel y

contribución al medio ambiente.

Los clientes de las empresas podrán beneficiarse al recibir sus facturas

electrónicamente en sus cuentas de correo electrónico.

Reducción de los tiempos de envío de comprobantes electrónicos por parte de las

empresas hacia sus clientes.

Por disposiciones legales y reglamentarias los comprobantes electrónicos tienen la

misma validez que los comprobantes físicos.

Proporciona mayor seguridad de la información que generan los procesos de

negocio de las empresas.

Reduce drásticamente la posibilidad de falsificaciones de documentos.

Incentiva a la ejecución de procesos más eficientes dentro de las empresas.

En base a todos estos beneficios, se justifica claramente la importancia de implementar la

aplicación web en los clientes de INPRISE, ya que la realización de éste trabajo

investigativo es la solución a la problemática planteada.

Page 18: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

5

Adicionalmente cabe mencionar que la aplicación web estará desarrollada en un lenguaje

de programación python con framework django y su gestor de base de datos postgresql, las

cuales son herramientas tecnológicas novedosas.

1.10. Metodología investigativa a emplear

La metodología investigativa que se empleó en el desarrollo del presente pre-proyecto se

describe a continuación:

Métodos: Se aplicaron los siguientes métodos:

Analítico sintético: este método se aplicó para la elaboración del marco teórico, ya que

toda la información recopilada en libros e internet fue analizada y sintetizada previamente

antes de ser parte del fundamento teórico.

Cuali-cuantitativo: Es un método establecido para estudiar científicamente una muestra

reducida de objetos de investigación, el mismo que permitió averiguar las cualidades o

características generales de los procesos parte del problema, a través de las técnicas de

observación y visitas a las empresas.

Cualitativo: De la problemática posteriormente son ratificadas mediante la cuantificación

de la investigación de campo llevada a cabo generalmente en base a la entrevista.

Entre los tipos de investigación que se utilizaron están:

Bibliográfica: Se recopiló información de libros, revistas e internet, respecto de los temas

que forman parte del marco teórico. A través de ésta investigación se obtuvo el

conocimiento sobre los diferentes procesos abordados en el proyecto que aplican las

empresas en la emisión de comprobantes electrónicos.

De campo: Esta investigación se la aplicó en la empresa INPRISE, mediante la cual se

obtuvo información de los diferentes procesos de las empresas clientes que es donde se

encuentra la situación problemática.

Técnica: Se aplicó la siguiente técnica:

Page 19: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

6

Entrevista: Se la aplicó al Gerente de la empresa INPRISE para determinar las

necesidades de sus clientes sobre los requerimientos emitidos por la administración

tributaria y así solucionar el problema desde el punto de vista directo.

Instrumentos de la Investigación: Los instrumentos que se utilizaron para esta

investigación son:

1. Guía de entrevista

2. Investigación Bibliográfica y linkográfica

Además en el presente pre-proyecto investigativo se procedió a realizar una aplicación web

que permita emitir comprobantes electrónicos para cada uno de los clientes de la empresa

INPRISE. La aplicación se la desarrolló enmarcada dentro de los requerimientos legales y

reglamentarios regulados por la Administración Tributaria de nuestro país.

El desarrollo de este proceso estuvo alineado al cumplimiento de las siguientes actividades:

En primera instancia se desarrolló la interfaz de comunicación y enlace hacia las

aplicaciones que tienen los clientes en sus negocios o empresas a fin de recopilar la

información necesaria para el proceso de emisión de comprobantes electrónicos.

Luego se diseñó el módulo de emisión de comprobantes electrónicos como facturas,

notas de crédito, notas de débito, comprobantes de retención, guías de remisión.

Se desarrolló las interfaces para la comunicación con el web services del Servicio de

Rentas Internas para obtener la autorización de los comprobantes electrónicos.

Se desarrolló un módulo de facturación para las empresas que no dispongan de un

sistema de facturación normal.

Se incorporó los requerimientos tecnológicos y legales como firma electrónica,

internet, web services entre otros.

Se desarrolló el módulo para enviar los comprobantes electrónicos mediante correo

electrónico a los usuarios de la aplicación.

Se implementó la página web empresarial en la que las empresas clientes podrán

ingresar a un ambiente de administración de sus comprobantes electrónicos.

Se implementó el módulo de administración de usuarios por parte de la empresa

INPRISE.

Se elaboró la documentación de la propuesta y de la aplicación.

Page 20: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

7

Entrevista dirigida al Gerente-Propietario de la empresa INPRISE.

La presente entrevista tiene como objetivo recolectar información acerca de los procesos y

servicios que brinda la empresa INPRISE a sus clientes.

Nombre: Luis Antonio Burbano Robles

Cargo: Gerente-Propietario de la empresa INPRISE

1. Cuáles son las actividades a las que se dedica INPRISE?

INPRISE es una empresa que se dedica a crear, automatizar procesos y solucionar

problemas tecnológicos usando software libre y estándares abiertos, logrando así

que todas las soluciones sean accesibles a nuestros clientes

2. Qué área de cobertura de servicios tiene INPRISE?

INPRISE brinda servicio a nivel nacional ofreciendo asistencia de calidad a cada

uno de sus clientes.

3. Cuál es la gama de servicios que la empresa ofrece a sus clientes?

INPRISE es una empresa que ofrece servicios es diseño y desarrollo web,

desarrollo de sistemas, dispositivos móviles, computación en la nube y sistemas de

geoposicionamiento.

4. Tiene la empresa INPRISE solicitudes de soluciones de facturación electrónica?

Los clientes de INPRISE sí han solicitado que se implemente este tipo de

soluciones ya que es un requisito emitido por parte de la administración tributaria.

5. Cómo ve usted los temas relacionados con las disposiciones por parte del SRI para

que las empresas (ciertos sectores) emitan sus comprobantes electrónicamente?

Desde mi punto de vista la administración tributaria está implementando este tipo

de soluciones tecnológicas para tener un mejor control de las actividades que

realiza los sujetos pasivos.

Page 21: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

8

6. Cuáles considera usted que son los beneficios para la empresas, disponer de una

solución de facturación electrónica?

Con este tipo de proyecto las empresas ayudarán a la contribución del medio

ambiente, el ahorro de papel, seguridad en la información, mejorará el tiempo de

respuestas rápidas y los procesos de cada una de las empresas.

7. Considera usted que los costos de implementación de facturación electrónica son altos

para las empresas y negocios?

Sí, porque las empresas tendrían que cambiar los sistemas contables con los que

trabajan.

8. A su criterio qué dificultades enfrentan las empresas para implementar la facturación

electrónica?

El principal inconveniente son los recursos económicos ya que las empresas

tendrían que adquirir un nuevo sistema contable en donde contenga un módulo de

facturación electrónica, además otro inconveniente es que las empresas no cuentan

con personal técnico y/o capacitado.

9. Considera usted que por parte del SRI existe la suficiente guía y ayuda hacia las

empresas para implementar facturación electrónica?

Sí, porque en la página oficial del SRI existen fichas y manuales sobre este nuevo

proceso al que tienen que acogerse los sujetos pasivos.

10. Qué aspectos de seguridad deben tomarse en cuenta para implementar facturación

electrónica?

Se debe tomar en cuenta que la aplicación web tenga protocolo seguro, es decir

salga por HTTPS, utilizando certificación digital, a nivel de implementación se

debe tomar en cuenta las seguridades a nivel de base de datos con encriptaciones de

los campos a nivel de claves, cifrado de información. Así mismo cada usuario

deberá manejar su firma electrónica para que pueda realizar el proceso de emisión

de comprobantes electrónicos así como también a nivel de aplicación los usuarios

deberán tener un módulo de autenticación de usuarios.

Page 22: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

9

11. En qué forma los clientes de INPRISE solicitan la implementación de la facturación

electrónica?

Los clientes de INPRISE solicitan la implementación mediante reuniones de

trabajo, por correo electrónico y vía telefónica.

Análisis de Entrevista

Después de realizar la entrevista al Gerente-Propietario de la empresa INRPISE se obtuvo

como resultado una información detallada de los principales requerimientos que tienen los

clientes de INPRISE tales como: El Gerente indicó que las dificultades que existen en las

empresas para implementar un nuevo sistema contable en donde contenga un módulo de

facturación electrónica, son principalmente los recursos económicos para adquirirlo; por

otro lado las empresas no cuentan con personal técnico y/o capacitado, además manifestó

que la empresa INPRISE sí tiene solicitudes por parte de sus clientes en cuanto a la

implementación de este tipo de soluciones de emisión de comprobantes electrónicos, ya

que es un requerimiento emitido por parte de la administración tributaria SRI; y finalmente

el Gerente-Propietario señaló que se debe tomar algunos aspectos de seguridad al momento

de implementar una aplicación web en las empresas como por ejemplo tener un protocolo

seguro, es decir salga por HTTPS, utilizando certificación digital. A nivel de

implementación se debe tomar en cuenta las seguridades de base de datos con

encriptaciones de los campos a nivel de claves, cifrado de información. Así mismo cada

usuario deberá manejar su firma electrónica para que pueda realizar el proceso de emisión

de comprobantes electrónicos así como también a nivel de aplicación los usuarios deberán

tener un módulo de autenticación de usuarios, de esta manera se ha determinado que la

solución a todos estos inconvenientes es el de desarrollar una aplicación web para la

emisión de comprobantes electrónicos de los clientes de INPRISE de la ciudad de Ibarra.

1.11. Resumen de la Estructura del Proyecto

El presente trabajo investigativo, tiene en su primera parte una estructura que está

conformado principalmente por los antecedentes de la investigación seguido por el

planteamiento y la formulación del problema, así como también se delimitó el problema

para obtener el objeto de investigación y campo de acción en el que se ejecutará el

proyecto, identificando la línea de investigación de acuerdo al Manual de Investigación

2012 emitido por la Universidad Regional Autónoma de los Andes –UNIANDES-, a

Page 23: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

10

continuación se planteó el objetivo general y los específicos que se derivan para dar

cumplimiento a la investigación, luego del análisis se logró establecer la idea a defender;

mediante la justificación se definió la relevancia, importancia y conveniencia sobre el

trabajo investigativo, además se empleó una metodología de acuerdo al proyecto a

realizarse, finalmente se explicó el aporte teórico y la significación práctica con la que se

finaliza la primera parte. En la segunda parte se utilizó una estructura teórica que permitió

tener un conocimiento evidente del objeto de estudio, para concluir la tercera y última

parte del trabajo investigativo se realizó el desarrollo de la propuesta dando así solución al

problema investigativo.

1.12. Aporte Teórico y significativo práctica

Como aporte teórico es la investigación enfocada a los procesos de emisión de

comprobantes electrónicos y aplicación web mediante el uso de herramientas tecnológicas

para su entorno.

El presente trabajo investigativo tiene una significación práctica relevante en los clientes

de la empresa INPRISE de la ciudad de Ibarra, ya que tendrán disponible el módulo de

facturación electrónica con lo que podrán dar cumplimiento a las disposiciones emitidas

por la Administración Tributaria SRI.

Por otro lado la novedad científica reside en la utilización de herramientas informáticas de

libre distribución como el manejo del framework django con un lenguaje de programación

Python y su gestor de base de datos postgresql, las cuales son herramientas tecnológicas

novedosas de fácil manejo y mayor seguridad en el desarrollo de la aplicación.

Page 24: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

11

CAPÍTULO II

2. MARCO TEÓRICO

2.1. Origen de los procesos de emisión de comprobantes electrónicos

La contabilidad es quizás una de las actividades por no decir la más importante dentro del

campo de los negocios y empresas, dada su naturaleza de informar acerca del incremento

de la riqueza, la productividad y el posicionamiento de las empresas en los ambientes

competitivos.

La importancia de los sistemas de información contable radica en la utilidad que tienen

estos tanto para la toma de decisiones de los socios de las empresas como para aquellos

usuarios externos de la información.

Por lo anterior uno de los retos de la contabilidad en el mundo de hoy aparte de seguir

apoyándose en la contabilidad normal que en sí misma plantea la validez de la información

contable, debe encontrar y aplicar nuevos elementos que le permitan de una manera

integral reflejar todo lo que ocurre en la empresa evidenciándolo en los estados

financieros y en los respectivos informes. Un efecto que produce estos nuevos cambios en

la presentación de la información es que hace que sobresalga en medio de otras empresas.

Los sistemas de información han desempeñado un lugar importante en el mercado como

elemento de control y organización, sin embargo no debe delimitarse solo a esa función,

dado que se encuentra en la necesidad de buscar el poder explicativo de los sistemas de

Información en el comportamiento de los usuarios de la información empresarial, así no

solo se busca un manejo técnico en la empresa sino que se tomen todos los componentes de

la empresa tanto tangibles como intangibles que se permitan competir en un entorno que

cada vez es más fuerte y más agresivo.

La debida utilización de los Sistemas de Información se ha venido desarrollando desde que

se comenzaron a implementar los ordenadores informáticos en el soporte técnico de las

empresas para convertir sus datos en algo ágil y ordenado; por esta razón se

ha venido creando diferentes Sistemas de Información que se acomoden a la características

y los fines que se quieren alcanzar en los entornos en los que se desenvuelven las empresas

Page 25: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

12

y cumplir con la información que satisfaga los clientes, proveedores y accionistas, como la

agilidad y validez de los datos que se procesan. (Pérez Samiento, 2015)

En el Ecuador la institución que administra los asuntos tributarios es el Servicio de Rentas

Internas, SRI, el mismo que fue creado el 02 de diciembre de 1997 basándose en los

principios de justicia y equidad, como respuesta a la alta evasión tributaria, alimentada por

la ausencia casi total de cultura tributaria. Desde su creación se ha destacado por ser una

institución independiente en la definición de políticas y estrategias de gestión que han

permitido que se maneje con equilibrio, transparencia y firmeza en la toma de decisiones,

aplicando de manera transparente tanto sus políticas como la legislación tributaria. (SRI,

2015)

La administración tributaria (SRI), con el afán de facilitar los procesos, ha permitido e

incentivado a incorporar herramientas tecnológicas en las empresas y negocios que

faciliten el cumplimiento de las obligaciones tributarias en el Ecuador, por tal motivo

según la Resolución No. NAC-DGERCGC12-00105 con fecha 9 de marzo del 2012, se

promueve la emisión de comprobantes electrónicos en el que RESUELVE: EXPEDIR

LAS NORMAS PARA EL NUEVO ESQUEMA DE EMISIÓN DE

COMPROBANTES DE VENTA, RETENCIÓN Y DOCUMENTOS

COMPLEMENTARIOS MEDIANTE MENSAJE DE DATOS (COMPROBANTES

ELECTRÓNICOS), mencionando que se debe cumplir con los requisitos legales y

reglamentarios de dicha entidad hacia los sujetos pasivos. Es por ello que surge la

necesidad en las empresas de contar con aplicaciones o sistemas que les permitan

administrar de forma adecuada la información que genera sus procesos en concordancia

con la normativa vigente.

2.2. Análisis de las distintas posiciones teóricas sobre el objeto de investigación

Según, Pérez (2013), expresa una sencilla definición de proceso, y que responde al

significado:

Secuencia [ordenada] de actividades [repetitivas] cuyo producto tiene valor intrínseco

para su usuario o cliente.

Según, SRI (2015), menciona que un comprobante electrónico es aquel mensaje de datos

que está firmado electrónicamente, referido a una transacción económica, que contiene

Page 26: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

13

toda información creada, generada, procesada, enviada, recibida, comunicada o archivada

por medios electrónicos y que puede ser intercambiada por cualquier medio.

Según la Resolución No. NAC-DGERCGC12-00105, fechado el 09 de marzo del 2012, en

su artículo 2, menciona: “Los sujetos pasivos de tributos, podrán emitir como

‘mensajes de datos’ conforme la definición de la ‘Ley de Comercio Electrónico,

Firmas Electrónicas y Mensajes de Datos’, los siguientes comprobantes de venta,

retención y documentos complementarios:

a) Facturas;

b) Comprobantes de Retención;

c) Guías de Remisión;

d) Notas de Crédito;

e) Notas de Débito;”

Con la relación a las distintas posiciones teóricas, se puede definir que los procesos son

pasos a seguir para llegar a obtener un resultado, los comprobantes electrónicos a emitirse

son facturas, comprobantes de retención, guías de remisión, notas de crédito y notas de

débito; para el desarrollo de la aplicación se utilizará nuevas tecnologías que permiten

mejorar los procesos de emisión de comprobantes electrónicos en los clientes de la

empresa INPRISE de la ciudad de Ibarra.

2.3. Valoración crítica de los conceptos principales

2.3.1. Procesos de facturación electrónica

2.3.1.1. Aplicación web

a) Definición.- Una aplicación web es una extensión dinámica de un servidor web o

un servidor de aplicaciones. En general, existen dos tipos de aplicaciones web: las

orientadas a presentación, que generan páginas web interactivas en distintos

lenguajes de marcador (HTML, XML, etc.) y contenido dinámico a las peticiones

de los clientes; y las orientadas a servicio, que constituye el punto final de un

servicio web. (Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 26)

Page 27: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

14

b) Características de Aplicación Web

El beneficiario puede obtener facilidad de acceso a las aplicación web mediante

cualquier navegador web ya sea mozilla, chrome, entre otros.

El beneficiario puede acceder a la aplicación web sin importar donde se

encuentre, pero, al mismo tiempo debe tener acceso a internet.

Existe una sola aplicación instalada en el servidor, pero pueden existir miles de

clientes que acceden al mismo tiempo a dicha aplicación; por lo tanto se puede

actualizar y mantener una única aplicación y todos sus clientes verán los

resultados inmediatamente.

c) Ciclo de vida de una aplicación web

Una aplicación web está formada por componentes web, ficheros de recursos

estáticos como las imágenes, clases y librerías de utilidades. El contenedor

proporciona algunos servicios de soporte que mejoran las capacidades de los

componentes web y los hacen más sencillos de desarrollar. Sin embargo, puesto que

una aplicación web debe tener en cuenta estos servicios, el proceso de creación y

ejecución de una aplicación web es distinto del de una aplicación Java tradicional.

Podríamos decir que este proceso se divide en las siguientes seis etapas:

Codificación del componente web.

Codificación del descriptor de despliegue de la aplicación.

Complicación de los componentes web de la aplicación y las clases de apoyo

referenciadas por aquéllos.

Opcionalmente, empaquetamiento de la aplicación en una unidad desplegable.

Despliegue de la aplicación en un contenedor web.

Acceso a la URL que referencia a la aplicación desarrollada. (Roldán Martínez,

Valderas Aranda, & Óscar, 2010, pág. 28)

d) Módulos web

En la arquitectura Java EE, los componentes web y los ficheros de recursos

estáticos reciben el nombre genérico de recursos web. Un módulo web es la unidad

despegable y utilizable más pequeña de un recurso web. Un módulo web Java EE

se corresponde a una aplicación web, tal y como la define la especificación de los

Java Servlet.

Page 28: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

15

Además de los componentes web y los recursos web, un módulo web puede

contener otros ficheros:

Clases de utilidades en el lado del servidor, generalmente, en forma de Java

Beans.

Clases en el lado del cliente como applets y clases de utilidades. (Roldán

Martínez, Valderas Aranda, & Óscar, 2010, pág. 28)

2.3.1.2. Facturación electrónica

a) Definición.- Según (Moro Vallina & Rodés Bach, 2014, pág. 62) Una factura

electrónica es el equivalente virtual de una factura en papel, un documento

electrónico que cumplen los mismos requisitos funcionales que esta. La facturación

electrónica consiste en la transmisión de un fichero o archivo entre el ordenador del

emisor y del receptor, firmado digitalmente para garantizar su identidad.

b) Ventajas de la facturación electrónica.

Ahorro de costes

Mejora de la eficiencia

Integración con las aplicaciones de gestión internas de la empresa.

Obtención de la información en tiempo real.

Reducción de tiempo de gestión.

Agilidad en la toma de decisiones.

Disminución de costes de los documentos en papel.

Control de acciones erróneas.

Uso eficaz de los recursos financieros. (Moro Vallina & Rodés Bach, 2014,

pág. 62)

2.3.1.3. Comprobantes electrónicos

Es el envío mediante "mensajes de datos", de comprobantes de venta, retención y

documentos complementarios, los cuales contienen una firma electrónica del contribuyente

emisor, se envían en tiempo real y tienen validez tributaria. (Servicio de Rentas Internas,

2015)

Según la Resolución No. NAC-DGERCGC12-00105, fechado el 09 de marzo del 2012, en

su artículo 2, menciona: “Los sujetos pasivos de tributos, podrán emitir como

Page 29: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

16

‘mensajes de datos’ conforme la definición de la ‘Ley de Comercio Electrónico,

Firmas Electrónicas y Mensajes de Datos’, los siguientes comprobantes de venta,

retención y documentos complementarios:

f) Facturas;

g) Comprobantes de Retención;

h) Guías de Remisión;

i) Notas de Crédito;

j) Notas de Débito;”

2.3.1.4. Firmas electrónicas

a) Definición.- Son los datos en forma electrónica consignados en un mensaje de

datos, adjuntados y lógicamente asociados al mismo, y que puedan ser utilizados

para identificar al titular de firma en relación con el mensaje de datos, e indicar que

el titular de la firma aprueba y reconoce la información contenida en el mensaje de

datos. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes

de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 4)

b) Efectos de la firma electrónica.- La firma electrónica tendrá igual validez y se le

reconocerán los mismos efectos jurídicos que a una firma manuscrita en la relación

con los datos consignados en documentos escritos y será admitida como prueba en

juicio. (Publicaciones, Ley de Comercio electrónico, firmas electrónicas y mensajes

de datos. Reglamento, Legislación conexa, concordancias, 2012, pág. 4)

c) Requisitos de la firma electrónica.- Para su validez, la firma electrónica reunirá

los siguientes requisitos, sin perjuicio de los que puedan establecerse por acuerdo

entre las partes:

Ser individual y estar vinculada exclusivamente a su titular;

Que permita verificar inequívocamente la auditoría e identidad del signatario,

mediante dispositivos técnicos de comprobación establecidos por esta Ley y

sus reglamentos;

Que su método de creación y verificación sea confiable, seguro e inalterable

para el propósito para el cual el mensaje fue generado o comunicado;

Page 30: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

17

Que al momento de creación de la firma electrónica, los datos con los que se

creare se hallen bajo control exclusivo del signatario; y,

Que la firma sea controlada por la persona a quien pertenece. (Publicaciones,

Ley de Comercio electrónico, firmas electrónicas y mensajes de datos.

Reglamento, Legislación conexa, concordancias, 2012, pág. 5)

d) La firma electrónica en un mensaje de datos.- Cuando se fijare la firma

electrónica en un mensaje de datos, aquélla deberá enviarse en un mismo acto como

parte integrante del mensaje de datos o lógicamente asociada a éste. Se presumirá

legalmente que el mensaje de datos firmado electrónicamente conlleva la voluntad

del emisor, quien se someterá al cumplimiento de las obligaciones contenidas en

dicho mensaje de datos, de acuerdo a lo determinado en la Ley. (Publicaciones, Ley

de Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento,

Legislación conexa, concordancias, 2012, pág. 5)

e) Obligaciones del titular de la firma electrónica.- El titular de la firma electrónica

deberá:

Cumplir con la obligaciones derivadas del uso de la firma electrónica;

Actuar con la debida diligencia y tomar las medidas de seguridad necesarias,

para mantener la firma electrónica bajo su estricto control y evitar toda

utilización no autorizada;

Notificar por cualquier medio a las personas vinculadas, cuando exista el

riesgo de que su firma sea controlada por terceros no autorizados y utilizada

indebidamente;

Verificar la exactitud de sus declaraciones;

Responder por las obligaciones derivadas del uso no autorizado de su firma,

cuando no hubiere obrado con la debida diligencia para impedir su

utilización, salvo que el destinatario conociere de la inseguridad de la firma

electrónica o no hubiere actuado con la debida diligencia;

Notificar a la entidad de certificación de información los riesgos sobre su

firma y solicitar oportunamente la cancelación de los certificados; y,

Page 31: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

18

Las demás señaladas en la ley y sus reglamentos. (Publicaciones, Ley de

Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento,

Legislación conexa, concordancias, 2012, pág. 5)

f) Duración de la firma electrónica.- Las firmas electrónicas tendrán duración

indefinida. Podrán ser revocadas, anuladas o suspendidas de conformidad con lo

que el Reglamento a esta Ley señale. (Publicaciones, Ley de Comercio electrónico,

firmas electrónicas y mensajes de datos. Reglamento, Legislación conexa,

concordancias, 2012, pág. 5)

g) Certificado de firma electrónica.- Es el mensaje de datos que certifica la

vinculación de una firma electrónica con una persona determinada, a través de un

proceso de comprobación que confirma su identidad. (Publicaciones, Ley de

Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento,

Legislación conexa, concordancias, 2012, pág. 6)

h) Uso del certificado de firma electrónica.- El certificado de firma electrónica se

empleará para certificar la identidad del titular de una firma electrónica y para otros

usos, de acuerdo a esta Ley y su Reglamento. (Publicaciones, Ley de Comercio

electrónico, firmas electrónicas y mensajes de datos. Reglamento, Legislación

conexa, concordancias, 2012, pág. 6)

i) Requisitos de los certificados de firma electrónica.- El certificado de firma

electrónica para ser considerado válido contendrá los siguientes requisitos:

Identificación de la entidad de certificación de información;

Domicilio legal de la entidad de certificación de información;

Los datos del titular del certificado que permitan su ubicación e

identificación;

El método de verificación de la firma del titular del certificado;

Las fechas de emisión y expiración del certificado;

El número único de serie que identifica el certificado;

La firma electrónica de la entidad de certificación de información;

Las limitaciones o restricciones para los usos del certificados; e,

Los demás señalados en esta Ley y los reglamentos. (Publicaciones, Ley de

Comercio electrónico, firmas electrónicas y mensajes de datos. Reglamento,

Legislación conexa, concordancias, 2012, pág. 6)

Page 32: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

19

j) Duración del certificado de firma electrónica.- Salvo acuerdo contractual, el

plazo de validez de los certificados de firma electrónica será el establecimiento en el

Reglamento a esta Ley. (Publicaciones, Ley de Comercio electrónico, firmas

electrónicas y mensajes de datos. Reglamento, Legislación conexa, concordancias,

2012, pág. 6)

Se enuncia a continuación las entidades certificadoras en el país para la adquisición de

los certificados digitales de la firma electrónica:

Banco Central del Ecuador

Consejo de la Judicatura

Security Data

ANF

Tabla 1 Entidades de Certificación de firmas electrónicas

Elaborado por: El Autor

Cabe mencionar que dos entidades son instituciones públicas y las restantes son

empresas privadas.

2.3.1.5. Procesos

a) Definición.- Una sencilla definición de proceso, y que responde al significado que

a esta palabra hemos dado en este texto, es:

Secuencia [ordenada] de actividades [repetitivas] cuyo producto tiene valor

intrínseco para su usuario o cliente. (Pérez Fernández de Velasco, 2013, pág. 49)

2.3.1.6. Correo Electrónico

a) Definición.- El correo electrónico (también conocido como e-mail, email o mail)

funciona de manera similar al correo tradicional, pero ofrece mayores prestaciones.

Para intercambiar mensajes por medio de este sistema, se necesita contar con una

dirección de correo electrónico y tener acceso a un equipo (computadora, teléfono

móvil u otro dispositivo) con conexión internet.

ENTIDADES DE CERTIFICACIÓN

Page 33: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

20

Y desde el equipo con conectividad a internet hay dos maneras de usar el e-mail.

Una de ellas es a través de los sistemas Web mail como Gmail (www.gmail.com),

Yahoo! (www.yahoo.com) y Hotmail (www.hotmail.com), a los cuales se accede

por medio de un navegador Web.

La otra alternativa es usar un software específico (Microsoft Outlook o Mozilla

Thunderbird, entre otros) que se debe tener instalado en el dispositivo electrónico

(por ejemplo, computadora o teléfono móvil) con conexión a Internet. (Veloso,

2011, pág. 91)

2.3.1.7. Base legal

Ley Régimen Tributario Interno

Ley de Comercio Electrónico, Firmas y Mensajes de Datos publicando en el

Suplemento del Registro Oficial No. 735 de 31 de diciembre de 2002.

Decreto No. 181 publicado en el Registro Oficial No. 553 de 11 de octubre del

2011, en el cual norma la numeración de identificadores de campo y campos

mínimos de los tipos de certificados.

Reglamento para la Aplicación de la Ley de Régimen Tributario Interno.

Reglamento de Comprobantes de Venta, Retención y Documentos

Complementarios.

Resolución No. NAC-DGERCGC12-00105 de 09 de marzo de 2012, publicada en

Registro Oficial No. 666 de 21 de marzo de 2012.

Resolución NAC-DGERCGC14-00790, publicada en el Registro Oficial 346 de 2

de octubre de 2014.

Resolución NAC-DGERCGC14-00787, publicada en el Registro Oficial 346 de 2

de octubre de 2014.

Resolución NAC-DGERCGC15-00000284, publicada en el Registro Oficial 473

de 6 de abril de 2015.

2.3.2. Herramientas de desarrollo

2.3.2.1. XML

a) Definición.- XML (eXtended Markup Language) es un lenguaje de marcas.

Procede de SGML (Standard Generalized Markup Language), un metalenguaje

Page 34: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

21

diseñado para construir estructuras de datos descriptivas. SGML pese a ser muy

potente, es demasiado complejo para la mayoría de las aplicaciones. Por ellos se

intentó definir una versión más simplificada y mucho más flexible: XML. La

relación entre ambos lenguajes está representada en la Figura 1. (Roldán Martínez,

Valderas Aranda, & Óscar, 2010, pág. 255)

Figura 1 XML y otros lenguajes de marcas

Elaborado por: El autor

Al igual que HTML, XML utiliza etiquetas, sin embargo, en lugar de especificar

cómo debe presentarse la información contenida entre las marcas, se limitan a

indicar qué significan. Por ejemplo, <autor> David Roldán </autor>.

Tratamiento de la

información

Se encarga de estructurar la

información de forma lógica.

Se centra en la forma de

presentar la información

Procesamiento de

la información

Sencillo, ya que toda la

información se encuentra ya

estructurada según una lógica

específica.

Muy complejo, debido a

información se encuentra

mezclada con etiquetas

que definen el estilo de

presentación. Tabla 2 XML vs HMTL Elaborado por: El autor

En definitiva, XML, junto con todas sus tecnologías relacionadas, abre un nuevo

abanico de posibilidades a la hora de desarrollar aplicaciones. Una de las grandes

ventajas de XML es su orientación al intercambio de información, al ser

independiente de la aplicación que lo utilice.

La figura 2 muestra cómo la información contenida en un único documento XML

es visualizada en dispositivos diferentes. Esta facilidad de intercambio de

información ha convertido a XML en el punto alrededor del cual giran la mayoría

de las aplicaciones B2B (Business to Business). (Roldán Martínez, Valderas

Aranda, & Óscar, 2010, pág. 256)

HTML

XML

SGML

XML HTML

Page 35: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

22

Figura 2 Aplicaciones de XML

Elaborado por: EL autor

b) Modelos de Procesamiento XML

En general, el modelo de procesamiento de documentos XML en Java se divide en

tres fases:

Procesamiento de la entrada XML

Análisis y validación del documento fuente.

Reconocimiento y búsqueda de información basándose en su etiquetado

en el documento fuente.

Extracción de la información localizada.

Manejo de la lógica de negocio

Procesamiento de la salida XML:

Construcción de un modelo de documento.

Aplicación de hojas de estilo XSLT o serialización directamente a XML.

(Roldán Martínez, Valderas Aranda, & Óscar, 2010, pág. 265)

2.3.2.2. JavaScript

JavaScript es actualmente una tecnología vital en lo que al desarrollo de aplicaciones

modernas para la Web se refiere. Todos los navegadores se han estado esforzando en dar

un mejor soporte y rendimiento para JavaScript, adicionalmente otros grupos han creado

extensiones muy interesantes para esta tecnología.

Todos los desarrolladores Web hoy en día estarán de acuerdo con las anteriores

afirmaciones, pero lo que hace a JavaScript aún más importante es que está acompañando

en su evaluación a HTML5, lo que hace de la Web ya no sólo un asunto de alojar páginas

INFORMACIÓN

Page 36: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

23

para después mostrarlas, sino la convierte en una verdadera plataforma de desarrollo para

aplicaciones. (Herrera Ríos, 2012, pág. 163)

2.3.2.3. CSS

Las hojas de estilo en cascada (Cascading Style Sheets) ofrecen propiedades para ampliar

el lenguaje HTML en la presentación visual de las páginas Web. El lenguaje CSS, definido

por primera vez en el año 1996, es el más conocido y utilizado para definir las propiedades

de formato de los diferentes elementos HTML. Este lenguaje permite vincular los

ducmentos HTML con “Plantillas de documento” (Hojas de estilo o StyleSheets), que,

además de contener la información topográfica de los elementos visuales de la página,

permiten separar completamente la estructura de contenidos de su representación y

presentación actuales, no sólo en el monitor sino en cualquier pantalla imaginable (móvil,

PDA, etc), tecnología de soporte (lectores de pantalla, líneas en braille) o en el papel

impreso. El propio lenguaje (X)HTML se ha visto reforzado para la construcción de las

estructuras lógicas de la página. (Schulz, 2009, pág. 4)

2.3.2.4. jQuery 2.0

jQuery es uno de los complementos más esenciales para el desarrollo web, usado en

millones de sitios en toda la web, ya que nos facilita mucho el desarrollo de aplicaciones

enriquecidas del lado del cliente, en Javascript, compatibles con todos los navegadores.

Para los que se inician, conviene aclarar que jQuery no es un lenguaje, sino una serie de

funciones y métodos de Javascript. Por tanto, Javascript es el lenguaje y jQuery es una

librería que podemos usar opcionalmente si queremos facilitar nuestra vida cuando

programamos en Javascript. A veces nos podemos referir a jQuery como framework o

incluso como un API de funciones, útiles en la mayoría de proyectos web.

Antes de llegar jQuery los desarrolladores estábamos obligados a discriminar entre los

diversos navegadores, para ejecutar aquel código Javascript que funcionaba en cada

browser. Con la llegada de jQuery la principal ventaja es que ya no necesitamos

preocuparnos sobre si el navegador del usuario es Explorer, Chrome, Firefox, etc. sino que

la propia librería hará el trabajo "sucio" por nosotros y ejecutará el código que sea

compatible con el software del cliente que está accediendo a nuestra web. Para ello

usaremos las funciones que jQuery nos proporciona, dentro de un grandísimo abanico de

Page 37: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

24

funcionalidades que además se extiende por medio de miles de plugins que ofrece la

comunidad para implementar cualquier tipo de comportamiento. (Alvarez, 2012)

2.3.2.5. HTML5

HTML es parte esencial de la Web y ha logrado cambiar y madurar al ritmo de Internet en

general, en las primeras concepciones del HTML fue simplemente una manera útil de usar

etiquetas (tags) para determinar cómo una página debería ser desplegada, pero se han ido

añadiendo varias características. Hoy Internet sigue siendo acerca de documentos, pero

más que nunca, también de aplicaciones, sobre todo si se toma en cuenta que antes sólo las

computadoras de escritorio eran las únicas que desplegaban contenido de la Web, pero

ahora también los dispositivos móviles lo pueden hacer, por lo que todo parece indicar que

es el momento de un nuevo estándar, y HTML5 es ese estándar. (Herrera Ríos, 2012, pág.

3)

a) Ventajas

Posee una gran cantidad de funcionalidades que los desarrolladores sólo

lograban con el uso de algún plug-in de terceros como Applets de Java o Flash

embebidos en el código.

Las mejoras en el manejo de multimedia son ampliamente superiores;

imágenes, video, audio y fuentes de texto son mucho más manipulables. En

muchos casos, estas mejoras se pueden tomar como una respuesta directa a

Flash.

HTML5 nos proporcionará una manera de hacer un código más limpio, más

fácil de leer y escribir.

b) Desventaja

HTML5 es tan nuevo que algunas personas que todavía usan computadoras

viejas podrían usar navegadores que no puedan visualizarlo aún. (Herrera Ríos,

2012, pág. 6)

Page 38: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

25

2.3.3. Servidores web

2.3.3.1. NGINX

NGINX (pronunciado como “engine X”) es un servidor web HTTP de código abierto que

también incluye servicios de correo electrónico con acceso al Internet Message Protocol

(IMAP) y al servidor Post Office Protocol (POP). Además, NGINX está listo para ser

utilizado como un proxy inverso. En este modo, NGINX se utiliza para equilibrar la carga

entre los servidores back-end, o para proporcionar almacenamiento en caché para un

servidor back-end lento.

Empresas como la compañía de TV online Hulu utilizan NGINX por su estabilidad y

configuración simple. Otros usuarios, como Facebook y WordPress.com, lo utilizan porque

la arquitectura asíncrona del servidor web deja una pequeña huella de memoria y bajo

consumo de recursos, haciéndolo ideal para el manejo de múltiples y cambiantes activas

páginas Web.

Esa es una tarea difícil. De acuerdo al director de NGINX, el arquitecto Igor Sysoev, es así

como NGINX puede soportar cientos de millones de usuarios de Facebook.

El programa está disponible para su uso y es de código abierto. De acuerdo con Sysoev, el

modelo de negocio de la compañía se basa en dos licencias. “La versión con software libre

[Software Libre y Código Abierto] más funcional y actualizada”, y una. “extensiones

comerciales para ser reconocidos en base a esta versión y que valga la pena su compra para

las empresas que necesitan funciones avanzadas que normalmente no están disponibles en

ningún otro producto open-source similar. (DesdeLinux, 2013)

a) Características

Servidor de archivos estáticos, índices y autoindexado.

Proxy inverso con opciones de caché.

Balanceo de carga.

Tolerancia a fallos.

Soporte de HTTP sobre SSL.

Soporte para FastCGI con opciones de caché.

Servidores virtuales basados en nombre y/o en dirección IP.

Page 39: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

26

Streaming de archivos FLV y MP4.8

Soporte para autenticación.

Compatible con IPv6

Soporte para protocolo SPDY

Compresión gzip.

Habilitado para soportar más de 10.000 conexiones simultáneas. (Wikipedia,

2015)

2.3.4. Base de datos

Una Base de Datos es una colección de información perteneciente a un mismo contexto (o

problema), que está almacenada de forma organizada en ficheros.

Una base de datos está organizada mediante tablas, que almacenan información

concerniente a algún objeto o suceso. Estas tablas se relacionan formando vínculos o

relaciones entre ellas, que ayudan a mantener la información de los diversos objetos de

forma ordenada y coherente (sin contradicciones). Cada una de estas tablas es una

estructura que se parece a las hojas de cálculo, pues está dispuesta mediante filas y

columnas. De este modo, cada fila almacena un registro con tantos campos como

columnas tenga la tabla. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, págs.

6 - 7)

2.3.4.1. Conceptos

Uno de los grandes problemas al que se enfrentan los informáticos cuando comienzan su

aprendizaje, es el gran número de términos desconocidos que debe asimilar, incluyendo el

enorme número de sinónimos y siglas que se utilizan para nombrar la misma cosa. A

continuación se definen los siguientes conceptos:

Dato: El dato es un trozo de información concreta sobre algún concepto o suceso.

Por ejemplo, 1996 es un número que representa un año de nacimiento de una

persona. Los datos se caracterizan por pertenecer a un tipo.

Tipo de Dato: El tipo de dato indica la naturaleza del campo. Así, se puede tener

datos numéricos, que son aquellos con los que se pueden realizar cálculos

aritméticos (sumas, restas, multiplicaciones…) y los alfanuméricos, que son los que

contienen caracteres alfabéticos y dígitos numéricos. Estos datos alfanuméricos y

Page 40: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

27

numéricos se pueden combinar para obtener tipos de datos más elaborados. Por

ejemplo, el tipo de dato Fecha contiene tres datos numéricos, representado el día, el

mes y el año de esta fecha.

Campo: Un campo es un identificador para toda una familia de datos. Cada campo

pertenece a un tipo de datos. Por ejemplo, el campo “Fecha Nacimiento” representa

las fechas de nacimiento de las personas que hay en la tabla. Este campo pertenece

al tipo de dato Fecha. Al campo también se le llama columna.

Registro: Es una recolección de datos referentes a un mismo concepto o suceso.

Por ejemplo, los datos de una persona pueden ser un NIF, año de nacimiento, su

nombre, su dirección, etc. A los registros también se les llama tuplas o filas.

Campo Clave: Es un campo especial que identifica de forma única a cada registro.

Así, el NIF es único para cada persona, por tanto es campo clave.

Tabla: Es un conjunto de registros bajo un mismo nombre que representa el

conjunto de todos ellos. Por ejemplo, todos los clientes de una base de datos se

almacenan en una tabla cuyo nombre es Clientes.

Consulta: Es una instrucción para hacer peticiones a una base de datos. Puede ser

una búsqueda simple de un registro específico o una solicitud para seleccionar

todos los registros que satisfagan un conjunto de criterios. Aunque en castellano,

consulta tiene un significado de extracción de información, en inglés query, una

consulta es una petición, por tanto, además de las consultas de búsqueda de

información, que devuelven los campos y registros solicitados, hay consultas

(peticiones) de eliminación o inserción de registros, de actualización de registros,

cuya ejecución altera los valores de los mismos.

Índice: Es una estructura que almacena los campos clave de una tabla,

organizándolos para hacer más fácil encontrar y ordenar los registros de esa tabla.

El índice tiene un funcionamiento similar al índice de un libro, guardando parejas

de elementos: el elemento que se desea indexar y su posición en la base de datos.

Para buscar un elemento que esté indexado, solo hay que buscar en el índice de

dicho elemento para, una vez encontrado, devolver el registro que se encuentre en

la posición marcada por el índice.

Vista: Es una transformación que se hace a una o más tablas para obtener una

nueva tabla. Esta nueva tabla es una tabla virtual, es decir, no está almacenada en

Page 41: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

28

los dispositivos de almacenamiento del ordenador, aunque sí se almacena su

definición.

Informe: Es un listado ordenado de los campos y registros seleccionados en un

formato fácil de leer. Generalmente se usan como peticiones expresas de un tipo de

información por parte de un usuario. Por ejemplo, un informe de las facturas

impagadas del mes de enero ordenado por nombre de clientes.

Guiones: o scripts. Son un conjunto de instrucciones, que ejecutadas de forma

ordenada, realizan operaciones avanzadas de mantenimiento de los datos

almacenados en la base de datos.

Procedimientos: Son un tipo especial de script que está almacenado en la base de

datos y que forma parte de su esquema. (López Montalbán, Castellano Pérez, &

Orpino Rivas, 2013, págs. 7-8-9)

2.3.4.2. Estructura de una base de datos

Una base de datos almacena los datos a través de un esquema. El esquema es la definición

de la estructura donde se almacenan los datos, contiene todo lo necesario para organizar la

información mediante tablas, registros (filas) y campos (columnas). También contiene

otros objetos necesarios para el tratamiento de los datos (procemientos, vistas, índices,

etc.). Al esquema también se le suele llamar metainformación, es decir, información sobre

la información o metadatos.

Los gestores de bases de datos modernos Oracle, MySQL, PostgreSQL y DB2, entre otros

almacenan el esquema de la base de datos en tablas, de tal manera que el propio esquema

de la base de datos se puede tratar como si fueran datos comunes de la base de datos. Ver

figura 3. (López Montalbán, Castellano Pérez, & Orpino Rivas, 2013, págs. 9-10)

2.3.4.3. Uso de las bases de datos

Las bases de datos son ubícuas, están en cualquier tipo de sistemas informático, a

continuación se exponen solo algunos ejemplos de sus usos más frecuentes:

Bases de datos Administrativas: Cualquier empresa necesita registrar y relacionar

sus clientes, pedidos, facturas, productos, etc.

Bases de datos Contables: También es necesario gestionar los pagos, balances de

pérdidas y ganancias, patrimonio, declaraciones de hacienda…

Page 42: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

29

Bases de datos motores de búsquedas: Por ejemplo Google o Altavista, tienen una

base de datos gigantesta donde almacenan información sobre todos los documentos

de Internet. Posteriormente millones de usuarios buscan en la base de datos de estos

motores.

Científicas: Recolección de datos climáticos y medioambientales, químicos,

genómicos, geológicos…

Configuraciones: Almacenan datos de configuración de un sistema informático,

como por ejemplo, el registro de Windows.

Bibliotecas: Almacenan información bibliográfica, por ejemplo, la famosa tienda

virtual amazon o la biblioteca de un instituto.

Censos: Guardan información demográfica de pueblos, ciudades y países.

Virus: Los antivirus guardan información sobre todos los potenciales software

maliciosos.

Otros muchos usos: Militares, videojuegos, deportes, etc. (López Montalbán,

Castellano Pérez, & Orpino Rivas, 2013, pág. 10)

2.3.4.4. PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo

licencia BSD y con su código fuente disponible libremente. Es el sistema de gestión de

bases de datos de código abierto más potente del mercado y en sus últimas versiones no

tiene nada que envidiarle a otras bases de datos comerciales.

PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos

para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el

resto y el sistema continuará funcionando.

A continuación tenemos un gráfico que ilustra de manera general los componentes más

importantes en un sistema PostgreSQL.

Page 43: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

30

Figura 3 Componentes de un sistema PostgreSQL

Fuente: (PosgrestSQL-es, 2013)

Aplicación cliente: Esta es la aplicación cliente que utiliza PostgreSQL como

administrador de bases de datos. La conexión puede ocurrir vía TCP/IP ó sockets locales.

Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el encargado de

escuchar por un puerto/socket por conexiones entrantes de clientes. También es el

encargado de crear los procesos hijos que se encargaran de autentificar estas peticiones,

gestionar las consultas y mandar los resultados a las aplicaciones clientes

Ficheros de configuración: Los 3 ficheros principales de configuración utilizados por

PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf

Procesos hijos postgres: Procesos hijos que se encargan de autentificar a los clientes, de

gestionar las consultas y mandar los resultados a las aplicaciones clientes

PostgreSQL share buffer cache: Memoria compartida usada por POstgreSQL para

almacenar datos en caché.

Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la integridad

de los datos (recuperación de tipo REDO)

Kernel disk buffer cache: Caché de disco del sistema operativo

Disco: Disco físico donde se almacenan los datos y toda la información necesaria para que

PostgreSQL funcione. (PosgrestSQL-es, 2013)

Page 44: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

31

a) Características

Generales

Es una base de datos 100% ACID - Atomicity, Consistency, Isolation

and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en

español.

Integridad referencial

Tablespaces

Nested transactions (savepoints)

Replicación asincrónica/sincrónica / Streaming replication - Hot Standby

Two-phase commit

PITR - point in time recovery

Copias de seguridad en caliente (Online/hot backups)

Unicode

Juegos de caracteres internacionales

Regionalización por columna

Multi-Version Concurrency Control (MVCC)

Multiples métodos de autentificación

Acceso encriptado vía SSL - Secure Sockets Layer

Actualización in-situ integrada (pg_upgrade)

SE-postgres

Completa documentación

Licencia BSD - Berkeley Software Distribution

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX,

SGI IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit. (PosgrestSQL-

es, 2013)

Programación / Desarrollo

Funciones/procedimientos almacenados (stored procedures) en numerosos

lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de

oracle), PL/Perl, PL/Python y PL/Tcl.

Page 45: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

32

Bloques anónimos de código de procedimientos (sentencias DO).

Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de

los tipos estándares en cualquier base de datos, tenemos disponibles, entre

otros, tipos geométricos, de direcciones de red, de cadenas binarias, UUID,

XML, matrices, etc.

Soporta el almacenamiento de objetos binarios grandes (gráficos, videos,

sonido, ...)

APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl,

ODBC, PHP, Lisp, Scheme, Qt y muchos otros. (PosgrestSQL-es, 2013)

2.3.5. Lenguajes de Programación

2.3.5.1. Phyton

a) Definición de Python

Python es un lenguaje de programación creado por Guido Van Rossum a principios

de los años 90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty

Python”. Es un lenguaje similar a Perl, pero con una sintaxis muy limpia y que

favorece un código legible.

Se trata de un lenguaje interpretado o de script, con tipado dinámico, fuertemente

tipado, multiplataforma y orientado a objetos.

b) Lenguaje interpretado o de script

Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa

intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina

que pueda comprender y ejecutar directamente una computadora (lenguajes

compilados).

La ventaja de los lenguajes compilados es que su ejecución es más rápida. Sin

embargo los lenguajes interpretados son más flexibles y más portables.

Python tiene, no obstante, muchas de las características de los lenguajes

compilados, por lo que se podría decir que es semi interpretado. En Python, como

en Java y muchos otros lenguajes, el código fuente se traduce a un pseudo código

Page 46: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

33

máquina intermedio llamado bytecode la primera vez que se ejecuta, generando

archivos .pyc o .pyo (bytecode optimizado), que son los que se ejecutarán en

sucesivas ocasiones.

c) Tipado dinámico

La característica de tipado dinámico se refiere a que no es necesario declarar el tipo

de dato que va a contener una determinada variable, sino que su tipo se determinará

en tiempo de ejecución según el tipo del valor al que se asigne, y el tipo de esta

variable puede cambiar si se le asigna un valor de otro tipo.

d) Fuertemente tipado

No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es

necesario convertir de forma explícita dicha variable al nuevo tipo previamente. Por

ejemplo, si tenemos una variable que contiene un texto (variable de tipo cadena o

string) no podremos tratarla como un número (sumar la cadena “9” y el número 8).

En otros lenguajes el tipo de la variable cambiaría para adaptarse al comporta-

miento esperado, aunque esto es más propenso a errores.

e) Multiplataforma

El intérprete de Python está disponible en multitud de plataformas (UNIX, Solaris,

Linux, DOS, Windows, OS/2, Mac OS, etc.) por lo que si no utilizamos librerías

específicas de cada plataforma nuestro programa podrá correr en todos estos

sistemas sin grandes cambios.

f) Orientado a objetos

La orientación a objetos es un paradigma de programación en el que los conceptos

del mundo real relevantes para nuestro problema se trasladan a clases y objetos en

nuestro programa. La ejecución del programa consiste en una serie de interacciones

entre los objetos.

Python también permite la programación imperativa, programación funcional y

programación orientada a aspectos.

Page 47: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

34

g) Por qué Python

Python es un lenguaje que todo el mundo debería conocer. Su sintaxis simple, clara

y sencilla; el tipado dinámico, el gestor de memoria, la gran cantidad de librerías

disponibles y la potencia del lenguaje, entre otros, hacen que desarrollar una

aplicación en Python sea sencillo, muy rápido y, lo que es más importante,

divertido.

La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los

programas elaborados en Python parecen pseudocódigo. Por este motivo se trata

además de uno de los mejores lenguajes para comenzar a programar.

Python no es adecuado sin embargo para la programación de bajo nivel o para

aplicaciones en las que el rendimiento sea crítico.

Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA,

Industrias Light & Magic, y todas las distribuciones Linux, en las que Python cada

vez representa un tanto por ciento mayor de los programas disponibles. (González

Duque, S/A)

h) Características principales de Python

Python es un lenguaje de programación de propósito general, de muy alto nivel

(esto es, un alto nivel de abstracción, con el uso de listas, tuplas, diccionarios).

Python es un lenguaje interpretado (no es necesaria compilación), dinámico (no

necesita identificar explícitamente los tipos de datos para inicializar variables, de

modo que los tipos se validan durante la ejecución del programa) y fuertemente

tipado (no pueden mezclarse tipos, es necesario hacer conversiones).

Python es un lenguaje multiplataforma (Windows, Mac, Linux, etc),

multiparadigma (imperativo, orientado a objetos y en menos medida funcional) y

con gestión automática de memoria.

Por último cabe destacar que Python es un lenguaje de programación con una

sintaxis clara y sencilla, fácil de aprender, donde se pueden mezclar los

diferentes paradigmas de programación de los que dispone, ampliamente

Page 48: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

35

documentado, extensible, que intenta obligar al desarrollador de software a

programar de la manera correcta en el menor tiempo posible.

2.3.5.2. Django

Django fue desarrollado para satisfacer esas nuevas ambiciones. Django te permite

construir en profundidad, de forma dinámica, sitios interesantes en un tiempo

extremadamente corto. Django está diseñado para hacer foco en la diversión, en las partes

interesantes de tu trabajo, al mismo tiempo que alivia el dolor de las partes repetitivas. Al

hacerlo, proporciona abstracciones de alto nivel a patrones comunes del desarrollo Web,

agrega atajos para tareas frecuentes de programación y claras convenciones sobre cómo

resolver problemas. Al mismo tiempo, intenta mantenerse fuera de tu camino, dejando que

trabajes fuera del alcance del framework cuando sea necesario. (García, 2015)

a) Historia

Antes de empezar a escribir código, deberíamos tomarnos un momento para

explicar la historia de Django. Y para mostrar cómo se hacen las cosas sin usar

atajos, esto nos ayudará a entenderlos mejor. Es útil entender por qué se creó el

framework, ya que el conocimiento de la historia pone en contexto la razón por la

cual Django trabaja de la forma en que lo hace.

Si has estado creando aplicaciones Web por un tiempo, probablemente estés

familiarizado con los siguientes problemas. El camino clásico de un desarrollador

Web es algo como esto:

1. Escribir una aplicación Web desde cero.

2. Escribir otra aplicación Web desde cero.

3. Darse cuenta de que la aplicación del paso, 1 tiene muchas cosas en

común con la aplicación del paso 2.

4. Refactorizar el código para que la aplicación 1, comparta código con la

aplicación 2.

5. Repetir los pasos 2-4 varias veces.

6. Darse cuenta de que acabamos de inventar un framework.

Así es precisamente como surgió Django.

Page 49: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

36

Django nació naturalmente de aplicaciones de la vida real escritas por un equipo de

desarrolladores Web en Lawrence, Kansas. Nació en el otoño boreal de 2003,

cuando los programadores Web del diario Lawrence Journal-World, Adrian

Holovaty y Simon Willison, comenzaron a usar Python para crear sus aplicaciones.

El equipo de The World Online, responsable de la producción y mantenimiento de

varios sitios locales de noticias, prosperaban en un entorno de desarrollo dictado

por las fechas límite del periodismo. Para los sitios –incluidos LJWorld.com,

Lawrence.com y KUsports.com los periodistas (y los directivos) exigían que se

agregaran nuevas características y que aplicaciones enteras se crearan a una

velocidad vertiginosa, a menudo con sólo días u horas de preaviso. Es así que

Adrian y Simon desarrollaron por necesidad un framework de desarrollo Web que

les ahorrara tiempo – era la única forma en que podían crear aplicaciones

mantenibles en tan poco tiempo. En el verano de 2005, luego de haber desarrollado

este framework hasta el punto en que estaba haciendo funcionar la mayoría de los

sitios de World Online, el equipo de World Online, que ahora incluía a Jacob

Kaplan-Moss, decidió liberar el framework como software de código abierto. Lo

liberaron en julio de 2005 y lo llamaron Django, por el guitarrista de jazz “Django

Reinhardt”. Hoy en día, Django es un proyecto estable y maduro, de código abierto

con cientos de miles de colaboradores y usuarios de todo el mundo. Dos de los

desarrolladores originales de Worl Online (“Los benevolentes dictadores vitalicios”

Adrian y Jacob) siguen aportando una guía centralizada para el crecimiento del

framework, por lo que es más un equipo de colaboración comunitario.

Esta historia es relevante porque ayuda a explicar dos cuestiones clave. La primera

es el “punto dulce” de Django. Debido a que Django nació en un entorno de

noticias, ofrece varias características (en particular la interfaz administrativa, que

son particularmente apropiadas para sitios de “contenido” – sitios como eBay,

craigslist.org y washingtonpost.com que ofrecen información basada en bases de

datos. (De todas formas, no dejes que eso te quite las ganas, a pesar de que Django

es particularmente bueno para desarrollar esa clase de sitios, eso no significa que no

sea una herramienta efectiva para crear cualquier tipo de sitio Web dinámico.

Existe una gran diferencia entre ser particularmente efectivo para algo y no ser

particularmente efectivo para otras cosas).

Page 50: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

37

La segunda cuestión a resaltar es cómo los orígenes de Django le han dado forma a

la cultura de su comunidad de código abierto. Debido a que Django fue extraído de

código de la vida real, en lugar de ser un ejercicio académico o un producto

comercial, está especialmente enfocado en resolver problemas de desarrollo Web

con los que los desarrolladores de Django se han encontrado – y con los que

continúan encontrándose. Como resultado de eso, Django es continuamente

mejorado. Los desarrolladores del framework tienen un alto grado de interés en

asegurarse de que Django les ahorre tiempo a los desarrolladores, produzca

aplicaciones que sean fáciles de mantener y rindan bajo mucha carga. Aunque

existen otras razones, los desarrolladores están motivados por sus propios deseos

egoístas de ahorrarse tiempo a ellos mismos y disfrutar de sus trabajos. (García,

2015, págs. 6 - 7)

b) Qué es un Framework Web

Django es un miembro importante de una nueva generación de frameworks Web.

¿Pero qué significa este término exactamente?

Para contestar esa pregunta, consideremos el diseño de una aplicación Web escrita

en Python, sin usar un framework. Una de las formas más simples y directas para

construir una aplicación Web desde cero en python, es usando el estándar Common

Gateway Interface (CGI), una técnica muy popular para escribir aplicaciones Web

alrededor del año 1998. Esta es una explicación de alto nivel sobre cómo trabaja.

Solo crea un script Python, que produzca HTML, guarda el script en el servidor

Web con la extensión .cgi y visita la página con un navegador Web. Eso ¡Eso todo!

(García, 2015, pág. 3)

2.3.5.3. Java

Java es un lenguaje de programación de alto nivel con el que se pueden escribir tanto

programas convencionales como por Internet.

Una de las ventajas significativas de Java sobre otros lenguajes de programación es que es

independiente de la plataforma, tanto en código fuente como en binario. Esto quiere decir

que el código producido por el compilador Java puede transportarse a cualquier plataforma

(Intel, Sparc, Motorola, etc.) que tenga instalada una máquina virtual Java y ejecutarse.

Page 51: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

38

Pensando en Internet esta característica es crucial ya que esta red conecta ordenadores muy

distintos. En cambio, C++, por ejemplo, es independiente de la plataforma sólo en código

fuente, lo cual significa que cada plataforma diferente debe proporcionar el compilador

adecuado para obtener el código máquina que tiene que ejecutarse.

Según lo expuesto, Java incluye dos elementos: un compilador y un intérprete. El

compilador produce un código de bytes que se almacena en un fichero para ser ejecutado

por el intérprete Java denominado máquina virtual de Java. (Ceballos, 2011, pág. 7)

Figura 4 Proceso de sus dos elementos Elaborado por: El autor

Los códigos de bytes de Java son un conjunto de instrucciones correspondientes a un

lenguaje máquina virtual de Java. ¿Dónde se consigue esta máquina virtual? Hoy en día

casi todas las compañías de sistemas operativos y de navegadores han implementado

máquinas virtuales según las especificaciones publicadas por Sun Microsystems,

propietario de Java, para que sean compatibles con el lenguaje Java. Para las aplicaciones

de Internet (por ejemplo, los applets) la máquina virtual está incluida en el navegador y

para las aplicaciones Java convencionales, puede venir con el sistema operativo, con el

paquete Java, o bien puede obtenerla a través de Internet. (Ceballos, 2011, pág. 7)

a) Importancia de utilizar Java

Una de las ventajas más significativas de Java es su independencia de la

plataforma. En el caso de que tenga que desarrollar aplicaciones que tenga que

ejecutarse en sistemas diferentes, esta característica es fundamental.

Otra característica importante de Java es que es un lenguaje de programación

orientado a objetos (POO). Los conceptos en los que se apoya esta técnica de

programación.

Además de ser transportable y orientado a objetos, Java es un lenguaje fácil de

aprender. Tiene un tamaño pequeño que favorece al desarrollo y reduce las

Programa

escrito en

Java

Código de

bytes Compilador

Máquina

virtual de

Java

Page 52: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

39

posibilidades de cometer errores; a la vez es potente y flexible. (Ceballos, 2011,

pág. 9)

2.4. Análisis crítico

Desde el punto de vista teórico se ha logrado identificar la problemática que tienen los

clientes de la empresa INPRISE al no contar con una aplicación que pueda emitir

comprobantes electrónicos y así dar cumplimiento a lo manifestado por el organismo

regulador SRI, para lo anteriormente expuesto la empresa INPRISE ha visto la necesidad

de implementar una aplicación web para la emisión de comprobantes electrónicos en sus

clientes y a la vez cumplir con el requerimiento emitido por la administración tributaria.

2.5. Conclusiones parciales del capítulo

El uso de software libre en ambientes empresariales es de gran utilidad hoy en día,

por cuanto ahorra recursos y presupuesto para las empresas que lo utilizan.

Mediante la investigación bibliográfica se fundamentó teóricamente los temas

planteados, los mismos que se reflejarán en el desarrollo de la aplicación web.

La ejecución de esta parte es primordial, ya que se realiza un análisis crítico sobre

el objeto de investigación y campo de acción de los clientes de la empresa

INPRISE.

Page 53: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

40

CAPÍTULO III

3. MARCO PROPOSITIVO

3.1. Título

“APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES ELECTRÓNICOS

DE LOS CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA”

3.2. Objetivo

Desarrollar una aplicación web para la emisión de comprobantes electrónicos de los

clientes de la empresa INPRISE de la ciudad de Ibarra.

3.3. Desarrollo de la Propuesta

La utilización de servicios de redes de información e internet se han convertido hoy en día

en un medio para el desarrollo del comercio, por lo que es conveniente impulsar el acceso

de los sujetos pasivos a los servicios electrónicos y telemáticos de transmisión de

información, es por ello que la administración tributaria SRI resolvió mediante una

resolución la implementación de la emisión de comprobantes electrónicos en los sujetos

pasivos.

Con base a lo expuesto anteriormente la empresa INPRISE ha considerado el desarrollo de

una aplicación web para la emisión de comprobantes electrónicos de sus clientes, buscando

siempre calidad en el servicio hacia sus usuarios.

Además permitirá a las empresas clientes de INPRISE ahorrar recursos, disminuyendo el

uso del papel y aportando con el cuidado del medio ambiente; al mismo tiempo los

usuarios de las empresas podrán beneficiarse al recibir sus comprobantes electrónicamente

en sus cuentas de correo electrónico y a su vez poniendo a disposición en la aplicación

web, ya que los comprobantes electrónicos tienen la misma validez que los comprobantes

físicos, proporcionando mayor seguridad de la información y reduciendo drásticamente la

posibilidad de falsificación de documentos.

La aplicación web para los clientes de INPRISE, está diseñada en herramientas de código

abierto o libre, manejando entornos dinámicos y amigables para los usuarios, en donde la

Page 54: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

41

manipulación de información no presenta grados de complejidad, al momento de

manipular las opciones para la emisión de comprobantes electrónicos.

3.4. Modelo de Cascada

Figura 5 Ciclo de Vida del Software - Modelo Cascada Elaborado por: EL autor

3.4.1. Análisis

3.4.1.1. Problemática Actual

Una vez recopilada la información se identificaron los siguientes problemas dentro de las empresas

clientes de INPRISE.

ANÁLISIS:

Análisis de la problemática, requisitos técnicos de funcionabilidad

de hardware y software

DISEÑO:

Diseño y especificación de módulos para la aplicación web.

IMPLEMENTACIÓN:

Desarrollo de la Aplicación Web a implementar.

PRUEBAS:

Realización de evaluaciones de los módulos implementados

mediante la manipulación de información.

MANTENIMIENTO:

Corrección de errores, respaldos de información y sugerencias

Page 55: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

42

Los clientes de la empresa INPRISE no cuentan en sus aplicaciones con un módulo

de emisión de comprobantes electrónicos hacia sus clientes.

Las empresas tienen dificultades con sus clientes al momento de entregar los

comprobantes electrónicos ocasionando pérdidas económicas, de tiempo y

recursos.

Se tiene la dificultad de integrar en una sola aplicación los procesos de las

empresas y sus negocios, lo que implicaría inversión alta en nuevos sistemas y

aplicaciones para sus dueños.

Las empresas se ven en la obligación de cumplir los requerimientos por parte de la

Administración Tributaria del Ecuador, en los plazos establecidos sobre la emisión

de comprobantes electrónicos a sus clientes.

3.4.1.2. Descripción de los cambios deseados

Con la ejecución de ésta aplicación web, se podrá mejorar los siguientes procesos.

Las necesidades a solucionar son los siguientes:

Manejo rápido y ágil de la información referente a los comprobantes electrónicos

tales como: factura, comprobantes de retención, notas de crédito, notas de débito y

guías de remisión.

Visualizar en tiempo real los comprobantes electrónicos, tanto en la aplicación

como en el correo electrónico de cada usuario de la empresa.

Acceder a los reportes de los comprobantes electrónicos ya sea al RIDE o XML

de cada usuario de la empresa.

Utilizar de una mejor manera los recursos materiales, reduciendo el uso del papel y

contribuyendo al medio ambiente.

Facilitar la organización y disponibilidad de la emisión de los comprobantes

electrónicos.

La aplicación ofrece un módulo de facturación si la empresa no cuenta, para poder

emitir los comprobantes electrónicos.

Page 56: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

43

Además la aplicación contará con la subida de archivos CSV si la empresa así lo

requiere.

Fácil uso de la aplicación mediante entornos amigables para el usuario.

3.4.1.3. Beneficiarios del proyecto

Esta aplicación web tiene como finalidad mejorar los procesos en la emisión de los

comprobantes electrónicos de las empresas clientes de INPRISE, además se logrará

cumplir con los requisitos reglamentarios y legales emitidos por la Administración

Tributaria.

La combinación de varias herramientas tecnológicas tanto software como hardware,

garantizan la eficiencia y eficacia de esta aplicación web, ya que los beneficiarios

indirectos tienen como único limitante la falta de una cuenta de correo electrónico.

A continuación se enuncia a los beneficiarios directos e indirectos en la implementación de

la aplicación web:

“APLICACIÓN WEB PARA LA EMISIÓN DE COMPROBANTES ELECTRÓNICOS

DE LOS CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA”

DEPENDENCIA REPRESENTANTES ASPECTOS

PRINCIPALES

Empresa INPRISE Luis Antonio Burbano -

Gerente

Disponibilidad de las

necesidades que tienen los

clientes.

Empresas clientes de

INPRISE

Gerentes de la Empresas Disponibilidad de la

información que realiza la

empresa, en cuanto al

proceso de facturación.

BENEFICIARIOS DIRECTOS

Page 57: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

44

Aquí se consideran a todos los usuarios de las empresas. Servicio eficiente y

oportuno en la emisión de

los comprobantes

electrónicos

Tabla 3 Beneficiarios de la aplicación web

Elaborado por: El autor

3.4.1.4. Requisitos de hardware

Los requisitos que se debe tomar en cuenta para el desarrollo de la aplicación web en

hardware son los siguientes:

EQUIPO DE DESARROLLO

Detalle Descripción Costos

Procesador Intel Core I7 400

Disco Duro 500GB 80

Memoria 4GB 70

Total: 550

Tabla 4 Características y costos de hardware utilizado Elaborado por: El autor

Nota: Para el desarrollo de éste proyecto cabe recalcar que todo lo referente a hardware cada una

de las empresas clientes de INPRISE disponen con los requerimientos antes mencionados, por lo

tanto no se realizará ningún tipo de adquisición en lo que se refiere a hardware.

3.4.1.5. Requisitos de Software

Para el desarrollo de la aplicación web se utilizará varias herramientas informáticas actuales, a

continuación se detallan dichas herramientas:

BENEFICIARIOS INDIRECTOS

Page 58: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

45

PROGRAMA DETALLE COSTOS

Linux Sistema Operativo Gratuito

Python Lenguaje de Programación Gratuito

PostgreSQL Base de Datos Gratuito

Django Entorno de Desarrollo

(Framework)

Gratuito

Firefox, Chrome Navegadores Web Gratuito

Netbeans Entorno de Desarrollo

(Lenguaje de Programación

Java)

Gratuito

Tabla 5 Características sobre el Software a utilizar.

Elaborado por: El autor

3.4.1.6. Requerimientos por parte de la Administración Tributaria

La aplicación web se desarrolló de acuerdo a la ficha técnica y sus resoluciones emitidas

por el SRI, mediante estos requerimientos se logró emitir los comprobantes electrónicos a

cada uno de los usuarios de las empresas.

En las principales exigencias que se encuentran en la ficha técnica son:

Proceso de solicitud de certificación de emisión de documentos electrónicos.

Proceso de firma electrónica y lineamientos de parametrización en los aplicativos.

Servicios expuestos en el internet para la autorización en línea de comprobantes

electrónicos.

Formatos para la emisión de comprobantes electrónicos. (SRI, 2015)

Page 59: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

46

3.4.2. Diseño

3.4.2.1. Arquitectura de la aplicación

Figura 6 Esquema de la aplicación web para INPRISE

Elaborado por: El autor

3.4.2.2. Diagrama de Contexto

Figura 7 Diagrama de contexto de la Aplicación Web

Elaborado por: El autor

Page 60: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

47

Cliente

Realiza

Compra

NIVEL 0

Cajero

Ingreso datos

cliente

Generación de

facturas, notas de

crédito, notas de

débito,

comprobantes de

retención

BDD

Cliente –

Empresas

BDD

Aplicación

Web -

INPRISE

Replicación Web

Service

SRI

XML

Firmado

XML

Autorizado o

Rechazado

Usuarios - Empresas

Recepción

comprobantes

electrónicos: RIDE y

XML

Empresa

Recepción de

comprobantes

electrónicos: RIDE y

XML

3.4

.2.3

. Dia

gram

a d

e N

ivel 0

Fig

ura 8

Diag

rama d

e niv

el 0 d

e la Ap

licación

Web

Elab

orad

o p

or: E

l auto

r

47

Page 61: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

48

Cajero -

Empresa

BDD -

Empresa

Tabla Cliente

Datos Cliente

Almacena,

registra, procesa

la información

del cliente

BDD

Aplicación

Web -

INPRISE

Reportes

Recupera Información –

Genera Reportes

Replica la información del

cliente

3.4

.2.4

. Dia

gram

a d

e N

ivel 1

– R

egistr

o d

e C

liente

Fig

ura 9

Diag

rama d

e niv

el 1 d

e la Ap

licación

web

– R

egistro

de C

lientes

Elab

orad

o p

or: E

l auto

r

48

Page 62: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

49

Cajero -

Empresa

BDD -

Empresa

Tabla

Productos

Datos

Productos

Almacena,

registra, procesa

la información de

los productos

BDD

Aplicación

Web -

INPRISE

Reportes

Recupera Información –

Genera Reportes

Replica la información del

producto

3.4

.2.5

. Registr

o d

e P

rod

ucto

s

Fig

ura 1

0 D

iagram

a Niv

el 1 d

e la Ap

licación

web

- Reg

istro d

e Pro

du

ctos

Elab

orad

o p

or: E

l auto

r

49

Page 63: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

50

Cajero -

Empresa

BDD - Empresa

Tabla Factura,

Factura Detalle,

Factura_detalle_impuesto

Datos Factura

BDD

Aplicación

Web -

INPRISE

Reportes

Recupera Información –

Genera Reportes

Replica la información de la

factura

Almacena,

registra, procesa

la información de

la factura

Empresa

RIDE - XML

Cliente

RIDE - XML

3.4

.2.6

. Registr

o d

e F

actu

ra

Fig

ura 1

1 D

iagram

a Niv

el 1 d

e la Ap

licación

Web

- Reg

istro d

e Factu

ras

Elab

orad

o p

or: E

l auto

r

50

Page 64: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

51

Administrador

BDD - INPRISE

Tabla Empresa

Datos

Empresa

BDD

Aplicación

Web -

INPRISE

Reportes

Recupera Información –

Genera Reportes

Almacena, registra, procesa la

información de la empresa

3.4

.2.7

. Crea u

na e

mp

resa

Fig

ura 1

2 D

iagram

a Niv

el 1 d

e la Ap

licación

Web

- Creació

n d

e un

a emp

resa

Elab

orad

o p

or: E

l auto

r

51

Page 65: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

52

Administrador

BDD

Aplicación Web -

INPRISE

DatosXML

WEB

SERVICE

SRI

Reportes

Envió de archivo firmado

Almacena, registra,

procesa la

información del

XML

Empresa

RIDE - XML

Cliente

RIDE - XML

XML Autorizado o Rechazado

3.4

.2.8

. En

vió

de X

ML

al W

eb

Service

SR

I

Fig

ura 1

3 D

iagram

a Niv

el 1 d

e la Ap

licación

Web

- En

vió

de X

ML

al Web

Serv

ice SR

I

Elab

orad

o p

or: E

l auto

r

52

Page 66: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

53

3.4

.2.9

. Dise

ño d

e la

base

de d

ato

s.

Fig

ura 1

4 D

iseño

de la b

ase de d

atos

Elab

orad

o p

or: E

l auto

r

53

Page 67: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

54

3.4

.2.1

0. D

iag

ram

a co

ncep

tua

l de la

ba

se de d

ato

s

Fig

ura 1

5 B

ase de d

atos co

ncep

tual d

e la Ap

licación

Web

E

labo

rado

po

r: El au

tor

54

Page 68: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

55

3.4

.2.1

1. D

iagram

a ló

gic

o d

e la

base

de d

ato

s.

Fig

ura 1

6 D

iagram

a lóg

ico d

e la base d

e dato

s de la A

plicació

n W

eb

Elab

orad

o p

or: E

l auto

r

55

Page 69: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

56

3.4.2.12. Funcionabilidad de las tablas

TABLA DETALLE

Cliente Datos personales del Cliente

Producto En esta tabla se registran los productos que ofrece la empresa

Factura Se registran las facturas emitidas por la empresa

Empresa En esta tabla se registran los datos sobre la empresa

Tipo_Emisión Se identifica si es de emisión normal o por indisponibilidad del

sistema

Tipo_Ambiente Para identificar si es en ambiente producción o pruebas

Tipo_Impuesto Se identifica que impuesto se realizó en la factura

Tipo_Identificación Para identificar qué tipo de documento tiene el cliente

Auther_User Datos del Usuario

Tabla 6 Función de la Tablas de la Base de Datos

Elaborado por: El autor

Page 70: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

57

3.4.2.13. Diseño de la Pantalla Principal

Para poder adherirse a la aplicación web, el cliente deberá ingresar en la barra de

direcciones la siguiente dirección http://facturas.integral.ec, luego ingresará el usuario y

contraseña para que pueda visualizar la información.

Figura 17 Pantalla Principal de la Aplicación Web Elaborado por: El autor

Mapa de Sitio

Figura 18 Mapa de Sitio Elaborado por: El autor

Administración Inicio de

Sesión

Productos

Clientes

Categorías

Nueva Factura

Comprobantes

Emitidos

Subir CSV

Administración

Seleccionar

Empresa

Crear

Empresa

Reportes

Empresa

Page 71: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

58

3.4.2.14. Diseño de Entradas y Salidas

Entradas:

Son aquellos formularios en los que se ingresan o registran información, para realizar

diferentes procesos.

Figura 19 Pantalla Principal del Administrador

Elaborado por: El autor

Page 72: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

59

Figura 20 Formularios para registrar y poder realizar una factura nueva, agregar un producto, agregar un cliente e agregar

una categoría.

Elaborado por: El autor

Page 73: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

60

Figura 21 Formulario para crear una nueva empresa.

Elaborado por: El autor

Figura 22 Formulario para ingresar un archivo CSV de la empresa.

Elaborado por: El autor

Page 74: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

61

Figura 23 Formulario para realizar una factura

Elaborado por: El autor

Salidas:

Son opciones que se encuentran dentro de los formularios y permiten visualizar y obtener

información que ha sido procesada mediante un reporte físico o digital.

Figura 24 Formulario en el que se visualiza los comprobantes electrónicos emitidos

Elaborado por: El autor

Page 75: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

62

Figura 25 Envió del correo electrónico al cliente de la empresa Elaborado por: El autor

Figura 26 Visualización del documento RIDE emitido

Elaborado por: El autor

Page 76: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

63

Figura 27 Visualización del documento XML emitido

Elaborado por: El autor

Figura 28 Visualización de reportes en Excel y CSV

Elaborado por: El autor

Page 77: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

64

3.4.3. Codificación

3.4.3.1. Formato XML emitido por la administración tributaria (SRI)

<?xml version="1.0" encoding="UTF-8"?>

<!--Sample XML file generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->

<factura xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Documents and Settings\mfsalazar\Escritorio\facturación electronica\formato xsd

xml 07-03\factura1.xsd" id="comprobante" version="Text">

<infoTributaria>

<ambiente>1</ambiente> <tipoEmision>1</tipoEmision>

<razonSocial>Ax</razonSocial>

<nombreComercial>Ax</nombreComercial>

<ruc>0000000000001</ruc> <claveAcceso>0000000000000000000000000000000000000000000000000</claveAcceso>

<codDoc>00</codDoc>

<estab>000</estab>

<ptoEmi>000</ptoEmi> <secuencial>000000000</secuencial>

<dirMatriz>Ax</dirMatriz>

</infoTributaria>

<infoFactura> <fechaEmision>01/01/1000</fechaEmision>

<dirEstablecimiento>Ax</dirEstablecimiento>

<contribuyenteEspecial>123</contribuyenteEspecial>

<obligadoContabilidad>SI</obligadoContabilidad>

<tipoIdentificacionComprador>04</tipoIdentificacionComprador>

<guiaRemision>000-000-000000000</guiaRemision>

<razonSocialComprador>Ax</razonSocialComprador>

<identificacionComprador>Ax</identificacionComprador> <totalSinImpuestos>0</totalSinImpuestos>

<totalDescuento>3.14</totalDescuento>

<totalConImpuestos>

<totalImpuesto> <codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<descuentoAdicional>0</descuentoAdicional>

<baseImponible>0</baseImponible> <tarifa>0</tarifa>

<valor>0</valor>

</totalImpuesto>

<totalImpuesto> <codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<baseImponible>0</baseImponible>

<tarifa>0</tarifa> <valor>0</valor>

</totalImpuesto>

<totalImpuesto>

<codigo>0</codigo> <codigoPorcentaje>0</codigoPorcentaje>

<baseImponible>0</baseImponible>

<tarifa>0</tarifa>

<valor>0</valor> </totalImpuesto>

</totalConImpuestos>

<propina>0</propina> <importeTotal>0</importeTotal>

<moneda>Ax</moneda>

</infoFactura>

<detalles> <detalle>

Page 78: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

65

<codigoPrincipal>Ax</codigoPrincipal>

<codigoAuxiliar>Ax</codigoAuxiliar>

<descripcion>Ax</descripcion> <cantidad>0</cantidad>

<precioUnitario>0</precioUnitario>

<descuento>0</descuento>

<precioTotalSinImpuesto>0</precioTotalSinImpuesto> <detallesAdicionales>

<detAdicional nombre="Ax" valor="Ax"/>

<detAdicional nombre="Ax" valor="Ax"/>

<detAdicional nombre="Ax" valor="Ax"/> </detallesAdicionales>

<impuestos>

<impuesto>

<codigo>0</codigo> <codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa>

<baseImponible>0</baseImponible>

<valor>0</valor> </impuesto>

<impuesto>

<codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje> <tarifa>0</tarifa>

<baseImponible>0</baseImponible>

<valor>0</valor>

</impuesto> <impuesto>

<codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa> <baseImponible>0</baseImponible>

<valor>0</valor>

</impuesto>

</impuestos> </detalle>

<detalle>

<codigoPrincipal>Ax</codigoPrincipal>

<codigoAuxiliar>Ax</codigoAuxiliar> <descripcion>Ax</descripcion>

<cantidad>0</cantidad>

<precioUnitario>0</precioUnitario>

<descuento>0</descuento> <precioTotalSinImpuesto>0</precioTotalSinImpuesto>

<detallesAdicionales>

<detAdicional nombre="Ax" valor="Ax"/>

<detAdicional nombre="Ax" valor="Ax"/> <detAdicional nombre="Ax" valor="Ax"/>

</detallesAdicionales>

<impuestos>

<impuesto>

<codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa>

<baseImponible>0</baseImponible> <valor>0</valor>

</impuesto>

<impuesto> <codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa>

<baseImponible>0</baseImponible>

<valor>0</valor>

</impuesto>

<impuesto>

<codigo>0</codigo>

Page 79: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

66

<codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa>

<baseImponible>0</baseImponible> <valor>0</valor>

</impuesto>

</impuestos>

</detalle> <detalle>

<codigoPrincipal>Ax</codigoPrincipal>

<codigoAuxiliar>Ax</codigoAuxiliar>

<descripcion>Ax</descripcion> <cantidad>0</cantidad>

<precioUnitario>0</precioUnitario>

<descuento>0</descuento>

<precioTotalSinImpuesto>0</precioTotalSinImpuesto> <detallesAdicionales>

<detAdicional nombre="Ax" valor="Ax"/>

<detAdicional nombre="Ax" valor="Ax"/>

<detAdicional nombre="Ax" valor="Ax"/> </detallesAdicionales>

<impuestos>

<impuesto>

<codigo>0</codigo> <codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa>

<baseImponible>0</baseImponible>

<valor>0</valor> </impuesto>

<impuesto>

<codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje> <tarifa>0</tarifa>

<baseImponible>0</baseImponible>

<valor>0</valor>

</impuesto> <impuesto>

<codigo>0</codigo>

<codigoPorcentaje>0</codigoPorcentaje>

<tarifa>0</tarifa> <baseImponible>0</baseImponible>

<valor>0</valor>

</impuesto>

</impuestos> </detalle>

</detalles>

<infoAdicional>

<campoAdicional nombre="Ax">Ax</campoAdicional> <campoAdicional nombre="Ax">Ax</campoAdicional>

<campoAdicional nombre="Ax">Ax</campoAdicional>

</infoAdicional>

</factura>

3.4.3.2. Función que me permite firmar un documento electrónico

package ec.inprise.xades_firma; import ec.inprise.keystore.PassStoreKS;

import es.mityc.firmaJava.libreria.utilidades.UtilidadTratarNodo;

import es.mityc.firmaJava.libreria.xades.DataToSign; import es.mityc.firmaJava.libreria.xades.FirmaXML;

import es.mityc.javasign.pkstore.CertStoreException;

import es.mityc.javasign.pkstore.IPKStoreManager;

import es.mityc.javasign.pkstore.keystore.KSStore; import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

Page 80: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

67

import java.io.IOException;

import java.io.StringWriter;

import java.security.KeyStore; import java.security.KeyStoreException;

import java.security.NoSuchAlgorithmException;

import java.security.PrivateKey;

import java.security.Provider; import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import java.util.List;

import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerException;

import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

import org.xml.sax.SAXException; import java.io.File;

import org.apache.commons.codec.binary.Base64;

import java.io.*;

import java.util.logging.Level; import java.util.logging.Logger;

public abstract class GenericXMLSignature {

//Almacén PKCS12 con el que se desea realizar la firma //public final static String PKCS12_RESOURCE = "usr0061.p12";

public static InputStream PKCS12_RESOURCE;

//Constraseña de acceso a la clave privada del usuario //public final static String PKCS12_PASSWORD = "usr0061";

public static String PKCS12_PASSWORD;

public GenericXMLSignature(String pkcs12, String pkcs12_password) {

byte[] decoded_firma = Base64.decodeBase64(pkcs12.getBytes());

String decodedString_firma = new String(decoded_firma);

InputStream arch = null;

try {

arch = new FileInputStream(decodedString_firma);

} catch (FileNotFoundException ex) { Logger.getLogger(GenericXMLSignature.class.getName()).log(Level.SEVERE, null, ex);

}

byte[] decoded = Base64.decodeBase64(pkcs12_password.getBytes());

String decodedString = new String(decoded); GenericXMLSignature.PKCS12_RESOURCE = arch;

//GenericXMLSignature.PKCS12_RESOURCE = pkcs12;

GenericXMLSignature.PKCS12_PASSWORD = decodedString;

}

public GenericXMLSignature() {

}

/**

* <p> * Directorio donde se almacenará el resultado de la firma

* </p> 79

*/ public final static String OUTPUT_DIRECTORY = ".";

//public final static String OUTPUT_DIRECTORY = System.getProperty("user.dir");

/**

* <p>

* Ejecución del ejemplo. La ejecución consistirá en la firma de los datos

* creados por el método abstracto <code>createDataToSign</code> mediante el

* certificado declarado en la constante <code>PKCS12_FILE</code>. El

* resultado del proceso de firma será almacenado en un fichero XML en el

Page 81: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

68

* directorio correspondiente a la constante <code>OUTPUT_DIRECTORY</code>

* del usuario bajo el nombre devuelto por el método abstracto

* <code>getSignFileName</code> * </p>

*/

protected void execute() {

// Obtencion del gestor de claves IPKStoreManager storeManager = getPKStoreManager();

if (storeManager == null) {

System.err.println("El gestor de claves no se ha obtenido correctamente.");

return; }

// Obtencion del certificado para firmar. Utilizaremos el primer

// certificado del almacen.

X509Certificate certificate = getFirstCertificate(storeManager); if (certificate == null) {

System.err.println("No existe ningún certificado para firmar.");

return;

} // Obtención de la clave privada asociada al certificado

PrivateKey privateKey;

try {

privateKey = storeManager.getPrivateKey(certificate); } catch (CertStoreException e) {

System.err.println("Error al acceder al almacén.");

return;

} // Obtención del provider encargado de las labores criptográficas

Provider provider = storeManager.getProvider(certificate);

/*

* Creación del objeto que contiene tanto los datos a firmar como la * configuración del tipo de firma

*/

DataToSign dataToSign = createDataToSign();

/* * Creación del objeto encargado de realizar la firma

*/

FirmaXML firma = new FirmaXML();

// Firmamos el documento Document docSigned = null;

try {

Object[] res = firma.signFile(certificate, dataToSign, privateKey, provider);

docSigned = (Document) res[0]; } catch (Exception ex) {

System.err.println("Error realizando la firma");

ex.printStackTrace();

return; }

// Guardamos la firma a un fichero en el home del usuario

String workingDir = System.getProperty("user.dir");

//System.out.println(workingDir);

String filePath = workingDir + File.separatorChar + getSignatureFileName();

System.out.println("Firma salvada en: " + filePath);

saveDocumentToFile(docSigned, getSignatureFileName());

} /**

* <p>

* Crea el objeto DataToSign que contiene toda la información de la firma * que se desea realizar. Todas las implementaciones deberán proporcionar

* una implementación de este método

* </p>

*

* @return El objeto DataToSign que contiene toda la información de la firma

* a realizar

*/

protected abstract DataToSign createDataToSign();

Page 82: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

69

/**

* <p>

* Nombre del fichero donde se desea guardar la firma generada. Todas las * implementaciones deberán proporcionar este nombre.

* </p>

*

* @return El nombre donde se desea guardar la firma generada */

protected abstract String getSignatureFileName();

/**

* <p> * Escribe el documento a un fichero.

* </p>

*

* @param document El documento a imprmir * @param pathfile El path del fichero donde se quiere escribir.

*/

private void saveDocumentToFile(Document document, String pathfile) {

try { FileOutputStream fos = new FileOutputStream(pathfile);

UtilidadTratarNodo.saveDocumentToOutputStream(document, fos, true);

} catch (FileNotFoundException e) {

System.err.println("Error al salvar el documento"); e.printStackTrace();

System.exit(-1);

}

} /**

* <p>

* Escribe el documento a un fichero. Esta implementacion es insegura ya que

* dependiendo del gestor de transformadas el contenido podría ser alterado, * con lo que el XML escrito no sería correcto desde el punto de vista de

* validez de la firma.

* </p>

* * @param document El documento a imprmir

* @param pathfile El path del fichero donde se quiere escribir.

*/

@SuppressWarnings("unused") private void saveDocumentToFileUnsafeMode(Document document, String pathfile) {

TransformerFactory tfactory = TransformerFactory.newInstance();

Transformer serializer;

try { serializer = tfactory.newTransformer();

serializer.transform(new DOMSource(document), new StreamResult(new File(pathfile)));

} catch (TransformerException e) { System.err.println("Error al salvar el documento");

e.printStackTrace();

System.exit(-1);

}

}

/**

* <p> * Devuelve el <code>Document</code> correspondiente al

* <code>resource</code> pasado como parámetro

* </p> *

* @param resource El recurso que se desea obtener

* @return El <code>Document</code> asociado al <code>resource</code>

*/

protected Document getDocument(String resource) {

Document doc = null;

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setNamespaceAware(true);

Page 83: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

70

File file = new File(resource);

try {

//doc = dbf.newDocumentBuilder().parse(this.getClass().getResourceAsStream(resource)); doc = dbf.newDocumentBuilder().parse(file);

} catch (ParserConfigurationException ex) {

System.err.println("Error al parsear el documento");

ex.printStackTrace(); System.exit(-1);

} catch (SAXException ex) {

System.err.println("Error al parsear el documento");

ex.printStackTrace(); System.exit(-1);

} catch (IOException ex) {

System.err.println("Error al parsear el documento");

ex.printStackTrace(); System.exit(-1);

} catch (IllegalArgumentException ex) {

System.err.println("Error al parsear el documento");

ex.printStackTrace(); System.exit(-1);

}

return doc;

} /**

* <p>

* Devuelve el contenido del documento XML correspondiente al

* <code>resource</code> pasado como parámetro * </p> como un <code>String</code>

*

* @param resource El recurso que se desea obtener

* @return El contenido del documento XML como un <code>String</code> */

protected String getDocumentAsString(String resource) {

Document doc = getDocument(resource);

TransformerFactory tfactory = TransformerFactory.newInstance(); Transformer serializer;

StringWriter stringWriter = new StringWriter();

try {

serializer = tfactory.newTransformer(); serializer.transform(new DOMSource(doc), new StreamResult(stringWriter));

} catch (TransformerException e) {

System.err.println("Error al imprimir el documento");

e.printStackTrace(); System.exit(-1);

}

return stringWriter.toString();

} /**

* <p>

* Devuelve el gestor de claves que se va a utilizar

* </p>

*

* @return El gestor de claves que se va a utilizar</p>

*/

private IPKStoreManager getPKStoreManager() { IPKStoreManager storeManager = null;

try {

KeyStore ks = KeyStore.getInstance("PKCS12"); //ks.load(this.getClass().getResourceAsStream(PKCS12_RESOURCE), PKCS12_PASSWORD.toCharArray());

ks.load(PKCS12_RESOURCE, PKCS12_PASSWORD.toCharArray());

storeManager = new KSStore(ks, new PassStoreKS(PKCS12_PASSWORD));

} catch (KeyStoreException ex) {

System.err.println("No se puede generar KeyStore PKCS12");

ex.printStackTrace();

System.exit(-1);

} catch (NoSuchAlgorithmException ex) {

Page 84: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

71

System.err.println("No se puede generar KeyStore PKCS12");

ex.printStackTrace();

System.exit(-1); } catch (CertificateException ex) {

System.err.println("No se puede generar KeyStore PKCS12");

ex.printStackTrace();

System.exit(-1); } catch (IOException ex) {

System.err.println("No se puede generar KeyStore PKCS12");

ex.printStackTrace();

System.exit(-1); }

return storeManager;

}

/** * <p>

* Recupera el primero de los certificados del almacén.

* </p>

* * @param storeManager Interfaz de acceso al almacén

* @return Primer certificado disponible en el almacén

*/

private X509Certificate getFirstCertificate( final IPKStoreManager storeManager) {

List<X509Certificate> certs = null;

try {

certs = storeManager.getSignCertificates(); } catch (CertStoreException ex) {

System.err.println("Fallo obteniendo listado de certificados");

System.exit(-1);

} if ((certs == null) || (certs.size() == 0)) {

System.err.println("Lista de certificados vacía");

System.exit(-1);

} X509Certificate certificate = certs.get(0);

return certificate;

}

}

3.4.3.3. Función que me permite enviar documentos electrónicos al Web Service SRI

para su validación y envió de e-mail a los clientes de las empresas

def web_services_sri(xml, clave_acceso, id_documento, id_tipo_ambiente, token, password, logo, key, tipo_doc, codigo_numerico, comprobante, nombre_comercial, datos_empresa):

"""

Ejecuta el proceso de envío, validación y autorización de comprobantes tributarios

parm: xml, clave_acceso, id_documento, id_tipo_ambiente, token, password, logo, key, tipo_doc, codigo_numerico,

:param comprobante

:param nombre_comercial Se usa para el email

""" if tipo_doc == 1:

tabla_comprobante = 'factura'

elif tipo_doc == 7:

tabla_comprobante = 'retencion' elif tipo_doc == 4:

tabla_comprobante = 'nota_credito'

in_xml = 'xml/' + xml

u.firmar_xml(in_xml, xml, token, password) if not os.path.isfile('xml_signed/' + xml):

print 'No se encuentra el xml firmado!'

return 1

Page 85: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

72

factura_file = open('xml_signed/' + xml, "r")

factura_xml = factura_file.read()

factura_file.close() factura_firmada_xml = libxml2.parseDoc(factura_xml)

archivo_xml = base64.encodestring(factura_firmada_xml.serialize())

if id_tipo_ambiente == 1:

print 'Ambiente de PRUEBAS' url = ("https://celcer.sri.gob.ec/comprobantes-electronicos-ws/"

"RecepcionComprobantes?wsdl")

url2 = ("https://celcer.sri.gob.ec/comprobantes-"

"electronicos-ws/AutorizacionComprobantes?wsdl") elif id_tipo_ambiente == 2:

print 'Ambiente de PRODUCCION'

url = ("https://cel.sri.gob.ec/comprobantes-electronicos-ws/"

"RecepcionComprobantes?wsdl") url2 = ("https://cel.sri.gob.ec/comprobantes-"

"electronicos-ws/AutorizacionComprobantes?wsdl")

enviar_nuevamente = False

ciclo_clave_registrada = False while True: # Ciclo general

while True: # Ciclo de envio de comprobante

try:

print 'Enviando comprobante...' client = suds.client.Client(url)

respuesta_envio_comprobante = client.service.validarComprobante(archivo_xml)

break

except Exception, e: print e

print 'WebService Recepcion Comprobante NO disponible!!!'

if respuesta_envio_comprobante:

estado_comprobante = respuesta_envio_comprobante[0] enviar_nuevamente = False

while True: # ciclo de CLAVE ACCESO REGISTRADA

if estado_comprobante == 'RECIBIDA':

ciclo_clave_registrada = True print 'Se ha recibido el comprobante!'

reintento_respuesta = 0

while True: # Ciclo de respuesta

while True: # Ciclo de autorizacion de comprobante try:

client = suds.client.Client(url2)

respuesta_autorizacion = client.service.autorizacionComprobante(clave_acceso)

break except Exception, e:

print e

print 'WebService de Consulta Autorizacion NO disponible'

print 'Reintentando...' if respuesta_autorizacion:

print 'Numero de envios al SRI: %d' % (int(respuesta_autorizacion[1]),)

numero_intentos_autorizacion = int(respuesta_autorizacion[1])

print 'Clave: ', respuesta_autorizacion[0]

i = 0

if respuesta_autorizacion[1] == 0:

print 'Esperando Respuesta....'

time.sleep(3) continue

try:

j = respuesta_autorizacion.autorizaciones[0] except Exception, e:

reintento_respuesta += 1

print 'Respuesta vacia Reintento %s...' % (reintento_respuesta,)

time.sleep(3)

if reintento_respuesta == 6:

enviar_nuevamente = True

break # Rompe el ciclo de respuesta

continue # Vuelve ciclo de respuesta

Page 86: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

73

for autorizacion in respuesta_autorizacion.autorizaciones[0]:

i += 1

if autorizacion.estado == 'NO AUTORIZADO': u.create_dir('no_aut')

archivos = open('no_aut/' + xml, 'a')

archivos.write(str(respuesta_autorizacion))

archivos.close() print '\nIntento:', i

print 'ERROR AL AUTORIZAR COMPROBANTE!!!'

print '\nEstado: ', autorizacion.estado

estado = autorizacion.estado print 'Fecha de autorizacion: ', autorizacion.fechaAutorizacion

fecha_autorizacion = autorizacion.fechaAutorizacion

#print 'Tipo ambiente: ', autorizacion.ambiente

desc_error = [] codigo_error = []

info_adicional = []

ind = 0

try: for mensaje in autorizacion.mensajes[0]:

print 'Nro Identificador:', mensaje.identificador

print 'Mensaje: ', mensaje.mensaje

print 'Tipo de mensaje: ', mensaje.tipo if mensaje.tipo == 'ERROR':

codigo_error.append(mensaje.identificador)

desc_error.append(mensaje.mensaje)

try: print 'Información adicional: ', mensaje.informacionAdicional

info_adicional.append(mensaje.informacionAdicional)

except Exception, e:

info_adicional.append('') ind += 1

except Exception:

pass

# CLAVE ACCESO REGISTRADA if int(codigo_error[0]) == 43:

sql = '''SELECT count(*)

FROM %s

WHERE clave_acceso = '%s' AND NOT dado_baja ''' % (tabla_comprobante, clave_acceso)

resp = u.data_read(sql)

numero_comprobante = resp[0]

n_comprobantes = int(numero_comprobante['count']) if n_comprobantes <= 1:

for aut in respuesta_autorizacion.autorizaciones[0]:

if aut.estado == 'AUTORIZADO':

fecha_autorizacion = aut.fechaAutorizacion num_autorizacion = aut.numeroAutorizacion

u.create_dir('aut')

archivos = codecs.open('aut/' + clave_acceso + 'sri.xml', 'w',

encoding='utf-8')

archivos.write(aut.comprobante)

archivos.close()

u.create_dir('ride')

if tipo_doc == FACTURA or tipo_doc == NOTA_CREDITO: pdf_generator.generarPdf('aut/' + clave_acceso + 'sri.xml',

'ride/' + clave_acceso + '.pdf',

num_autorizacion, fecha_autorizacion, key, logo, key, datos_empresa, comprobante)

elif tipo_doc == RETENCION:

pdf_generator_retencion.generar_pdf('aut/' +

clave_acceso +

'sri.xml', 'ride/' +

clave_acceso + '.pdf',

num_autorizacion,

fecha_autorizacion,

Page 87: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

74

key, logo, key)

ruta_ride = os.getcwd() + '/ride/' + clave_acceso + '.pdf'

sql = ''' UPDATE %s

SET

clave_acceso = '%s',

estado_autorizacion = '%s', fecha_hora_autorizacion ='%s',

numero_autorizacion='%s',

numero_intentos_autorizacion='%s',

ruta_ride='%s' WHERE id = %s;

''' % (tabla_comprobante, clave_acceso, aut.estado,

fecha_autorizacion.strftime('%Y-%m-%d %H:%M:%S'),

num_autorizacion, numero_intentos_autorizacion,

ruta_ride, id_documento)

u.updateSql(sql)

print 'DOCUMENTO AUTORIZADO ANTERIORMENTE OK...' print 'ID: ', id_documento, ' actualizado.\n'

print 'KEY FIREBIRD: ', key, '\n\n'

elif n_comprobantes > 1:

print 'Documento DUPLICADO %s veces ' % (n_comprobantes,) sql = '''

UPDATE %s

SET clave_acceso='%s',

estado_autorizacion='%s', codigo_error=%d,

nombre_error='%s',

fecha_hora_autorizacion='%s',

descripcion_error='%s', numero_intentos_autorizacion= %s

WHERE id = %s;

''' % (tabla_comprobante, clave_acceso, estado,

int(codigo_error[0]), desc_error[0],

fecha_autorizacion.strftime('%Y-%m-%d %H:%M:%S'),

'DUPLICADO',

numero_intentos_autorizacion, id_documento)

u.updateSql(sql)

print 'ID: ', id_documento, ' actualizada.\n'

print 'KEY FIREBIRD: ', key, '\n\n' else:

sql = '''

UPDATE %s

SET clave_acceso='%s', estado_autorizacion='%s',

codigo_error=%d,

nombre_error='%s',

fecha_hora_autorizacion='%s',

descripcion_error='%s',

numero_intentos_autorizacion= %s

WHERE id = %s;

''' % (tabla_comprobante, clave_acceso, estado, int(codigo_error[ind-1]),

desc_error[ind-1],

fecha_autorizacion.strftime('%Y-%m-%d %H:%M:%S'), info_adicional[ind-1],

numero_intentos_autorizacion,

id_documento)

u.updateSql(sql)

print 'ID: ', id_documento, ' actualizado.\n'

print 'KEY FIREBIRD: ', key, '\n\n'

if autorizacion.estado == 'AUTORIZADO':

print 'ÉXITO!!!'

Page 88: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

75

print ('El SRI retorno una AUTORIZACION válida para el comprobante:'), clave_acceso

print '\nEstado: ', autorizacion.estado

estado = autorizacion.estado print 'Fecha de autorizacion: ', autorizacion.fechaAutorizacion

fecha_autorizacion = autorizacion.fechaAutorizacion

print 'Numero de Autorizacion: ', autorizacion.numeroAutorizacion

num_autorizacion = autorizacion.numeroAutorizacion #print 'Tipo ambiente: ', unicode(autorizacion.ambiente)

try:

for mensaje in autorizacion.mensajes[0]:

print 'Nro Identificador:', mensaje.identificador print 'Tipo de mensaje: ', mensaje.tipo

print 'Mensaje: ', mensaje.mensaje

try:

print 'Información adicional: ', mensaje.informacionAdicional except Exception:

pass

except Exception:

pass u.create_dir('aut')

archivos = codecs.open('aut/' + clave_acceso + 'sri.xml', 'w', encoding='utf-8')

archivos.write(autorizacion.comprobante)

archivos.close() u.create_dir('felect')

archivos = open('felect/' + clave_acceso + '.xml', 'w')

resp_xml = client.last_received().getChild("soap:Envelope").getChild(

"soap:Body").getChild("ns2:autorizacionComprobanteResponse").getChild( "RespuestaAutorizacionComprobante")

archivos.write(str(resp_xml))

archivos.close()

ruta = os.getcwd() rutaxml = ruta + '/felect/' + clave_acceso + '.xml'

u.create_dir('ride')

if tipo_doc == FACTURA or tipo_doc == NOTA_CREDITO:

pdf_generator.generarPdf('aut/' + clave_acceso + 'sri.xml', 'ride/' + clave_acceso + '.pdf',

num_autorizacion, fecha_autorizacion, key, logo, key,

datos_empresa, comprobante)

elif tipo_doc == RETENCION: pdf_generator_retencion.generar_pdf('aut/' + clave_acceso + 'sri.xml',

'ride/' + clave_acceso + '.pdf',

num_autorizacion, fecha_autorizacion, key,

logo, key) ruta_ride = os.getcwd() + '/ride/' + clave_acceso + '.pdf'

sql = '''

UPDATE %s

SET clave_acceso = '%s',

estado_autorizacion = '%s',

fecha_hora_autorizacion ='%s',

numero_autorizacion='%s',

numero_intentos_autorizacion='%s',

ruta_xml='%s',

ruta_ride='%s'

WHERE id = %s; ''' % (tabla_comprobante, clave_acceso, estado,

fecha_autorizacion.strftime('%Y-%m-%d %H:%M:%S'),

num_autorizacion, numero_intentos_autorizacion,

rutaxml, ruta_ride, id_documento)

u.updateSql(sql)

print '\nID DOCUMENTO ACTUALIZADO: %s' % (id_documento,)

print 'KEY FIREBIRD:', key

email = str(comprobante['email'])

# email = '[email protected]'

email_regex = re.compile(r"[^@]+@[^@]+\.[^@]+")

Page 89: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

76

if email_regex.match(email):

numero_doc = '%s %s %s' % (comprobante['establecimiento'],

comprobante['punto_venta'], comprobante['numero_documento'])

if tipo_doc == FACTURA:

tipo_documento = 'FACTURA'

cliente = comprobante['razonsocialcomprador'] elif tipo_doc == RETENCION:

tipo_documento = 'RETENCION'

cliente = comprobante['razonsocialsujetoretenido']

elif tipo_doc == NOTA_CREDITO: tipo_documento = 'NOTA CREDITO'

cliente = comprobante['razonsocialcomprador']

subproceso = Thread(target=u.enviar_correo,

args=(email, cliente, numero_doc, clave_acceso, num_autorizacion,

tipo_documento, nombre_comercial, [ruta_ride, rutaxml]))

subproceso.start()

else: print 'Correo %s inválido' % (email, )

if respuesta_autorizacion[1] > 1:

break

break # Rompe ciclo de respuesta if ciclo_clave_registrada:

break # Rompe ciclo de clave acceso registrada

else:

print 'El Documento NO FUE RECIBIDO...' estado = respuesta_envio_comprobante[0]

ciclo_clave_registrada = True

for res_comprobante in respuesta_envio_comprobante.comprobantes[0]:

print 'ERROR EN RECEPCIÓN DEL COMPROBANTE!!!!' print 'Comprobante: ', res_comprobante.claveAcceso

print '*** DETALLES DEL ERROR ***'

for mensajes in res_comprobante.mensajes:

for mensaje in mensajes[1]: print 'Mensaje: ', mensaje.mensaje

msj = mensaje.mensaje

codigo_error = int(mensaje.identificador)

print 'Identificador: ', mensaje.identificador print 'Tipo: ', mensaje.tipo

try:

print 'Información Adicional: ', mensaje.informacionAdicional

info_adicional = mensaje.informacionAdicional except Exception:

info_adicional = ""+"\n"

if codigo_error == 43:

ciclo_clave_registrada = True print '\n************************************'

print '* CLAVE ACCESO REGISTRADA *'

print '* Verificando en la base duplicado *'

print '************************************'

sql = '''SELECT count(*)

FROM %s

WHERE clave_acceso = '%s' AND NOT dado_baja

''' % (tabla_comprobante, clave_acceso) resp = u.data_read(sql)

numero_comprobante = resp[0]

n_comprobantes = int(numero_comprobante['count']) if n_comprobantes <= 1:

print '...No existe Duplicado'

estado_comprobante = 'RECIBIDA'

continue

print '...Documento Duplicado...'

# si el numero de autorizaciones mas 3 incremento el codigo numerico

if codigo_error == 70 and int(comprobante['numero_intentos_autorizacion']) > 2:

cod_numerico = int(codigo_numerico) + 1

Page 90: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

77

sql = '''

UPDATE %s

SET codigo_numerico = %d

WHERE

id = %s

''' % (tabla_comprobante, cod_numerico, id_documento) u.updateSql(sql)

sql = '''

UPDATE %s

SET clave_acceso = '%s',

estado_autorizacion = '%s',

nombre_error = '%s',

descripcion_error = '%s', codigo_error = %d

WHERE

id = %s

''' % (tabla_comprobante, res_comprobante.claveAcceso, estado, msj,

info_adicional.replace("'", ''),

codigo_error,

id_documento) u.updateSql(sql)

print 'ID DOCUMENTO ACTUALIZADO:', id_documento

print 'KEY FIREBIRD:', key

if ciclo_clave_registrada: break # termino ciclo de clave registrada

# fin ciclo clave acceso registrada

else:

print 'Error en la recepcion del documento' if not enviar_nuevamente:

break # Rompe el ciclo general

3.4.3.4. Función que me permite mostrar los comprobantes emitidos en la aplicación

web

def filtro_comprobantes(frm):

filtros_qs = []

fecha_desde = frm.cleaned_data.get('fecha_inicio')

fecha_hasta = frm.cleaned_data.get('fecha_fin')

tipo_comprobante = frm.cleaned_data.get('tipo') fuente = frm.cleaned_data.get('fuente')

estado_autorizacion = frm.cleaned_data.get('estado_autorizacion')

numero = frm.cleaned_data.get('numero')

cliente = frm.cleaned_data.get('cliente').strip() emisor = frm.cleaned_data.get('emisor').strip()

if fecha_desde is not None and fecha_hasta is not None:

if fecha_desde == fecha_hasta:

# agregar 23:59:59 a la fecha cuando son iguales fecha_hasta = datetime.datetime.combine(

fecha_hasta,

datetime.datetime.min.time()

) fecha_hasta = datetime.datetime.combine(

fecha_hasta,

datetime.datetime.max.time() )

filtros_qs.append(Q(fecha_hora__gte=fecha_desde,

fecha_hora__lte=fecha_hasta))

if tipo_comprobante != '': filtros_qs.append(Q(tipo_documento=tipo_comprobante))

if fuente != '' and fuente is not None:

Page 91: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

78

filtros_qs.append(Q(app_name=fuente))

if estado_autorizacion != '' and estado_autorizacion is not None \

and estado_autorizacion != 'SIN ENVIAR': filtros_qs.append(Q(estado_autorizacion=estado_autorizacion))

if estado_autorizacion.strip() == 'SIN ENVIAR':

filtros_qs.append(Q(estado_autorizacion__isnull=True))

if numero is not None and numero != '': filtros_qs.append(Q(numero=numero))

if cliente is not None and cliente != '':

filtros_qs.append(Q(cliente__nombre__contains=cliente.encode("utf-8"),))

if emisor is not None and emisor != '': filtros_qs.append(

Q(id_empresa__razon_social__contains=emisor.encode("utf-8"),)

)

return filtros_qs

3.4.3.5. Función que me permite exportar archivos en formato CSV

def export_comprobantes_csv(request): response = HttpResponse(content_type='text/csv')

response['Content-Disposition'] = \

'attachment; filename="Integral-comprobantes.csv"'

writer = csv.writer(response, delimiter=';') writer.writerow(['Fecha', 'Emisor', 'Cliente', 'Direccion', 'Numero',

'Nro. Autorizacion', 'Clave Acceso', 'Tipo Comprobante',

'Fuente', 'Estado', 'Importe'])

comprobante_qs = Comprobante.objects.none() comprobante_qs.query = pickle.loads(request.session['comprobante_qs'])

for item in comprobante_qs:

writer.writerow(

[ item.fecha_hora.strftime('%Y-%m-%d'),

item.razon_social_emisor.encode(

"utf-8") if item.razon_social_emisor is not None else '',

item.cliente.nombre.encode("utf-8"), item.cliente.direccion.encode(

"utf-8") if item.cliente.direccion is not None else '',

item.numero,

item.numero_autorizacion,

item.clave_acceso,

item.tipo_documento,

'BUZON' if item.app_name == 'BUZON' else 'PORTAL',

'SIN AUTORIZACION' if item.estado_autorizacion is None else item.estado_autorizacion,

item.valor_total

]

) return response

Page 92: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

79

3.4.4. Implementación (esquema de la Aplicación web)

Mediante el diseño de la aplicación web se podrá observar los servicios que brinda la

empresa INPRISE en la emisión de comprobantes electrónicos, en donde los usuarios

puedan visualizar los RIDES y XML en sus cuentas de correo electrónico y en la

aplicación.

Figura 29 Diseño entrada de la Aplicación Web

Elaborado por: El autor

3.4.4.1. Trabajando con la aplicación

En el navegador de la estación de trabajo deberá digitalizar http://facturas.integral.ec

A continuación indicamos como ingresar:

Figura 30 Ingreso de la dirección web para acceder a la aplicación

Elaborado por: El autor

Administración Inicio de

Sesión

Inicio

Usuarios

Ingresos

Procesos

Reportes

Administración

Administración

Cajero

Gerente Empresa

Gerente INPRISE

Ingreso de Clientes Ingreso de Productos

Ingreso de Categoría

Ingreso de Empresa

Ingreso

Consultas

Modificación

Factura Estructura del archivo

XML

Emisión de

Comprobantes (RIDE y

XML Documentos Excel

Documentos CSV

Usuario

Tipo Usuario

Page 93: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

80

Ingreso a la aplicación web la cual se encuentra distribuida de la siguiente manera

Figura 31 Ingreso a la pantalla donde deberá ingresar el usuario y contraseña Elaborado por: El autor

Usuario deberá ingresar el usuario emitido por la empresa INPRISE

Contraseña corresponde a la clave otorgada por la empresa INPRISE

La pantalla principal está conformada de la siguiente manera:

Figura 32 Ingreso a la pantalla principal cuando esta logueado Elaborado por: El autor

Page 94: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

81

Productos nos permite ingresar los nuevos productos que ofrece la empresa.

Clientes en este formulario se debe ingresar los datos generales de los clientes

nuevos.

Categorías si la empresa cree necesario crear una nueva categoría podrá ingresar la

información.

Nueva factura cuando la empresa no tiene un sistema contable INPRISE ofrece el

módulo de facturación básico.

Comprobantes electrónicos se visualizarán todos los documentos electrónicos que

fueron emitidos por las empresas a cada uno de sus usuarios.

Subir CSV las empresas que no tengan sistemas contables podrá ser una opción

subir sus CSV para emitir los comprobantes electrónicos a sus usuarios.

Administración permite crear una nueva empresa y seleccionar empresa para su

administración.

Para poder visualizar los RIDES y XML emitidos a los usuarios se debe dar click en

Comprobantes Emitidos, luego asignar un rango de fechas incio y fin, para oberservar se

dará click en la parte de documentos y se obtendrá el siguiente reporte.

Figura 33 Documentos emitidos por la Aplicación: RIDE y XML al usuario

Elaborado por: El autor

Page 95: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

82

Los documentos antes mencionados también se envía al correo electrónico de cada uno de

los usuarios de las empresas, a continuación se mostrará cómo llega el correo:

Figura 34 Correo emitido a los usuarios de las empresas con los documentos electrónicos

Elaborado por: El autor

Para descargar reportes como CSV o en formato EXCEL se debe dar clic en la opción o

botón CSV o EXCEL

Figura 35 Reportes en CSV ó EXCEL Elaborado por: El autor

Page 96: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

83

3.4.5. Pruebas de Funcionalidad

3.4.5.1. Pruebas con datos reales

La prueba con datos reales sirven para observar casos que se presentan, combinaciones y

aspectos que son visibles para el usuario del sistema o que surgieron dentro del trabajo

diario y que no fueron vistos o tenidos en cuenta en las etapas de desarrollo, de esta manera

se realizará la verificación de los formularios al momento de realizar el ingreso de

información que se solicita para la comprobación de validaciones que se encuentra en

dicha aplicación. Una vez que se haya ingresado todos los datos correctos del nuevo cliente

en el formulario podrá almacenar los datos en la aplicación.

Figura 36 Pruebas con datos reales

Elaborado por: El autor

3.4.5.2. Prueba con datos erróneos

Al momento de ingresar datos incorrectos en el formulario como se muestra en este caso el

ingreso de un cliente que algunos campos son obligatorios, no podrá realizar el

almacenamiento de dicho cliente.

Page 97: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

84

Figura 37 Prueba con datos erróneos

Elaborado por: El autor

Además la aplicación muestra datos erróneos como el XML no autorizado por parte del

web service de la Administración Tributaria SRI.

Figura 38 Error emitido por el Web Service del SRI

Elaborado por: El autor

Page 98: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

85

3.4.5.3. Pruebas de velocidad en navegadores

Uno de los componentes deficientes más críticos para el usuario, se puede decir que es la

velocidad de carga de una aplicación web. Ya que a veces finalizan de leer información y

todavía el servidor está intentando descargar imágenes, datos o partes de la web. Sin

embargo uno de los aspectos más importantes es el tiempo de carga, es decir si tarda

mucho en mostrar el contenido, el usuario no podrá tener un rendimiento eficiente.

Para poder saber cuál es la velocidad de la aplicación existen varias soluciones, una de

ellas es en la siguiente dirección electrónica http://gtmetrix.com, ya que permite encontrar

el tamaño, el tiempo de carga y determinar el promedio de velocidad por KB/s, este

programa realiza test de velocidad de respuesta como se demuestra en el siguiente gráfico.

Figura 39 Pruebas de velocidad

Fuente: http://gtmetrix.com/reports/facturas.integral.ec/ngCwyurk

Resultado del análisis de la aplicación: Tamaño página: 1.35MB, Velocidad de carga total:

2.11s. Como se puede observar el test de velocidad es satisfactorio con una carga

aceptable.

Page 99: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

86

3.4.5.4. Pruebas de Hardware y Software

Detalle: La prueba radicó en acceder a la aplicación web, en algunos computadores que

poseen características diferentes, en cuanto a hardware y software (en lo que concierne a

S.O), y se apreciaron los siguientes resultados:

Resultados obtenidos en máquinas con S.O propietario.

PROCESADOR MEMORIA DISCO S.O PROPIETARIO TIEMPO USUARIOS

Pentium Dual 1GB 320GB WINDOWS 7 21.36s 1

CORE 2 DUO 2GB 320GB WINDOWS 7 9.58s 1

CORE i5 4GB 500GB WINDOWS 7 3.16s 5

CORE i7 4GB 500GB WINDOWS 7 1,76s 8

Tabla 7 Pruebas de Hardware y Software propietario

Elaborado por: El autor

Resultados obtenidos en máquinas con S.O libre

PROCESADOR MEMORIA DISCO S.O PROPIETARIO TIEMPO USUARIOS

Pentium Dual 1GB 320GB Linux Mint 17.25s 1

CORE 2 DUO 2GB 320GB Linux Mint 7.60s 1

CORE i5 4GB 500GB Linux Mint 2.07s 5

CORE i7 4GB 500GB Linux Mint 1,05s 8

Tabla 8 Pruebas de Hardware y Software libre Elaborado por: El autor

Mediante esta prueba se determina que la aplicación web trabaja mejor con el sistema

operativo libre puesto que las herramientas de diseño tienen las mismas características

(herramientas libres), no obstante con un sistema operativo propietario la aplicación web

rinde de una manera eficiente, a sumiendo que la demora en los tiempos de respuestas son

mínimos.

3.4.5.5. Pruebas de seguridad lógica

REQUERIMIENTOS FUNCIONALES

Autentificación

Consiste en la autenticación de los usuarios a través de la

asignación de claves en el módulo correspondiente.

Información que servirá para identificar al usuario por medio

de la consulta en la base de datos.

Page 100: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

87

Gestión de datos según

los usuarios asignados

En este módulo se puede crear, actualizar e incluso eliminar a

los usuarios.

Realizar operaciones y búsquedas (filtro).

Encriptación de datos

MD5 es uno de los algoritmos de reducción criptográfica. La

codificación del MD5 de 128 bits es representada típicamente

como un número de 32 dígitos hexadecimal.

Respaldos de Base de

datos

Consiste en sacar un respaldo de la base de datos de la

aplicación web para almacenarlo en un lugar específico.

Tabla 9 Opciones del módulo de seguridad

Elaborado por: El autor

3.4.6. Mantenimiento

La aplicación web posterior a su implantación y manipulación por parte de los usuarios

sufrirá cambios, es por ello que se recomienda realizar mantenimiento cada tres meses,

sacando un respaldo de la base de datos y de los módulos existentes de dicha aplicación.

Además en la aplicación se podrán realizar agregaciones futuras según los requerimientos

que se presenten por los clientes de INPRISE.

Page 101: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

88

CONCLUSIONES

El uso de software libre en ambientes empresariales (como el Framework de

desarrollo Django, lenguaje Phyton) es de gran utilidad hoy en día, por cuanto

ahorra recursos y presupuesto para las empresas que lo utilizan además

proporcionan la flexibilidad y ahorro de tiempo en el desarrollo de aplicaciones..

Es importante hoy en día incluir la tecnología en los procesos de negocio de las

empresas en el Ecuador y en todo el mundo, permite a las empresas mejorar en la

calidad de servicios hacia sus clientes y les permitirá cumplir a cabalidad las

disposiciones legales y reglamentarias.

Es importante para los usuarios finales de estas soluciones empresariales el

disponer de su información en medios electrónicos en los cuales podrá consultar en

el momento que crean necesario, lo que representa el beneficio de usar la

tecnología en cualquier área de la vida del ser humano.

Las empresas al utilizar estas tecnologías para emisión de comprobantes

electrónicos contribuyen al medio ambiente al ahorrar el uso de recursos como el

papel, tinta de impresoras, entre otros.

Page 102: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

89

RECOMENDACIONES

Es recomendable que las empresas al momento de adoptar tecnología para sus

procesos vean la alternativa de software libre versus el software privativo pues

ahorran costos y son más fáciles de utilizar.

Se recomienda a las empresas ya sean grandes o pequeñas adoptar este tipo de

soluciones tecnológicas que les permitirá cumplir en forma correcta con los

requerimientos de la Administración Tributaria en el Ecuador.

Se recomienda a las empresas designar y capacitar a una persona responsable que

administre la información que generan sus procesos, además que se encargue del

soporte a los clientes en cuanto a la emisión de comprobantes electrónicos, esto

garantizará la imagen y calidad de servicio hacia los clientes tanto por parte de la

empresa INPRISE como de las empresas a sus usuarios.

Se recomienda a las empresas clientes de INPRISE difundir la importancia del uso

de mecanismos de generación de comprobantes de manera electrónica y el uso de

las herramientas tecnológicas como el correo electrónico para poco a poco ir

reduciendo el uso de papel para contribuir con el medio ambiente y adoptar la

tecnología en los procesos empresariales.

Page 103: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

BIBLIOGRAFÍA

Beati, H. (2012). PHP Creación de páginas Web dinámicas. Méxicp: ALFAOMEGA.

Ceballos, F. J. (2011). Java 2: Curso de Programación. México: Alfaomega.

Cuadra, D., Castro, E., Iglesias, A. M., & al., e. (2013). Desarrollo de Bases de Datos.

Cursos prácticos desde el análisis a la implementación. México: Alfaomega Grupo

Editor.

Dávila Sguerra, M. (2009). GNU/Linux y el Software Libre y sus multiples aplicaciones.

Bogotá - Colombia: Alfaomega.

De la Cruz Paisig, H. B. (2012). Linux. El Sistema Operativo del futuro. Lima - Perú:

Empresa Editora Macro.

De la Cruz Paisig, H. B. (2012). Servidores en Linux. Alta seguridad. Lima - Perú:

Empresa Editora Macro.

Freeman, A. (2012). Pro JavaScript for Web Apps. New York: Apress Editorial.

Freeman, A. (2013). Pro jQuery 2.0. New York: Apress.

García, S. (2015). La guía definitiva de django. Desarrolla aplicaciones web de forma

rápida y sencilla. México: Django Software Corporation.

González Duque, R. (S/A). Python para todos. España: Creative Commons

Reconocimiento.

Hernández Sampieri, R., Fernández Collado, C., & Baptista Lucio, P. (2010). Metodología

de la Investigación. México: Mc Graw Hill.

Herrera Ríos, E. (2012). Arrancar con HTML5. Curso de Programación. México:

Alfaomega.

López Montalbán, I., Castellano Pérez, M. J., & Orpino Rivas, J. (2013). Base de Datos.

México: Alfaomega Grupo Editor.

Moreno Pérez, J. C. (2012). Programación. Bogotá - Colombia: Ediciones de la U.

Moro Vallina, M., & Rodés Bach, A. (2014). Marketing Digital. Madrid - España:

Ediciones Paraninfo.

Pérez Fernández de Velasco, J. A. (2013). Gestión por procesos. México: Alfaomega.

Publicaciones, C. d. (2012). Ley de Comercio electrónico, firmas electrónicas y mensajes

de datos. Reglamento, Legislación conexa, concordancias. Quito: Corporación de

Estudios y Publicaciones.

Page 104: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Publicaciones, C. d. (2014). Ley Orgánica de Régimen Tributario Interno. Legislación

Conexa, concordancias. Quito - Ecuador: Corporación de Estudios y Publicaciones.

Roldán Martínez, D., Valderas Aranda, P. J., & Óscar, P. L. (2010). Aplicaciones Web: Un

enfoque práctico. México: Alfaomega.

Sawyer McFarland, D. (2009). CSS. Madrid - España: Anaya Multimedia.

Schulz, R. (2009). Diseño Web con CSS. México: Alfaomega.

Veloso, C. E. (2011). Computación Básica para Adultos. Buenos Aires: Alfaomega.

Page 105: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

LINKOGRAFÍA

Alvarez, M. A. (2012). Desarrolloweb.com. Obtenido de

http://www.desarrolloweb.com/manuales/manual-jquery.html

DesdeLinux. (2013). DesdeLinux Usemos Linux para ser libres. Obtenido de

http://blog.desdelinux.net/nginx-una-interesante-alternativa-a-apache

Pérez Samiento, M. (Junio de 2015). SCRIBD. Obtenido de

http://es.scribd.com/doc/15806438/SISTEMAS-CONTABLES#scribd

PosgrestSQL-es. (2013). PosgrestSQL-es Portal en español sobre PostgreSQL. Obtenido

de http://www.postgresql.org.es/sobre_postgresql

Servicio de Rentas Internas. (2015). SRI. Obtenido de http://www.sri.gob.ec/web/guest/145

Wikipedia. (2015). Wikipedia La enciclopedia libre. Obtenido de

http://es.wikipedia.org/wiki/Nginx

SRI. (2015). Obtenido de

http://www.sri.gob.ec/web/guest/67;jsessionid=hYVS9gDdGYLYU-rRsqT4B6ex

SRI. (Abril de 2015). Obtenido de http://www.sri.gob.ec/web/guest/10116

Page 106: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ANEXOS

Page 107: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ANEXO 1

Page 108: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ANEXO 2

ENTREVISTA DIRIGIDA AL GERENTE-PROPIETARIO DE LA EMPRESA

INPRISE

Nombre del entrevistado: ………………………………………………………………

Cargo: ……………………………………………………………………………………

La presente entrevista tiene como objetivo recolectar información acerca de los procesos y

servicios que realiza la empresa INPRISE a sus clientes.

1. Cuáles son las actividades a las que se dedica INPRISE?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

2. Qué área de cobertura de servicios tiene INPRISE?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

3. Cuál es la gama de servicios que la empresa ofrece a sus clientes?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

4. Tiene la empresa INPRISE solicitudes de soluciones de facturación electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

Page 109: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

5. Cómo ve usted los temas relacionados con las disposiciones por parte del SRI para

que las empresas (ciertos sectores) emitan sus comprobantes electrónicamente?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

6. Cuáles considera usted que son los beneficios para la empresas, disponer de una

solución de facturación electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

7. Considera usted que los costos de implementación de facturación electrónica son altos

para las empresas y negocios?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

8. A su criterio qué dificultades enfrentan las empresas para implementar la facturación

electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

9. Considera usted que por parte del SRI existe la suficiente guía y ayuda hacia las

empresas para implementar facturación electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

Page 110: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

10. Qué aspectos de seguridad deben tomarse en cuenta para implementar facturación

electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

11. En qué forma los clientes de INPRISE solicitan la implementación de la facturación

electrónica?

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

………………………………………………………………………………………………

Page 111: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

ANEXO 3

MANUAL DE USUARIO

APLICACIÓN WEB PARA LA EMSIÓN DE COMPROBANTES ELECTRÓNICOS DE LOS

CLIENTES DE LA EMPRESA INPRISE DE LA CIUDAD DE IBARRA

Para trabajar con la aplicación en el navegador de su computador deberá digitalizar

https://facturas.integral.ec

A continuación indicamos como ingresar:

Ingreso a la aplicación web la cual se encuentra distribuida de la siguiente manera

Usuario deberá ingresar el usuario emitido por la empresa INPRISE

Contraseña corresponde a la clave otorgada por la empresa INPRISE

En la pantalla principal está conformada de la siguiente manera cuando el usuario es

ADMINISTRADOR:

Page 112: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Descripción de Menú

Productos: Esta opción permite crear productos en el caso que la empresa contratante

emitiría su factura desde la aplicación

Clientes: Esta opción permite crear clientes en el caso que la empresa contratante emitiría

su factura desde la aplicación

Categorías: Esta opción permite crear categorías en el caso que la empresa contratante

emitiría su factura desde la aplicación

Nueva Factura: Permitirá crear la factura desde la aplicación misma.

Comprobantes Emitidos: Esta opción permite mostrar todos los comprobantes creados ya

sean estos por creación desde la aplicación, archivo CSV o por replicación de la base de

datos.

Subir CSV: Como su nombre lo indica permitirá subir el archivo CSV con los datos de las

facturas a procesar

Administración: En este menú al realizar un click sobre él nos desplegará un submenú con

opciones propias de administración.

En el menú de Administración se puede observar las siguientes opciones:

Seleccionar Empresa

Crear Empresa

Crear Establecimiento

Reporte Empresas

CREACIÓN DE EMPRESA

Para la creación de una nueva empresa se accede al menú de Administración y se selecciona

Crear Empresa

Page 113: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Como se puede observar se despliega los campos para la creación de la empresa los cuales son

necesarios para la conformación del XML que exige el SRI, para la emisión del documento

electrónico, a continuación se describe cada uno de los campos que están presentes en el

formulario.

Ruc: Registro Único de Contribuyentes

Razón Social: Se refiere al nombre del representante o nombre de la empresa

Dirección: La dirección donde se encuentra ubicado el establecimiento matriz

Obligado a Llevar Contabilidad: Campo boleano

Resolución: El número de resolución entregado por el SRI

Tipo de emisión: Seleccionamos la opción Normal

Tipo de Ambiente: Es muy importante ya que este campo determina en qué ambiente enviaremos

el documento al SRI. Pruebas y Producción cabe recalcar si enviamos en modo producción los

documentos serán objeto de tributario

Código Numérico: Requerimiento del SRI dígito de 8 enteros por defecto ponemos 1 y el sistema

completará el resto de números faltantes con cero.

IP Cliente: Este campo será únicamente lleno si la empresa a la que se le está creando emitirá la

factura por medio de réplica de datos.

Ruta de Base de Datos: En este campo corresponde al nombre de la base de datos si se tratara de

base de datos Postgres o si se trata de una base de datos Firebird se ingresará la ruta absoluta. Si la

réplica es por medio de SCV o creación de factura desde la aplicación se dejará en blanco.

Contribuyente especial: Equivale al número de contribuyente especial el caso de no tenerlo

colocar cuatro ceros.

Alias: Este campo al igual que todos es muy importante porque por medio de éste alias

conoceremos a la empresa a la cual se realiza el proceso de Replicación y Autorización.

Logotipo: Es la imagen que se reflejará en el documento impreso llamado RIDE

Token: Corresponde a la firma digital de la empresa adquirida en el Banco Central o en los

establecimientos autorizados. El formato del archivo por lo general es de extensión .pk12.

Password Token: Como su nombre lo indica es la contraseña de la firma digital.

Usuario: Es el nombre del usuario con el cual le daremos acceso a la empresa para ingresar a la

aplicación

Password Usuario: La contraseña que se le asigna a la empresa para ingresar a la aplicación

Una vez ingresados todos los datos antes descritos presionamos en el botón guardar.

Page 114: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

INGRESO DEL ESTABLECIMINETO

El ingreso del establecimiento es muy importante para la generación del XML requerido por el SRI

en el cual explicamos los campos requeridos como son:

Empresa: Refiere a la empresa que creamos anteriormente la cual generamos su establecimiento.

Número de Establecimiento: El número de establecimiento del cual vamos a emitir las facturas

para su autorización.

PERMISOS A LA EMPRESA CREADA

Page 115: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Para la asignación de permisos debemos dar clic en la pestaña Establecer Permisos, y se observará

el siguiente formulario:

Una vez ingresado escogeremos la última opción la cual dice USERS

En la pantalla que se despliega seleccionaremos el nombre de usuario que le asignamos al

momento de crear la empresa, si no se puede visualizar a simple vista podemos buscar el nombre

de usuario ingresando en el cuadro de búsqueda el cual tiene una imagen de una lupa.

Al seleccionar el usuario nos desplegará una pantalla Modificar USERS en la misma que nos

dirigimos al campo Permisos de Usuarios y seleccionamos los permiso que sean necesarios para

nuestro caso hemos seleccionando el permiso

facturacion|factura|Puede hacer una factura

facturacion|producto|Puede administrar productos

Page 116: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Una vez realizado este paso nos queda cerrar sesión con el usuario administrador e ingresar con el

usuario de la empresa que hemos creado.

INGRESAR COMO USUARIO (EMPRESA) CREADA

Para ello ingresamos a la dirección https://facturas.integral.ec

Usuario deberá ingresar el usuario emitido por la empresa INPRISE

Page 117: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Contraseña corresponde a la clave otorgada por la empresa INPRISE

Una vez ingresado observamos la siguiente pantalla de la empresa creada

Como podemos observar en la imagen anterior se muestra los permisos asignados y una pantalla de

estadísticas en la cual nos muestran los clientes creados, los productos destacados la venta más alta

del mes, semana y el valor de ingreso del mes, último mes y última semana. Además un gráfico de

ventas de todos los meses.

Page 118: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

CREACIÓN DE UNA FACTURA DESDE LA APLICACIÓN

Para la creación de una factura como es común primero se debe ingresar los productos y clientes,

luego se procede a explicar la creación de los mismos para poder emitir nuestra factura

Para la creación de los productos nos dirigimos a la opción del menú Productos, luego

presionamos el botón Agregar Producto y llenamos sus datos requeridos.

Luego de ingresar el producto procedemos a ingresar un nuevo cliente para realizar la factura, para

ello ingresamos en el menú Clientes en el cual nos desplegará una lista de los clientes creados. Una

vez desplegado los clientes presionamos en el botón Agregar Cliente en la cual llenamos los datos

requeridos y guardamos.

Page 119: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Es importante mencionar el ingreso del Email (Correo Electrónico) ya que será la dirección la

cual se enviará la información de autorización de la factura como son el RIDE y el XML.

Una vez que hemos ingresado los productos y los clientes podemos generar nuestra factura desde

la aplicación para ello nos ingresamos en el menú Nueva Factura en el formulario que nos

aparece completaremos los datos para generar nuestra factura como se muestra en la siguiente

imagen.

Una vez completo los datos procedemos a guardar la factura y nos dirigimos a la opción del menú

Comprobantes Emitidos la cual nos mostrará todos los comprobantes emitidos con sus diferentes

filtros que nos ayudarán para la búsqueda.

Page 120: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

Como se muestra en la imagen nuestra factura emitida se encuentra en estado SIN ENVIAR para

lo cual esperaremos un lapso de tiempo para que la factura se envíe al SRI para su respectiva

autorización luego de este tiempo actualizaremos nuestra página en el botón BUSCAR. Cabe

mencionar que los documentos electrónicos llegan al correo del cliente registrado.

Una vez realizado este proceso podemos ver si nuestra factura fue autorizada o devuelta en este

caso como podemos mirar en el siguiente gráfico nuestra factura efectivamente fue

AUTORIZADA

Opciones de Comprobantes Emitidos.

Para acceder al nuestro documento pre impreso llamado RIDE o a su respectivo XML en la

columna DOCUMENTO encontramos unos gráficos los cuales son hipervínculos que nos muestra

lo que elijamos, el RIDE se mostrará siempre y cuando haya sido autorizado.

Page 121: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

De igual manera podremos acceder a los datos con más detalle de la factura hacemos click en el

hipervínculo de la columna número que se encuentra resaltada con azul al presionar nos muestra

una pantalla como la siguiente.

CREACIÓN DE FACTURAS A PARTIR DE UN ARCHIVO CSV

Para la creación de una factura a partir de un formato CSV lo primero que debemos hacer es crear

los productos que van hacer vendidos una vez creados los productos nos iremos a la parte del menú

y seleccionaremos Subir CSV

Como se muestra en la siguiente imagen.

Page 122: UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDESdspace.uniandes.edu.ec/bitstream/123456789/1499/1/... · CERTIFICACIÓN DEL ASESOR En calidad de asesor del presente trabajo de investigación,

FORMATO O CAMPOS QUE DEBE CONTENER NUESTRO ARCHIVO CSV

La aplicación web permite subir archivos CSV de facturas para su autorización la opción se ha

incrementado para todas las empresas o personas que tienen su propio sistema de facturación pero

no poseen el módulo de facturación electrónica y tampoco desean cambiar o migrar a otro sistema

para lo cual esas empresas solo deben generar un archivo en formato CSV con los siguientes

campos separados por comas:

marca,establecimiento,puntoventa,nrofiscal,packing,fecha,tipoid,clienteid,cliente,direccion,tel

efono,agencia,cuartof,mawb,hawb,dae,fules,piezas,tallos,detalle,pu,subtotal,iva,total

1,"001","001",26735,37273,03/03/2015,8,"136","LEON","UI. GAGARINA 25 174 3 MOSCOW

RUSSIA-RUSIA","79217919474","ECUCARGA","","074-

29758654","1783062","4000120628",1.000,4,720,"FLORES",0.16500,118.80,0.00,118.80

En este caso los datos anteriores corresponden a un CSV de una Florícola

Una vez completo los datos procedemos a guardar la factura y nos dirigimos a la opción del menú

Comprobantes Emitidos la cual nos mostrará todos los comprobantes emitidos con sus diferentes

filtros que nos ayudarán para la búsqueda. De igual manera que la anterior esperaremos el lapso de

60 segundos y refrescamos con el botón BUSCAR para ver si nuestras facturas en estado sin enviar

se han procesado tanto en replicar los datos del CSV como el envío al webservice del SRI para su

respectiva autorización o devolución.