ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo...

355
ÍNDICE GENERAL AGRADECIMIENTO I DEDICATORIA II TRIBUNAL DE GRADUACIÓN III DECLARACIÓN EXPRESA IV RESUMEN V ÍNDICE GENERAL VI CAPÍTULO 1 MANUAL TÉCNICO 1 1.1 Introducción 1 1.2 MVC: Model View Controller 2 1.3 Struts Framework 5 1.4 Estructura 6 1.5 Diagrama de Secuencia. 6 1.6 Diagrama de Clases 8 1.7 Diagrama de Colaboración 9 1.8 Diagrama de objetos relación modulo de cartera 10 1.9 Script para la creación de las tablas 11 1.10 Codificación de los componentes 28

Transcript of ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo...

Page 1: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

ÍNDICE GENERAL

AGRADECIMIENTO I

DEDICATORIA II

TRIBUNAL DE GRADUACIÓN III

DECLARACIÓN EXPRESA IV

RESUMEN V

ÍNDICE GENERAL VI

CAPÍTULO 1

MANUAL TÉCNICO 1

1.1 Introducción 1

1.2 MVC: Model View Controller 2

1.3 Struts Framework 5

1.4 Estructura 6

1.5 Diagrama de Secuencia. 6

1.6 Diagrama de Clases 8

1.7 Diagrama de Colaboración 9

1.8 Diagrama de objetos relación modulo de cartera 10

1.9 Script para la creación de las tablas 11

1.10 Codificación de los componentes 28

Page 2: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

CAPÍTULO 2

MANUAL DE USUARIO 134

2.1. Funcionalidad del Módulo 134

2.2. Ingreso al Sistema. 135

Page 3: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

0

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en Sistemas Computacionales

“Desarrollo del Módulo de Cartera”

PROYECTO DE GRADO

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

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

Sthefanie de Lourdes Izurieta Jaramillo

Ernestina Yesenia Suárez Jiménez.

Víctor Arcángel Soriano Cruz

G U A Y A Q U I L - E C U A D O R

AÑO: 2 0 0 6

Page 4: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

1

ÍNDICE GENERAL

AGRADECIMIENTO I

DEDICATORIA II

TRIBUNAL DE GRADUACIÓN III

DECLARACIÓN EXPRESA IV

RESUMEN V

ÍNDICE GENERAL VI

CAPITULO 1:

INTRODUCCIÓN

1.1 Problemáticas 1

1.2 Solución de las problemáticas 3

1.3 Definición del proyecto del modulo cartera 5

1.4 Visión 8

1.5 Misión 8

1.6 Objetivos del proyecto 8

1.6.1 Objetivos generales 8

1.6.2 Objetivos específicos 9

1.7 Alcances del proyecto 10

1.8 Beneficios del proyecto 11

1.9 Cronograma 12

Page 5: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

2

1.10 Recursos necesarios 13

1.10.1 Recurso de Hardware 13

1.10.2 Recurso de Software 14

1.10.3 Recurso Humano 15

1.11 Metodología del proyecto 15

1.11.1 Metodología del Análisis 15

1.11.2 Metodología del Diseño 18

CAPITULO 2:

ANÁLISIS

2.1 Levantamiento de información 27

2.1.1 Introducción 27

2.1.2 Métodos de levantamiento de información 28

2.1.2.1 Entrevista 28

2.1.2.2 Observación 29

2.1.2.3 Investigación tecnológica (Internet) 30

2.1.3 Conclusiones 30

2.1.4 Análisis de Requerimiento 31

2.2 Diccionario de datos 35

2.3 Diagrama de flujo de datos (DFD) 43

2.3.1 Flujo de procesos de Seguridad de la Aplicación 43

2.3.2 Flujo de procesos de Auditoria de la Aplicación 44

Page 6: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

3

2.3.2 Flujos de procesos del módulo de cartera 45

2.4 Diagrama caso de usos 48

2.4.1 Casos de uso Seguridad de la Aplicación 48

2.4.2 Casos de uso Auditoria de la Aplicación 49

2.4.3 Casos de uso para módulo de cartera 50

2.5 Descripción de Casos de Uso 56

2.5.1 Detalle de Usos Seguridad de la Aplicación 56

2.5.2 Detalle de Usos Auditoria de la Aplicación 58

2.5.3 Detalle de Usos Modulo Cartera 59

2.6 Diagrama de objeto y relación 68

2.6.1 Módulo de Cartera 68

2.7 Diagrama de secuencias 70

2.7.1 Diagrama de Secuencias para Seguridad de la Aplicación 71

2.7.2 Diagrama de Secuencias para Auditoria de la Aplicación 75

2.7.3 Diagrama de Secuencias Módulo Cartera 76

CAPITULO 3

DISEÑO

3.1 Diagrama de clase 89

3.1.1 Diagrama de Clase para la Seguridad de la Aplicación 90

3.1.2 Diagrama de Clase para Auditoria de la Aplicación 90

3.1.3 Diagrama de Clase Módulo Cartera 91

Page 7: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

4

3.2 Generalización 103

3.2.1 Esquema de Generalización Modulo Cartera 103

3.3 Diagrama Objeto-Relación con atributos 104

3.3.1 Seguridad de la Aplicación 104

3.3.1 Auditoria de la Aplicación 105

3.3.1 Diagrama O-R Módulo de Cartera 105

3.4 Detalle de Tablas del Módulo Cartera 108

CAPITULO 4

CODIFICACION

4.1 Desarrollo de Sistema 116

4.1.1 Creación de la Base de Datos 116

4.1.2 Creación de los Componentes (Módulos) 116

4.1.2.1. Seguridad 117

4.1.2.2. Auditoria 118

4.2 Principales Técnicas de Desarrollo 118

4.2.1 Técnicas Estructuradas con M.O.O. 118

4.2.2 Codificación Utilizando Strusts 119

4.3 Calidad del Sistema 120

4.3.1 Cumpliendo los Requerimientos o Alcances 120

4.3.2 valor Agregado (Otros Alcances) 120

Page 8: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

5

CAPITULO 5

IMPLEMENTACIÓN Y PRUEBAS DEL SISTEMA

5.1 Elementos Físicos 122

5.2 Elementos Lógicos 123

5.3 Recurso Humano 124

5.4 Infraestructuras 124

5.5 Capacitación de Usuarios 125

5.6 Pruebas del Sistema 125

5.6.1 Pruebas con Módulo Operaciones 125

5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo Contabilidad 127

5.7 Recomendaciones y Conclusiones 128

5.7.1 Recomendaciones 128

5.7.2 Conclusiones 129 5.8 Glosario Técnico 130

Page 9: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

1

CAPITULO 1

1. INTRODUCCIÓN

1.1. Problemáticas

Una empresa dedicada a la actividad comercial que no cuenta con un

sistema automatizado de oficina ERP, será nuestro caso de estudio a

resolver, para esto nos valdremos de toda las fuentes necesarias para

recopilar la información convertidas en datos útiles para la realización de

este proyecto. Siendo la problemática la que a continuación se detalla.

La mayoría de las empresas al no contar con un sistema organizado y

automatizado no podrán realizar sus operaciones de manera eficiente y

que estas vayan de la mano con todos los módulos del sistema financiero,

para nuestro caso, siendo el módulo de cartera el asignado; el problema

radica en la recuperación de valores pendiente de cobro por los

siguientes problemas:

La falta de control de pagos: El departamento encargado no cuenta

con las herramientas necesarias para el seguimiento oportuno en el

Page 10: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

2

cobro de valores pendientes; considerando además, los diferentes

factores de situación político-económico del país, por lo cual un

cliente involuntariamente pudiera llegar a caer en mora.

No cuentan con las herramientas necesarias para establecer

acuerdos de refinanciamientos o reestructuración de cuentas por

cobrar: El departamento debe estar al día con las políticas internas

establecidas o por las que crean los entes reguladores.

El no tener un sistema integrado con los otros módulos: Lo cual se

debe a la poca comunicación con los departamentos relacionados y

por ende, la falta de actualización de las bases que contiene la

información de los clientes en mora.

A continuación se muestra un esquema Figura 1.1.1 de las

problemáticas del módulo de cartera.

Figura 1.1.1 Principales Problemáticas de Cartera

Page 11: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

3

1.2. Solución de las problemáticas

Una vez que se han determinado los puntos críticos, se da una solución

general al mismo. El desarrollo de un sistema ERP (Enterprise Resource

Planning) no requiere que un negocio cambie sus prácticas, los ERP se

adaptan a las reglas de los negocios, y operan vía bases de datos

integradas y básicamente en un conjunto de datos, ya que los ERP son

un conjunto integrado de finanzas, distribución y manufactura con

interfases de algunas otras aplicaciones, cada uno de ellos se

complementan para dar un proceso óptimo del negocio; siendo los

módulos a desarrollar:

Módulo de Ventas: Venta de bienes y/o servicios de la organización

Módulo de Compras: Adquisición de bienes y/o servicios para la

organización

Modulo de Presupuesto: Gestión presupuestario para los diferentes

departamentos.

Módulo de Contabilidad: Control de todo el plan de cuentas y estado

financiero de la empresa.

Modulo de Tesorería: Cancelación de valores por pagar y por cobrar

Módulo de Cartera: Recuperación de cartera corriente o vencida.

Módulo de Activo Fijo: Registro de todos lo bienes tangibles e

intangibles con los que cuenta la empresa.

Page 12: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

4

Módulo de Recursos Humanos: Control y evaluación constante del

recurso humano, así como también de la convocatoria interna o

externa para la ocupación de alguna vacante en determinada área.

Módulo de Rol de Pago: Se llevará un registro de los ingresos y

egresos del empleado.

Módulo de Mercadotecnia: Análisis de estrategias y competencia

para enfrentar los retos del mercado.

Módulo de Operaciones: Área encaminada al control y/o entrega de

productos cancelados cuya transacción finaliza al momento de llegar

al cliente en óptimas condiciones y con guía de remisión como

constancia de la misma.

Módulo de Inventario: Registro de todos los movimientos de bodega.

Estos módulos se desarrollaran con una tecnología avanzada, de una

arquitectura de 3 capas:

Capa de Presentación: Se define el diseño de Interfaz de

Usuario.

Capa de Negocios: Las entidades empresariales, que representa

objetos que van a ser manejados o consumidos por toda la

aplicación; los componentes no deben tener acceso directo a la

base datos pero deben utilizar componentes lógicos de acceso a

datos.

Page 13: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

5

Capa de acceso a los datos: Uso de las transacciones siempre

que se acceda a la base de datos. No colocar elementos de

conexión de la base de datos en formularios. Evitar cualquier

código de la lógica del negocio en los procedimientos

almacenados.

En el siguiente gráfico Figura 1.1.2 se puede apreciar de una manera

más clara la arquitectura de 3 capas.

Interface de Usuario(Visual Basic,

Java, ..)Lógica del Negocio

(C++, Java, ..)

Servidor de BDs(C++ & SQL, ..)

Interface de Usuario(Visual Basic,

Java, ..)Lógica del Negocio

(C++, Java, ..)

Servidor de BDs(C++ & SQL, ..)

Figura 1.1.2 Arquitectura De Tres Capas

1.3. Definición del proyecto del modulo cartera

En los actuales momentos nos encontramos en una economía global y

competitiva, por lo cual es indispensable que los administradores de las

empresas desarrollen estrategias que les ayuden a satisfacer las

necesidades de clientes, quienes son cada vez más exigentes;

Page 14: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

6

anticipándonos a sus requerimientos y dándoles un trato personalizado a

cada uno de ellos.

En la actualidad, las compañías buscan implementar sistemas para que

manejen todas las áreas del negocio de tal forma que estén integrados.

Muchas han buscado nuevas herramientas tecnológicas para poder

optimizar los procesos operativos internos para así ahorrar costos y ser

más eficientes, lo que tiene como consecuencia un mejor posicionamiento

y la atracción o bien conservación de clientes.

Los sistemas de ERP forman parte fundamental de las estrategias de las

grandes empresas actuales, y para el desarrollo de los mismos

utilizaremos la tecnología OPEN SOURCE la cual nos permitirá llevar a

cabo nuestros objetivos.

Para nuestro caso de estudio módulo de cartera podemos acotar lo

siguiente:

El Sistema de Cartera surge como una necesidad de la empresa para

satisfacer a sus clientes más importantes otorgando un crédito definido a

través de políticas generales de la empresa.

Los clientes más importantes son evaluados en su solvencia moral y

económica como un medio de garantizar la recuperabilidad de la cartera.

Los niveles de autorización de crédito para evitar posibles malas

interpretaciones o autorizaciones de crédito inadecuadas, son evaluados

en el interior de la empresa.

Page 15: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

7

Por lo tanto esto no constituye un alto riesgo crediticio, puesto que el

crédito es celosamente vigilado por el Jefe del Área (Autorizador) y en

casos de montos más elevados para las compañías relacionadas, por el

Gerente de la empresa. Por tanto existe un menor riesgo de contraer

cuentas malas o incobrables.

En muchos casos de créditos las empresas otorgan una extensión del

crédito en un plazo específico con cargo de intereses. En otras empresas

esto no se cumple, por lo tanto las Cuentas por Cobrar se hacen efectivas

en el plazo indicado y se convierten en un activo verdadero en ese

tiempo.

Esta aplicación tiene como finalidad manejar toda la información referente

a la cartera, la misma que interactúa con los módulos de Ventas,

Tesorería, Contabilidad, Rol de Pagos, entre otros.

Por ejemplo, la unión entre las áreas de cartera, venta y contabilidad es

cada vez más importante, pues ayudan a modernizar los procesos

internos y mejorar la eficiencia. Los empleados pueden, por ejemplo,

utilizar un proceso seguro para presentar informes de cobros, con muy

poco trámite, simplemente un sistema que es utilizado para unir diferentes

elementos de la organización, y por lo tanto ayuda a acelerar los procesos

de negocios y hacer mejor uso de los recursos.

Page 16: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

8

Dicho enfoque, debe por supuesto, caracterizarse por altos niveles de

desempeño, un bajo costo y, en términos prácticos, flujos de trabajo y

reglas.

1.4. Visión

Llevar un control exhaustivo de todos los clientes en mora, lo cual me

permita de una manera eficiente disminuir la cartera en el menor tiempo

posible generando ingresos que podrán ser reutilizados en beneficio de la

organización.

1.5. Misión

Es proveerles una herramienta funcional que ayuden a mejorar la

eficiencia en el desarrollo de sus actividades, liberándolos de los

procesos manuales, proporcionando los instrumentos necesarios que

conlleven a un mejor análisis en el soporte de la toma de decisiones.

1.6. Objetivos del proyecto

1.6.1. Objetivos generales

Automatizar las funciones que se efectúan en el área de cuentas

por cobrar o cartera de tal manera que permita realizar las

operaciones de manera eficiente y efectiva.

Page 17: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

9

La necesidad de responder a los requerimientos de la Gerencia

de otorgar créditos a sus principales clientes dándole facilidades

de pago, acorde a su solicitud previamente establecida.

Facilitar el manejo de gran volumen de información en el área de

cartera.

Obtener una gran variedad de reportes, para que de esta manera

se puedan tomar decisiones.

Satisfacer las necesidades de los usuarios en áreas relacionadas

a los clientes (cartera).

Acceder a la información de forma rápida, fácil y completa.

1.6.2. Objetivos específicos

A través de la toma de decisiones, mejorar el desempeño de las

actividades de a Empresa; proporcionando información oportuna

a todo nivel de la corporación.

Ofrecer una total flexibilidad y parametrización en la definición del

control de tarjetas de crédito.

Proporcionar una conciliación de los índices financieros.

Recuperar el dinero o efectivo que son generados por concepto

de intereses en mora de pagos vencidos.

Manejar la información de los datos de manera confidencial a

través de control de accesos y claves a usuarios.

Page 18: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

10

Proporcionar una base sólida para la integración de los otros

módulos.

Reducción de tiempo de ejecución entre de procesos.

1.7. Alcances del proyecto

El presente proyecto por su característica particular nos permitirá de

manera oportuna el cobro y refinanciamiento de cartera vencida, de tal

forma se puedan realizar pagos parciales, mediante acuerdos

internos o políticas establecidas al aperturar un crédito.

Establecer un control riguroso en la oportuna cancelación de vouchers

en las ventas realizadas con tarjetas de crédito (crédito diferido),

canceladas y pendientes de cobro.

Análisis de las cuentas vencidas (30-60-90 días o superior) y

asignación de los respectivos intereses de acuerdo a las

estiputalaciones establecidas por la Superintendencia de Bancos.

Se clasificara a los clientes por su puntualidad en los pagos (A, B, C)

con el objetivo de emitir un reporte que tiene un historial crediticio con

varios meses de vencimientos o endeudamiento.

Generar reportes que permitan visualizar las ventas a créditos y el

vendedor que realizo dichas ventas.

Creación de directorio de clientes con información detallada de cada

uno de ellos.

Page 19: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

11

Generar un proceso de cancelación de tarjetas de crédito, en el cual

se pueda controlar las tarjetas canceladas, para posteriormente emitir

un reporte de tarjetas y su vez le permitirá al modulo de contabilidad y

tesorería realizar la conciliación de todas las tarjetas que la empresa

maneje.

Efectuar o elaboración de crédito a clientes y débitos a clientes, los

cuales los utilizaremos para aumentar o disminuir la deuda del cliente.

Control de cheque protestado en el cual se emitirá un debito a cliente

por el concepto de protesto de cheque de acuerdo al valor que cobra

el banco por dicha transacción.

Realizar el pronto pago, esta transacción se maneja según la empresa

tiene un % de descuento por concepto de pagos anticipados y se

realiza una nota de crédito para la disminución de la deuda.

Reporte de cheques posfechado, para que tesorería los envíe al

cobro.

1.8. Beneficios del proyecto

Automatizar Procesos.

Proporcionan mayor integración de la información y modernización de

los procesos de negocio para permitirle a la organización mayor

eficiencia y productividad.

El de unir el sistema ERP a aplicaciones Web.

Page 20: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

12

Utiliza métodos, procesos y herramientas en lo que prime la calidad de

desarrollo.

Extender sus alcances, reducir sus costos, y bajar sus tiempos de

respuesta para proporcionar un fácil acceso a los clientes, empleados

y proveedores.

Ayuda a los ejecutivos a realizar un seguimiento más estrecho de las

operaciones para poder modificar sobre la marcha los planes

comerciales.

1.9 Cronograma Reducido. Ver Cronograma Completo Anexo “A”

Nombre de la Tarea Duración Inicio Comienzo Pre Nombre de los Recurso

- Propuesta 25 días 18/01/2006 17/02/2006 SIzurieta35%, Vsoriano35% y Ysuarez 30%

Ambito del Problema 3 días 18/01/2006 20/01/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Definición Objetivos y Alcances 5 días 23/01/2006 27/01/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

Refinamiento de información inicial 8 días 30/01/2006 08/02/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Definición y Beneficios del Proyecto 6 días 09/02/2006 15/02/2006 SIzurieta35%, Vsoriano35% y Ysuarez 30%

Recursos de Software, Hardware y Humano 1 día 16/02/2006 16/02/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Metodología del Proyecto 1 día 17/02/2006 17/02/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

- Análisis del Proyecto 37 días? 17/02/2006 06/04/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Levantamiento de la Información 1 día 17/02/2006 17/02/2006 SIzurieta35%, Vsoriano35% y Ysuarez 30%

Análisis de Requerimiento 1 día 18/02/2006 18/02/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Diccionario de Datos 1 día 20/02/2006 20/02/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

Diagrama de flujo de datos 3 días 23/02/2006 27/02/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Flujo de proceso del módulo de seguridad-auditoria 2 días 28/02/2006 01/03/2006

SIzurieta35%, Vsoriano35% y Ysuarez 30%

Flujos de procesos del módulo de cartera 5 días 02/03/2006 08/03/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Diagrama caso de usos 2 días 10/03/2006 13/03/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

Descripción del caso de uso 5 días 14/03/2006 18/03/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Diagrama de objeto y relación 6 días 20/03/2006 27/03/2006 SIzurieta35%, Vsoriano20% y Ysuarez 25%

Diagrama de secuencias 9 días? 27/03/2006 06/04/2006 17 SIzurieta30%, Vsoriano30% y Ysuarez 35%

- Diseño del Proyecto 7 días? 07/04/2006 17/04/2006 18 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Page 21: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

13

Diagrama de Clases 6 días? 07/04/2006 14/04/2006 SIzurieta35%, Vsoriano35% y Ysuarez 30%

Diseño de Base de Datos 4 días? 12/04/2006 17/04/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

- Desarrollo del Módulo Cartera 64 días? 20/04/2006 18/07/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

Desarrollo de la Interfaz 2 días? 20/04/2006 21/04/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Programación, conexión 53 días? 24/04/2006 05/07/2006 SIzurieta35%, Vsoriano35% y Ysuarez 30%

Integración con otros módulos 7 días 10/07/2006 18/07/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

- Pruebas Preliminares 11 días? 19/07/2006 02/08/2006 SIzurieta25%, Vsoriano30% y Ysuarez45%

Revisión Preliminar 4 días? 19/07/2006 24/07/2006 SIzurieta33,3%, Vsoriano33,4% y Ysuarez 33,3%

Corrección de Proyecto y Documentación Final 3 días? 25/07/2006 27/07/2006

SIzurieta30%, Vsoriano30% y Ysuarez 35%

Corrección Varias 2 días? 28/07/2006 31/07/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

Pruebas Finales 3 días? 31/07/2006 02/08/2006 SIzurieta30%, Vsoriano30% y Ysuarez 35%

1.10. Recursos necesarios

Se detallarán todos los equipos Hardware, Software y el recurso humano

que se necesitará para la implementación del proyecto asignado.

1.10.1. Recurso de Hardware

Para el desarrollo de la aplicación se necesitara:

2 computadoras con las siguientes características:

Monitores de 15’’

Memorias de 256 MB

Procesadores Pentium IV de 2.8 GH

80 GB de Disco Duro

Fax MODEM 56 Kbps

Tarjetas de video 32 Mb.

Flash memory (Pen Drive)

Unidades de CD WRITER SAMSUNG

Impresora de inyección a tinta

Page 22: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

14

1.10.2. Recurso de Software

J2SE Development Kit 5.0 Update 3

J2SE Runtime Environment Kit 5.0 Update 3

Eclipse 3.1

Ireports 1.2.5

Adobe Acrobat 5.0

Servidor de Aplicaciones Apache Tomcat/5.0.28

Macromedia Dreamweaver 8

Macromedia Flash MX

Base de datos: PostgresSQL 8.1

EMS SQL Manager 2005 for PostgresSQL Version

3.6.0.1

Sistema Operativo Windows XP Profesional con Server

Pack 2.

Utilitarios Microsoft Office

Linux Distribución Fedora Core 4.0.

Corel Draw.

Page 23: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

15

1.10.3. Recurso Humano

Grupo de desarrolladores de 3 personas:

Sthefanie de Lourdes Izurieta Jaramillo,

Víctor Arcángel Soriano Cruz

Ernestina Yesenia Suárez Jiménez

Cada uno de los cuales con diferentes destrezas, habilidades y

aptitudes en las diferentes ramas necesarias para la elaboración de

este proyecto, con su perfecta compaginación y valiosa utilidad de

las mismas.

1.11. Metodología del Proyecto

1.11.1. Metodología del Análisis

Análisis Orientado a Objetos (OOA por sus siglas en inglés de

Object Oriented and Análisis) El objetivo del análisis orientado a

objetos es desarrollar una serie de modelos que describan el

software de computadora al trabajar para satisfacer un conjunto de

requisitos difundidos por el usuario. Forma un modelo multiparte

para satisfacer este objetivo.

Con este modelo de análisis se busca definir todas las CLASES

(estructuras de datos y las operaciones asociadas con ese tipo) que

son relevantes y OBJETOS (contiene datos y las funciones que

operan sobre esos datos).

Page 24: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

16

Esta metodología, conduce a un modelo del dominio del problema

con cuatro principios esenciales: abstracción, encapsulamiento,

polimorfismo y herencia.

Dichos elementos juegan papel fundamental en la programación

orientado a objetos. Hablar de un objeto, es referirnos a algo

abstracto acerca del cual almacenamos datos y los métodos que

controlan a esos datos, representaciones verdaderas de objetos que

tenemos en la vida real, mediante el uso e implementación de la

metodología de “Programación Orientada a Objetos”, intentamos

crear objetos de software que tengan correlación con los objetos del

mundo real en la solución que intentamos implementar, o sea, en el

módulo de cartera de un sistema de gestión comercial, vamos a

crear nuestro objeto CLIENTE, que tendrá relaciones con nuestros

objetos CLIENTE NATURAL y CLIENTE JURÍDICO, utilizando

GENERALIZACIÓN en los mismos, de manera que CLIENTE

NATURAL tenga los campos exclusivos para ese objeto y CLIENTE

JURÍDICO de igual forma, mientras que CLIENTE tendrá los datos

en común, la aplicación de esta concepción de trabajo es la que nos

permite aislar cada componente del resto de la aplicación y de esa

forma aprovechar en mayor medida nuestro esfuerzo, nuestra

concentración en el buen funcionamiento de dichos componentes,

Page 25: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

17

nuestro control sobre ellos, mas prolijidad en la codificación y por

sobre todas las cosas REUTILIZAR EL CÓDIGO escrito.

Definición de las características:

Abstracción: Es la capacidad de un objeto de cumplir sus funciones

independientemente del contexto en el que se lo utilice; o sea, un

objeto siempre expondrá sus mismas propiedades y dará los mismos

resultados a través de sus eventos, sin importar el ámbito en el cual

se lo haya creado.

Encapsulamiento: Es el proceso de esconder, ocultar los detalles

de implantación de un objeto respecto al usuario para que nadie

pueda modificar la Información.

Herencia: La herencia es la propiedad que permite a los objetos

construirse a partir de otros objetos. Una clase se puede dividir en

subclases. La clase original se denomina clase base; las clases que

se definen a partir de la clase base, compartiendo sus características

y añadiendo otras nuevas, se denominan clases derivadas. Las

clases derivadas pueden heredar código y datos de su clase base

añadiendo su propio código y datos a la misma. La herencia impone

una relación jerárquica entre clases en la cual una clase hija hereda

de su clase padre. Si una clase sólo puede recibir características de

otra clase base, la herencia se denomina herencia simple.

Page 26: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

18

Si una clase recibe propiedades de más de una clase base, la

herencia se denomina herencia múltiple.

Polimorfismo: El término de polimorfismo define la capacidad de

que más de un objeto puedan crearse usando la misma clase de

base para lograr dos conceptos de objetos diferentes, en este caso

podemos citar el típico ejemplo de los teléfonos, los cuales se basan

en un teléfono base, con la capacidad de hacer ring y tener un

auricular, para luego obtener un teléfono digital, inalámbrico, con

botonera de marcado y también, tomando la misma base, construir

un teléfono analógico y con disco de marcado.

1.11.2. Metodología del Diseño

Diseño Orientado a Objetos, Transforma el modelo de análisis

creado usando el análisis orientado a objetos en un modelo de

diseño que sirve para la construcción del software. Es un método de

diseño de descomposición orientado a objeto y una notación para

representar ambos modelos lógicos y físicos tal como los modelos

estáticos y dinámicos del sistema bajo diseño.

Modelo lógico y físico

Un Modelo de Diseño de Soluciones esta compuesto por diferentes

perspectivas. Una perspectiva es una forma de ver algo, lo que en

Page 27: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

19

este caso es el proceso de diseño de la aplicación. Se utiliza para

centrarse en el proceso mismo del diseño. Estas perspectivas son:

Diseño Conceptual

Diseño Lógico

Diseño Físico

Las perspectivas son usadas para identificar los requerimientos

técnicos y de negocios para la aplicación. El resultado de utilizar

este modelo es una mejor distribución de los recursos del proyecto,

lo que puede facilitar mucho las cosas.

Diseño Conceptual

El diseño conceptual se considera como un análisis de actividades y

consiste en la solución de negocios para el usuario y se expresa con

los casos de uso.

El diseño conceptual esta compuesto de las siguientes tareas para

determinar y substanciar los requerimientos de la aplicación:

Identificar los usuarios y sus roles

Obtener datos de los usuarios

Evaluar la información

Documentar los escenarios de uso

Validación de diseño

Page 28: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

20

Una forma de obtener estos requerimientos es construir una matriz

usuarios-actividades de negocios, realizar entrevistas, encuestas y/o

visitas a los usuarios, de tal manera que se obtenga quién, qué,

cuándo, dónde y por qué de la solución.

Perfiles de Usuario

Perfiles de usuario son documentos que describen con quien se esta

lidiando, y proveen una descripción de la gente y los grupos que

usan el sistema. Esta información es usada para organizar como la

información será recolectada e identificar quien dará dicha

información para su recolección.

Estos perfiles también pueden ser creados al tiempo que se generan

los escenarios de uso.

Escenarios de Uso

Los escenarios de uso describen los requerimientos del sistema en

el contexto del usuario, mostrando como se efectúan los procesos

de negocios, o como se deberían efectuar. Los escenarios de uso

toman los datos que han sido recolectados, y los aplica en un

documento donde paso a paso se describe que pasa primero, luego

y después en la ejecución de una tarea específica. Esto transforma

los requerimientos que se han recolectado en el contexto de cómo

se usan los procesos, funciones y procedimientos

Page 29: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

21

Diseño Lógico

El diseño lógico traduce los escenarios de uso creados en el diseño

conceptual en un conjunto de objetos de negocio y sus servicios. El

diseño lógico se convierte en parte en la especificación funcional que

se usa en el diseño físico. El diseño lógico es independiente de la

tecnología; refina, organiza y detalla la solución de negocios y define

formalmente las reglas y políticas específicas de negocios.

El diseño lógico es el proceso de tomar los requerimientos de

usuario obtenido en el Diseño Conceptual y mapearlos a sus

respectivos objetos de negocio y servicios.

Organización de las Estructuras lógicas

Una vez que se han identificados los objetos, es necesario

organizarlos según los servicios que proveen, y las relaciones que

tiene unos con otros.

Existen muchas consideraciones que deben ser tomadas en cuenta

al diseñar una aplicación en tres capas que proporciona ciertos

beneficios como ser escalabilidad, disponibilidad y eficiencia.

Cuando se diseñan los objetos se debe dejar que estos factores

dirijan la manera de organizar las estructuras lógicas. A pesar de

que estos conceptos también se aplican al Diseño Físico, tienen

igualmente importancia en esta etapa de Diseño Lógico. Es bueno

Page 30: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

22

definir que tan granular tiene que ser los componentes. Si estos

mantendrán un estado o no con el fin de maximizar la escalabilidad,

estos y otros elementos deben analizarse detenidamente para

obtener un buen Diseño Lógico.

Del diseño Conceptual al Diseño Lógico

Crear un Diseño Lógico consiste en mapear a objetos las reglas del

negocio y los requerimientos de usuario identificados en el Diseño

conceptual. Estos objetos pueden ser así más fácilmente

identificados de los requerimientos de usuario por los nombres o

sustantivos, los servicios que proveen estos objetos representan las

reglas y requerimientos del dominio del negocio que se está

modelando y son reconocidos por verbos, para reconocer las

propiedades o atributos de un objeto se deben identificar los datos

asociados al objeto.

Cuando se diseñan los objetos es importante que estos se centren

en una sola cosa en lo posible, en otras palabras los objetos

deberían solamente proveer servicios relacionados con un único

propósito.

La funcionalidad de un objeto se llama granularidad. Mientras su

granularidad es más fuerte el objeto presta muchos servicios,

Page 31: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

23

mientras más débil es su granularidad menos servicios presta. Lo

óptimo es que el objeto tenga granularidad fuerte.

Objetivo del diseño lógico

El objetivo principal es transformar el esquema conceptual de datos

en el esquema lógico de datos

Otros objetivos del diseño lógico son:

Eliminar redundancias

Conseguir máxima simplicidad

Evitar cargas suplementarias de programación para conseguir

una estructura lógica adecuada

Un equilibrio entre los requisitos de usuario y la eficiencia

Diseño lógico con la máxima portabilidad

Diseño Físico

Es donde los requerimientos del diseño conceptual y lógico son

puestos en una forma tangible. Es en este diseño que las

restricciones de la tecnología son aplicadas al Diseño lógico de la

solución. El diseño físico define como los componentes de la

solución, así como la interfaz de usuario y la base de datos física

trabajan juntos. Desempeño, implementación, ancho de banda,

escalabilidad, adaptabilidad y mantenibilidad son todos los resueltos

Page 32: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

24

e implementados a través del diseño Físico. Ya que esta perspectiva

transforma los diseños previos en una forma concreta, es posible

estimar que recursos, costos o programación de tiempo serán

necesarios para concretar el proyecto.

Al lidiar con estas tres perspectivas, es importante notar que éstas

no son series de pasos con puntos de finalización claros. No es

necesario alcanzar un punto específico en una de las perspectivas

antes de continuar con la siguiente. De hecho, un área de diseño

puede ser usada en combinación con otra de manera tal que

mientras una parte de la solución es diseñada conceptual o

lógicamente, otra esta siendo codificada o implementada en el

producto final. Desde que no existen etapas con puntos definidos o

límites, es posible regresar a las distintas perspectivas de diseño

cuantas veces sea necesario. Esto permite afinar el diseño

revisando y rediseñando la solución.

Objetivos del diseño físico

Minimizar el tiempo de respuesta

Tiempo en la introducción de una transacción T de BD y la

obtención de respuesta

Maximizar la productividad de las transacciones

Optimizar el aprovechamiento del espacio.

Page 33: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

25

Cantidad de espacio ocupado por ficheros de la BD y sus

estructuras de acceso.

En el esquema Figura 1.11.2.1 que se muestra a continuación

detalla gráficamente el diseño físico de una base de datos.

Figura 1.11.2.1 Diseño Físico de Base de Datos

En general se especifica límites promedio y de peor de los casos de cada

parámetro anterior como aporte de los requisitos de rendimiento del sistema.

Durante el diseño físico hay que tener en cuenta:

Que el rendimiento depende del tamaño y número de registros

en los ficheros

Estimar tamaño de registro y número de registros para cada fichero

Estimar crecimiento de cada fichero, “como y cuánto va a crecer”, en

tamaño de registro, o en número de registros.

Alternativa n De diseño físico

Alternativa 1 De diseño físico

Alternativa 3 De diseño físico

Alternativa 2 De diseño físico

Técnicas analíticas o

experimentales

Estimaciones Valor Promedio y del

Peor Caso Alternativa 1

Estimaciones Valor Promedio y del

Peor Caso Alternativa 3

Estimaciones Valor Promedio y del

Peor Caso Alternativa 2

Estimaciones Valor Promedio y del

Peor Caso Alternativa n

Límites para el

Promedio y peor caso

¿Cumplan requisitos de rendimientos?

Prototipos Simulación, …

Page 34: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

26

El uso que se espera dar a la base de datos

Estimar patrones de actualización y obtención de datos para cada

fichero, considerando todas las transacciones.

A continuación se muestra gráficamente en la Figura 1.11.2.2. El uso

que se espera dar a la base de datos

Figura 1.11.2.2. Uso de la Base de Datos

B.D

IMPLEMENTACION

DISEÑO FISICO

ESTRUCTURA DE ALMACENAMIENTO Y

CAMINO DE ACCESO INICIAL

Page 35: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

27

CAPITULO 2

2. ANÁLISIS

2.1. Levantamiento de información

2.1.1. Introducción

Según la información recopilada, las Cuentas por Cobrar registran

los documentos, es decir, las transacciones de ventas a créditos,

pagos, etc., también es conocida como cartera.

Este manejo es llevado de forma no automatizada e incluso manual

en muy pocos casos, lo cual conlleva a un proceso tedioso y

desorganizado al momento de guardar y relacionar la información.

Por esta y muchas otras razones hemos decidido elaborar un

programa que le facilite a las empresas llevar un mejor control de

estas cuentas y que cumplan con todas las necesidades como

agilizar de forma automatizada para una excelente organización al

momento de llevar los estados financieros.

Page 36: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

28

2.1.2 Métodos de levantamiento de información

Para el tema en estudio utilizaremos la entrevista y la observación

para recolectar información.

2.1.2.1 Entrevistas

Para establecer las necesidades de un departamento

estrechamente relacionado con cartera nos hemos valido de

información recopilada por medio de las siguientes entrevistas

(selección de los elementos muestrales)

Entrevistamos a quien es el encargado del manejo de las

cuentas por cobrar.

Dentro de los aspectos más sobresalientes de nuestra

entrevista podemos destacar:

1.- ¿Considera usted que los procesos de su empresa se están

realizando de manera automatizada?

2.- ¿con que otros módulos cree que se relaciona el modulo de

cartera?

3.- ¿Qué información le seria útil de los otros departamentos?

4.- ¿Cuál son los procesos que realiza para hacer un análisis

de cartera?

5.- ¿Estarían ustedes dispuestos a invertir en software y

equipo?

Page 37: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

29

Las personas entrevistadas fueron los abajo detallados:

• Oficiales de créditos.

• Auxiliares contables.

• Encargado de roles.

• Y algunos casos, clientes de determinada empresa.

• Vendedores.

Esto nos preemitió obtener calidad de información por que

palpamos directamente las necesidades de la empresa.

2.1.2.2. Observación

Al asistir a la empresa para aplicar nuestra encuesta se nos

permitió observar un poco de cómo son llevadas las cuentas

por cobrar, donde pudimos percatarnos de una manera

detallada el desenvolvimiento de la misma en cuanto a nuestro

tema de estudio, para poder establecer las partes primordiales

en el desarrollo de nuestro proyecto.

Métodos de observación

Aspectos a observar:

1. Forma en que se llevan las cuentas por cobrar.

2. El control con que cuentan los datos actualmente.

3. Forma en la que podemos sistematizar el sistema actual.

4. Tiempo que se requiere para realizar una transacción.

Page 38: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

30

Tipo de investigación

Los realizadores de este proyecto consideramos que esta es

