introducciÓnrepositorio.ug.edu.ec/bitstream/redug/18951/1/ug-fcmf-b... · 2017-10-22 · factura...

179
1 INTRODUCCIÓN En este trabajo pretendemos resaltar la función de Tesorería como elemento indispensable dentro de una organización. El SISTEMA DE GESTIÓN DE TESORERÍA provee de todos los servicios de cobranza y pagos a los usuarios a través de un sitio Web. Una buena tesorería no es nunca fruto de la improvisación del momento, se basa en: Que la empresa obtenga beneficios. Que la gestión financiera y general de la empresa se haya planteado con toda seriedad La función más importante de Tesorería es la supervisión de cobros y pagos a terceros.

Upload: hacong

Post on 17-Oct-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

1

INTRODUCCIÓN

En este trabajo pretendemos resaltar la función de Tesorería como elemento

indispensable dentro de una organización.

El SISTEMA DE GESTIÓN DE TESORERÍA provee de todos los servicios de

cobranza y pagos a los usuarios a través de un sitio Web.

Una buena tesorería no es nunca fruto de la improvisación del momento, se

basa en:

Que la empresa obtenga beneficios.

Que la gestión financiera y general de la empresa se haya

planteado con toda seriedad

La función más importante de Tesorería es la supervisión de cobros y pagos

a terceros.

Page 2: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

2

Introducción a los documentos soporte

Cheque: Instrumento privado que constituye una orden de pago sobre un

banco en la cual el girador mantiene en su cuenta corriente saldo a su favor,

es un mandato de pago que sirve al girador para pagar a un tercero o a si

mismo, con los fondos disponibles que tenga en su cuenta corriente.

Factura Conformada: Título de valor aceptado por el cliente, aceptando las

condiciones de crédito del proveedor.

Se origina en la compra venta de mercaderías, así como en otras

modalidades contractuales de transferencia de la propiedad de bienes

susceptibles de ser afectados en prenda. En las que se acuerde el pago

diferido del precio.

Nota de Venta: Es un documento que se origina en base a un pedido verbal

o por escrito hecho por el comprador, mediante el cual se obliga al vendedor

a entregar las mercaderías y al comprador a recibirlas.

Page 3: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

3

Nota de Débito: Este documento se diligencia cuando es necesario informar

al cliente acerca del valor de su deuda o de algún tipo de incremento por

diferentes conceptos.

Nota de Crédito: Este documento se diligencia cuando es necesario

informar a un cliente que su deuda disminuye por algún concepto.

Comprobante de Ingreso: Tiene como objeto fundamental servir como

comprobante de todos los ingresos monetarios y de constancia del pago

efectuado por un cliente.

Orden de Pago: Es un documento no negociable de uso interno en el que se

indica la autorización que se requiere para efectuar pagos. Se detallan los

datos de las facturas de un proveedor y el cheque emitido con su respectivo

valor y fecha.

Comprobante de Egreso: Este documento se diligencia cuando, por

diferentes conceptos, la empresa realiza erogaciones de dinero. Tiene como

objetivo fundamental servir de constancia de los valores entregados por la

Page 4: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

4

empresa.

CAPÍTULO 1

SISTEMA DE GESTIÓN DE TESORERÍA

Problemática

El control de gestión de una Empresa va tomando mayor importancia

con el transcurso del tiempo a medida que las actividades han ido

creciendo pues no solamente se han multiplicado en número sino

también en diversidad y complejidad, su ejecución compromete la

Page 5: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

5

utilización de cuantiosas sumas de recursos, que pese a lo significativo

de la misma resulta escasas al confrontarlas con la multiplicidad de

necesidades de la sociedad.

Para hacer frente a estas necesidades surgieron los ERP (Enterprise

Resource Planning) son sistemas transaccionales, es decir están

diseñados para trabajar con procesos de la empresa, soportarlos,

procesar los datos y obtener de ellos información especifica.

Así, puede haber un seguimiento y control de los procesos de la

Empresa, como son: Finanzas y Contabilidad, Ventas, Mercadotecnia,

Compras, Recursos Humanos, Operaciones y Abastecimientos.

La función principal es organizar y estandarizar procesos y datos

internos de la empresa trasformándolos en información útil para ser

analizados para la toma de decisiones.

Es importante recordar que finalmente, aunque estos sistemas apoyan

en la toma de decisiones, no quiere decir que ellos lo hagan, sino que

los administradores (humanos), tienen el poder final para tomar las

decisiones estratégicas y adecuadas en la Empresa.

Page 6: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

6

La utilización de códigos libres (OPEN SOURCE) minimiza el costo de

desarrollo de esta tecnología.

La sección de Tesorería, que se encuentra dentro del departamento

Financiero, es un área que tiene un fuerte componente administrativo y

operacional que actúa como un lastre para el desempeño de otras

funciones mas llegadas a la gestión y a la creación de valor.

Solución

La necesidad de la empresa comercial de tener un sistema integrado

bajo Web, que facilite sus actividades empresariales, al menor costo

posible, y con tecnología de punta, ha hecho que la empresa decida

implantar un sistema ERP bajo Web usando tecnología OPEN

SOURCE.

En los actuales momentos el departamento de Tesorería; que se

encarga de recibir, controlar y custodiar ordenadamente los valores así

como sus reportes, no cuenta con sistema automatizado.

Es por este motivo que nuestro proyecto de tesis dirigida implementará

Page 7: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

7

el módulo “Sistema de Gestión de Tesorería”, el que permitirá receptar

cobros, realizar pagos, emisión de comprobantes, informes o

resúmenes de Tesorería.

La base para el desarrollo de los diferentes tópicos de nuestra tesis

dirigida serán los requerimientos del departamento de Tesorería de la

Empresa Comercial.

Visión

Trabajar con procesos de la empresa, soportarlos, procesar los datos y

obtener de ellos información específica.

Misión

Para poder obtener todo esto será necesario que todos los

departamentos de sistemas estén conectados o que exista un

comunicación directa entre departamentos, para así se ahorre tiempo,

exista coordinación, no exista gastos innecesarios, para así la empresa

sea la mas beneficiada en este tema. La función principal es organizar y

estandarizar procesos y datos internos de la empresa trasformándolos

en información útil para ser analizados para la toma de decisiones.

Page 8: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

8

El módulo “Sistema de Gestión de Tesorería”, el que permitirá receptar

cobros, emisión de comprobantes, informes o resúmenes de Tesorería y

emitir pagos.

Objetivos generales

A continuación se detallan los objetivos generales, del modulo

SISTEMA DE GESTION DE TESORERIA, para su realización y

desarrollo:

Investigar Tecnología OPEN SOURCE, tales como J2EE, BASES

de DATOS como PostgreSQL y MySQL, Herramientas para la

creación de reportes tal como iREPORT.

Analizar, desarrollar e implementar el modulo de Tesorería (Sistema

de Gestión de Tesorería) bajo Web, usando Herramientas OPEN

SOURCE.

Ofrecer las seguridades necesarias, para que el acceso a la

información del sitio Web solo sea posible para las personas que

estén vinculadas directamente con la empresa.

Page 9: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

9

Objetivos específicos

Para el desarrollo del SISTEMA DE GESTIÓN DE TESORERÍA, hemos

considerado los siguientes objetivos específicos:

Permitir el uso de la aplicación SISTEMA DE GESTIÓN DE

TESORERÍA solo a los usuarios autorizados.

Asignar a los usuarios perfiles de acceso a la información del

SISTEMA DE GESTIÓN DE TESORERÍA.

Desarrollar e implementar los requerimientos mas importantes del

sitio Web, que permitirá obtener y presentar una información

adecuada.

Permitir la emisión de comprobantes, informes o resúmenes de

Tesorería.

Beneficios

Los beneficios que aportará el SISTEMA DE GESTIÓN DE

Page 10: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

10

TESORERÍA son los siguientes:

El proceso del departamento de Tesorería llegaría a realizar sus

actividades de manera rápida y fiable.

El módulo permitirá la emisión de comprobantes, informes o

resúmenes de Tesorería.

Agilitar el trabajo del departamento de Tesorería, reduciéndose la

aglomeración de usuarios.

La función principal es organizar y estandarizar procesos y datos

internos de la empresa trasformándolos en información útil para ser

analizados para la toma de decisiones.

Alcance

Para que este proyecto cumpla con los objetivos anteriormente

planteados hemos definido las siguientes actividades o metas:

Sub modulo de Pagaduría.

Page 11: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

11

Emisión de Ordenes de Pagos.

Reporte para el pago de proveedores.

Pago en varios medios (Cheques, transferencias, tarjeta, etc.).

Permite la cancelación de varias facturas que pertenecen a un

proveedor con un pago.

Emisión de cheques en formularios preimpresos.

Administración de Cheques rechazados por varios motivos.

Anulación de cheques.

Reporte de Transferencias.

Reportes de Cheques.

Sub modulo de Recaudaciones

Reporte de cobros de cartera para realizar depósito de lo

recaudado.

Reporte de comprobantes de ingresos.

Cobros en varios medios (cheques, tarjeta, etc.).

Administración de cheques post fechados.

Page 12: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

12

Cronograma

A continuación se detallan las tareas a realizar, de manera resumida y

detallada, para el desarrollo del SISTEMA DE GESTIÓN DE

TESARERÍA.

Cronograma resumido

No Tarea Inicio Fin

1 Levantamiento de información 23-Ene-06 10-Feb-06

2 Auto capacitación 13-Feb-06 04-Mar-06

3 Asesoramiento profesional 06-Mar-06 17-Mar-06

4 Análisis 20-Mar-06 21-Abr-06

5 Documentación del análisis 24-Abr-06 05-May-06

6 Diseño 08-May-06 16-Jun-06

7 Documentación del diseño 19-Jun-06 30-Jun-06

8 Implementación 03-Jul-06 25-Ago-06

9 Documentación de la

implementación

28-Ago-06 08-Sep-06

10 Pruebas y depuración 11-Sep-06 29-Sep-06

11 Documentacion pruebas,

manual técnico y de usuario

02-Oct-06 12-Oct-06

Tabla 1. Cronograma resumido

Cronograma detallado

El cronograma detallado se describe en el anexo A

Page 13: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

13

Recursos

Los recursos humanos, de hardware y de software para el desarrollo del

SISTEMA DE GESTIÓN DE TESORERÍA se detallan a continuación:

Recursos humanos

Esta conformado por la participación de Robert Roca, líder de

Proyecto, Luisa Castro, DBA, y Fabricio Villalta, analista –

programador.

Cada uno prestará sus servicios durante 6 meses.

Cantidad Detalle V. Unit. V. total

1 Líder de Proyecto 400,00 2400,00

1 DBA 300,00 1800,00

1

Analista –

programador

300,00

1800,00

Total 6000,00Tabla 2. Recursos humanos

Recursos de hardware

Para el desarrollo del sitio Web se requirió del alquiler de 2

máquinas para los 6 meses de duración de nuestro proyecto,

además de adquirir una máquina que cumplirá con las funciones

Page 14: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

14

de Servidor de aplicaciones y de Servidor de Base de Datos.

Cantidad Detalle Valor

2 Pentium IV, 256 RAM, HD 80 Gb 900,00

1 Pentium IV, 512 RAM, 120 Gb 800,00

Total 1700,00Tabla 3. Recursos de hardware

Recursos de software

Se requiere herramientas de programación y de base de datos

para el desarrollo e implantación del sistema.

Cantidad Detalle V. total

3 Fedora Core 4 0,00

2 Eclipse 0,00

2 Ireport 0,00

2 J2EE 0,00

1 Apache TomCat 0,00

1 Objecteering/UML Modeler 0,00

1 Base de Datos PostgreSql 0,00

Total 00,00 Tabla 4. Recursos de software

Total de presupuesto para la adquisición de los recursos

Detalle Valor

Page 15: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

15

Recursos humanos 6000,00

Recursos de hardware 1700,00

Recursos de software 0,00

Total 7700,00 Tabla 5. Presupuesto de recursos

Metodología

La metodología se basa en el desarrollo orientado objetos utilizando el

Lenguaje Modelado Unificado (UML) que considera las siguientes

etapas:

Análisis.

Diseño.

Implementación.

Pruebas y depuración.

Metodología del análisis

Especificaciones de requisitos del sistema (SRS)

Una descripción textual del alcance y la misión general del

sistema.

Page 16: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

16

Casos de uso

Una descripción gráfica/textual de cómo se comportará el

sistema desde la perspectiva del usuario. Los usuarios

pueden ser humanos u otros sistemas.

1.1.1.1 Diagrama de clases

Una representación visual de los objetos que se utilizarán

para construir el sistema.

Metodología del Diseño

Escenarios

Descripción textual de los procesos internos necesarios

para implementar la funcionalidad documentada en un

caso de uso.

Diagrama de secuencia

Un modelo de la secuencia de interacciones que ocurren

entre los objetos durante la ejecución del programa. Se

supone especial énfasis en el orden en el que ocurre las

Page 17: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

17

interacciones y cómo evolucionan en el tiempo.

Diagrama de actividad

Es una representación visual del flujo de ejecución de un

programa u operación.

Prototipo de la interfaz

Boceto de las diferentes pantallas que compondrán la

interfaz.

Metodología de la implementación

En la etapa de implementación utilizaremos el patrón de

arquitectura MVC (Model-View-Controller).

Modelo

Se enfoca en la creación de clases JavaBeans que

soporten todos los requerimientos de funcionalidad.

Componentes de la lógica de negocio

Son los encargados de implementar la lógica de

negocio para mantener las diversas entidades del

Page 18: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

18

sistema, como pueden ser las atracciones,

actividades, etc. También se pueden denominar

Objetos de negocio.

Componentes de estado del sistema

Ofrecen los objetos del estado del sistema

almacenado en el modelo relacional base.

También se denominan Entidades.

Componentes lógicos de acceso a datos

Implementan la lógica de acceso a datos para

transformar los registros de la base de datos

relacional en componentes de estado del sistema

y almacenar el estado de los componentes de

estado del sistema de nuevo en la base de datos.

Este tipo de componentes se denomina Objeto de

acceso a datos.

Vista

Interfaz de usuario generalmente construida usando

tecnología JavaServer Page (JSP). Las páginas JSP

Page 19: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

19

pueden contener texto HTML estático (o XML) llamado

“plantilla de texto”, además de la habilidad de insertar

contenido dinámico.

Controlador

Está enfocado es las solicitudes recibidas desde el cliente,

decidiendo que función de la lógica de negocio se va a

realizar.

Metodología de pruebas

La metodología de Pruebas Orientada a Objetos para el Ciclo de

Vida Completo(en ingles "Full Life-Cycle Object-Oriented

Testing", FLOOT) es una colección de técnicas para verificar y

validar software orientado a objetos disponibles en todos los

aspectos del desarrollo de software. Se puede realizar pruebas

en todos los aspectos del desarrollo de software no solamente

durante la codificación.

Page 20: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

20

CAPÍTULO 2

Page 21: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

21

ANÁLISIS

Especificaciones de Requisitos de Software (SRS)

Usuarios del Sistema

Hemos identificado los siguientes usuarios del sistema:

Tesorero: Persona encargada de recaudar y emplear los

caudales en una empresa.

Pagador: Persona que paga las obligaciones de una empresa.

Recaudador: Encargado de realizar la cobranza de los valores

de una empresa.

Requisitos del sistema

Los usuarios tienen que autenticarse utilizando un nombre de

usuario y contraseña.

Las formas de pago son: tarjeta de crédito, transferencias

bancarias, efectivo y comprobante de retención.

Page 22: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

22

Los valores cobrados indebidamente serán devueltos a los

contribuyentes o compensados con otras obligaciones.

Los ingresos recaudados serán revisados, depositados y

registrados en la cuenta corriente a nombre de la entidad en

un banco durante el día en curso de la recaudación o máximo

el día hábil siguiente.

Está prohibido cambiar cheques, efectuar pagos o préstamos

con los dineros producto de la recaudación.

Sobre los valores que se recauden se entregará un recibo

prenumerado, fechado, legalizado y con la explicación del

concepto y el valor cobrado en letras y números, con sello de

cancelado, documento que respaldará la transacción

realizada. El comprobante original será entregado a la persona

que realice el pago.

Diariamente se elaborará el reporte de recaudación.

Page 23: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

23

Se efectuará una verificación diaria, con la finalidad de

comprobar que los depósitos efectuados sean iguales a los

valores recaudados.

Efectuada la verificación diaria, si el resultado da una

diferencia en más, el valor quedará a favor de la entidad; de

producirse una diferencia en menos, si después de un análisis

se comprueba que efectivamente es producto de un error la

asume la entidad, caso contrario lo asume el recaudador.

Los valores en efectivo, incluyendo los que se encuentran en

poder de los recaudadores de la entidad, estarán sujetos a

verificaciones mediante arqueos periódicos.

Todo desembolso se efectuará mediante cheque, a la orden

del beneficiario y por el valor exacto de la obligación que

conste en los documentos comprobatorios.

Las personas autorizadas para girar cheque no tendrán

funciones de recaudación de recursos financieros, de

recepción de recursos materiales, de registro contable ni de

Page 24: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

24

autorización de gastos.

Las remuneraciones serán pagadas a los servidores con

cheques individuales o mediante depósitos directos en sus

cuentas corrientes o de ahorros.

Se cancelan deudas por medio de orden de pago bajo

autorización.

Administración de cheques

Casos de Uso

Diagrama de Casos de Uso

El diagrama de casos de uso se describe en el anexo B.

Descripción de Casos de Uso

Autenticación

Descripción: Se presenta a los usuarios una pantalla de

autenticación. Ellos introducen su nombre de usuario y

contraseña. A continuación, pueden pulsar sobre conectar

Page 25: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

25

o cancelar.

Condiciones previas: Ninguna.

Condiciones posteriores: Acceso al sistema.

Consultar estado de cuenta

Condiciones previas: Usuario ha sido autenticado y se

ha asignado el estatus (función o rol) de usuario.

Descripción: El recaudador consulta el estado de cuenta.

El recaudador introduce la información de búsqueda de la

deuda. Tras enviar la petición de búsqueda, se presenta al

recaudador el estado de cuenta que coincide con el criterio

de búsqueda.

Condiciones posteriores: Recaudador tiene la

posibilidad de imprimir su estado de cuenta.

Apertura de caja

Condiciones previas: Usuario ha sido autenticado y se

Page 26: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

26

ha asignado el estatus (función o rol) de usuario.

Descripción: Definir cual de los turnos de caja activar

para el registro de los movimientos.

Condiciones posteriores: El usuario, según el estatus,

realizará las tareas de recaudación o pagaduría.

Recaudar valores

Condiciones previas: Se ha iniciado la apertura de caja

para la tarea de recaudación.

Descripción: Recaudador procede al cobro de la deuda al

cliente haciendo uso de las diferentes formas de pago.

Condiciones posteriores: Se emite al cliente un

comprobante de pago que refleja la transacción, además

se registra la recaudación a través de un comprobante de

ingreso para control interno.

Page 27: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

27

Consultar pagos

Condiciones previas: Usuario ha sido autenticado y se

ha asignado el estatus (función o rol) de usuario.

Descripción: El Tesorero consulta los pagos. El usuario

introduce la información de búsqueda los pagos. Tras

enviar la petición de búsqueda se presenta los pagos que

coincide con el criterio de búsqueda.

Condiciones posteriores: El Tesorero tiene la posibilidad

de imprimir la consulta o generar el pago al proveedor.

Generación de pagos

Condiciones previas: El Tesorero ha realizado una

consulta de los valores adeudados a un proveedor.

Descripción: El Tesorero define el monto del abono, y la

forma de pago mediante la emisión de la orden de pago.

Condiciones posteriores: Emisión de cheque con la

información indicada en la orden de pago.

Page 28: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

28

1.1.1.2 Girar cheque

Condiciones previas: Generación y aprobación de orden

de pago por el Tesorero.

Descripción: Tesorero emite el cheque por el concepto y

valor exacto estipulado en la orden de pago.

Condiciones posteriores: Puede efectuarse el pago a

través del pagador.

Entrega de valores

Condiciones previas: Se realizó la apertura de caja

asignando al usuario la función de pagador.

Descripción: El pagador hace entrega del valor a

cancelar definiendo la forma de pago, por lo general a

través de cheques. Entregar, según el caso, el

comprobante de retención.

Condiciones posteriores: Se realiza un comprobante de

egreso para control interno.

Page 29: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

29

Anular cheque

Condiciones previas: Giro de cheque.

Descripción: El cheque retorna al departamento de

tesorería para su anulación realizada por el tesorero.

Condiciones posteriores: Ninguna.

Arqueo de caja

Condición previa: Realización de pagos y recaudación de

los valores.

Descripción: Recaudador o pagador realiza la

determinación de existencia física y comprobación de

igualdad con los saldos contables.

Condiciones posteriores: Reportes de existencia

contable.

Page 30: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

30

Cierre de caja

Condición previa: Realización de pagos y recaudación de

los valores.

Descripción: Recaudador o pagador realiza la

determinación de existencia física y comprobación de su

igualdad con los saldos contables al final del turno.

Condiciones posteriores: Cierre del turno actual, no se

permite registro de movimientos.

Depositar valores

Condiciones previas: Recaudación de los valores.

Descripción: Los ingresos recaudados en efectivo,

cheques, u otras formas de valor serán revisados,

depositados y registrados, por el tesorero, en la cuenta

corriente abierta a nombre de la entidad en un banco

oficial durante el curso del día de recaudación o máximo el

día hábil siguiente.

Condiciones posteriores: se recibe un comprobante de

Page 31: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

31

depósito de dicho banco.

Diagrama de Clases

El diagrama de casos de uso se describe en el anexo C.

CAPÍTULO 3

Page 32: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

32

DISEÑO

Escenarios

Autenticación: Todos los usuarios

1. Se ingresa el usuario.

2. Se ingresa la contraseña

3. El usuario envía una solicitud de autenticación al sistema.

4. Se valida la existencia del usuario

5. Se accede al sistema

Consultar estado de cuenta: Recaudador

1. Se pide identificación del cliente

2. Se valida la identificación del cliente

3. Se muestra de forma detallada el estado de cuenta.

Apertura de caja: Todos los usuarios

1. Especificar la caja y el turno a activar.

2. Validar que la caja y el turno no se encuentren activos.

Page 33: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

33

3. Indicar el monto inicial de la caja.

4. Asignar cajero.

5. Afirmación de la apertura.

6. Confirmación de la apertura.

7. Aceptación de la apertura.

Recaudar valores: Recaudador

1. Ingresar la identificación del cliente.

2. Seleccionar los ítems a cancelar.

3. Seleccionar las formas de pago.

4. Ingresar los valores de cada forma de pago.

5. Afirmación de pago.

6. Confirmación de pago.

7. Aceptación del pago.

8. Se actualiza el estado de cuenta.

9. Se emite comprobante de ingreso.

Consultar pagos: Tesorero

1. Se pide identificación del proveedor.

2. Se valida la identificación del proveedor.

3. Se muestra en forma detallada los valores adeudados.

Page 34: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

34

Generación de pagos: Tesorero

1. Ingresar la identificación del proveedor.

2. Seleccionar los ítems a cancelar.

3. Seleccionar las formas de pago.

4. Ingresar los valores de cada forma de pago.

5. Afirmación de la orden de pago.

6. Confirmación de la orden de pago.

7. Aceptación de la orden del pago.

8. Se actualiza estado de cuenta.

9. Se emite orden de pago aprobada.

Girar cheque: Tesorero

1. Consultar las ordenes de pago aprobadas.

2. Seleccionar orden de pago a cancelar.

3. Verificar datos del proveedor.

4. Verificar datos de los documentos a cancelar.

5. Realizar la emisión del cheque.

6. Aceptación de la emisión del cheque.

7. Confirmación de la emisión del cheque.

Page 35: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

35

Entrega de valores: Pagador

1. Ingresar la identificación del proveedor.

2. Seleccionar la orden de pago.

3. Ingresar beneficiario.

4. Afirmación de pago.

5. Confirmación de pago.

6. Aceptación del pago.

7. Se emite comprobante de egreso.

Anular cheque: Tesorero

1. Consultar cheques emitidos y no entregados al proveedor.

2. Seleccionar cheque a ser anulado.

3. Realizar la anulación del cheque.

4. Aceptación de la anulación del cheque.

5. Confirmar la anulación del cheque

6. Cambiar estado de orden de pago

Arqueo de caja: Todos los usuarios

1. Especificar la caja a consultar.

2. Validar si la caja esta activa.

3. Confirmación de que la caja está activa.

Page 36: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

36

4. Realizar conteo de los valores recaudados mediante los

comprobantes de ingreso.

5. Realizar conteo de valores pagados mediante los

comprobantes de egreso.

6. Emisión de reporte de existencias contables.

Cierre de caja: Todos los usuarios

1. Especificar la caja a cerrar.

2. Validar si la caja esta activa.

3. Confirmación de que la caja está activa.

4. Realizar conteo de los valores recaudados mediante los

comprobantes de ingreso.

5. Realizar conteo de valores pagados mediante los

comprobantes de egreso.

6. Emisión de reporte de existencias contables.

7. Cambiar estado de caja a inactiva o cerrada.

Depositar valores: Tesorero

1. Seleccionar la entidad bancaria y la cuenta contable.

2. Clasificar los valores recaudados de acuerdo a su forma de

pago.

Page 37: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

37

3. Realizar el conteo de los valores recaudados.

4. Autorización de depósito bancario.

5. Emitir informe de los valores recaudados.

Diagramas de secuencia

Autenticación: Todos los usuarios

Figura 3.2.1. Diagrama de secuencia de autenticación

Consultar estado de cuenta: Recaudador

Figura 3.2.2. Diagrama de secuencia de consulta estado de cuenta

Page 38: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

38

Apertura de caja: Todos los usuarios

Figura 3.2.3. Diagrama de secuencia de apertura de Caja

Recaudar valores: Recaudador

Figura 3.2.4 Diagrama de secuencia de recaudación valores

Page 39: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

39

Consultar pagos: Tesorero

Figura 3.2.5 Diagrama de secuencia de consulta de pagos

Generación de pagos: Tesorero

Figura 3.2.6 Diagrama de secuencia de generación de pagos

Girar cheque: Tesorero

Figura 3.2.7 Diagrama de secuencia de girar cheque

Page 40: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

40

Entrega de valores: Pagador

Figura 3.2.9 Diagrama de secuencia de entrega de valores

Anular cheque: Tesorero

Figura 3.2.9 Diagrama de secuencia de anular cheque

Page 41: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

41

Arqueo de caja: Todos los usuarios

Figura 3.2.10 Diagrama de secuencia de arqueo de cajaCierre de caja: Todos los usuarios

Figura 3.2.11 Diagrama de secuencia de cierre de caja

Depositar valores: Tesorero

Figura 3.2.12 Diagrama de secuencia de depósito de valores

Diagramas de actividad

Page 42: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

42

Autenticación: Todos los usuarios

Figura 3.3.1 Diagrama de actividad de autenticación

Consultar estado de cuenta: Recaudador

Figura 3.3.2 Diagrama de actividad de consulta estado de cuenta

Page 43: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

43

Apertura de caja: Todos los usuarios

Figura 3.3.3 Diagrama de actividad de apertura de caja

Page 44: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

44

Recaudar valores: Recaudador

Figura 3.3.4 Diagrama de actividad de recaudación valores

Page 45: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

45

Consultar pagos: Tesorero

Figura 3.3.5 Diagrama de actividad de consulta pagos

Generación de pagos: Tesorero

Figura 3.3.6 Diagrama de actividad de generación de pagos

Page 46: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

46

Girar cheque: Tesorero

Figura 3.3.7 Diagrama de actividad de girar cheque

Page 47: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

47

Entrega de valores: Pagador

Figura 3.3.8 Diagrama de actividad de entrega de valoresAnular cheque: Tesorero

Figura 3.3.9 Diagrama de actividad de anular cheque

Page 48: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

48

Arqueo de caja: Todos los usuarios

Figura 3.3.10 Diagrama de actividad de arqueo de caja

Cierre de caja: Todos los usuarios

Figura 3.3.11 Diagrama de actividad de cierre de caja

Page 49: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

49

Depositar valores: Tesorero

Figura 3.3.12 Diagrama de actividad de depositar valores

Prototipo de la interfaz

Autenticación

Figura 3.4.1 Prototipo para autenticación

Page 50: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

50

Comprobantes

Figura 3.4.2 Prototipo de comprobantes para pagos y cobros

Consultas

Figura 3.4.3 Prototipo para las consultas

Page 51: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

51

CAPÍTULO 4

Page 52: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

52

IMPLEMENTACIÓN

Modelo

Scripts de base de datos

Script para la creación de la base de datos:

CREATE DATABASE "TESORERIA" WITH OWNER = postgres ENCODING = 'UNICODE' TABLESPACE = pg_default;

Script para la creación de la tabla “Comprobante”:

CREATE TABLE "Comprobante"( "Id" int8 NOT NULL, "IdDocumento" int8 NOT NULL, "IdSucursal" int8 NOT NULL, "Secuencia" varchar(15) NOT NULL, "IdPersona" int8 NOT NULL, "Valor" float8 NOT NULL, "IdCajaTurno" int8 NOT NULL, "IdEstado" int8 NOT NULL, "FechaRegistro" varchar(10) NOT NULL, "HoraRegistro" varchar(8) NOT NULL, "Beneficiario" varchar(50), CONSTRAINT "Comprobante_pkey" PRIMARY KEY ("Id")) WITHOUT OIDS;ALTER TABLE "Comprobante" OWNER TO postgres;

Script para la creación de la tabla “ComprobanteItem”:

CREATE TABLE "ComprobanteItem"( "Id" int8 NOT NULL, "IdComprobante" int8 NOT NULL,

Page 53: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

53

"IdBitacora" int8 NOT NULL, "Saldo" float8 NOT NULL, "Abono" float8 NOT NULL, "Observacion" varchar(100), CONSTRAINT "ComprobanteItem_pkey1" PRIMARY KEY("IdComprobanteItem"), CONSTRAINT "ComprobanteItem_IdBitacora_fkey" FOREIGN KEY("IdBitacora") REFERENCES "Bitacora" ("IdBitacora") ON UPDATERESTRICT ON DELETE RESTRICT) WITHOUT OIDS;ALTER TABLE "ComprobanteItem" OWNER TO postgres;

Script para la creación de la tabla “Abono”:

CREATE TABLE "Abono"( "Id" int8 NOT NULL, "IdComprobante" int8 NOT NULL, "IdCatalogoValor" int8 NOT NULL, "IdBanco" int8 NOT NULL, "IdTarjetaCredito" int8 NOT NULL, "CuentaCorriente" varchar(15) NOT NULL, "Secuencia" varchar(15) NOT NULL, "FechaPlazo" varchar(10) NOT NULL, "Valor" float8 NOT NULL, "IdBitacora" int8 NOT NULL, "IdEstado" int8 NOT NULL, CONSTRAINT "Cobro_pkey" PRIMARY KEY ("IdAbono"), CONSTRAINT "Abono_IdBanco_fkey" FOREIGN KEY ("IdBanco") REFERENCES "Banco" ("IdBanco") ON UPDATE RESTRICT ON DELETERESTRICT, CONSTRAINT "Abono_IdComprobante_fkey" FOREIGN KEY("IdComprobante") REFERENCES "Comprobante" ("Id") ON UPDATERESTRICT ON DELETE RESTRICT, CONSTRAINT "Abono_IdEstado_fkey" FOREIGN KEY ("IdEstado")REFERENCES "Estado" ("IdEstado") ON UPDATE RESTRICT ON DELETERESTRICT, CONSTRAINT "Abono_IdTarjetaCredito_fkey" FOREIGN KEY("IdTarjetaCredito") REFERENCES "TarjetaCredito"("IdTarjetaCredito") ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT "Cobro_IdBitacoraCobro_fkey" FOREIGN KEY("IdBitacora") REFERENCES "Bitacora" ("IdBitacora") ON UPDATERESTRICT ON DELETE RESTRICT) WITHOUT OIDS;ALTER TABLE "Abono" OWNER TO postgres;

Entidades

Clase que modela la tabla “Comprobante”:

Page 54: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

54

package com.cisc.erp.be.tesoreria;import java.util.ArrayList;

public class Comprobante {private int IdComprobante;private String IdTipoDocumento;private String nombre;private int IdSucursal;private String Secuencia;private int IdPersona;private String Beneficiario;private float Valor;private float ValorAbono;private int IdCajaTurno;private int IdEstado;private String FechaRegistro;private String HoraRegistro;private ArrayList Items;private ArrayList Abonos;

public String getBeneficiario() {return Beneficiario;

}

public void setBeneficiario(String beneficiario) {Beneficiario = beneficiario;

}

public String getNombre() {if (IdTipoDocumento.equals("CI")){

this.nombre="COMPROBANTE DE INGRESO: ";}

if (IdTipoDocumento.equals("OPG")){this.nombre="ORDEN DE PAGO: ";

}

if (IdTipoDocumento.equals("CE")){this.nombre="COMPROBANTE DE EGRESO: ";

}

return this.nombre;}

public int getIdComprobante() {return IdComprobante;

}

public void setIdComprobante(int idComprobante) {IdComprobante = idComprobante;

}

public String getIdTipoDocumento() {return IdTipoDocumento;

}

Page 55: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

55

public void setIdTipoDocumento(String idTipoDocumento) {IdTipoDocumento = idTipoDocumento;

}

public int getIdSucursal() {return IdSucursal;

}

public void setIdSucursal(int idSucursal) {IdSucursal = idSucursal;

}

public String getSecuencia() {return Secuencia;

}

public void setSecuencia(String secuencia) {Secuencia = secuencia;

}

public int getIdPersona() {return IdPersona;

}

public void setIdPersona(int idPersona) {IdPersona = idPersona;

}

public int getIdEstado() {return IdEstado;

}

public void setIdEstado(int idEstado) {IdEstado = idEstado;

}

public int getIdCajaTurno() {return IdCajaTurno;

}

public void setIdCajaTurno(int idCajaTurno) {IdCajaTurno = idCajaTurno;

}

public float getValor() {this.Valor = 0.0f;

for (int i = 0; i < this.Items.size(); i++) {ComprobanteItem oItem = (ComprobanteItem)

this.Items.get(i);this.Valor = this.Valor + oItem.getAbono();

}return this.Valor;

}

public float getValorAbono() {

Page 56: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

56

this.ValorAbono = 0.0f;

for (int i = 0; i < this.Abonos.size(); i++) {Abono oItem = (Abono) this.Abonos.get(i);this.ValorAbono = this.ValorAbono +

oItem.getValor();}return this.ValorAbono;

}

public String getFechaRegistro() {return FechaRegistro;

}

public void setFechaRegistro(String fechaRegistro) {FechaRegistro = fechaRegistro;

}

public String getHoraRegistro() {return HoraRegistro;

}

public void setHoraRegistro(String horaRegistro) {HoraRegistro = horaRegistro;

}

public String informacionItem() {StringBuffer oStringBuffer = new StringBuffer();

for (int i = 0; i < this.Items.size(); i++) {ComprobanteItem oItem = (ComprobanteItem)

this.Items.get(i);

if (oItem.getAbono() > 0.0f){

oStringBuffer.append(oItem.getIdComprobanteItem() + "|" +oItem.getIdComprobante() + "|" + oItem.getIdBitacora() + "|" +oItem.getSaldo() + "|" + oItem.getAbono() + "|" +oItem.getObservacion() + "#");

}}return oStringBuffer.toString();

}

public String informacionAbono() {StringBuffer oStringBuffer = new StringBuffer();for (int i = 0; i < this.Abonos.size(); i++) {

Abono oItem = (Abono) this.Abonos.get(i);

if (oItem.getValor() > 0.0f){oStringBuffer.append(oItem.getIdAbono() + "|"

+ oItem.getIdComprobante() + "|" + oItem.getIdCatalogoValor() +"|" + oItem.getIdBanco() + "|" + oItem.getIdTarjetaCredito() +"|" + oItem.getCuentaCorriente() + "|" + oItem.getSecuencia() +"|" + oItem.getFechaPlazo() + "|" + oItem.getValor() + "|" +oItem.getIdBitacora() + "|" + oItem.getIdEstado() + "#");

Page 57: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

57

}}return oStringBuffer.toString();

}

public ArrayList getItems() {return this.Items;

}

public ArrayList getAbonos() {return this.Abonos;

}

public void agregarItem(ComprobanteItem oComprobanteItem){for(int i = 0; i < this.Items.size(); i++){

ComprobanteItem oItem =(ComprobanteItem)this.Items.get(i);

if(oItem.getIdBitacora() ==oComprobanteItem.getIdBitacora()){

oItem.setObservacion(oComprobanteItem.getObservacion());oItem.setAbono(oComprobanteItem.getAbono());return;

}}this.Items.add(oComprobanteItem);

}

public void agregarAbono(Abono oAbono){for(int i = 0; i < this.Abonos.size(); i++){

Abono oItem = (Abono)this.Abonos.get(i);

if(oItem.getIdentificador() ==oAbono.getIdentificador()){

oItem.setIdCatalogoValor(oAbono.getIdCatalogoValor());oItem.setIdBanco(oAbono.getIdBanco());

oItem.setIdTarjetaCredito(oAbono.getIdTarjetaCredito());

oItem.setCuentaCorriente(oAbono.getCuentaCorriente());oItem.setSecuencia(oAbono.getSecuencia());oItem.setFechaPlazo(oAbono.getFechaPlazo());oItem.setValor(oAbono.getValor());return;

}}this.Abonos.add(oAbono);

}

public void quitarItem(int IdBitacora){for(int i = 0; i < this.Items.size(); i++){

ComprobanteItem oItem =(ComprobanteItem)this.Items.get(i);

Page 58: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

58

if(oItem.getIdBitacora() == IdBitacora){this.Items.remove(oItem);return;

}}

}

public void quitarAbono(int identificador){for(int i = 0; i < this.Abonos.size(); i++){

Abono oItem = (Abono)this.Abonos.get(i);

if(oItem.getIdentificador() == identificador){this.Abonos.remove(oItem);return;

}}

}

public void agregarAbonoFinal(Abono oAbono){if ((IdComprobante == 0) && (Abonos.size()-1 ==

oAbono.getIdentificador()) && (oAbono.getValor() > 0.0f)) {Abono otroCobro = new Abono();

otroCobro.setIdentificador(oAbono.getIdentificador() + 1);agregarAbono(otroCobro);

}}

public Comprobante(){this.IdComprobante = 0;this.IdTipoDocumento = "";this.IdSucursal = 0;this.Secuencia = "0000000";this.IdPersona = 0;this.Beneficiario = "";this.IdCajaTurno = 0;this.Valor = 0;this.ValorAbono = 0;this.IdEstado = 0;this.FechaRegistro = new

java.text.SimpleDateFormat("yyyy-MM-dd").format(newjava.util.Date());

this.HoraRegistro = "00:00:00";this.Items = new ArrayList();this.Abonos = new ArrayList();

}

public Comprobante(int IdComprobante, StringIdTipoDocumento, int IdSucursal, String Secuencia, intIdPersona, String beneficiario, int IdCajaTurno, float Valor,float ValorAbono, int IdEstado, String FechaRegistro, StringHoraRegistro) {

this.IdComprobante = IdComprobante;this.IdTipoDocumento = IdTipoDocumento;this.IdSucursal = IdSucursal;this.Secuencia = Secuencia;this.IdPersona = IdPersona;

Page 59: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

59

this.Beneficiario = beneficiario;this.IdCajaTurno = IdCajaTurno;this.Valor = Valor;this.ValorAbono = ValorAbono;this.IdEstado = IdEstado;this.FechaRegistro = FechaRegistro;this.HoraRegistro = HoraRegistro;this.Items = new ArrayList();this.Abonos = new ArrayList();

}}

Clase que modela la tabla “ComprobanteItem”:

package com.cisc.erp.be.tesoreria;

public class ComprobanteItem {private int IdComprobanteItem;private int IdComprobante;private int IdBitacora;private float Saldo;private float Abono;private String Observacion;

public float getSaldo() {return Saldo;

}

public void setSaldo(float saldo) {Saldo = saldo;

}

public int getIdComprobanteItem() {return IdComprobanteItem;

}

public void setIdComprobanteItem(int idComprobanteItem) {IdComprobanteItem = idComprobanteItem;

}

public int getIdComprobante() {return IdComprobante;

}

public void setIdComprobante(int idComprobante) {IdComprobante = idComprobante;

}

public int getIdBitacora() {return IdBitacora;

}

public void setIdBitacora(int idBitacora) {

Page 60: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

60

IdBitacora = idBitacora;}

public float getAbono() {return Abono;

}

public void setAbono(float abono) {Abono = abono;

}

public String getObservacion() {return Observacion;

}

public void setObservacion(String observacion) {Observacion = observacion;

}

public ComprobanteItem(){this.IdComprobanteItem = 0;this.IdComprobante = 0;this.IdBitacora = 0;this.Saldo = 0;this.Abono = 0;this.Observacion = "Ninguna.";

}

public ComprobanteItem(int IdComprobanteItem,intIdComprobante,int IdBitacora, float Saldo, float Abono, StringObservacion){

this.IdComprobanteItem = IdComprobanteItem;this.IdComprobante = IdComprobante;this.IdBitacora = IdBitacora;this.Saldo = Saldo;this.Abono = Abono;this.Observacion = Observacion;

} }

Clase que modela la tabla “Abono”:

package com.cisc.erp.be.tesoreria;

public class Abono { private int IdAbono; private int IdComprobante; private int Identificador; private int IdCatalogoValor; private int IdBanco; private int IdTarjetaCredito; private String CuentaCorriente; private String Secuencia; private String FechaPlazo;

Page 61: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

61

private float Valor; private int IdBitacora; private int IdEstado;

public int getIdEstado() {return IdEstado;

}

public int getIdBitacora() {return IdBitacora;

}

public void setIdEstado(int idEstado) {IdEstado = idEstado;

}

public void setIdBitacora(int idBitacoraCobro) {IdBitacora = idBitacoraCobro;

}

public int getIdAbono() {return IdAbono;

}

public int getIdComprobante() {return IdComprobante;

}

public int getIdentificador() {return Identificador;

}

public void setIdentificador(int identificador) {Identificador = identificador;

}

public int getIdCatalogoValor() {return IdCatalogoValor;

}

public int getIdBanco() {return IdBanco;

}

public int getIdTarjetaCredito() {return IdTarjetaCredito;

}

public String getCuentaCorriente() {return CuentaCorriente;

}

public String getSecuencia() {return Secuencia;

}

Page 62: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

62

public String getFechaPlazo() {return FechaPlazo;

}

public float getValor() {return Valor;

}

public void setCuentaCorriente(String cuentaCorriente) {CuentaCorriente = cuentaCorriente.trim();

}

public void setFechaPlazo(String fechaPlazo) {FechaPlazo = fechaPlazo.trim();

}

public void setIdBanco(int idBanco) {IdBanco = idBanco;

}

public void setIdCatalogoValor(int idCatalogoValor) {IdCatalogoValor = idCatalogoValor;

}

public void setIdAbono(int idCobro) {IdAbono = idCobro;

}

public void setIdComprobante(int idComprobanteIngreso) {IdComprobante = idComprobanteIngreso;

}

public void setIdTarjetaCredito(int idTarjetaCredito) {IdTarjetaCredito = idTarjetaCredito;

}

public void setSecuencia(String secuencia) {Secuencia = secuencia.trim();

}

public void setValor(float valor) {Valor = valor;

}

public Abono(){ this.IdAbono = 0; this.IdComprobante = 0; this.Identificador = 0; this.IdCatalogoValor = 2; this.IdBanco = 0; this.IdTarjetaCredito = 0; this.CuentaCorriente = ""; this.Secuencia = ""; this.FechaPlazo = new

java.text.SimpleDateFormat("yyyy-MM-dd").format(newjava.util.Date());

Page 63: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

63

this.Valor = 0.0f; this.IdBitacora = 0; this.IdEstado = 1;

}

public Abono(int idCobro, int idComprobanteIngreso, intidentificador, int idCatalogoValor, int idBanco, intidTarjetaCredito, String cuentaCorriente, String secuencia,String fechaPlazo, float valor, int idBitacoraCobro, intidEstado) {

this.IdAbono = idCobro; this.IdComprobante = idComprobanteIngreso; this.Identificador = identificador; this.IdCatalogoValor = idCatalogoValor; this.IdBanco = idBanco; this.IdTarjetaCredito = idTarjetaCredito; this.CuentaCorriente = cuentaCorriente.trim(); this.Secuencia = secuencia.trim(); this.FechaPlazo = fechaPlazo.trim(); this.Valor = valor; this.IdBitacora = idBitacoraCobro; this.IdEstado = idEstado;

} }

Conexión a base de datos

Clase que contiene la conexión a la base de datos:

package com.cisc.erp.dao.tesoreria;

import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class Conexion {private static String error;private static Connection conexion = null;

public Conexion(){super();

}

public static Connection getConnection() throwsClassNotFoundException, SQLException{

try {if ((conexion == null)||(conexion.isClosed())) {

Class.forName("org.postgresql.Driver");//Class.forName("org.postgresql.Driver").newInstan

ce();conexion =

DriverManager.getConnection("jdbc:postgresql://SERVIDOR/TESORERIA","postgres","roca");

Page 64: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

64

conexion.setAutoCommit(true);}

} catch (ClassNotFoundException cnfe) {error = "ClassNotFoundException: Localición fallida del

driver de conexión.";throw new ClassNotFoundException(error);

} catch (SQLException cnfe) {error = cnfe.toString();throw new SQLException(error);

}return conexion;}

public static Connection getConnection(String usuario,String contrasena) throws ClassNotFoundException, SQLException {

try{if((conexion == null)||(conexion.isClosed())){

Class.forName("org.postgresql.Driver");conexion =

DriverManager.getConnection("jdbc:postgresql://localhost/TESORERIA", usuario, contrasena);

conexion.setAutoCommit(true);}

} catch (ClassNotFoundException cnfe) {error = "ClassNotFoundException: Localición

fallida del driver de conexión.";throw new ClassNotFoundException(error);

} catch (SQLException cnfe) {error = cnfe.toString();throw new SQLException(error);

}return conexion;}

public static void disconnect() throws SQLException {try {

if ( conexion != null ) {conexion.close();

}}catch (SQLException sqle) {

error = ("SQLException: Unable to close thedatabase connection.");

throw new SQLException(error);}

} }

Excepciones

Clase que maneja las excepciones:

package com.cisc.erp.exception.tesoreria;

Page 65: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

65

public class TesoreriaException extends Exception {

private String usuario = "null";private String mensaje = "";

public String toString () {return (super.toString() + mensaje);

}

public TesoreriaException () {}

public TesoreriaException (String msg) {super(msg);mensaje = "";

}

public TesoreriaException (String msg, String usuario) {super(msg);this.setUsuario(usuario);mensaje = ": The user is " + this.getUsuario();

}

public void setUsuario (String value){if (value == null){

value = "null";}usuario = value;

}

public String getUsuario (){return usuario;

}

}

Objetos de acceso a datos

Clase que maneja el acceso a datos para los comprobantes:

package com.cisc.erp.dao.tesoreria;import java.sql.*;import java.util.ArrayList;

import com.cisc.erp.be.tesoreria.*;import com.cisc.erp.exception.tesoreria.TesoreriaException;

public class ComprobanteDao {private Connection con = null;

public ComprobanteDao(Connection con) {this.con = con;

}

Page 66: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

66

public void insertar(Comprobante oComprobante)throwsSQLException, Exception { if (con != null){

PreparedStatement oPreparedStatement;oPreparedStatement =

con.prepareStatement("SELECT \"insertarComprobante\"(?,?,?,?,?,?,?,?,?);");

oPreparedStatement.setString(1,oComprobante.getIdTipoDocumento());

oPreparedStatement.setInt(2, oComprobante.getIdSucursal());oPreparedStatement.setString(3,

oComprobante.getSecuencia());oPreparedStatement.setInt(4, oComprobante.getIdPersona());

oPreparedStatement.setString(5,oComprobante.getBeneficiario());

oPreparedStatement.setInt(6,oComprobante.getIdCajaTurno());

oPreparedStatement.setFloat(7,oComprobante.getValor());

oPreparedStatement.setString(8,oComprobante.informacionItem());

oPreparedStatement.setString(9,oComprobante.informacionAbono());

oPreparedStatement.execute();}else{

throw new TesoreriaException ("Exception:Connection to database was lost.");

}}

public Comprobante seleccionar(String idComprobante) throwsSQLException, Exception {

Comprobante oComprobante = new Comprobante();ResultSet rs = null;ResultSet rs2 = null;String queryString = ("SELECT *

FROM \"seleccionarComprobante\"('" + idComprobante + "');");Statement stmt = con.createStatement();rs = stmt.executeQuery(queryString);while (rs.next()) {

oComprobante.setIdComprobante(rs.getInt("IdComprobante"));

oComprobante.setIdTipoDocumento(rs.getString("IdTipoDocumento"));

oComprobante.setIdSucursal(rs.getInt("IdSucursal"));

oComprobante.setSecuencia(rs.getString("Secuencia"));

oComprobante.setIdPersona(rs.getInt("IdPersona"));

oComprobante.setBeneficiario(rs.getString("Beneficiario"));

Page 67: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

67

oComprobante.setIdCajaTurno(rs.getInt("IdCajaTurno")); oComprobante.setIdEstado(rs.getInt("IdEstado"));

oComprobante.setFechaRegistro(rs.getString("FechaRegistro"));

oComprobante.setHoraRegistro(rs.getString("HoraRegistro"));

queryString = ("SELECT *FROM \"seleccionarComprobanteItem\"('" +oComprobante.getIdComprobante() + "');"); stmt = con.createStatement(); rs2 = stmt.executeQuery(queryString); while (rs2.next()) {

ComprobanteItem oComprobanteItem = new ComprobanteItem();

oComprobanteItem.setIdComprobanteItem(rs2.getInt("IdComprobanteItem"));

oComprobanteItem.setIdComprobante(rs2.getInt("IdComprobante"));

oComprobanteItem.setIdBitacora(rs2.getInt("IdBitacora"));

oComprobanteItem.setSaldo(rs2.getFloat("Saldo"));

oComprobanteItem.setAbono(rs2.getFloat("Abono"));

oComprobanteItem.setObservacion(rs2.getString("Observacion"));

oComprobante.agregarItem(oComprobanteItem); } rs2.close(); queryString = ("SELECT *

FROM \"seleccionarAbono\"(" + oComprobante.getIdComprobante() +");");

stmt = con.createStatement(); rs2 = stmt.executeQuery(queryString); int i = 1; while (rs2.next()) { Abono oCobro = new Abono(); oCobro.setIdAbono(rs2.getInt("IdAbono"));

oCobro.setIdComprobante(rs2.getInt("IdComprobante")); oCobro.setIdentificador(i);

oCobro.setIdCatalogoValor(rs2.getInt("IdCatalogoValor")); oCobro.setIdBanco(rs2.getInt("IdBanco"));

oCobro.setIdTarjetaCredito(rs2.getInt("IdTarjetaCredito"));

oCobro.setCuentaCorriente(rs2.getString("CuentaCorriente")); oCobro.setSecuencia(rs2.getString("Secuencia"));

oCobro.setFechaPlazo(rs2.getString("FechaPlazo")); oCobro.setValor(rs2.getFloat("Valor"));

Page 68: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

68

oCobro.setIdBitacora(rs2.getInt("IdBitacora")); oCobro.setIdEstado(rs2.getInt("IdEstado")); oComprobante.agregarAbono(oCobro); i++; } rs2.close(); } rs.close(); return oComprobante;

}

public void actualizar(Comprobante oComprobante) throwsSQLException, Exception{

if (con != null){PreparedStatement oPreparedStatement;oPreparedStatement =

con.prepareStatement("SELECT \"actualizarComprobante\"(?,?,?,?,?,?,?,?,?,?);");oPreparedStatement.setInt(1, oComprobante.getIdComprobante());

oPreparedStatement.setString(2,oComprobante.getIdTipoDocumento());

oPreparedStatement.setInt(3,oComprobante.getIdSucursal());

oPreparedStatement.setString(4,oComprobante.getSecuencia());

oPreparedStatement.setInt(5,oComprobante.getIdPersona());

oPreparedStatement.setString(6,oComprobante.getBeneficiario());

oPreparedStatement.setFloat(7,oComprobante.getValor());

oPreparedStatement.setInt(8,oComprobante.getIdEstado());

oPreparedStatement.setString(9,oComprobante.informacionItem());

oPreparedStatement.setString(10,oComprobante.informacionAbono());

oPreparedStatement.execute();}else{

throw new TesoreriaException ("Exception:Connection to database was lost.");

}}

public void eliminar(int idComprobante) throws SQLException,Exception{

if (con != null){PreparedStatement oPreparedStatement;oPreparedStatement =

con.prepareStatement("SELECT \"eliminarComprobante\"(?);"); oPreparedStatement.setInt(1, idComprobante); oPreparedStatement.execute();

}else{throw new TesoreriaException ("Exception:

Connection to database was lost."); }}

Page 69: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

69

public ArrayList busqueda(String tipoDocumento, Stringsecuencia, String fechaInicio, String fechaFin, String rucCi,String apellidos, String nombres) throws SQLException, Exception{

ArrayList comprobantes = new ArrayList();ResultSet rs = null;ResultSet rs2 = null;String queryString = ("SELECT *

FROM \"buscarComprobante\"('" + tipoDocumento + "','" +secuencia + "','" + fechaInicio + "','" + fechaFin + "','" +rucCi + "','" + apellidos + "','" + nombres + "');");

Statement stmt = con.createStatement();rs = stmt.executeQuery(queryString);while (rs.next()) {

Comprobante oComprobante = new Comprobante();oComprobante.setIdComprobante(rs.getInt("IdComprobante"));

oComprobante.setIdTipoDocumento(rs.getString("IdTipoDocumento"));

oComprobante.setIdSucursal(rs.getInt("IdSucursal"));

oComprobante.setSecuencia(rs.getString("Secuencia"));oComprobante.setIdPersona(rs.getInt("IdPersona"));

oComprobante.setBeneficiario(rs.getString("Beneficiario"));

oComprobante.setIdCajaTurno(rs.getInt("IdCajaTurno"));oComprobante.setIdEstado(rs.getInt("IdEstado"));

oComprobante.setFechaRegistro(rs.getString("FechaRegistro"));

oComprobante.setHoraRegistro(rs.getString("HoraRegistro"));

queryString = ("SELECT *FROM \"seleccionarComprobanteItem\"('" +oComprobante.getIdComprobante() + "');");

stmt = con.createStatement();rs2 = stmt.executeQuery(queryString);while (rs2.next()) {

ComprobanteItem oComprobanteItem = newComprobanteItem();

oComprobanteItem.setIdComprobanteItem(rs2.getInt("IdComprobanteItem"));

oComprobanteItem.setIdComprobante(rs2.getInt("IdComprobante"));

oComprobanteItem.setIdBitacora(rs2.getInt("IdBitacora"));

Page 70: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

70

oComprobanteItem.setSaldo(rs2.getFloat("Saldo"));oComprobanteItem.setAbono(rs2.getFloat("Abono"));

oComprobanteItem.setObservacion(rs2.getString("Observacion"));oComprobante.agregarItem(oComprobanteItem);

}rs2.close();

queryString = ("SELECT *FROM \"seleccionarAbono\"("+ oComprobante.getIdComprobante() +");");

stmt = con.createStatement();rs2 = stmt.executeQuery(queryString);int i = 1;while (rs2.next()) {

Abono oCobro = new Abono();oCobro.setIdAbono(rs2.getInt("IdAbono"));

oCobro.setIdComprobante(rs2.getInt("IdComprobante"));oCobro.setIdentificador(i);

oCobro.setIdCatalogoValor(rs2.getInt("IdCatalogoValor"));oCobro.setIdBanco(rs2.getInt("IdBanco"));

oCobro.setIdTarjetaCredito(rs2.getInt("IdTarjetaCredito"));

oCobro.setCuentaCorriente(rs2.getString("CuentaCorriente"));

oCobro.setSecuencia(rs2.getString("Secuencia"));

oCobro.setFechaPlazo(rs2.getString("FechaPlazo"));oCobro.setValor(rs2.getFloat("Valor"));

oCobro.setIdBitacora(rs2.getInt("IdBitacora"));oCobro.setIdEstado(rs2.getInt("IdEstado"));oComprobante.agregarAbono(oCobro);i++;

}rs2.close();comprobantes.add(oComprobante);

}rs.close();return comprobantes;

}}

Funciones de base de datos

Función para insertar un comprobante a la base:

CREATE OR REPLACE FUNCTION "insertarComprobante"(idDocumentoint8, idSucursal int8, secuencia2 varchar, idPersona int8,beneficiario varchar, idCajaTurno int8, valor float8, items

Page 71: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

71

text, abonos text)RETURNS void AS$BODY$DECLARE /* Variables para comprobante. */ idComprobante "Comprobante"."Id"%TYPE; idComprobanteItem "ComprobanteItem"."IdComprobanteItem"%TYPE; secuencia "Comprobante"."Secuencia"%TYPE; idAbono "Abono"."IdAbono"%TYPE;

/* Variables operativas. */ texto text; delimitador text; campo integer;

/* Variables para documentos afectados. */ idBitacora "ComprobanteItem"."IdBitacora"%TYPE; saldo "ComprobanteItem"."Saldo"%TYPE; abono "ComprobanteItem"."Abono"%TYPE; observacion "ComprobanteItem"."Observacion"%TYPE;

/* Variables para cobros. */ idCatalogoValor "Abono"."IdCatalogoValor"%TYPE; idBanco "Abono"."IdBanco"%TYPE; idTarjetaCredito "Abono"."IdTarjetaCredito"%TYPE; cuentaCorriente "Abono"."CuentaCorriente"%TYPE; secuenciaAbono "Abono"."Secuencia"%TYPE; fechaPlazo "Abono"."FechaPlazo"%TYPE; valorAbono "Abono"."Valor"%TYPE; idBitacoraAbono "Abono"."IdBitacora"%TYPE;BEGIN idComprobante:=(SELECT MAX("Id") + 1 FROM "Comprobante");

IF idComprobante IS NULL THEN idComprobante:=1; END IF;

secuencia :=(SELECT "generarSecuencia"(idDocumento,idSucursal));

INSERT INTO "Comprobante" ( "Id", "IdDocumento", "IdSucursal", "Secuencia", "IdPersona", "Valor", "IdCajaTurno", "IdEstado", "FechaRegistro", "HoraRegistro", "Beneficiario" ) VALUES (

Page 72: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

72

idComprobante, idDocumento, idSucursal, secuencia, idPersona, valor, idCajaTurno, 1, CURRENT_DATE, LOCALTIME(0), beneficiario);

/* Inserción de los documentos afectados.*/ campo:=0; LOOP idComprobanteItem:=(SELECT MAX("IdComprobanteItem") FROM"ComprobanteItem") + 1;

IF idComprobanteItem IS NULL THEN idComprobanteItem:=1; END IF;

campo:= campo + 1; delimitador:='#'; SELECT "Token"(items, delimitador, campo) INTO texto; IF texto <> '' THEN

delimitador:='|';

SELECT CAST("Token"(texto, delimitador, 3) AS int8) INTOidBitacora;

SELECT CAST("Token"(texto, delimitador, 4) AS float8) INTOsaldo;

SELECT CAST("Token"(texto, delimitador, 5) AS float8) INTOabono;

SELECT CAST("Token"(texto, delimitador, 6) AS varchar) INTOobservacion;

INSERT INTO "ComprobanteItem" ( "IdComprobanteItem", "IdComprobante", "IdBitacora",

"Saldo", "Abono", "Observacion" ) VALUES ( idComprobanteItem, idComprobante, idBitacora,

saldo, abono, observacion ); ELSE

EXIT;

Page 73: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

73

END IF; END LOOP;

/* Inserción de los cobros.*/ campo:=0; LOOP idAbono:=(SELECT MAX("IdAbono") FROM "Abono") + 1;

IF idAbono IS NULL THEN idAbono:=1; END IF;

campo:= campo + 1; delimitador:='#'; SELECT "Token"(abonos, delimitador, campo) INTO texto; IF texto <> '' THEN

delimitador:='|';

SELECT CAST("Token"(texto, delimitador, 3) AS int8) INTOidCatalogoValor;

SELECT CAST("Token"(texto, delimitador, 4) AS int8) INTOidBanco;

SELECT CAST("Token"(texto, delimitador, 5) AS int8) INTOidTarjetaCredito;

SELECT CAST("Token"(texto, delimitador, 6) AS varchar) INTOcuentaCorriente;

SELECT CAST("Token"(texto, delimitador, 7) AS varchar) INTOsecuenciaAbono;

SELECT CAST("Token"(texto, delimitador, 8) AS varchar) INTOfechaPlazo;

SELECT CAST("Token"(texto, delimitador, 9) AS float8) INTOvalorAbono; SELECT CAST("Token"(texto, delimitador, 10) AS int8) INTOidBitacoraAbono;

INSERT INTO "Abono" (

"IdAbono","IdComprobante","IdCatalogoValor","IdBanco","IdTarjetaCredito","CuentaCorriente","Secuencia","FechaPlazo","Valor",

"IdBitacora", "IdEstado" ) VALUES (

idAbono, idComprobante,

idCatalogoValor,idBanco,idTarjetaCredito,

Page 74: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

74

cuentaCorriente,secuenciaAbono,fechaPlazo,valorAbono,

idBitacoraAbono, 1 ); ELSE

EXIT; END IF; END LOOP;

RETURN;END;$BODY$LANGUAGE 'plpgsql' VOLATILE;

Función para seleccionar un comprobante:

CREATE OR REPLACE FUNCTION "seleccionarComprobante"(int8) RETURNS SETOF "Comprobante" AS$BODY$ SELECT

"Id","IdDocumento","IdSucursal","Secuencia","IdPersona","Valor","IdCajaTurno","IdEstado","FechaRegistro","HoraRegistro","Beneficiario"

FROM"Comprobante"

WHERE"Id" LIKE $1 AND"IdEstado" = 1;

$BODY$ LANGUAGE 'sql' VOLATILE;

Función para seleccionar los items del comprobante:

CREATE OR REPLACE FUNCTION "seleccionarComprobanteItem"(int8) RETURNS SETOF "ComprobanteItem" AS$BODY$ SELECT

"IdComprobanteItem","IdComprobante","IdBitacora",

Page 75: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

75

"Saldo","Abono","Observacion"

FROM"ComprobanteItem"

WHERE"IdComprobante" LIKE $1;

$BODY$ LANGUAGE 'sql' VOLATILE;

Función para seleccionar las formas de pago de un comprobante:

CREATE OR REPLACE FUNCTION "seleccionarAbono"(int8) RETURNS SETOF "Abono" AS$BODY$ SELECT

"IdAbono","IdComprobante","IdCatalogoValor","IdBanco","IdTarjetaCredito","CuentaCorriente","Secuencia","FechaPlazo","Valor",

"IdBitacora", "IdEstado" FROM

"Abono" WHERE

"IdComprobante" = $1;$BODY$ LANGUAGE 'sql' VOLATILE;

Función para buscar un comprobante por medio de varios

criterios:

CREATE OR REPLACE FUNCTION "buscarComprobante"("varchar","varchar", "varchar", "varchar", "varchar", "varchar","varchar") RETURNS SETOF "Comprobante" AS$BODY$ SELECT DISTINCT ON (a."Id")

a."Id",a."IdDocumento",a."IdSucursal",a."Secuencia",a."IdPersona",

Page 76: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

76

a."Valor",a."IdCajaTurno",a."IdEstado",a."FechaRegistro",a."HoraRegistro",a."Beneficiario"

FROM"Comprobante" a, "ComprobanteItem" b, "Bitacora" c,

"Documento" d WHERE

a."Id" = b."IdComprobante" ANDa."IdDocumento" = d."Id" ANDb."IdBitacora" = c."IdBitacora" ANDUPPER(d."Sigla") LIKE LTRIM(UPPER($1)) ANDa."Secuencia" LIKE '%' || LTRIM($2) || '%' ANDa."FechaRegistro" BETWEEN CAST ($3 AS Date ) AND CAST ($4 AS

Date ) ANDc."RucCi" LIKE '%' || LTRIM($5) || '%' ANDUPPER(c."Apellidos") LIKE '%' || LTRIM(UPPER($6)) || '%' AND(UPPER(c."Nombres") LIKE '%' || LTRIM(UPPER($7)) || '%' OR

c."Nombres" IS NULL);$BODY$ LANGUAGE 'sql' VOLATILE;

Función para actualizar un comprobante:

CREATE OR REPLACE FUNCTION "actualizarComprobante"(idComprobanteint8, idDocumento int8, idSucursal int8, secuencia varchar,idPersona int8, beneficiario varchar, valor float8, idEstadoint8, items text, abonos text)RETURNS void AS$BODY$DECLARE /* Variables operativas. */ texto text; delimitador text; campo integer;

/* Variables para documentos afectados. */ idComprobanteItem "ComprobanteItem"."IdComprobanteItem"%TYPE; idBitacora "ComprobanteItem"."IdBitacora"%TYPE; saldo "ComprobanteItem"."Saldo"%TYPE; abono "ComprobanteItem"."Abono"%TYPE; observacion "ComprobanteItem"."Observacion"%TYPE;

/* Variables para cobros. */ idAbono "Abono"."IdAbono"%TYPE; idCatalogoValor "Abono"."IdCatalogoValor"%TYPE; idBanco "Abono"."IdBanco"%TYPE; idTarjetaCredito "Abono"."IdTarjetaCredito"%TYPE; cuentaCorriente "Abono"."CuentaCorriente"%TYPE; secuenciaAbono "Abono"."Secuencia"%TYPE; fechaPlazo "Abono"."FechaPlazo"%TYPE;

Page 77: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

77

valorAbono "Abono"."Valor"%TYPE; idBitacoraAbono "Abono"."IdBitacora"%TYPE; idEstadoAbono "Abono"."IdEstado"%TYPE;BEGIN /* Actualización de comprobante. */ UPDATE

"Comprobante" SET

"IdDocumento" = idDocumento,"IdSucursal" = idSucursal,"Secuencia" = secuencia,"IdPersona" = idPersona,"Valor" = valor,"IdEstado" = idEstado,"Beneficiario" = beneficiario

WHERE"Id" = idComprobante;

/* Actualización de los documentos afectados. */ campo:=0; LOOP campo:= campo + 1; delimitador:='#'; SELECT "Token"(items, delimitador, campo) INTO texto; IF texto <> '' THEN

delimitador:='|';

SELECT CAST("Token"(texto, delimitador, 1) AS int8) INTOidComprobanteItem;

SELECT CAST("Token"(texto, delimitador, 3) AS int8) INTOidBitacora;

SELECT CAST("Token"(texto, delimitador, 4) AS float8) INTOsaldo;

SELECT CAST("Token"(texto, delimitador, 5) AS float8) INTOabono;

SELECT CAST("Token"(texto, delimitador, 6) AS varchar) INTOobservacion;

UPDATE "ComprobanteItem"

SET "IdBitacora" = idBitacora, "Saldo" = saldo, "Abono" = abono, "Observacion" = observacion

WHERE "IdComprobanteItem" = idComprobanteItem;

ELSE EXIT; END IF; END LOOP;

/* Actualización de los cobros. */ campo:=0; LOOP campo:= campo + 1;

Page 78: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

78

delimitador:='#'; SELECT "Token"(abonos, delimitador, campo) INTO texto; IF texto <> '' THEN

delimitador:='|';

SELECT CAST("Token"(texto, delimitador, 1) AS int8) INTOidAbono;

SELECT CAST("Token"(texto, delimitador, 3) AS int8) INTOidCatalogoValor;

SELECT CAST("Token"(texto, delimitador, 4) AS int8) INTOidBanco;

SELECT CAST("Token"(texto, delimitador, 5) AS int8) INTOidTarjetaCredito;

SELECT CAST("Token"(texto, delimitador, 6) AS varchar) INTOcuentaCorriente;

SELECT CAST("Token"(texto, delimitador, 7) AS varchar) INTOsecuenciaAbono;

SELECT CAST("Token"(texto, delimitador, 8) AS varchar) INTOfechaPlazo;

SELECT CAST("Token"(texto, delimitador, 9) AS float8) INTOvalorAbono;

SELECT CAST("Token"(texto, delimitador, 10) AS int8) INTOidBitacoraAbono;

SELECT CAST("Token"(texto, delimitador, 11) AS int8) INTOidEstadoAbono;

UPDATE"Abono"

SET"IdCatalogoValor" = idCatalogoValor,"IdBanco" = idBanco,"IdTarjetaCredito" = idTarjetaCredito,"CuentaCorriente" = cuentaCorriente,"Secuencia" = secuenciaAbono,"FechaPlazo" = fechaPlazo,"Valor" = valorAbono,

"IdBitacora" = idBitacoraAbono, "IdEstado" = idEstadoAbono

WHERE"IdAbono" = idAbono;

ELSE EXIT; END IF; END LOOP; RETURN;END;$BODY$LANGUAGE 'plpgsql' VOLATILE;

Función para eliminar un comprobante de la base:

CREATE OR REPLACE FUNCTION "eliminarComprobante"(idComprobamte

Page 79: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

79

int8) RETURNS void AS$BODY$BEGIN DELETE FROM "ComprobanteItem" WHERE "IdComprobante" =idComprobamte; DELETE FROM "Abono" WHERE "IdComprobante" = idComprobamte; DELETE FROM "Comprobante" WHERE "Id" = idComprobamte; RETURN;END;$BODY$ LANGUAGE 'plpgsql' VOLATILE;

Objetos de negocio

Clase que maneja la lógica de negocios del comprobante:

package com.cisc.erp.bo.tesoreria;

import com.cisc.erp.be.tesoreria.*;import com.cisc.erp.dao.tesoreria.*;import com.cisc.erp.exception.tesoreria.*;import java.sql.Connection;import java.sql.SQLException;import java.util.ArrayList;

public class ComprobanteBo {

public void guardar(Comprobante oComprobante) throwsException, SQLException{

/* Determinar insertar o modificar. */if (oComprobante.getIdComprobante() == 0) {

insertar(oComprobante);} else {

actualizar(oComprobante);}

}

private void insertar(Comprobante oComprobante) throwsException, SQLException{

ArrayList documentosDescargados= null;validar(oComprobante);separarItem(oComprobante);documentosDescargados = descargar(oComprobante);Connection con = null;try {

con = Conexion.getConnection();BitacoraDao oBitacoraCobroDao = new

BitacoraDao(con);ComprobanteDao oComprobanteDao = new

ComprobanteDao(con);oComprobanteDao.insertar(oComprobante);

Page 80: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

80

for (int i = 0; i < documentosDescargados.size();i++) {

oBitacoraCobroDao.actualizar((Bitacora)documentosDescargados.get(i));

}con.commit();

} catch (Exception e) {if (con != null) {

con.rollback();throw new TesoreriaException(e.getMessage());

}} finally {

if (con != null) {con.close();

} }

}

public Comprobante seleccionar(String IdComprobante) throwsException, SQLException{

Comprobante oComprobante;Connection con = null;try {

con = Conexion.getConnection();ComprobanteDao oComprobanteDao = new

ComprobanteDao(con);oComprobante =

oComprobanteDao.seleccionar(IdComprobante);} catch (Exception e) {

throw new TesoreriaException(e.getMessage());} finally {

if (con != null) {con.close();

}}return oComprobante;

}

private void actualizar(Comprobante oComprobante) throwsException, SQLException{

validar(oComprobante);Connection con = null;try {

con = Conexion.getConnection();ComprobanteDao oComprobanteDao = new

ComprobanteDao(con);oComprobanteDao.actualizar(oComprobante);con.commit();

} catch (Exception e) {if (con != null) {

con.rollback();throw new TesoreriaException(e.getMessage());}

Page 81: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

81

} finally {if (con != null) {

con.close();}

}}

public void eliminar(int IdComprobante) throws Exception,SQLException{

Connection con = null;try {

con = Conexion.getConnection();ComprobanteDao oComprobanteDao = new

ComprobanteDao(con);oComprobanteDao.eliminar(IdComprobante);con.commit();} catch (Exception e) {if (con != null) {

con.rollback();throw new TesoreriaException(e.getMessage());

}} finally {

if (con != null) {con.close();

}}

}

private void validar(Comprobante oComprobante) throwsException, NullPointerException {

ArrayList oItems = null;BitacoraBo oBitacoraBo = null;CatalogoValorBo oCatalogoValorBo = null;

/* Validación de cabecera comprobante. */if (oComprobante.getValor() == 0.0f) {

throw new TesoreriaException("Cabeceracomprobante: Documento vacío...");

}

if (oComprobante.getIdTipoDocumento().equals("")) {throw new TesoreriaException("Cabecera

comprobante: Falta tipo documento...");}

if (oComprobante.getIdSucursal() == 0) {throw new TesoreriaException("Cabecera

comprobante: Falta sucursal...");}

if (oComprobante.getIdPersona() == 0) {throw new TesoreriaException("Cabecera

comprobante: Falta persona...");}

if (oComprobante.getValorAbono() == 0.0f) {throw new TesoreriaException("Cabecera

Page 82: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

82

comprobante: Falta valor del cobro...");}

if (oComprobante.getValor() !=oComprobante.getValorAbono()) {

throw new TesoreriaException("Deuda cancelada debeser igual al valor abonado...");

}

if (oComprobante.getIdCajaTurno() == 0) {throw new TesoreriaException("Cabecera

comprobante: Falta de turno...");}

/* Validación de documentos deudores del comprobante.*/

oItems = oComprobante.getItems(); oBitacoraBo = new BitacoraBo();

for (int i = 0; i < oItems.size(); i++) {ComprobanteItem oComprobanteItem =

(ComprobanteItem) oItems.get(i);Bitacora oBitacora =

oBitacoraBo.seleccionar(oComprobanteItem.getIdBitacora());/* Valido sólo aquellos documentos que han

abonado. */if (oComprobanteItem.getAbono() > 0) {

if (oBitacora.getCredito() == 2){if (oBitacora.getTotal() !=

oComprobanteItem.getAbono()){throw new

TesoreriaException("Deuda debe ser cancelada al contado...");}

}}

}

oItems = oComprobante.getAbonos();oCatalogoValorBo = new CatalogoValorBo();

for (int i = 0; i < oItems.size(); i++) {Abono oAbono = (Abono) oItems.get(i);CatalogoValor oCatalogo =

oCatalogoValorBo.seleccionar(oAbono.getIdCatalogoValor());

if (oAbono.getValor() > 0.0f) {if ((oAbono.getIdCatalogoValor() == 1) ||

(oAbono.getIdCatalogoValor() == 5) ||(oAbono.getIdCatalogoValor() == 6) ||(oAbono.getIdCatalogoValor() == 7) ||(oAbono.getIdCatalogoValor() == 8) ||(oAbono.getIdCatalogoValor() == 9)) {

if (oAbono.getIdBanco() != 0) {

Page 83: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

83

throw newTesoreriaException(oCatalogo.getNombre() + ": No especificarbanco.");

}} else {

if (oAbono.getIdBanco() == 0) {throw new

TesoreriaException(oCatalogo.getNombre() + ": Especificarbanco.");

}}

if ((oAbono.getIdCatalogoValor() == 1) ||(oAbono.getIdCatalogoValor() == 2) ||(oAbono.getIdCatalogoValor() == 4) ||(oAbono.getIdCatalogoValor() == 5) ||(oAbono.getIdCatalogoValor() == 6) ||(oAbono.getIdCatalogoValor() == 7) ||

(oAbono.getIdCatalogoValor() == 8) ||(oAbono.getIdCatalogoValor() == 9)) {

if (oAbono.getIdTarjetaCredito() != 0){

throw newTesoreriaException(oCatalogo.getNombre() + ": No especificartarjeta de crédito.");

}} else {

if (oAbono.getIdTarjetaCredito() == 0){

throw newTesoreriaException(oCatalogo.getNombre() + ": Especificartarjeta de crédito.");

}}

if ((oAbono.getIdCatalogoValor() == 1) ||(oAbono.getIdCatalogoValor() == 5) ||(oAbono.getIdCatalogoValor() == 6) ||(oAbono.getIdCatalogoValor() == 7) ||(oAbono.getIdCatalogoValor() == 8) ||(oAbono.getIdCatalogoValor() == 9)) {

if (!oAbono.getCuentaCorriente().equals("")) {

throw newTesoreriaException(oCatalogo.getNombre() + ": No especificarcuenta corriente.");

}} else {

if(oAbono.getCuentaCorriente().equals("")) {

throw newTesoreriaException(oCatalogo.getNombre() + ": Especificar cuentacorriente.");

}}

Page 84: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

84

if ((oAbono.getIdCatalogoValor() == 1) ||(oAbono.getIdCatalogoValor() == 4)) {

if (!oAbono.getSecuencia().equals("")){

throw newTesoreriaException(oCatalogo.getNombre() + ": No especificarsecuencia.");

}} else {

if (oAbono.getSecuencia().equals("")) {throw new

TesoreriaException(oCatalogo.getNombre() + ": Especificar

secuencia.");}

}}

}}

private void separarItem(Comprobante oComprobante) throwsException, NullPointerException {

ArrayList IdBitacoras = new ArrayList();ArrayList oItems = oComprobante.getItems();

for(int i = 0; i < oItems.size(); i++){ComprobanteItem oItem =

(ComprobanteItem)oItems.get(i);

if (oItem.getAbono() <= 0) {IdBitacoras.add(oItem);

}}

for(int i = 0; i < IdBitacoras.size(); i++){ComprobanteItem oItem =

(ComprobanteItem)IdBitacoras.get(i);oComprobante.quitarItem(oItem.getIdBitacora());

}

ArrayList identificadores = new ArrayList();oItems = oComprobante.getAbonos();

for(int i = 0; i < oItems.size(); i++){Abono oItem = (Abono)oItems.get(i);

if (oItem.getValor() <= 0) {identificadores.add(oItem);

}}

for(int i = 0; i < identificadores.size(); i++){Abono oItem = (Abono)identificadores.get(i);

oComprobante.quitarAbono(oItem.getIdentificador());

Page 85: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

85

}}

private ArrayList descargar(Comprobante oComprobante) throwsException, NullPointerException{

/* Disminuye el saldo del documento cancelado. */BitacoraBo oBitacoraBo = new BitacoraBo();ArrayList bitacoras = new ArrayList();ArrayList documentosCancelados =

oComprobante.getItems();

for (int i = 0; i < documentosCancelados.size(); i++) {ComprobanteItem oItem =

(ComprobanteItem)documentosCancelados.get(i);Bitacora oBitacoraCobro =

oBitacoraBo.seleccionar(oItem.getIdBitacora());oBitacoraCobro.setSaldo(oBitacoraCobro.getSaldo()

- oItem.getAbono());bitacoras.add(oBitacoraCobro);

}documentosCancelados = oComprobante.getAbonos();for (int i = 0; i < documentosCancelados.size(); i++) {

Abono oItem = (Abono)documentosCancelados.get(i);

Bitacora oBitacoraCobro =oBitacoraBo.seleccionar(oItem.getIdBitacora());

oBitacoraCobro.setSaldo(oBitacoraCobro.getSaldo()- oItem.getValor());

bitacoras.add(oBitacoraCobro);}return bitacoras;

}

private ArrayList cargar(Comprobante oComprobante) throwsException, NullPointerException{

/* Aumenta el saldo del documento cancelado en caso deque el comprobante sea anulados. */

BitacoraBo oBitacoraBo = new BitacoraBo();ArrayList bitacoras = new ArrayList();ArrayList documentosCancelados =

oComprobante.getItems();

for (int i = 0; i < documentosCancelados.size(); i++) {ComprobanteItem oItem =

(ComprobanteItem)documentosCancelados.get(i);Bitacora oBitacoraCobro =

oBitacoraBo.seleccionar(oItem.getIdBitacora());oBitacoraCobro.setSaldo(oBitacoraCobro.getSaldo()

+ oItem.getAbono());bitacoras.add(oBitacoraCobro);

}documentosCancelados = oComprobante.getAbonos();for (int i = 0; i < documentosCancelados.size(); i++) {

Abono oItem = (Abono)documentosCancelados.get(i);

Bitacora oBitacoraCobro =

Page 86: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

86

oBitacoraBo.seleccionar(oItem.getIdBitacora());oBitacoraCobro.setSaldo(oBitacoraCobro.getSaldo()

+ oItem.getValor());bitacoras.add(oBitacoraCobro);

}return bitacoras;

}

public ArrayList busqueda(String tipoDocumento, Stringsecuencia, String fechaInicio, String fechaFin, String rucCi,String apellidos, String nombres) throws Exception,SQLException{

/* Tratamiento de cadena. */tipoDocumento = tipoDocumento.trim().toUpperCase();secuencia = secuencia.trim().toUpperCase();fechaInicio = fechaInicio.trim().toUpperCase();fechaFin = fechaFin.trim().toUpperCase();rucCi = rucCi.trim().toUpperCase();apellidos = apellidos.trim().toUpperCase();nombres = nombres.trim().toUpperCase();rucCi = "%" + rucCi + "%";secuencia = "%" + secuencia + "%";apellidos = "%" + apellidos + "%";nombres = "%" + nombres + "%";

ArrayList comprobantes;Connection con = null;try {

con = Conexion.getConnection();ComprobanteDao oComprobanteDao = new

ComprobanteDao(con);comprobantes =

oComprobanteDao.busqueda(tipoDocumento, secuencia, fechaInicio,fechaFin, rucCi, apellidos, nombres);

} catch (Exception e) {throw new TesoreriaException(e.getMessage());

} finally {if (con != null) {

con.close();}

}return comprobantes;

}}

Vista

Comprobante.jsp contiene las páginas necesarias para la interfaz del

comprobante:

<html>

Page 87: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

87

<head><title>COMPROBANTE</title></head>

<body>

<div align="center"> <center> <table border="0" cellspacing="1" style="border-collapse: collapse"bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="100%"><jsp:include page="Cabecera.jsp"flush="true"/></td> </tr> <tr> <td width="100%"><jsp:include page="MenuDefault.jsp"flush="true"/></td> </tr> <tr> <td width="100%">&nbsp;</td> </tr> <tr> <td width="100%"><jsp:include page="CabeceraComprobante.jsp"flush="true"/>&nbsp;</td> </tr> <tr> <td width="100%"><jsp:include page="ItemComprobante.jsp"flush="true"/>&nbsp;</td> </tr> <tr> <td width="100%"><jsp:include page="ItemAbono.jsp"flush="true"/>&nbsp;</td> </tr> <tr> <td width="100%"><jsp:include page="OpcionComprobante.jsp"flush="true"/>&nbsp;</td> </tr> <tr> <td width="100%"><jsp:include page="Pie.jsp"flush="true"/>&nbsp;</td> </tr> </table> </center></div>

</body>

</html>

Cabecera.jsp es la página de encabezado para toda la aplicación:

<table border=0 width="100%" style="border-width: 0">

Page 88: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

88

<tr border=0 height=10> <td border=0 width="23%" style="border-style: none; border-width:medium;filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><imgsrc="images\DINERO.JPG" width=237 height=60 /></td> <td border=0 width="77%" align="center" style="border-style: none;border-width: medium;filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font face="Courier New"color="#FFFFFF" size="6"><b>SISTEMA DE GESTIÓN DETESORERÍA</b></font></td> </tr> </table>

CabeceraComprobante.jsp presenta el encabezado del comprobante:

<%@page import = "com.cisc.erp.be.tesoreria.Bitacora"%><%@page import = "com.cisc.erp.be.tesoreria.Comprobante"%>

<%

Bitacora oPersona = (Bitacora)session.getAttribute("oPersona"); Comprobante oComprobante =(Comprobante)session.getAttribute("oComprobante");%><html><head><title>COMPROBANTE</title> <script language="JavaScript" type="text/javascript"src="script/Utilidad.js"></script></head>

<bodyonLoad=frmCabeceraComprobante.txtCedula.focus();setIndiceFormulario()bgcolor="#6B7F50"><table width="100%" height="27" border="1" cellpadding="0"cellspacing="1" style="border-collapse: collapse; font-family:CourierNew; font-size:10pt; color:#000000" bordercolor="#FFFFFF"id="AutoNumber1"> <tr> <form method="POST" action="ControladorComprobante.jsp"> <td width="100%" height="18" align="center" colspan="8"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"> <input type="hidden" name="pagina"value="CabeceraComprobante.jsp"> <input type="hidden" name="indiceForm" value="0"> <input type="hidden" name="accionComprobante" value="2"><!--Consulta de un comprobante. --> <font size="3" color="#FFFFFF"><

Page 89: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

89

%=oComprobante.getIdTipoDocumento()%></font><input type="text"name="txtIdComprobante" size="15" maxlength="15" value="<%=oComprobante.getSecuencia()%>" style="font-family: Courier New; font-size: 10pt; color: #000000"><input type="button" value="..."name="btnBuscarComprobante"onclick="ventanaSecundaria('BuscarComprobante.jsp?indiceForm=' +indiceForm.value + '&tipoDocumento=' + '<%=oComprobante.getIdTipoDocumento()%>', 'ventana1','width=660,height=200,top=333,left=180,scrollbars=yes')"> </td> </form> </tr> <tr> <td width="50%" style="border-right-style: none; border-right-width: medium; border-bottom-style: none; border-bottom-width:medium"><font size="3" color="#FFFFFF">CIUDAD:</font><%=oComprobante.getIdSucursal()%>&nbsp;</td> <td width="50%" style="border-left-style: none; border-left-width: medium; border-bottom-style: none; border-bottom-width: medium"><fontsize="3" color="#FFFFFF">FECHA:</font><%=oComprobante.getFechaRegistro()%>&nbsp;</td> </tr> <tr> <form method="POST" name="frmCabeceraComprobante"action="ControladorComprobante.jsp"> <td width="50%" style="border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium;border-bottom-style: none; border-bottom-width: medium"> <input type="hidden" name="pagina"value="CabeceraComprobante.jsp"> <input type="hidden" name="indiceForm" value="0"> <input type="hidden" name="accionComprobante" value="10"><!--Inicia búsqueda de documentos deudores y acreedores de una persona.--> <input type="hidden" name="tipoComprobante" value="<%=oComprobante.getIdTipoDocumento()%>"> <font size="3" color="#FFFFFF">RUC-CI:</font>&nbsp;<inputtype="text" name="txtCedula" size="13" maxlength="13" value="<%=oPersona.getRucCi()%>" style="font-family: Courier New; font-size:10pt; color: #000000"><input type="button" value="..."name="btnBuscarPersona" onclick="ventanaSecundaria('BuscarPersona.jsp?indiceForm='+indiceForm.value, 'ventana1','width=660,height=200,top=333,left=180,scrollbars=yes')"> </td> </form> <td width="50%" style="border-left-style: none; border-left-width:medium; border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium"><font size="3"color="#FFFFFF">SR(S):</font><%=oPersona.getApellidos() + " " +oPersona.getNombres()%>&nbsp;</td> </tr> <tr> <td width="50%" style="border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium;border-bottom-style: none; border-bottom-width: medium"> <font size="3" color="#FFFFFF">DIRECCIÓN:</font><

Page 90: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

90

%=oPersona.getDireccion()%>&nbsp;</td> <td width="50%" style="border-left-style: none; border-left-width:medium; border-top-style: none; border-top-width: medium; border-bottom-style: none; border-bottom-width: medium"><font size="3"color="#FFFFFF">TELÉFONO:</font><%=oPersona.getTelefono()%>&nbsp;</td> </tr> <tr> <td width="5E0%" style="border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium"> <font size="3" color="#FFFFFF">CAJERO:</font><%=oComprobante.getIdCajaTurno()%>&nbsp;</td> <td width="50%" style="border-left-style: none; border-left-width:medium; border-top-style: none; border-top-width: medium"><fontsize="3" color="#FFFFFF">TOTAL:</font><%=oComprobante.getValor()%>&nbsp;</td> </tr></table></body></html>

ItemCOmprobante.jsp presenta los items que pertenecen a un

comprobante:

<%@page import = "com.cisc.erp.be.tesoreria.Comprobante"%><%@page import = "com.cisc.erp.be.tesoreria.ComprobanteItem"%><%@page import = "com.cisc.erp.be.tesoreria.Bitacora"%><%@page import = "com.cisc.erp.bo.tesoreria.BitacoraBo"%><%@page import = "java.util.ArrayList"%>

<html>

<head><title>DEUDA(S)</title></head>

<body bgcolor="#6B7F50"><fieldset style="border:1px solid #FFFFFF; padding:2; "> <legend><font color="#FFFFFF" face="CourierNew">DETALLE:</font></legend>

<table width="100%" height="27" border="1" cellpadding="0"cellspacing="1" style="border-collapse: collapse; font-family:CourierNew; font-size:10pt; color:#000000" bordercolor="#FFFFFF"id="AutoNumber1"> <tr> <td width="100%" height="18" align="center" colspan="8"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"> <font color="#FFFFFF" size="3">DOCUMENTOS DEUDORES</font></td> </tr> <tr> <td width="0%" height="18" align="center"

Page 91: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

91

style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">FECHA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">TIPO</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">SECUENCIA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">OBSERVACIÓN</font></td> <td width="0%" height="18" align="center"

style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">TOTAL</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">SALDO</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font color="#FFFFFF" size="3">ABONO</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">ENVÍO</font></td> </tr><% float totalDeuda = 0.0f; float totalSaldo = 0.0f; ArrayList oItems = null; BitacoraBo oBitacoraBo =(BitacoraBo)session.getAttribute("oBitacoraBo"); Comprobante oComprobante =(Comprobante)session.getAttribute("oComprobante"); Bitacora oBitacora; oItems = oComprobante.getItems();

for(int i=0; i<oItems.size(); i++){ ComprobanteItem oItem = (ComprobanteItem)oItems.get(i); oBitacora = oBitacoraBo.seleccionar(oItem.getIdBitacora()); totalDeuda = totalDeuda + oItem.getSaldo();%> <tr> <form method="POST" action="ControladorComprobante.jsp"> <input type="hidden" name="pagina" value="ItemComprobante.jsp"> <input type="hidden" name="indiceForm" value="0"> <input type="hidden" name="accionComprobante" value="5"> <input type="hidden" name="idComprobanteItem" value="<

Page 92: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

92

%=oItem.getIdComprobanteItem()%>"> <input type="hidden" name="idComprobante" value="<%=oItem.getIdComprobante()%>"> <input type="hidden" name="idBitacora" value="<%=oItem.getIdBitacora()%>"> <td width="0%" height="18" align="center"><%=oBitacora.getFechaDocumento()%>&nbsp;</td> <td width="0%" height="18" align="center"><%=oBitacora.getIdTipoDocumento()%>&nbsp;</td> <td width="0%" height="18" align="center"><%=oBitacora.getSecuencia()%>&nbsp;</td> <td width="0%" height="18" align="center"> <input name="txtObservacion" value="<%=oItem.getObservacion()%>"size="49" maxlength="100" style="font-family: Courier New; text-align:left"></td> <td width="0%" height="18" align="right"><%=oBitacora.getTotal()%>&nbsp;</td> <td width="0%" height="18" align="right"><%=oItem.getSaldo() -oItem.getAbono()%>&nbsp;</td> <td width="0%" height="18" align="center"><input name="txtAbono"value="<%=oItem.getAbono()%>" size="10" maxlength="10" style="font-family: Courier New; font-size: 10pt; color: #000000; text-align:right" onKeypress=" if (event.keyCode < 46 || event.keyCode > 57){ event.returnValue = false; } " onblur=" var saldo = Math.abs('<%=oItem.getSaldo()%>'); var abono = Math.abs(txtAbono.value); if (isNaN(abono)) { abono= 0.0; }

txtAbono.value = abono;

if (saldo < abono){ window.alert('Abono $' + abono + ' no debe ser mayorque $' + saldo); txtAbono.focus(); } "></td> <td width="0%" height="18" align="center"><input type="submit"value="Enviar" name="btnEnviar" style="font-family: Courier New; font-size: 10pt"></td> </form> </tr><%} totalSaldo = totalDeuda - oComprobante.getValor();%> <tr> <td width="0%" height="18" style="border-left-width: medium;border-bottom-style: none; border-bottom-width: medium"colspan="4">&nbsp;</td>

Page 93: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

93

<td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><fontcolor="#FFFFFF" size="3">SUMA:</font></td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"align="right"><font color="#FFFFFF" size="3"><%=totalSaldo%></font>&nbsp;</td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"align="right"><font color="#FFFFFF" size="3"><%=oComprobante.getValor()%></font>&nbsp;</td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"></td> </tr> </table> </font></fieldset>

</body></html>

ItemAbono.jsp presenta las formas de pago de un comprobante:

<html><head><title>Abonos: </title> <script language="JavaScript" type="text/javascript"src="script/date-picker.js"></script> <script language="JavaScript" type="text/javascript"src="script/Utilidad.js"></script></head><%@page import = "java.util.ArrayList"%><%@page import = "com.cisc.erp.be.tesoreria.Comprobante"%><%@page import = "com.cisc.erp.be.tesoreria.Abono"%><%@page import = "com.cisc.erp.be.tesoreria.CatalogoValor"%><%@page import = "com.cisc.erp.be.tesoreria.Banco"%><%@page import = "com.cisc.erp.be.tesoreria.TarjetaCredito"%>

<% Comprobante oComprobante = null; ArrayList abonos = null; ArrayList valores = null; ArrayList bancos = null; ArrayList tarjetas = null;

oComprobante = (Comprobante)session.getAttribute("oComprobante"); abonos = oComprobante.getAbonos(); valores = (ArrayList)session.getAttribute("valores"); bancos = (ArrayList)session.getAttribute("bancos"); tarjetas = (ArrayList)session.getAttribute("tarjetas");

Page 94: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

94

%><body bgcolor="#6B7F50"><fieldset style="border:1px solid #FFFFFF; padding:2; "> <legend><font color="#FFFFFF" face="CourierNew">DETALLE:</font></legend>

<table width="100%" height="27" border="1" cellpadding="0"cellspacing="1" style="border-collapse: collapse; font-family:CourierNew; font-size:10pt; color:#000000" bordercolor="#FFFFFF"id="AutoNumber1"> <tr> <td width="100%" height="18" align="center" colspan="8"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"> <font size="3" color="#FFFFFF">ABONO</font></td> </tr> <tr> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"

color="#FFFFFF">FORMA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">BANCO</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">TARJETA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">CUENTA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">SECUENCIA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">FECHA</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">VALOR</font></td> <td width="0%" height="18" align="center"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><font size="3"color="#FFFFFF">ENVÍO</font></td> </tr><% for(int i=0; i < abonos.size(); i++){ Abono oAbono = (Abono)abonos.get(i);%> <tr>

Page 95: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

95

<form name="frmAbono" method="POST"action="ControladorComprobante.jsp"> <input type="hidden" name="indiceForm" value="0"> <input type="hidden" name="accionComprobante" value="12"> <input type="hidden" name="idAbono" value="<%=oAbono.getIdAbono()%>"> <input type="hidden" name="idComprobante" value="<%=oAbono.getIdComprobante()%>"> <input type="hidden" name="identificador" value="<%=oAbono.getIdentificador()%>"> <input type="hidden" name="idCatalogoValor" value="<%=oAbono.getIdCatalogoValor()%>"> <input type="hidden" name="idBanco" value="<%=oAbono.getIdBanco()%>"> <input type="hidden" name="idTarjetaCredito" value="<%=oAbono.getIdTarjetaCredito()%>"> <td width="0%" height="1" align="center"> <select name=cboValoresonchange="cboBancos.selectedIndex=0;cboTarjetas.selectedIndex=0"style="font-family: Courier New; font-size: 10pt; color: #000000"> <%for (int a = 0; a < valores.size(); a++) { CatalogoValor oValor = (CatalogoValor)valores.get(a); if (oAbono.getIdCatalogoValor() ==oValor.getIdCatalogoValor()) { %> <option value="<%=oValor.getIdCatalogoValor()%>" selected><%=oValor.getNombre()%></option> <%} else {%> <option value="<%=oValor.getIdCatalogoValor()%>"><%=oValor.getNombre()%></option> <%}}%> </select></td> <td width="0%" height="1" align="center"> <select name=cboBancos style="font-family: Courier New; font-size:10pt; color: #000000"> <%for (int b = 0; b < bancos.size(); b++) { Banco oBanco = (Banco)bancos.get(b); if (oAbono.getIdBanco() == oBanco.getIdBanco()) { %> <option value="<%=oBanco.getIdBanco()%>" selected><%=oBanco.getNombre()%></option> <%} else {%> <option value="<%=oBanco.getIdBanco()%>"><%=oBanco.getNombre()%></option> <%}}%> </select></td> <td width="0%" height="1" align="center"> <select name=cboTarjetas style="font-family: Courier New; font-size: 10pt; color: #000000">

<%for (int c = 0; c < tarjetas.size(); c++) { TarjetaCredito oTarjetaCredito =(TarjetaCredito)tarjetas.get(c); if (oAbono.getIdTarjetaCredito() ==oTarjetaCredito.getIdTarjetaCredito()) { %>

Page 96: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

96

<option value="<%=oTarjetaCredito.getIdTarjetaCredito()%>"selected><%=oTarjetaCredito.getNombre()%></option> <%} else {%> <option value="<%=oTarjetaCredito.getIdTarjetaCredito()%>"><%=oTarjetaCredito.getNombre()%></option> <%}}%> </select></td> <td width="0%" height="1" align="center"><input type="text"name="txtCuenta" size="15" maxlength="15" value="<%=oAbono.getCuentaCorriente()%>" style="font-family: Courier New; font-size: 10pt; color: #000000" onKeypress=" if ((event.keyCode >= 48 && event.keyCode <= 57) ||(event.keyCode == 45) || (event.keyCode == 32) || (event.keyCode ==255)){ event.returnValue = true; } else { event.returnValue = false; } "> </td> <td width="0%" height="1" align="center"><input type="text"name="txtSecuencia" size="15" maxlength="15" value="<%=oAbono.getSecuencia()%>" style="font-family: Courier New; font-size:10pt; color: #000000" onKeypress=" if ((event.keyCode >= 48 && event.keyCode <= 57) ||(event.keyCode == 45) || (event.keyCode == 32) || (event.keyCode ==255)){ event.returnValue = true; } else { event.returnValue = false; } "> </td> <td width="0%" height="1" align="center"> <input type="text" name="txtFechaPlazo" size="10" maxlength="10"value="<%=oAbono.getFechaPlazo()%>" style="font-family: Courier New;font-size: 10pt; color: #000000; text-align:center" onfocus="blur()"onclick=calendario(indiceForm.value,'txtFechaPlazo')></td> <td width="0%" align="center" height="1"> <input name="txtValor" size="10" maxlength="10" value="<%=oAbono.getValor()%>" style="font-family: Courier New; font-size:10pt; color: #000000; text-align:right" onKeypress=" if (event.keyCode < 46 || event.keyCode > 57){ event.returnValue = false; } " onblur=" var valor = Math.abs(txtValor.value); if (isNaN(valor)) { txtValor.value = 0.0; } "></td>

Page 97: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

97

<td width="0%" height="1" nowrap align="center"> <input type="submit" value="Enviar" name="btnEnviar" style="font-family: Courier New; font-size: 10pt; color: #000000"></td> </form> </tr><%}%> <tr> <td height="18" colspan="5">&nbsp;</td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><palign="center"><font size="3" color="#FFFFFF">SUMA:</font></td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"><palign="right"><font size="3" color="#FFFFFF"><%=oComprobante.getValorAbono()%></font></td> <td width="0%" height="18"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');"align="left"></td> </tr></table></fieldset></body></html>

OpcionComprobante.jsp contiene las opciones que van a actuar sobre

el comprobante:

<html>

<head><title>OPCIÓN</title></head>

<body bgcolor="#6B7F50"><div align="center"> <center><fieldset style="border:1px solid #FFFFFF; padding:2; "> <legend><font color="#FFFFFF" face="CourierNew">OPCIONES:</font></legend> <table border="0" cellspacing="1" style="border-collapse: collapse;font-family: Courier New; font-size: 10pt; color: #000000" width="100%"id="AutoNumber1"> <tr> <form method="POST" action="ControladorComprobante.jsp"> <td width="100%"> <input type="hidden" name="pagina" value="Comprobante.jsp"> <input type="hidden" name="indiceForm" value="0"> <input type="hidden" name="accionComprobante" value="0"> <p align="center">

Page 98: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

98

<inputonclick="forms[indiceForm.value].accionComprobante.value=1;forms[indiceForm.value].willSubmit=confirm('¿Desea guardar eldocumento?');return forms[indiceForm.value].willSubmit;" type="submit"value="Guardar" name="btnGuardar" style="font-family: Courier New;font-size: 10pt; color: #000000; text-align: center"> </td> </form> </tr> </table></fieldset> </center></div></body>

</html>

Pie.jsp es la página de pie para toda la aplicación:

<table border="0" cellpadding="0" cellspacing="0" style="border-

collapse: collapse" bordercolor="#111111" width="100%"id="AutoNumber1"> <tr> <td width="50%" height="80%"style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorstr='#004000', endColorstr='#6B7F50', gradientType='0');" align="center"> <b><font color="#FFFFFF" face="Courier New" size="2">CopyRights(c),2006 Universidad Estatal de Guayaquil</font> </b> </td> </tr></table>

Controlador

ControladorConprobante.jsp contiene todas las acciones a ejecutarse

en el comprobante:

<%@page import = "com.cisc.erp.be.tesoreria.Comprobante"%><%@page import = "com.cisc.erp.be.tesoreria.ComprobanteItem"%><%@page import = "com.cisc.erp.be.tesoreria.Abono"%><%@page import = "com.cisc.erp.be.tesoreria.Bitacora"%><%@page import = "com.cisc.erp.bo.tesoreria.ComprobanteBo"%><%@page import = "com.cisc.erp.bo.tesoreria.BitacoraBo"%><%@page import = "com.cisc.erp.bo.tesoreria.CatalogoValorBo"%><%@page import = "com.cisc.erp.bo.tesoreria.BancoBo"%><%@page import = "com.cisc.erp.bo.tesoreria.TarjetaCreditoBo"%><%@page import = "com.cisc.erp.exception.tesoreria.*"%>

Page 99: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

99

<%@page import = "java.util.ArrayList"%>

<% String url = null; int accionComprobante; String idComprobante = null; String tipoComprobante = null; String cedula = null; int idSucursal; //¿Cómo lo obtendré? int idCajaTurno; //¿Cómo lo obtendré? int deudor; int acreedor; String estadoHabilitado = null; String estadoDesabilitado = null; String pagina = null; Comprobante oComprobante = null; Bitacora oPersona = null; ComprobanteBo oComprobanteBo = null; BitacoraBo oBitacoraBo = null; CatalogoValorBo oCatalogoValorBo = null; BancoBo oBancoBo = null; TarjetaCreditoBo oTarjetaCreditoBo = null; ArrayList valores = null; ArrayList bancos = null; ArrayList tarjetas = null; ArrayList documentosDeudores = null; ArrayList documentosAcreedores = null;

estadoHabilitado = "1"; estadoDesabilitado = "2"; ComprobanteItem oComprobanteItem = null; Abono oAbono = null; accionComprobante = new Integer(request.getParameter("accionComprobante")).intValue(); switch (accionComprobante) { case 0: /* INICIAR. */ /* Inicializa los objectos que colabararán con el comprobante:oComprobante, oPersona. */ tipoComprobante =(String)request.getParameter("tipoComprobante"); url = "Comprobante.jsp";

oComprobante = new Comprobante(); oComprobante.setIdTipoDocumento(tipoComprobante); oPersona = new Bitacora();

session.setAttribute("oComprobante", oComprobante); session.setAttribute("oPersona", oPersona); break;

case 10:

Page 100: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

100

/* Elaborar un comprobante preliminar. Se tomará número de cédula para la búsqueda de documentosdeudores y acreedores. El comprobante se encuentra en modo de inserción. */ cedula = (String)request.getParameter("txtCedula"); oComprobante =(Comprobante)session.getAttribute("oComprobante"); tipoComprobante = oComprobante.getIdTipoDocumento(); url = "Comprobante.jsp"; if (cedula.equals("")) { url = "ControladorComprobante.jsp?accionComprobante=0&tipoComprobante=" + tipoComprobante; } else { oBitacoraBo = new BitacoraBo(); oCatalogoValorBo = new CatalogoValorBo(); oBancoBo = new BancoBo(); oTarjetaCreditoBo = new TarjetaCreditoBo(); idSucursal = 1; //¿Cómo lo obtendré?

idCajaTurno = 3; //¿Cómo lo obtendré? deudor = 1; acreedor = 2; String idFactura = "FACT"; int CatalogoFactura = 5; String idNotaVenta = "NV"; int CatalogoNotaVenta = 6; String idComprobanteRetencion = "CR"; int CatalogoComprobanteRetencion = 7; String idNotaCredito = "NC"; int CatalogoNotaCredito = 8; String idNotaDebito = "ND"; int CatalogoNotaDebito = 9;

oPersona = oBitacoraBo.seleccionarPersona(cedula); /* CI: documentos deudores en primer detalle delcomprobante. documentos acreedores en segundo detalle delcomprobante. OPG: documentos deudores en segundo detalle delcomprobante. documentos acreedores en primer detalle delcomprobante. */

if (tipoComprobante.equals("CI")) { documentosDeudores = oBitacoraBo.documentos(cedula,deudor); documentosAcreedores = oBitacoraBo.documentos(cedula,acreedor); } else {

Page 101: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

101

documentosDeudores = oBitacoraBo.documentos(cedula,acreedor); documentosAcreedores = oBitacoraBo.documentos(cedula,deudor); } oComprobante = new Comprobante(); oComprobante.setIdTipoDocumento(tipoComprobante); oComprobante.setIdSucursal(idSucursal); oComprobante.setIdPersona(oPersona.getIdPersona()); oComprobante.setIdCajaTurno(idCajaTurno); /* Regla: Comprobante en modo de consulta traerá "TODOS"los valores, bancos, tarjetas; caso contrario sólo los habilitados. */ valores = oCatalogoValorBo.buscar("%", "%",estadoHabilitado); bancos = oBancoBo.buscar("%", "%", estadoHabilitado); tarjetas = oTarjetaCreditoBo.buscar("%", "%", "%",estadoHabilitado); for (int i = 0; i < documentosDeudores.size(); i++) { oComprobanteItem = new ComprobanteItem(); Bitacora oBitacora =(Bitacora)documentosDeudores.get(i); oComprobanteItem.setIdBitacora(oBitacora.getIdBitacora()); oComprobanteItem.setSaldo(oBitacora.getSaldo()); if (oBitacora.getCredito() == 1) { oComprobanteItem.setObservacion("A crédito"); } else { oComprobanteItem.setObservacion("Al contado"); } oComprobante.agregarItem(oComprobanteItem); } int i = 0; for (i = 0; i < documentosAcreedores.size(); i++) {

oAbono = new Abono(); Bitacora oBitacora =(Bitacora)documentosAcreedores.get(i);

if (idFactura.equals(oBitacora.getIdTipoDocumento())) { oAbono.setIdentificador(i); oAbono.setIdBitacora(oBitacora.getIdBitacora()); oAbono.setIdCatalogoValor(CatalogoFactura); oAbono.setSecuencia(oBitacora.getSecuencia()); oAbono.setValor(oBitacora.getSaldo()); oComprobante.agregarAbono(oAbono); } if (idNotaVenta.equals(oBitacora.getIdTipoDocumento())){ oAbono.setIdentificador(i);

Page 102: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

102

oAbono.setIdBitacora(oBitacora.getIdBitacora()); oAbono.setIdCatalogoValor(CatalogoNotaVenta); oAbono.setSecuencia(oBitacora.getSecuencia()); oAbono.setValor(oBitacora.getSaldo()); oComprobante.agregarAbono(oAbono); } if(idComprobanteRetencion.equals(oBitacora.getIdTipoDocumento())) { oAbono.setIdentificador(i); oAbono.setIdBitacora(oBitacora.getIdBitacora()); oAbono.setIdCatalogoValor(CatalogoComprobanteRetencion); oAbono.setSecuencia(oBitacora.getSecuencia()); oAbono.setValor(oBitacora.getSaldo()); oComprobante.agregarAbono(oAbono); } if(idNotaCredito.equals(oBitacora.getIdTipoDocumento())) { oAbono.setIdentificador(i); oAbono.setIdBitacora(oBitacora.getIdBitacora()); oAbono.setIdCatalogoValor(CatalogoNotaCredito); oAbono.setSecuencia(oBitacora.getSecuencia()); oAbono.setValor(oBitacora.getSaldo()); oComprobante.agregarAbono(oAbono); } if (idNotaDebito.equals(oBitacora.getIdTipoDocumento())){ oAbono.setIdentificador(i); oAbono.setIdBitacora(oBitacora.getIdBitacora()); oAbono.setIdCatalogoValor(CatalogoNotaDebito); oAbono.setSecuencia(oBitacora.getSecuencia()); oAbono.setValor(oBitacora.getSaldo()); oComprobante.agregarAbono(oAbono); } } if (documentosDeudores.size() > 0 ) { oAbono = new Abono(); oAbono.setIdentificador(i); oComprobante.agregarAbono(oAbono); } session.setAttribute("oComprobante", oComprobante); session.setAttribute("oPersona", oPersona); session.setAttribute("oBitacoraBo", oBitacoraBo); session.setAttribute("valores", valores); session.setAttribute("bancos", bancos); session.setAttribute("tarjetas", tarjetas); } break;

case 5: /* AFECTAR DOCUMENTOS DEUDORES. */ /* Agregar los últimos cambios efectuados a los documentosdeudores del comprobante.*/

Page 103: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

103

url = "Comprobante.jsp"; int idBitacora = newInteger(request.getParameter("idBitacora")).intValue(); float abono = newFloat(request.getParameter("txtAbono")).floatValue(); String observacion = request.getParameter("txtObservacion"); oComprobanteItem = new ComprobanteItem(); oComprobanteItem.setIdBitacora(idBitacora); oComprobanteItem.setAbono(abono); oComprobanteItem.setObservacion(observacion); oComprobante =(Comprobante)session.getAttribute("oComprobante"); oComprobante.agregarItem(oComprobanteItem); session.setAttribute("oComprobante", oComprobante);

break;

case 12: /* AGREGAR DOCUMENTOS ACREEDORES.*/ url = "Comprobante.jsp"; int identificador = newInteger(request.getParameter("identificador")).intValue(); int idCatalogoValor2 = newInteger(request.getParameter("cboValores")).intValue(); int idBanco = newInteger(request.getParameter("cboBancos")).intValue(); int idTarjetaCredito = newInteger(request.getParameter("cboTarjetas")).intValue(); String cuentaCorriente = request.getParameter("txtCuenta"); String secuencia = request.getParameter("txtSecuencia"); String fechaPlazo = request.getParameter("txtFechaPlazo"); float valor = newFloat(request.getParameter("txtValor")).floatValue();

oAbono = new Abono(); oAbono.setIdentificador(identificador); oAbono.setIdCatalogoValor(idCatalogoValor2); oAbono.setIdBanco(idBanco); oAbono.setIdTarjetaCredito(idTarjetaCredito); oAbono.setCuentaCorriente(cuentaCorriente); oAbono.setSecuencia(secuencia); oAbono.setFechaPlazo(fechaPlazo); oAbono.setValor(valor); oComprobante =(Comprobante)session.getAttribute("oComprobante"); oComprobante.agregarAbono(oAbono); oComprobante.agregarAbonoFinal(oAbono); session.setAttribute("oComprobante", oComprobante);

break;

case 1: /* INSERTAR Y ACTUALIZAR */ /* Ingresa o actualiza información de comprobante:

Page 104: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

104

oComprobante. Aumenta o disminuye saldo de bitacora. */ try { oComprobanteBo = new ComprobanteBo(); oComprobante =(Comprobante)session.getAttribute("oComprobante"); tipoComprobante = oComprobante.getIdTipoDocumento(); oComprobanteBo.guardar(oComprobante); url = "ControladorComprobante.jsp?accionComprobante=0&tipoComprobante=" + tipoComprobante; }catch(TesoreriaException e){ url = "Exception.jsp?excepcion=" + e.toString(); } break;

case 2: /* SELECCIONAR */ /* Trae información según número comprobante: oComprobante. */ oCatalogoValorBo = new CatalogoValorBo(); oBancoBo = new BancoBo(); oTarjetaCreditoBo = new TarjetaCreditoBo(); idComprobante = request.getParameter("txtIdComprobante"); url = "Comprobante.jsp";

oComprobanteBo = new ComprobanteBo(); oComprobante = oComprobanteBo.seleccionar(idComprobante); oBitacoraBo = new BitacoraBo(); oPersona =oBitacoraBo.seleccionarPersona(oComprobante.getIdPersona()); /* Regla: Cuando el comprobante se encuentra en modo deconsulta debe traer valores, bancos, tarjetas habilitados y desabilitados, caso contrario sólo los habilitados.

*/ valores = oCatalogoValorBo.buscar("%", "%", "%"); bancos = oBancoBo.buscar("%", "%", "%"); tarjetas = oTarjetaCreditoBo.buscar("%", "%", "%", "%"); session.setAttribute("oComprobante", oComprobante); session.setAttribute("oBitacoraBo", oBitacoraBo); session.setAttribute("oPersona", oPersona); session.setAttribute("valores", valores); session.setAttribute("bancos", bancos); session.setAttribute("tarjetas", tarjetas); break;

/***********************************************************************/

Page 105: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

105

/* Ver si eliminar. */ case 3: /* ANULAR */ try { pagina = (String)request.getParameter("pagina"); idComprobante =(String)request.getParameter("txtIdComprobante"); oComprobanteBo = new ComprobanteBo(); oComprobante = oComprobanteBo.seleccionar(idComprobante); oComprobante.setIdEstado(2);

oComprobanteBo.guardar(oComprobante); //Aplicar la carga odescarga en bitacora. url = pagina; }catch(TesoreriaException e){ url = "Exception.jsp?excepcion=" + e.toString(); }

break;

case 4: /* ELIMINAR */ oComprobanteBo = new ComprobanteBo(); oComprobante =(Comprobante)session.getAttribute("oComprobante"); tipoComprobante = oComprobante.getIdTipoDocumento(); oComprobanteBo.eliminar(oComprobante.getIdComprobante()); url = "ControladorComprobante.jsp?accionComprobante=0&tipoComprobante=" + tipoComprobante;

break;

case 6: /* QUITAR */ url = "QuitarComprobanteItem.jsp";

break;

case 7: /* MANEJAR ERROR */ url = "ErrorComprobante.jsp";

break; case 8: /*Objetos a null, garantizando el siguiente ingresa decomprobante.*/

url = "ControladorComprobante.jsp?accionComprobante=0"; oComprobanteBo = null; oBitacoraBo = null; oPersona = null; oComprobante = null; break;

case 9: /* PRESENTAR */ /*Muestra contenido de objectos que colabarán con el

Page 106: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

106

comprobante.*/ url = "MostrarComprobante.jsp"; break;

case 11: /* PRESENTAR */ /*Muestra contenido de objectos que colabarán con elcomprobante.*/ oComprobanteBo = new ComprobanteBo(); //oComprobanteBo.filtrar((Comprobante)session.getAttribute("oComprobante")); url = "ComprobanteIngreso.jsp"; break;

default: url = "Fecha.jsp"; break; }%><jsp:forward page="<%=url%>"/>

CAPÍTULO 5

Page 107: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

107

PRUEBAS

El ciclo de vida FLOOT

De la amplia variedad de técnicas disponibles en todos los aspectos del

desarrollo de software, hemos realizado las siguientes pruebas:

Prueba de caja negra

Verificamos que los ítem que se esten probando, cuando se dan

las entradas apropiadas, produzcan los resultados esperados.

Prueba de clases

Nos aseguramos que las clases y todas sus instancias cumplan

con el comportamiento definido .

Prueba de integración de clases

Nos asegurarmos que las clases, y sus instancias, conforman un

software que cumpla con el comportamiento definido.

Prueba de componente

Validamos que los componentes funcionan tal como esta

Page 108: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

108

definido.

Prueba de integración

Realizarmos pruebas para verificar que las partes del software

funcionan juntas.

Demostrar con el código

La mejor forma de determinar si un modelo realmente refleja lo

que se necesita, o lo que se debe construir, es construyendo

software basado en el modelo para mostrar que el modelo esta

bien.

Prueba de regresión

Después de realizar algún cambio en la aplicación, nos

aseguramos que los comportamientos previamente probados

todavía trabajan como se espera.

Prueba de stress

Nos asegurarmos que el sistema funcione como se espera bajo

grandes volúmenes de transacciones, usuarios, carga y demás.

Page 109: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

109

Revisión técnica

Intercambiamos, entre los integrantesa del grupo, el diseño dpara

que sea revisado de forma exhaustiva. Una revisión típicamente

se enfoca en la precisión, calidad, facilidad de uso y completitud.

Prueba de interfaz de ususario

Probamos la interfaz de usuario para garantizar que cumple los

estándares y requerimientos definidos.

Page 110: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

110

CONCLUSIONES

A lo largo del desarrollo del Sistema de Gestión de Tesorería hemos

adquirido conocimientos muy valiosos acerca de las herramientas Open

Source. Entre estos conocimientos se incluyen:

Imporancia del ciclo de análisis y diseño.

Aplicación del lenguaje de Modelado Unificado para facilitar el análisis y

Page 111: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

111

diseño de programas orientados a objetos.

El patrón de arquitectura MVC que permite separar la aplicación en una

estructura eficaz pero simple.

Una buena aplicación debe ser cuidadosamente planeada y desarrollada

antes de escribir siquiera una sola línea de código. El análisis y diseño

orientado a objeto son las tareas más duras que tendremos que afrontar, son

muchos a los que no les resulta fácil adquirir destreza en este campo. No

obstante, es importante que nos esforcemos al máximo para dominarlos

completamente.

Nuestro camino sólo ha empezado, la siguiente fase consiste en ganar

experiencia.

Page 112: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

112

Page 113: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

113

ANEXOS

Page 114: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

114

Page 115: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

115

Page 116: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

116

Page 117: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

117

Page 118: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

118

BIBLIOGRAFÍA

- Clark D.; Introducción a la Programación Orientada a Objetos con Visual

Basic.Net; Ediciones Anaya Multimedia; Madrid – España, 2003; Capítulos 2,

3, 4.

- Falkner J., Galbraith B., Irani R., Kochmer C., Narayana S., Perrumal K.

Jimney J. ; Fundamentos Desarrollo Web con JSP ; Ediciones Anaya

Multimedia; Madrid – España, 2002.

- Contraloría General del Estado; Normas de Control Interno para el Sector

Público de la República del Ecuador; Quito – Ecuador, 2002; Páginas 37 –

42.

- Alvarez N.; Curso Básico de Contabilidad; Editorial Mc Graw Hill; Segunda

Edición.

- www.sri.gov.ec

Page 119: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en SistemasComputacionales

“Sistema de Gestión de Tesorería”

MANUAL TÉCNICO Y DE USUARIO

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Luisa Cecilia Castro González

Robert Agustín Roca Duque

Walter Fabricio Villalta Herrera

GUAYAQUIL – ECUADOR

Año 2006

Page 120: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

II

AGRADECIMIENTO

Agradezco a Dios y a mi familia porque, de una u otra forma, me han apoyado a lolargo de mi vida académica y me han dado fuerza en los momentos difíciles.Luisa Castro.

Gracias a las personas que han hecho posible que alcance mis objetivos y metas.Robert Roca.

Gracias a Dios y a mis padres por ayudarme a llegar a esta parte de mi vida que es la culminación de mi carrera universitaria.Fabricio Villalta.

Page 121: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

III

DEDICATORIA

Dedico este trabajo con mucho cariño a mis padres, ellos han sido mi fortaleza y mi motivación a seguir adelante.Luisa Castro.

Este trabajo está dedicado a mis padres.Robert Roca.

Este trabajo se lo dedico a mis padres, ami papa por su esfuerzo y coraje, a mi mama por su dedicación y su apoyo incondicional, a mis hermanos y a todos los que de una y otra forma ayudaron a culminar con éxito mis estudios.Fabricio Villalta

Page 122: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

IV

INDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

INDICE GENERAL IV

CAPÍTULO 1 1

1 MANUAL TÉCNICO 1

1.1 Objetivos técnicos 1

1.2 Definición tecnológica 2

1.3 Fedora Core 2

1.4 PostgreSQL 3

1.5 J2EE 4

1.6 Apache Tomcat 5

1.7 JSP 5

1.8 JavaScript 6

1.9 Eclipse 6

1.10 IReport 7

CAPÍTULO 2 9

2 DICCIONARIO DE DATOS 9

2.1 Tabla Abono 9

2.2 Tabla Banco 9

2.3 Tabla Bitacora 10

2.4 Tabla Caja 10

Page 123: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

V

2.5 Tabla CatalogoValor 10

2.6 Tabla Comprobante 10

2.7 Tabla ComprobanteItem 11

2.8 Tabla Documento 11

2.9 Tabla DocumentoSecuencia 11

2.10 Tabla Empresa 11

2.11 Tabla Estado 11

2.12 Tabla Naturaleza 12

2.13 Tabla Parte 12

2.14 Tabla Persona 12

2.15 Tabla Procedencia 12

2.16 Tabla Rol 12

2.17 Tabla Tarjeta 13

2.18 Tabla Turno 13

2.19 Tabla Usuario 13

2.20 Tabla UsuarioRol 13

CAPÍTULO 3 14

3 MANUAL DE INSTALACIÓN 14

3.1 Instalación de JDK 1.5.0 en Windows 14

3.2 Instalación de Apache Tomcat 5.0 en Windows 16

3.3 Instalación de PostgreSQL 8.0.0-beta4 en Windows 20

3.4 Instalación de la aplicación 24

Page 124: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

VI

CAPÍTULO 4 28

4 MANUAL DE USUARIO 28

4.1 Autenticación 28

4.2 Configuración 30

4.3 Recaudación 30

4.3.1 Emisión de comprobante CI 31

4.3.2 Reimpresión y anulación 32

4.4 Pagaduría 33

4.4.1 Generación de pagos 33

4.4.2 Emisión de cheques 34

4.4.3 Anulación de cheques 34

4.4.4 Emisión de comprobante CE 36

4.4.5 Reimpresión y anulación 36

Page 125: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

VII

Page 126: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en SistemasComputacionales

“Sistema de Gestión de Tesorería”

PROYECTO DE GRADO

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Luisa Cecilia Castro González

Robert Agustín Roca Duque

Walter Fabricio Villalta Herrera

GUAYAQUIL – ECUADOR

Año 2006

Page 127: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

II

AGRADECIMIENTO

Agradezco a Dios y a mi familia porque, de una u otra forma, me han apoyado a lolargo de mi vida académica y me han dado fuerza en los momentos difíciles.Luisa Castro.

Gracias a las personas que han hecho posible que alcance mis objetivos y metas.Robert Roca.

Gracias a Dios y a mis padres por ayudarme a llegar a esta parte de mi vida que es la culminación de mi carrera universitaria.Fabricio Villalta.

Page 128: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

III

DEDICATORIA

Dedico este trabajo con mucho cariño a mis padres, ellos han sido mi fortaleza y mi motivación a seguir adelante.Luisa Castro.

Este trabajo está dedicado a mis padres.Robert Roca.

Este trabajo se lo dedico a mis padres, ami papa por su esfuerzo y coraje, a mi mama por su dedicación y su apoyo incondicional, a mis hermanos y a todos los que de una y otra forma ayudaron a culminar con éxito mis estudios.Fabricio Villalta

Page 129: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

IV

TRIBUNAL DE GRADUACIÓN

PRESIDENTE DEL TRIBUNAL PRIMER VOCAL

SEGUNDO VOCAL SECRETARIO

Page 130: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

V

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas

Computacionales, Art. 26).

Page 131: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

VI

RESUMEN

El Sistema de Gestión de Tesorería fue desarrollado para proveer losservicios de cobranza y pagos a través de un sitio web de una forma rápida yfiable. Para el análisis y diseño de la aplicación se utilizó el LenguajeModelado Unificado (UML) y para la implementación se basó en el el patrónde arquitectura MVC (Model-View-Controller). Además se utilizó PostgreSQLcomo servidor de base de datos, Apache Tomcat como servidor web, yEclipse como IDE para el desarrollo en lenguaje Java. Para accesar a laaplicación es necesario de la asignación de un nombre de usuario y surespectiva contresaña. Para el desarrollo de nuestro sistema se consideraronlos requerimientos más relevantes del área de Tesorería.

Page 132: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

VII

INDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

TRIBUNAL DE GRADUACIÓN IV

DECLARACIÓN EXPRESA V

RESUMEN VI

INDICE GENERAL VII

INTRODUCCIÓN 1

CAPÍTULO 1 4

1 SISTEMA DE GESTIÓN DE TESORERÍA 4

1.1 Problemática 4

1.2 Solución 6

1.3 Visión 7

1.4 Misión 7

1.5 Objetivos generales 8

1.6 Objetivos específicos 8

1.7 Beneficios 9

1.8 Alcance 10

1.9 Cronograma 11

1.9.1 Cronograma resumido 12

Page 133: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

VIII

1.9.2 Cronograma detallado 12

1.10 Recursos 13

1.10.1 Recursos humanos 13

1.10.2 Recursos de hardware 13

1.10.3 Recursos de software 14

1.10.4 Total de presupuesto para la adquisición de los recursos 15

1.11 Metodología 15

1.11.1 Metodología del análisis 16

1.11.1.1 Especificaciones de requisitos del sistema (SRS) 16

1.11.1.2 Casos de uso 16

1.11.2 Metodología del Diseño 17

1.11.2.1 Escenarios 17

1.11.2.2 Diagrama de secuencia 17

1.11.2.3 Diagrama de actividad 17

1.11.2.4 Prototipo de la interfaz 17

1.11.3 Metodología de la implementación 18

1.11.3.1 Modelo 18

1.11.3.1.1 Componentes de la lógica de negocio 18

1.11.3.1.2 Componentes de estado del sistema 18

1.11.3.1.3 Componentes lógicos de acceso a datos 19

1.11.3.2 Vista 19

1.11.3.3 Controlador 19

Page 134: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

IX

1.11.4 Metodología de pruebas 20

CAPÍTULO 2 21

2 ANÁLISIS 21

2.1 Especificaciones de Requisitos de Software (SRS) 21

2.1.1 Usuarios del Sistema 21

2.1.2 Requisitos del sistema 22

2.2 Casos de Uso 25

2.2.1 Diagrama de Casos de Uso 25

2.2.2 Descripción de Casos de Uso 25

2.2.2.1 Autenticación 25

2.2.2.2 Consultar estado de cuenta 25

2.2.2.3 Apertura de caja 26

2.2.2.4 Recaudar valores 26

2.2.2.5 Consultar pagos 27

2.2.2.6 Generación de pagos 28

2.2.2.8 Entrega de valores 29

2.2.2.9 Anular cheque 29

2.2.2.10 Arqueo de caja 30

2.2.2.11 Cierre de caja 30

2.2.2.12 Depositar valores 31

2.3 Diagrama de Clases 31

CAPÍTULO 3 32

Page 135: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

X

3 DISEÑO 32

3.1 Escenarios 32

3.1.1 Autenticación: Todos los usuarios 32

3.1.2 Consultar estado de cuenta: Recaudador 33

3.1.3 Apertura de caja: Todos los usuarios 33

3.1.4 Recaudar valores: Recaudador 33

3.1.5 Consultar pagos: Tesorero 34

3.1.6 Generación de pagos: Tesorero 34

3.1.7 Girar cheque: Tesorero 35

3.1.8 Entrega de valores: Pagador 35

3.1.9 Anular cheque: Tesorero 35

3.1.10 Arqueo de caja: Todos los usuarios 36

3.1.11 Cierre de caja: Todos los usuarios 36

3.1.12 Depositar valores: Tesorero 37

3.2 Diagramas de secuencia 37

3.2.1 Autenticación: Todos los usuarios 37

3.2.2 Consultar estado de cuenta: Recaudador 38

3.2.3 Apertura de caja: Todos los usuarios 38

3.2.4 Recaudar valores: Recaudador 39

3.2.5 Consultar pagos: Tesorero 39

3.2.6 Generación de pagos: Tesorero 39

3.2.7 Girar cheque: Tesorero 40

Page 136: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XI

3.2.8 Entrega de valores: Pagador 40

3.2.9 Anular cheque: Tesorero 41

3.2.10 Arqueo de caja: Todos los usuarios 41

3.2.11 Cierre de caja: Todos los usuarios 42

3.2.12 Depositar valores: Tesorero 42

3.3 Diagramas de actividad 42

3.3.1 Autenticación: Todos los usuarios 42

3.3.2 Consultar estado de cuenta: Recaudador 43

3.3.3 Apertura de caja: Todos los usuarios 43

3.3.4 Recaudar valores: Recaudador 44

3.3.5 Consultar pagos: Tesorero 45

3.3.6 Generación de pagos: Tesorero 45

3.3.7 Girar cheque: Tesorero 46

3.3.8 Entrega de valores: Pagador 46

3.3.9 Anular cheque: Tesorero 47

3.3.10 Arqueo de caja: Todos los usuarios 47

3.3.11 Cierre de caja: Todos los usuarios 48

3.3.12 Depositar valores: Tesorero 48

3.4 Prototipo de la interfaz 49

3.4.1 Autenticación 49

3.4.2 Comprobantes 49

3.4.3 Consultas 50

Page 137: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XII

CAPÍTULO 4 51

4 IMPLEMENTACIÓN 51

4.1 Modelo 51

4.1.1 Scripts de base de datos 51

4.1.2 Entidades 53

4.1.3 Conexión a base de datos 62

4.1.4 Excepciones 64

4.1.5 Objetos de acceso a datos 64

4.1.6 Funciones de base de datos 69

4.1.7 Objetos de negocio 78

4.2 Vista 85

4.3 Controlador 97

CAPÍTULO 5 105

5 PRUEBAS 105

5.1 El ciclo de vida FLOOT 105

5.1.1 Prueba de caja negra 105

5.1.2 Prueba de clases 106

5.1.3 Prueba de integración de clases 106

5.1.4 Prueba de componente 106

5.1.5 Prueba de integración 106

5.1.6 Demostrar con el código 106

5.1.7 Prueba de regresión 107

Page 138: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XIII

5.1.8 Prueba de stress 107

5.1.9 Revisión técnica 107

5.1.10 Prueba de interfaz de ususario 107

CONCLUSIONES 108

ANEXOS 111

BIBLIOGRAFÍA 116

Page 139: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XIV

INDICE DE FIGURAS

Figura 3.2.1. Diagrama de secuencia de autenticación 38

Figura 3.2.2. Diagrama de secuencia de consulta estado de cuenta 38

Figura 3.2.3. Diagrama de secuencia de apertura de Caja 38

Figura 3.2.4 Diagrama de secuencia de recaudación valores 39

Figura 3.2.5 Diagrama de secuencia de consulta de pagos 39

Figura 3.2.6 Diagrama de secuencia de generación de pagos 40

Figura 3.2.7 Diagrama de secuencia de girar cheque 40

Figura 3.2.9 Diagrama de secuencia de entrega de valores 41

Figura 3.2.9 Diagrama de secuencia de anular cheque 41

Figura 3.2.10 Diagrama de secuencia de arqueo de caja 41

Figura 3.2.11 Diagrama de secuencia de cierre de caja 42

Figura 3.2.12 Diagrama de secuencia de depósito de valores 42

Figura 3.3.1 Diagrama de actividad de autenticación 43

Figura 3.3.2 Diagrama de actividad de consulta estado de cuenta 43

Figura 3.3.3 Diagrama de actividad de apertura de caja 44

Figura 3.3.4 Diagrama de actividad de recaudación valores 44

Figura 3.3.5 Diagrama de actividad de consulta pagos 45

Page 140: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XV

Figura 3.3.6 Diagrama de actividad de generación de pagos 45

Figura 3.3.7 Diagrama de actividad de girar cheque 46

Figura 3.3.8 Diagrama de actividad de entrega de valores 46

Figura 3.3.9 Diagrama de actividad de anular cheque 47

Figura 3.3.10 Diagrama de actividad de arqueo de caja 47

Figura 3.3.11 Diagrama de actividad de cierre de caja 48

Figura 3.3.12 Diagrama de actividad de depositar valores 48

Figura 3.4.1 Prototipo para autenticación 49

Figura 3.4.2 Prototipo de comprobantes para pagos y cobros 49

Figura 3.4.3 Prototipo para las consultas 50

Page 141: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

XVI

INDICE DE TABLAS

Tabla 1. Cronograma resumido 12

Tabla 2. Recursos humanos 13

Tabla 3. Recursos de hardware 14

Tabla 4. Recursos de software 15

Tabla 5. Presupuesto de recursos 15

Page 142: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

1

CAPÍTULO 1

MANUAL TÉCNICO

Objetivos técnicos

El acceso a la información del sitio Web solo sea posible para las

personas que estén vinculadas directamente con la empresa, esto

es posible mediante la asignación de usuario y contraseña.

Asignación de roles de usuario a nivel de aplicación.

Nuestra aplicación tiene la capacidad de soportar el flujo de

Page 143: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

2

usuarios activos realizando transacciones simultáneamente.

Definición tecnológica

Para cubrir la necesidad de un sistema integrado bajo Web, que facilite

sus actividades empresariales, al menor costo posible, y con tecnología

de punta, se ha utilizado tecnología OPEN SOURCE.

En base a los objetivos descritos, trabajaremos con las siguientes

herramientas:

Fedora Core 4.

Base de datos PostgreSQL.

J2EE.

Servidor Web Apache Tomcat.

JSP.

JavaScript.

Eclpise.

IREport.

Page 144: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

3

Fedora Core

Fedora Core (también conocida como Fedora Linux) es una distribución

Linux desarrollada por la comunidad Fedora y promovida por la

compañía Red Hat.

El objetivo del proyecto Fedora es conseguir un sistema operativo de

propósito general y basado exclusivamente en software libre con el

apoyo de la comunidad Linux. Los ingenieros de Red Hat continúan

participando en la construcción y desarrollo de este proyecto e invitan y

fomentan la participación de miembros de la comunidad Linux.

PostgreSQL

Es un sistema manejador de base de datos objeto-relación (ORDBMS)

liberado bajo la licencia BSD. PostgreSQL es pionero en muchos

conceptos que solo llegaron a estar disponibles en algunos sistemas de

base de datos comerciales. PostgreSQL es un código abierto

descendiente del código Berkeley original.

Mediante un sistema denominado MVCC (Acceso concurrente

multiversión) PostgreSQL permite que mientras un proceso escribe en

una tabla, otros accedan a la misma tabla sin necesidad de bloqueos.

Page 145: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

4

Cada usuario obtiene una visión consistente de lo último a lo que se le

hizo commit. Esta estrategia es superior al uso de bloqueos por tabla o

por filas común en otras bases, eliminando la necesidad del uso de

bloqueos explícitos.

J2EE

J2EE (Java 2 Enterprise Edition) que es la edición empresarial del

paquete Java creada y distribuida por Sun Microsystems. Comprenden

un conjunto de especificaciones y funcionalidades orientadas al

desarrollo de aplicaciones empresariales. Debido a que J2EE no deja

de ser un estándar, existen otros productos desarrollados a partir de ella

aunque no exclusivamente.

Algunas de sus funcionalidades mas importantes son:

Acceso a base de datos (JDBC)

Utilizado por BEA, IBM, Oracle, Sun, y Apache Tomcat entre otros.

Utilización de directorios distribuidos (JNDI)

Acceso a métodos remotos (RMI/CORBA)

Funciones de correo electrónico (JavaMail)

Page 146: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

5

Aplicaciones Web (JSP y Servlet)

Uso de Beans, etc.

Apache Tomcat

Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona

como un contenedor de servlets desarrollado bajo el proyecto Jakarta

en la Apache Software Foundation. Tomcat implementa las

especificaciones de los servlets y de JavaServer Pages (JSP) de Sun

Microsystems. Se le considera un servidor de aplicaciones.

Tomcat fue escrito en Java, funciona en cualquier sistema operativo que

disponga de la máquina virtual.

JSP

Java ha introducido las Páginas de Servidor Java (JSP) para la creación

de contenido Web. La tecnología JSP está construida sobre la base de

los servlet, mientras que los servlet requieren un conocimiento muy

extenso, un novato en Java puede aprender como hacer cosas

bastantes claras con JSP rápidamente.

La principal ventaja de JSP frente a otros lenguajes es que permite

integrarse con clases Java (.class) lo que permite separar en niveles las

Page 147: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

6

aplicaciones web, almacenando en clases java las partes que

consumen más recursos así como las que requieren más seguridad, y

dejando la parte encargada de formatear el documento html en el

archivo jsp. La idea fundamental detras de este criterio es el de separar

la lógica del negocio de la presentación de la información.

JavaScript

JavaScript, es un lenguaje interpretado, es decir, que no requiere

compilación, orientado a las páginas web, con una sintaxis semejante a

la del lenguaje Java y el Lenguaje C. Fue desarrollado

aproximadamente al mismo tiempo de qe dio a conocer Java. Es una

tecnología que permite a las páginas Web tener alguna funcionalidad de

programación en el navegador trabajando y manipulando las páginas

HTML.

Al contrario que Java, JavaScript no es un lenguaje orientado a objetos

propiamente dicho, ya que no dispone de Herencia, es más bien

orientado a eventos.

Eclipse

IDE multiplataforma libre para crear aplicaciones clientes de cualquier

Page 148: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

7

tipo. La primera y más importante aplicación que ha sido realizada con

este entorno es el afamado IDE Java llamado Java Development Toolkit

(JDT) y el compilador incluido en Eclipse, que se usaron para

desarrollar el propio Eclipse.

El proyecto Eclipse se divide en tres subproyectos:

El Core de la aplicación, que incluye el subsistema de ayuda, la

plataforma para trabajo colaborativo, el Workbench (construido

sobre SWT y JFace) y el Workspace para gestionar proyectos.

Java Development Toolkit (JDT), donde la contribución de Erich

Gamma ha sido fundamental.

Plug-in Development Enviroment (PDE), que proporciona las

herramientas para el desarrollo de nuevos módulos.

IReport

La herramienta iReport es un constructor / diseñador de informes visual,

poderoso, intuitivo y fácil de usar para JasperReports escrito en Java.

Este instrumento permite que los usuarios corrijan visualmente informes

complejos con cartas, imágenes, subinformes, etc. iReport está además

integrado con JFreeChart, una de la biblioteca gráficas OpenSource

Page 149: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

8

más difundida para Java. Los datos para imprimir pueden ser

recuperados por varios caminos incluso múltiples uniones JDBC,

TableModels, JavaBeans, XML, etc.

Las características importantes de iReport son:

100% escrito en JAVA y además OPENSOURCE y gratuito.

Maneja el 98% de las etiquetas de JasperReports

Permite diseñar con sus propias herramientas: rectángulos, líneas,

elipses, campos de los textfields, cartas, subreports (subreportes).

Soporta internacionalización nativamente.

Browser de la estructura del documento.

Recopilador y exportador integrados .

Soporta JDBC.

Soporta JavaBeans como orígenes de datos (éstos deben

implementar la interface JRDataSource).

Incluye Wizard’s (asistentes) para crear automáticamente informes .

Tiene asistentes para generar los subreportes

Tiene asistentes para las plantillas.

Facilidad de instalación.

Page 150: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

9

CAPÍTULO 2

DICCIONARIO DE DATOS

Tabla Abono

En esta tabla se registran los item de las formas de pago pertenecientes

a un compronate. Tiene relacion con las tablas “Comprobante”,

Page 151: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

10

“CatalogoValor”, “Banco” y “Tarjeta”.

Tabla Banco

En la tabla “Banco” se almacena información de las entidades bancarias

con las que trabaja el sistema. Tiene relación con la tabla “Estado”.

Tabla Bitacora

En la tabla “Bitacora” constan todas las obligaciones que tenemos con

nuestros proveedore y todas las deudas de nuestros clientes. Tiene

relación con las tablas “Documento”, “Empresa”, “Estado”, “Naturaleza”,

“Persona” y “Usuario”.

Tabla Caja

En esta tabla constan las características de las cajas con las que

trabaja la aplicación. Tiene relación con la tabla “Estado”.

Tabla CatalogoValor

En la tabla “CatalogoValor” se almacena información de las formas de

pago con las que trabaja el sistema. Tiene relación con la tabla

“Estado”.

Page 152: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

11

Tabla Comprobante

En esta tabla consta la información de los comprobantes emitidos por el

sistema. Tiene relación con la tabla “Parte”, “Persona” y “Estado”.

Tabla ComprobanteItem

En esta tabla se registran los item de los abonos a los documentos

pertenecientes a un compronate. Tiene relacion con las tablas

“Comprobante” y “Bitacora”.

Tabla Documento

En esta tabla se almacena información de los documentos con los que

trabaja la aplicacion. Tiene relación con la tabla “Estado”.

Tabla DocumentoSecuencia

En esta tabla se registra la información de las secuencias de los

documentos utilizados en la aplicación. Tiene relación con la tabla

“Documento”.

Tabla Empresa

En la tabla “Empresa” consta la información de la empresa, matriz y

sucursales. Tiene relación con la misma tabla (recursiva).

Page 153: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

12

Tabla Estado

En la tabla “Estado” se almacena información de los estados con los

que trabaja el sistema.

Tabla Naturaleza

En esta tabla se almacena información de la naturaleza de las deudas y

obligaciones.

Tabla Parte

En esta tabla se almacenan las características de los partes de caja

aperturados y cerrados. Tiene relacion con las tablas “Caja”, “Cajero”,

“Empresa”, “Turno” y “Usuario”.

Tabla Persona

En la tabla “Persona” se almacena información básica de las personas

naturales y jurídicas con las que tenemos obligaciones comerciales.y

tienen deudas con la compañía, ademas se registra la información de

los empleados.

Tabla Procedencia

En esta tabla se almacena los nombre de las tablas de las aplicaciones

Page 154: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

13

externas con las que se relaciona nuestra aplicación.

Tabla Rol

En esta tabla se almacena los diferentes roles a ser asignados a los

usuarios. Tiene relación con la tabla “Estado”.

Tabla Tarjeta

En la tabla “Tarjeta” se almacena información de las tarjetas de crédito,

débito y de compra con las que trabaja el sistema. Tiene relación con la

tabla “Estado”.

Tabla Turno

En esta tabla se almacena información de los turnos a ser asignados a

las cajas. Tiene relación con la tabla “Estado”.

Tabla Usuario

En esta tabla se almacena la información de los usuarios que pueden

acceder al sistema. Tiene relación con la tabla “Estado”.

Tabla UsuarioRol

En la tabla “UsuarioRol” se registra la asignación de los roles a los

Page 155: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

14

usuarios. Tiene relación con las tablas “Usuairo”, “Rol” y “Estado”.

CAPÍTULO 3

MANUAL DE INSTALACIÓN

Instalación de JDK 1.5.0 en Windows

Doble click sobre el archivo de instalación jdk-1_5_0_03-windows-

Page 156: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

15

i586-p-1.exe.

Se extraen los archivos necesarios para la instalación.

En la ventana de bienvenida del asistente de instalación presionar

el botón “Next”

Aceptar los términos y condiciones de uso presionando el botón “I

Agree”.

Page 157: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

16

Ingresar la ruta de instalación, ejemplo: “C:\Java\jdk1.5.0_03”.

Presionar el botón “Next”.

Presionar “Next” para iniciar la instalación. La instalación de jdk

dura pocos minutos. Presionar el botón “Finish” para finalizar la

instalación.

Instalación de Apache Tomcat 5.0 en Windows

Doble click sobre el archivo de instalación jakarta-tomcat-5.0.28.

Page 158: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

17

En la ventana de bienvenida del asistente de instalación presionar

el botón “Next”.

Aceptar los términos y condiciones de uso presionando el botón “I

Agree”.

Seleccionar los componentes a instalarse y presionar el botón

“Next”.

Page 159: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

18

Ingresar la ruta de instalación, ejemplo: “C:\Java\Tomcat 5.0”.

Presionar el botón “Next”.

Indicar el puerto de conexión, usuario administrador y contraseña.

Presionar el botón “Next”.

Page 160: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

19

Indicar la ubicación de la máquina virtual de java y presionar el

botón “Install”.

La instalación de Apache Tomcat solo dura unos minutos.

Presionar el botón “Finish” para finalizar la instalación.

Page 161: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

20

Instalación de PostgreSQL 8.0.0-beta4 en Windows

Doble click sobre el archivo de instalación postgresql-8.0.0-

beta4.msi.

En la ventana de bienvenida se presenta las notas de instalación,

presionar el botón “Next”.

Seleccionar los componentes a instalarse y establecer la ruta de

instalación, ejemplo: “C:\Java\PostgreSQL\8.0.0-beta4”. Presionar el

botón “Next”.

Page 162: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

21

En la configuracion del servicio, se presenta el nombre del servicio,

la cuenta y el servidor (estos datos son modificables). Ingresar la

contraseña y presionar “Next”.

Se presenta el número de puerto, la localidad y la codificación de la

base (estos datos son modificables). Establecer el nombre del

usuario administrador y la contraseña, presionar “Next”.

Page 163: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

22

Habilitar los lenguajes procedimentales, presionar “Next”.

Seleccionar los módulos adicionales que se requieran istalar,

presionar “Next”.

Page 164: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

23

Presionar “Next” para iniciar la instalación.

La instalación de PostgreSQL dura pocos minutos.

Autamáticamente se presenta el mensaje de instalación del cluster

de la base.

Page 165: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

24

Presionar el botón “Finish” para finalizar la instalación.

Instalación de la aplicación

Ingresar al administrador de PostgreSQL, PgAdminIII

Page 166: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

25

Ingresar la contraseña del usuario administrador

Crear una nueva base con el nombre “TESORERIA”.

Seleccionar la base “TESORERIA”, presionar click derecho y

seleccionar la opción “Restaurar” en el menú emergente.

En la ventana de restauración, ubicar el archivo Tesoreria.backup y

presionar el botón “OK”.

Page 167: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

26

Luego de restaurada la base, presionar el botón “Hecho”.

Salir de administrador de base PgAdminIII.

En el Explorador de Windows, ubicar la ruta de instalación de

Tomcat, ejemplo: “C:\Java\Tomcat 5.0”.

Page 168: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

27

Ir a la ruta “\Tomcat 5.0\webapps”.

Copiar en esta ruta la carpeta Tesoreria.

Page 169: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

28

Ir al Panel de Control -> Herramientas Administrativa -> Servicios

Iniciar o reiniciar el servicio Apache Software Foundation Tomcat

5.0.

En iExplorer, en la barra de direccion, escribir la ruta

“http://localhost:8080/Tesoreria/pages/Autenticar.jsp” .

En el menú de iExplorer, seleccionar la opción Herramientas ->

Opciones de Internet.

En la ventana de Opciones de Internet, en la sección Página de

inicio, presionar el botón “Usar actual”.

Page 170: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

29

CAPÍTULO 4

MANUAL DE USUARIO

Autenticación

La ventana inicial del sistema es la de autenticación de usuario.

Ingresar el nombre de usuario y la contraseña para poder ingresar a la

página de inicio.

Page 171: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

30

En la página de inicio se encuentra una introducción acerca del modulo

y se presenta el menú de acuerdo al rol del usuario.

Page 172: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

31

Configuración

En el menú de configuración se presentan las opciones de

mantenimiento para banco, caja, usuario, rol, asignación de rol,

catalogo de valor, tarjeta y turno. Estoa mantenimientos se utilizan para

ingresa nueva información o actualizar la existente.

Recaudación

Page 173: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

32

Emisión de comprobante CI

Esta opción permite la emisión de los comprobantes de ingreso.

La secuencia es asignada de manera automática al momento de

guardar.

El comprobante se visualiza en Acrobat Reader.

Page 174: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

33

Reimpresión y anulación

Esta poción permite la reimpresión de los comprobantes de

Page 175: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

34

ingreso así como su anulación.

Pagaduría

Generación de pagos

Con esta opción se procede a la aprobación de los pagos a

proveedores.

Page 176: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

35

Emisión de cheques

Esta opción permite la emisión de cheques a proveedores.

Anulación de cheques

Esta opción permite la anulación de los cheques emitidos. El

formulario se lo visualiza en Acrobat Reader.

Page 177: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

36

Page 178: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

37

Emisión de comprobante CE

Esta opción permite la emisión de los comprobantes de ingreso.

La secuencia es asignada de manera automática al momento de

guardar.

El comprobante se visualiza en Acrobat Reader.

Reimpresión y anulación

Esta poción permite la reimpresión de los comprobantes de

egreso así como su anulación.

Page 179: INTRODUCCIÓNrepositorio.ug.edu.ec/bitstream/redug/18951/1/UG-FCMF-B... · 2017-10-22 · Factura Conformada: Título de valor aceptado por el cliente, ... Es un documento no negociable

38