una investigación de tipo descriptiva.

2.1.2.3 Investigación tecnológica (Internet)

Esta herramienta siempre será un soporte para quienes inicien

la aventura de un proyecto, para nosotros fue de trascendental

utilidad e importancia.

2.1.3 Conclusiones

Mediante los métodos de investigación utilizados construimos el

siguiente gráfico estadístico Figura 2.1.3.1., el cual nos muestra

cómo se implementa en diferentes empresas el departamento de

cartera.

Gráfico Estadístico del Manejo de la

Información de Cartera En Diferentes

Empresas

0%

20%

40%

60%

Formas de Manejo del Sistema En El Módulo de Cartera

%

% 15% 50% 25% 10%

ManualSistemas no

automatizados

Sistemas

automatizados con

fallas

Sistemas ERP

Figura 2.1.3.1. Estadístico Del Manejo de Información de Cartera

Page 39: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

31

2.1.4. Análisis de requerimientos.

Después de analizar la información recopilada por medio de los

métodos de investigación puestos en prácticas, se puede indicar

¿Qué se requiere para cambiar un esquema actual a un esquema de

cambio sin que esto afecte los objetivos fundamentales de una

organización?, los cuales radican en la optimización e integración de

sus procesos.

Hay que recalcar que las Cuentas por Cobrar registran los

documentos, es decir, las transacciones de ventas a créditos, debito

o crédito cliente, etc.

Este modulo esta encargado de la actualización de datos de clientes,

autorización de los créditos y gestionar el control de los cheques

post-fechados y protestos de los mismos, con sus respectivas multas

que se generen por concepto de protestos de cheques.

Enviar información al modulo de contabilidad en el momento que se

realiza un créditos y/o debitos a clientes.

El modulo de tesorería nos remite información de cada uno de los

cobros que se efectuaron para poder habilitar al cliente y que realice

nuevas compras.

El modulo de ventas es el que nos entrega información del cliente

como: si es crédito, fecha, valor, etc.

Page 40: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

32

Si la forma de pago es cheque tendrá que reflejar el nombre del

banco, la fecha de emisión y fecha de deposito; esto nos ayudara a

definir si es post-fechado, valor, etc.

Si es tarjeta de crédito: el código de la tarjeta, el valor a cobrar,

fecha, etc.

El modulo de roles se relaciona con cartera en el momento de

generar el reporte de comisiones ganadas de cada uno de los

vendedores.

En el siguiente gráfico Figura 2.1.4.1 se puede observar como se

interactúa con otros módulos.

VENTASVENTAS

TESORERIATESORERIA

CONTABILIDADCONTABILIDAD

ROL DE PAGOSROL DE PAGOS

CARTERA

(CUENTAS POR COBRAR)

Vendedores(comisiones)

Figura 2.1.4.1 Cartera Relacionado Con Otros Módulos

Page 41: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

33

A continuación se hace énfasis de los puntos que hay que tomar en

consideración para el desarrollo del módulo:

Se necesita un software (ERP) que nos permita mejorar el

proceso de las consultas de los clientes, debido a que en

muchas empresas comerciales el inconveniente principal radica

al no tener los módulos integrados, y al querer presentar los

estados financieros, no se lo realiza de una forma eficaz y

rápida, ya que debe realizar los asientos contables de cada uno

de las transacciones que se efectúan día a día, si no se tiene

actualizada dicha información no se podrá presentar los

estados financieros, ni tampoco los estados de perdida y

ganancias.

Mejorar el control de créditos y sobregiros de cada uno de mis

clientes.

Brindar al usuario y clientes datos precisos sin errores y

veraces.

El módulo de Cuentas por Cobrar se integra por movimientos,

los cuales reciben datos, directa e indirectamente, generando

información confiable, la cual permite actualizar el saldo del

cliente, y así obtener el reporte contable requerido por

contabilidad.

Page 42: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

34

Los datos de entrada serán aquellos que provienen de varios

módulos como el de ventas con los movimientos tipo factura,

requisición, nota, especificando una condición de pago/cobro a

determinado tiempo, cuyo concepto será identificado como

cuenta por cobrar, generando una afectación en el Módulo.

Auditar las tablas que sean necesarias con la finalidad de

obtener un mayor control en el contenido de la información, que

podría ser modificada de manera constante por el usuario, es

decir, cuándo se tuvo acceso a dichas tablas.

Auditar las transacciones que se realicen día a día, en

determinadas tablas ingresos, consultas modificación,

eliminación, etc., o cualquier otra transacción en particular.

En este proyecto existen procesos que hacen usos de datos

almacenados en tablas diseñadas por módulos externos que

han sido creadas y usadas por la organización, por ejemplo, el

uso en nuestro modulo de tablas del módulo de operaciones

como calle, para extraer de la misma la dirección de un

determinado cliente.

Page 43: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

35

2.2. Diccionario de datos

Los diccionarios de datos son el segundo componente a analizar del

análisis del flujo de datos, en sí los diagramas de flujos de datos no

describen por completo el objeto de la investigación, este proporciona

información adicional sobre el sistema. Esta sección analiza qué es, por

qué se necesita en el análisis de flujo de datos y como desarrollarlo. Se

utilizará el ejemplo del sistema de contabilidad para describir los

diccionarios de datos.

Un diccionario de datos es una lista de todos los elementos incluido en el

conjunto de los diagramas de flujo de datos que describen un sistema.

Los elementos principales en un sistema, estudiados en las secciones

anteriores, son el flujo de datos, el almacenamiento de datos y los

procesos. El diccionario de datos almacena detalles y descripciones de

estos elementos.

Si los analistas desean conocer cuántos caracteres hay en un dato, con

qué otros nombres se los conoce en el sistema, o en donde se utilizan

dentro del sistema, deben ser capaces de encontrar las respuestas en un

diccionario de datos desarrollado apropiadamente.

El diccionario de datos se desarrolla durante el análisis de flujo de datos y

ayuda al analista involucrado en la determinación de los requerimientos

Page 44: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

36

de sistemas. Sin embargo, como se verá más adelante, también el

contenido del diccionario de datos se utiliza durante el diseño del sistema.

En informática, base de datos acerca de la terminología que se utilizará

en un sistema de información. Para comprender mejor el significado de un

diccionario de datos, puede considerarse su contenido como "datos

acerca de los datos"; es decir, descripciones de todos los demás objetos

(archivos, programas, informes, sinónimos...) existentes en el sistema. Un

diccionario de datos almacena la totalidad de los diversos esquemas y

especificaciones de archivos, así como sus ubicaciones. Si es completo

incluye también información acerca de qué programas utilizan qué datos,

y qué usuarios están interesados en unos u otros informes. Por lo

general, el diccionario de datos está integrado en el sistema de

información que describe.

Elementos de Datos

Descripción de los Datos en el Diccionario: Cada entrada en el

diccionario de datos consiste en un conjunto de detalles que describen los

datos utilizados o producidos en el sistema. Cada artículo se identifica por

un nombre de dato, descripción, sinónimo y longitud de campo y tiene

valores específicos que se permiten para éste en el sistema estudiado.

Page 45: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

37

Nombre de los Datos: Para distinguir un dato de otro, el analista le

asigna nombres significativos que se utilizan para tener una referencia de

cada elemento a través del proceso total de desarrollo de sistemas. Por lo

tanto, debe tenerse cuidado para seleccionar, en forma significativa y

entendible, los nombres de los datos, por ejemplo la fecha de factura es

más significativa si se llama FECHA FACTURA que si se le conoce como

ABCXXX.

Descripción: Establece brevemente lo que representa el dato en el

sistema; por ejemplo, la descripción para FECHA-DE-FACTURA indica

que es la fecha en la cual se está preparando la misma (para distinguirla

de la fecha en la que se envió por correo o se recibió.

Las descripciones de datos se deben realizar suponiendo que los

usuarios no conocen nada en relación del sistema. Deben evitarse

termino especiales o argot, todas las palabras deben se entendible para

el lector

Alias: Con frecuencia el mismo dato puede conocerse con diferentes

nombres, dependiendo de quien lo utilice. El uso de los alias debe evitar

confusión. Un diccionario de dato significativo incluirá todos los alias.

Page 46: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

38

Longitud: Cuando las características del diseño del sistema se ejecuten

más tarde en el proceso de desarrollo del sistema, será importante

conocer la cantidad de espacio que necesita para cada dato.

Valores de los datos: En algunos procesos solo se permiten valores de

datos específicos. Por ejemplo, en muchas compañías con frecuencia los

números de orden de compra se proporcionan con un prefijo de una letra

para indicar el departamento del origen.

Estructura de datos

Conjunto de datos relacionados unos con otros y que describen un

componente del sistema.

Descripción: Construidas sobre cuatro relaciones de componentes, se

puede utilizar la siguiente combinación ya sean individual o en conjunción

con alguna otra.

Relación secuencial: Define los componentes que siempre se incluyen

en una estructura de datos.

Page 47: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

39

A continuación un ejemplo práctico de la tabla Usuario para establecer la

seguridad en el sistema.

Tabla Usuarios

Estructura de datos

En esta figura 2.2.1 se puede observar de forma general las características de la tabla Usuario.

ID

Nombre

Alias

Descripción

Formato de Archivo Directo

Indexado

Cantidad de

registros: Máximo: 42,000

Llave primaria idusuarios

Llaves secundarias

Comentario Tabla que almacenan todos los usuarios del

sistema, estos usuarios pueden tener rol de

administrador, credito, tesoreria

Características del alamacén de datos

DS1

Tabla Maestra Usuario

USUARIOS

Contiene un registro para cada usuario

Secuencial

Base de datos

45,000 Promedio:

Figura 2.2.1 Tabla Usuarios- Estructura de datos

Elementos de datos

A continuación se detalla cada uno de los atributos de la tabla usuario con

sus respectivas características.

Page 48: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

40

ID

Nombre

Alias

Descripción

Longitud 4 Alfabética Directo

Formato de

entrada 4 X Alfanumérico

Formato de

salida 4 Fecha

Valor por

omision Numérico

Continúo Discreto

Comentario El ID del usuario debe pasar una prueba de validación

en que el sistema automáticamente Este campo forma parte

de la sgte. Tabla: Usuarios

Forma de descripción del elemento de la Tabla

idusuario

Código del usuario

Identifica de manera única a los usuarios que han

registrado en el sistema

Características del Elemento

Figura 2.2.2 Elementos de Datos- Atributo idusuario

ID

Alias

Descripción

Longitud 20 Alfabética

Formato de entrada 20 Alfanumérico

Formato de salida 20 Fecha

Valor por omisión Numérico

Continúo Discreto

El nombre del usuario que está registrado en el sistema

Características del Elemento

Forma de descripción del elemento de la Tabla

username

Nombre del usuario para ingresar a la sesion

Figura 2.2.3 Elementos de Datos- Atributo username

Page 49: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

41

Nombre

Alias

Descripción

correspondiente inicio de sesion

Longitud 20 x Alfabética

Formato de entrada 20 Alfanumérico

Formato de salida 20 Fecha

Valor por omisión Numérico

Continúo Discreto

Comentarios:

Características del Elemento

Forma de descripción del elemento de la Tabla

password

Clave del usuario

guarda en la tabla la contraseña de cada usuario para su

Figura 2.2.4 Elementos de Datos- Atributo password

Nombre

Alias

Descripción

Longitud 30 x Alfabética

Bit

Formato de entrada 30 Alfanumérico

Formato de salida 30 Fecha

Valor por omisión 0 Numérico

Continúo Discreto

Comentarios: indica el nombre respectvo , no el rol que desempeña

Características del Elemento

Forma de descripción del elemento de la Tabla

nombres

ninguno

Indica el nombre respectivo del usuario

Figura 2.2.5 Elementos de Datos- Atributo nombres

Page 50: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

42

Nombre

Alias

Descripción

Longitud 30 Alfabética

Formato de entrada 30 Alfanumérico

Formato de salida 30 Fecha

Valor por omisión Numérico

Continúo Discreto

Características del Elemento

Forma de descripción del elemento de la Tabla

apellidos

Apellido del usuario

El apellido del usuario, está registrado en el Sistema

Figura 2.2.6 Elementos de Datos- Atributo apellidos

Nombre

Alias

Descripción

registrado en el sistema

Longitud 20 x Alfabética

Formato de entrada 20 Alfanumérico

Formato de salida 20 Fecha

Valor por omisión Numérico

Continúo Discreto

Comentarios: Cada rol tendra un acceso total o limitado

Características del Elemento

Forma de descripción del elemento de la Tabla

rol

perfil

rol o perfil asiganado a cada usuario

Figura 2.2.7 Elementos de Datos- Atributo rol

Page 51: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

43

2.3. Diagrama de flujo de datos (DFD)

2.3.1 Flujo de Proceso de Seguridad de la Aplicación.

El administrador crea los usuarios que tendrán acceso al modulo de

cartera, de acuerdo con los diferentes perfiles que tendrán cada uno

de estos.

El usuario debe identificarse para poder ingresar su aplicación

ingresando su login y password correspondiente.

Definiciones de Perfiles para los

usuarios

Administración de datos permisos

control de contreseñas

Autenticación de

Usuarios

Ingreso al sistema, los accesos

dependen del perfil configurado

Fin

Asigna

Opciones

Usuarios

Usuarios

Crea

Administrador

de Seguridad

Accesan

Figura 2.3.1.1 Flujo de datos- Flujo Proceso de seguridad

Page 52: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

44

2.3.2. Flujo del Proceso de la Auditoria de la Aplicación

Se crean las tablas que van a ser utilizadas para realizar la auditoria

del sistema las cuales son car_acci_dat, y car_audi_log. El auditor o

administrador del sistema selecciona las transacciones a auditar o

las tablas de la base de datos que van hacer auditadas a las que se

ha tenido acceso recientemente o en un determinado momento

cuando se requiera esta información.

El sistema genera información de todos los campos de las tablas

(objetos) con todas las informaciones necesarias para conocer los

diferentes eventos o transacciones que han tenido, así como

también, el usuario, la fecha y la hora en que se realizo determinada

transacción, estos tipos de eventos son: INSERT, DELETE,

UPDATE. Ver flujos de las figuras 2.3.2.1.

Page 53: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

45

Configura Objetos de Base de

Datos que se quieren Auditar

(Generación de Triggers)

Generan Eventos(Insert, Update y Delete) que se

Registran en la Base de Datos

Informa a que hora y

que usuario generó o

eliminó Información de

la Base de Datos

Base de Datos

Figura 2.3.2.1 Flujo de datos- Flujo del Proceso Auditoria

2.3.3. Flujos de procesos del módulo de cartera

En determinado momento y realizada una VENTA se genera

automáticamente una factura, esta recopila toda la información de la

transacción; datos del cliente, detalle de lo que compro y forma de

pago, teniendo es esta ultima las opciones de contado y crédito, es

precisamente esta opción de pago (crédito) la que da inicio a

nuestros procesos, por lo que se constituye en nuestra principal

Page 54: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

46

fuente de ingreso de información, a través de reportes actualizados

diariamente o cuando se lo requiera se envía el listado de los

clientes al cobro, al modulo de TESORERÍA (departamento al cual le

interesa saber a quien y por concepto de que se cobro dicho valor ) y

que es el encargado de realizar la gestión de cobro. Una vez

realizado el cobro este a la vez remite información actualizada de

cobros al departamento de CONTABILIDAD, a quien le interesa

saber sólo cuánto se cobro y acreditarlo a la cuenta por cobrar, en el

registro de sus asientos contables,

Otro flujo a considerar es el relacionado con el departamento de

ROL DE PAGOS, pues al realizar un cobro se genera una comisión

por dicho trámite y esto debe ser información para que rol de pagos

emita los valores a favor del empleado correspondiente.

Ver Figura 2.3.3.1 y 2.3.3.2 Donde se detalle el Flujo de Procesos

del Módulo Cartera (Efectivo-Cheque).

Page 55: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

47

Desea pagar toda

La deuda?

Vencido? Tesorería Contabilidad

IngresoConsultar

Clientes-Crédito Ventas

Clientes Pendientes

De pagoSi

Genera descuento a Favor

Del cliente

Nota Crédito/Cliente

Si

Realizar cobros

Pagó?

Generar Intereses

Nota de Débito

del cliente

No

Inhabilitar Cliente

Habilitar Cliente para

Comprar

Si

No

No

No

Si

1

1

Fin de

Procesos

Figura 2.3.3.1 Flujo de datos de cartera (efectivo)

Page 56: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

48

Ventas

Tesorería

(Enviar a depositar)

Cheque se hizo

Efectivo

Débito cliente por

concepto Protesto

Cheque

No

Cheques

pendientes

Depósito

Si

Fin Proceso

No

Control de cheques

Post-Protestados

Si

Figura 2.3.3.2 Flujo de datos de cartera (cheque)

2.4. Diagrama caso de usos

Relación existente entre sus actores y los correspondientes casos de uso.

Funcionalidad del sistema en su interacción con el entorno externo. Estos

casos de uso se encuentran en la parte interior de la caja del sistema al

contrario de los actores que están fuera de la misma.

2.4.1 Casos de uso para seguridad de la Aplicación

Descripción de actores definidos y sus procesos correspondientes

en los que intervienen, esto se puede apreciar en el siguiente gráfico

Figura 2.4.1.1.

Page 57: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

49

Crear usuario

Cambiar

contraseña

Crear perfil

Asigna

Usuario a

Perfil

Crear opción

Asigna

Opciones

a Perfil

Consultar

Opciones

Consultar

Usuario

2.4.1.1 Diagrama de casos De Uso –Seguridad de la Aplicación

2.4.2 Casos de uso para Auditoria de la Aplicación.

El actor puede ser un administrador o auditor, que tiene la capacidad

de interpretar el manejo auditable en un sistema. Ver Figura 2.4.2.1

Page 58: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

50

Auditar

Transacción

Consultar

Transaccion

Auditrada

2.4.2.1 Diagrama Caso de Uso- Auditoria de la Aplicación

2.4.3 Casos de uso para módulo de Cartera

Todos las personas vinculadas al realizar algún tipo de interacción

con el modulo desde el sistema, como en la Web.

Page 59: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

51

ACTORES ESCENARIOS

CLIENTE

REPORTES

CREDITO A

CLIENTE

TARJETAS DE

CRÉDITO

CONTROL DE

CHEQUES

SISTEMA

Contabilidad/

Auixiliar

Contable-

contador

Tesoreria /Jefe

de Pagaduria

Rol de Pagos /

Jefe de Roles

PORTAL WEB

Módulos Externos

DEBITO A

CLIENTE

2.4.3.1 Diagrama Caso de Uso- Módulo de Cartera

Page 60: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

52

Activar Cliente

Inactivar Cliente

Autorizar Cupo

2.4.3.2 Diagrama Caso de Uso-Autorizador/Cliente- Módulo de

Cartera

Consultas de

Cuentas de Clientes

30-60-90 días

Consultar Pagos

Pendientes

Calificación de

Clientes

Modificar Cliente

Crear Cliente

Consultar Cliente

2.4.3.3 Diagrama Caso de Uso-Oficial de Crédito/Cliente - Módulo de

Cartera

Page 61: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

53

Contabilizar

Transacción

Emitir Reportes de

Comisiones

Emision de totales

a cancelar

Contabilidad Tesoreria Rol de

Pagos

Modulos Externos

2.4.3.4 Diagrama Caso de Uso-Oficial/Reporte-Módulo de Cartera

Modificar

Crédito a Cliente

Crear Crédito a

Cliente

Consultar Crédito a

Cliente

2.4.3.5 Diagrama Caso de Uso- Oficial/ Crédito Cliente- Módulo de

Cartera

Page 62: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

54

Modificar

Débito a Cliente

Crear Débito a

Cliente

Consultar Débito a

Clente

2.4.3.6 Diagrama Caso de Uso- Oficial/ Debito Cliente- Módulo de

Cartera

Eliminar Tarjeta

Consultar Tarjeta

Modificar Tarjeta

Crear Tarjeta

Consultar Pagos

Tarjeta

2.4.3.7 Diagrama Caso de Uso- Oficial/ Tarjeta - Módulo de Cartera

Page 63: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

55

Control de multas por

Cheques Protestados

Control de Cheques

Posfechados

2.4.3.8 Diagrama Caso de Uso- Oficial/ Control Cheques - Módulo de

Cartera

Validar Ingreso al Sistema

Definir Autorizaciones

2.4.3.9 Diagrama Caso de Uso- Oficial – Adm_Sistema/ Sistema de

Módulo de Cartera

Page 64: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

56

2.5. Descripción de Casos de Uso

2.5.1. Detalle de Usos de Seguridad de la Aplicación

Caso de uso # 1

CASO DE USO CREAR USUARIO

Descripción: Crea un usuario en el sistema

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 1. Ingresar a la pagina 2. Seleccionar un nuevo usuario 3. Llenar formulario 4. Sistema verifica datos en formulario 5. Sistema guarda la información

Flujo Alternativo 2. Mensaje de error permite al usuario que revise

Poscondiciones Creación de un nuevo usuario en el sistema

Caso de uso # 2

CASO DE USO CONSULTAR USUARIO

Descripción: Muestra todos los usuarios que pertenecen al sistema

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 1. Ingresar a la pagina 2. Escribir el usuario o todos los usuarios 3. Enviar a buscar 4. Sistema realiza la búsqueda

Flujo Alternativo Ninguno

Poscondiciones Creación de un nuevo usuario en el sistema

Caso de uso # 3

CASO DE USO CREAR PERFIL/ROL

Descripción: Crea el rol que precederá luego asignar opciones del modulo

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema.

Flujo Normal 1. Ingresar a la pagina 2. Escribir el Perfil y su descripción 3. Indicar el tipo de perfil 4. Almacenar información en el sistema

Flujo Alternativo Ninguno

Poscondiciones Creación de un perfil del sistema

Page 65: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

57

Caso de uso # 4

CASO DE USO ASIGNAR USUARIO AL PERFIL

Descripción: El perfil puede tener varios usuarios disponibles

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema. Debe existir al menos un usuario

Flujo Normal 1. Ingresar a la pagina 2. Seleccionar el perfil 3. Seleccionar usuarios disponibles 4. Almacena información en el sistema

Flujo Alternativo Ninguno

Poscondiciones Se ha asignado uno o varios usuarios a un perfil determinado

Caso de uso # 5

CASO DE USO CREAR OPCION

Descripción: Son las aplicaciones, menú o páginas que se muestran en el árbol de opciones que tendrá cada usuario al momento de ingresar al sistema.

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 1. Ingresar a la pagina 2. Escribe una nueva opción 3. Indica la dirección (URL) de la página. 4. Escoge el tipo de opción (Aplicación, menú u opción) 5. Guarda toda la información en el sistema.

Flujo Alternativo Ninguno

Poscondiciones Crea nueva opción.

Caso de uso # 6

CASO DE USO ASIGNAR OPCIONES AL PERFIL

Descripción: Cada perfil tendrá un determinado estándar de opciones que será usado por los usuarios de ese perfil

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 1. Ingresar a la pagina 2. Escriba un perfil 3. Sistema Buscar perfil 4. Presiono Opciones 5. activo todas las opciones que tendrá el perfil 6. Guardo datos en el sistema

Flujo Alternativo 2. Selecciona todos los perfiles

Poscondiciones Da las opciones a un determinado perfil

Page 66: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

58

Caso de uso # 7

CASO DE USO CAMBIAR CONTRASEÑAS

Descripción: Cambiar contraseña caducada

Actores Administrador, empleado, vitado

Precondiciones Deben estar registrados en el sistema y tener los permisos necesarios

Flujo Normal 1. Ingresar a la pagina desde el portal o desde el sistema interno

2. Indicar la contraseña vieja 3. Indicar la nueva contraseña 4. Sistema guarda nueva contraseña.

Flujo Alternativo Para el administrador no le es necesario saber la contraseña anterior, solo escribe una nueva

Poscondiciones Contraseña guardada con éxito

2.5.2 Detalle de Usos de Auditoria de la Aplicación

Caso de uso # 1

CASO DE USO AUDITAR TRANSACCIÓN

Descripción: Audita una transacción para un mayor control de los datos

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 1. Ingresar a la pagina de Auditoria 2. Seleccionar la transacción a auditar 3. Sistema busca la transacción 4. Marcar tipo de transacción(Insert, update, delete) 5. Administrador guarda datos 6. Sistema guarda cambio

Flujo Alternativo Ninguno

Poscondiciones Transacción auditada ha sido creada con éxito

Caso de uso # 2

CASO DE USO: CONSULTAR TRANSACCIÓN AUDITADA

Descripción: Muestra una o todas las transacciones que han sido auditadas

Actores Administrador

Precondiciones Estar autenticado como administrador del sistema

Flujo Normal 7. Ingresar a la pagina de Auditoria 8. Seleccionar la transacción a consultar 9. Sistema realiza la búsqueda

Flujo Alternativo También se puede seleccionar todas las transacciones auditadas a consultar

Poscondiciones Muestra una o varias transacciones auditadas

Page 67: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

59

2.5.3 Detalle de Usos Módulo de cartera

Caso de uso # 1

CASO DE USO CREAR CLIENTE

Descripción: Se crea el Cliente para verificar si esta apto para ser cliente

Actores Empleado(Oficial de crédito),clientes

Precondiciones Estar autenticado como Oficial de crédito y reunir los requisitos crediticios previas verificaciones en central de riesgo, referencias bancarias, laborales y comerciales.

Flujo Normal 1. Verificar en Central de riesgo 2. Verificar referencias 3. Guardar en el sistema como nuevo Cliente si

califica.

Flujo Alternativo 3. Si no califica ingresar nuevo cliente

Poscondiciones Cliente ha sido creado satisfactoriamente

Caso de uso # 2

CASO DE USO CONSULTAR DATOS DEL CLIENTE

Descripción: Consulta todos los datos personales del cliente(nombre ,numero de cedula fecha de nacimiento, etc.)

Actores Empleado(Oficial de crédito),clientes

Precondiciones Estar autenticado como Oficial de crédito y ser cliente de al menos un crédito pendiente

Flujo Normal 1. Ingresar al modulo 2. Escoger cliente por nombre

Flujo Alternativo 2. También se puede consultar por fecha

Poscondiciones Se ha realizado una consulta

Caso de uso # 3

CASO DE USO MODIFICAR DATOS DEL CLIENTE

Descripción: Modifica los datos de un cliente

Actores Oficial de Crédito (empleado), Cliente

Precondiciones Estar autenticado como Oficial de crédito y la necesidad de cambiar al menos un atributo.

Flujo Normal 1. Ingresar a la pagina 2. Escoja el o los atributos a cambiar 3. Ingresar el o los nuevos atributos 4. Actualizar en el sistema

Flujo Alternativo Ninguno

Poscondiciones Consulta realizada con éxito

Page 68: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

60

Caso de uso # 4

CASO DE USO CONSULTAR CLIENTES 30- 60- 90 DÍAS

Descripción: Consulta de todos los clientes pendiente de pago 30-60-90 días.

Actores Empleado(Oficial de crédito), cliente

Precondiciones Estar autenticado como Oficial de crédito y estar registrado en el sistema, creando sesión en la pagina

Flujo Normal 1. Ingresar al modulo 2. Consultar cuentas pendientes de pago o una en

detalle 3. Sistema realiza búsqueda por nombre. 4. Salir

Flujo Alternativo 2. Sistema también puede realizar búsqueda por fechas

Poscondiciones Consulta todas las cuentas pendientes de cobro 30-60-90 días al cobro o una en particular

Caso de uso # 5

CASO DE USO CONSULTAR PAGOS PENDIENTES

Descripción: Consulta todos los créditos pendientes próximos y futuros vencimientos

Actores Empleado(Oficial de crédito), Cliente

Precondiciones Estar autenticado como Oficial de crédito y constar en la B.D de la empresa como cliente activo o inactivo

Flujo Normal 1. Ingresar al modulo 2. Ingresar código de cliente 3. Consultar valores pendientes 4. Salir

Flujo Alternativo NINGUNO.

Poscondiciones Consulta Satisfactoria

Caso de uso # 6

CASO DE USO CALIFICACIÓN DE CLIENTES

Descripción: Ser cliente nuestro

Actores Empleado(Oficial de crédito),clientes

Precondiciones Estar autenticado como Oficial de crédito y existencia de al menos un crédito

Flujo Normal 4. Ingresar al modulo 5. Ver estado del cliente 6. Si es activo Cliente califica: apto para nuevo crédito.

Flujo Alternativo 3. Si es inactivo cliente no califica para nuevo crédito.

Poscondiciones Cliente ha sido calificado con éxito

Page 69: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

61

Caso de uso # 7

CASO DE USO CONTABILIZAR TRANSACCIÓN

Descripción: Contabiliza todas las transacciones realizadas como son debito y/o Crédito Cliente

Actores Empleado(Oficial de crédito), modulo contabilidad(Contador o Auxiliar), cliente

Precondiciones Estar autenticado como Oficial de crédito y existencia de al menos un Crédito y/o Debito a cliente

Flujo Normal 1. Ingresar al modulo 2. Realizar transacción 3. salir

Flujo Alternativo NINGUNO

Poscondiciones Transacción se realizo y ha sido actualizada.

Caso de uso # 8

CASO DE USO EMISIÓN DE TOTALES A CANCELAR

Descripción: Reporte de totales a cancelar

Actores Empleado(Oficial de crédito), modulo tesorería(Jefe de Pagaduría), cliente

Precondiciones Estar autenticado como Oficial de crédito y existencia de al menos un valor pendiente de cobro

Flujo Normal 1. Ingresar al modulo 2. Emitir y enviar reporte al modulo tesorería

Flujo Alternativo NINGUNO.

Poscondiciones Reporte fue creado con éxito

Caso de uso # 9

CASO DE USO EMISIÓN DE REPORTES DE COMISIONES

Descripción: Reporte de comisiones a cancelar

Actores Empleado (Oficial de crédito), modulo rol de pagos (Jefe de roles), cliente.

Precondiciones Estar autenticado como Oficial de crédito y existencia de al menos un valor pendiente de pago por comisión de cartera recuperada.

Flujo Normal 1. Ingresar al modulo 2. Emitir reporte 3. Salir

Flujo Alternativo NINGUNO.

Poscondiciones Reporte fue creado con éxito

Page 70: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

62

Caso de uso # 10

CASO DE USO ACTIVAR CLIENTE

Descripción: Permite activar un cliente

Actores Empleado(Autorizador), Cliente

Precondiciones Estar autenticado como Autorizador y cliente debe ponerse al día en sus pagos

Flujo Normal 1. Ingresar al modulo 2. Verificar Estado cliente 3. Verificar ultimo pago 4. Activar cliente 5. Actualizar sistema 6. Salir

Flujo Alternativo NINGUNO

Poscondiciones El cliente ha sido habilitado

Caso de uso # 11

CASO DE USO INACTIVAR CLIENTE

Descripción: Inactivar un cliente por morosidad

Actores Empleado(Autorizador),Cliente

Precondiciones Estar autenticado como Autorizador y cliente con mas de un pago Vencido

Flujo Normal 1. Ingresar al modulo 2. Verificar Estatus 3. Verificar ultimo pago 4. Inactivar cliente 5. Actualizar sistema 6. Salir

Flujo Alternativo NINGUNO

Poscondiciones El cliente ha sido inhabilitado para futuros créditos

Caso de uso # 12

CASO DE USO AUTORIZAR CUPO

Descripción: Autoriza el aumento de un cupo disponible para créditos futuros

Actores Empleado(Autorizador),cliente

Precondiciones Estar autenticado como Autorizador y cliente debe tener calificación A (puntualidad en los pagos) en créditos anteriores

Flujo Normal 1. Ingresar al modulo 2. Verificar calificación 3. Autorizar aumento de cupo 4. sistema almacena el aumento de cupo 5. salir

Flujo Alternativo NINGUNO

Poscondiciones El cupo ha sido Autorizado “SU NUEVO CUPO ES...”

Page 71: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

63

Caso de uso # 13

CASO DE USO CREAR CRÉDITO CLIENTE

Descripción: Elabora todos los créditos a clientes

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y cuenta fue cancelada con anticipación

Flujo Normal 1. Ingresar a la pagina 2. Consultar cuentas 30-60-90 días 3. Verificar pagos anticipados 4. Elaborar C/C 5. Enviar reporte al modulo interesado (contabilidad)

Flujo Alternativo NINGUNO

Poscondiciones Crédito cliente fue creado exitosamente

Caso de uso # 14

CASO DE USO CONSULTAR CRÉDITO A CLIENTE

Descripción: Consultar todos los créditos a clientes por concepto de pagos anticipados

Actores Empleado(Oficial de crédito), cliente

Precondiciones Estar autenticado como oficial de crédito y existencia de al menos una nota de crédito anterior

Flujo Normal 1. Ingresar al modulo 2. Consultar notas de crédito por nombre del cliente 3. Salir

Flujo Alternativo 2. Consulta también se puede realizar por fecha

Poscondiciones Consulta de crédito a cliente ha sido realizada satisfactoriamente

Caso de uso # 15

CASO DE USO MODIFICAR CRÉDITO A CLIENTE

Descripción: Modifica algún error al crear una nota de crédito

Actores Empleado(Oficial de crédito), cliente

Precondiciones Estar autenticado como Oficial de crédito y la existencia de una nota de crédito con error

Flujo Normal 1. Ver nota de crédito 2. Corregir atributo 3. Actualizar nota de crédito a cliente

Flujo Alternativo NINGUNO.

Poscondiciones Modificación de Nota de Crédito ha sido creada con éxito ¿Desea grabar cambios? SI- NO (por default NO)

Page 72: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

64

Caso de uso # 16

CASO DE USO CREAR DEBITO CLIENTE

Descripción: Elabora todos los debitos a clientes

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y cuenta fue cancelada con morosidad

Flujo Normal 1. Ingresar a la pagina 2. Consultar cuentas 30-60-90 días 3. Verificar pagos atrasados 4. Elaborar D/C 5. Enviar reporte al modulo interesado

(contabilidad)

Flujo Alternativo NINGUNO

Poscondiciones Debito cliente fue creado exitosamente

Caso de uso # 17 CASO DE USO CONSULTAR DEBITO A CLIENTE

Descripción: Consultar todos los debitos a clientes por concepto de pagos con morosidad

Actores Empleado(Oficial de crédito), cliente

Precondiciones Estar autenticado como oficial de crédito y existencia de al menos una nota de debito anterior

Flujo Normal 1. Ingresar al modulo 2. Consultar notas de debito por nombre de cliente

Flujo Alternativo 2. Consulta también se puede realizar por fecha

Poscondiciones Consulta de debito a cliente ha sido realizada satisfactoriamente

Caso de uso # 18 CASO DE USO MODIFICAR DEBITO A CLIENTE

Descripción: Modifica algún error al crear una nota de debito

Actores Empleado(Oficial de crédito),cliente

Precondiciones Estar autenticado como oficial de crédito y existencia de una nota de debito con error

Flujo Normal 1. Ver nota de debito 2. Corregir atributo 3. Actualizar nota de debito a cliente

Flujo Alternativo NINGUNO.

Poscondiciones Modificación de Nota de Debito ha sido creada con éxito ¿Desea grabar cambios? SI - NO (por default NO)

Page 73: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

65

Caso de uso # 19 CASO DE USO CREAR TARJETAS DE CRÉDITO

Descripción: Crea todas las tarjetas de cerdito con las que trabaja la empresa

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y que sea una tarjeta de crédito con la que la empresa haya realizado un convenio previo.

Flujo Normal 1. Ingresar a la pagina 2. Ingresar datos de la tarjeta(Tipo de interés, comisión o

porcentaje de utilización, etc) 3. Actualizar datos de nueva tarjeta en el sistema

Flujo Alternativo NINGUNO

Poscondiciones Muestra el detalle de pagos que se hicieron efectivo

Caso de uso # 20 CASO DE USO CONSULTAR TARJETAS DE CRÉDITO

Descripción: Consulta de todas las tarjetas con las que se puede comprar en la empresa

Actores Oficial de crédito (empleado), Cliente

Precondiciones Estar autenticado como Oficial de crédito y que exista al menos una tarjeta creada.

Flujo Normal 1. Ingresar a la pagina 2. Consultar tarjetas habilitadas para hacer compras

Flujo Alternativo NINGUNO

Poscondiciones Muestra el detalle de pagos que se hicieron efectivo

Caso de uso # 21 CASO DE USO MODIFICAR TARJETAS DE CRÉDITO

Descripción: Modificar todos los cambios que se den en determinada tarjeta por tipo de interés, comisión por uso, etc.

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y la Necesidad de realizar un cambio en algún atributo

Flujo Normal 1. Ingresar a la pagina 2. Modificar tarjeta (tipo de interés, comisión por uso,

etc.) 3. Almacenar cambios de atributos en el sistema

Flujo Alternativo NINGUNO

Poscondiciones Modificación de tarjeta fue realizada satisfactoriamente ¿Desea grabar los cambios? SI- NO (por default NO)

Page 74: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

66

Caso de uso # 22 CASO DE USO ELIMINAR TARJETA DE CRÉDITO

Descripción: Elimina todas las tarjetas con las que ya no se desea trabajar

Actores Oficial de crédito (empleado), Cliente

Precondiciones Estar autenticado como oficial de crédito y que el banco emisor deje de funcionar o la empresa no desee continuar trabajando con ella

Flujo Normal 1. Ingresar a la pagina 2. Escoger Tarjeta a eliminar 3. Eliminar tarjeta 4. Almacenar información en el sistema

Flujo Alternativo NINGUNO

Poscondiciones Se ha eliminado UNA TARJETA DE CRÉDITO desea continuar Si - No (Por default No)

Caso de uso # 23 CASO DE USO CONSULTAR PAGOS CON TARJETA DE CRÉDITO

Descripción: Consulta de todos los pagos que se hayan realizado mediante una transacción con tarjeta de crédito, así como sus vencimientos e intereses correspondientes

Actores Oficial de crédito (empleado), Cliente.

Precondiciones Estar autenticado como Oficial de crédito

Flujo Normal 1. Ingresar a la pagina 2. Consultar pagos con tarjeta 3. Enviar reporte de Cobro al departamento interesado

(TESORERÍA). 4. Almacenar información en el sistema 5. Salir

Flujo Alternativo NINGUNO

Poscondiciones Muestra el detalle de pagos con tarjeta a cobrar

Caso de uso # 24 CASO DE USO CONTROL DE CHEQUES POSFECHADOS

Descripción: Controla todas los pagos que se hayan realizado mediante una transacción con cheque a fecha

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y acuerdo de pagos con cheque a fecha

Flujo Normal 1. Ingresar a la pagina 2. Consultar cheque posfechados 3. Emitir reporte de cobros al departamento interesado

(TESORERÍA) 4. Actualizar sistema

Flujo Alternativo NINGUNO

Poscondiciones Muestra el detalle de pagos con cheques posfechados a ser depositados.

Page 75: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

67

Caso de uso # 25 CASO DE USO CONTROL DE MULTAS POR CHEQUES PROTESTADOS

Descripción: Controla todas las multas correspondientes por concepto de cheques protestados

Actores Oficial de crédito (empleado), cliente

Precondiciones Estar autenticado como Oficial de crédito y cheque no fue cobrado por lo que genero multa

Flujo Normal 1. Ingresar a la pagina 2. Consultar cheque protestados 3. Reporte de multas 4. Emitir reporte para el cobro 5. Almacenar información en el sistema

Flujo Alternativo NINGUNO

Poscondiciones Muestra el detalle de pagos por multas de cheques protestados

Caso de uso # 26 CASO DE USO DEFINIR RESTRICCIONES

Descripción: Permite restringir los accesos a determinadas opciones del modulo cartera

Actores Administrador, autorizador, oficial de crédito.

Precondiciones Debe contar como servicio activo de la compañía o tener claves de acceso

Flujo Normal 1. Usuario debe ingresar su login y contraseña 2. El Sistema comprueba la validez de los datos.

Flujo Alternativo 2. Si los datos son incorrectos envía un mensaje de corrección Acceso restringido

Poscondiciones Permite el acceso a servicios del modulo según los privilegios

Caso de uso # 27 CASO DE USO VALIDAR INGRESO AL SISTEMA(Modulo Cartera)

Descripción: Permite al usuario(administrador u Oficial de Crédito u otro empleado en particular) por medio de su login y contraseña ingresar al sistema(modulo)

Actores Administrador, Empleado(oficial de crédito), otros empleados

Precondiciones Debe contar como servicio activo de la compañía o tener claves de acceso

Flujo Normal 1. Usuario debe ingresar su login y contraseña 2. El Sistema comprueba la validez de los datos.

Flujo Alternativo 2. Si los datos son incorrectos envía un mensaje de corrección

Poscondiciones Permite el acceso a servicios del sistema según los privilegios

Page 76: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

68

2.6 Diagrama de Objeto - Relación

2.6.1. Módulo de cartera

A continuación se muestra el esquema gráfico de cuales son las

tablas utilizadas por nuestro departamento propias y la de los

módulos externo.

La tabla principal es la tabla car_clie_dat pues de esta se

desprenden los datos de creación del cliente.

Algunas otras tablas que se observan ven_vendedor, banco, en la

Figura 2.6.3.1, son respectivamente de los módulos de venta,

tesorería, contabilidad y rol de pagos, de las cuales se van a

seleccionar atributos importantes y necesarios para nuestro módulo

y así fluya correctamente la información., cabe recalcar además que

se manejara una tabla con datos históricos del cliente.

Page 77: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

69

CAR_CLI_DAT1

CAR_CIUD_DAT1

BANCO1

CAR_KARDEX_CLIE_LOG1

VEN_VENDEDOR1

CAR_TARJ_DAT1

CAR_CONTA_ASIENTO_DAT1

CAR_CLIE_NATU_DAT1

CAR_CLIE_JURI_DAT1

CAR_TIPO_CLIE_DAT1

CODI_TIPO_PAGO_DAT1

CAR_PROV_DAT1

CAR_PAIS_DAT1

CAR_CANT_DAT1

Figura 2.6.3.1 Diagrama Objeto Relación – Módulo Cartera

Page 78: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

70

2.7 . Diagrama de secuencias

Los diagramas de secuencias es la vista de interacción describe

secuencias de intercambios de mensajes entre los roles que implementan

el comportamiento de un sistema. Este es más adecuado para observar la

perspectiva cronológica de las interacciones, muestra la secuencia

explícita de mensajes y son mejores para especificaciones de tiempo real

y para escenarios complejos.

Debe reflejar las siguientes características:

Muestra la secuencia de mensajes entre objetos durante un escenario

concreto

Cada objeto viene dado por una barra vertical

El tiempo transcurre de arriba abajo

Cuando existe demora entre el envío y la atención se puede indicar

usando una línea oblicua

Page 79: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

71

2.7.1 Diagramas: Secuencias para Seguridad de la Aplicación

Administrador GUI Usuario

CREAR USUARIO

Datos

Crear usuario

Usuario Creado Almacen

usuario

Figura 2.7.1.1 Seguridad - Crear Usuarios

Administrador GUI Usuario

CONSULTAR USUARIO

Usuario

Buscar Usuario

Usuario

Muestra datos de Usuario

Figura 2.7.1.2 Seguridad – Consultar Usuario

Page 80: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

72

Administrador GUI Perfil

CREAR PERFIL / ROL

Datos

Crear Perfil

Grabar perfil

Creación de pérfil con éxito

Figura 2.7.1.3 Seguridad – Crear Rol

GUI Perfil

ASIGNAR OPCIONES A PERFIL

Perfil

Enviar Perfil

Se ha asignado opción al perfil

Verifica Perfil

Guardar opción del Perfil

Administrador

Figura 2.7.1.4 Seguridad – Asignar opciones al perfil

Page 81: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

73

Administrador GUI Opción

Opción

Buscar opción

Consulta

opción

Muestra opción

CONSULTAR OPCIONES

Figura 2.7.1.5 Seguridad – Consultar opciones

Administrador GUI Opción

Datos

Crear opción

Grabar

opción

Nueva opción creada

CREAR OPCIONES

Figura 2.7.1.6 Seguridad – Crear Opciones

Page 82: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

74

Administrador GUI Evento

Contraseña

Enviar contraseña

Guarda

contraseña

Nueva contraseña creada

exitosamente

CAMBIAR CONTRASEÑA

Figura 2.7.1.7. Seguridad – Cambiar Contraseña

GUI Perfil

Perfil

Enviar Perfil

Perfil guardado con éxito

Administrador

ASIGNAR USUARIO A PERFIL

Figura 2.7.1.8 Seguridad – Asignar Usuario al Perfil

Page 83: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

75

2.7.2 Diagramas: Secuencias para Auditoria de la Aplicación.

Administrador GUI Tabla

Datos

Enviar datos

Muestra tablas con

transacciones

auditas

Consultar

transacción

auditada

CONSULTAR TRANSACCIONES AUDITADAS

Figura 2.7.2.1 Auditoria – Consultar Transacciones auditadas

Administrador GUI Tabla

AUDITAR TRANSACCIÓN

Datos

Enviar transaccion

Objeto1

Guardar los campos auditables en la tabla auditada

Buscar transaccion

Guardar

transacción

auditables

Figura 2.7.2.2 Auditoria –Auditar Transacción

Page 84: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

76

2.7.3 Diagrama de Secuencias: Módulo Cartera

Autorizador GUI

Ingresar al modulo

ACTIVAR CLIENTE

Oficial de Crédito

Verificar calificación

Cliente Activado

Figura 2.7.3.1 Módulo de Cartera –Activar Cliente

Autorizador GUI

Ingresar al modulo

INACTIVAR CLIENTE

Oficial de Crédito

Verificar estatus

Cliente Inactivo

Figura 2.7.3.2 Módulo de Cartera – Inactivar Cliente

Page 85: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

77

Autorizador GUI

Ingresar al modulo

AUTORIZAR CUPO

Cliente

Verificar calificación

Su cupo fue actualizado

Figura 2.7.3.3 Módulo de Cartera – Autorizar Cupo

Oficial de Crédito GUI

Ingresar al modulo

CREAR CLIENTE

Cliente

Ingresa datos del cliente

Cliente Creado con Exito

Figura 2.7.3.4 Módulo de Cartera – Crear Cliente

Page 86: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

78

Oficial de Crédito GUI

Ingresar al modulo

CONSULTAR CLIENTE

Cliente

Consulta el Cliente

Consulta realizada con

éxito

Busqueda de

Cliente

Figura 2.7.3.5 Módulo de Cartera – Consultar Cliente

Oficial de Crédito GUI

Ingresar al modulo

MODIFICA CLIENTE

Cliente

Búsqueda del Cliente

Modificación realizada

con éxito

Busqueda y

Modificación

Graba

Figura 2.7.3.6 Módulo de Cartera – Modificar Cliente

Page 87: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

79

Usuario del

sistemaGUI Oficial de credito

Ingresar al

moduloConsultar cuentas

pendientes de pago

Acceso

Validar acceso

CONSULTA CLIENTES 30-60- 90 DIAS

Búsqueda por nombre o

fecha Consulta realizada con

exito

Figura 2.7.3.7 Módulo de Cartera – Consultar Clientes 30-60-90 dias

Oficial de Crédito GUI

Ingresar al modulo

Jefe de Pagaduría

Emitir Reportes

Enviar Reportes

CONSULTA DE PAGOS PENDIENTES

Figura 2.7.3.8 Módulo de Cartera – Consultar Pagos Pendientes

Page 88: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

80

Oficial de Credito GUI Cliente

Ingresar al

modulo

CALIFICAR CLIENTES

Ver estado del

cliente

Cliente activo

califica

Cliente es calificado

con éxito

Figura 2.7.3.9 Módulo de Cartera – Calificar Clientes

Oficial de Credito GUI Auliar Contable, Contador

Ingresar al modulo y

generar reportes

CONTABILIZAR TRANSACCION

Enviar Repòrta

Transacción realizada

con éxito

Figura 2.7.3.10 Módulo de Cartera – Contabilizar Transacción

Page 89: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

81

Oficial de Crédito GUI

Ingresar al modulo

Jefe de Pagaduría

Emitir Reportes

Enviar Reportes

EMISIÓN DE TOTALES A CANCELAR

Figura 2.7.3.11 Módulo de Cartera – Emisión de Totales a Cancelar

Oficial de Crédito GUI

Ingresar al modulo

Jefe de Recursos

Humanos

Emitir Reportes

Enviar Reportes

EMISIÓN DE REPORTES DE COMISIONES

Figura 2.7.3.12 Módulo de Cartera – Emisión de Reporte de Comisiones

Page 90: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

82

Oficial de Crédito GUI

Datos

Cliente

Crea Crédito

Crédito Creado con éxito

REALIZAR CRÉDITO A CLIENTE

Almacenar crédito

Figura 2.7.3.13 Módulo de Cartera – Realizar crédito Clientes

Oficial de Crédito GUI

Nota de Crédito

Cliente

Busca Nota de Crédito

Muestra datos

CONSULTA CRÉDITO CLIENTES

Nota de Crédito

Figura 2.7.3.14 Módulo de Cartera – Consulta Crédito Cliente

Page 91: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

83

Oficial de Crédito GUI

Nota de Crédito

Cliente

Busca Nota de Crédito

Datos Modificados

MODIFICA CRÉDITO CLIENTE

Graba datos

Busqueda y

Modifica

Figura 2.7.3.15 Módulo de Cartera – Modificación Crédito Cliente

Oficial de Crédito GUI

Datos

Cliente

Crea Débito

Débito Creado con éxito

CREAR DEBITO CLIENTE

Almacenar débito

Figura 2.7.3.16 Módulo de Cartera – Crea Debito Cliente

Page 92: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

84

Oficial de Crédito GUI

Nota de Débito

Cliente

Busca Nota de Débito

Muestra datos

CONSULTA DEBITO CLIENTE

Nota de Débito

Figura 2.7.3.17 Módulo de Cartera – Consulta Debito Cliente

Oficial de Crédito GUI

Nota de Débito

Cliente

Busca Nota de Débito

Datos Modificados

MODIFICA DEBITO CLIENTE

Graba datos

Busqueda y

Modifica

Figura 2.7.3.18 Módulo de Cartera – Modifica Debito Cliente

Page 93: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

85

Oficial de Crédito GUI

Datos

Cliente

Crear Tarjeta

Tarjeta Creada

CREAR TARJETA DE CRÉDITO

Almacenar

Tarjetas

Figura 2.7.3.19 Módulo de Cartera – Crear tarjeta de Crédito

Oficial de Crédito GUI

Datos

Cliente

Enviar Datos

Muestra Tarjeta

CONSULTAR TARJETAS DE CRÉDITO

Consulta Tarjetas

Figura 2.7.3.20 Módulo de Cartera – Consultar Tarjeta de Crédito

Page 94: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

86

Oficial de Crédito GUI

Tarjeta de Crédito

Cliente

Busca Tarjeta de Crédito

Datos Modificados

MODIFICAR TARJETAS DE CRÉDITO

Graba datos

Busqueda y

Modifica

Figura 2.7.3.21 Módulo de Cartera – Modificar Tarjeta de Crédito

Oficial de Crédito GUI

Tarjeta de Crédito

Cliente

Busca Tarjeta de Crédito

Datos Eliminados

ELIMINA TARJETAS DE CRÉDITO

Grabar datos

Busqueda y Elimina

Figura 2.7.3.22 Módulo de Cartera – Eliminar Tarjeta de Crédito

Page 95: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

87

Oficial de Crédito GUI

Ingresar al modulo

Cliente

Emitir Reportes

Enviar Reportes

CONTROL DE CHEQUES POSFECHADOS

Figura 2.7.3.23 Módulo de Cartera – Control de Cheques Posfechados

Oficial de Crédito GUI

Ingresar al modulo y

verificar si se hizo efectivo

Cliente

Emitir Reportes

Enviar Reportes

CONTROL DE MULTAS POR CHEQUES PROTESTADOS

Figura 2.7.3.24 Módulo de Cartera – Control de Cheques Protestados

Page 96: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

88

Oficial de Crédito GUI

Autorizador orden

Autorizador

Cargar Autorizador

Transacción exitosa

DEFINIR AUTORIZACIÓN

Figura 2.7.3.25 Módulo de Cartera – Definir Autorización

Usuario del

sistemaGUI Oficial de credito

VALIDAR INGRESO AL SISTEMA

Login

_password

Validar datos

Acceso

Crea sesion

Validar acceso

Verifica

Figura 2.7.3.26 Módulo de Cartera – Validar Ingreso al Sistema

Page 97: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

89

CAPITULO 3

3. DISEÑO

3.1 Diagrama de clase

Una clase se puede explicar coma la definición teórica del objeto; ya que

es una especificación genérica para objetos que comparten el mismo

comportamiento, una clase contiene las bases para la construcción del

objeto definido cuáles serán las propiedades, métodos y eventos que este

contendrá, cuáles serán públicos y cuáles privados.

Una vez identificados los objetos que componen nuestra solución, el

siguiente paso es identificar los atributos y métodos que nuestros objetos

deben tener, los datos que se almacenan en los atributos definen de

manera individual a cada objeto.

Los métodos representan las acciones, estas acciones permiten a los

objetos interactuar entre sí. Cada diagrama presenta la relación de clases

así como sus métodos más importante, es decir, aquellos que han

utilizado en la descripción de los diagramas de secuencia.

Page 98: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

90

A continuación se presentan los diagramas de clases que se han

desarrollado.

3.1.1 Diagrama de Clases para la Seguridad de la Aplicación.

Clase Usuarios

Permite alojar datos de todos los usuarios del sistema. Así como

también el rol que desempeña. Solo los usuarios que estén

almacenados en la base tendrá acceso a la aplicación, ver figura

3.1.1.1.

USUARIOS

idusuario

username

password

nombres

apellidos

rol

Figura 3.1.1.1 Diagrama de clases-Usuarios

3.1.2 Diagramas de clases para la Auditoria de la Aplicación

Clase Acción

Permite tener un registro de todas las transacciones que realiza,

como ingresos, consultas, modificación, eliminación.

CAR_ACCION_DAT(ACCION)

codi_acci

desc_acci

esta_acci

audi_usua_ingr

aud_fech_ingr

insert()

select()

update()

delete()

Figura 3.1.2.1 Diagrama de Clase Acción

Page 99: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

91

Clase Auditoria

Establece en detalle la auditoria realizada, indicando el código de la

empresa, modulo que realizo la transacción, la acción y la tabla a la

cual se realizo dicha acción.

CAR_AUDI_LOG(AUDITORIA )

codi_empr

codi_modu

codi_acci

tabl_audi

secu_tabl

audi_usua

insert()

select()

update()

delete()

Figura 3.1.2.2 Diagrama de Clase Auditoria

3.1.3 Diagrama de Clases: Módulo Cartera

Clase Tipo Cliente

Permite guardar los tipos de clientes. Ver figura 3.1.3.1

CAR_TIPO_CLIE_DAT(TIPO CLIENTE)

codi_tipo_clie_pk

desc_tipo_clie

crear()

edita()

eliminar()

enviar_mensaje() consultar todos()

Fig.3.1.3.1. Clase Tipo Cliente

Page 100: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

92

Clase Cliente

Esta clase nos permite la creación de cada uno de los datos del

cliente de manera general usando los principios de herencia o

generalización. Ver Figura 3.1.3.2

CAR_CLIE_DAT(CLIENTE )

codi_clie_pk

stat_clie

nume_calle

come_calle

des_cdla

tele-princ

tele_secu

fax

email

cupo

plaz

sobr_porc

sobr_mont

fech_ingr

mont_ulti_comp

codi_tipo_clie_pk

codi_tipo_pago_pk

codi_cdla_pk

codi_ciud_pk

codi_calle_pk

codi_vendedor

codi_empr_fk

aprobacioncredito

crear()

modificar()

Eliminar()

grabar()

consultar todos()

consultar_individual

limpiar()

enviar-mensaje()

Figura 3.1.3.2 Clase Cliente

Page 101: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

93

Clase Cliente Natural

Contiene datos propios de un cliente natural, como son número

cedula, nombre, y heredando los campos de la tabla base cliente. Ver

Figura 3.1.3.3

CAR_CLIE_NATU_DAT(CLIENTE NATURAL)

codi_clie_pk

cedu_pk

nomb_natu

cont

estado

crear()

consultar()

modificar()

eliminar()

consultar individual()

consultar todos()

Fig.3.1.3.3 Clase Cliente Natural

Clase Cliente Jurídico

Contiene datos propios de un cliente jurídico, como son número de

ruc, razón social, representante legal, y heredando los campos

comunes de la tabla base cliente. Ver Figura 3.1.3.4.

CAR_CLIE_JURI_DAT(CLIENTE JURÍDICO)

codi_clie_pk

ruc_pk

repr_lega

razo_soci

estado

crear()

consultar()

modificar()

eliminar()

consultar individual()

consultar todos()

Fig.3.1.3.4 Clase Cliente Jurídico

Page 102: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

94

Clase País

Contiene los datos de todos los países. Ver figura 3.1.3.5

CAR_PAIS_DAT(PAIS)

codi_pais_pk

desc_pais

estado

crear()

editar()

eliminar() consultar todos()

Figura 3.1.3.5 Clase País

Clase Provincia

Detalle de cada una de las provincias. Ver figura 3.1.3.6

CAR_PROV_DAT(PROVINCIA)

codi_prov_pk

desc_prov

codi_pais_pk

estado

crear() editar()

eliminar() consultar todos()

Figura 3.1.3.6 Clase Provincia

Clase Cantón

Contiene cada uno de los cantones para determinada provincia. Ver

figura 3.1.3.7

CAR_CANT_DAT(CANTON)

codi_cant_pk

desc_cant

codi_prov_pk

estado

crear()

editar()

eliminar()

consultar todos()

Figura 3.1.3.7 Clase Cantón

Page 103: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

95

Clase Parroquia

Guarda en detalle cada una de las parroquias. Ver figura 3.1.3.8

CAR_PARR_DAT(PARROQUIA)

codi_parr_pk

desc_parr

codi_sect_pk

codi_ciud_pk

estado

crear()

editar()

eliminar()

consultar todos()

Figura 3.1.3.8 Clase Parroquia

Clase Ciudad

Esta clase permite hacer uso del criterio de búsqueda ya sea de

manera general o de forma individual. Ver figura 3.1.3.9

CAR_CIUD_DAT(CIUDAD)

codi_ciud_pk

desc_ciud

codi_prov_pk

codi_pais_pk

codi_cant_pk

estado

crear()

consultar()

modificar()

eliminar()

consultar individual()

consultar todos()

Figura 3.1.3.9 Clase Ciudad

Page 104: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

96

Clase Modulo

Control de cada uno de los módulos de la aplicación. Ver figura

3.1.3.10

CAR_MODU_DAT(MODULO)

codi_modu_pk

desc_modu

codi_empr_fk

estado

crear()

editar()

eliminar()

consultar todos()

Figura 3.1.3.10. Clase Modulo

Clase Estado Cliente

Guarda el status de cada uno de los clientes, como activo inactivo,

etc., Ver figura 3.1.3.11

CAR_STAT_DAT(ESTADO CLIENTE)

codi_stat_pk

desc_stat

estado

crear()

editar()

eliminar()

consultar todos()

Figura 3.1.3.11. Clase Estado Cliente

Page 105: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

97

Clase Kardex

Esta clase contiene cada uno a de las transacciones realizadas a los

clientes con son: créditos a clientes y los debitos a clientes, además

nos permite generar consultas ya sea general o específicas y

también nos permiten realizar un análisis de las cuentas. Ver figura

3.1.3.12

CAR_KARDEX_CLIE_LOG(KARDEX )

codi_kard_clie_pk

secu_trans

fech_regi

fech_vent

plaz

descrip

coment

tota

nume_apli

asentado

bloqueado

abon

codi_stat_pk

codi_ciud_pk

codi_modu_pk

codi_vendedor

codi_clie_pk

codi_empr

codi_tarj_pk

codi_banc_pk

sigl_pk

tipo_apli

contabilizar_total()

crear()

grabar()

consultar todos()

consultar_individual()

modificar()

eliminar()

enviar-mensaje()

Figura 3.1.3.12. Clase Kardex

Page 106: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

98

Clase Tipo Documento

Registra cada uno de los documentos. Ver figura 3.1.3.13

CAR_TIPO_DOCU_DAT(TIPO DOCUMENTO)

sigl_pk

desc_docu

estado

codi_stat_pk

codi_modu_pk

crear()

editar()

eliminar()

enviar_mensaje()

consultar_todos()

Figura 3.1.3.13. Clase Tipo Documento

Clase Sucursal Cliente

Muestra un detalle de cada una de las sucursales de nuestros

clientes que tengan más de una agencia. Ver figura 3.1.3.14

CAR_SUCU_CLIE_DAT(SUCURSAL CLIENTE )

codi_sucu_clie_pk

nomb_sucu

estado

tele_prin

tele_secu

fax

nume_calle

come_calle

desc_cdla

codi_clie_pk

codi_cdla_pk

codi_calle_pk

codi_sect_pk

codi_prov_pk

crear()

grabar()

consultar todos()

modificar()

eliminar()

enviar-mensaje()

Figura 3.1.3.14. Clase Sucursal Cliente

Page 107: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

99

Clase Tarjetas

Esta clase contiene cada una de las tarjetas de créditos con que la

empresa trabaja, así como también sus respectivos % de

incrementos y permite hacer una búsqueda ya sea de manera

general o individual. Ver figura 3.1.3.15

CAR_TARJ_DAT(TARJETAS)

codi_tarj_pk

nomb_tarj

estado

porc_desc_tarj

porc_incr_tarj

mini_tarj

crear()

consultar()

modificar()

Eliminar()

Grabar

consultar individual()

consultar todos()

Figura 3.1.3.15. Clase Tarjeta

Clases Externas:

Clase Transacción Tarjetas

TRAN_TARJ(TRANSACCION TARJETAS)

codi_tran_pk

codi_tarj_pk

codi_clie_pk

nume_tarj

valor

increm

cobrado

fecha

obtener_dato()

buscar_aplicacion()

carga_dato()

Figura 3.1.3.16. Clase Transacción Tarjetas

Page 108: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

100

Clase Transacción Cheque

TRAN_CHEQ(TRANSACCION CHEQUE)

codi_tran_cheq

Idbanco

codi_clie_pk

fech_depo

fech_venc

cuen_ban

valo

nume_che

post_fech

obtener_dato()

buscar_aplicacion()

carga_dato()

Figura 3.1.3.17. Clase Transacción Cheques

Clase (Banco)

Esta clase permite tener un registro de cada una de las instituciones

bancarias para realizar búsquedas y consultas de manera general y

especifica. Ver figura 3.1.3.18

BANCO

idbanco

nombre

idestado

estado

fecharegistro

horaregistro

crear()

consultar()

modificar()

eliminar()

grabar

consultar individual()

consultar todos()

Figura 3.1.3.18 Clase Banco

Page 109: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

101

Clase Vendedor

Creación de vendedores que laboran en la empresa, permite realizar

las consultas y reportes de los % de comisión de las ventas de cada

uno de los vendedores. Ver figura 3.1.3.19

VEN_VENDEDOR(VENDEDOR)

codi_vendedor

nomb_vendedor

codi_comision

tipo_vendedor

codi_detalle_comision

estado

fecha_creacion

crear()

grabar()

modificar()

eliminar()

consultar individual()

consultar todos()

Figura 3.1.3.19. Clase Vendedores

Clase Contabilidad Asientos Contables

Esta clase nos permite realizar los asientos contables de las

transacciones efectuadas en el modulo de cartera como: créditos a

clientes y debitos a clientes. Ver figura 3.1.3.20

CONTA_ASIENTOS(ASIENTOS CONTABLES)

tipo_as

nume_doc

fech_doc

codvta

ctaaux

detalle

valor

bloqueado

crear()

grabar()

contabilizar()

Figura 3.1.3.20. Clase Asientos Contables

Page 110: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

102

Clases Histórico de Cliente

En esta clase se va a guardar cada uno de los datos de los clientes,

para realizar consultas de datos históricos de los clientes, una copia

del Kardex. Ver figura 3.1.3.21.

CAR_TRANS_TMP(CLIENTE HISTORICO )

codi_kard_clie_pk

secu_trans

fech_regi

fech_vent

plaz

descrip

coment

tota

nume_apli

asentado

bloqueado

abon

codi_stat_pk

codi_ciud_pk

codi_modu_pk

codi_vendedor

codi_clie_pk

codi_empr

codi_tarj_pk

codi_banc_pk

sigl_pk

tipo_apli

contabilizar_total()

crear()

grabar()

consultar todos()

consultar_individual()

modificar()

eliminar()

enviar-mensaje()

Figura 3.1.3.21. Clase Cliente Histórico

Page 111: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

103

3.2 Generalización

Es el resultado de la unión de 2 o más conjuntos de entidades (de bajo

nivel) para producir un conjunto de entidades de más alto nivel. La

generalización se usa para resaltar los parecidos entre tipos de entidades

de nivel más bajo y ocultar sus diferencias.

La generalización consiste en identificar todos aquellos atributos iguales

de un conjunto de entidades para formar una entidad(es) global(es) con

dichos atributos semejantes

Dicha entidad(es) global(es) quedara a un nivel más alto al de las

entidades origen.

3.2.1 Esquema de Generalización de Modulo Cartera

La relación de generalización que existe entre una clase cliente, la

cual representa a uno en general, la clase cliente con deuda vencida

y sin deuda representan a una clase específica.

La figura muestra la generalización del cliente mediante un diagrama

de clases UML.

Para una mejor comprensión del texto, se presentan el siguiente

gráfico que muestra un modelo de generalización de la principal

clase con las que trabaja nuestro módulo objeto de estudio. Ver Fig.

3.2.1.1.

Page 112: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

104

Figura 3.2.1.1 Esquema Generalización Clase Cliente

3.3 Diagrama Objeto - Relación con sus Atributos

3.3.1. Seguridad de la Aplicación

Par implementar la seguridad del sistema, en nuestro modulo nos

valemos de la tabla usuarios, la cual nos provee las herramientas

necesarias para definir cada uno de los permisos de acceso a

nuestro modulo.

Es decir, se crean los roles de, admin. (administrador), crédito(oficial

de crédito), tesorería, ventas, para que los usuarios respectivos

ingresen al sistema y tengan acceso a las opciones permitidas

según el rol asignado.

CLIENTE

CARTERA

CORRIENTE

NATURAL JURIDICO

CARTERA

VENCIDA

CLIENTE

ACTIVO

CLIENTE

INACTIVO

Page 113: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

105

3.3.2 Auditoria de la Aplicación.

La auditoria es un factor importante de toda aplicación, por ende

nuestro proyecto la ha considerado como uno de los factores más

relevantes en el desarrollo de la misma.

Las tablas principales para el proceso de auditoria son las tablas

CAR_ACCI_DAT, que nos facilita tener un registro de todas las

transacciones que realiza, como insert(), select(), update(), delete(),

auditando cada una de estas así como también del usuario que

realizo dicha transacción, como su rol respectivo y la tabla

CAR_AUDI_LOG, que proporciona en detalle el código de la

empresa, el módulo que ingreso y realizó determinada transacción y

la tabla a la cual se le realizo dicha acción.

3.3.3 Diagrama Entidad Relación Modulo Cartera

Las tablas principales en este módulo son las tablas de car_clie_dat,

car_clie_natu_dat, car_clie_juri_dat, car_pais_dat, car_prov_dat,

car_cant_dat, car_ciud_dat, car_parr_dat, car_stat_dat,

car_sucu_clie_dat, car_tipo_clie_dat, car_tipo_pago_dat,

car_tipo_docu, car_tarj_dat, car_kardex_clie_log, car_trans_tmp,

usuarios, entre otras, teniendo cada una de las cuales las siguientes

llaves primarias:

Tabla car_clie_dat, clave primaria codi_clie_pk

Page 114: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

106

Tabla car_clie_natu_dat, clave primaria codi_clie_pk

Tabla car_clie_juri_dat, clave primaria codi_clie_pk

Tabla car_pais_dat, clave primaria codi_pais_pk

Tabla car_prov_dat, clave primaria codi_prov_pk

Tabla car_cant_dat, clave primaria codi_cant_pk

Tabla car_ciud_dat, clave primaria codi_ciud_pk

Tabla car_parr_dat, clave primaria codi_parr_pk

Tabla car_stat_dat, clave primaria codi_stat_pk

Tabla car_sucu_clie_dat, clave primaria codi_sucu_clie_pk

Tabla car_tipo_clie_dat, clave primaria codi_tipo_cli_pk

Tabla car_tipo_pago_dat clave primaria codi_tipo_pago_pk

Tabla car_tipo_pago_dat clave primaria codi_tipo_pago_pk

Tabla car_tipo_docu_dat clave primaria sigl_pk

Tabla car_tarj_dat clave primaria codi_tarj_pk

Tabla car_kardex_clie_log clave primaria codi_kard_clie_pk

Tabla car_trans_tmp clave primaria codi_kard_clie_pk

En este módulo, en las tablas existen campos que son usados para

aplicar auditoria tales como: audit_fec_ingr, audit._usua_ingr,

audit._fech_modi, audit._usua_modi.

Page 115: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

107

CAR_CLI_DAT

PK CODI_CLIE_PK

SAT_CLIE

NUME_CALLE

COME_CLIE

DESC_CDLA

TELE_PRIN

TELE_SECU

FAX

EMAIL

CUPO

PLAZ

SOBR_PORC

SOBR_MONT

FECH_INGR

FECH_ULTI_COMP

MONT_ULTI_COMP

FK1 CODI_TIPO_CLIE_PK

FK2 CODI_TIPO_PAGO_PK

CODI_CDLA_PK

CODI_CALLE_PK

CODI_EMPR_FK

APROBACIONCREDITO

FK3 codi_vendedor

FK4 codi_ciud_pk

CAR_CIUD_DAT

PK codi_ciud_pk

desc_ciud

FK3 codi_prov_pk

FK1 codi_pais_pk

FK2 codi_cant_pk

estado

BANCO

PK idbanco

nombre

idestado

estado

idusuario

fecharegistro

horaregistro

CAR_KARDEX_CLIE_LOG

PK codi_kard_clie_pk

secu_trans

fech_regi

plaz

descrip

coment

tota

nume_apli

asentado

bloqueado

abon

codi_stat_pk

codi_modu_pk

FK3 codi_vendedor

codi_clie_pk

codi_empr_pk

FK2 codi_tarj_pk

codi_banc_pk

sigl_pk

tipo_apli

VEN_VENDEDOR

PK codi_vendedor

nomb_vendedor

codi_comision

tipo_vendedor

codi_detalle_comision

estado

fecha_creacion

CAR_TARJ_DAT

PK codi_tarj_pk

nomb_tarj

estado

porc_desc_tarj

porc_incr_tarj

mini_tarj

CAR_CONTA_ASIENTO_DAT

PK,FK1 codi_cont_asie_pk

tipo_as

num_doc

fech_doc

codcta

detalle

tipreg

tipregc

bloqueado

estado

CAR_CLIE_NATU_DAT

PK,FK1 codi_clie_pk

cedu_pk

nomb_natu

cont

estado

CAR_CLIE_JURI_DAT

PK,FK1 codi_clie_pk

ruc_pk

repr_lega

razo_soci

estado

CAR_TIPO_CLIE_DAT

PK codi_tipo_clie_pk

desc_tipo_clie

CODI_TIPO_PAGO_DAT

PK codi_tipo_pago_pk

desc_tipo_pago

CAR_PROV_DAT

PK codi_prov_pk

desc_prov

codi_pais_pk

estado

CAR_PAIS_DAT

PK codi_pais_pk

desc_pais

estado

CAR_CANT_DAT

PK codi_cant_pk

desc_cant

codi_prov_pk

estado

Figura 3.3.3.1 Diagrama Objeto Relación-Módulo de Cartera

Page 116: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

108

3.4 Detalle de Tablas del Módulo Cartera (Atributos, Tipos de Datos y

P- KEY)

TABLA: CAR_CLIE_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_clie_pk int 8 Contiene el código único del cliente

stat_clie varchar 2 Contiene el estado del cliente activo, inactivo, bloqueado, suspendido, etc.,

nume_calle int 8 Contiene el numero de la calle de dirección del cliente

come_calle varchar 30 Comentario referencial a la dirección

desc_cdla varchar 30 Descripción de la ciudadela

tele_prin varchar 9 Teléfono principal

tele_secu varchar 9 Teléfono Secundario

fax varchar 9 Fax

email varchar 30 Correo electrónico del cliente

cupo float 8 Cupo o valor de crédito

plaz Int 4 Plazo del crédito (30-60-90 días)

sobr_porc float 8 Sobregiro en porcentajes del crédito

sobr_mont float 8 Monto de sobregiro del crédito

fech_ingr varchar 10 Fecha de inicio del crédito

fech_venc varchar 10 Fecha de finalización del crédito

monto_ulti_comp float 8 Monto de ultima compra

FK codi_tipo_clie_pk int 8 Código del tipo de cliente(natural o jurídico)

FK codi_tipo_pago_pk int 8 Código del tipo de pago(efectivo crédito)

FK codi_cdla_pk int 8 Código de la ciudadela

FK codi_ciud_pk int 8 Código de la ciudad donde reside el cliente

FK codi_calle_pk int 8 Código de calle

FK codi_vendedor int 8 Código del vendedor que fue asignado el cliente

FK codi_empr_fk int 8 Código de la empresa (en caso de ser multiempresa)

aprobacioncredito char 1 A aprobado N negado.

TABLA: CAR_CLIE_NATU_DAT

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK codi_clie_pk int 8 Contiene el código único del cliente

PK cedu_pk varchar 13 Contiene el numero de cedula único del cliente

nomb_natu varchar 45 Contiene los nombres y apellidos del cliente

cont varchar 45 Contacto o mano derecha del cliente

estado char 1 Estado del cliente natural activo o inactivo.

Page 117: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

109

TABLA: CAR_CLIE_JURI_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_clie_pk int 8 Contiene el código único del cliente

PK ruc_pk varchar 13 Contiene el numero de RUC único del cliente

repr_lega varchar 45 Contiene los nombres y apellidos del Representante Legal

razo_soci varchar 45 Razón Social de la empresa

estado char 1 Estado del cliente Jurídico activo o inactivo.

TABLA: CAR_PAIS_DAT

P-KEY CAMPO TIPO LONG DESCRIPCIÓN

PK codi_pais_pk int 8 Contiene el código único del País

desc_pais varchar 40 Contiene la descripción de País

estado char 1 Estado del País activo o inactivo.

TABLA: CAR_PROV_DAT

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK codi_prov_pk int 8 Contiene el código único de la Provincia

desc_prov varchar 30 Contiene la descripción de la Provincia

FK codi_pais_pk int 8 Contiene el código del País

estado char 1 Estado de la provincia activa o inactiva.

TABLA: CAR_CANT_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_cant_pk Int 8 Contiene el código único del cantón

desc_cant varchar 30 Contiene la descripción de cantón

FK codi_prov_pk Int 8 Contiene el código de la provincia a la que pertenece el cantón

Estado char 1 Estado del cantón activo o inactivo.

TABLA: CAR_PARR_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_parr_pk int 8 Contiene el código único de la Parroquia

Desc_parr varchar 30 Contiene la descripción de la Parroquia

FK codi_sect_pk int 8 Contiene el código del sector al que pertenece la parroquia

FK codi_ciud_pk int 8 Contiene el código único de la ciudad.

Estado char 1 Estado de la parroquia activa o inactiva.

Page 118: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

110

TABLA: CAR_CIUD_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_ciud_pk int 8 Contiene el código único de la ciudad

desc_ciud varchar 30 Contiene la descripción de la Ciudad

FK codi_prov_pk int 8 Contiene el código de la provincia a la que pertenece el cantón

FK codi_pais int 8 Contiene el código único del País

FK codi_cant_pk int 8 Contiene el código único del cantón

Estado char 1 Estado de la ciudad activa o inactiva.

TABLA: CAR_KARDEX_CLIE_LOG

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_kard_clie_pk int 8 Contiene el código único del kardex del cliente

secu_trans int 4 Contiene la secuencia de la transacción

fech_regi varchar 10 Contiene la fecha de inicio de registro

fech_vent date Contiene la fecha de vencimiento

plaz int 4 Contiene el Plazo del crédito acordado

descrip int 4 Contiene la descripción

coment varchar 30 Comentarios

tota float 8 Total

nume_apli int 4 Numero de la aplicación

asentado Char 1 Asentado

bloqueado Int 1 Bloqueado

abon Int 8 Abono

FK codi_stat_pk varchar 3 Código del status del cliente

FK codi_ciud_pk Int 8 Código de ciudad del cliente

FK codi_modu_pk varchar 3 Código de los módulos

FK codi_vendedor Int 8 Código del vendedor

FK codi_clie_pk Int 8 Código único del cliente

FK codi_empr_pk Int 8 Código de la empresa

FK codi_tarj_pk Int 8 Código tarjeta

FK codi_banc_pk Int 8 Código del banco

FK sigl_pk varchar 3 Siglas

FK tipo_aplic varchar 3 Tipo de Aplicación

TABLA: CAR_MODU_DAT

P-KEY CAMPO TIPO LONG DESCRIPCIÓN

PK codi_modu_pk varchar 3 Contiene el código único del modulo

desc_modu varchar 30 Contiene la descripción del modulo

FK codi_empr_fk Int 8 Contiene el código de la empresa

Estado Char 1 Estado del modulo activo o inactivo.

Page 119: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

111

TABLA: CAR_STAT_DAT

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK codi_stat_pk varchar 3 Contiene el código único del modulo

desc_stat varchar 30 Contiene la descripción del modulo

estado char 1 Estado del cliente activo o inactivo.

TABLA: CAR_SECU_CLIE_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_secu_clie_pk int 8 Contiene el código de la secuencia del cliente

nomb_sucu varchar 30 Contiene el nombre de la sucursal

estado char 1 Contiene el estado del cliente

tele_prin varchar 9 Teléfono principal

tele_secu varchar 9 Teléfono Secundario

fax varchar 9 Fax

nume_calle int 4 Numero de calle del cliente

come_calle varchar 30 Comentario de regencia parta dirección

desc_cdla varchar 30 Descripción de ciudadela

FK codi_clie_pk Int 8 Código del cliente

FK codi_cdla_pk Int 8 Código de la ciudadela

FK codi_calle_pk Int 8 Código de la calle

FK codi_sect_pk Int 8 Código del sector

FK codi_prov_pk Int 8 Código de la provincia

TABLA: CAR_TARJ_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_tarj_pk int 8 Contiene el código único de la tarjeta

nomb_tarj varchar 30 Contiene el nombre o descripción de la tarjeta

estado char 1 Estado de la tarjeta activa o inactiva(para caso de cierres bancarios)

porc_desc_tarj int 2 Porcentaje de descuento para una tarjeta especifica

porc_incr_tarj int 2 Porcentaje de incremento para una tarjeta especifica

mini_tarj int 4 Mínimo de compras a realizar con la tarjeta

TABLA: CAR_TIPO_CLIE_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_tipo_clie_pk int 8 Contiene el código del tipo de cliente

desc_tipo_clie varchar 30 Contiene la descripción del tipo de cliente(Natural o Jurídico)

Page 120: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

112

TABLA: CAR_TIPO_DOCU_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK sigl_pk varchar 8 Contiene las siglas iniciales del documento

desc_docu varchar 30 Contiene la descripción del documento (factura, CC, DC, etc.)

estado char 1 Contiene el estado del tipo de documento

FK codi_stat_pk varchar 3 Contiene el código del status

FK codi_modu_pk varchar 3 Contiene le código del modulo

TABLA: CAR_TIPO_PAGO_DAT

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_tipo_pago_pk int 8 Contiene el código del tipo de pago

desc_tipo_pago varchar 30 Contiene la descripción del tipo de pago(efectivo, crédito)

TABLA: CAR_TRAN_CHEQ

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_tran_cheq_pk int 4 Contiene el código de la transacción del cheque

idbanco int 8 Contiene el código del banco

codi_clie_pk int 8 Contiene el código del cliente

fech_depo varchar 10 Contiene la fecha de deposito

fech_venc varchar 10 Contiene la fecha de vencimiento

cuen_banc varchar 15 Contiene el numero de cuenta bancaria

valo float 8 Contiene el valor del cheque

nume_che int 4 Contiene el numero del cheque

post_fech char 1 Estado para saber si el cheque es posfechado

TABLA: CAR_TRAN_TARJ

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_tran_pk int 4 Contiene el código de la transacción de la tarjeta

codi_tarj_pk int 8 Contiene el código de la tarjeta

codi_clie_pk int 8 Contiene el código del cliente

nume_tarj varchar 15 Contiene el numero de la tarjeta

valor float 8 Contiene el valor de la tarjeta

increm int 4 Contiene el incremento de la tarjeta

cobrado char 1 Campo de verificación si la tarjeta fue cancelada(1-0)

Page 121: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

113

TABLA: CAR_TRANS_TMP

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_kard_clie_pk int 8 Contiene el código único del kardex del cliente

secu_trans varchar 30 Contiene la secuencia de la transacción

fech_regi date Contiene la fecha de inicio de registro

tota int 8 Total

nume_apli int 4 Numero de la aplicación

tipo_apli int 4 Contiene el tipo de aplicación

asentado char 1 Asentado

bloqueado char 1 Bloqueado

abon int 8 Abono

FK codi_stat_pk varchar 3 Código del status del cliente

FK codi_ciud_pk int 8 Código de la ciudad del cliente

FK codi_modu_pk varchar 3 Código de los módulos

FK codi_vendedor int 8 Código del vendedor

FK codi_clie_pk int 8 Código único del cliente

FK codi_empr_pk int 8 Código de la empresa

FK codi_tarj_pk int 8 Código de tarjeta

FK codi_banc_pk int 8 Código del banco

sigl_pk varchar 3 Siglas

De la misma forma necesitamos de tablas externas (de otros módulos) por ejemplo:

TABLA: PORTAL

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK idportal int 8 Código de identificación del portal

nombre varchar 30 Descripción del portal

ruta varchar 30 Estado del usuario activo o inactivo.

TABLA: USUARIO

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK idusuario int 8 Código de identificación del usuario

idsucursal int 8 Código de la sucursal a la que pertenece el usuario

estado char 1 Estado del usuario activo o inactivo.

nombre varchar 30 Nombre del usuario

clave varchar 10 Password o contraseña

email varchar 30 Correo electrónico del usuario

Page 122: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

114

TABLA: ROL

P-KEY CAMPO TIPO LONG DESCRIPCIÓN

PK idrol. Int 8 Código de identificación del rol

nombre varchar 30 Descripción del Rol(administrador-Usuario)

FK idportal Int 8 Código de identificación del portal

TABLA: USUARIOROL

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK idusuario int 8 Código de identificación del usuario

FK idrol. Int 8 Código de identificación del rol

TABLA: BANCO

P-KEY CAMPO TIPO LONG DESCRIPCIÓN PK Idbanco int 8 Contiene el código del banco

nombre varchar 30 Contiene la descripción del banco

idestado int 8 Idestado

estado char 1 Estado del banco activo o inactivo.

FK idusuario Int 8 Identificación del usuario

fecharegistro varchar 10 Fecha de registro

horaregistro varchar 8 Hora de registro

TABLA: VEN_VENDEDOR

P-KEY

CAMPO TIPO LONG DESCRIPCIÓN

PK codi_vendedor int 4 Contiene el código del vendedor

nomb_vendedor varchar 30 Contiene el nombre del vendedor

codi_comision int 8 Código del porcentaje de comisión

tipo_vendedor varchar 30 Tipo de vendedor (Fijo/Eventual)

codi_detalle_comision int 8 Detalle de porcentajes de comisión

estado char 1 Estado del vendedor activo, inactivo

fecha_creacion date Fecha de ingreso a la empresa

Page 123: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

115

TABLA: CONTA_ASIENTO

P-KEY

NOMBRE TIPO LONG DESCRIPCION

PK tipo_as varchar 2 Tipo de asiento

num_doc int 8 Numero del asiento

fech_doc date 8 Fecha del asiento

cvecta int 4 Clave de la cuenta

codcta int 12 Codificación de la cuenta

ctaaux int 7 Código auxiliar de la cuenta

detalle char 40 La glosa de la cuenta

tipreg num 2 Si es 1 o -1

tipregc char 1 Debe (D) o haber (H)

bloqueado char 1 Es para que ya no se pueda corregir el asiento

Page 124: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

116

CAPITULO 4

4. CODIFICACIÓN.-

4.1 Desarrollo del sistema

4.1.1. Creación de la Base de Datos

Para la creación de la base de datos elegimos PostgreSQL, puesto que el

mismo es un servidor de datos relacional libre, liberado bajo la licencia

BSD, recordemos además que estamos realizando un programa con

tecnología Open Source, y esta es una alternativa de código abierto.

Además, dicha base actúa como depósito central de los datos

estructurados. Siendo el administrador de bases de datos (DBA) quien se

encarga de configurar y administrar los datos de manera segura.

4.1.2. Creación de los Componentes (Módulos)

El presente proyecto se lo ha dividido en módulos, lo cual nos da la

facilidad de que en un futuro se puedan ir incorporando al mismo, nuevos

módulos que cubran las expectativas de los usuarios y sobre todo de la

organización.

Page 125: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

117

Cabe recalcar que los módulos desarrollados en su totalidad son los

siguientes:

Módulo de Ventas

Módulo de Marketing.

Módulo de RRHH

Módulo de Rol de Pagos

Módulo de Contabilidad

Módulo de Presupuestos

Módulo de Cartera

Módulo de Tesorería

Módulo de Activos Fijos

Módulo de Operaciones

Módulo de Compras

Módulo de Inventario

Y específicamente el Modulo de Cartera el objeto de estudio de nuestro

proyecto.

Además de esto, cabe tomar mención que hemos desarrollado

conjuntamente con nuestro módulo, los procesos de seguridad y auditoria

para el mismo, no como módulos independientes sino como un alcance

adicional de nuestro proyecto.

4.1.2.1.Seguridad.- Permitir el acceso sólo a personal autorizado,

previo ingreso de usurario y contraseña, las mismas que serán

Page 126: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

118

asignadas por el administrador a los diferentes usuarios con los

permisos y restricciones respectivas.

4.1.2.2. Auditoria.- El auditar un proceso, transacción o el simple

hecho de ingresar a una determinada tabla se constituye como parte

de vital importancia en nuestro modulo, ya que de esta manera se

podrá tener un registro con detalle de fecha y hora de todos los

accesos que se realizaron en la aplicación en determinado momento,

así como también del usuario que realizó determinado acceso o

transacción.

4.2 Principales Técnicas de Desarrollo

Entre la principal técnica que se uso para la implementación del

proyecto, podemos hacer mención a la siguiente:

4.2.1. Técnicas Estructuradas con Metodología Orientada

Objetos.- Es importante destacar la utilización de las técnicas

estructuradas que se indican en la Metodología Orientada a objetos,

explicada en capítulos anteriores y con una las cuales se ha

desarrollado esta aplicación.

Se utiliza la expresión general "objeto" para indicar todos aquellos

elementos considerados y que son, entre otros:

Diagramas de Flujo de Datos

Procesos

Flujos de Datos

Page 127: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

119

Registros.

Elementos.

4.2.2. Codificación utilizando Struts.- Por medio de ésta

herramienta, la cual funciona como un contenedor de servlets se

mejoró la estructura de codificación, dividiendo los bloques de

programación, en paquetes que encierran cada una de los beans, las

acciones, listas, objetos de negocios, y separando la programación del

diseño o formulario, para realizar y llevar a cabo la correcta

funcionalidad del sistema.

Cabe indicar además, que Struts, nos facilita los mecanismos de

control necesarios y útiles al momento de querer reutilizar código

escrito, corroborando de esta manera que nuestro proyecto se ha

utilizado la arquitectura 3 capas, que se indico en capítulos anteriores.

En el transcurso del mismo, siguiendo día a día las innovaciones

tecnológicas e investigación científica, permitiendo optimizar los

procesos, a través de la simplicidad de sus paquetes, sin que esto

deje de tener la valiosa funcionalidad que provee.

Cabe también recalcar que este módulo agilita las operaciones de

finazas a través de los diferentes tipos de procesos, transacciones y

reportes con los que cuenta, actualizando información en el sistema de

manera automática, recordemos que se trata de un ERP, por lo tanto

se toman datos externos (de otros módulos, tablas) pertenecientes a la

Page 128: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

120

organización; por ejemplo la tabla oper_calle_dat de operaciones, de

la tabla inv_empresa_dat de inventario, etc., y siguiendo obviamente

las reglas de estandarización, previamente establecidas, para una

mejor utilización y mayor rendimiento de la aplicación.

4.3. Calidad del Sistema.

4.3.1. Cumplimiento de los Requerimientos o Alcances

Como se menciono en el capitulo 1, los alcances propuestos en la

etapa de análisis se han cumplido exitosamente, a la fecha de

finalización del proyecto.

Cada alcance ha sido meticulosamente elaborado de manera tal, que

satisfaga la propuesta elaborada inicialmente, gracias al estudio de

investigación realizado por nuestro grupo, sin restar importancia a las

valiosas opiniones de usuarios de sistemas similares.

4.3.2. Valor Agregado (Otros Alcances)

Es importante indicar que nuestro módulo provee la facilidad de

cambio y reestructuración, es decir que se pueden ir incorporando

alcances de acuerdo a las peticiones de gerencia o de los usuarios

finales.

Así por ejemplo, la posibilidad de creación de una tarjeta propia de la

organización, para el manejo exclusivo de clientes, tal como lo tienen

al momento las casas comerciales De Pratti, Casa Tossi, Créditos

Page 129: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

121

Económicos etc., esto seria tan sencillo como crear una nueva tarjeta

en la sección de mantenimiento con información del nombre de la

misma, número, código, porcentajes respectivos y obviamente

siguiendo el debido tramite legal y de papelería.

Page 130: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

122

CAPITULO 5

5. IMPLEMENTACIÓN Y PRUEBAS DEL SISTEMA.

Los elementos básicos para la implementación del sistema son:

5.1 Elementos Físicos

Dentro de los elementos físicos que se necesitan para el desarrollo de

la aplicación tenemos:

2 computadoras con características como:

Monitores de 15’’

Memorias de 512 MB de memoria RAM

Procesadores Pentium IV de 2.8 GH

80 GB de Disco Duro

Fax MODEM 56 Kbps

Tarjetas de video 32 Mb.

Flash Memory (Pen Drive)

Unidades de CD WRITER SAMSUNG

Impresora de inyección a tinta

Page 131: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

123

5.2 Elementos Lógicos

Así mismo, para el desarrollo de la aplicación debemos contar con la

instalación en nuestro sitio de trabajo (PC) de los siguientes

programas en sus versiones indicadas o superiores para la correcta

funcionalidad a la finalización del proyecto; éstas son:

J2SE Development Kit 5.0 Update 3

J2SE Runtime Environment Kit 5.0 Update 3

Eclipse 3.1

Ireports 1.2.5

Adobe Acrobat 5.0

Servidor de Aplicaciones Apache Tomcat/5.0.28

Macromedía Dreamweaver 8

Macromedia Flash MX

Base de datos: PostgresSQL 8.1

EMS SQL Manager 2005 for PostgresSQL Version

3.6.0.1

Sistema Operativo Windows XP Profesional con Server

Pack 2.

Utilitarios Microsoft Office

Linux Distribución Fedora Core 4.0.

Corel Draw.

Page 132: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

124

5.3 Recurso Humano

Las personas que tendrán acceso al sistema son

Usuarios finales, como: Empleados autorizados de la institución,

Gerente, proveedor y cliente visitante desde portal Web.

Administrador con intelecto y capacidad para el correcto manejo de

la Base de datos y manejo de la aplicación, además de administrar

el sitio Web.

Programador con conocimiento de la Herramienta J2SE, utilizando

Struts, y Base de Datos PostgresSQL, en su versión 8.1

5.4 Infraestructuras

Básicamente al referirnos a éste tema lo relacionamos con el ambiente

físico, es decir que el mismo esté acondicionado con lo básico y

necesario para poner en producción la aplicación como a continuación

se propone.

Sala de computación acondicionada con todas las comodidades

del caso (espacios suficientes, aire acondicionado, muebles, etc.)

Incorporar una red de cableado estructurado para mejoras de

estética organizacional.

Page 133: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

125

5.5 Capacitación de los usuarios

Cursos constantes para la utilización de la herramienta por futuras

variantes.

Se proveerá de un manual de usuario, el mismo que será diseñado

de manera que se pueda tener una mayor comprensión del mismo,

utilizando un lenguaje nada técnico con una interfaz amigable para

el usuario.

Así mismo, se pondrá a disposición de los programadores,

especialistas o personal con conocimiento en la materia un Manual

técnico, con detalle de cada uno de los paquetes que contienen, la

estructura funcional, la lógica del negocio, la base y cada uno de

sus procesos.

5.6 Pruebas del Sistema.

Dentro de las pruebas que se realizaron al sistema y en vista de que el

mismo esta diseñado originalmente para funcionar como ERP en

conjunto con otros módulos, tenemos las que a continuación se

detallan:

5.6.1 Prueba con Modulo de Operaciones.- Utilizando la tabla de

este modulo y trabajando para caso de prueba con datos ingresados

por nosotros, tenemos que la relación con la misma; es correcta y que

nos provee la facilidad de traer sus datos de determinados campos

como por ejemplo de la tabla oper_calle_dat podemos extraer la

Page 134: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

126

descripción y el numero de la calle para asignarle a determinado

cliente, así como también en el caso de la dirección sea una

ciudadela, de la tabla oper_cdla_dat, extraemos la dirección de la

misma escogiendo de la lista a la cual este modulo da mantenimiento,

otra tabla con la que realizamos la prueba es oper_sect_dat, que nos

permite tener sectorizado a nuestros clientes, de manera que esto sea

de gran ayuda en la gestión de cobranzas para las rutas asignadas.

5.6.2 Prueba con modulo de Inventario.- De la misma forma que con

operaciones, con éste modulo obtenemos el nombre de la empresa a

través de la tabla inv_empresa_dat, utilizada más en caso que la

misma tenga subdivisiones empresariales o sea multiempresa, así

como también la sucursal por medio de la tabla inv_sucursal_dat en el

caso de requerirse la misma.

5.6.3 Prueba con Modulo de Tesorería.- La relación con el mismo es

una de las más trascendentales para nuestro modulo, ya que a él se

remiten los reportes para gestión de cobranzas de nuestra cartera de

clientes, así también por la utilización de sus tablas de usuario, rol ,

banco; entre otras siendo esta última de vital importancia, pues en ella

se registran los bancos locales con los cuales se trabaja, dando la

facilidad de dar de baja a determinado banco, en cualquier momento la

situación político-financiero del país lo amerite, específicamente por

los cierres inesperados de instituciones bancarias.

Page 135: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

127

Este constituye para nosotros una relación bidireccional, pues a través

de los diferentes reportes de ambos módulos (tesorería y cartera), nos

alimentamos y se alimentan de nuestra información; así por ejemplo,

para proceder a la cancelación en sistema de los pagos a crédito

realizados con tarjetas y cheques posfechados que ya han sido

depositados y hecho efectivo, debemos valernos de un reporte emitido

por tesorería, en el cual nos indique los pagos realizados, con el fin de

realizar nuestros procesos de cancelación o dada de baja a las tarjetas

y a los cheques correspondientes, teniendo diariamente información

actualizada en la base de datos, de forma que podemos también emitir

un reporte de interés a tesorería u otro módulo, en el cual se detalle

todos los cheques y vouchers pagados y pendientes de cobro para

que éste realice la gestión de cobranzas o remita a legal si el caso lo

amerita.

Cumpliendo así con uno de nuestros alcances propuestos. Esta

prueba fue realizada satisfactoriamente y arrojando los resultados

esperados.

5.6.4 Prueba con Modulo de Contabilidad.- Uno de nuestros

alcances fue sin duda optimizar la gestión de cobros, este proceso va

de la mano con el modulo de tesorería caso de prueba explicado

anteriormente, sin embargo contabilidad siendo una pieza clave en el

desarrollo de nuestro modulo, no puede quedarse sin participación en

Page 136: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

128

dicho enlace, pues a través de sus asientos contables actualizara la

información de nuestra cartera corriente y vencida a través de una

cuenta única CxC, a través de reportes de pagos emitidos por

tesorería el cual envía valores, pues a contabilidad no le interesan los

detalles del pago; es decir quien realizo el pago, número de cuota,

etc., sino cuanto se cobró y cómo se cobró; ésta información es de

interés propio de nuestro modulo, para actualizar nuestra cartera

detallada por cliente.

En el caso de tratarse de notas de crédito o notas de debito (CC/DC),

solo en este caso se envía la información directamente a contabilidad

y como consecuencia del mismo éste crédito o debito también alterara

sus asientos contables.

5.7 Recomendaciones y Conclusiones

Como un aporte a nuestro proyecto podríamos mencionar las siguientes

recomendaciones y conclusiones

5.7.1. Recomendaciones.- Desde siempre la seguridad ha sido un

componente vital para el éxito de cualquier organización, pese

a esto muchas empresas no cuentan con un sistema que le

brinde la absoluta confianza, debido a que no tomaron las

debidas precauciones o directivas de seguridad al momento de

Page 137: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

129

realizar su infraestructura de red, implementación de la

aplicación, etc., por lo cual se recomienda las siguientes:

Aplique regularmente los Service Pack, las revisiones y las

correcciones urgentes de Windows 2000, PostgresSQL,

MacromediaDreamweaber, Linux, etc.

Deben examinar cuidadosamente todos los métodos de

acceso a PostgresSQL, y a los datos, estricto control de

acceso a personas no autorizadas.

Las aplicaciones no deben devolver información importante

a los clientes, por ejemplo, evitar que los clientes vean

nombres de servidores, direcciones IP, código y otros

elementos seguros.

5.7.2.Conclusiones.- Como conclusión podemos mencionar que la

seguridad es un factor de extrema importancia para toda organización

de manera que no debe ser pasada por alto, debe tratar de integrase

completamente en la fase de diseño antes de la implementación, con

la colaboración de los DBA, los administradores de red,

desarrolladores y otros miembros de la infraestructura tecnológica

para asegurar una solución de seguridad corporativa, y de esta forma

se tendrá una aplicación mas fuerte, repelente a los ataques de

espionaje industrial, es importante también conocer de la protección

de los datos durante el almacenamiento (como en bases de datos,

Page 138: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

130

copias de seguridad y archivos) o durante la transferencia (como en

consultas), así como también a lo que se conoce como ingeniería

social , reforzando la confidencialidad la integridad y la disponibilidad y

precisión de los datos.

5.8. GLOSARIO TÉCNICO

Sistemas de Información.- conjunto de elementos que interactúan entre

sí con el fin de apoyar las actividades de una empresa o negocio.

Open Source.- Código abierto (del inglés open source) es el término por

el que se conoce al software distribuido y desarrollado en forma libre

Java.- Lenguaje de programación con el que podemos realizar cualquier

tipo de programa.

Apache Tomcat.- Se lo considera un servidor de aplicaciones, funciona

como un contenedor de servlets desarrollado bajo el Proyecto Yakarta en

al Apache Software foundation, implementa las especificaciones de los

servlets y de los java Server pages (JSP)

Macromedia.- Editor de páginas Web, creado por Macromedia

(actualmente Adobe Systems, el cual va por la versión 8.02. Es el

programa de este tipo más utilizado en el sector del diseño y la

programación Web, por sus funcionalidades y su fácil integración con

otras herramientas

Page 139: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

131

Flash.- Se refiere tanto al programa de edición multimedia como a

Macromedia Flash Player, utiliza gráficos vectoriales e imágenes ráster,

sonido, código de programa, flujo de vídeo y audio bidireccional

PostgreSQL. Servidor de base de datos relacional libre, liberado bajo la

licencia BSD. Es una alternativa a otros sistemas de bases de datos de

código abierto (como MySQL, Firebird y MaxDB), así como sistemas

propietarios como Oracle o DB2.

Ireports.- Programa para realizar reportes de transacciones, procesos o

consultas generales.

JRE.- Java Runtime Environement, es el kit destinado al cliente para

poder ejecutar un programa java. Esencialmente esta compuesto de una

Maquina Virtual Java (JVM) capaz de ejecutar el byte-code y las

bibliotecas estándares de java.

SDK.- Standar Development Kit, es el kit destinado al programador, esta

compuesto de un JRE, de un compilador y de varios programas útiles,

ejemplos de programas java y el código de todas las clases del API.

JDK.- Java Development Kit, es el antiguo nombre del SDK. El JDK se

renombro a SDK después de la versión 1.2.2.

Application.- Una aplicación Java es un programa hecho en java y que

generalmente se ejecuta en la maquina donde se encuentra el inicio del

código. Tiene el mismo sentido que un programa en lenguaje C u otro

lenguaje.

Page 140: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

132

Applet.- El Applet es recuperado a distancia a través de un navegador

Web, y se ejecuta en el lado del cliente. Debido a esta descarga, las

reglas de seguridad referentes a los Applets son muy estrictas. Un

ejemplo de esta seguridad es que un Applet, por ejemplo no permite la

escritura en disco ni la impresión.

Servlet.- Un Servlet se puede considerar como un Applet pero del lado

del servidor. Un Servlet da funcionalidades a un servicio Web.

Datos.- Son los hechos que describen sucesos y entidades.

Información.- Es un conjunto de datos significativos y pertinentes que

describan sucesos o entidades.

Base de datos.- Conjunto de datos que pertenecen al mismo contexto

almacenados sistemáticamente para su posterior uso.

Campo.- Un elemento inconstante de una determinada clase.

Diagrama de Clases.- Sirve para visualizar las relaciones entre las clases

que involucran el sistema.

Métodos.- Los métodos u operaciones de una clase son la forma en

como ésta interactúa con su entorno.

Public.- Indica que el método será visible tanto dentro como fuera de la

clase, es decir, es accesible desde todos lados.

Private.- Indica que el método sólo será accesible desde dentro de la

clase (sólo otros métodos de la clase lo pueden accesar).

Page 141: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

133

Casos de Uso.- Representa la forma en como un Cliente (Actor) opera

con el sistema en desarrollo, además de la forma, tipo y orden en como

los elementos interactúan.

Actor.- Rol que un usuario juega con respecto al sistema. Es importante

destacar el uso de la palabra rol, pues con esto se especifica que un

Actor no necesariamente representa a una persona en particular, sino

más bien la labor que realiza frente al sistema.

Asociación.- Es el tipo de relación más básica que indica la invocación

desde un actor o caso de uso a otra operación (caso de uso). Dicha

relación se denota con una flecha simple.

Dependencia o Instanciación.- Es una forma muy particular de relación

entre clases, en la cual una clase depende de otra, es decir, se instancia

(se crea). Dicha relación se denota con una flecha punteada.

Generalización.-Este tipo de relación es uno de los más utilizados,

cumple una doble función dependiendo de su estereotipo, que puede ser

de Uso (uses) o de Herencia (extends).

Uses.- Se recomienda utilizar cuando se tiene un conjunto de

características que son similares en más de un caso de uso y no se

desea mantener copiada la descripción de la característica.

Extends.- Se recomienda utilizar cuando un caso de uso es similar a otro

en sus características.

Page 142: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

134

AGRADECIMIENTO

Agradezco a Dios quien es el que ilumina mi camino, a mi mamá Lourdes,

tías, tíos, primos que han estado conmigo en las buenas y en las malas, a mi

querido papá que aunque está fuera del país, me ha apoyado en todo

momento. A mis compañeros de grupo, con los cuales hemos pasado

noches enteras sacrificándolos para poder culminar nuestro proyecto.

GRACIAS A TODOS.

STHEFANIE IZURIETA JARAMILLO

AGRADECIMIENTO

Agradezco en primer lugar a Dios y toda mi familia, en especial a mis padres

y esposo por brindarme el apoyo necesario, y a todas las personas que de

una u otra forma nos han apoyado para la realización y culminación de este

trabajo.

A mis compañeros y amigos STHEFY (Duraznito) y VÍCTOR (Vic-Vic)

YESENIA SUÁREZ JIMÉNEZ

Page 143: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

135

AGRADECIMIENTO

Primero que nada a Dios, por darme la vida, y las fuerzas suficientes para

levantarme cuando creí caer, a mi adorados padres por su infinito amor y

abnegación, a mi encantadora y preciosa hija; mi princesa Génesis, por ser

ese ángel que día a día con su sonrisa y cariño me da las ganas suficientes

para seguir adelante y tratar de ser por ella y para ella cada día mejor, a mis

queridos hermanos en especial a Maribel quien en todo momento fue para mi

un gran apoyo, a mis profesores, por los conocimientos impartidos, a mis

grandes amigas y compañeras de grupo, gracias a sus valiosos aportes,

pues sin ellos la culminación del presente proyecto no hubiese sido posible, y

a todas aquellas personas que de una u otra forma hicieron posible la

culminación de mi carrera universitaria. A todas ellas; de corazón. MUCHAS

GRACIAS

VÍCTOR ARCÁNGEL SORIANO CRUZ

Page 144: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

136

DEDICATORIA

Dedico todo mi trabajo, esfuerzo y tiempo invertido, a mi querida abuelita

Elva Izurieta Bermúdez, quien me brindó su apoyo incondicional, desde que

inicie la carrera, y sé que desde el cielo me sigue dando fuerzas para seguir

adelante en todo lo que me proponga, todo lo que soy se lo debo a ella.

STHEFANIE IZURIETA JARAMILLO

DEDICATORIA

Dedico este trabajo a mí querido hijo y tesoro de mi vida “MIGUELITO”, por

que él es la persona que más me ha dado fuerzas para la terminación de una

etapa más de mi vida

YESENIA SUÁREZ JIMÉNEZ

Page 145: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

137

DEDICATORIA

Sin animo de ser egoísta con el resto de personas importantes de mi vida

dedico por completo este logro, a la persona que más le hubiese alegrado

compartir conmigo este momento, y aunque la vida no nos dio esa

oportunidad, estoy seguro que desde el cielo el ahora está, aun más feliz que

yo. A MI ADORADO PAPÁ…………JOSÉ RICARDO SORIANO PEÑA (+)

VÍCTOR ARCÁNGEL SORIANO CRUZ

Page 146: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

138

TRIBUNAL DE GRADUACIÓN

_______________________ _______________________

ING. FERNANDO ABAD M. ING. JUAN SÁNCHEZ H.

DECANO PRESIDENTE TRIBUNAL

_______________________ _______________________

ING. IVÁN ACOSTA G. ING. VÍCTOR PAZMIÑO H.

VOCAL VOCAL

_____________________

ABG. JUAN CHÁVEZ A.

SECRETARIO

Page 147: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

139

DECLARACIÓN EXPRESA

La autoría de éste proyecto corresponde exclusivamente al suscrito(s),

perteneciendo a la Universidad de Guayaquil los derechos que genere la

aplicación de la misma.

(Reglamento de graduación de la carrera de Ingeniería en sistemas

Computacionales Art. 26)

_____________________________ ________________________

STHEFANIE IZURIETA JARAMILLO YESENIA SUÁREZ JIMÉNEZ

____________________________

VÍCTOR SORIANO CRUZ

Page 148: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

140

RESUMEN.

Esta aplicación fue diseñada con el principal propósito de satisfacer las

necesidades de los usuarios de sistemas similares, pero que no cumplían

con los requerimientos de determinada organización, en la cual los procesos

se volvían tediosos, pues incluso en algunos casos eran manejados

manualmente, ésto demandaba un mayor tiempo de ejecución entre un

proceso y otro.

El modulo de cartera, realizado con altos estándares de calidad nos provee

las herramientas necesarias que permite tener un control de todos nuestros

clientes a crédito, controlando de esta manera nuestra cartera corriente y

vencida, proporcionado una amplia variedad de reportes, y realizando

procesos y transacciones que van de la mano con otros módulos,

actualizando información constantemente (en línea) para utilización propia o

de módulos relacionados.

Page 149: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

141

ÍNDICE DE FIGURAS

Figura 1.1.1 Principales problemáticas de cartera 2

Figura 1.1.2 Arquitectura de 3 Capas 5

Figura 1.11.2.1 Diseño Físico de Base de Datos 25

Figura 1.11.2.2 Uso de la Base de Datos 26

Figura 2.1.3.1 Estadístico Información de Cartera 30

Figura 2.1.4.1 Cartera Relacionado Con Otros Módulos 32

Figura 2.2.1 Tabla Usuarios- Estructura de datos 39

Figura 2.2.2 Elementos de Datos- Atributo idusuarios 40

Figura 2.2.3 Elementos de Datos- Atributo username 40

Figura 2.2.4 Elementos de Datos- Atributo password 41

Figura 2.2.5 Elementos de Datos- Atributo nombres 41

Figura 2.2.6 Elementos de Datos- Atributo apellidos 42

Figura 2.2.7 Elementos de Datos- Atributo rol 42

Figura 2.3.1.1 Flujo de datos- Proceso de Seguridad 43

Figura 2.3.2.1 Flujo de datos- Proceso de Auditoria 45

Figura 2.3.3.1 Flujo de datos- Módulo de Cartera (Efectivo) 47

Figura 2.3.3.2 Flujo de datos de cartera (cheque) 48

Figura 2.4.1.1 Diagrama de casos De Uso - Seguridad 49

Figura 2.4.2.1 Diagrama Caso de Uso- Auditoria 50

Figura 2.4.3.1 Diagrama Caso de Uso - Modula de Cartera 51

Figura 2.4.3.2 Caso de Uso-Autorizador/Cliente 52

Page 150: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

142

Figura 2.4.3.3 Caso de Uso-Oficial Crédito/ Cliente 52

Figura 2.4.3.4 Caso de Uso-Oficial/Reporte 53

Figura 2.4.3.5 Caso de Uso-Oficial/Crédito Cliente 53

Figura 2.4.3.6 Caso de Uso-Oficial/Debito Cliente 54

Figura 2.4.3.7 Caso de Uso-Oficial/Tarjetas 54

Figura 2.4.3.8 Caso de Uso-Oficial/Control cheques 55

Figura 2.4.3.9 Caso de Uso-Oficial/Adm-Sistema/Sistema 55

Figura 2.6.3.1 Diagrama Objeto Relación – Modulo Cartera 69

Figura 2.7.1.1 Secuencia Seguridad Aplicación Crear Usuarios 71

Figura 2.7.1.2 Secuencias Seguridad - Consultar Usuario 71

Figura 2.7.1.3 Secuencias Seguridad - Crear Perfil / Rol 72

Figura 2.7.1.4 Secuencias Seguridad - Asignar opciones al perfil 72

Figura 2.7.1.5 Secuencias Seguridad - Consultar opciones 73

Figura 2.7.1.6 Secuencias Seguridad - Crear Opciones 73

Figura 2.7.1.7 Secuencias Seguridad - Cambiar Contraseña 74

Figura 2.7.1.8 Secuencias Seguridad - Asignar Usuario al Perfil 74

Figura 2.7.2.1 Secuencias Auditoria - Consultar transacciones 75

Figura 2.7.2.2 Secuencias Auditoria - Auditar Transacción 75

Figura 2.7.3.1 Secuencias Mod. Cartera - Activar Cliente 76

Figura 2.7.3.2 Secuencias Mod. Cartera - Inactivar Cliente 76

Figura 2.7.3.3 Secuencias Mod. Cartera - Autorizar Cupo 77

Figura 2.7.3.4 Secuencias Mod. Cartera - Crear Cliente 77

Page 151: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

143

Figura 2.7.3.5 Secuencias Mod. Cartera - Consultar Cliente 78

Figura 2.7.3.6 Secuencias Mod. Cartera - Modificar Cliente 78

Figura 2.7.3.7 Secuencias Mod. Cartera - Consultar Clientes 30-60-90 79

Figura 2.7.3.8 Secuencias Mod. Cartera - Consultar Pagos Pendientes 79

Figura 2.7.3.9 Secuencias Mod. Cartera - Calificar Clientes 80

Figura 2.7.3.10 Secuencias Mod. Cartera - Contabilizar Transacción 80

Figura 2.7.3.11 Secuencias Mod. Cartera - Totales a cancelar 81

Figura 2.7.3.12 Secuencias Mod. Cartera - Reporte de Comisiones 81

Figura 2.7.3.13 Secuencias Mod. Cartera - Realizar Créditos Clientes 82

Figura 2.7.3.14 Secuencias Mod. Cartera - Consultar Créditos Cliente 82

Figura 2.7.3.15 Secuencias Mod. Cartera - Modificar Créditos Cliente 83

Figura 2.7.3.16 Secuencias Mod. Cartera - Crear Débito Clientes 83

Figura 2.7.3.17 Secuencias Mod. Cartera - Consultar Débitos Clientes 84

Figura 2.7.3.18 Secuencias Mod. Cartera - Modificar Débitos Clientes 84

Figura 2.7.3.19 Secuencias Mod. Cartera - Crear tarjetas de Crédito 85

Figura 2.7.3.20 Secuencias Mod. Cartera - Consultar Tarjetas de Crédito 85

Figura 2.7.3.21 Secuencias Mod. Cartera – Modificar Tarjetas de Crédito 86

Figura 2.7.3.22 Secuencias Mod. Cartera - Eliminar Tarjetas de Crédito 86

Figura 2.7.3.23 Secuencias Mod. Cartera - Cheques Posfechados 87

Figura 2.7.3.24 Secuencias Mod. Cartera - Cheques Protestados 87

Figura 2.7.3.25 Secuencias Mod. Cartera – Definir Autorización 88

Page 152: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

144

Figura 2.7.3.26 Secuencias Mod. Cartera – Validar Ingreso al Sistema 88

Figura 3.1.1.1 Diagrama de Clase: Usuarios 90

Figura 3.1.2.1 Diagrama de Clase: Acción 90

Figura 3.1.2.2 Diagrama de Clase: Auditoria 91

Figura 3.1.3.1 Diagrama de Clase: Tipo-Cliente 91

Figura 3.1.3.2 Diagrama de Clase: Cliente 92

Figura 3.1.3.3 Diagrama de Clase: Cliente Natural 93

Figura 3.1.3.4 Diagrama de Clase: Cliente Jurídico 93

Figura 3.1.3.5 Diagrama de Clase: País 94

Figura 3.1.3.6 Diagrama de Clase: Provincia 94

Figura 3.1.3.7 Diagrama de Clase: Cantón 94

Figura 3.1.3.8 Diagrama de Clase: Parroquia 95

Figura 3.1.3.9 Diagrama de Clase: Ciudad 95

Figura 3.1.3.10 Diagrama de Clase: Modulo 96

Figura 3.1.3.11 Diagrama de Clase: Estado Cliente 96

Figura 3.1.3.12 Diagrama de Clase: Kardex 97

Figura 3.1.3.13 Diagrama de Clase: Tipo Documento 98

Figura 3.1.3.14 Diagrama de Clase: Sucursal Cliente 98

Figura 3.1.3.15 Diagrama de Clase: Tarjeta 99

Figura 3.1.3.16 Diagrama de Clase: Tran -Tarjeta 99

Figura 3.1.3.17 Diagrama de Clase: Tran -Cheque 100

Figura 3.1.3.18 Diagrama de Clase: Banco 100

Page 153: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

145

Figura 3.1.3.19 Diagrama de Clase: Vendedores 101

Figura 3.1.3.20 Diagrama de Clase: Asientos Contables 101

Figura 3.1.3.21 Diagrama de Clase: Cliente Histórico 102

Figura 3.2.1.1 Esquema de Generalización Clase Cliente 104

Figura 3.3.3.1 Diagrama Objeto Relación Modulo Cartera (Atributos). 107

Page 154: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

1

CAPÍTULO 1

1. MANUAL TÉCNICO

1.1 Introducción

En Este documento podemos visualizar pasa a paso el patrón de diseño

MVC (Model View Controller). Como ejemplo de implementación y

utilización de el framework Struts, que facilita el desarrollo de

aplicaciones Web en Java basadas en MVC la cuales fueron utilizadas en

este modulo de Cuentas por Cobrar.

Es un patrón de arquitectura de software que separa los datos de una

aplicación, la interfaz de usuario, y la lógica de control en tres

componentes distintos. El patrón MVC se ve frecuentemente en

aplicaciones web, donde la vista es la página HTML, el control es el

código que provee de datos dinámicos a la página, y el modelo contiene

clases representativas de la aplicación (como el mensaje de un foro, un

miembro registrado, etc.).

Page 155: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

2

1.2 MVC: Model View Controller

Modelo: Ésta es la representación específica del dominio de la

información sobre la cual funciona la aplicación. El modelo es otra forma

de llamar a la capa de dominio. La lógica de dominio añade significado a

los datos; por ejemplo, calculando si hoy es el cumpleaños del usuario o

los totales, impuestos.

Vista: Éste presenta el modelo en un formato adecuado para interactuar,

usualmente un elemento de interfaz de usuario.

Controlador: Éste responde a eventos, usualmente acciones del usuario

e invoca cambios en el modelo y probablemente en la vista.

Muchas aplicaciones utilizan un mecanismo de almacenamiento

persistente (como puede ser una base de datos) para almacenar los

datos. MVC no menciona específicamente esta capa de acceso a datos.

Page 156: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

3

En un modelo convencional llegan (INPUT), se procesan y se muestra el

resultado (OUTPUT).

Aunque se pueden encontrar diferentes implementaciones de MVC, el

flujo que sigue el control generalmente es el siguiente:

El usuario interactúa con la interfaz de usuario de alguna forma (por

ejemplo, el usuario pulsa un botón, enlace)

El controlador recibe (por parte de los objetos de la interfaz-vista) la

notificación de la acción solicitada por el usuario. El controlador gestiona

el evento que llega, frecuentemente a través de un gestor de eventos

(handler) o callback.

El controlador accede al modelo, actualizándolo, posiblemente

modificándolo de forma adecuada a la acción solicitada por el usuario

(por ejemplo, el controlador actualiza el carro de la compra del usuario).

Los controladores complejos están a menudo estructurados usando un

patrón de comando que encapsula las acciones y simplifica su extensión.

Figura 1.1 Modelo convencional

Page 157: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

4

El controlador delega a los objetos de la vista la tarea de desplegar la

interfaz de usuario. La vista obtiene sus datos del modelo para generar la

interfaz apropiada para el usuario donde se refleja los cambios en el

modelo (por ejemplo, produce un listado del contenido del carro de la

compra). El modelo no debe tener conocimiento directo sobre la vista. Sin

embargo, el patrón de observador puede ser utilizado para proveer cierta

indirección entre el modelo y la vista, permitiendo al modelo notificar a los

interesados de cualquier cambio. Un objeto vista puede registrarse con el

modelo y esperar a los cambios, pero aun así el modelo en sí mismo

sigue sin saber nada de la vista. El controlador no pasa objetos de

dominio (el modelo) a la vista aunque puede dar la orden a la vista para

que se actualice. Nota: En algunas implementaciones la vista no tiene

acceso directo al modelo, dejando que el controlador envíe los datos del

modelo a la vista.

La interfaz de usuario espera nuevas interacciones del usuario,

comenzando el ciclo nuevamente.

Page 158: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

5

1.3 Struts Framework

En el desarrollo de software, un framework es una estructura de soporte

definida en la cual otro proyecto de software puede ser organizado y

desarrollado. Típicamente, un framework puede incluir soporte de

programas, bibliotecas y un lenguaje de scripting entre otros softwares

para ayudar a desarrollar y unir los diferentes componentes de un

proyecto.

Struts permite reducir el tiempo de desarrollo. Su carácter de "software

libre" y su compatibilidad con todas las plataformas en que Java

Entreprise esté disponible, lo convierte en una herramienta altamente

disponible.

Figura 1.2 MVC

Page 159: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

6

1.4 Estructura

Cuando se programan aplicaciones Web con el patrón MVC, siempre

surge la duda de usar un solo controlador o usar varios controladores,

pues si consideramos mejor usar un solo controlador para tener toda

nuestra lógica en un mismo lugar, nos encontramos con un grave

problema, ya que nuestro controlador se convierte en lo que se conoce

como "fat controller", es decir un controlador saturado de peticiones,

Struts surge como la solución a este problema ya que implementa un

solo controlador (ActionServlet) que evalúa las peticiones del usuario

mediante un archivo configurable (struts-config.xml).

1.5 Caracteristicas de structs.

Entre las características de Struts se pueden mencionar:

Configuración del control centralizada.

Interrelaciones entre Acciones y página u otras acciones se

especifican por tablas XML en lugar de codificarlas en los

programas o páginas.

Page 160: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

7

Componentes de aplicación, que son el mecanismo para compartir

información bidireccionalmente entre el usuario de la aplicación y

las acciones del modelo.

Librerías de entidades para facilitar la mayoría de las operaciones

que generalmente realizan las páginas JSP.

Struts contiene herramientas para validación de campos de

plantillas bajo varios esquemas que van desde validaciones

locales en la página (en javaScript) hasta las validaciones de

fondo hechas a nivel de las acciones.

Struts permite que el desarrollador se concentre en el diseño de

aplicaciones complejas como una serie simple de componentes

del Modelo y de la vista intercomunicados por un control

centralizado. Diseñando de esta manera se debe obtener una

aplicación más consistente y más fácil de mantener.

Page 161: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

8

1.6 Diagrama de Clases

Este sería un conjunto de clases utilizadas y sus relaciones.

Page 162: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

9

Figura 1.4 Diagrama de clases

Page 163: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

10

1.7 Diagrama de Colaboración.

Esta sería la manera de interactuar entre las clases y Struts.

Figura 1.5 Diagrama de colaboración

Page 164: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

11

1.8 Diagrama Objeto Relación-Módulo de Cartera

CAR_CLI_DAT

PK CODI_CLIE_PK

SAT_CLIE

NUME_CALLE

COME_CLIE

DESC_CDLA

TELE_PRIN

TELE_SECU

FAX

EMAIL

CUPO

PLAZ

SOBR_PORC

SOBR_MONT

FECH_INGR

FECH_ULTI_COMP

MONT_ULTI_COMP

FK1 CODI_TIPO_CLIE_PK

FK2 CODI_TIPO_PAGO_PK

CODI_CDLA_PK

CODI_CALLE_PK

CODI_EMPR_FK

APROBACIONCREDITO

FK3 codi_vendedor

FK4 codi_ciud_pk

CAR_CIUD_DAT

PK codi_ciud_pk

desc_ciud

FK3 codi_prov_pk

FK1 codi_pais_pk

FK2 codi_cant_pk

estado

BANCO

PK idbanco

nombre

idestado

estado

idusuario

fecharegistro

horaregistro

CAR_KARDEX_CLIE_LOG

PK codi_kard_clie_pk

secu_trans

fech_regi

plaz

descrip

coment

tota

nume_apli

asentado

bloqueado

abon

codi_stat_pk

codi_modu_pk

FK3 codi_vendedor

codi_clie_pk

codi_empr_pk

FK2 codi_tarj_pk

codi_banc_pk

sigl_pk

tipo_apli

VEN_VENDEDOR

PK codi_vendedor

nomb_vendedor

codi_comision

tipo_vendedor

codi_detalle_comision

estado

fecha_creacion

CAR_TARJ_DAT

PK codi_tarj_pk

nomb_tarj

estado

porc_desc_tarj

porc_incr_tarj

mini_tarj

CAR_CONTA_ASIENTO_DAT

PK,FK1 codi_cont_asie_pk

tipo_as

num_doc

fech_doc

codcta

detalle

tipreg

tipregc

bloqueado

estado

CAR_CLIE_NATU_DAT

PK,FK1 codi_clie_pk

cedu_pk

nomb_natu

cont

estado

CAR_CLIE_JURI_DAT

PK,FK1 codi_clie_pk

ruc_pk

repr_lega

razo_soci

estado

CAR_TIPO_CLIE_DAT

PK codi_tipo_clie_pk

desc_tipo_clie

CODI_TIPO_PAGO_DAT

PK codi_tipo_pago_pk

desc_tipo_pago

CAR_PROV_DAT

PK codi_prov_pk

desc_prov

codi_pais_pk

estado

CAR_PAIS_DAT

PK codi_pais_pk

desc_pais

estado

CAR_CANT_DAT

PK codi_cant_pk

desc_cant

codi_prov_pk

estado

Page 165: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

12

1.9 SCRIPT PARA CREACION DE LA BASE DE DATOS

CREATE TABLE car_accion_dat ( codi_acci int8 NOT NULL DEFAULT nextval(('car_accion_seq'::text)::regclass), desc_acci varchar(100), esta_acci char(1), audi_usua_ingr varchar(15), audi_fech_ingr date DEFAULT now(), CONSTRAINT accion_pk PRIMARY KEY (codi_acci) ) WITHOUT OIDS; ALTER TABLE car_accion_dat OWNER TO postgres;

CREATE TABLE car_auditoria_log ( codi_audi int8 NOT NULL, codi_empr int8 NOT NULL, codi_modu int8 NOT NULL, codi_acci int8 NOT NULL, tabl_audi varchar(30) NOT NULL, secu_tabl int8 NOT NULL, audi_usua varchar(15), fech_audi date, CONSTRAINT auditoria_pk PRIMARY KEY (codi_audi) ) WITHOUT OIDS; ALTER TABLE car_auditoria_log OWNER TO postgres;

CREATE TABLE usuarios ( idusuario int4 NOT NULL, username varchar(20), "password" varchar(20), nombres varchar(30), apellidos varchar(30), rol varchar(20) ) WITH OIDS; ALTER TABLE usuarios OWNER TO postgres;

Page 166: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

13

CREATE TABLE car_stat_dat ( codi_stat_pk varchar(3) NOT NULL, desc_stat varchar(30) NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), codi_stat int4 DEFAULT nextval('car_stat_seq'::regclass), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_stat_dat_pkey PRIMARY KEY (codi_stat_pk) ) WITH OIDS; ALTER TABLE car_stat_dat OWNER TO postgres; CREATE TABLE car_tipo_docu_dat ( sigl_pk varchar(3) NOT NULL, desc_docu varchar(30), estado char(1), codi_stat_pk varchar(3), codi_modu_pk varchar(3), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, codi_tipo_docu int8 DEFAULT nextval('car_tipo_docu_seq'::regclass), CONSTRAINT car_tipo_docu_dat_pkey PRIMARY KEY (sigl_pk), CONSTRAINT car_tipo_docu_dat_codi_modu_pk_fkey FOREIGN KEY (codi_modu_pk) REFERENCES car_modu_dat (codi_modu_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_tipo_docu_dat_codi_stat_pk_fkey FOREIGN KEY (codi_stat_pk) REFERENCES car_stat_dat (codi_stat_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_tipo_docu_dat OWNER TO postgres;

Page 167: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

14

CREATE TABLE car_tipo_clie_dat ( codi_tipo_clie_pk int8 NOT NULL, desc_tipo_clie varchar(30), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date, audi_fech_modi date, CONSTRAINT car_tipo_clie_dat_pkey PRIMARY KEY (codi_tipo_clie_pk) ) WITH OIDS; ALTER TABLE car_tipo_clie_dat OWNER TO postgres;

CREATE TABLE inv_empresa_dat ( codi_empr int8 NOT NULL, desc_empr varchar(100), dire_empr varchar(100), mail_empr varchar(100), acti_empr varchar(100), ruc_empr varchar(13), tele_empr varchar(50), repr_empr varchar(100), codi_pais int8, codi_prov int8, codi_ciud int8, codi_parr int8, codi_sect int8, nsri_empr char(10), esta_empr char(1), audi_usua_ingr varchar(15), audi_fech_ingr date, audi_usua_modi varchar(15), audi_fech_modi date, CONSTRAINT empresa_pk PRIMARY KEY (codi_empr) ) WITH OIDS; ALTER TABLE inv_empresa_dat OWNER TO postgres;

Page 168: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

15

CREATE TABLE car_modu_dat ( codi_modu_pk varchar(3) NOT NULL, desc_modu varchar(30) NOT NULL, codi_empr_fk int8, audi_usua_ingr varchar(15), estado char(1), codi_modu int4 DEFAULT nextval('car_modu_seq'::regclass), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, audi_usua_modi varchar(15), CONSTRAINT car_modu_dat_pkey PRIMARY KEY (codi_modu_pk), CONSTRAINT car_modu_dat_codi_empr_fk_fkey FOREIGN KEY (codi_empr_fk) REFERENCES inv_empresa_dat (codi_empr) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT ) WITH OIDS; ALTER TABLE car_modu_dat OWNER TO postgres;

CREATE TABLE inv_sucursal_dat ( codi_sucu int8 NOT NULL, codi_matr int8 NOT NULL, codi_empr int8 NOT NULL, codi_prov int8, codi_ciud int8, codi_cdla int8, codi_call int8, nume_call_sucu int8, desc_sucu varchar(100), dire_sucu varchar(100), tele_sucu varchar(50), repr_sucu varchar(100), nsri_sucu char(10), obse_sucu varchar(100), esta_sucu char(1), audi_usua_ingr varchar(15), audi_fech_ingr date, audi_usua_modi varchar(15), audi_fech_modi date, CONSTRAINT sucursal_pk PRIMARY KEY (codi_sucu, codi_empr) ) WITH OIDS; ALTER TABLE inv_sucursal_dat OWNER TO postgres;

Page 169: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

16

CREATE TABLE car_accion_dat ( codi_acci int8 NOT NULL DEFAULT nextval(('car_accion_seq'::text)::regclass), desc_acci varchar(100), esta_acci char(1), audi_usua_ingr varchar(15), audi_fech_ingr date DEFAULT now(), CONSTRAINT accion_pk PRIMARY KEY (codi_acci) ) WITHOUT OIDS; ALTER TABLE car_accion_dat OWNER TO postgres;

CREATE TABLE ven_vendedor ( codi_vendedor int4 NOT NULL DEFAULT nextval('ven_vendedor_codi_vendedor_seq'::regclass), nomb_vendedor varchar(30), codi_comision int8, tipo_vendedor varchar, codi_detalle_comision int8, estado char(1), fecha_creacion date, CONSTRAINT pk_vendedor PRIMARY KEY (codi_vendedor) ) WITH OIDS; ALTER TABLE ven_vendedor OWNER TO postgres;

CREATE TABLE banco ( idbanco int8 NOT NULL, nombre varchar(100) NOT NULL, idestado int8 NOT NULL, estado char(1), fecharegistro varchar(10), horaregistro varchar(8), CONSTRAINT banco_pkey PRIMARY KEY (idbanco) ) WITH OIDS; ALTER TABLE banco OWNER TO postgres;

Page 170: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

17

CREATE TABLE car_pais_dat ( codi_pais_pk int8 NOT NULL DEFAULT nextval('car_pais_seq'::regclass), desc_pais varchar(40) NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_modi date, audi_fech_ingr date DEFAULT now(), CONSTRAINT car_pais_dat_pkey PRIMARY KEY (codi_pais_pk) ) WITH OIDS; ALTER TABLE car_pais_dat OWNER TO postgres;

CREATE TABLE car_prov_dat ( codi_prov_pk int8 NOT NULL DEFAULT nextval('car_prov_seq'::regclass), desc_prov varchar(30) NOT NULL, codi_pais_pk int8 NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_prov_dat_pkey PRIMARY KEY (codi_prov_pk), CONSTRAINT car_prov_dat_codi_pais_pk_fkey FOREIGN KEY (codi_pais_pk) REFERENCES car_pais_dat (codi_pais_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_prov_dat OWNER TO postgres;

Page 171: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

18

CREATE TABLE car_cant_dat ( codi_cant_pk int8 NOT NULL DEFAULT nextval('car_cant_seq'::regclass), desc_cant varchar(30) NOT NULL, codi_prov_pk int8 NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_cant_dat_pkey PRIMARY KEY (codi_cant_pk), CONSTRAINT car_cant_dat_codi_prov_pk_fkey FOREIGN KEY (codi_prov_pk) REFERENCES car_prov_dat (codi_prov_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_cant_dat OWNER TO postgres; CREATE TABLE car_ciud_dat ( codi_ciud_pk int8 NOT NULL DEFAULT nextval('car_ciud_seq'::regclass), desc_ciud varchar(30) NOT NULL, codi_prov_pk int8 NOT NULL, codi_pais_pk int8 NOT NULL, codi_cant_pk int8 NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_ciud_dat_pkey PRIMARY KEY (codi_ciud_pk), CONSTRAINT car_ciud_dat_codi_cant_pk_fkey FOREIGN KEY (codi_cant_pk) REFERENCES car_cant_dat (codi_cant_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_ciud_dat_codi_pais_pk_fkey FOREIGN KEY (codi_pais_pk) REFERENCES car_pais_dat (codi_pais_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_ciud_dat_codi_prov_pk_fkey FOREIGN KEY (codi_prov_pk) REFERENCES car_prov_dat (codi_prov_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_ciud_dat OWNER TO postgres;

Page 172: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

19

CREATE TABLE oper_sect_dat ( codi_sect_pk int8 NOT NULL, codi_ciud_fk int8 NOT NULL, desc_sect varchar(50) NOT NULL, estd_reg_sect varchar(1), CONSTRAINT sect_pk PRIMARY KEY (codi_sect_pk), CONSTRAINT ciud_sect_fk FOREIGN KEY (codi_ciud_fk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT ) WITH OIDS; ALTER TABLE oper_sect_dat OWNER TO postgres;

CREATE TABLE car_parr_dat ( codi_parr_pk int8 NOT NULL DEFAULT nextval('car_parr_seq'::regclass), desc_parr varchar(30) NOT NULL, codi_sect_pk int8 NOT NULL, codi_ciud_pk int8 NOT NULL, estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_parr_pkey PRIMARY KEY (codi_parr_pk), CONSTRAINT car_parr_dat_codi_ciud_pk_fkey FOREIGN KEY (codi_ciud_pk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_parr_dat_codi_sect_pk_fkey FOREIGN KEY (codi_sect_pk) REFERENCES oper_sect_dat (codi_sect_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_parr_dat OWNER TO postgres;

Page 173: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

20

CREATE TABLE oper_calle_dat ( codi_calle_pk int8 NOT NULL, desc_calle varchar(30) NOT NULL DEFAULT ''::character varying, codi_ciud_fk int8 NOT NULL, estado char(1), estd_reg_calle char(1) NOT NULL DEFAULT ''::bpchar, CONSTRAINT calle_pk PRIMARY KEY (codi_calle_pk), CONSTRAINT ciud_calle_fk FOREIGN KEY (codi_ciud_fk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT ) WITH OIDS; ALTER TABLE oper_calle_dat OWNER TO postgres; CREATE TABLE oper_cdla_dat ( codi_cdla_pk int8 NOT NULL, desc_cdla varchar(50) NOT NULL DEFAULT ''::character varying, codi_ciud_fk int8 NOT NULL, estd_reg_cdla char(1) NOT NULL DEFAULT ''::bpchar, CONSTRAINT cdla_pk PRIMARY KEY (codi_cdla_pk), CONSTRAINT ciud_cdla_fk FOREIGN KEY (codi_ciud_fk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT ) WITH OIDS; ALTER TABLE oper_cdla_dat OWNER TO postgres;

Page 174: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

21

CREATE TABLE car_clie_dat ( codi_clie_pk int4 NOT NULL DEFAULT nextval('car_clie_dat_codi_clie_pk_seq'::regclass), stat_clie varchar(2), nume_calle int8, come_calle varchar(30), desc_cdla varchar(30), tele_prin varchar(9), tele_secu varchar(9), fax varchar(9), email varchar(30), cupo float8, plaz int4, sobr_porc float8, sobr_mont float8, fech_ingr varchar(10), fech_ulti_comp varchar(8), mont_ulti_comp float8, codi_tipo_clie_pk int8, codi_tipo_pago_pk int8, codi_cdla_pk int8, codi_ciud_pk int8, codi_calle_pk int8, codi_vendedor int8, codi_empr_fk int8, audi_usua_ingr varchar(15), audi_usua_modi varchar(15), aprobacioncredito char(1), -- verific si se le ha aprobado el credito o no es un booleano audi_fech_ingr date, audi_fech_modi date, CONSTRAINT car_clie_dat_pkey PRIMARY KEY (codi_clie_pk), CONSTRAINT car_clie_dat_codi_calle_pk_fkey FOREIGN KEY (codi_calle_pk) REFERENCES oper_calle_dat (codi_calle_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_clie_dat_codi_cdla_pk_fkey FOREIGN KEY (codi_cdla_pk) REFERENCES oper_cdla_dat (codi_cdla_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_clie_dat_codi_ciud_pk_fkey FOREIGN KEY (codi_ciud_pk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_clie_dat_codi_empr_fk_fkey FOREIGN KEY (codi_empr_fk) REFERENCES inv_empresa_dat (codi_empr) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT car_clie_dat_codi_tipo_clie_pk_fkey FOREIGN KEY (codi_tipo_clie_pk) REFERENCES car_tipo_clie_dat (codi_tipo_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_clie_dat_codi_tipo_pago_pk_fkey FOREIGN KEY (codi_tipo_pago_pk) REFERENCES car_tipo_pago_dat (codi_tipo_pago_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_clie_dat_codi_vendedor_fkey FOREIGN KEY (codi_vendedor) REFERENCES ven_vendedor (codi_vendedor) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_clie_dat OWNER TO postgres;

Page 175: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

22

CREATE TABLE car_clie_juri_dat ( codi_clie_pk int8 NOT NULL, ruc_pk varchar(13) NOT NULL, repr_lega varchar(45), razo_soci varchar(45), estado char(1), CONSTRAINT car_clie_juri_dat_pkey PRIMARY KEY (ruc_pk), CONSTRAINT car_clie_juri_dat_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_clie_juri_dat OWNER TO postgres;

CREATE TABLE car_clie_natu_dat ( codi_clie_pk int8 NOT NULL, cedu_pk varchar(13) NOT NULL, nomb_natu varchar(45), cont varchar(45), estado char(1), CONSTRAINT car_clie_natu_dat_pkey PRIMARY KEY (cedu_pk), CONSTRAINT car_clie_natu_dat_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_clie_natu_dat OWNER TO postgres;

Page 176: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

23

CREATE TABLE car_tipo_docu_dat ( sigl_pk varchar(3) NOT NULL, desc_docu varchar(30), estado char(1), codi_stat_pk varchar(3), codi_modu_pk varchar(3), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, codi_tipo_docu int8 DEFAULT nextval('car_tipo_docu_seq'::regclass), CONSTRAINT car_tipo_docu_dat_pkey PRIMARY KEY (sigl_pk), CONSTRAINT car_tipo_docu_dat_codi_modu_pk_fkey FOREIGN KEY (codi_modu_pk) REFERENCES car_modu_dat (codi_modu_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_tipo_docu_dat_codi_stat_pk_fkey FOREIGN KEY (codi_stat_pk) REFERENCES car_stat_dat (codi_stat_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_tipo_docu_dat OWNER TO postgres;

CREATE TABLE car_secu_docu_ref ( sigl_pk varchar(3) NOT NULL, secu_fina int4, estado char(1), codi_sucu int8, codi_clie int8, codi_empr int8, audit_fech_ingr varchar(10), audit_usua_ingr varchar(15), audit_fech_modi varchar(10), audit_usua_modi varchar(15), CONSTRAINT car_secu_docu_ref_codi_sucu_fkey FOREIGN KEY (codi_sucu, codi_empr) REFERENCES inv_sucursal_dat (codi_sucu, codi_empr) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT, CONSTRAINT car_secu_docu_ref_sigl_pk_fkey FOREIGN KEY (sigl_pk) REFERENCES car_tipo_docu_dat (sigl_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_secu_docu_ref OWNER TO postgres;

Page 177: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

24

CREATE TABLE car_sucu_clie_dat ( codi_sucu_clie_pk int8 NOT NULL DEFAULT nextval('car_sucu_clie_seq'::regclass), nomb_sucu varchar(30), estado char(1), tele_prin varchar(9), tele_secu varchar(9), fax varchar(9), nume_calle int4, come_calle varchar(30), desc_cdla varchar(30), codi_clie_pk int8 NOT NULL, codi_cdla_pk int8, codi_calle_pk int8, codi_sect_pk int8, codi_prov_pk int8, audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT car_sucu_clie_dat_pkey PRIMARY KEY (codi_sucu_clie_pk, codi_clie_pk), CONSTRAINT clie_fk FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE RESTRICT ON DELETE RESTRICT ) WITH OIDS; ALTER TABLE car_sucu_clie_dat OWNER TO postgres; CREATE TABLE car_tarj_dat ( codi_tarj_pk int8 NOT NULL DEFAULT nextval('car_tarj_seq'::regclass), nomb_tarj varchar(30) NOT NULL, estado char(1), porc_desc_tarj int2 NOT NULL, porc_incr_tarj int2 NOT NULL, mini_tarj int4, audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_ingr date DEFAULT now(), audi_fech_modi date, CONSTRAINT tarj_dat_pkey PRIMARY KEY (codi_tarj_pk) ) WITH OIDS; ALTER TABLE car_tarj_dat OWNER TO postgres;

Page 178: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

25

CREATE TABLE car_kardex_clie_log ( codi_kard_clie_pk int8 NOT NULL, secu_trans int4, fech_regi varchar(10), fech_vent date, plaz int4, descrip int4, coment varchar(30), tota int8, nume_apli int4, asentado char(1), bloqueado char(1), abon int8, codi_stat_pk varchar(3), codi_ciud_pk int8, codi_modu_pk varchar(3), codi_vendedor int8, codi_clie_pk int8, codi_empr_pk int8, codi_tarj_pk int8, codi_banc_pk int8, sigl_pk varchar(3), audit_fech_ingr varchar(10), audit_usua_ingr varchar(15), audit_fech_modi varchar(10), audit_usua_modi varchar(15), tipo_apli varchar(3), CONSTRAINT car_kardex_clie_log_pkey PRIMARY KEY (codi_kard_clie_pk), CONSTRAINT car_kardex_clie_log_codi_banc_pk_fkey FOREIGN KEY (codi_banc_pk) REFERENCES banco (idbanco) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_ciud_pk_fkey FOREIGN KEY (codi_ciud_pk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_empr_pk_fkey FOREIGN KEY (codi_empr_pk) REFERENCES inv_empresa_dat (codi_empr) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_modu_pk_fkey FOREIGN KEY (codi_modu_pk) REFERENCES car_modu_dat (codi_modu_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_stat_pk_fkey FOREIGN KEY (codi_stat_pk) REFERENCES car_stat_dat (codi_stat_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_tarj_pk_fkey FOREIGN KEY (codi_tarj_pk) REFERENCES car_tarj_dat (codi_tarj_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_codi_vendedor_fkey FOREIGN KEY (codi_vendedor) REFERENCES ven_vendedor (codi_vendedor) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_kardex_clie_log_sigl_pk_fkey FOREIGN KEY (sigl_pk) REFERENCES car_tipo_docu_dat (sigl_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_kardex_clie_log OWNER TO postgres;

Page 179: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

26

CREATE TABLE car_trans_tmp ( codi_kard_clie_pk int8 NOT NULL, secu_trans varchar(30), fech_regi date, tota int8, nume_apli int4, tipo_apli int4, asentado char(1), bloqueado char(1), abon int8, codi_stat_pk varchar(3), codi_ciud_pk int8, codi_modu_pk varchar(3), codi_vendedor int8, codi_clie_pk int8, codi_empr_pk int8, codi_tarj_pk int8, codi_banc_pk int8, sigl_pk varchar(3), audit_fech_ingr varchar(10), audit_usua_ingr varchar(15), audit_fech_modi varchar(10), audit_usua_modi varchar(15), CONSTRAINT car_trans_tmp_codi_banc_pk_fkey FOREIGN KEY (codi_banc_pk) REFERENCES banco (idbanco) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_ciud_pk_fkey FOREIGN KEY (codi_ciud_pk) REFERENCES car_ciud_dat (codi_ciud_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_empr_pk_fkey FOREIGN KEY (codi_empr_pk) REFERENCES inv_empresa_dat (codi_empr) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_modu_pk_fkey FOREIGN KEY (codi_modu_pk) REFERENCES car_modu_dat (codi_modu_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_stat_pk_fkey FOREIGN KEY (codi_stat_pk) REFERENCES car_stat_dat (codi_stat_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_tarj_pk_fkey FOREIGN KEY (codi_tarj_pk) REFERENCES car_tarj_dat (codi_tarj_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_codi_vendedor_fkey FOREIGN KEY (codi_vendedor) REFERENCES ven_vendedor (codi_vendedor) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_trans_tmp_sigl_pk_fkey FOREIGN KEY (sigl_pk) REFERENCES car_tipo_docu_dat (sigl_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_trans_tmp OWNER TO postgres;

Page 180: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

27

CREATE TABLE car_tran_cheq ( codi_tran_cheq_pk int4 NOT NULL, idbanco int8, codi_clie_pk int8, fech_depo varchar(10), fech_venc varchar(10), cuen_banc varchar(15), valo float8, nume_che int4, post_fech char(1), CONSTRAINT car_tran_cheq_pkey PRIMARY KEY (codi_tran_cheq_pk), CONSTRAINT car_tran_cheq_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_tran_cheq_idbanco_fkey FOREIGN KEY (idbanco) REFERENCES banco (idbanco) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_tran_cheq OWNER TO postgres;

CREATE TABLE car_tran_tarj ( codi_tran_pk int4 NOT NULL, codi_tarj_pk int8, codi_clie_pk int8, nume_tarj varchar(15), valor float8, increm int4, cobrado char(1), fecha varchar(10), CONSTRAINT car_tran_tarj_pkey PRIMARY KEY (codi_tran_pk), CONSTRAINT car_tran_tarj_codi_clie_pk_fkey FOREIGN KEY (codi_clie_pk) REFERENCES car_clie_dat (codi_clie_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT car_tran_tarj_codi_tarj_pk_fkey FOREIGN KEY (codi_tarj_pk) REFERENCES car_tarj_dat (codi_tarj_pk) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) WITH OIDS; ALTER TABLE car_tran_tarj OWNER TO postgres;

Page 181: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

28

CREATE TABLE car_cont_asiento_dat ( codi_cont_asie_pk int8 NOT NULL DEFAULT nextval('car_cont_asiento_seq'::regclass), tipo_as char(2), num_doc int8, fech_doc date, codcta int4, detalle varchar(40), tipreg char(2), tipregc char(1), bloqueado char(1), estado char(1), audi_usua_ingr varchar(15), audi_usua_modi varchar(15), audi_fech_modi date, audi_fech_ingr date DEFAULT now(), CONSTRAINT car_cont_asiento_dat_pkey PRIMARY KEY (codi_cont_asie_pk) ) WITH OIDS; ALTER TABLE car_cont_asiento_dat OWNER TO postgres;

Page 182: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

29

1.10 CODIFICACION DE LOS COMPONENTES CLASE CHEQUE

package com.ug.cisc.erp.cartera.entidades; public class cheque {

private int codi_tran_cheq_pk; private int idbanco; private int codi_clie_pk; private String fech_depo; private String fech_venc; private String cuen_banc; private String nombre; private String nomb_natu; private String cedu_pk; private float valo; private int nume_che; private char post_fech; public cheque(){} public char getpost_fech() { return post_fech; } public void setpost_fech(char post_fech) { this.post_fech = post_fech; } public int getcodi_tran_cheq_pk() { return codi_tran_cheq_pk; } public void setcodi_tran_cheq_pk(int codi_tran_cheq_pk) { this.codi_tran_cheq_pk = codi_tran_cheq_pk; } public int getidbanco() { return idbanco; } public void setidbanco(int idbanco) { this.idbanco = idbanco; } public float getvalo() { return valo; } public void setvalo(float valo) { this.valo = valo; } public int getcodi_clie_pk() { return codi_clie_pk; } public void setcodi_clie_pk(int codi_clie_pk) { this.codi_clie_pk = codi_clie_pk; }

Page 183: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

30

CLASE CIUDAD

public int getnume_che() { return nume_che; } public void setnume_che(int nume_che) { this.nume_che = nume_che; } public String getcuen_banc() { return cuen_banc; } public void setcuen_banc(String cuen_banc) { this.cuen_banc = cuen_banc; } public String getfech_venc() { return fech_venc; } public void setfech_venc(String fech_venc) { this.fech_venc = fech_venc; } public String getfech_depo() { return fech_depo; } public void setfech_depo(String fech_depo) { this.fech_depo = fech_depo; } public String getdescnombrebanco() { return nombre; } public void set_nombrebanco(String nombre) { this.nombre = nombre; } public String getdescclie() { return cedu_pk; } public void set_descclie(String cedu_pk) { this.cedu_pk = cedu_pk; } public String getreferencia() { return nomb_natu; } public void set_referencia(String nomb_natu) { this.nomb_natu = nomb_natu; }

}

Page 184: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

31

CLASE CLIENTE JURIDICO CLASES CLIENTES NATURAL

package com.ug.cisc.erp.cartera.entidades; public class Clientejuridico{ public Clientejuridico(){} private int codi_clientejuridico_pk;

private String ruc_pk; private String repr_lega; private String razo_soci_clientejuridico; public int getCodi_clientejuridico_pk() {

return codi_clientejuridico_pk; } public void setCodi_clientejuridico_pk(int codi_clientejuridico_pk) {

this.codi_clientejuridico_pk = codi_clientejuridico_pk; } public String getruc_pk() {

return ruc_pk.trim(); } public void setruc_pk(String ruc_pk) {

this.ruc_pk = ruc_pk; } public String getrepr_legal_clientejuridico() {

return repr_lega; } public void setrepr_legal_clientejuridico(String repr_lega) {

this.repr_lega = repr_lega; } public String getrazo_soci_clientejuridico() {

return razo_soci_clientejuridico; } public void setrazo_soci_clientejuridico(String razo_soci_clientejuridico) {

this.razo_soci_clientejuridico = razo_soci_clientejuridico; }

}

Page 185: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

32

CLASES CLIENTES

package com.ug.cisc.erp.cartera.entidades; public class Clientenatural extends Clientes {

public Clientenatural() {} private String cedu_pk; private String nomb_natu; private String cont; private int codi_cliente_pk; public int getCodi_cliente() { return codi_cliente_pk; } public void setCodi_cliente(int codi_cliente_pk) { this.codi_cliente_pk = codi_cliente_pk; } public String getCedu_pk() { return cedu_pk; }

public void setCedu_pk(String cedu_pk) { this.cedu_pk = cedu_pk; } public String getCont() { return cont; } public void setCont(String cont) { this.cont = cont; } public String getNomb_natu() { return nomb_natu; } public void setNomb_natu(String nomb_natu) { this.nomb_natu = nomb_natu; }

} public int getCodi_ciud_pk() {

return codi_ciud_pk; } public void setCodi_ciud_pk(int codi_ciud_pk) { this.codi_ciud_pk = codi_ciud_pk; } public int getCodi_clie_pk() { return codi_clie_pk; }

Page 186: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

33

public void setCodi_clie_pk(int codi_clie_pk) { //int tipocli=Integer.parseInt(codi_clie_pk.trim()); this.codi_clie_pk =codi_clie_pk; } public int getCodi_tipo_clie_pk() { return codi_tipo_clie_pk; } public void setCodi_tipo_clie_pk(int codi_tipo_clie_pk) { this.codi_tipo_clie_pk = codi_tipo_clie_pk; } public int getCodi_tipo_pago_pk() { return codi_tipo_pago_pk; } public void setCodi_tipo_pago_pk(String codi_tipo_pago_pk) { this.codi_tipo_pago_pk = Integer.parseInt(codi_tipo_pago_pk.trim()); } public int getCodi_vendedor() { return codi_vendedor; } public void setCodi_vendedor(int codi_vendedor) { this.codi_vendedor = codi_vendedor; } public String getCome_calle() { return come_calle; } public void setCome_calle(String come_calle) { this.come_calle = come_calle; } public float getCupo() { return cupo; } public void setCupo(String cupo) { this.cupo = Float.parseFloat(cupo.trim()); } public String getDesc_cdla() { return desc_cdla; } public void setDesc_cdla(String desc_cdla) { this.desc_cdla = desc_cdla; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getFax() { return fax; }

Page 187: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

34

public void setFax(String fax) { this.fax = fax; } public Date getFech_ingr() { return fech_ingr; } public void setFech_ingr(Date fech_ingr) { this.fech_ingr = fech_ingr; } public String getFech_ulti_comp() { return fech_ulti_comp; } public void setFech_ulti_comp(String fech_ulti_comp) { this.fech_ulti_comp = fech_ulti_comp; } public float getMont_ulti_comp() { return mont_ulti_comp; } public void setMont_ulti_comp(float mont_ulti_comp) { this.mont_ulti_comp = mont_ulti_comp; } public int getNume_calle() { return nume_calle; } public void setNume_calle(String nume_calle) { this.nume_calle = Integer.parseInt(nume_calle.trim()); } public int getPlaz() { return plaz; } public void setPlaz(int plaz) { this.plaz = plaz; } public float getSobr_mont() { return sobr_mont; } public void setSobr_mont(float sobr_mont) { this.sobr_mont = sobr_mont; } public float getSobr_porc() { return sobr_porc; } public void setSobr_porc(float sobr_porc) { this.sobr_porc = sobr_porc; } public String getStat_clie() { return stat_clie; }

Page 188: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

35

public void setStat_clie(String stat_clie) { this.stat_clie = stat_clie; } public String getTele_prin() { return tele_prin; } public void setTele_prin(String tele_prin) { this.tele_prin = tele_prin; } public String getTele_secu() { return tele_secu; } public void setTele_secu(String tele_secu) { this.tele_secu = tele_secu; } public int getCodi_empr_fk() { return codi_empr_fk; } public void setCodi_empr_fk(int codi_empr_fk) { this.codi_empr_fk = codi_empr_fk; } public String getDesc_empre() { return desc_empre; } public void setDesc_empre(String desc_empre) { this.desc_empre = desc_empre; } public String getDesc_vend() { return desc_vend; } public void setDesc_vend(String desc_vend) { this.desc_vend = desc_vend; } public String getnomb_natu() { return nomb_natu; } public void setnomb_natu(String nomb_natu) { this.nomb_natu = nomb_natu; } public String getcedu_pk() { return cedu_pk; }

Page 189: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

36

public void setcedu_pk(String cedu_pk) { this.cedu_pk = cedu_pk; } public String getciudad() { return ciudad; } public void setciudad(String ciudad) { this.ciudad = ciudad; } public String getprovincia() { return provincia; } public void setprovincia(String provincia) { this.provincia = provincia; } public String getdesctipoclie() { return tipoclie; } public void setdesctipoclie(String tipoclie) { this.tipoclie = tipoclie; } public String getdesccalle() { return desccalle; } public void setdesccalle(String desccalle) { this.desccalle = desccalle; }

}//fin clase

Page 190: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

37

CLASE KARDEX DE CLIENTE

package com.ug.cisc.erp.cartera.entidades; import java.sql.Date; public class Kardex_cliente{

public Kardex_cliente(){} private int codi_kard_clie_pk; private String secu_trans; private Date fech_regi; private Date fech_vent; private int plaz; private String descrip; private String coment; private int tota; private int nume_apli; private int tipo_apli; private char asentado; private char bloqueado; private int abon; private int codi_stat_pk; private int codi_ciud_pk; private int codi_modu_pk; private int codi_vendedor; private int codi_clie_pk; private int codi_empr_pk; private int codi_tarj_pk; private int codi_banc_pk; private String sigl_pk; public int getAbon() { return abon; } public void setAbon(int abon) { this.abon = abon; } public char getAsentado() { return asentado; } public void setAsentado(char asentado) { this.asentado = asentado; } public char getBloqueado() { return bloqueado; } public void setBloqueado(char bloqueado) { this.bloqueado = bloqueado; } public int getCodi_banc_pk() { return codi_banc_pk; } public void setCodi_banc_pk(int codi_banc_pk) { this.codi_banc_pk = codi_banc_pk;

Page 191: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

38

public int getCodi_ciud_pk() { return codi_ciud_pk; } public void setCodi_ciud_pk(int codi_ciud_pk) { this.codi_ciud_pk = codi_ciud_pk; } public int getCodi_clie_pk() { return codi_clie_pk; } public void setCodi_clie_pk(int codi_clie_pk) { this.codi_clie_pk = codi_clie_pk; } public int getCodi_empr_pk() { return codi_empr_pk; } public void setCodi_empr_pk(int codi_empr_pk) { this.codi_empr_pk = codi_empr_pk; } public int getCodi_kard_clie_pk() { return codi_kard_clie_pk; } public void setCodi_kard_clie_pk(int codi_kard_clie_pk) { this.codi_kard_clie_pk = codi_kard_clie_pk; } public int getCodi_modu_pk() { return codi_modu_pk; } public void setCodi_modu_pk(int codi_modu_pk) { this.codi_modu_pk = codi_modu_pk; } public int getCodi_stat_pk() { return codi_stat_pk; } public void setCodi_stat_pk(int codi_stat_pk) { this.codi_stat_pk = codi_stat_pk; } public int getCodi_tarj_pk() { return codi_tarj_pk; } public void setCodi_tarj_pk(int codi_tarj_pk) { this.codi_tarj_pk = codi_tarj_pk; } public int getCodi_vendedor() { return codi_vendedor; } public void setCodi_vendedor(int codi_vendedor) { this.codi_vendedor = codi_vendedor; } public String getComent() { return coment; }

Page 192: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

39

public void setComent(String coment) {

this.coment = coment; } public String getDescrip() { return descrip; } public void setDescrip(String descrip) { this.descrip = descrip; } public Date getFech_regi() { return fech_regi; } public void setFech_regi(Date fech_regi) { this.fech_regi = fech_regi; } public Date getFech_vent() { return fech_vent; } public void setFech_vent(Date fech_vent) { this.fech_vent = fech_vent; } public int getNume_apli() { return nume_apli; } public void setNume_apli(int nume_apli) { this.nume_apli = nume_apli; } public int getPlaz() { return plaz; } public void setPlaz(int plaz) { this.plaz = plaz; } public String getSecu_trans() { return secu_trans; } public void setSecu_trans(String secu_trans) { this.secu_trans = secu_trans; }

Page 193: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

40

public String getSigl_pk() { return sigl_pk; } public void setSigl_pk(String sigl_pk) { this.sigl_pk = sigl_pk; } public int getTipo_apli() { return tipo_apli; } public void setTipo_apli(int tipo_apli) { this.tipo_apli = tipo_apli; } public int getTota() { return tota; } public void setTota(int tota) { this.tota = tota; }

}

Page 194: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

41

CLASE PRINCREDITO

Package com.ug.cisc.erp.cartera.entidades; public class Princredito{ public Princredito(){} private int codi_clie_pk; private String fech_regi; private String come_calle;

private double tota; private int codi_kard_clie_pk;

private int nume_apli; private int tipo_apli;

public String getcome_calle() { return come_calle; }

public void setcome_calle(String come_calle) { this.come_calle = come_calle; }

public String getfech_regi() { return fech_regi;

} public void setfech_regi(String fech_regi) {

this.fech_regi = fech_regi; } public int getcodi_clie_pk() {

return codi_clie_pk; } public void setcodi_clie_pk(int codi_clie_pk) {

this.codi_clie_pk = codi_clie_pk; } public double gettota() {

return tota; } public void settota(int tota) {

this.tota = tota; } public int getcodi_kard_clie_pk() {

return codi_kard_clie_pk; } public void setcodi_kard_clie_pk(int codi_kard_clie_pk) {

this.codi_kard_clie_pk = codi_kard_clie_pk; } public int getnume_apli() {

return nume_apli; } public void setnume_apli(int nume_apli) {

this.nume_apli = nume_apli; } public int gettipo_apli() {

return tipo_apli; } public void settipo_apli(int tipo_apli) {

this.tipo_apli = tipo_apli;

}

}

Page 195: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

42

TIPO CLIENTE

package com.ug.cisc.erp.cartera.entidades; import java.io.Serializable; public class Tipocliente implements Serializable{

public Tipocliente (){} private int codi_tipo_clie_pk; rivate String desc_tipo_clie; public int getCodi_tipo_clie_pk() { return codi_tipo_clie_pk; } public void setCodi_tipo_clie_pk(int codi_tipo_clie_pk) { this.codi_tipo_clie_pk = codi_tipo_clie_pk; } public String getDesc_tipo_clie() { return desc_tipo_clie; } public void setDesc_tipo_clie(String desc_tipo_clie) { this.desc_tipo_clie = desc_tipo_clie; }

}

Page 196: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

43

1.11 CLASE PARA LA CONEXION A LA BASE DE DATOS

package com.ug.cisc.erp.cartera.base; import java.sql.Connection; import java.sql.DriverManager; public class Base { private static Connection unCon= null; public static Connection getConexion(){ if (unCon== null){ try { Class.forName("org.postgresql.Driver"); unCon= DriverManager.getConnection("jdbc:postgresql://localhost:5432/cartera", "postgres", "admin"); unCon.setAutoCommit(false); }catch(Throwable e){ System.out.println(e); } } return unCon; } }

Page 197: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

44

CLASE CHEQUEDAO

package com.ug.cisc.erp.cartera.db; import java.util.Vector; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.FinderException; import com.ug.cisc.erp.cartera.actions.BuscarchequeForm; import com.ug.cisc.erp.cartera.actions.RegistroStatusForm; import com.ug.cisc.erp.cartera.entidades.cheque; import com.ug.cisc.erp.cartera.util.ConnectionPool; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.Calendar; import java.util.ArrayList; import java.util.Date; import java.text.SimpleDateFormat; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.RowSetDynaClass; public class ChequeDAO { String error; Connection con; private ConnectionPool pool; public ChequeDAO() { pool = ConnectionPool.getInstance(); } public Vector findcheque(String fecha) throws SQLException, Exception { Vector valorDevolver = new Vector(); Connection con = null; con = pool.getConnection(); ; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); }

Page 198: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

45

String queryString = ("SELECT * FROM car_tran_cheq che,banco ban,car_clie_natu_dat clin where fech_depo=? " + " and che.idbanco = ban.idbanco and clin.codi_clie_pk = che.codi_clie_pk and che.post_fech = '0' " + " union" + " SELECT * FROM car_tran_cheq che,banco ban,car_clie_juri_dat clij where fech_depo=? " + " and che.idbanco = ban.idbanco and (clij.codi_clie_pk = che.codi_clie_pk) and che.post_fech = '0'"); PreparedStatement statement = con.prepareStatement(queryString); statement.setString(1,fecha); statement.setString(2,fecha); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ cheque uncheque = new cheque(); uncheque.setidbanco(unRs.getInt("codi_tran_cheq_pk")); uncheque.set_nombrebanco(unRs.getString("nombre")); uncheque.set_descclie(unRs.getString("nomb_natu")); uncheque.setcodi_clie_pk(unRs.getInt("codi_clie_pk")); uncheque.setnume_che(unRs.getInt("nume_che")); uncheque.setcuen_banc(unRs.getString("cuen_banc")); uncheque.setvalo(unRs.getFloat("valo")); //uncheque.setfech_depo(unRs.getString("fech_depo")); valorDevolver.addElement(uncheque); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; }//fin de metodo buscar calle

Page 199: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

46

public void actualizar(String codigo) throws CreateException, SQLException { Connection con = null; con = pool.getConnection(); PreparedStatement ps = null; int numero=Integer.parseInt(codigo.trim()); String sql = "UPDATE car_tran_cheq SET post_fech='1' WHERE codi_tran_cheq_pk=?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setInt(1,numero); if (ps.executeUpdate() != 1) { throw new CreateException("error.create.record"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }//fin actualizar }//FIN DE LA CLASE

Page 200: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

47

CLASE CLIENTEDAO

package com.ug.cisc.erp.cartera.db; import java.util.*; import com.ug.cisc.erp.cartera.db.CreateException;//import com.ug.cisc.erp.operaciones.dao.DuplicateKeyException; import com.ug.cisc.erp.cartera.db.FinderException; import com.ug.cisc.erp.cartera.actions.RegistroclienteForm; import com.ug.cisc.erp.cartera.entidades.Clientes; import com.ug.cisc.erp.cartera.entidades.Pais; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.text.SimpleDateFormat; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.beanutils.RowSetDynaClass; public class ClienteDAO { private Connection con; HttpServletRequest request; String error; // Constructor public ClienteDAO(Connection con) { this.con = con; } // ,int cid,int tp,int cemp,int cven) public void addCliente(Clientes cliente) throws CreateException, SQLException { PreparedStatement ps = null; Date fechaCreacion = new Date(); SimpleDateFormat fechaConFormato = new SimpleDateFormat("dd/MM/yyyy"); String cadenaFecha = fechaConFormato.format(fechaCreacion); //codi_clie_pk,?, String sql = "INSERT INTO car_clie_dat (stat_clie,codi_calle_pk, nume_calle,come_calle,codi_cdla_pk,desc_cdla" + ",tele_prin,tele_secu,fax,email,cupo,codi_vendedor,codi_ciud_pk,plaz,sobr_porc,sobr_mont,fech_ingr,codi_tipo_clie_pk,fech_ulti_comp, mont_ulti_comp,codi_tipo_pago_pk,aprobacioncredito , codi_empr_fk " + ") values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

Page 201: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

48

try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); //ps.setInt(1,cliente.getCodi_clie_pk()); ps.setString(1,"A"); //cliente.getStat_clie()); ps.setInt(2,cliente.getCodi_calle_pk()); ps.setInt(3,cliente.getNume_calle()); ps.setString(4,cliente.getCome_calle()); ps.setInt(5,cliente.getCodi_cdla_pk()); ps.setString(6,cliente.getDesc_cdla()); ps.setString(7,cliente.getTele_prin()); ps.setString(8,cliente.getTele_secu()); ps.setString(9,cliente.getFax()); ps.setString(10,cliente.getEmail()); ps.setFloat(11,cliente.getCupo()); ps.setInt(12,cliente.getCodi_vendedor()); ps.setInt(13,cliente.getCodi_ciud_pk()); ps.setInt(14,cliente.getPlaz()); ps.setFloat(15,cliente.getSobr_porc()); ps.setFloat(16,cliente.getSobr_mont()); ps.setDate(17,cliente.getFech_ingr()); ps.setInt(18,cliente.getCodi_tipo_clie_pk()); ps.setString(19,cliente.getFech_ulti_comp()); ps.setFloat(20,cliente.getMont_ulti_comp()); ps.setInt(21,cliente.getCodi_tipo_pago_pk()); ps.setString(22,"0"); ps.setInt(23,cliente.getCodi_empr_fk()); if (ps.executeUpdate() != 1) { throw new CreateException("error.create.record"); }

Page 202: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

49

} catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close();

} catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } public Vector findcalle( ) throws SQLException, Exception { Vector valorDevolver = new Vector(); try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("SELECT codi_calle_pk FROM oper_calle_dat "); PreparedStatement statement = con.prepareStatement(queryString); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ Clientes unCliente = new Clientes(); unCliente.setCodi_calle_pk(unRs.getInt("codi_calle_pk")); unCliente.setsetDesc_stat(unRs.getString("desc_calle")); valorDevolver.addElement(unCliente); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; } public Vector findvendedor( ) throws SQLException, Exception { Vector valorDevolver = new Vector(); try {

Page 203: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

50

if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("SELECT codi_vendedor,nomb_vendedor FROM ven_vendedor "); PreparedStatement statement = con.prepareStatement(queryString); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ Clientes unCliente = new Clientes(); unCliente.setCodi_vendedor(unRs.getInt("codi_vendedor"));

unCliente.setDesc_vend(unRs.getString("nomb_vendedor")); valorDevolver.addElement(unCliente); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; }//fin metodo public Vector findempresa( ) throws SQLException, Exception { Vector valorDevolver = new Vector(); try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("SELECT codi_empr,desc_empr FROM inv_empresa_dat "); PreparedStatement statement = con.prepareStatement(queryString); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ Clientes unCliente = new Clientes(); unCliente.setCodi_empr_fk(unRs.getInt("codi_empr")); unCliente.setDesc_empre(unRs.getString("desc_empr")); valorDevolver.addElement(unCliente); }

Page 204: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

51

//cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; } public String buscarseccli( ) throws FinderException { PreparedStatement ps = null; ResultSet rs = null; String codigo=null; String sql = "select max(codi_clie_pk) as codi from car_clie_dat"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); rs = ps.executeQuery(); if (rs.next()) { codigo=rs.getString("codi"); } return codigo; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } finally { try { if (ps != null) ps.close(); if (rs != null) rs.close(); //if (con != null) // con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }//fin metodo

Page 205: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

52

public Vector findclie(String ced,String ruc) throws SQLException, Exception { Vector valorDevolver = new Vector(); //Connection con = null; //con = pool.getConnection(); //String fecha = "12/12/06"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("select * from car_clie_dat cli,car_clie_natu_dat clin where (cli.codi_clie_pk = clin.codi_clie_pk and clin.cedu_pk =?)" + " union" + " select * from car_clie_dat cli,car_clie_juri_dat clij where (cli.codi_clie_pk = clij.codi_clie_pk and clij.ruc_pk =?)"); PreparedStatement statement = con.prepareStatement(queryString); statement.setString(1,ced); statement.setString(2,ruc); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ Clientes unClientes = new Clientes(); unClientes.setCodi_clie_pk(unRs.getInt("codi_clie_pk")); unClientes.setnomb_natu(unRs.getString("nomb_natu")); unClientes.setcedu_pk(unRs.getString("cedu_pk")); //uncheque.setfech_depo(unRs.getString("fech_depo")); valorDevolver.addElement(unClientes); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; }//fin de metodo buscar calle }//fin clase

Page 206: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

53

CLASE CLIENTE JURIDICODAO

package com.ug.cisc.erp.cartera.db; import java.util.Vector; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.FinderException; import com.ug.cisc.erp.cartera.actions.RegistroclientejuridicoForm; import com.ug.cisc.erp.cartera.entidades.Clientejuridico; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.*; import java.text.SimpleDateFormat; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.beanutils.RowSetDynaClass; public class clientejuridicoDAO { private Connection con; HttpServletRequest request; String error; //HttpSession session = request.getSession(true); // Constructor public clientejuridicoDAO(Connection con) { this.con = con; } public void addclientejuridico(Clientejuridico clientejuridico) throws CreateException { PreparedStatement ps = null; String sql = "insert into car_clie_juri_dat (codi_clie_pk,ruc_pk,repr_lega,razo_soci,estado) values (?,?,?,?,?)"; try {

Page 207: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

54

if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setInt(1,clientejuridico.getCodi_clientejuridico_pk()); ps.setString(2,clientejuridico.getruc_pk());//clientejuridico.getruc_pk()); ps.setString(3,clientejuridico.getrepr_legal_clientejuridico()); ps.setString(4,clientejuridico.getrazo_soci_clientejuridico()); ps.setString(5,"A"); if (ps.executeUpdate() != 1) { throw new CreateException("error.create.record"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } public void actualizarclientejuridico(RegistroclientejuridicoForm clientejuridico) throws CreateException { PreparedStatement ps = null; String sql = "UPDATE car_clie_juri_dat SET repr_legal=?,razo_soci=? WHERE ruc_pk=?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); }

Page 208: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

55

ps = con.prepareStatement(sql); /* ps.setString(1,clientejuridico.getrepr_legal_clientejuridico()); ps.setString(2,clientejuridico.getrazo_soci_clientejuridico()); ps.setString(3,clientejuridico.getruc_clientejuridico_pk()); */ if (ps.executeUpdate() != 1) { throw new CreateException("error.create.record"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } public Clientejuridico buscarclientejuridico(String rucclientejuridico) throws FinderException { PreparedStatement ps = null; ResultSet rs = null; String sql = "SELECT codi_clie_pk,ruc_pk,repr_legal,razo_soci" + "FROM car_clie_juri_dat WHERE ruc_pk = ?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setString(1,rucclientejuridico); rs = ps.executeQuery();

Clientejuridico clientejuridico = new Clientejuridico();

Page 209: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

56

if (rs.next()) { clientejuridico.setCodi_clientejuridico_pk(rs.getInt("codi_clientejuridico_pk")); clientejuridico.setruc_pk(rs.getString("ruc_clientejuridico_pk")); clientejuridico.setrepr_legal_clientejuridico(rs.getString("repr_legal_clientejuridico")); clientejuridico.setrepr_legal_clientejuridico(rs.getString("razo_soci_clientejuridico")); } /*else { throw new ObjectNotFoundException( "error.noencontrado"); }*/ return clientejuridico; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } finally { try { if (ps != null) ps.close(); if (rs != null) rs.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } //---------------------------------------------------------------- // find clientejuridico

Page 210: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

57

public Vector findclientejuridico(RegistroclientejuridicoForm clientejuridico) throws SQLException, Exception { Vector valorDevolver = new Vector(); try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("SELECT * FROM car_clie_juri_dat WHERE ruc_pk=?;"); //String queryString = "select * from car_clie_juri_dat WHERE ruc_pk =?;"; //(clientejuridico.getruc_pk()); PreparedStatement statement = con.prepareStatement(queryString); statement.setString(1,clientejuridico.getruc_pk()); // ps.setString(2,desc_clientejuridico); ResultSet unRs= statement.executeQuery(); while (unRs.next()){ Clientejuridico unclientejuridico = new Clientejuridico(); unclientejuridico.setCodi_clientejuridico_pk(unRs.getInt("codi_clie_pk")); unclientejuridico.setruc_pk(unRs.getString("ruc_pk")); unclientejuridico.setrepr_legal_clientejuridico(unRs.getString("repr_lega")); unclientejuridico.setruc_pk(unRs.getString("razo_soci")); valorDevolver.addElement(unclientejuridico); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; } public ResultSet Listarclientejuridico() throws FinderException { ResultSet rs = null; //ArrayList calleList = new ArrayList(); String sql = "SELECT codi_clie_pk,ruc_pk,repr_legal,razo_soci FROM car_clie_juri_dat WHERE estado='A';"; try {

Page 211: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

58

throw new Exception(error); } return valorDevolver; } public ResultSet Listarclientejuridico() throws FinderException { ResultSet rs = null; //ArrayList calleList = new ArrayList(); String sql = "SELECT codi_clie_pk,ruc_pk,repr_legal,razo_soci FROM car_clie_juri_dat WHERE estado='A';"; try {

if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } Statement ps = con.createStatement(); rs = ps.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } /*finally { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } }*/ return rs; } }

Page 212: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

59

CLASE CLIENTE NATURALDAO

package com.ug.cisc.erp.cartera.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.http.HttpServletRequest; import com.ug.cisc.erp.cartera.entidades.Clientenatural; public class ClientenaturalDAO { private Connection con; HttpServletRequest request; String error; //HttpSession session = request.getSession(true); // Constructor public ClientenaturalDAO(Connection con) { this.con = con; } public void addClientenatural(Clientenatural clientenatural) throws SQLException, Exception { if (con != null) { try { PreparedStatement updateclientenatural; updateclientenatural = con.prepareStatement("INSERT INTO car_clie_natu_dat (codi_clie_pk,cedu_pk, nomb_natu,cont,estado) VALUES(?,?,?,?,?);"); updateclientenatural.setInt(1, clientenatural.getCodi_cliente()); updateclientenatural.setString(2,clientenatural.getCedu_pk()); updateclientenatural.setString(3, clientenatural.getNomb_natu()); updateclientenatural.setString(4,clientenatural.getCont()); updateclientenatural.setString(5,"A"); updateclientenatural.execute(); } catch (SQLException sqle) { error = sqle.toString();//"SQLException: update failed, possible duplicate entry"; throw new SQLException(error); } } else { error = "Exception: Connection to database was lost."; throw new Exception(error); } }//FIN METODO

Page 213: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

60

public void Deleteclientenatural(String cedu_pk) throws SQLException, Exception { if (con != null) { try {

PreparedStatement deleteclientenatural; deleteclientenatural = con.prepareStatement("DELETE FROM car_clie_natu_dat WHERE cedu_pk=?;"); deleteclientenatural.execute(); } catch (SQLException sqle) { error = sqle.toString();//"SQLException: update failed, possible duplicate entry"; throw new SQLException(error); } } else { error = "Exception: Connection to database was lost."; throw new Exception(error); } } public ResultSet findclientenatural(String cedu_pk) throws SQLException, Exception { ResultSet rs = null; try { String queryString = ("SELECT * FROM car_clie_natu_dat WHERE cedu_pk=?;"); PreparedStatement ps = con.prepareStatement(queryString); ps.setString(1,cedu_pk); rs = ps.executeQuery(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return rs; }

Page 214: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

61

public void Modclientenatural(String cedu_pk,String nomb_natu,String cont ) throws SQLException, Exception { if (con != null) { try { PreparedStatement updateclientenatural; updateclientenatural = con.prepareStatement( "UPDATE car_clie_natu_dat SET nomb_natu,cont WHERE cedu_pk=?;"); updateclientenatural.setString(1, nomb_natu); updateclientenatural.setString (2, cont); updateclientenatural.execute();

} catch (SQLException sqle) { error = sqle.toString();//"SQLException: update failed, possible duplicate entry";

throw new SQLException(error); } } else { error = "Exception: Connection to database was lost."; throw new Exception(error); } } }

Page 215: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

62

CLASE PRINCREDITODAO

package com.ug.cisc.erp.cartera.db; import java.util.Vector; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.FinderException; import com.ug.cisc.erp.cartera.actions.RegistroprincreditoForm; import com.ug.cisc.erp.cartera.entidades.Princredito; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.Calendar; import java.util.ArrayList; import java.util.Date; import java.text.SimpleDateFormat; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.beanutils.RowSetDynaClass; public class PrincreditoDAO { private Connection con; HttpServletRequest request; String error; //HttpSession session = request.getSession(true); // Constructor public PrincreditoDAO(Connection con) { this.con = con; } public void addPrincredito(RegistroprincreditoForm princredito) throws CreateException { PreparedStatement ps = null; // Date fechaCreacion = new Date(); // SimpleDateFormat fechaConFormato = new SimpleDateFormat("yyyy/MM/dd"); String sql = "insert into car_kardex_clie_log (codi_kard_clie_pk,codi_clie_pk ,nume_apli) values (?,?,?)";

Page 216: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

63

try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setInt(1,princredito.getcodi_kard_clie_pk() ); ps.setInt(2,princredito.getcodi_clie_pk() ); ps.setInt(3,princredito.getnume_apli() ); if (ps.executeUpdate() != 1) { throw new CreateException("error.create.record"); } } catch (SQLException e) { e.printStackTrace(); } finally { try { if (ps != null) ps.close(); // if (con != null) // con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }

Page 217: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

64

public Princredito buscarcliente(int idPrincredito) throws FinderException { PreparedStatement ps = null; ResultSet rs = null; String sql = "SELECT codi_pais_pk,desc_pais" + "FROM car_pais_dat WHERE estado <>'E' AND codi_pais_pk = ?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setInt(1,idPrincredito); rs = ps.executeQuery(); Princredito unprincredito = new Princredito(); if (rs.next()) { unprincredito.setcodi_clie_pk (rs.getInt("codi_clie_pk")); unprincredito.setcodi_kard_clie_pk(rs.getInt("codi_kard_clie_pk")); unprincredito.setnume_apli(rs.getInt("nume_apli")); unprincredito.settipo_apli(rs.getInt("tipo_apli")); unprincredito.settota(rs.getInt("tota")); unprincredito.setfech_regi(rs.getString("fech_regi")); } /*else { throw new ObjectNotFoundException( "error.noencontrado"); }*/

Page 218: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

65

return unprincredito; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } finally { try { if (ps != null) ps.close(); if (rs != null) rs.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } public Princredito buscarPrincredito(int idPrincredito) throws FinderException { PreparedStatement ps = null; ResultSet rs = null; String sql = "SELECT codi_pais_pk,desc_pais" + "FROM car_pais_dat WHERE estado <>'E' AND codi_pais_pk = ?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); }

Page 219: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

66

ps = con.prepareStatement(sql); ps.setInt(1,idPrincredito); rs = ps.executeQuery(); Princredito unprincredito = new Princredito(); if (rs.next()) { unprincredito.setcodi_clie_pk (rs.getInt("codi_clie_pk")); unprincredito.setcodi_kard_clie_pk(rs.getInt("codi_kard_clie_pk")); unprincredito.setnume_apli(rs.getInt("nume_apli")); unprincredito.settipo_apli(rs.getInt("tipo_apli")); unprincredito.settota(rs.getInt("tota")); unprincredito.setfech_regi(rs.getString("fech_regi")); } /*else { throw new ObjectNotFoundException( "error.noencontrado"); }*/ return unprincredito; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } finally { try { if (ps != null) ps.close(); if (rs != null) rs.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }

Page 220: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

67

public String findprincredito(String princredito ) throws SQLException, Exception { String valorDevolver = null; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } String queryString = ("SELECT come_calle FROM car_clie_dat WHERE codi_pais_pk=?;"); PreparedStatement statement = con.prepareStatement(queryString); statement.setString(1,princredito); ResultSet unRs= statement.executeQuery(); //Status Unstatus = new Status(); while (unRs.next()){ valorDevolver=unRs.getString("come_calle"); } //cierro la conexion unRs.close(); statement.close(); } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return valorDevolver; } }

Page 221: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

68

CLASE SUCURSAL-CLIENTEDAO

package com.ug.cisc.erp.cartera.db; import java.util.Vector; import com.ug.cisc.erp.cartera.db.CreateException; //import com.ug.cisc.erp.operaciones.dao.DuplicateKeyException; import com.ug.cisc.erp.cartera.db.FinderException; //import com.ug.cisc.erp.operaciones.form.ValidarLoginForm; import com.ug.cisc.erp.cartera.actions.RegistrosucursalclienteForm; import com.ug.cisc.erp.cartera.lista.ListaSucursalcliente; import com.ug.cisc.erp.cartera.entity.Sucursalcliente; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Collection; import java.util.Calendar; import java.util.ArrayList; import java.util.Date; import java.text.SimpleDateFormat; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.commons.beanutils.RowSetDynaClass; public class SucursalclienteDAO { private Connection con; String error; // Constructor public SucursalclienteDAO(Connection con) { this.con = con; } public void addSucursalcliente(RegistrosucursalclienteForm sucursalcliente) throws SQLException, Exception { String Sql=""; //Variable que sirve para armar la cadena a ejecutar if (this.con != null) { try { Sql = "INSERT INTO CAR_SUCU_CLIE_DAT (NOMB_SUCU,ESTADO,TELE_PRIN,TELE_SECU,FAX,NUME_CALLE,COME_CALLE,DESC_CDLA,CODI_CLIE_PK,CODI_CDLA_PK,CODI_CALLE_PK,CODI_SECT_PK,CODI_PROV_PK)"; Sql = Sql + " VALUES(?,'A',?,?,?,?,?,?,?,?,?,?,?);"; PreparedStatement registro; registro = this.con.prepareStatement(Sql); registro.setString(1, sucursalcliente.getNomb_sucu()); registro.setString(2, sucursalcliente.getTele_prin()); registro.setString(3, sucursalcliente.getTele_secu()); registro.setString(4, sucursalcliente.getFax()); registro.setInt(5, sucursalcliente.getNume_calle()); registro.setString(6, sucursalcliente.getCome_calle());

Page 222: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

69

registro.setString(7, sucursalcliente.getDesc_cdla()); registro.setInt(8, sucursalcliente.getCodi_clie_pk()); registro.setInt(9, sucursalcliente.getCodi_cdla_pk()); registro.setInt(10, sucursalcliente.getCodi_calle_pk()); registro.setInt(11, sucursalcliente.getCodi_sect_pk()); registro.setInt(12, sucursalcliente.getCodi_prov_pk()); registro.execute(); } catch (SQLException sqle) { error = sqle.toString();//"SQLException: update failed, possible duplicate entry"; throw new SQLException(error); } } else { error = "Exception: Se perdió la conexión a la Base!."; throw new Exception(error); } } public void actualizarSucursalcliente(RegistrosucursalclienteForm sucursalcliente) throws SQLException, Exception { String Sql=""; //Variable que sirve para armar la cadena a ejecutar if (this.con != null) { try { Sql = "UPDATE CAR_SUCU_CLIE_DAT SET NOMB_SECU_CLIE=?,TELE_PRIN=?,TELE_SECU=?,FAX=?,NUME_CALLE=?,COME_CALLE=?,DESC_CDLA=?,CODI_CLIE_PK=?,CODI_CDLA_PK=?,CODI_CALLE_PK=?,CODI_SECT_PK=?,CODI_PROV_PK=?"; Sql = Sql + " WHERE codi_sucu_clie_pk=?"; PreparedStatement registro; registro = this.con.prepareStatement(Sql); registro.setString(1, sucursalcliente.getNomb_sucu()); registro.setString(2, sucursalcliente.getTele_prin()); registro.setString(3, sucursalcliente.getTele_secu()); registro.setString(4, sucursalcliente.getFax()); registro.setInt(5, sucursalcliente.getNume_calle()); registro.setString(6, sucursalcliente.getCome_calle()); registro.setString(7, sucursalcliente.getDesc_cdla()); registro.setInt(8, sucursalcliente.getCodi_clie_pk());

Page 223: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

70

registro.setInt(9, sucursalcliente.getCodi_cdla_pk()); registro.setInt(10, sucursalcliente.getCodi_calle_pk()); registro.setInt(11, sucursalcliente.getCodi_sect_pk()); registro.setInt(12, sucursalcliente.getCodi_prov_pk()); registro.execute(); } catch (SQLException sqle) { error = sqle.toString(); throw new SQLException(error); } } else { error = "Exception: Se perdió la conexión a la Base!."; throw new Exception(error); } } public Sucursalcliente buscarsucursalcliente(int idSucursalcliente) throws FinderException { PreparedStatement ps = null; ResultSet rs = null; String sql = "SELECT codi_sucu_clie_pk,nomb_sucu,TELE_PRIN,TELE_SECU,FAX,NUME_CALLE,COME_CALLE,DESC_CDLA,CODI_CLIE_PK,CODI_CDLA_PK,CODI_CALLE_PK,CODI_SECT_PK,CODI_PROV_PK" + "FROM car_sucu_clie_dat WHERE estado <>'E' AND codi_sucu_clie_pk = ?"; try { if (con.isClosed()) { throw new IllegalStateException("error.unexpected"); } ps = con.prepareStatement(sql); ps.setInt(1,idSucursalcliente); rs = ps.executeQuery(); Sucursalcliente sucursalcliente = new Sucursalcliente(); if (rs.next()) {

Page 224: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

71

sucursalcliente.setCodi_sucu_clie_pk (rs.getInt("codi_sucu_clie_pk")); sucursalcliente.setNomb_sucu (rs.getString("nomb_sucu")); sucursalcliente.setTele_prin (rs.getString("tele_prin")); sucursalcliente.setTele_secu (rs.getString("tele_secu")); sucursalcliente.setFax (rs.getString("fax")); sucursalcliente.setNume_calle (rs.getInt("nume_calle")); sucursalcliente.setCome_calle (rs.getString("come_calle")); sucursalcliente.setDesc_cdla (rs.getString("desc_calle")); sucursalcliente.setCodi_clie_pk (rs.getInt("codi_clie_pk")); sucursalcliente.setCodi_cdla_pk (rs.getInt("codi_cdla_pk")); sucursalcliente.setCodi_calle_pk(rs.getInt("codi_calle_pk")); sucursalcliente.setCodi_sect_pk (rs.getInt("codi_sect_pk")); sucursalcliente.setCodi_prov_pk (rs.getInt("codi_prov_pk")); } /*else { throw new ObjectNotFoundException( "error.noencontrado"); }*/ return sucursalcliente; } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } finally { try { if (ps != null) ps.close(); if (rs != null) rs.close(); if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("error.unexpected"); } }

}

Page 225: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

72

public RegistrosucursalclienteForm encontrar(int codigo) throws SQLException, Exception { ResultSet rs = null; RegistrosucursalclienteForm sucursalcliente = new RegistrosucursalclienteForm(); try { String queryString = ("select * from CAR_SUCU_CLIE_DAT where codi_SUCU_CLIE_pk=? and estado = 'A';"); PreparedStatement ps = this.con.prepareStatement(queryString); ps.setInt(1,codigo); rs = ps.executeQuery(); if(rs.next()) { sucursalcliente.setCodi_sucu_clie_pk (rs.getInt("codi_sucu_clie_pk")); sucursalcliente.setNomb_sucu (rs.getString("nomb_sucu")); sucursalcliente.setTele_prin (rs.getString("tele_prin")); sucursalcliente.setTele_secu (rs.getString("tele_secu")); sucursalcliente.setFax (rs.getString("fax")); sucursalcliente.setNume_calle (rs.getInt("nume_calle")); sucursalcliente.setCome_calle (rs.getString("come_calle")); sucursalcliente.setDesc_cdla (rs.getString("desc_calle")); sucursalcliente.setCodi_clie_pk (rs.getInt("codi_clie_pk")); sucursalcliente.setCodi_cdla_pk (rs.getInt("codi_cdla_pk")); sucursalcliente.setCodi_calle_pk(rs.getInt("codi_calle_pk")); sucursalcliente.setCodi_sect_pk (rs.getInt("codi_sect_pk")); sucursalcliente.setCodi_prov_pk (rs.getInt("codi_prov_pk")); } } catch (SQLException sqle) { //error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; error=sqle.toString(); throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; error=e.toString(); throw new Exception(error); } return sucursalcliente; } public ListaSucursalcliente ListarSucursalcliente() throws SQLException, Exception { ResultSet rs = null; ListaSucursalcliente coleccion = new ListaSucursalcliente(); ///ojo sthefanie corrige los demas campos try {

Page 226: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

73

String queryString = "SELECT codi_sucu_clie_pk,nomb_sucu,TELE_PRIN,TELE_SECU,FAX,NUME_CALLE,COME_CALLE,DESC_CDLA,CODI_CLIE_PK,CODI_CDLA_PK,CODI_CALLE_PK,CODI_SECT_PK,CODI_PROV_PK FROM car_secu_clie_dat WHERE estado='A';"; PreparedStatement ps = this.con.prepareStatement(queryString); rs = ps.executeQuery(); while(rs.next()) { RegistrosucursalclienteForm sucursalcliente = new RegistrosucursalclienteForm(); sucursalcliente.setCodi_sucu_clie_pk (rs.getInt("codi_sucu_clie_pk")); sucursalcliente.setNomb_sucu (rs.getString("nomb_sucu")); sucursalcliente.setTele_prin (rs.getString("tele_prin")); sucursalcliente.setTele_secu (rs.getString("tele_secu")); sucursalcliente.setFax (rs.getString("fax")); sucursalcliente.setNume_calle (rs.getInt("nume_calle")); sucursalcliente.setCome_calle (rs.getString("come_calle")); sucursalcliente.setDesc_cdla (rs.getString("desc_cdla")); sucursalcliente.setCodi_clie_pk (rs.getInt("codi_clie_pk")); sucursalcliente.setCodi_cdla_pk (rs.getInt("codi_cdla_pk")); sucursalcliente.setCodi_calle_pk(rs.getInt("codi_calle_pk")); sucursalcliente.setCodi_sect_pk (rs.getInt("codi_sect_pk")); sucursalcliente.setCodi_prov_pk (rs.getInt("codi_prov_pk")); coleccion.agregaItem (sucursalcliente); } } catch (SQLException sqle) { error = "SQLException: No se ha podido ejecutar esta petición. Contacte con el webmaster"; throw new SQLException(error); } catch (Exception e) { error = "Ha ocurrido una excepcion consultando la base de datos. Contactese con el Webmaster"; throw new Exception(error); } return coleccion; }

Page 227: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

74

public void eliminar (int codigo) throws SQLException, Exception { String Sql=""; //Variable que sirve para armar la cadena a ejecutar if (con != null) { try { PreparedStatement registro; Sql = "UPDATE CAR_sucu_clie_DAT set estado='E' WHERE codi_sucu_clie_pk=?;"; registro = con.prepareStatement(Sql); registro.setInt(1, codigo); registro.execute(); } catch (SQLException sqle) { error = sqle.toString();//"SQLException: update failed, possible duplicate entry"; throw new SQLException(error); } catch (Exception e) { error = "Ocurrió una Excepcion mientras eliminaba el sucursalcliente."; throw new Exception(error); } } else { error = "Exception: Se perdió la conexión a la Base!."; throw new Exception(error); } } }

Page 228: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

75

CLASE CHEQUEBO

package com.ug.cisc.erp.cartera.bo; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.ChequeDAO; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.PaisDAO; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.actions.RegistroPaisForm; import com.ug.cisc.erp.cartera.actions.RegistroclienteForm; import com.ug.cisc.erp.cartera.base.Base; public class ChequeBo { // defino variablees a usar String error; private ConnectionPool pool; public ChequeBo() { pool = ConnectionPool.getInstance(); } // recuperarTodos public Vector recuperarporfecha (String fecha)throws Exception, SQLException { Vector valorRetornar = null; ChequeDAO chequeDAO = new ChequeDAO(); valorRetornar = chequeDAO.findcheque(fecha); return valorRetornar; } public void actualizar(String codigo) throws CreateException, SQLException { ChequeDAO chequeDAO = new ChequeDAO(); chequeDAO.actualizar(codigo); } }//fin de la clase

Page 229: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

76

CLASE CLIENTE BO

package com.ug.cisc.erp.cartera.bo; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.ChequeDAO; import com.ug.cisc.erp.cartera.db.ClienteDAO; import com.ug.cisc.erp.cartera.entidades.Clientes; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.actions.RegistroclienteForm; //import com.ug.cisc.erp.cartera.bo.clientejuridicoException; public class clienteBo { //defino variablees a usar String error;

private ConnectionPool pool; public clienteBo() { pool = ConnectionPool.getInstance(); } public void addclienteBo(Clientes cliente) throws ClienteException { Connection con = null; try { con = pool.getConnection(); ClienteDAO clienteDAO = new ClienteDAO(con); clienteDAO.addCliente(cliente); con.commit(); } catch (Exception e) { try { if (con != null) { con.rollback(); throw new ClienteException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (con != null) { con.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }//FIN METODO

Page 230: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

77

public Vector recuperarTodos ()throws Exception, SQLException

{ Vector valorRetornar = null; Connection con = null; con = pool.getConnection(); ClienteDAO clienteDAO = new ClienteDAO(con); valorRetornar = clienteDAO.findcalle(); con.close(); return valorRetornar; } public Vector findvendedor ()throws Exception, SQLException { Vector valorRetornar = null; Connection con = null; con = pool.getConnection(); ClienteDAO clienteDAO = new ClienteDAO(con); valorRetornar = clienteDAO.findvendedor(); con.close(); return valorRetornar; } public Vector findempresa ()throws Exception, SQLException { Vector valorRetornar = null; Connection con = null; con = pool.getConnection(); ClienteDAO clienteDAO = new ClienteDAO(con); valorRetornar = clienteDAO.findempresa(); con.close(); return valorRetornar; } public String buscarcodigo ()throws Exception, SQLException { String cod = null; Connection con = null; con = pool.getConnection(); ClienteDAO clienteDAO = new ClienteDAO(con); cod = clienteDAO.buscarseccli(); con.close(); return cod; }

Page 231: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

78

public Vector recuperarporfecha (String fecha)throws Exception, SQLException { Vector valorRetornar = null; ChequeDAO chequeDAO = new ChequeDAO(); valorRetornar = chequeDAO.findcheque(fecha); return valorRetornar; } public Vector BuscarclienteBo (String cedula,String ruc)throws Exception, SQLException

{ Vector valorRetornar = null; Connection con = null; con = pool.getConnection(); ClienteDAO unclieDAO = new ClienteDAO(con); //(unaConeccion) valorRetornar = unclieDAO.findclie(cedula,ruc); con.close(); return valorRetornar; } }//fin clase

Page 232: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

79

CLASE CLIENTEJURIDICOBO

package com.ug.cisc.erp.cartera.bo; import com.ug.cisc.erp.cartera.base.Base; //import java.util.Iterator; //import java.util.Vector; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.clientejuridicoDAO; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.actions.RegistroclientejuridicoForm; import com.ug.cisc.erp.cartera.bo.clientejuridicoException; import com.ug.cisc.erp.cartera.entidades.Clientejuridico;; public class clientejuridicoBo { //defino variablees a usar String error; // Connection con; private ConnectionPool pool; public clientejuridicoBo() { pool = ConnectionPool.getInstance(); } public void addclientejuridicoBo(Clientejuridico unclientejuridico) throws clientejuridicoException { Connection con = null; try { con = pool.getConnection(); clientejuridicoDAO clientejuridicoDAO = new clientejuridicoDAO(con); clientejuridicoDAO.addclientejuridico(unclientejuridico); con.commit(); } catch (Exception e) { try { if (con != null) { con.rollback(); throw new clientejuridicoException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); }

Page 233: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

80

}finally { try { if (con != null) { con.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } //--------------------------------------------------------------------- // buscar clientejuridico public Vector BuscarclientejuridicoBo (RegistroclientejuridicoForm clientejuridico)throws Exception, SQLException { Vector valorRetornar = null; Connection con = null; //con = Base.getConexion(); con = pool.getConnection(); clientejuridicoDAO unclientejuridicoDAO = new clientejuridicoDAO(con); valorRetornar = unclientejuridicoDAO.findclientejuridico(clientejuridico); return valorRetornar; } //---------------------------------LISTAR public boolean listarclientejuridico() throws clientejuridicoException { boolean valorRetornar = false; Connection unaConeccion = null; try { // para la conexion unaConeccion = Base.getConexion(); clientejuridicoDAO unclientejuridicoDAO = new clientejuridicoDAO(unaConeccion); //(unaConeccion) unclientejuridicoDAO.Listarclientejuridico(); // valorRetornar = unclientejuridicoDAO.buscarclientejuridico(codi_clientejuridico_pk , ruc_clientejuridico_pk, repr_legal_clientejuridico, razo_soci_clientejuridico); unaConeccion.commit(); return valorRetornar;} catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new clientejuridicoException(e.getMessage()); }

Page 234: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

81

} catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } return valorRetornar; } ////ACTUALIZAR public void actualizarclientejuridico(RegistroclientejuridicoForm clientejuridico) throws clientejuridicoException { Connection unaConeccion = null; try { unaConeccion = Base.getConexion(); clientejuridicoDAO unclientejuridicoDAO = new clientejuridicoDAO(unaConeccion); //(unaConeccion) unclientejuridicoDAO.actualizarclientejuridico(clientejuridico); unaConeccion.commit(); } catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new clientejuridicoException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); }

try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }*/ }

Page 235: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

82

CLASE TARJETABO

package com.ug.cisc.erp.cartera.bo; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.ProcesoTarjetaDAO; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.base.Base; public class ProcesoTarjetaBo { // defino variablees a usar String error; private ConnectionPool pool; public ProcesoTarjetaBo() { pool = ConnectionPool.getInstance(); } // recuperarTodos public Vector recuperarporfecha (String fecha)throws Exception, SQLException { Vector valorRetornar = null; ProcesoTarjetaDAO unProcesoTarjetaDAO = new ProcesoTarjetaDAO(); valorRetornar = unProcesoTarjetaDAO.findtarjeta(fecha); return valorRetornar; } public void actualizar(String codigo) throws CreateException, SQLException { //Connection unaConeccion = null; //try { //Connection con = null; //con = pool.getConnection(); ProcesoTarjetaDAO unProcesoTarjetaDAO = new ProcesoTarjetaDAO(); unProcesoTarjetaDAO.actualizar(codigo); // unaConeccion.commit(); /* } catch (Exception e) { try {

Page 236: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

83

if (unaConeccion != null) { unaConeccion.rollback(); throw new PaisException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); }*/ // } } }//fin de la clase

Page 237: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

84

CLASE PRINCREDITOBO

package com.ug.cisc.erp.cartera.bo; import com.ug.cisc.erp.cartera.base.Base; import java.util.Iterator; import java.util.Vector; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.PrincreditoDAO; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.actions.RegistroprincreditoForm; import com.ug.cisc.erp.cartera.bo.PrincreditoException; public class PrincreditoBo { //defino variablees a usar String error; // Connection con; private ConnectionPool pool; public PrincreditoBo() { pool = ConnectionPool.getInstance(); } public void addPrincreditoBo(RegistroprincreditoForm Princredito) throws PrincreditoException { // Connection unaConeccion = null; Connection con = null; try { con = pool.getConnection(); PrincreditoDAO unprincreditoDAO = new PrincreditoDAO(con); unprincreditoDAO.addPrincredito(Princredito); con.commit(); } catch (Exception e) { try { if (con != null) { con.rollback(); throw new PrincreditoException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (con != null) { con.close(); }

Page 238: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

85

} catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } } public String BuscarPrincreditoBo (RegistroprincreditoForm princredito)throws Exception, SQLException { String valorRetornar = null; Connection con = null; con = pool.getConnection(); PrincreditoDAO unPrincreditoDAO = new PrincreditoDAO(con); //(unaConeccion) //desc_pais = desc_pais.replace('*','%'); // valorRetornar = unPrincreditoDAO.findprincredito(princredito.getcome_calle()); return valorRetornar; } /* //---------------------------------LISTAR public boolean listarPais() throws PaisException { boolean valorRetornar = false; Connection unaConeccion = null; try { // para la conexion unaConeccion = Base.getConexion(); PaisDAO unPaisDAO = new PaisDAO(unaConeccion); //(unaConeccion) unPaisDAO.ListarPais(); // valorRetornar = unPaisDAO.buscarPais(codi_pais_pk , desc_pais); unaConeccion.commit(); return valorRetornar;} catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new PaisException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } return valorRetornar; }*/

Page 239: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

86

////ACTUALIZAR /*public void actualizarPais(RegistroPaisForm pais) throws PaisException { Connection unaConeccion = null; try { unaConeccion = Base.getConexion(); PaisDAO unPaisDAO = new PaisDAO(unaConeccion); //(unaConeccion) unPaisDAO.actualizarPais(pais); unaConeccion.commit(); } catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new PaisException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }*/

Page 240: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

87

///ELIMINAR /* public void eliminarPais(RegistroPaisForm pais) throws PaisException { Connection unaConeccion = null; try { unaConeccion = Base.getConexion(); PaisDAO unPaisDAO = new PaisDAO(unaConeccion); //(unaConeccion) unPaisDAO.eliminarPais(pais); unaConeccion.commit(); } catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new PaisException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }

}*/

Page 241: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

88

CLASEPROCESOTARJETABO

package com.ug.cisc.erp.cartera.bo; import java.sql.*; import java.util.*; import com.ug.cisc.erp.cartera.db.CreateException; import com.ug.cisc.erp.cartera.db.ProcesoTarjetaDAO; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.base.Base; public class ProcesoTarjetaBo { // defino variablees a usar String error; private ConnectionPool pool; public ProcesoTarjetaBo() { pool = ConnectionPool.getInstance(); } // recuperarTodos public Vector recuperarporfecha (String fecha)throws Exception, SQLException { Vector valorRetornar = null; ProcesoTarjetaDAO unProcesoTarjetaDAO = new ProcesoTarjetaDAO(); valorRetornar = unProcesoTarjetaDAO.findtarjeta(fecha); return valorRetornar; } public void actualizar(String codigo) throws CreateException, SQLException { ProcesoTarjetaDAO unProcesoTarjetaDAO = new ProcesoTarjetaDAO(); unProcesoTarjetaDAO.actualizar(codigo); } }//fin de la clase

Page 242: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

89

CLASE TIPO_CLIENTEBO

package com.ug.cisc.erp.cartera.bo; import java.sql.Connection; import java.sql.SQLException; import java.util.Vector; import com.ug.cisc.erp.cartera.bo.TipoClienteException; import com.ug.cisc.erp.cartera.actions.RegistroTipoclienteForm; import com.ug.cisc.erp.cartera.base.Base; import com.ug.cisc.erp.cartera.db.TipoclienteDAO; import com.ug.cisc.erp.cartera.util.*; public class TipoclienteBo { //defino variablees a usar String error; // Connection con; private ConnectionPool pool; public TipoclienteBo() { pool = ConnectionPool.getInstance(); } public void addTipoclienteBo(RegistroTipoclienteForm tipocliente) throws TipoClienteException { // Connection unaConeccion = null; Connection con = null; try { con = pool.getConnection(); TipoclienteDAO tipoclienteDAO = new TipoclienteDAO(con); tipoclienteDAO.addTipocliente(tipocliente); con.commit(); } catch (Exception e) { try { if (con != null) { con.rollback(); throw new TipoClienteException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException(sqle.getMessage()); } } finally { try { if (con != null) { con.close(); } } catch (SQLException sqle) { sqle.printStackTrace();

throw new RuntimeException(sqle.getMessage()); } } }

Page 243: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

90

// buscar pais /*public Vector BuscarStatusBo (RegistroStatusForm status)throws Exception, SQLException { Vector valorRetornar = null; Connection con = null; //OJO AQUI PUSE ESTO //con = Base.getConexion(); con = pool.getConnection(); StatusDAO unStatusDAO = new StatusDAO(con); //(unaConeccion) //desc_stat = desc_stat.replace('*','%'); valorRetornar = unStatusDAO.findstatus(status); return valorRetornar; } //---------------------------------LISTAR public boolean listarStatus() throws StatusException { boolean valorRetornar = false; Connection unaConeccion = null; try { // para la conexion unaConeccion = Base.getConexion(); StatusDAO unStatusDAO = new StatusDAO(unaConeccion); //(unaConeccion) unStatusDAO.ListarStatus(); unaConeccion.commit(); return valorRetornar;} catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new StatusException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } return valorRetornar;

}

Page 244: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

91

///ELIMINAR public void eliminarStatus(RegistroStatusForm status) throws StatusException { Connection unaConeccion = null; try { unaConeccion = Base.getConexion(); StatusDAO unStatusDAO = new StatusDAO(unaConeccion); //(unaConeccion) unStatusDAO.eliminarStatus(status); unaConeccion.commit(); } catch (Exception e) { try { if (unaConeccion != null) { unaConeccion.rollback(); throw new StatusException(e.getMessage()); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } }finally { try { if (unaConeccion != null) { unaConeccion.close(); } } catch (SQLException sqle) { sqle.printStackTrace(); throw new RuntimeException("error.unexpected"); } } }*/ }

Page 245: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

92

CLASE LISTATARJETA

package com.ug.cisc.erp.cartera.lista; import java.util.ArrayList; import java.util.Iterator; import com.ug.cisc.erp.cartera.actions.RegistroTarjetaForm; public class ListaTarjeta { private ArrayList lista = new ArrayList(); /*------------------*/ /* CONSTRUCTOR */ /*------------------*/ public ListaTarjeta() { super(); // TODO Auto-generated constructor stub } /*------------------*/ /* METODOS */ /*------------------*/ /* Metodo que agrega un Item a la coleccion, recibe como parametro un objeto costeo */ public void agregaItem(RegistroTarjetaForm tarjeta) { boolean encontro = false; Iterator iterLista = lista.iterator(); if (lista.size() == 0) { lista.add(tarjeta); } else { while (iterLista.hasNext()) { RegistroTarjetaForm tar = (RegistroTarjetaForm)iterLista.next(); if (tar.getCodi_tarj_pk() == tarjeta.getCodi_tarj_pk()) { encontro = true; break; } } if (!encontro) { lista.add(tarjeta); } } }

Page 246: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

93

public void eliminaItem(RegistroTarjetaForm tarjeta) {

Iterator iterLista = lista.iterator(); while (iterLista.hasNext()) { RegistroTarjetaForm pai = (RegistroTarjetaForm)iterLista.next(); if (pai.getCodi_tarj_pk() == tarjeta.getCodi_tarj_pk()) { iterLista.remove(); } } } /* Funcion que retorna el tamaño de la coleccion */ public int tamanio(){ return lista.size(); } /* Funcion que retorna la coleccion por medio de un iterador */ public Iterator ObtenerContenido() { //System.out.println(lista.size()); return lista.iterator(); } /* Funcion que retorna el un ArrayList */ public ArrayList ObtenerLista() { return lista; } }

Page 247: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

94

TAGS CLASE ACCIONTAGS

package com.ug.cisc.erp.cartera.tags; import java.sql.Connection; import java.sql.SQLException; import java.util.Collection; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.TagSupport; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.db.TagsDAO; public class AccionTags extends TagSupport{ private ConnectionPool pool; public AccionTags() { pool = ConnectionPool.getInstance(); } public int doStartTag() throws JspException{ Connection con = null; try { con = pool.getConnection(); TagsDAO tagsDao = new TagsDAO(con); Collection accionLabel = tagsDao.accionLabel(); Collection accionValue = tagsDao.accionValue(); pageContext.setAttribute("accionLabel",accionLabel); pageContext.setAttribute("accionValue",accionValue); return SKIP_BODY; } catch (Exception e) { throw new JspException ("Error: IOException" + e.getMessage()); } finally { try { if (con != null) con.close(); } catch (SQLException e) { throw new RuntimeException(e.getMessage()); } } } public int doEndTag() throws JspException { return EVAL_PAGE; } }

Page 248: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

95

ACTUALIZAR TARJETASACTION

package com.ug.cisc.erp.cartera.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.actions.RegistroTarjetaForm; import com.ug.cisc.erp.cartera.bo.TarjetaBo; public class ActualizarTarjetaAction extends Action{

public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { if (isCancelled(request)){ return mapping.findForward("welcome"); } RegistroTarjetaForm tarjetaForm = (RegistroTarjetaForm) form; TarjetaBo tarjetaBo = new TarjetaBo(); tarjetaBo.actualizarTarjeta(tarjetaForm); return mapping.findForward("success"); } }

Page 249: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

96

BUSCARCHEQUEACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.*; import javax.sql.DataSource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.actions.RegistroStatusForm; import com.ug.cisc.erp.cartera.bo.ChequeBo; import com.ug.cisc.erp.cartera.db.ChequeDAO; public class BuscarchequeAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String codigo = request.getParameter("codigo"); String cliente = request.getParameter("cliente"); String banco = request.getParameter("banco"); ChequeBo unchequeBo = new ChequeBo(); unchequeBo.actualizar(codigo); return mapping.findForward("success"); } }

Page 250: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

97

BUSCARCLIENTEACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.*; import javax.sql.DataSource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.Tipo_documentoBo; import com.ug.cisc.erp.cartera.db.Tipo_documentoDAO; public class BuscarclienteAction extends Action { public ActionForward execute(

ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { RegistrardebitoForm debitoForm = (RegistrardebitoForm) form; String codigo = request.getParameter("numetran"); String tipotran = request.getParameter("tipotran"); String tipodoc = request.getParameter("menu2"); String numapli = request.getParameter("numeapli"); String codcli = request.getParameter("codigo"); String tota = request.getParameter("valor"); String comentario = request.getParameter("comentario"); Tipo_documentoBo unTipo_documentoBo = new Tipo_documentoBo(); unTipo_documentoBo.addtran(codigo,tipotran,tipodoc,numapli,codcli,tota,comentario); // unProcesoTarjetaBo.actualizar(codigo); return mapping.findForward("success"); } }

Page 251: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

98

BUSCARCLIENTEJURIDICOACTION

package com.ug.cisc.erp.cartera.actions; import java.util.Vector; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.clientejuridicoBo; public class BuscarclientejuridicoAction extends Action { public ActionForward execute(

ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

RegistroclientejuridicoForm clientejuridicoForm = (RegistroclientejuridicoForm) form;

clientejuridicoBo unclientejuridicoBo = new clientejuridicoBo(); Vector Vectorclientejuridico = unclientejuridicoBo.BuscarclientejuridicoBo(clientejuridicoForm);

request.setAttribute("Vectorclientejuridico",Vectorclientejuridico); return mapping.findForward("success"); }

}

Page 252: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

99

BUSCARTARJETAACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.*; import javax.sql.DataSource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.ProcesoTarjetaBo; import com.ug.cisc.erp.cartera.db.ProcesoTarjetaDAO; public class BuscartarjetaAction extends Action {

public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //RegistroStatusForm statusForm = (RegistroStatusForm) form; String codigo = request.getParameter("codigo"); ProcesoTarjetaBo unProcesoTarjetaBo = new ProcesoTarjetaBo(); unProcesoTarjetaBo.actualizar(codigo); return mapping.findForward("success"); } }

Page 253: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

100

EDITARTARJETAACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.SQLException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.db.TarjetaDAO; import com.ug.cisc.erp.cartera.actions.RegistroTarjetaForm; import com.ug.cisc.erp.cartera.util.ConnectionPool; public class EditarTarjetaAction extends Action { private ConnectionPool pool; Connection con = null; public EditarTarjetaAction(){ pool= ConnectionPool.getInstance(); } public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try{ con = pool.getConnection(); TarjetaDAO tarjetaDao = new TarjetaDAO(con); int id = Integer.parseInt(request.getParameter("codi_tarj_pk")); RegistroTarjetaForm registroTarjetaForm = new RegistroTarjetaForm ();

Page 254: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

101

registroTarjetaForm = tarjetaDao.encontrar(id); request.setAttribute("TarjetaForm", registroTarjetaForm); return mapping.findForward("success"); } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("Imposible Obtener Una Conexion!"); } catch (Throwable e) { e.printStackTrace(); //throw new RuntimeException("Se ha producido un error Inesperado."); throw new RuntimeException(e.toString()); } finally { try { if (con != null) con.close(); } catch (SQLException e) { throw new RuntimeException(e.getMessage()); } } } }

Page 255: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

102

ELIMINARCLIENTEACTION

package com.ug.cisc.erp.cartera.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.clienteBo; public class EliminarclienteAction extends Action {

public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { int codigo = Integer.parseInt(request.getParameter("codigo")); clienteBo unclienteBo = new clienteBo(); unclienteBo.deleteclienteBo(codigo); return mapping.findForward("success"); }

}

Page 256: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

103

ELIMINARTARJETAACTION

package com.ug.cisc.erp.cartera.actions; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.TarjetaBo; public class EliminarTarjetaAction extends Action{ public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { int id = Integer.parseInt(request.getParameter("codi_tarj_pk")); TarjetaBo tarjetaBo = new TarjetaBo(); tarjetaBo.eliminarTarjeta(id); return mapping.findForward("success"); } }

Page 257: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

104

MODIFICACLIENTEACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.bo.clienteBo; import com.ug.cisc.erp.cartera.entidades.Clientes; public class ModificarclienteAction extends Action{ String error; public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { clienteBo unclienteBo = new clienteBo(); Clientes uncliente = new Clientes(); String cadena=""; String check=null; int contador=0; //verificar los nombrs de los parametros //String tipocliente = request.getParameter("select"); uncliente.setCodi_clie_pk(Integer.parseInt(request.getParameter("codigo")));

Page 258: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

105

check = request.getParameter("cktel"); if(check != null) { if (request.getParameter("cktel").equalsIgnoreCase("cktel")) { uncliente.setTele_prin(request.getParameter("tele_prin")); cadena = "tele_prin=" + uncliente.getTele_prin(); contador++; } } if(request.getParameter("cktelsec") != null) { if (request.getParameter("cktelsec").equalsIgnoreCase("cktelsec")) { if (contador==1) { cadena =cadena + ","; } uncliente.setTele_secu(request.getParameter("telsec")); cadena = cadena + "tele_secu=" + uncliente.getTele_secu(); contador++; } } if(request.getParameter("ckfax") != null) { if (request.getParameter("ckfax").equalsIgnoreCase("ckfax")) { if (contador>=1) { cadena =cadena + ","; }

Page 259: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

106

uncliente.setFax(request.getParameter("fax")); cadena = cadena + "fax=" + uncliente.getFax(); contador++; } } if(request.getParameter("ckmail") != null) { if (request.getParameter("ckmail").equalsIgnoreCase("ckmail")) { if (contador>=1) { cadena =cadena + ","; } uncliente.setEmail(request.getParameter("mail")); cadena = cadena + "email='" + uncliente.getEmail() + "'"; contador++; } } // // actualiza ciudad if(request.getParameter("ckciudad") != null) { if (request.getParameter("ckciudad").equalsIgnoreCase("ckciudad")) { if (contador>=1) { cadena =cadena + ","; } uncliente.setCodi_ciud_pk(Integer.parseInt(request.getParameter("menu3"))); cadena = cadena + "codi_ciud_pk=" + uncliente.getCodi_ciud_pk();

Page 260: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

107

contador++; } } if(request.getParameter("ckubicacion") != null) { if (request.getParameter("ckubicacion").equalsIgnoreCase("ckubicacion")) {//actualizo la direccion String ubicacion = request.getParameter("GrupoOpciones1"); if (ubicacion.equalsIgnoreCase("calle")) { uncliente.setCodi_calle_pk(Integer.parseInt(request.getParameter("menu2"))); uncliente.setCome_calle(request.getParameter("comen")); if (request.getParameter("numcalle").compareToIgnoreCase("")!=0) { uncliente.setNume_calle(request.getParameter("numcalle")); } else { uncliente.setNume_calle("0"); } //aqui debo concatenar if (contador>=1) { cadena =cadena + ","; } cadena = cadena + "codi_calle_pk=" + uncliente.getCodi_calle_pk(); cadena =cadena + ","; cadena = cadena + "nume_calle=" + uncliente.getNume_calle();

Page 261: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

108

cadena =cadena + ","; cadena = cadena + "come_calle='" + uncliente.getCome_calle() + "'"; cadena =cadena + ","; cadena = cadena + "codi_cdla_pk=0"; cadena =cadena + ","; cadena = cadena + "desc_cdla=''"; //contador++; } else { uncliente.setCodi_cdla_pk(Integer.parseInt(request.getParameter("menu1"))); uncliente.setDesc_cdla(request.getParameter("desciula")); //concateno para el update if (contador>=1) { cadena =cadena + ","; } cadena = cadena + "codi_cdla_pk=" + uncliente.getCodi_cdla_pk(); cadena =cadena + ","; cadena = cadena + "desc_cdla='" + uncliente.getDesc_cdla()+"'"; cadena =cadena + ","; cadena = cadena + "codi_calle_pk=0"; cadena =cadena + ","; cadena = cadena + "nume_calle=0"; cadena =cadena + ","; cadena = cadena + "come_calle=''"; } contador++; } } /* actualizo la empresa*/ if(request.getParameter("ckempresa") != null) { if (request.getParameter("ckempresa").equalsIgnoreCase("ckempresa")) { if (contador>=1) {

Page 262: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

109

cadena =cadena + ","; } uncliente.setCodi_empr_fk(Integer.parseInt(request.getParameter("empresa"))); cadena = cadena + "codi_empr_fk=" + uncliente.getCodi_empr_fk(); contador++; } } /*actualizo el vendedor*/ if(request.getParameter("ckvendedor") != null) { if (request.getParameter("ckvendedor").equalsIgnoreCase("ckvendedor")) { if (contador>=1) { cadena =cadena + ","; } uncliente.setCodi_vendedor(Integer.parseInt(request.getParameter("vendedor"))); cadena = cadena + "codi_vendedor=" + uncliente.getCodi_vendedor(); contador++; } } /*actualizo el plazo*/ if(request.getParameter("ckplazo") != null) { if (request.getParameter("ckplazo").equalsIgnoreCase("ckplazo")) { if (contador>=1) { cadena =cadena + ","; }

Page 263: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

110

uncliente.setPlaz(Integer.parseInt(request.getParameter("plazo"))); cadena = cadena + "plaz=" + uncliente.getPlaz(); contador++; } } /*porcentaje*/ if(request.getParameter("ckporcentaj") != null) { if (request.getParameter("ckporcentaj").equalsIgnoreCase("ckporcentaj")) { if (contador>=1) { cadena =cadena + ","; } uncliente.setSobr_porc(Float.parseFloat(request.getParameter("porcentaj"))); cadena = cadena + "sobr_porc=" + uncliente.getSobr_porc(); cadena =cadena + ","; uncliente.setSobr_mont(Float.parseFloat(request.getParameter("monto"))); cadena = cadena + "sobr_mont=" + uncliente.getSobr_mont(); contador++; } } if(request.getParameter("ckcupo") != null) { if (request.getParameter("ckcupo").equalsIgnoreCase("ckcupo")) { if (contador>=1) { cadena =cadena + ","; } uncliente.setCupo(request.getParameter("cupo")); cadena = cadena + "cupo=" + uncliente.getCupo(); cadena =cadena + ",";

Page 264: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

111

uncliente.setSobr_mont(Float.parseFloat(request.getParameter("monto"))); cadena = cadena + "sobr_mont=" + uncliente.getSobr_mont(); contador++; } } /*plazo*/ if (contador>=1) { unclienteBo.updateclienteBo(uncliente,cadena); } return mapping.findForward("success"); } }

Page 265: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

112

MOSTRARTARJETASACTION

package com.ug.cisc.erp.cartera.actions; import com.ug.cisc.erp.cartera.util.ConnectionPool; import com.ug.cisc.erp.cartera.db.TarjetaDAO; import com.ug.cisc.erp.cartera.lista.ListaTarjeta; import java.sql.Connection; import java.sql.SQLException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class MostrarTarjetasAction extends Action { private ConnectionPool pool; Connection con = null; public MostrarTarjetasAction(){ pool= ConnectionPool.getInstance(); } public ActionForward execute(

ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { try{ con = pool.getConnection(); TarjetaDAO dao = new TarjetaDAO(con); ListaTarjeta tarjeta = dao.ListarTarjeta(); request.setAttribute("listaTarjetas", tarjeta.ObtenerLista()); return mapping.findForward("success"); } catch (SQLException e) { e.printStackTrace();

throw new RuntimeException("Imposible Obtener Una Conexion!");

} catch (Throwable e) { e.printStackTrace();

throw new RuntimeException("Se ha producido un error Inesperado.");

} finally { try { if (con != null) con.close(); } catch (SQLException e) { throw new RuntimeException(e.getMessage()); } } } }

Page 266: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

113

REGISTRARCLIENTEACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import javax.swing.JFormattedTextField; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.actions.RegistroclienteForm; import com.ug.cisc.erp.cartera.bo.clienteBo; import com.ug.cisc.erp.cartera.entidades.Clientes; //import com.ug.cisc.erp.cartera.db.ClienteDAO; public class RegistrarclienteAction extends Action { String error; public ActionForward execute(

ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

RegistroclienteForm clienteForm = (RegistroclienteForm) form; clienteBo unclienteBo = new clienteBo(); Clientes uncliente = new Clientes(); String tipocliente = request.getParameter("select"); String ubicacion = request.getParameter("GrupoOpciones1");

Page 267: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

114

uncliente.setCodi_tipo_clie_pk(Integer.parseInt(request.getParameter("select"))); uncliente.setCodi_ciud_pk(Integer.parseInt(request.getParameter("menu3"))); uncliente.setCodi_tipo_pago_pk(request.getParameter("tipopago")); uncliente.setCodi_empr_fk(Integer.parseInt(request.getParameter("empresa"))); uncliente.setCodi_vendedor(Integer.parseInt(request.getParameter("vendedor"))); uncliente.setTele_prin(request.getParameter("telprin")); uncliente.setTele_secu(request.getParameter("telsec")); uncliente.setEmail(request.getParameter("mail")); uncliente.setFax(request.getParameter("fax")); //seccion de prueba para formato fecha //FormatoFecha crearformato = new FormatoFecha(); //uncliente.setFech_ulti_comp(crearformato.valueToString(crearformato.stringToValue("12/12/06"))); //request.getParameter("fechault") if (request.getParameter("porcentaj").compareToIgnoreCase("")!=0) { String valor=null; valor=request.getParameter("porcentaj"); uncliente.setSobr_porc(Float.parseFloat(request.getParameter("porcentaj"))); } if (request.getParameter("cupo").compareToIgnoreCase("")!=0) { uncliente.setSobr_mont(Float.parseFloat(request.getParameter("monto"))); uncliente.setCupo(request.getParameter("cupo")); } if (request.getParameter("plazo").compareToIgnoreCase("")!=0) { uncliente.setPlaz(Integer.parseInt(request.getParameter("plazo"))); }

Page 268: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

115

if (request.getParameter("montoulti").compareToIgnoreCase("")!=0) { uncliente.setMont_ulti_comp(Float.parseFloat(request.getParameter("montoulti"))); } if (ubicacion.equalsIgnoreCase("calle")) { uncliente.setCodi_calle_pk(Integer.parseInt(request.getParameter("menu2"))); uncliente.setCome_calle(request.getParameter("comen")); if (request.getParameter("numcalle").compareToIgnoreCase("")!=0) { uncliente.setNume_calle(request.getParameter("numcalle")); } else { uncliente.setNume_calle("0"); } } else { uncliente.setCodi_cdla_pk(Integer.parseInt(request.getParameter("menu1"))); uncliente.setDesc_cdla(request.getParameter("desciula")); } unclienteBo.addclienteBo(uncliente); if (tipocliente.equalsIgnoreCase("1")) { return mapping.findForward("success"); //return mapping.findForward("Natural"); } else { return mapping.findForward("Juridico"); } } }

Page 269: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

116

REGISTRARCLIENTEACTION

package com.ug.cisc.erp.cartera.actions; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.ug.cisc.erp.cartera.actions.RegistroTipoclienteForm; import com.ug.cisc.erp.cartera.bo.TipoclienteBo; import com.ug.cisc.erp.cartera.db.TipoclienteDAO; public class RegistrarTipoclienteAction extends Action { String error; public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { RegistroTipoclienteForm tipoclienteForm = (RegistroTipoclienteForm) form; TipoclienteBo unTipoclienteBo = new TipoclienteBo(); unTipoclienteBo.addTipoclienteBo((RegistroTipoclienteForm)form); return mapping.findForward("success"); } }

Page 270: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

117

BUSCARCHEQUEFORM

package com.ug.cisc.erp.cartera.actions; import java.sql.Date; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class BuscarchequeForm extends ActionForm{ private String fecha; private Date tifecha; private int codigo; private String banco; private String estado; public void reset(ActionMapping mapping, HttpServletRequest request) { fecha = null; codigo=0; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public String getfecha() { return fecha; }

public void setfecha(String fecha) { this.fecha = fecha; } public Date gettifecha() { return tifecha; } public void settifecha(Date tifecha) { this.tifecha = tifecha; } public int getcodigo() { return codigo; } public void setcodigo(int codigo) { this.codigo = codigo; } }

Page 271: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

118

REGISTRARCLIENTEFORM

package com.ug.cisc.erp.cartera.actions; import java.sql.Date; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistrarcreditoForm extends ActionForm{ private String fecha; private Date tifecha; private int codigo; private String banco; private String estado; public void reset(ActionMapping mapping, HttpServletRequest request) { fecha = null; codigo=0; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public String getfecha() { return fecha; } public void setfecha(String fecha) { this.fecha = fecha; } public Date gettifecha() { return tifecha; } public void settifecha(Date tifecha) { this.tifecha = tifecha; } public int getcodigo() { return codigo; }

public void setcodigo(int codigo) { this.codigo = codigo; } }

Page 272: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

119

REGISTRARDEBITOFORM

package com.ug.cisc.erp.cartera.actions; import java.sql.Date; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistrarcreditoForm extends ActionForm{

private String fecha; private Date tifecha; private int codigo; private String banco; private String estado; public void reset(ActionMapping mapping, HttpServletRequest request) { fecha = null; codigo=0; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public String getfecha() { return fecha; } public void setfecha(String fecha) { this.fecha = fecha; } public Date gettifecha() { return tifecha; } public void settifecha(Date tifecha) { this.tifecha = tifecha; } public int getcodigo() { return codigo; }

public void setcodigo(int codigo) { this.codigo = codigo; } }

Page 273: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

120

REGISTROACTIONFORM

package com.ug.cisc.erp.cartera.actions; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import java.util.Date; public class RegistroAccionForm extends ActionForm { private int codigo; private String descripcion; private String usuarioIngreso; private String estado; private Date fechaIngreso = new Date(); private String visualizar="Visualizar"; //Metodo para encerar public void reset(ActionMapping mapping, HttpServletRequest request) { codigo=0; descripcion=null; estado="A"; usuarioIngreso="adriana"; fechaIngreso=new Date(); } public int getCodigo() { return codigo; }

public void setCodigo(int codigo) { this.codigo = codigo; } public String getDescripcion() { return descripcion; } public void setDescripcion(String descripcion) { this.descripcion = descripcion; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public String getUsuarioIngreso() { return usuarioIngreso; }

Page 274: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

121

public void setUsuarioIngreso(String usuarioIngreso) { this.usuarioIngreso = usuarioIngreso; } public Date getFechaIngreso() { return fechaIngreso; } public void setFechaIngreso(Date fechaIngreso) { this.fechaIngreso = fechaIngreso; } public String getVisualizar() { return visualizar; } public void setVisualizar(String visualizar) { this.visualizar = visualizar; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (descripcion==null || descripcion.trim().equals("")){ errors.add("descripcion",new ActionError("registro.error.descripcion")); } return errors; } }

Page 275: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

122

REGISTROCLIENTEFORM

package com.ug.cisc.erp.cartera.actions; import java.sql.*; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistroclienteForm extends ActionForm{

private int codi_clie_pk; private String stat_clie; private int nume_calle; private String come_calle; private String desc_cdla; private String tele_prin; private String tele_secu; private String fax; private int codi_empr_fk; private String email; private int cupo; private int plaz; private int sobr_porc; private int sobr_mont; private Date fech_ingr; private Date fech_ulti_comp; private int mont_ulti_comp; private int codi_tipo_clie_pk; private int codi_tipo_pago_pk; private int codi_cdla_pk; private int codi_ciud_pk; private int codi_calle_pk; private int codi_vendedor; public void reset(ActionMapping mapping, HttpServletRequest request) { codi_clie_pk=0; stat_clie=null; nume_calle=0; come_calle=null; desc_cdla=null; tele_prin=null; tele_secu=null; fax=null; codi_empr_fk=0; email=null; cupo=0; plaz=0; sobr_porc=0; sobr_mont=0; fech_ingr=null; fech_ulti_comp=null; mont_ulti_comp=0; codi_tipo_clie_pk=0; codi_tipo_pago_pk=0; codi_cdla_pk=0; codi_ciud_pk=0; codi_calle_pk=0; codi_vendedor=0; }

Page 276: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

123

public int getCodi_calle_pk() {

return codi_calle_pk; } public void setCodi_calle_pk(int codi_calle_pk) { this.codi_calle_pk = codi_calle_pk; } public int getCodi_cdla_pk() { return codi_cdla_pk; } public void setCodi_cdla_pk(int codi_cdla_pk) { this.codi_cdla_pk = codi_cdla_pk; } public int getCodi_ciud_pk() { return codi_ciud_pk; } public void setCodi_ciud_pk(int codi_ciud_pk) { this.codi_ciud_pk = codi_ciud_pk; } public int getCodi_clie_pk() { return codi_clie_pk; } public void setCodi_clie_pk(int codi_clie_pk) { this.codi_clie_pk = codi_clie_pk; } public int getCodi_tipo_clie_pk() { return codi_tipo_clie_pk; } public void setCodi_tipo_clie_pk(int codi_tipo_clie_pk) { this.codi_tipo_clie_pk = codi_tipo_clie_pk; } public int getCodi_tipo_pago_pk() { return codi_tipo_pago_pk; } public void setCodi_tipo_pago_pk(int codi_tipo_pago_pk) { this.codi_tipo_pago_pk = codi_tipo_pago_pk; } public int getCodi_vendedor() { return codi_vendedor; } public void setCodi_vendedor(int codi_vendedor) { this.codi_vendedor = codi_vendedor; } public String getCome_calle() { return come_calle; } public void setCome_calle(String come_calle) { this.come_calle = come_calle; } public int getCupo() { return cupo; }

Page 277: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

124

public void setCupo(int cupo) {

this.cupo = cupo; } public String getDesc_cdla() { return desc_cdla; } public void setDesc_cdla(String desc_cdla) { this.desc_cdla = desc_cdla; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getFax() { return fax; } public void setFax(String fax) { this.fax = fax; } public Date getFech_ingr() { return fech_ingr; } public void setFech_ingr(Date fech_ingr) { this.fech_ingr = fech_ingr; } public Date getFech_ulti_comp() { return fech_ulti_comp; } public void setFech_ulti_comp(Date fech_ulti_comp) { this.fech_ulti_comp = fech_ulti_comp; } public int getMont_ulti_comp() { return mont_ulti_comp; } public void setMont_ulti_comp(int mont_ulti_comp) { this.mont_ulti_comp = mont_ulti_comp; } public int getNume_calle() { return nume_calle; } public void setNume_calle(int nume_calle) { this.nume_calle = nume_calle; } public int getPlaz() { return plaz; } public void setPlaz(int plaz) { this.plaz = plaz; }

Page 278: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

125

REGISTROCLIENTE JURIDICOFORM

public int getSobr_mont() {

return sobr_mont; } public void setSobr_mont(int sobr_mont) { this.sobr_mont = sobr_mont; } public int getSobr_porc() { return sobr_porc; } public void setSobr_porc(int sobr_porc) { this.sobr_porc = sobr_porc; } public String getStat_clie() { return stat_clie; } public void setStat_clie(String stat_clie) { this.stat_clie = stat_clie; } public String getTele_prin() { return tele_prin; } public void setTele_prin(String tele_prin) { this.tele_prin = tele_prin; } public String getTele_secu() { return tele_secu; } public void setTele_secu(String tele_secu) { this.tele_secu = tele_secu; } public int getCodi_empr_fk() { return codi_empr_fk; } public void setCodi_empr_fk(int codi_empr_fk) { this.codi_empr_fk = codi_empr_fk; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); //esto que viene estaba encomentario /* if (codi_clie_pk==0) { errors.add("codi_pais_pk",new ActionError("registroPais.error.codi_pais_pk")); } */ //if (desc_pais==null || desc_pais.trim().equals("")){ //errors.add("desc_pais",new ActionError("registroPais.error.desc_pais")); //} return errors; } }

Page 279: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

126

REGISTROCLIENTEJURIDICO

package com.ug.cisc.erp.cartera.actions;

import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistroclientejuridicoForm extends ActionForm{ private int codi_clie_pk;

private String ruc_pk; private String repr_lega; private String razo_soci; public void reset(ActionMapping mapping, HttpServletRequest request) { codi_clie_pk=0; ruc_pk= null; repr_lega= null; razo_soci= null; } public int getcodi_clie_pk() { return codi_clie_pk; } public void setcodi_clie_pk(int codi_clie_pk) { this.codi_clie_pk = codi_clie_pk; } public String getruc_pk() { return ruc_pk; } public void setruc_clientejuridico(String ruc_pk) { this.ruc_pk = ruc_pk; } public String getrepr_lega() { return repr_lega; } public void setrepr_lega(String repr_lega) { this.repr_lega = repr_lega; } public String getrazo_soci() { return razo_soci; } public void setrazo_soci(String razo_soci) { this.razo_soci = razo_soci; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); return errors; } }

Page 280: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

127

REGISTROPRINCREDITOFORM

package com.ug.cisc.erp.cartera.actions;

import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistroprincreditoForm extends ActionForm{ private int codi_clie_pk; private String fech_regi; private double tota; private int codi_kard_clie_pk; private int nume_apli; private int tipo_apli; public void reset(ActionMapping mapping, HttpServletRequest request) { codi_clie_pk=0; fech_regi=null; tota=0; codi_kard_clie_pk=0; nume_apli=0; tipo_apli=0; } public String getfech_regi() { return fech_regi; } public void setfech_regi(String fech_regi) { this.fech_regi = fech_regi; } public int getcodi_clie_pk() { return codi_clie_pk; } public void setcodi_clie_pk(int codi_clie_pk) { this.codi_clie_pk = codi_clie_pk; } public double gettota() { return tota; } public void settota(int tota) { this.tota = tota; } public int getcodi_kard_clie_pk() { return codi_kard_clie_pk; }

Page 281: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

128

REGISTROPROVINCIAFORM

public void setcodi_kard_clie_pk(int codi_kard_clie_pk) {

this.codi_kard_clie_pk = codi_kard_clie_pk; } public int getnume_apli() { return nume_apli; } public void setnume_apli(int nume_apli) { this.nume_apli = nume_apli; } public int gettipo_apli() { return tipo_apli; } public void settipo_apli(int tipo_apli) { this.tipo_apli = tipo_apli; }

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {

ActionErrors errors = new ActionErrors(); //esto que viene estaba encomentario if (codi_kard_clie_pk==0) {

errors.add("codi_kard_clie_pk",new ActionError("registroprincredito.error.codi_kard_clie_pk"));

} return errors; } }

Page 282: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

129

package com.ug.cisc.erp.cartera.actions; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistroProvinciaForm extends ActionForm{

private int codi_prov_pk; private String desc_prov; private int codi_pais_pk; private String desc_pais; private String usuarioIngreso; private String usuarioModifica; private Date fechaIngreso = new Date(); private Date fechaModifica = new Date(); private String editar="Editar"; private String eliminar="Eliminar"; private String estado="A"; public void reset(ActionMapping mapping, HttpServletRequest request) { codi_prov_pk=0; desc_prov = null; codi_pais_pk=0; usuarioIngreso="ADRIANA"; usuarioModifica="ADRI"; fechaIngreso=new Date(); fechaModifica=new Date(); } public String getEditar() { return editar; } public void setEditar(String editar) { this.editar = editar; } public String getEliminar() { return eliminar; } public void setEliminar(String eliminar) { this.eliminar = eliminar; } public Date getFechaIngreso() { return fechaIngreso; }

Page 283: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

130

public void setFechaIngreso(Date fechaIngreso) {

this.fechaIngreso = fechaIngreso; } public Date getFechaModifica() { return fechaModifica; } public void setFechaModifica(Date fechaModifica) { this.fechaModifica = fechaModifica; } public String getUsuarioIngreso() { return usuarioIngreso; } public void setUsuarioIngreso(String usuarioIngreso) { this.usuarioIngreso = usuarioIngreso; } public String getUsuarioModifica() { return usuarioModifica; } public void setUsuarioModifica(String usuarioModifica) { this.usuarioModifica = usuarioModifica; } public int getCodi_pais_pk() { return codi_pais_pk; } public void setCodi_pais_pk(int codi_pais_pk) { this.codi_pais_pk = codi_pais_pk; } public int getCodi_prov_pk() { return codi_prov_pk; } public void setCodi_prov_pk(int codi_prov_pk) { this.codi_prov_pk = codi_prov_pk; } public String getDesc_prov() { return desc_prov; }

Page 284: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

131

public void setDesc_prov(String desc_prov) { this.desc_prov = desc_prov; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); //esto que viene estaba encomentario if (desc_prov==null || desc_prov.trim().equals("")){ errors.add("desc_prov",new ActionError("registroProvincia.error.desc_prov")); } if (codi_pais_pk==0){ errors.add("codi_pais_pk",new ActionError("registroProvincia.error.codi_pais_pk")); } return errors; } public String getDesc_pais() { return desc_pais; } public void setDesc_pais(String desc_pais) { this.desc_pais = desc_pais; } }

Page 285: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

132

REGISTROTARJETAFORM

package com.ug.cisc.erp.cartera.actions; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class RegistroTarjetaForm extends ActionForm{ private int codi_tarj_pk; private String nomb_tarj; private int porc_desc_tarj; private int porc_incr_tarj; private int mini_tarj; private String usuarioIngreso; private String usuarioModifica; private Date fechaIngreso = new Date(); private Date fechaModifica = new Date(); private String editar="Editar"; private String eliminar="Eliminar"; private String estado="A"; public void reset(ActionMapping mapping, HttpServletRequest request) { codi_tarj_pk=0; nomb_tarj = null; porc_desc_tarj=0; porc_incr_tarj=0; mini_tarj=0; usuarioIngreso="ADRIANA"; usuarioModifica="ADRI"; fechaIngreso=new Date(); fechaModifica=new Date(); } public String getEditar() { return editar; } public void setEditar(String editar) { this.editar = editar; } public String getEliminar() { return eliminar; }

Page 286: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

133

public void setEliminar(String eliminar) { this.eliminar = eliminar; } public Date getFechaIngreso() { return fechaIngreso; } public void setFechaIngreso(Date fechaIngreso) { this.fechaIngreso = fechaIngreso; } public Date getFechaModifica() { return fechaModifica; } public void setFechaModifica(Date fechaModifica) { this.fechaModifica = fechaModifica; } public String getUsuarioIngreso() { return usuarioIngreso; } public void setUsuarioIngreso(String usuarioIngreso) { this.usuarioIngreso = usuarioIngreso; } public String getUsuarioModifica() { return usuarioModifica; } public void setUsuarioModifica(String usuarioModifica) { this.usuarioModifica = usuarioModifica; } public int getCodi_tarj_pk() { return codi_tarj_pk; } public void setCodi_tarj_pk(int codi_tarj_pk) { this.codi_tarj_pk = codi_tarj_pk; } public String getEstado() { return estado; }

Page 287: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

134

VALIDARLOGINFORM

package com.ug.cisc.erp.cartera.actions; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; public class ValidarLoginForm extends ActionForm{ String userid; String password;

public void reset(ActionMapping mapping, HttpServletRequest request) { userid= null; password = null; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserid() { return userid; }

public void setUserid(String userid) { this.userid = userid; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (userid==null || userid.trim().equals("")){ errors.add("userid",new ActionError("validateLogin.error.userid")); }else{ if (password==null || password.trim().equals("")){ errors.add("password",new ActionError("validateLogin.error.password")); } } return errors; } }

Page 288: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

134

CAPITULO 2

2. MANUAL DE USUARIO

CUENTAS POR COBRAR

2.1. Funcionalidad del Modulo

Seguridad

Este proyecto provee seguridades de acceso, apenas inicia el programa,

empezara como usuario no autorizado, hacemos click en la imagen de

llave y se cargara la siguiente forma, en la que se podrá llenar los datos

de los diferentes usuarios, en este caso se manejara los perfiles de

administrador, oficial de crédito, usuario de ventas y tesorería, lo cuales

Page 289: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

135

tendrán registringida sus opciones a los menús según el rol que estos

desempeñen.

Luego se ingresa para iniciar sesión en usuario se digita el nombre de

usuario y se digita la clave. Y se da un click en el botón de enviar.

Page 290: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

136

2.2. Ingreso al Sistema

Esta pantalla va aparecer donde se encontrara información resumida

acerca del módulo de cartera.

ARCHIVOS

Al dar click en el archivo se desplegara un submenús en la parte

derecha, con opciones.

Page 291: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

137

Si se da clic en cliente, se cargara en la parte derecha de la pantalla, los

datos de cliente, para poder ingresarlo.

Page 292: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

138

Tipo de cliente.-Al dar click en tipo de cliente se va a desplegar una lista

con la opción de jurídico o natural, se debe seleccionar uno de los dos

pues es muy importante y obligatoria esa información.

Teléfono.-Ingresar solo números ingresados, hay campos para teléfono

principal, secundario y fax.

E-mail.-Se debe ingresar el e-mail de la persona ya sea natural o jurídica.

Dirección.-La dirección se divide en dos bloques calles y ciudadela; si se

escoge calle automáticamente se bloqueara ciudadela.

Calle.-Los datos de calle, dar click para escoger la calle e ingresar el

número de calle y el comentario si lo hubiere.

Ciudadela.-Los datos de la ciudadela, dar click para escoger la ciudadela,

y la descripción adicional de la ciudadela.

Empresa.- Al dar click se despliega el nombre de empresa, escoger uno

con la que se trabaja.

Tipo de pago.- Al dar click se despliega por default crédito.

Sobregiro porcentaje.-Se deberá el ingresar el porcentaje que no exceda

el 50 %.

Sobregiro en monto.-Automáticamente se genera según el cupo y el

sobregiro en porcentaje

Cupo.- Aquí se va digitar el cupo con el que cuenta el cliente, solo

números se va a ingresar.

Page 293: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

139

Vendedor.- En esta opción se debe escoger el nombre del vendedor al

que se le va a asignar al cliente.

Plazo.-Al hacer click en este menú, se deberá escoger los días plazos en

este caso solo se podrá escoger 30,60 o 90 días

Fecha de la última compra.- Se escogerá la fecha de la última compra.

Monto de crédito.- Aquí se va a digitar en números el monto del crédito

que el cliente va a solicitar.

Al dar click en el botón grabar de pendiendo del tipo de cliente que se

escogió va aparece la siguiente pantalla.

Si se escogió Cliente natural.- Hay que ingresar los siguientes datos.

# de Cédula.- Aquí se va a digitar el numero del cedula del cliente

natural.

Nombre.- Se deberá de digitar el nombre del cliente.

Contacto.- Se deberá de digitar el contacto del cliente.

Page 294: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

140

Al dar click en el botón grabar aparecerá la siguiente pantalla.

Cliente Jurídico.- Hay que ingresar los siguientes datos.

Si se escoge la opción cliente jurídico, se tendrá que llenar los siguientes

datos que son obligatorios.

# de RUC.-Se deberá ingresar el número del ruc del cliente jurídico.

Representante legal.- Se deberá digitar el nombre del representante legal

de la empresa.

Razón social.- Se deberá digitar el nombre de la empresa.

Page 295: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

141

Al dar click en el botón grabar aparecerá la siguiente pantalla.

Consulta de cliente.-

Page 296: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

142

Criterios de búsqueda, se tiene que escoger los tipos de búsqueda

haciendo un click en una de las siguientes opciones, tales como Todos,

Nombre o Identificación.

Si se escoge nombre o identificación, se tiene que digitar ya se el nombre

o el numero de cedula y luego se selecciona el botón consultar.

Para Editar la información de algún cliente, primero se lo tiene que

seleccionar haciendo un click, en el cliente que se quiere actualizar

alguna información, y luego se presiona Editar.

Luego se carga la información, relacionada con el cliente, para que pueda

actualizarse.

Page 297: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

143

El código, sale inactivo para que no se puede cambiar, por ninguna

intervención.

Tipo de cliente.-Al dar click en tipo de cliente se va a desplegar una lista

con la opción de jurídico o natural, en el caso que se quiera actualizar el

tipo.

Teléfono.-Si se quiere actualizar los números ingresados, hay campos

para teléfono principal, secundario y fax.

E-mail.-Si se desea actualizar el e-mail de la persona ya sea natural o

jurídico.

Dirección.-Si se desea actualizar la dirección se divide en dos bloques

calles y ciudadela; si se escoge calle automáticamente se bloqueara

ciudadela.

Calle.-Los datos de calle, dar click para escoger la calle e ingresar el

número de calle y el comentario si lo hubiere.

Ciudadela.-Si se desea actualizar, los datos de la ciudadela, dar click para

escoger la ciudadela, y la descripción adicional de la ciudadela.

Empresa.- Si se desea actualizar, el nombre de empresa, escoger uno

con la que se trabaja.

Tipo de pago.- Si se desea actualizar, al dar click se despliega por default

crédito.

Page 298: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

144

Sobregiro porcentaje.-Si se desea actualizar, se deberá el ingresar el

porcentaje que no exceda el 50 %.

Sobregiro en monto.-Automáticamente se genera según el cupo y el

sobregiro en porcentaje, según la información actualizada.

Cupo.- Se debe actualizar, si se quiere el cupo con el que cuenta el

cliente, solo números se va a ingresar.

Vendedor.- Si se quiere actualizar, en esta opción se debe escoger el

nombre del vendedor al que se le va a asignar al cliente.

Plazo.-Si se desea actualizar, se hace click en este menú, se deberá

escoger los días plazos en este caso solo se podrá escoger 30,60 o 90

días

Fecha de la última compra.- Si se desea actualizar escoger la fecha de la

última compra.

Monto de crédito.- Si se quiere actualizar, aquí se va a digitar en números

el monto del crédito que el cliente va a solicitar.

Solicitudes

Ingreso de solicitudes.- Al dar clic en ingreso de solicitud aparece la

siguiente pantalla.

Page 299: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

145

Doy clic en buscar y se despliega una lista con todos los clientes en

general.

Page 300: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

146

Se selecciona uno de los clientes haciendo clic en la identificación, para

que se cargue automáticamente en la página anterior el nombre del

cliente y la cedula.

También se cargara automáticamente la fecha de solicitud.

En estado de solicitud.-Se deberá escoger una opción entre las siguientes

el aprobada, rechazada, tramite o cancelada.

Estado de cobro.- Estará seteado normal, por que es un crédito normal.

Luego se selecciona el botón grabar, para que se almacene la

información.

Consultas de solicitudes.- Al dar clic en solicitudes se desplegara la

siguiente ventana.

Page 301: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

147

En esta pantalla se selecciona el criterio de búsqueda, se tiene que

escoger los tipos de búsqueda haciendo un click en una de las siguientes

opciones, tales como Todos, Nombre o Identificación.

Si se escoge nombre o identificación, se tiene que digitar ya sea el

nombre o el numero de cedula y luego se selecciona el botón consultar.

También se puede hacer la búsqueda por medio de la fecha de inicio y

término.- Se debe seleccionar la fecha de inicio y final haciendo clic en el

icono pequeño para que se cargue el calendario y se pueda escoger una

fecha.

Estado.-Se deberá escoger una opción entre las siguientes: aprobada, o

rechazada, trámite o cancelada.

Servicio.- Al hacer clic se desplegara una lista con los siguientes datos:

Todos los servicios y créditos.

Para Editar la información de algún cliente, se tiene que seleccionar la

palabra Editar y en ese momento se podrá actualizar la información.

Page 302: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

148

En esta pantalla solo se podrá editar la información de estado de solicitud

y cobro, dando clic en una de ellas.

Luego se selecciona con el Mouse el botón grabar.

Cabe recalcar que si se escoge un cliente que tenga una deuda, luego

que se presento la información para editar, en la parte inferior se podrá

apreciar, las siguientes opciones: facturas, nota de debito y nota de

crédito, se debe escoger una de ellas.

Page 303: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

149

Si se escogió facturas se van a desplegar las facturas emitidas, con

sus valores correspondientes y sus fechas de emisión.

Si se selecciona el botón Debitar se presenta la siguiente pantalla:

Valor de la nota.- Se debe digitar el valor en números de la nota de

debito.

Estado de la nota.- que despliega emitida por default.

Comentario.- Que es obligatorio ingresarlo, en letras algún comentario

adjunto a la nota de debito.

Se da clic en grabar y automáticamente se almacena la información.

En el caso que se haya seleccionado el botón acreditar, saldrá la

siguiente pantalla.

Page 304: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

150

Solo se podrá ingresar los siguientes datos:

Valor de la nota: Se debe digitar el valor en números de la nota de debito.

Estado de la nota: que despliega emitida por default.

Comentario: que es obligatorio ingresarlo, es solo texto.

Se da clic en grabar y automáticamente se almacena la información.

Si se escoge la opción Nota de Débito.-Se permitirá visualizar todas

las notas de debitos que posea dicho cliente, también se podrá añadir

una nota de crédito y añadir nota de debito.

Nota de Crédito.-Si se quiere visualizar una nota de crédito se da clic en

botón acreditar.

Page 305: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

151

Directorio de Tarjetas de Crédito

Aquí se presentaran dos opciones, creación de tarjeta y lista de tarjetas.

Al dar clic en Creación de tarjetas se cargara una pantalla donde se

ingresara los siguientes datos:

Nombre: Aquí se va a digitar los nombres de las tarjetas con las que va a

trabajar la empresa.

Porcentaje descuento: Se digitara el porcentaje de descuentos en

números, se manejar un rango que se aplicara de acuerdo a la tarjeta de

crédito, y dependiendo de la política de la empresa.

Page 306: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

152

Porcentaje de incremento: Es el porcentaje en números que se cobra por

la utilización de la tarjeta, también se definirá un rango, según las políticas

de la empresa.

Mínimo: Es el valor mínimo por el cual se puede realizar la compra, se

pondrá un rango según las políticas de la empresa.

Lista de tarjeta

Permita visualizar los todos los datos de la tarjetas existentes.

Si se da clic en editar se permitirá, cambiar la información de las tarjetas.

Page 307: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

153

Nombre: Aquí se va a actualizar el nombre de las tarjetas con las que va

a trabajar la empresa

Porcentaje descuento: Se digitara si se desea actualizar, el porcentaje de

descuentos en números, se manejar un rango que se aplicara de

acuerdo a la tarjeta de crédito, y dependiendo de la política de la

empresa.

Porcentaje de incremento: Se digitara si se desea actualizar, el

porcentaje en números que se cobra por la utilización de la tarjeta,

también se definirá un rango, según las políticas de la empresa.

Mínimo: Si se desea actualizar, el valor mínimo por el cual se puede

realizar la compra, se pondrá un rango según las políticas de la empresa.

Page 308: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

154

Se da clic en el botón grabar, para actualizar la información.

Si se da clic en eliminar automáticamente se eliminara el registro de esa

tarjeta

TRANSACCIONES.-

Aquí se presentara una opción de cartera vencida, al dar en clic aquí, se

mostrara una pantalla donde se podrá apreciar los interés que ha

generado mi cartera vencida, solo se podrá visualizar información no se la

podrá manipular.

Page 309: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

155

PROCESOS.-

Cancelación de Tarjetas de Créditos.- Al hacer click en la opción de

menú cancelación de tarjetas, se cargara la siguiente ventana

Se presentara una ventana, en la que se encontrara un botón buscar al

presionar en dicho botón se desplayará una pantalla

Aquí la búsqueda de las tarjetas de crédito se la realiza por medio de la

fecha con el formato DD/MM/YY y automáticamente se cargara en la

Page 310: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

156

pantalla de tarjetas, el código de la transacción, la tarjeta y el cliente a

quien le pertenece la tarjeta.

Depósitos de Cheques Postfechados.- Esta opción permite seleccionar

los cheques que son postfechados y que posteriormente van a ser

depositados.

Al dar click en el menú en la opción procesos y luego en cancelación de

cheques se presentara un pantalla en la cual se debe escoger la opción

buscar para que se presenten en otra ventana los datos de los cheques

que estas post fechado y darles de baja.

Page 311: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

157

En dicha búsqueda se la tiene que realizar por medio de la fecha en el

formato DD/MM/AA al ingresarla se le da click en buscar y aparecerán la

lista de los cheques post fechados, al seleccionar estos automáticamente

se llenaran los datos y se procederá a dar de bajas a dichos cheques, en

el momento que se seleccione el botón grabar, aparecerá una nueva

ventana que mostrara el mensaje de Registro Exitoso.

Page 312: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

158

REPORTES.-Al dar clic en reportes se presentara las siguientes

opciones.

Directorio de cliente.-

Reporte Cliente natural.- Al dar clic en cliente natural aparecerá la

siguiente pantalla.

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente natural.

Se da clic en el botón buscar.

Page 313: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

159

Y automáticamente se presenta la información del cliente natural.

Reporte de cliente jurídico.

Se selecciona por medio de un clic el estado del cliente y luego se

procede a dar clic en el botón buscar.

Page 314: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

160

Se presentara el siguiente reporte.

Reporte General de Clientes

Page 315: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

161

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente natural.

Se da clic en el botón buscar, y se presenta el siguiente reporte.

Page 316: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

162

Reporte de Cheques Postfechados

Clientes Naturales

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente natural.

Se da clic en el botón buscar, presenta el siguiente reporte.

Page 317: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

163

Cliente Jurídico

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Page 318: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

164

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente.

Se da clic en el botón buscar, presenta el reporte.

Reporte de cheques en general

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente.

Se da clic en el botón buscar, presenta el siguiente reporte.

Page 319: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

165

REPORTE DE TARJETA

Cliente natural

Page 320: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

166

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente.

Se da clic en el botón buscar, presenta el siguiente reporte.

Cliente Jurídico

Page 321: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

167

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente.

Se da clic en el botón buscar, presenta el siguiente reporte.

Cliente General

Page 322: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

168

Desde: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha inicial.

Hasta: Se da clic en el botón y aparecerá un calendario y se escoge la

fecha final.

Estado: Se selecciona el estado del cliente.

Se da clic en el botón buscar, presenta el siguiente reporte.

Reporte de intereses por mora Clientes Jurídicos Cliente Juridico Al hacer click en este reporte, tenemos que digitar un rango.

Page 323: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

169

Desde al dar clic se desplegara un calendario y se escogerá la fecha y

luego se dará click en hasta y desplegara un calendario, se escogerá la

fecha final.

También se puede observar que se encuentra un botón estado en este

se desplegara dos opciones cobrado o pendiente. Cuando tenga llenado

todos los datos que e nombrado anteriormente, se presionara el botón

buscar.

Al presionar este botón buscar emitirá el reporte correspondiente.

Page 324: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

170

Clientes Naturales Al hacer click en este reporte, tenemos que digitar un rango.

Desde al dar clic se desplegara un calendario y se escogerá la fecha y

luego se dará click en hasta y desplegara un calendario y se escogerá la

fecha final.

También se puede observar que se encuentra un botón estado en este

se desplegara dos opciones cobrado o pendiente. Cuando tenga llenado

todos los datos que e nombrado anteriormente, se presionara el botón

buscar.

Page 325: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

171

Al presionar este botón buscar emitirá el reporte correspondiente.

Porcentaje de Comisión por Vendedor Cliente Jurídico Al hacer click en este reporte, tenemos que digitar un rango.

Page 326: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

172

Desde al dar clic se desplegara un calendario y se escogerá la fecha y

luego se dará click en hasta y desplegara un calendario y se escogerá la

fecha final.

También se puede observar que se encuentra un botón estado en este

se desplegara dos opciones cobrado o pendiente. Cuando tenga llenado

todos los datos que e nombrado anteriormente, se presionara el botón

buscar.

Al presionar este botón buscar emitirá el reporte correspondiente.

Page 327: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

173

Porcentajes de Comisión por vendedor Cliente Natural Al hacer click en este reporte, tenemos que digitar un rango.

Desde al dar clic se desplegara un calendario y se escogerá la fecha y

luego se dará click en hasta y desplegara un calendario y se escogerá la

fecha final.

También se puede observar que se encuentra un botón estado en este

se desplegara dos opciones cobrado o pendiente. Cuando tenga llenado

todos los datos que e nombrado anteriormente, se presionara el botón

buscar.

Page 328: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

174

Al presionar este botón buscar emitirá el reporte correspondiente.

Page 329: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

175

UTILERIAS.

Status

Cada uno de los estatus que va a tener todos los módulos.

Al seleccionar del menú la opción status, se cargara una nueva ventana

donde se van a digitar los siguientes datos:

Código: Se pone solo tres caracteres iniciales del estado.

Descripción: Aquí se va a describir el nombre del estado.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Page 330: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

176

Lista Status

Al hacer clic en esta opción, se prestara en la pantalla una lista de todos

los estatus que tiene mi sistema.

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Page 331: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

177

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

Page 332: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

178

La cual me permitirá hacer cambios ya sea en el código o descripción

respectivamente. Al realizar los cambios se presionara el botón grabar

para que se realicen los cambios que se han hecho.

Módulo.- Aquí se detallara los diferentes módulos que conforman el ERP.

En utilitarios se hacen clic e la opción en módulos se presentara la

siguiente ventana.

Page 333: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

179

Los datos a ingresar en la ventana son:

Código: Se ingresan solo tres caracteres.

Descripción: Se detalla el nombre del modulo

Empresa: Al hacer click en empresa se mostrara una lista de las

empresas, se puede escoger cualquiera, seleccionando con el Mouse.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Lista Módulos

Al hacer clic en esta opción, se prestara en la pantalla una lista de todos

los módulos que tiene mi sistema.

Page 334: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

180

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

Page 335: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

181

Editar Módulos

La cual me permitirá hacer cambios ya sea en el código, descripción y/o

empresa respectivamente. Al realizar los cambios se presionara el botón

grabar para que se realicen los cambios que se ha hecho.

Ciudad

Al seleccionar la opción del menú ciudad se desplegara una ventana del

lado derecho que me permitirá ingresar todos los datos relacionados con

ciudad.

Page 336: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

182

Descripción.- Se escribe el nombre de la ciudad.

Provincia.- Al hacer clic en provincia se desplegara una lista con todas las

provincias, se debe escoge una de ellas.

Cantón.- Al hacer clic en cantón se desplegara una lista con todos los

cantones, se debe escoger uno de ellas.

País.- Al hacer clic en país se desplegara una lista con todos los países,

se debe escoger una de ellos.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Page 337: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

183

Lista Ciudades

Al hacer clic en esta opción, se prestara en la pantalla una lista de todas

las ciudades que tiene mi sistema.

Page 338: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

184

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

La cual me permitirá hacer cambios ya sea en el código, descripción,

provincia, cantón, y/o país respectivamente. Al realizar los cambios se

presionara el botón grabar para que se realicen los cambios que se ha

hecho.

Page 339: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

185

País

Al seleccionar la opción del menú país se desplegara una ventana del

lado derecho que me permitirá ingresar todos los datos relacionados al

país.

Descripción: Se escribirá el nombre del país.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Page 340: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

186

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Lista Países

Al hacer clic en esta opción, se prestara en la pantalla una lista de todos

los países que tiene mi sistema.

Page 341: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

187

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

Page 342: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

188

La cual me permitirá hacer cambios ya sea en el código o descripción

respectivamente. Al realizar los cambios se presionara el botón grabar

para que se realicen los cambios que se ha hecho.

Provincia

Al seleccionar la opción del menú país se desplegara una ventana del

lado derecho que me permitirá ingresar todos los datos relacionados con

la provincia.

Page 343: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

189

Descripción.- Aquí se digitara el nombre de la provincia

País.- Al hacer clic en país se desplegara una lista con todos los países,

se debe escoger una de ellos.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Lista Provincias

Al hacer clic en esta opción, se prestara en la pantalla una lista de todas

las provincias que tiene mi sistema.

Page 344: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

190

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Page 345: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

191

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

La cual me permitirá hacer cambios ya sea en el código, descripción y/o

países respectivamente. Al realizar los cambios se presionara el botón

grabar para que se realicen los cambios que se ha hecho.

Parroquia

Al seleccionar la opción del menú parroquia se desplegara una ventana

del lado derecho que me permitirá ingresar todos los datos relacionados

con la parroquia.

Page 346: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

192

Descripción.- Se digitara la parroquia

Sector.- Al hacer clic en sector se desplegara una lista con todos los

sectores, se debe escoger uno de ellos.

Ciudad.- Al hacer clic en ciudad se desplegara una lista con todas las

ciudades, se debe escoger una de ellos.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Page 347: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

193

Lista Parroquia

Al hacer clic en esta opción, se prestara en la pantalla una lista de todas

las parroquias que tiene mi sistema.

Page 348: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

194

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

La cual me permitirá hacer cambios ya sea en el código, descripción,

sector y/o ciudad respectivamente. Al realizar los cambios se presionara

el botón grabar para que se realicen los cambios que se ha hecho.

Cantón

Al seleccionar la opción del menú cantón se desplegara una ventana del

lado derecho que me permitirá ingresar todos los datos relacionados con

el cantón.

Page 349: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

195

Descripción.- Se escribe el nombre del cantón

Provincia.- Al hacer clic en ciudad se desplegara una lista con todas las

ciudades, se debe escoger una de ellos.

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Page 350: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

196

Lista Cantones

Al hacer clic en esta opción, se prestara en la pantalla una lista de todos

los cantones que tiene mi sistema.

Page 351: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

197

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

La cual me permitirá hacer cambios ya sea en el código, descripción , y/o

provincia respectivamente. Al realizar los cambios se presionara el botón

grabar para que se realicen los cambios que se ha hecho.

Page 352: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

198

Tipo de Pago

Al seleccionar la opción del tipo pago parroquia se desplegara una

ventana del lado derecho que me permitirá ingresar todos los datos

relacionados con la tipo de pago.

Descripción.- Aquí se va a digitar en letras el tipo de pago a utilizar

Si se da click en limpiar automáticamente se borra toda la información

que se ha digitado.

Al hacer clic en grabar automáticamente se presentara un mensaje de

registro exitoso.

Page 353: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

199

Lista de Tipos de Pagos

Al hacer clic en esta opción, se prestara en la pantalla una lista de todos

los tipos de pagos que tiene mi sistema.

Se puede apreciar en dicha pantalla que hay unos links subrayados como

los son Editar y Eliminar

Page 354: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

200

Si se realiza una acción sobre el link eliminar automáticamente va a

borrar el dato seleccionado.

Si se realiza una acción sobre el link Editar se mostrara la siguiente

pantalla

La cual me permitirá hacer cambios ya sea en el código o descripción

respectivamente. Al realizar los cambios se presionara el botón grabar

para que se realicen los cambios que se ha hecho.

SALIR

Al hace click en el menú en salir, se desplegara otra opción de cerrar

sesión.

Page 355: ÍNDICE GENERAL - UGrepositorio.ug.edu.ec/bitstream/redug/18899/1/UG... · 5.6.2 Pruebas con Modulo Inventario 126 5.6.3 Pruebas con Modulo Tesorería 126 5.6.4 Pruebas con Modulo

201