You are on page 1of 123

ANLISIS Y DESARROLLO DE UN SISTEMA DE INFORMACIN PARA

EL CLCULO Y ADMINISTRACIN DE CRDITOS, EN EL SECTOR


FINANCIERO.

Fabin Andrs Cuervo Fajardo


Cdigo 533012

FUNDACIN UNIVERSITARIA KONRAD LORENZ


FACULTAD DE INGENIERA DE SISTEMAS
BOGOT
2008
ANLISIS Y DESARROLLO DE UN SISTEMA DE INFORMACIN PARA
EL CLCULO Y ADMINISTRACIN DE CRDITOS, EN EL SECTOR
FINANCIERO.

PROYECTO DE GRADO PARA OBTENER EL TITULO


DE INGENIERO DE SISTEMAS

Fabin Andrs Cuervo Fajardo

Director:
Ingeniero Gustavo Herazo

FUNDACIN UNIVERSITARIA KONRAD LORENZ


FACULTAD DE INGENIERA DE SISTEMAS
BOGOT
2008
1
Nota de aceptacin

____________________________

____________________________

____________________________

Presidente del jurado

______________________________
Jurado

______________________________
Jurado

Bogot _____________________
(DD-MM-AAAA)

2
Dedicado a mis padres
Lucio y Rosa Elena por
su apoyo y dedicacin
en mi proceso formativo

3
AGRADECIMIENTOS

Agradezco a todas las personas que me han acompaado en todo el proceso


educativo a travs de este largo camino de estudio y dedicacin,
agradecimiento especialmente a:
Ingeniero Gustavo Herazo Prez, por su gran colaboracin en todo el
proceso de anlisis y diseo del presente proyecto de investigacin.

Ingeniero Javier vila, gracias a su dedicacin, experiencia y conocimientos,


que con criterios ticos y profesionales, comparti en estos ltimos
semestres.

Ingeniero Germn Vargas, por su entusiasmo, optimismo y su desempeo en


la labor docente, generando en los estudiantes deseos de continuar y gusto
por la carrera.

Paula y Fidgeral, compaeros que en el transcurso de los aos fueron apoyo


y compaa en este largo camino.

4
TABLA DE CONTENIDO

1 ASPECTOS DE LA INVESTIGACIN ........................................................ 8


1.1 DESCRIPCIN DEL PROBLEMA ........................................................... 8
1.2 JUSTIFICACIN DEL PROYECTO DE INVESTIGACIN ...................... 9
1.2.1 Razones sociales ................................................................................. 9
1.2.2 Razones econmicas .......................................................................... 9
1.2.3 Razones tcnicas ................................................................................. 9
1.2.4 Razones organizacionales ................................................................ 10
1.2.5 Razones metodolgicas .................................................................... 10
1.3 DELIMITACIN ...................................................................................... 10
1.3.1 Espacial .............................................................................................. 10
1.3.2 Cronologa .......................................................................................... 10
1.3.3 Conceptual ......................................................................................... 11
1.3.4 Financiera ........................................................................................... 11
1.3.5 Metodolgica ...................................................................................... 11
1.4 OBJETIVOS ........................................................................................... 13
1.4.1 General ............................................................................................... 13
1.4.2 Especficos ......................................................................................... 13
1.5 PROPSITO........................................................................................... 14
2 MARCO TEORICO .................................................................................... 16
2.1 ANTECEDENTES................................................................................... 16
2.1.1 Histricos ........................................................................................... 16
2.1.1.1 Los Inicios: La Roma Imperial ....................................................... 16
2.1.1.2 La Edad Media ................................................................................. 17
2.1.1.3 El renacimiento y el desarrollo del capitalismo ........................... 17
2.1.2 Legales ............................................................................................... 18
2.1.3 Investigativos ..................................................................................... 19
2.2 BASES TERICAS ................................................................................ 22
2.2.1 Definicin de Crdito ......................................................................... 22
2.2.2 Tipos de Crditos............................................................................... 23
2.2.2.1 Crdito de libre inversin ............................................................... 23
2.2.2.2 Leasing Habitacional ...................................................................... 23
2.2.2.3 Crditos de estudios ...................................................................... 23
2.2.2.4 Crditos hipotecarios ..................................................................... 24
2.2.3 Inters ................................................................................................. 24
5
2.2.3.1 Inters simple e inters compuesto .............................................. 24
2.2.4 Amortizacin ...................................................................................... 25
2.2.5 Rentabilidad ....................................................................................... 25
2.3 TEORAS GENRICAS BASADAS EN LA INGENIERA ..................... 25
2.3.1 Productos del Modelo ....................................................................... 27
2.4 MARCO CONCEPTUAL ........................................................................ 28
2.4.1 Metas a alcanzar ................................................................................ 28
2.4.3 Enfoque .............................................................................................. 28
2.4.4 Necesidades a satisfacer .................................................................. 28
2.4.5 Controles ............................................................................................ 29
2.4.5 Servicios ............................................................................................. 29
3 DISEO METODOLGICO ...................................................................... 30
3.1 TIPO DE INVESTIGACIN DESCRIPTIVA ........................................... 30
3.2 ANLISIS ............................................................................................... 30
3.2.1 Metodologa para el anlisis ............................................................. 30
3.2.1.1 Anlisis orientado a objetos .......................................................... 30
3.2.1.2 Business Process Management .................................................... 31
3.3 DISEO .................................................................................................. 32
3.3.1 Diseo Lgico .................................................................................... 32
3.3.2 Diseo Lgico .................................................................................... 65
3.3.2.1 Diseo base de datos ..................................................................... 65
3.3.2.1.1 Aspectos fsicos de la base de datos ........................................ 65
4 ANLISIS DE RESULTADOS Y CONCLUSIONES ................................. 71
4.1 CODIFICACIN DEL PROGRAMA ....................................................... 71
4.2 BANCO DE PRUEBAS .......................................................................... 71
4.2.1 Pruebas de funcin............................................................................ 72
4.2.2 Pruebas modulares............................................................................ 73
4.2.3 Pruebas de Documentacin y Ayuda ............................................... 74
4.2.4 Pruebas de Seguridad y Control ...................................................... 75
4.2.5 Pruebas de Calidad............................................................................ 75
4.3 INFORME DE PRUEBAS ....................................................................... 76
5 CONCLUSIONES ...................................................................................... 83
6 RECOMENDACIONES.............................................................................. 85
BIBLIOGRAFA ............................................................................................ 86

6
INTRODUCCIN

Actualmente en la red se encuentra una gran gama de simuladores de


clculo de Intereses, de calculadoras intereses y software de Crditos, los
cuales estn limitados a solo calcular los Crditos dependiendo del inters, la
tasa y desplegar los resultados del monto total a pagar.

Anexo a estas aplicaciones se encontr varios formatos de Excel en los


cuales tambin se tiene la funcionalidad de calcular los Crditos, los cuales
trabajan con macros y subprogramas realizados en Visual Basic.

Todo este software que se ha encontrado en la bsqueda de aplicaciones


que realicen clculos y administracin de Crditos son software propietario y
demos de programas los cuales tienen funcionalidad limitada y son de alto
costo, excepto las calculadoras las cuales son un servicio que se presta de
forma gratuita.

Ahora en la actualidad existen empresas que comercializan con crditos y no


se posee con el software necesario para el clculo y la administracin de
esto ms que en Hojas de clculo, y aplicaciones que no cubren totalmente
sus necesidades, ya que no acompaan todo el proceso del Crdito, solo el
clculo de las cuotas y los intereses del Crdito con las limitantes de la hoja
de clculo y de los conocimientos de la persona que opera estos clculos.

7
1. ASPECTOS DE LA INVESTIGACIN

1.1. DESCRIPCIN DEL PROBLEMA

Las exigencias del mercado y los nuevos modelos econmicos que nacen a
diario, exigen de las compaas prestadoras de servicios financiaros, la
utilizacin de varias clases de software hechos a la medida, dependiendo de
los tipos de crdito que ofrezcan, que les permitan un mejor manejo y
desempeo de los intereses a cobrar, as mismo, que permitan administrar
los pagos que se realizan de la deuda.

En la Internet se pueden encontrar distintas clases de calculadoras de


intereses y plantillas en Excel, sin embargo, estos sistemas no contribuyen a
la elaboracin, manejo de datos y clasificacin de resultados, necesarios y
vitales para administracin eficiente de la informacin, haciendo difcil la
labor de una empresa, pues las bases de este software son clsicas y
simples.

Presentando este problema, se pudo evidenciar en la investigacin, que es


muy poco el software que ofrecen estas facilidades de forma integral,
adems, que lo pueda hacer a bajos costos. Esto implica a las empresas que
solicitan este tipo de software, que deban desarrollarlo por sus propios
medios o que lo tengan que comprar ya desarrollado, exponindose a
adquirir algo que en un futuro sea obsoleto, o peor, que no ofrezca lo que
realmente necesita la entidad.

El fin del desarrollo de este software, es ofrecer a las empresas prestadoras


de servicios crediticios, la administracin eficiente y a la medida, del clculo
de los crditos otorgados y ejecutados, el porcentaje de los intereses que se
deben cobrar y el monto y tiempo de los pagos.
8
1.2 JUSTIFICACIN DEL PROYECTO DE INVESTIGACIN

La importancia de este proyecto radica en que ofrece mltiples soluciones


para las entidades prestadoras de servicios financieros, que van desde
administrar eficientemente la lista de clientes, hasta calcular las tasas de
inters a las que estn sometidos los crditos.

1.2.1 Razones sociales

Entre las razones sociales que existen para la elaboracin de este proyecto,
se encuentran la importancia de suplir las necesidades de las empresas que
ofrecen crditos. Tambin brindar soluciones prcticas, confiables y
eficientes de un modelo novedoso que permitir gestionar y administrar los
recursos manejados a travs de crditos otorgados a los usuarios que los
soliciten.

1.2.2 Razones econmicas

Se busca crear el software con el fin de que las compaas que lo soliciten
puedan adquirirlo a bajos costos, ya que entre los pocos sistemas que se
encuentran en el mercado, los precios son elevados comparados con el que
se ofrece en este proyecto.

1.2.3 Razones tcnicas

La aplicacin podr ser utilizada en equipos con plataforma Windows, en el


lenguaje Visual Basic .NET 2005 y con bases de datos Microsoft SQL Server
2005 Express Edition, versin freeware, ya que estas herramientas son de la
misma casa de software, son compatibles entre ellas y son populares a nivel
computacional en la actualidad.

9
1.2.4 Razones organizacionales

Las compaas que cuenten con un software como este, tendrn la


posibilidad, de agilizar los procesos, de tener una estricta organizacin de
sus clientes, de saber con exactitud los crditos otorgados, los montos
cancelados, las tasas de inters a las que estn sometidos los crditos, entre
otros aspectos. As mismo, tendrn la facilidad de adquirirlo, pues los bajos
costos del software, son competitivos frente a los dems que se encuentran
en el mercado.

1.2.5 Razones metodolgicas

Realizar un software basndose en el clculo de intereses y amortizacin de


cuotas, teniendo como partida la matemtica financiera y la teora de clculo
de tasas de inters simple, compuesto y nominal, como base fundamental
para cumplir el propsito principal del proyecto.

1.3 DELIMITACIN

1.3.1 Espacial

El proyecto se realiza en las instalaciones de la Fundacin Universitaria


Konrad Lorenz, bajo la coordinacin del rea de investigaciones, en donde
se entregaran actas semanales para la asignatura Proyecto de Grado.

1.3.2 Cronologa

El proyecto se realiza en un lapso de tiempo de 4 meses, en los cuales se


cumplir con cada una de las fases a desarrollar en el tiempo determinado

10
para la entrega total del proyecto. Teniendo presente los entregables
peridicos al rea de investigacin.

1.3.3 Conceptual

En el proyecto se realiza la investigacin de matemticas financieras


enfatizndose en el clculo de intereses, rentabilidad y amortizacin de
cuotas, as mismo se realizara un estudio del manejo de la base de datos
Microsoft SQL Server 2005 Express Edition, ya que es una herramienta
nueva para el equipo de trabajo.

1.3.4 Financiera

Para la realizacin del proyecto se contar con los siguientes recursos fsicos
y tecnolgicos:

Equipo de computo $ 1500.000

Conexin Internet $ 160.000

Papelera $ 160.000

CDs $ 20.000

Servicio pblico Luz $ 48.000

Otros Gastos personales $100.000

1.3.5 Metodolgica

A nivel metodolgico se trabaj el modelo de Anlisis y Diseo orientado a


Objetos debido a la orientacin del proyecto y tambin por el lenguaje en el
cual se realizar, en todo el CVDS (Ciclo de Vida de Desarrollo de Software),
dado que esta metodologa tiene un conjunto de disciplinas que desarrollan y

11
modelan el software y facilitan la construccin de sistemas complejos a partir
de componentes.

Para la construccin y el modelado de todos los componentes del proyecto a


nivel de software se utiliz la herramienta UML, [1] las siglas corresponden a
Lenguaje Unificado de Modelado (Unified Modeling Language), la definicin
de UML se puede obtener descomponiendo las palabras que la conforman.

Lenguaje: como todo lenguaje cuenta con una sintaxis y una semntica, por
lo tanto al realizar cualquier modelo es necesario conocer una serie de reglas
de cmo es el manejo de los elemento s en el lenguaje

Modelado: con l se modelan los aspectos del mundo real, los cuales
permiten la correcta interpretacin y entendimiento de este.

Unificado: es unificado ya que agrupa varias tcnicas de modelado en un


solo modelo.

El proyecto se desarrollo a nivel de programacin siguiendo un patrn de


diseo, modelo vista controlador, el cual es bastante acorde con el modelo
de Anlisis y diseo orientado a objetos.

Patrn Modelo-Vista-Controlador

[2] Este patrn se utiliza en diseo de aplicaciones con sofisticadas


interfaces. El fin es realizar un diseo que separe la vista del modelo, esto
para aprovechar la reusabilidad de cdigo, de tal forma que el cambio en las
vistas no afecten el modelo del negocio y el modelo de datos, por otra parte
al utilizar la herramienta .Net para el proyecto, en futuro se podr llevar a la
web por medio de ASP.Net, utilizando la misma controladora y el mismo
modelo, para entender mejor cada uno de los componentes del modelo, se
describen a continuacin.
12
El modelo es el responsable de:

Acceder a la capa de almacenamiento de datos. Es ideal que el modelo sea


independiente del sistema de almacenamiento. Define las reglas de negocio.

El controlador es responsable de:

Recibe los eventos de entrada Contiene reglas de gestin de eventos, tanto


de la vista como del modelo.

Las vistas son responsables de:

Recibir datos del modelo y mostrarlos al usuario, as como hacer el proceso


contrario recibir los datos del usuario y registrarlos en el modelo para que
sean procesados y registrados,

1.4 OBJETIVOS

1.4.1 General

Desarrollar un Sistema de Informacin, para el clculo y administracin de


prstamos monetarios en el sector financiero, utilizando un modelo
metodolgico de Ingeniera de Software, que haga ms ptimos los procesos
organizacionales en las empresas.

1.4.2 Especficos

1.4.2.1 Realizar el levantamiento de informacin necesario, para la


gestin del proyecto a nivel conceptual, metodolgico, jurdico y
operacional, con respecto al clculo de intereses y administracin de
crditos financieros.
13
1.4.2.2 Elaborar el anlisis y diseo respectivo de la aplicacin, con los
lineamientos metodolgicos tanto de software, como del modelado del
negocio

1.4.2.3 Desarrollar la aplicacin con estndares abiertos, utilizando la


metodologa adecuada, con fases definidas.

1.4.2.4 Realizar la fase de pruebas de forma adecuada, con los


parmetros necesarios para asegurar el correcto funcionamiento de la
aplicacin tanto funcional como operativo.

1.4.2.5 Realizar la documentacin respectiva a los manuales de


instalacin, tcnico y de usuario.

1.4.2.6 Documentar todos los procesos desarrollados en el proyecto de


acuerdo a las normas de investigacin que estn descritas en el
mtodo cientfico.

1.5 PROPSITO

El propsito de este proyecto, es conseguir que las empresas prestadoras de


servicios financieros en el pas, tengan un software hecho a la medida de sus
necesidades, que les permita administrar de forma eficiente los recursos
otorgados a sus clientes por medio de crditos.

As mismo, se busca consolidar al interior de las compaas, la importancia


de tener una buena administracin de sus datos por medio de un programa
econmico que ofrece todas las ventajas de un sistema que est identificado

14
en otro nicho de mercado, y que por supuesto tenga unos costos ms
elevados.

15
2. MARCO TERICO

2.1 ANTECEDENTES

2.1.1. Histricos

A travs de la Historia se ha realizado todo tipo de manejo e intercambio de


dinero y bienes, siempre orientado a tener una ganancia o una rentabilidad al
realizar esta negociacin, aun yendo ms atrs en la historia se sabe del
intercambio de elementos perteneciente a las culturas, partiendo de las
necesidades que se presentaban en la poca. A continuacin se mencionara
algunos hechos principales en el trayecto de los crditos y el manejo de
tasas de Inters.

2.1.1.1 Los inicios: la roma imperial

[3] la historia de las tasas de inters se encuentra relacionada con la


creacin del dinero y as mismo de los bancos como segunda medida.

Las tasas de inters desde esta poca estuvieron ligadas a realizar un


receso en la actividad econmica en el presente para obtener una
recompensa econmica a futuro, lo que se conoce en esta poca como
ahorro, para la poblacin en esta poca era bastante llamativo tener
ganancias de su dinero solo con el hecho de dejar de consumir ahora, desde
la roma imperial, en el tema, hay dos conceptos que son bastante
importantes el capital y el tiempo, aparte de la tasa de inters con la cual se
realiza el prstamo, otro factor primordial es la ganancia que tiene el banco y
los gastos operativos que este representen.

16
En la roma antigua los intereses no se encontraban regulados como en esta
poca, pero cabe resaltar que exista la banca comercial y los prstamos a
inters, y retomando lo primero en ocasiones el deudor y su familia
quedaban sumidos a la esclavitud, o estas deudas eran cobradas con la vida,
para satisfaccin personal del prestamista, al no tener el dinero de
reembolso. En nuestra poca este hecho es el que conocemos como usura y
hay leyes que amparan a las personas que son acreedores de un prstamo,
pero en la poca de la roma antigua era practicado de los nobles con los
plebeyos sin ningn tipo de ley que protegiera el plebeyo y si con todos los
derechos sobre el noble.

2.1.1.2 La edad media

[3] Aunque a principios de la edad media la iglesia se vio aptica al prstamo


de dinero, llego a considerarlo hasta un pecado y tachaba el oficio de
prestamista como bajo, pero en la poca debido a la guerra y los grandes
costos que esta generaba, la iglesia empez a ceder espacio para los
prstamos, ya que varios de ellos Iban dirigidos a la iglesia, de hecho con el
amparo de la iglesia se hicieron una gran cantidad de fortunas.

De esta forma y con el apoyo de la iglesia surgi la justificacin ideolgica


para la burguesa, desde ese entonces, prestar dinero y trabajar en industrias
para obtener un beneficio era una actividad digna y con amparo de la ley

2.1.1.3 El renacimiento y el desarrollo del capitalismo

[3] Con el capitalismo, las tasas de inters fueron un papel bastante


importante en las transacciones regulares que se realizaban en esta poca,
ya que el crdito y el ahorro funcionaron en torno de la acumulacin de
capital, desde este entonces y con los antecedentes de la roma antigua y la
edad media, el estado comenz a regular las tasas de inters, de esta forma

17
tomo control el gobierno sobre los prestamos y los intereses siendo la primer
potencia en el capitalismo.

2.1.2 Legales

En la actualidad el Gobierno Nacional tiene establecidas varias normas que


hablan sobre el manejo de la captacin de dinero de las personas por parte
de las entidades bancarias en Colombia, entre las que se encuentra:

Ley 45 de 1990

[4] Por la cual se expiden normas en materia de intermediacin financiera,


se regula la actividad aseguradora, se conceden unas facultades y se dictan
otras disposiciones.

Ley 35 de 1993

[4] Por la cual se dictan normas generales y se sealan en ella los objetivos
y criterios a los cuales debe sujetarse el Gobierno Nacional para regular las
actividades financiera, burstil y aseguradora y cualquier otra relacionada
con el manejo, aprovechamiento e inversin de recursos captados del
pblico y se dictan otras disposiciones en materia financiera y aseguradora.

Ley 546 de 1999

[4] Por la cual se dictan normas en materia de vivienda, se sealan los


objetivos y criterios generales a los cuales debe sujetarse el Gobierno
Nacional para regular un sistema especializado para su financiacin, se
crean instrumentos de ahorro destinado a dicha financiacin, se dictan
medidas relacionadas con los impuestos y otros costos vinculados a la
construccin y negociacin de vivienda y se expiden otras disposiciones.

18
Ley 964 de 2005

[4] Por la cual se dictan normas generales y se sealan en ellas los objetivos
y criterios a los cuales debe sujetarse el Gobierno Nacional para regular las
actividades de manejo, aprovechamiento e inversin de recursos captados
del pblico que se efecten mediante valores y se dictan otras disposiciones.

Ley 510 de 1999

[5] Por la cual se dictan disposiciones en relacin con el sistema financiero y


asegurador, el mercado pblico de valores, las Superintendencias Bancaria y
de Valores y se conceden unas facultades.

Ley 550 de 1999

[6] Por la cual se establece un rgimen que promueva y facilite la


reactivacin empresarial y la reestructuracin de los entes territoriales para
asegurar la funcin social de las empresas y lograr el desarrollo armnico de
las regiones y se dictan disposiciones para armonizar el rgimen legal
vigente con las normas de esta ley.

2.1.3 Investigativos

Otro software que se encuentran en el mercado a nivel mundial, presentan


caractersticas similares a las que en este proyecto se estn desarrollando.

[9] Credit2Win Profesional 2007, este paquete de software es bastante


completo para la compaa que requiera llevar el control de los crditos
realizados, No los calcula, se basa en el ingreso de la informacin al sistema
y la generacin de mltiples reportes, en el momento solo est disponible en
el idioma Ingles, la parametrizacin es bastante compleja. Es bastante
completo en cuanto a los reportes se refiere, posee la opcin de crear
reportes personalizados por el usuario, el uso del software es complejo, no
19
es compatible con otros paquetes similares, la base de datos est inmersa
en el paquete, su fin no es solo el manejo de crditos sino generadores de
cartas de crdito, manejo de contactos, tareas de gerencia, planificacin
horaria y contactos, por lo cual pierde el nfasis de la amortizacin y
rendimiento en crditos financieros, la versin gratuita viene completa, pero
solo dura 7 das y es necesario comprarlo para seguirlo usando. Como se ve
en la figura se llevan la parametrizacin de la compaa los individuos, los
crditos, los contactos, los eventos, las tareas y los usuarios. Anexo a esto la
seguridad es mnima para el usuario

Tipo: Shareware, Costo: $495.00 US, Tamao: 12415 K.

20
[10] LoanSpread, es un software completo para el clculo de tasas de
intereses, se acerca bastante al presente proyecto, al tomar diversas tasas
por periodos, segn un valor indicado para el clculo de estos, maneja
diversas tasas de inters, tomando como base el valor de la tasa ingresada
al sistema, es una herramienta bastante completa en cuanto al clculo de
intereses, pero no administra los crditos que se realizan, ni lleva el control
de los pagos, est disponible solo en ingles, su uso es bastante sencillo, la
versin demo solo da la posibilidad de usarlo 10 veces, luego hay que
comprarlo, no tiene opcin de reportes, la informacin que se obtiene solo se
pude imprimir de forma plana, no tiene ningn tipo de seguridad anexa al
software, en la imagen se realizo un crdito de $ 5000000, tasa de inters de
8,75%, con calculo mensual y para pagos en 10 meses los cual arrojo la
cuota de 520270,59. Y muestra las tasas cercanas ascendente y
descendente, como los valores cercanos en mltiplos de mil, lo cual no es
muy til para la administracin solo para la simulacin de un crdito.

Tipo: Shareware, Costo: $29.95 US, Tamao: 1889 K

21
El proyecto que se est realizando tiene como propsito combinar las
funcionalidades de estos dos y generar las amortizaciones de crditos con
gran cantidad de opciones y la administracin de este a futuro y con pagos
completos de cuotas.

2.2 BASES TERICAS

2.2.1 Definicin de Crdito

[11] El crdito es un prstamo de dinero que el Banco o una entidad otorga a


su cliente, con el compromiso de que en el futuro, el cliente devolver dicho
22
prstamo en forma gradual (mediante el pago de cuotas) o en un solo pago y
con un inters adicional que compensa al Banco o a la entidad por todo el
tiempo que no tuvo ese dinero.

2.2.2 Tipos de Crditos

En el proyecto se manejan diversos tipos de crditos y se tiene la ventaja de


poder parametrizarlos segn la necesidad de la entidad que este prestando
el servicio. Aunque generalmente se diferencia solamente entre crditos
personales y crditos hipotecarios, tambin se distinguen los siguientes tipos
de crditos:

2.2.2.1 Crdito de libre inversin

Son utilizados al gusto del solicitante o para suplir una necesidad, no tiene un
fin en comn, por lo general la cantidad de dinero no es muy alta debido a
que no siempre es para generar alguna rentabilidad.

2.2.2.2 Leasing Habitacional

Es la opcin de financiar la compra de un inmueble o un activo en caso de


las compaas, mediante un contrato de arrendamiento financiero con opcin
de compra.

2.2.2.3 Crditos de estudios

Son Crditos dirigidos a estudiantes para financiar matriculas universitarias,


estudios de postgrado o estudio en el extranjero. Por lo general el pago de
estos crditos se realiza al finalizar los estudios y devengar un salario el
aspirante al crdito. Tambin en ocasiones este crdito se renueva
dependiendo de las calificaciones del aspirante.

23
2.2.2.4 Crditos hipotecarios

El Crdito hipotecario se caracteriza porque, aparte de la garanta personal,


se ofrece como garanta la hipoteca de un bien inmueble. En caso de no
devolver el Crdito la entidad financiera pasara a ser la propietaria de la
vivienda.

2.2.3 Inters

Corresponde a la renta que se paga por el uso de un capital durante un


determinado tiempo.

I=PF

Donde: P= capital, I= inters, F= cantidad acumulada

Esta cantidad recibe diferente nombres comerciales como inters, utilidad,


variacin del dinero en el tiempo, rentabilidad, entre otros.

2.2.3.1 Inters simple e inters compuesto

Para el proyecto el concepto de inters simple y compuesto son


fundamentales para la amortizacin de las cuotas debido al tiempo y al tipo
de pago que se va a realizar, ya que con esta informacin se realizara los
clculos de los inters basndose en estos tipos de inters, El inters simple
es el que se obtiene cuando los intereses producidos, durante todo el tiempo
del crdito, se deben nicamente al capital inicial. Por su parte, el inters
compuesto es el que se obtiene cuando al capital se le suman
peridicamente los intereses producidos. As al final de cada periodo el
capital que se tiene es el capital anterior ms los intereses producidos por
ese capital durante dicho periodo.

24
En el desarrollo se aplica los intereses compuestos para realizar el clculo de
las cuotas de los crditos por medio de la siguiente formula.

S = P(1+in)

Donde: P= valor crdito, i= tasa de inters, n= numero de cuotas

En el proyecto esta es la formula base para el clculo de intereses, en la


formula, el valor de n est reflejado en meses, por lo cual para realizar el
clculo es necesario expresarlo en das

2.2.4 Amortizacin

[12] Una amortizacin es una disminucin gradual o extincin gradual de


cualquier deuda durante un periodo de tiempo. La amortizacin de un crdito
se da cuando se realiza al prestamista un reembolso de dinero prestado en
un cierto plazo y con tasas de inters.

2.2.5 Rentabilidad

Cuando se menciona le termino de rentabilidad se hace referencia ms a las


ganancias que a las prdidas generadas por el crdito, en trminos del
proyecto son ganancias en dinero o la remuneracin recibida por el capital
invertido.

2.3 TEORAS GENRICAS BASADAS EN LA INGENIERA

Para el desarrollo del proyecto se utilizo un motor de base de Microsoft SQL


Server 2005 Express Edition, versin freeware, donde se realizo la base de
datos para el almacenamiento de la informacin, relacionada con los
25
crditos, los clientes, las cuotas y al parametrizacin que se realiza en el
sistema.

La aplicacin se realiz para plataformas Microsoft. El lenguaje de


programacin que se utilizo para el desarrollo de la aplicacin es Visual
Basic .NET.

Microsoft SQL Server 2005 Express Edition

El proyecto se realizo con esta base de datos por motivos de compatibilidad


con el lenguaje de programacin, por otra parte por motivos de trabajar con
una herramienta poderosa y nueva para el equipo de programacin, desde el
comienzo del proyecto se desconoca el manejo de la herramienta. [13] SQL
Server Express es un producto de base de datos gratis y fcil de usar,
basado en tecnologa SQL Server 2005. Est diseado para brindar una
simplicidad de uso, permitiendo instalaciones rpidas. La facilidad de uso
comienza con una instalacin robusta de la interface del usuario grafica
(GUI) que gua al usuario a travs del proceso de instalacin. Las
herramientas GUI que se encuentran incluidas sin cargo con SQL Server
Express, incluyen Express Manager (versin Alfa) y Computer Manager.
Estas herramientas simplifican las operaciones de bases de datos. El diseo
y desarrollo de aplicaciones de bases de datos se vuelve ms sencillo con la
integracin de Visual Studio. Con todas estas ventajas de interface de
usuario, en el transcurso del proyecto se present la necesidad de ejecutar
sentencias en SQL, por complejidad en la realizacin de procesos.

Visual Studio .NET

[14] Visual Studio .NET es un conjunto completo de herramientas de


desarrollo para la construccin de aplicaciones Web ASP, servicios Web
XML, aplicaciones para escritorio y aplicaciones mviles. Visual Basic .NET,
26
Visual C++ .NET, Visual C# .NET y Visual J# .NET utilizan el mismo entorno
de desarrollo integrado (IDE), que les permite compartir herramientas y
facilita la creacin de soluciones en varios lenguajes. Asimismo, dichos
lenguajes aprovechan las funciones de .NET Framework, que ofrece acceso
a tecnologas clave para simplificar el desarrollo de aplicaciones Web ASP y
servicios Web XML.

Visual Basic .NET 2005

El proyecto se desarrollo con este lenguaje de programacin, debido a la


metodologa de anlisis y diseo orientado a objetos, Visual Basic es la
opcin ms ptima para la realizacin del proyecto, por su robustez y
documentacin dirigida a los desarrolladores. [15] Microsoft Visual Basic
2005 es la evolucin del lenguaje Visual Basic que est diseado para
generar de manera productiva aplicaciones con seguridad y orientado a
objetos. Visual Basic permite centrar el diseo en Windows, el Web y
dispositivos mviles. Como con todos los lenguajes que tienen por objetivo
Microsoft .NET Framework, los programas escritos en Visual Basic se
benefician de la seguridad y la interoperabilidad de lenguajes.

2.3.1 Productos del Modelo

Al finalizar con el proyecto se deben entregar los siguientes productos:

Aplicacin
Documentacin del proceso de desarrollo
Manual del Usuario
Documentacin de la herramienta
Documentacin de las bases de datos
Estado del proyecto
Aspectos a mejorar
27
2.4 MARCO CONCEPTUAL

2.4.1 Metas a alcanzar

Lograr el desarrollo de un software completo que permita a las


entidades que tienen como base de su negocio la otorgacin de
crditos financieros a usuarios, el completo manejo de datos
importantes como la administracin de los crditos, el total de
intereses, entre otros.

Facilitar la adquisicin de un software de bajo costo que cumpla con


todos los requerimientos necesarios para poder administrar de manera
eficiente los recursos que tienen que ver con el otorgamiento de
crditos.

Ofrecer una opcin ms en el mercado que pueda competir contra


otros sistemas avanzados, que tenga como valor agregado, el
desarrollo a la medida de las necesidades de la empresa.

2.4.1 Enfoque

El presente proyecto de investigacin tiene un enfoque de tipo puntual, ya


que su delimitacin solo contempla la gestin de crditos, intereses sobre el
crdito, fechas de pago, administracin de clientes y pagos de cuotas
completas.

2.4.2 Necesidades a satisfacer

Este desarrollo solucionar los inconvenientes que tienen las empresas a la


hora de manejar todo lo referente a los crditos, pagos, clientes e intereses.
28
As mismo, solucionar los inconvenientes que presentan las entidades a la
hora de conseguir un software que supla realmente las necesidades que
tienen al pie de la letra.

2.4.3 Servicios

Ingresar, actualizar y eliminacin de los clientes

Ingresar, actualizar y eliminar tasas de inters

Ingresar, actualizar y eliminar requisitos por crditos

Ingresar, actualizar y eliminar tipos de crdito

Ingresar, actualizar y eliminar documentacin requerida por crditos

Registrar y eliminacin de crditos

Simulacin del crdito

Visualizacin del crdito

Pago de cuota completa

2.4.4 Controles

Para poder acceder al sistema, el software solicitar un usuario y una clave,


al cual valida entre dos perfiles de usuario y el administrador, el
administrador tiene todos los derechos sobre toda la funcionalidad de la
aplicacin y el asesor, perfil que no tendr acceso al formulario de usuarios y
tampoco podr parametrizar el modulo, pero si podr consultar la
parametrizacin existente.

29
3. DISEO METODOLGICO

3.1 TIPO DE INVESTIGACIN DESCRIPTIVA

El Presente proyecto de investigacin es de tipo descriptivo, ya que en la


investigacin se busca describir y especificar las propiedades ms
importantes de los procesos computacionales para lograr requerimientos
ptimos y acordes con las necesidades del clculo y el manejo de tasas de
inters, la amortizacin de crditos y la administracin de crditos por parte
de la empresa.

Adicionalmente en la investigacin, se describirn las caractersticas que


identifican los diferentes elementos y componentes de la investigacin.

3.2 ANLISIS

3.2.1 Metodologa para el anlisis

3.2.1.1 Anlisis orientado a objetos

El presente proyecto de investigacin se trabaja con metodologa AOO, en


donde se brindan los medios para mejorar la reutilizacin de los
componentes software. El objetivo de la programacin orientada a objetos es
permitir que los sistemas informticos sean fcilmente extendidos para
mejorar su funcionalidad, o reutilizados en otros sistemas que requieran sus
servicios.
30
Las caractersticas que integran la Programacin orientada a objetos son la:
abstraccin, encapsulacin, polimorfismo y herencia.

La herramienta de diseo ser UML, Lenguaje de Modelamiento Unificado


(UML - Unified Modeling Language) es un lenguaje grfico para visualizar,
especificar y documentar cada una de las partes que comprende el
desarrollo de software. La definicin de UML se encuentra ms detallada en
el numeral 1.3.5 Delimitacin metodolgica, del presente documento.

Se utilizan los siguientes diagramas para su conceptualizacin:

Diagrama de Casos de Uso: mostrando los procesos relevantes en un


escenario con sus respectivos actores.
Diagrama de secuencia: Muestran a los diferentes objetos y las
relaciones que pueden tener entre ellos, los mensajes que se envan
entre ellos.
Diagrama de actividades: Es un caso especial del diagrama de
estados. Muestra el flujo entre los objetos. Se utilizan para modelar el
funcionamiento del sistema y el flujo de control entre objetos.
Diagramas de clases: muestran las diferentes clases que componen
un sistema y cmo se relacionan unas con otras. Los diagramas de
clases son diagramas estticos porque muestran las clases, junto con
sus mtodos y atributos, as como las relaciones estticas entre ella

3.2.1.2 Business Process Management

Para mejor anlisis del ciclo de negocio utilizado al realizar crditos


financieros se utilizo la metodologa empresarial BMP, as mismo se quiere
representar como es el proceso de crditos en el sistema de informacin.
[16] Business Process Management es la metodologa empresarial cuyo

31
objetivo es mejorar la eficiencia a travs de la gestin sistemtica de los
procesos de negocio, que se deben modelar, automatizar, integrar,
monitorear y optimizar de forma contina.

A travs del modelado de las actividades y procesos puede lograrse un mejor


entendimiento del negocio y muchas veces esto presenta la oportunidad de
mejorarlos. La administracin de los procesos permite asegurar que los
mismos se ejecuten eficientemente, y la obtencin de informacin que luego
puede ser usada para mejorarlos. Es a travs de la informacin que se
obtiene de la ejecucin diaria de los procesos, que se puede identificar
posibles ineficiencias en los mismos, y actuar sobre las mismas para
optimizarlos.
administrador

Crear usuarios

Parametrizar
aplicacion
Asesor comercial

Ver disponibilidad Ejecutar


Aprobar credito
simulacin

Registrar pago
Recibir solicitud

Informar
Consultar cuotas Reporte a cliente
documentacin

Cancelar crdito
SI

Pagar cuotas
Cliente

Aceptar credito

Solicitar crdito
NO

3.3 DISEO

3.3.1 Diseo Lgico

El sistema a desarrollar va a aplicar el DOO (Diseo Orientado a Objetos).


Para tal fin presentaremos los siguientes diagramas:
32
Diagrama de Casos de Uso: Muestran los casos de uso, actores y sus
relaciones. Muestra quien puede hacer que y relaciones existentes entre
acciones (casos de uso). Son muy importantes para modelar y organizar el
comportamiento del sistema.

Describen qu hace el sistema desde el punto de vista de un observador


externo. Ponen nfasis en qu hace el sistema, no en cmo lo hace.

33
Caso de uso anlisis y desarrollo de un sistema de informacin para le
calculo y la administracin de crditos a nivel financiero

34
Caso de Uso: parametrizar aplicacin.

Nombre: Parametrizar aplicacin.

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
Representa la parametrizacin que se debe realizar al modulo, antes de ser
usado por el asesor.

Actores:
Administrador.

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.

Flujo Normal:
El administrador parametriza el sistema, segn la normalizacin y las
necesidades del modulo.

Flujo Alternativo:
El sistema realiza la validacin de la parametrizacin, con respecto a los
datos parametrizados.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se puede continuar con el registro de clientes y el registro de los crditos.

35
Caso de Uso: Registrar usuarios

Nombre: Registrar usuarios

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
Representa el ingreso de usuarios al sistema, los cuales tienen, una
contrasea y un perfil de asesor o de administrador para interactuar con el
sistema.

Actores:
Administrador.

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.

Flujo Normal:
El administrador ingresa los usuarios al sistema, segn las necesidades del
modulo y los campos a solicitar.

Flujo Alternativo:
El sistema realiza la validacin de con respecto a los usuarios ingresados y a
los usuarios que ya estn registrados en el sistema para no permitir
duplicidad.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se puede continuar con el registro de clientes y el registro de los crditos.

36
Caso de Uso: Registrar cliente

Nombre: Registrar cliente

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
Representa el ingreso de clientes al sistema. Con todos los datos necesarios
para la gestin del crdito e informacin necesaria de un cliente.

Actores:
Asesor comercial

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.

Flujo Normal:
El asesor comercial ingresa los clientes al sistema, registrando todos los
campos solicitados por el modulo.

Flujo Alternativo:
El sistema realiza la validacin de los campos con respecto al tipo de dato
que se debe registrar.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se puede continuar con el registro de los crditos y la simulacin.

37
Caso de Uso: Solicitar Crdito

Nombre: Solicitar Crdito

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
El cliente solicita el crdito, segn las necesidades de este, especificando,
cantidad, numero de cuotas, fecha inicial de pago, tipo de pago, el asesor
comercial le informa las tasas de crdito, verifica disponibilidad e informa al
cliente los documentos necesarios para el crdito

Actores:
Cliente, asesor comercial

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.
La aplicacin debe estar parametrizada
El cliente debe estar registrado en el sistema
Los documentos del tipo de crdito deben estar registrados en el sistema

Flujo Normal:
El asesor comercial ingresa los datos del crdito para su registro, el crdito
queda en estado registrado.

Flujo Alternativo:
El sistema realiza la validacin de los campos con respecto al tipo de dato
que se debe registrar al sistema.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se realizar la simulacin y se cambia de estado el crdito.

38
Caso de Uso: Ejecutar simulacin

Nombre: Ejecutar simulacin

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
El asesor ejecuta la simulacin del crdito para informar al cliente las cuotas
del crdito y las fechas de pago

Actores:
Asesor comercial

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.
El crdito debe estar registrado.

Flujo Normal:
El asesor comercial ejecuta la simulacin del crdito, si es necesario
especificar el valor de la cuota, la ingresa en el campo

Flujo Alternativo:
El sistema realiza la validacin de los campos con respecto al tipo de dato
que se debe registrar y la validacin de los datos necesarios para realizar la
simulacin.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se realiza la consulta de las cuotas del crdito y la aprobacin o rechazo de
este.

39
Caso de Uso: Aprobar cancelar crdito

Nombre: Aprobar cancelar crdito

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
El asesor comercial realiza la aprobacin del crdito, cuando el cliente
entregue los documentos necesarios e informe del inters de tomar el
creidito

Actores:
Asesor comercial

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.
El crdito debe estar registrado, simulado.

Flujo Normal:
El asesor comercial realiza el proceso de cabio de estado del crdito
cambiando de estado registrado a estado cancelado o aprobado

Flujo Alternativo:
El sistema realiza la validacin de los campos con respecto al tipo de dato
que se debe registrar.

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se realiza el proceso de registrar pago

40
Caso de Uso: Registrar pago

Nombre: Registrar pago

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
El cliente realiza el pago en la entidad bancaria o directamente del pago e
informa al asesor comercial del pago realizado, el asesor comercial ingresa al
formulario de registrar pago, selecciona el crdito y la cuota y registra el pago
ejecutando el proceso

Actores:
Asesor comercial, cliente

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.
El crdito debe estar registrado, simulado y aprobado.

Flujo Normal:
El asesor comercial realiza el proceso de pago de la cuota segn la
informacin del pago por parte del cliente o la realizacin del pago en la
entidad.

Flujo Alternativo:
El sistema realiza la validacin de la cuota a pagar

Pos condiciones:
Los Datos han sido almacenados en el sistema
Se realiza el proceso del pago de cuotas siguientes.

41
Caso de uso parametrizar modulo

Caso de uso: Parametrizar el modulo.

Nombre: Parametrizar el modulo

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
Muestra la parametrizacin necesaria antes de usar el modulo para generar
simulaciones de crditos, aprobacin de crditos y pago de cuotas. Es
necesario parametrizar los tipos de crdito y la disponibilidad de dinero por
cada crdito, las tasas de inters que se van a manejar y por ltimo todos los
documentos y la cantidad a solicitar para la aprobacin de los crditos.

Actores:
Administrador

Pre condiciones:
El sistema debe estar Instalado.
La conexin con la base de datos debe estar correctamente.

Flujo Normal:

42
El administrador parametriza los tipos de crditos.
El administrador parametriza las tasas a calcular.
El administrador parametriza los documentos a solicitar.

Flujo Alternativo:
El sistema debe ser parametrizado con anterioridad por el administrador,
para realizar una correcta simulacin del crdito.

Pos condiciones:
La parametrizacin queda registrada en el sistema.

43
Cado de uso solicitar credito

Solicitar crdito

informar tipo de
credito

uses

Solicitar valor
uses

verificar
disponibilidad

Asesor comercial informar cantidad Cliente


ingresar tasa de de cuotas
interes anual del creito

uses uses

Informar tipo de
pago

uses

Ejecutar simulacin

Caso de uso: Solicitar crdito

Nombre: Solicitar crdito

Autor: Fabin Andrs Cuervo Fajardo

Fecha: 20/03/2008

Descripcin:
Muestra la solicitud del crdito, por parte del cliente y el registro del mismo
44
crdito por parte del asesor comercial, quien luego de recibir toda la
informacin necesaria para el crdito lo procesa para obtener la simulacin
de los valores y las fechas de la amortizacin del crdito solicitado.

Actores:
Asesor comercial, cliente.

Pre condiciones:
El sistema debe estar Parametrizado.

Flujo Normal:
El cliente solicita el crdito.
El asesor comercial ingresa al sistema la informacin del cliente y del crdito
que est solicitando.
Ejecuta la simulacin
Entrega al cliente la informacin de forma verbal y el reporte del crdito.

Flujo Alternativo:
El sistema debe ser parametrizado con anterioridad por el administrador,
para realizar una correcta simulacin del crdito.
La informacin debe estar completa, para la correcta simulacin del crdito

Pos condiciones:
La simulacin queda registrada en el sistema, para aprobar el crdito.
El cliente queda registrado en el sistema para futuros trmites.

Diagrama de secuencia: Muestran a los diferentes objetos y las relaciones


que pueden tener entre ellos, los mensajes que se envan entre ellos. Son
dos diagramas diferentes, que se puede pasar de uno a otro sin prdida de
informacin, pero que nos dan puntos de vista diferentes del sistema. En
resumen, cualquiera de los dos es un Diagrama de Interaccin.

45
Parametrizar tasas

En el diagrama se observa como es el procedimiento para la parametrizacin


de las tasas en el sistema, el actor encargado de esta parametrizacin es el
administrador ingresando la informacin por formulario, recibindola
informacin la clase controladora, evaluando la solicitud y continuando con el
objeto tasas, llenndolo para as llevarlo a la clase tasas_bd insertarlo en la
base de datos a travs de la clase conexin_bd, esta clase abre la conexin
ejecuta el comando y cierra la conexin.

46
Parametrizar requisitos

En el diagrama se observa como es el procedimiento para la parametrizacin


de los requisitos en el sistema, requisitos los cuales dependen de los crditos
y los documentos que deben haber sido ingresados con anterioridad en el
sistema, el actor encargado de esta parametrizacin es el administrador
ingresando la informacin por formulario, recibindola informacin la clase
controladora, evaluando la solicitud y continuando con el objeto requisitos,
llenndolo para as llevarlo a la clase requisitos_bd insertarlo en la base de
datos a travs de la clase conexin_bd, esta clase abre la conexin ejecuta
el comando y cierra la conexin.

47
Parametrizar documentos

form_parametrizardocumentos Creditos documentos documentos_bd conexion-bd

iddocumento

descripcin

Cantidad
BIngresarDocumento_Click_1()

Administrador registar_documentos()
setdocumentos()

documento

setdocumentos()
ejecutar()

abrirconexion()

cerrarconexion()

En el diagrama se observa como es el procedimiento para la parametrizacin


de los documentos en el sistema, el actor encargado de esta parametrizacin
es el administrador ingresando la informacin por formulario, recibindola
informacin la clase controladora, evaluando la solicitud y continuando con el
objeto documentos, llenndolo para as llevarlo a la clase documentos_bd
insertarlo en la base de datos a travs de la clase conexin_bd, esta clase
abre la conexin, ejecuta el comando y cierra la conexin.

48
Parametrizar clientes

En el diagrama se observa como es el procedimiento para la parametrizacin


de los clientes en el sistema, el actor encargado de esta parametrizacin es
el asesor comercial ingresando la informacin por formulario, recibindola
informacin la clase controladora, evaluando la solicitud y continuando con el
objeto clientes, llenndolo para as llevarlo a la clase clientes_bd insertarlo
en la base de datos a travs de la clase conexin_bd, esta clase abre la
conexin, ejecuta el comando y cierra la conexin.

49
Registrar crditos

En el diagrama se observa como es el procedimiento para la el sistema,


para el registro de los crditos el modulo se debe encontrar totalmente
parametrizado, el actor encargado de esta parametrizacin es el asesor
comercial ingresando la informacin por formulario, recibindola informacin
la clase controladora, evaluando la solicitud y continuando con el objeto
registrocredito, llenndolo para as llevarlo a la clase registrocredito bd
insertarlo en la base de datos a travs de la clase conexin_bd, esta clase
abre la conexin, ejecuta el comando y cierra la conexin.

50
Parametrizar usuarios

En el diagrama se observa como es el procedimiento para la parametrizacin


de los usuarios en el sistema, el actor encargado de esta parametrizacin es
el administrador ingresando la informacin por formulario, recibindola
informacin la clase controladora, evaluando la solicitud y continuando con el
objeto usuarios, llenndolo para as llevarlo a la clase usuarios_bd insertarlo
en la base de datos a travs de la clase conexin_bd, esta clase abre la
conexin, ejecuta el comando y cierra la conexin.

51
Validacin de usuarios

form_ingreso seguros usuarios_bd conexion bd

usuario

password

BIngresar_Click_1()
upd_activoNO()
usuario
updateactivoNO()
ejecutar()

abrirconexion()

cerrarconexion()

validaringreso()
validaringreso()

getusuarioid()
Consultar

abrirconexion()

1 boolean: ingresar boolean: ingresar dataset cerrarconexion()

upd_activo()
updateactivo()
ejecutar()

abrirconexion()

1: Este procedimiento lo realiza en un maximo 3 veces de no ingresar los datos correctos validadando los datos con el objeto usuario cerrarconexion()

El usuario al ingresar al sistema ingresa en los campos el usuario y la


contrasea, al ejecutar el botn de Ingresar, el sistema actualiza la tabla de
usuarios en el campo activo con el estado No, luego valida con el usuario y
la contrasea que el usuario exista o no en el sistema, este ciclo lo realiza 3
veces en el cual se al ingresar el proceso actualiza en la base de datos el
campo activo en estado SI.

52
Simular crdito

El diagrama representa la simulacin del crdito dependiendo de las cuotas y las tasas.

53
Diagrama de Clases: Un diagrama de clases es un tipo de diagrama esttico que
describe la estructura de un sistema mostrando sus clases, atributos y las
relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso
de anlisis y diseo de los sistemas, donde se crea el diseo conceptual de la
informacin que se manejar en el sistema, y los componentes que se encargaran
del funcionamiento y la relacin entre uno y otro.

Parametrizar tasas
1

creditos
+tas : tasas
+tas_bd : tasas_bd
<<local>>
+registar_tasas()
+gettasa()
1 +gettasaid()
+del_tasas() frm_parametrizartasas
+udp_tasas() +cred
1 +cargando : Boolean
1
1 +llenardatagrid()
tasas_bd +llenarcombocox()
<<parametter>> +parametrizartasas_Load()
+conexion : conexion_bd +BEliminarTasa_Click()
+settasa() +BActualizar_Click()
+gettasa() +CActualizarTasa_SelectedIndexChanged()
+gettasaid() : tasas
+deltasa() 1
+updatetasa()

1
1
1
<<local>>
tasas
1 +idtasa : String
+descripcion : String
+valor : Double
conexion_bd
+fecha : Date
+con : Object +settasas()
+abrirconexion() +Getidtasa() : String
+cerraconexion() +Getdescripcion() : String
+ejecutar() +Getvalor() : Double
+consultar() +Getfecha() : Date
Parametrizar documentos

55
Parametriza requisitos
1

creditos
+req : requisitos
+req_bd : requisito_bd
<<local>> +registar_tipocredito()
+getrequisito()
1 +getrequisitosidcredito()
+getrequisitoid() frm_parametrizarrequisitos
+del_requisito() +cred
+udp_requisito() +cargando : Boolean
1
1 +llenardatagrid()
+llenarcombocox()
requisito_bd 1
+parametrizarrequisitos_Load()
+conexion : conexion_bd +BEliminarrequisitos_Click()
1 +BIngresarrequisito_Click()
+setrequisito()
+CActualizarrequisito_SelectedIndexChanged()
+getrequisito()
+BIngresarrequisitos()
+getrequisitoid() : requisitos
+delrequisito()
+updaterequisito()

1
1
<<local>>
requisitos
1 +idrequisito : String
+iddocumento : String
+idcredito : String
conexion_bd
+formalaboral : String
+con : Object +setrequisitos()
<<parametter>>
+abrirconexion() +Getiddocumento() : String
+cerraconexion() 1 +Getidcredito() : String
+ejecutar() +Getidrequisito() : String
+consultar() +getformalaboral() : String

56
Parametrizar tipo crdito
1

creditos
+tcr : tipocredito
+tcr_bd : tipocredito_bd
<<local>>
+registar_tipocredito()
+gettipocredito()
1 +gettipocreditoid() frm_parametrizartipocredito
+del_tipocredito()
+udp_tipocredito() +cred
1 +cargando : Boolean
1 +llenardatagrid()
1 +llenarcombocox()
tipocredito_bd +parametrizartipocredito_Load()
+conexion : conexion_bd +BEliminarrtipocredito_Click()
+BIngresartipocredito_Click()
+settipocredito() 1 +CActualizartipocredito_SelectedIndexChanged()
+gettipocredito()
+Bingresartipocredito()
+gettipocreditoid() : tipocredito
+deltipocredito()
+updatetipocredito()

1
1
<<local>>
tipocredito
1
+idcredito : String
+descripcion : String
conexion_bd +presupuesto : Double
+con : Object <<parametter>> +setrequisitos()
+abrirconexion()
1 +Getidcredito() : String
+cerraconexion() +Getdescripcion() : String
+ejecutar() +Getpresupuesto() : Double
+consultar()

57
Simular crdito e Ingresar cuotas

creditos
+cuo : cuotas
+cuo_bd : cuota_bd
-sim : simular credito
+registar_cuotas()
+getcuotas()
+getcuotas()
+getcuotasid()
+del_cuotas() frm_simulacion
1 +udp_cuotas()
+simularcredito() 1 +cred
+cargando : Boolean
cuota_bd +llenardatagrid()
1 +llenarcombocox()
+conexion : conexion_bd +parametrizarcuotas_Load()
+setcuotas() +BIngresarcuotas()
+getcuotas()
+getcuotaid() : cuotas
+delcuota()
+updatecuota()

1
<<parametter>> <<local>>
1
1

1
1 simular credito
1 +cuota : Integer
conexion_bd cuotas
+dias : Integer
+con : Object +idcredito : String +diasdate : Integer
+pago : String +capital : Double
+abrirconexion()
+capital : Double +interesperiodo : Double
+cerraconexion()
+interes : Double +intreres : Double
+ejecutar()
+valcuota : Double +valcuota : Double
+consultar()
+saldo : Double +saldo : Double
+mora : Double +mora : Double
1 -fecha : Date -fechapago : Date
+setcuota() +simualrcredito()
+Getidcredito() : String
+Getpago() : String
<<parametter>> 1
+Getcapital() : Double
1
+GetValcuota() : Double
+Getsaldo() : Double
+Getmora() : Double
+Getfecha() : Date

1
1

tasas
tasas_bd
+idtasa : String
+conexion : conexion_bd
1 <<local>> +descripcion : String
+settasa() +valor : Double
+gettasa() +fecha : Date
+gettasaid() : tasas +settasas()
+deltasa() +Getidtasa() : String
+updatetasa() +Getdescripcion() : String
+Getvalor() : Double
+Getfecha() : Date

58
Parametrizar clientes
1

creditos
+cli : clientes
+cli_bd : cliente_bd
<<local>> +registar_clientes()
+getclientes()
1 +getclientes()
+getclientesid() frm_parametrizarclientes
+del_clientes() +cred
1 +udp_clientes() +cargando : Boolean
1 +llenardatagrid()
+llenarcombocox()
cliente_bd 1 +parametrizarclientes_Load()
+conexion : conexion_bd +BIngresarclientes()
+BActualizarclientes()
+setcliente()
+BEliminarclientes()
+getcliente()
+CActualizarcliente_SelectedValueChanged()
+getclienteid() : clientes
+delcliente()
+updatecliente() 1

<<local>>
1
1
clientes
conexion_bd
+idcliente : String
+con : Object +nombrebusqueda : String
+abrirconexion() +primernombre : String
+cerraconexion() +segundonombre : String
+ejecutar() +primerapellido : String
+consultar() +segundoapellido : String
+direccion : String
+telefono : String
<<parametter>>
+movil : String
+fax : String
+email : String
1 +vehiculo : String
+vivienda : String
+profesion : String
+formalaboral : String
+fechanacimiento : Date
+setcliente()
+Getidcliente() : String
+Getnombrebusqueda() : String
+getprimerapellido() : String
+getsegundoapellido() : String
+getprimernombre() : String
+getsegundonombre() : String
+getdireccion() : String
+gettelefono() : String
+getmovil() : String
+getfax() : String
+getemail() : String
+getvehiculo() : String
+getvivienda() : String
+getprofesion() : String
+getformalaboral() : String
+Getfechanacimiento() : Date

59
Registrar Crditos
1

creditos
+rcr : registrocredito
+rcr_bd : registrocredito_bd
<<local>>
+registrocredito()
+getregistrocredito()
1
+getregistrocreditoid() frm_registrocredito
+del_registrocredito()
+udp_registrocredito() +cred
1 +cargando : Boolean
1 +llenardatagrid()
1 +llenarcombocox()
registrocredito_bd +registrocredito_Load()
+conexion : conexion_bd +Bregistrocredito()
+BActualizarregistrocredito()
+setregistrocredito()
+BEliminarregistrocredito()
+getregistrocredito()
+Cregistrocredito_SelectedValueChanged()
+getregistrocreditoid() : registrocredito 1
+delregistrocredito() 1
+updateregistrocredito()
registrocredito
1 +idcredito : String
+cliente : String
+nombre : String
<<local>> +tasa : String
+estado : String
1 <<parametter>>
+tipocredito : String
+periodo : String
conexion_bd +formapago : String
+valorsolicitado : Integer
+con : Object
+valoraprobado : Integer
+abrirconexion() +numerocuotas : Integer
+cerraconexion() +fechainicial : Date
+ejecutar() +fechafinal : Date
+consultar() +fechapresupuesto : Date
+tea : Double
+setregistrarcredito()
+Getidcredito() : String
1 +Getformapago() : String
+Getcliente() : String
+getnombre() : String
+gettasa() : String
+getperiodo() : String
+gettipocredito() : String
+getestado() : String
+Gettea() : Double
+Getvalorsolicitado() : Integer
+Getvaloraprobado() : Integer
+getnumerocuotas() : Integer
+Getfechafinal() : Date
+Getfechainicial() : Date
+Getfechapresupuesto() : Date

60
Diagrama de clases Usuarios

frm_principal
+cred : creditos
+ClientesToolStripMenuItem_Click()
+ExamenesToolStripMenuItem_Click()
+SoliToolStripMenuItem_Click()
+ExamenesClienteToolStripMenuItem_Click() frm_Ingreso
+ConsultarExamenesPorPacienteToolStripMenuItem_Click() 1
+cred : creditos
+RechazarAprobarSolicitudToolStripMenuItem_Click() +ingresar : Boolean
+UsuariosToolStripMenuItem_Click() -contador : Integer
+principal_FormClosed()
+BIngreso_Click()
+ResultadosExamenesToolStripMenuItem_Click()
+ConsultarSolicitudesToolStripMenuItem_Click()

1 1
1

creditos
+usr : usuarios
+usrbd : usuarios_bd
1 +registar_usuarios()
<<local>>
+getusuarios()
+getusuairoactivo()
1 1 +getusuarioid()
+del_clientes() frm_usuario
+udpactivo()
+udpactivono() +cre : creditos
1 +cargando : Boolean
usuarios_bd +llenardatagrid()
+conexion : conexion_bd 1 +llenarcombocox()
+usuarios_Load()
+setusuario()
+BIngresarusuario()
+getusuario() 1 +BEliminarclientes()
+getusuarioid() : usuarios
+delusuario()
+updateactivo() <<parametter>>
+updateactivoNO()
+getusuarioactivo() 1

<<local>> 1 usuarios
+usuario : String
+nombre : String
1 +apellido : String
+Identificacion : String
1 +password : String
conexion_bd +perfil : String
+con : Object +setusuario()
+abrirconexion() +Getusuario() : String
+cerraconexion() +Getnombre() : String
+ejecutar() +getapellido() : String
+consultar() +getidentificacion() : String
+getpassword() : String
+getperfil() : String

61
Diagramas de colaboracin: Esencialmente es un diagrama que muestra
interacciones organizadas alrededor de los roles. A diferencia de los diagramas de
secuencia, los diagramas de colaboracin muestran explcitamente las relaciones
de los roles. Por otra parte, un diagrama de colaboracin no muestra el tiempo
como una dimensin aparte, por lo que resulta necesario etiquetar con nmeros
de secuencia tanto la secuencia de mensajes como los hilos concurrentes.

Muestra cmo las instancias especficas de las clases trabajan juntas para
conseguir un objetivo comn.

Implementa las asociaciones del diagrama de clases mediante el paso de


mensajes de un objeto a otro. Dicha implementacin es llamada "enlace".

62
Diagrama de colaboracin simulacin del crdito

form simulacion

c ion
ula
sim
1.

2.1. getregistrocreditoid() 3. Consultar

Creditos registrarcredito Conexion bd


2.2
s im
u lar
c red
()
it o() ai d tasasbd
ttas
. ge
4.1

simulacion

4 .3
.s
etc
uo
tas
as
ot
tcu
s e
2.
4.

cuotas cuotasbd

63
Diagrama de colaboracin ingreso usuarios

2 .2
.g

3.1. e
et
us
u

jec
ar
ioi

utar
d(
)

64
3.3.2 Diseo lgico

3.2.2.1 Diseo Base de Datos

3.2.2.1.1 Aspectos fsicos de la base de datos

clientes registrocredito
PK idcliente PK,FK1 idcredito tasas

nombrebusqueda cliente PK idtasa


primernombre nombrebusqueda
segundonombre valorsolicitado descripcion
primerapellido valoraprobado fecha
segundoapellido fechapresupuesto valor
Direccion fechainicial FK1 idcredito
telefono fechafinal
movil tipocredito
fax numerocuotas
email periodo
vehiculo tea
vivienda tasa
profesion estado
fechanacimiento formapago
formalaboral

tipocreditos

PK,FK1 idcredito

descripcion
presupuesto
FK2 idrequisito
cuotas
usuarios
idcredito
requisitos PK usuario
documentos cuota
PK idrequisito password fechapago
PK iddocumento perfil capital
FK1 iddocumento activo interes
descripcion formalaboral nombre valcuota
cantidad idcredito apellido saldo
identificacion mora
pago

Entidades

Tipos de crdito

tipocreditos
PK,FK1 idcredito

descripcion
presupuesto
FK2 idrequisito

65
Clientes

Registro crdito

registrocredito
PK,FK1 idcredito

cliente
nombrebusqueda
valorsolicitado
valoraprobado
fechapresupuesto
fechainicial
fechafinal
tipocredito
numerocuotas
periodo
tea
tasa
estado
formapago

66
Cuotas

Tasas

Documentos

Requisitos

67
Usuarios

usuarios
PK usuario

password
perfil
activo
nombre
apellido
identificacion

Tipos de datos y longitud

Clientes

idcliente char(10) NOT NULL


nombrebusqueda Text NULL
primernombre Text NOT NULL
segundonombre Text NULL
primerapellido Text NOT NULL
segundoapellido Text NULL
Direccion Text NOT NULL
telefono Text NOT NULL
Mvil Text NULL
Fax Text NULL
Email Text NULL
vehiculo Text NULL
vivienda Text NULL
profesion Text NULL
fechanacimiento Datetime NULL
formalaboral Text NULL

Cuotas

idcredito char(10) NULL


Cuota int NULL
fechapago datetime NULL
capital numeric (18, 2) NULL
interes numeric (18, 2) NULL
68
valcuota numeric (18, 2) NULL
Saldo numeric (18, 2) NULL
Mora numeric (18, 2) NULL
Pago Text NULL

Documentos

Iddocumento char(10) NOT NULL


descripcion Text NULL
Cantidad Int NOT NULL

Registrocredito

Idcredito char(10) NOT NULL


Cliente char(10) NOT NULL
Nombrebusqueda Text NULL
Valorsolicitado Int NULL
Valoraprobado Int NULL
fechapresupuesto datetime NULL
Fechainicial datetime NULL
Fechafinal datetime NULL
Tipocredito Text NULL
Numerocuotas Int NULL
Periodo Text NULL
Tea Float NULL
Tasa Text NULL
Estado Text NULL
Formapago Text NULL

Requisitos

Idrequisito char(10) NOT NULL


Iddocumento char(10) NULL
Formalaboral text NULL
Idcredito char(10) NULL

69
Tasas

Idtasa char(10) NOT NULL


descripcion Text NULL
Fecha datetime NULL
Valor Float NOT NULL

Tipocreditos

idcredito char(10) NOT NULL


descripcion Text NULL
presupuesto Int NOT NULL

Usuarios

usuario char(10) NOT NULL


password Text NULL
Perfil Text NULL
Activo char(10) NULL
nombre Text NULL
apellido Text NULL
identificacion Text NULL

70
4. ANLISIS DE RESULTADOS Y CONCLUSIONES

4.1 CODIFICACIN DEL PROGRAMA

Es el proceso de trascripcin del diseo funcional realizado en UML (Diagramas


de Casos de Usos, Diagramas de Secuencia, Diagramas de Actividades,
Diagramas de Colaboracin y diagramas de Estado) a Visual Basic .NET, para la
creacin de las interfaces, diseo y pruebas del monitoreo del aplicativo.

Anexo al paquete de instalacin, en el CD de entrega formal, se encuentra el


cdigo fuente de la aplicacin, el instalador de SQL server 2005 Express, el script
en SQL de la base de datos y el archivo .bak para ser instalado e importado en
SQL. Tambin se encuentra en el CD el ejecutable de la aplicacin para correrlo
sin necesidad de instalar el paquete.

4.2 BANCO DE PRUEBAS

Las pruebas realizadas al desarrollo al finalizar fueron pruebas de caja negra


debido a la carencia de un agente de pruebas de funcionamiento del desarrollo y
una entidad de implementacin del desarrollo, donde se haran pruebas de
integracin, pero no se llego a este punto del proceso del ciclo de vida de
desarrollo de software, el formato que se muestra en las pruebas realizadas fue
facilitado por el docente Gustavo Herazo, el cual ha sido aplicado en otros
procesos de investigacin y en construccin de software

[17] Las pruebas de caja negra se centran en lo que se espera de un mdulo, en


intentan encontrar casos en que el mdulo no se atiene a su especificacin. Por

71
ello se denominan pruebas funcionales, y el encargado de las pruebas se limita a
suministrarle datos como entrada y estudiar la salida, sin preocuparse de lo que
pueda estar haciendo el mdulo por dentro.

Las pruebas de caja negra estn especialmente indicadas en aquellos mdulos


que van a ser interfaz con el usuario.

4.2.1 Pruebas de funcin

Objetivo: Verificar que cada una de las funciones cumpla con el propsito para el
cual fueron diseados.

Criterio de decisin: De acuerdo a los requerimientos internacionales que exige


el modelo del CVDS, dentro de su primera prueba de funcionalidad, exige la
verificacin de la validacin de los caracteres de digitacin, entre ellos estn las
letras, los nmeros y los espacios en blanco en cada uno de los campos que se
consideran obligatorios en el diseo de los respectivos formularios.

PRUEBAS SI NO

La funcin de validacin de letras es correcta X

La funcin de validacin de nmeros es correcta X

La rutina de validacin de espacios en blanco es correcta X

La siguiente pantalla prueba la validacin de espacios en blanco, en campos que


son de carcter obligatorios para la base de datos, esta validacin se est
realizando desde la aplicacin, para no involucrar a la bases de datos en la
generacin de mensajes de errores.

72
4.2.2 Pruebas modulares

Objetivo: Deteccin de errores y verificacin de la integracin de los mens.

Criterio de decisin: Las pruebas modulares corresponden al segundo item


mencionado en la aplicacin de pruebas de la metodologa del CVDS, y su funcin
consiste en evaluar cada una de las rutinas que se integran al todo de la
aplicacin y que exista interaccin adecuada con el usuario.

MEN APLICACIN

PRUEBAS SI NO

Se generan errores al momento de cargar un Submen X

Los Submens son complejos X

La interaccin con el usuario es fcil X

La seleccin de mens y submens funciona X

Realiza el proceso de insercin de nuevo entorno X

Realiza el proceso de salir del entorno actual X

73
El siguiente pantallazo muestra la funcionalidad de los mens y los submens los
cuales son de fcil acceso al usuario y divididos segn la funcionalidad a solicitar,
anexo a los submens estn un cuadro de botones que tienen un texto de ayuda
para saber a qu funcionalidad se est accediendo al hacer clic en el botn

4.2.3 Pruebas de Documentacin y Ayuda

Objetivo: Verificar el contenido de la documentacin, manuales y ayudas.

Criterio de decisin: Para las pruebas de documentacin, igualmente se tom la


referencia de la metodologa del CVDS, en donde el cdigo debe ser explicativo
como referencia para que el desarrollador se ubique dentro del entorno del anlisis

74
de las variables y etiquetas que se muevan en la aplicacin. As mismo denota la
inclusin de manuales y dems soportes escritos que ayuden a la interpretacin
del conocimiento del software. Los nombres de las variables deben ser
significativos, dentro de la accin que ejecuta dentro del proceso del caso de uso
que se est generando.

PRUEBAS SI NO

Existe una documentacin interna (cdigo) X

Los nombres de las variables y etiquetas son significativas X

Los comentarios son fciles de entender X

Existe una documentacin externa X

La ayuda es fcil de entender y manejar X

4.2.4 Pruebas de Seguridad y Control

Objetivo: Verificacin del control de acceso, validacin de informacin y la


realizacin correcta de las acciones sobre la aplicacin.

PRUEBAS SI NO

Existe perfiles de usuario para el funcionamiento del sistema X

Solicita contrasea al ingresar a la aplicacin X

4.2.5 Pruebas de Calidad

Objetivo: Verificar la capacidad operativa y de adaptacin a los cambios en la


aplicacin.

75
PRUEBAS SI NO

Existe portabilidad X

El cdigo es reutilizable X

Existe integridad X

Es fcil de utilizar X

4.3 INFORME DE PRUEBAS

Objetivos

Comprobar la validacin de informacin.


Comprobar la lgica de la aplicacin
Comprobar el nivel de integracin de los mens.
Probar el manejo de errores.

76
Material revisado

Formulario principal

Men configuracin

Men de consultar

77
Men registro

Men reportes

Formulario parametrizar tasas

78
Parametrizar documentos

Parametrizar tipos de crdito

79
Parametrizar requisitos

Parametrizar clientes

80
Registrar crditos

Ejecutar simulacin

81
Consultar cuotas

82
5. CONCLUSIONES

Es bastante gratificante a nivel personal, realizar un proyecto de investigacin


descriptiva con un tema de gran magnitud como lo es el manejo de tasas de
inters y poder crear una aplicacin que puede suplir las necesidades principales
del proceso de clculo y amortizacin de crditos a nivel financiero.

Para todo tipo de proyecto de desarrollo de software es fundamental trabajar con


metodologas que estn enfocadas desarrollar con ciertos patrones para realizar
un cdigo ms estructurado y fcil de utilizar, lo cual se vio plasmado en el
desarrollo al implementar el patrn modelo, vista controlador y aunque es mayor
las lneas de cdigo que son necesarias en el modelo, este trabajo se ve
compensado al crear la vista y al tener la intensin de crear nueva funcionalidad o
da la opcin de abordar un problema desde diferentes posibles soluciones sin
necesidad de implementar gran cantidad de cdigo.

Es poco el software y las aplicaciones que en Colombia existen para manipular


crditos a nivel financiero, que est al alcance de cualquier tipo de usuario, en
este momento es ms utilizado en bancos y entidades de grandes magnitudes,
donde tienen este software al cual es creado a las necesidades de la entidad, por
diversas casas de software.

La normatividad que existe en el momento con respecto a crditos va enfocada a


entidades del gobierno y a tipos de crdito especficos, las cuales hasta el
momento no especifica cmo es la estructura y los pasos a seguir para la solicitud
de crditos por parte de las personas que lo soliciten y tampoco contempla
normatividad para quienes lo otorgan, este normas son internas de cada
institucin, segn la entidad y las personas que la conforman.

El uso de UML como lenguaje de modelado es fundamental en todo proyecto de


desarrollo de software, ya que colabora con la documentacin y construccin de
los objetos que conforman un sistema de informacin como el del presente

83
proyecto, con estos modelos se puede dar continuidad al proyecto sin necesidad
que el desarrollador sea la misma persona, sino que puede llegar una persona
nueva que teniendo los modelos como base podr seguir con el trabajo realizado.

Las herramientas de trabajo Visual Basic .NET 2005 y SQL server 2005 Express,
se interrelacionan y complementan bien en el desarrollo de proyectos de software,
generando confianza en el proceso de construccin, existe buena documentacin
con respecto a ambas en Internet y por parte de Microsoft, son de fcil uso y
manejo, el reporte de errores y al documentacin de ellos es bastante buena y
hace que el trabajo del desarrollador sea gil al encontrar solucin rpida y
oportuna a los inconvenientes que se puedan presentar.

84
6 RECOMENDACIONES

Si se desea dar continuidad al proyecto se pueden tener las siguientes


consideraciones:

El software podra ser mejorado, abarcando el tema de pagos, en el


momento se puede realizar un tipo de pago completo de la cuota.

Funcionalidad de congelamiento de los crditos.

Gestionar con una entidad bancaria, los pagos a este banco y que el banco
los reporte a travs de archivos planos, los cuales puedan ser ingresados al
sistema y que el sistema actualice los pagos.

El usuario pueda consultar su estado de crdito a travs de internet,


implementando est funcionalidad en ASP.NET, ya que las clases del
proyectos seria utilizables con este lenguaje.

Debido a que la base de datos se trabaja a nivel de cdigo y no con objetos


de visual Basic, y tambin a travs de sentencias SQL, que son de
estndares en bases de datos, poder ejecutar la aplicacin con diversas
bases de datos segn el gusto del usuario.

85
BIBLIOGRAFA

[1] Introduccion a UML 2.0. Dsponible:


http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=15 [Citado
Mayo 3 de 2008]

[2] Patrn "Modelo-Vista-Controlador". Disponible: http://www.proactiva-


calidad.com/java/patrones/mvc.html [Citado Mayo 3 de 2008]

[3] Una breve historia de las tasas de inters Disponible:


http://www.monografias.com/trabajos24/tasas-de-interes/tasas-de-interes.shtml
[Citado Abril 5 de 2008]

[4] Legislacin Financiera Disponible.


http://www.asobancaria.com/categorias.jsp?id=147&sup=2 [Citado Mayo 10 de
2008]

[5] LEY 510 DE 1999. Disponible:


http://web.minjusticia.gov.co/normas/1999/l5101999.htm [Citado Mayo 10 de 2008]

[6] LEY 550 DE 1999. Disponible:


http://web.minjusticia.gov.co/normas/1999/l5501999.htm [Citado Mayo 10 de 2008]

[9] CreditWin Profesional (CreditWin Pro) 1.0. Disponible:


http://www.freedownloadmanager.org/es/downloads/disputa_de_cr%C3%A9dito_g
ratis [Citado Mayo 17 de 2008]

[10] LoanSpread Loan Calculator 4.6.0. Disponible:


http://www.freedownloadscenter.com/es/Negocio/Herramientas_Financieras_Varia
s/LoanSpread_Loan_Calculator.html [Citado Mayo 17 de 2008]

[11] Definicin de crdito documentario. Disponible


http://www.proyectosfindecarrera.com/definicion/credito-documentario.htm [Citado
Mayo 17 de 2008]
86
[12] Que es amortizacin. Disponible:
http://www.businesscol.com/foros/index.php?topic=2797 [Citado Mayo 17 de 2008]

[13] Panorama de SQL Server 2005 Express Edition. Disponible:


http://www.microsoft.com/spanish/msdn/articulos/archivo/100904/voices/10Panora
maSQLServer2005ExpressEdition.mspx [Citado Mayo 17 de 2008]

[14] Introduccin a Visual Studio. Disponible: http://msdn.microsoft.com/es-


es/library/fx6bk1f4(VS.80).aspx [Citado Mayo 17 de 2008]

[15] Visual Basic. Disponible: http://msdn.microsoft.com/es-


es/library/2x7h1hfk(VS.80).aspx [Citado Mayo 17 de 2008]

[16] Business Process Management. Disponible:


http://es.wikipedia.org/wiki/Business_Process_Management [Citado Mayo 24 de
2008]

[17] Prueba de programas. Disponible:


http://www.lab.dit.upm.es/~lprg/material/apuntes/pruebas/testing.htm#s22 [Citado
Mayo 31 de 2008]

87
ANEXOS

88
Cdigo fuente
Cliente
Public Class cliente
Dim idcliente, nombrebusqueda, primernombre, segundonombre,
primerapellido, segundoapellido, direccion, telefono, movil, fax, email,
vehiculo, vivienda, profesion, formalaboral As String
Dim fechanacimiento As Date
Public Sub setcliente(ByVal idc As String, ByVal nom As String, ByVal
prn As String, ByVal segn As String, ByVal pra As String, ByVal sega As
String, ByVal dir As String, ByVal tel As String, ByVal mov As String,
ByVal fax As String, ByVal ema As String, ByVal veh As String, ByVal viv
As String, ByVal pro As String, ByVal fla As String, ByVal fec As Date)
idcliente = idc
nombrebusqueda = nom
primernombre = prn
segundonombre = segn
primerapellido = pra
segundoapellido = sega
direccion = dir
telefono = tel
movil = mov
fax = fax
email = ema
vehiculo = veh
vivienda = viv
profesion = pro
formalaboral = fla
fechanacimiento = fec
End Sub
Public Function Getidcliente() As String
Getidcliente = idcliente
End Function
Public Function Getnombrebusqueda() As String
Getnombrebusqueda = nombrebusqueda
End Function
Public Function getprimerapellido() As String
getprimerapellido = primerapellido
End Function
Public Function getsegundoapellido() As String
getsegundoapellido = segundoapellido
End Function
Public Function getprimernombre() As String
getprimernombre = primernombre
End Function
Public Function getsegundonombre() As String
getsegundonombre = segundonombre
End Function
Public Function getdireccion() As String
getdireccion = direccion
End Function
Public Function gettelefono() As String
gettelefono = telefono
End Function
89
Public Function getmovil() As String
getmovil = movil
End Function
Public Function getfax() As String
getfax = fax
End Function
Public Function getemail() As String
getemail = email
End Function
Public Function getvehiculo() As String
getvehiculo = vehiculo
End Function
Public Function getvivienda() As String
getvivienda = vivienda
End Function
Public Function getprofesion() As String
getprofesion = profesion
End Function
Public Function getformalaboral() As String
getformalaboral = formalaboral
End Function
Public Function Getfechanacimiento() As Date
Getfechanacimiento = fechanacimiento
End Function
End Class

Clientebd
Public Class cliente_bd
Dim conexion As New conexion_bd
Public Sub setrcliente(ByVal cli As cliente)
Dim insert_sql As String
Dim tfec, feci As String
Try
If (cli.Getidcliente = "") Then
Throw New Exception("Debe ingresar el id del cliente")
End If
If (cli.getprimerapellido = "") Then
Throw New Exception("Debe ingresar el primer apellido del
cliente")
End If
If (cli.getprimernombre = "") Then
Throw New Exception("Debe ingresar el primer nombre del
cliente")
End If
tfec = cli.Getfechanacimiento.Date.ToString()
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
insert_sql = "insert into clientes(idcliente, nombrebusqueda,
primernombre, segundonombre, primerapellido, segundoapellido, direccion,
telefono, movil, fax, email, vehiculo, vivienda, profesion,
formalaboral,fechanacimiento) values('"
insert_sql = insert_sql & cli.Getidcliente & "','" &
cli.Getnombrebusqueda & "','" & cli.getprimernombre & "','" &
cli.getsegundonombre & "','" & cli.getprimerapellido & "','" &
90
cli.getsegundoapellido & "','" & cli.getdireccion & "','" &
cli.gettelefono & "','" & cli.getmovil & "','" & cli.getfax & "','" &
cli.getemail & "','" & cli.getvehiculo & "','" & cli.getvivienda & "','"
& cli.getprofesion & "','" & cli.getformalaboral & "','" & feci & "')"
conexion.ejecutar(insert_sql)
MessageBox.Show("El cliente ha sido ingresado")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getcliente() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from clientes"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getclienteid(ByVal idc As String) As cliente
Dim objalma As New DataSet()
Dim cl As New cliente
Dim select_sql As String
Try
select_sql = "select * from clientes where idcliente = '" &
idc & "'"
objalma = conexion.consultar(select_sql)

cl.setcliente(objalma.Tables("tabla").Rows(0).Item("idcliente"),
objalma.Tables("tabla").Rows(0).Item("nombrebusqueda"),
objalma.Tables("tabla").Rows(0).Item("primernombre"),
objalma.Tables("tabla").Rows(0).Item("segundonombre"),
objalma.Tables("tabla").Rows(0).Item("primerapellido"),
objalma.Tables("tabla").Rows(0).Item("segundoapellido"),
objalma.Tables("tabla").Rows(0).Item("direccion"),
objalma.Tables("tabla").Rows(0).Item("telefono"),
objalma.Tables("tabla").Rows(0).Item("movil"),
objalma.Tables("tabla").Rows(0).Item("fax"),
objalma.Tables("tabla").Rows(0).Item("email"),
objalma.Tables("tabla").Rows(0).Item("vehiculo"),
objalma.Tables("tabla").Rows(0).Item("vivienda"),
objalma.Tables("tabla").Rows(0).Item("profesion"),
objalma.Tables("tabla").Rows(0).Item("formalaboral"),
objalma.Tables("tabla").Rows(0).Item("fechanacimiento"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return cl
End Function
Public Sub delcliente(ByVal idc As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try

91
delete_sql = "delete from clientes where idcliente = '" & idc
& "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updatecliente(ByVal cli As cliente)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Dim tfec, feci As String
Try
If (cli.Getidcliente = "") Then
Throw New Exception("Debe ingresar el id del cliente")
End If
If (cli.getprimerapellido = "") Then
Throw New Exception("Debe ingresar el primer apellido del
cliente")
End If
If (cli.getprimernombre = "") Then
Throw New Exception("Debe ingresar el primer nombre del
cliente")
End If
tfec = cli.Getfechanacimiento.Date.ToString()
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
update_sql = "update clientes set idcliente = '" &
cli.Getidcliente & "',nombrebusqueda = '" & cli.Getnombrebusqueda &
"',primernombre = '" & cli.getprimernombre & "',primerapellido = '" &
cli.getprimerapellido & "',segundoapellido = '" & cli.getsegundoapellido
& "',direccion = '" & cli.getdireccion & "',telefono = '" &
cli.gettelefono & "',movil = '" & cli.getmovil & "',fax = '" & cli.getfax
& "',email = '" & cli.getemail & "',vehiculo = '" & cli.getvehiculo &
"',vivienda = '" & cli.getvivienda & "',profesion = '" & cli.getprofesion
& "',fechanacimiento = '" & feci & "',formalaboral = '" &
cli.getformalaboral & "' where idcliente = '" & cli.Getidcliente & "'"
conexion.ejecutar(update_sql)
MessageBox.Show("El cliente ha sido actualizado")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

Cuota
Public Class cuota
Dim idcredito, pago As String
Dim cuota As Integer
Dim capital, interes, valcuota, saldo, mora As Double
Dim fechapago As Date

92
Public Sub setcuotas(ByVal idc As String, ByVal pag As String, ByVal
cuo As Integer, ByVal cap As Double, ByVal int As Double, ByVal vcuo As
Double, ByVal sal As Double, ByVal fec As Date)
idcredito = idc
pago = pag
cuota = cuo
capital = cap
interes = int
saldo = sal
valcuota = vcuo
fechapago = fec
End Sub
Public Function Getidcredito() As String
Getidcredito = idcredito
End Function
Public Function Getcuota() As Integer
Getcuota = cuota
End Function
Public Function getpago() As String
getpago = pago
End Function
Public Function getsaldo() As Double
getsaldo = saldo
End Function
Public Function Getcapital() As Double
Getcapital = capital
End Function
Public Function getinteres() As Double
getinteres = interes
End Function
Public Function Getvalcuota() As Double
Getvalcuota = valcuota
End Function
Public Function Getfechapago() As Date
Getfechapago = fechapago
End Function
End Class

Cuotabd
Public Class cuotas_bd
Dim conexion As New conexion_bd
Public Sub setcuota(ByVal cuo As cuota)
Dim insert_sql As String
Dim tfec, feci As String
Try
tfec = cuo.Getfechapago.Date.ToString()
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
insert_sql = "insert into
cuotas(idcredito,cuota,fechapago,capital,interes,valcuota,saldo,pago)
values('" & cuo.Getidcredito & "'," & cuo.Getcuota & ",'" & feci & "'," &
cuo.Getcapital & "," & cuo.getinteres & "," & cuo.Getvalcuota & "," &
cuo.getsaldo & ",'" & cuo.getpago & "')"
conexion.ejecutar(insert_sql)
93
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getcuotas() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from cuotas"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getcuotascredito(ByVal idc As String) As DataSet
Dim objalma As New DataSet()
Dim select_sql As String
Try
select_sql = "select * from cuotas where idcredito = '" & idc
& "'"
objalma = conexion.consultar(select_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return objalma
End Function
Public Function getcuotascreditoSinpago(ByVal idc As String) As
DataSet
Dim objalma As New DataSet()
Dim select_sql As String
Try
select_sql = "select * from cuotas where idcredito = '" & idc
& "' AND pago = 'NO'"
objalma = conexion.consultar(select_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return objalma
End Function
Public Sub delcredito(ByVal idc As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try
delete_sql = "delete from cuotas where idcredito = '" & idc &
"'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub pagarcuota(ByVal id As String, ByVal cuo As Integer)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String

94
Try
update_sql = "update cuotas set pago = 'SI' where idcredito =
'" & id & "'and cuota = " & cuo
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

documentos
Public Class documentos
Dim iddocumento, descripcion As String
Dim cantidad As Integer

Public Sub setdocumentos(ByVal idd As String, ByVal des As String,


ByVal can As Integer)
iddocumento = idd
descripcion = des
cantidad = can
End Sub
Public Function Getiddocumento() As String
Getiddocumento = iddocumento
End Function
Public Function Getdescripcion() As String
Getdescripcion = descripcion
End Function
Public Function Getcantidad() As Integer
Getcantidad = cantidad
End Function
End Class

Documentosbd
Public Class documentos_bd
Dim conexion As New conexion_bd
Public Sub setdocumento(ByVal doc As documentos)
Dim insert_sql As String
Try
If (doc.Getiddocumento = "") Then
Throw New Exception("Debe ingresar el id del documento")
End If
If (doc.Getcantidad >= 0) Then
Throw New Exception("Debe ingresar la cantidad de
documentos a solicitar")
End If
insert_sql = "insert into
documentos(iddocumento,descripcion,cantidad) values('" &
doc.Getiddocumento & "','" & doc.Getdescripcion & "'," & doc.Getcantidad
& ")"
conexion.ejecutar(insert_sql)
95
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getdocumentos() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from documentos"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getdocumentosid(ByVal idd As String) As documentos
Dim objalma As New DataSet()
Dim docu As New documentos
Dim select_sql As String
Try
select_sql = "select * from documentos where iddocumento = '"
& idd & "'"
objalma = conexion.consultar(select_sql)

docu.setdocumentos(objalma.Tables("tabla").Rows(0).Item("iddocumento"),
objalma.Tables("tabla").Rows(0).Item("descripcion"),
objalma.Tables("tabla").Rows(0).Item("cantidad"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return docu
End Function
Public Sub updatedocumentos(ByVal doc As documentos)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If (doc.Getiddocumento = "") Then
Throw New Exception("Debe ingresar el id del documento")
End If
If (doc.Getcantidad = 0) Then
Throw New Exception("Debe ingresar la cantidad de
documentos a solicitar")
End If
update_sql = "update documentos set iddocumento = '" &
doc.Getiddocumento & "',descripcion = '" & doc.Getdescripcion &
"',cantidad = " & doc.Getcantidad & "where iddocumento = '" &
doc.Getiddocumento & "'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub

Public Sub deldocumentos(ByVal idd As String)


Dim objconexion As New OleDb.OleDbCommand

96
Dim delete_sql As String
Try
delete_sql = "delete from documentos where iddocumento = '" &
idd & "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

Registrocredito
Public Class registrocredito
Dim idcredito, cliente, nombre, tasa, estado, tipocredito, periodo,
formapago As String
Dim valorsolicitado, valoraprobado, numerocuotas As Integer
Dim tea As Double
Dim fechainicial, fechafinal, fechapresupuesto As Date
Public Sub setregitrocredito(ByVal idc As String, ByVal cli As
String, ByVal nom As String, ByVal tas As String, ByVal est As String,
ByVal tcr As String, ByVal per As String, ByVal vap As Integer, ByVal vso
As Integer, ByVal ncu As Integer, ByVal te As Double, ByVal fin As Date,
ByVal ffi As Date, ByVal fpr As Date, ByVal fpa As String)
formapago = fpa
idcredito = idc
cliente = cli
nombre = nom
tasa = tas
estado = est
tipocredito = tcr
periodo = per
valorsolicitado = vso
valoraprobado = vap
numerocuotas = ncu
tea = te
fechainicial = fin
fechafinal = ffi
fechapresupuesto = fpr
End Sub
Public Function Getformapago() As String
Getformapago = formapago
End Function
Public Function Getidcredito() As String
Getidcredito = idcredito
End Function
Public Function Getcliente() As String
Getcliente = cliente
End Function
Public Function getnombre() As String
getnombre = nombre
End Function
Public Function gettasa() As String
97
gettasa = tasa
End Function
Public Function getperiodo() As String
getperiodo = periodo
End Function
Public Function gettipocredito() As String
gettipocredito = tipocredito
End Function
Public Function getestado() As String
getestado = estado
End Function
Public Function Gettea() As Double
Gettea = tea
End Function
Public Function getvalorsolicitado() As Integer
getvalorsolicitado = valorsolicitado
End Function
Public Function getvaloraprobado() As Integer
getvaloraprobado = valoraprobado
End Function
Public Function Getnumerocuotas() As Integer
Getnumerocuotas = numerocuotas
End Function
Public Function Getfechafinal() As Date
Getfechafinal = fechafinal
End Function
Public Function Getfechainicial() As Date
Getfechainicial = fechainicial
End Function
Public Function Getfechapresupuesto() As Date
Getfechapresupuesto = fechapresupuesto
End Function
End Class

Registrocredito_bd
Public Class registrocredito_bd
Dim conexion As New conexion_bd
Public Sub setregistrocredito(ByVal rcr As registrocredito)
Dim insert_sql As String
Dim tfecini, fecini, tfecfin, fecfin, tfecpr, fecpr As String
Try
If (rcr.Getidcredito = "") Then
Throw New Exception("Debe ingresar el identificador del
credito")
End If
If (rcr.getperiodo = "") Then
Throw New Exception("Debe selecionar un periodo de pago")
End If
If (rcr.Getformapago = "") Then
Throw New Exception("Debe seleccionar una forma de pago")
End If
tfecini = rcr.Getfechainicial.Date.ToString()

98
fecini = Mid(tfecini, 7, 4) & Mid(tfecini, 4, 2) &
Mid(tfecini, 1, 2)
tfecfin = rcr.Getfechafinal.Date.ToString()
fecfin = Mid(tfecfin, 7, 4) & Mid(tfecfin, 4, 2) &
Mid(tfecfin, 1, 2)
tfecpr = rcr.Getfechapresupuesto.Date.ToString()
fecpr = Mid(tfecpr, 7, 4) & Mid(tfecpr, 4, 2) & Mid(tfecpr,
1, 2)
insert_sql = "insert into registrocredito(idcredito, cliente,
nombrebusqueda, tasa, estado, tipocredito, periodo,valorsolicitado,
valoraprobado, numerocuotas,tea,fechainicial, fechafinal,
fechapresupuesto,formapago) values('"
insert_sql = insert_sql & rcr.Getidcredito & "','" &
rcr.Getcliente & "','" & rcr.getnombre & "','" & rcr.gettasa & "','" &
rcr.getestado & "','" & rcr.gettipocredito & "','" & rcr.getperiodo &
"'," & rcr.getvalorsolicitado & "," & rcr.getvaloraprobado & "," &
rcr.Getnumerocuotas & "," & rcr.Gettea & ",'" & fecini & "','" & fecfin &
"','" & fecpr & "','" & rcr.Getformapago & "')"
conexion.ejecutar(insert_sql)
MessageBox.Show("El crdito ha sido cread")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getregistrocredito() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from registrocredito"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getregistrocreditoid(ByVal idc As String) As
registrocredito
Dim objalma As New DataSet()
Dim rcre As New registrocredito
Dim select_sql As String
Try
select_sql = "select * from registrocredito where idcredito =
'" & idc & "'"
objalma = conexion.consultar(select_sql)

rcre.setregitrocredito(objalma.Tables("tabla").Rows(0).Item("idcredito"),
objalma.Tables("tabla").Rows(0).Item("cliente"),
objalma.Tables("tabla").Rows(0).Item("nombrebusqueda"),
objalma.Tables("tabla").Rows(0).Item("tasa"),
objalma.Tables("tabla").Rows(0).Item("estado"),
objalma.Tables("tabla").Rows(0).Item("tipocredito"),
objalma.Tables("tabla").Rows(0).Item("periodo"),
objalma.Tables("tabla").Rows(0).Item("valoraprobado"),
objalma.Tables("tabla").Rows(0).Item("valorsolicitado"),
objalma.Tables("tabla").Rows(0).Item("numerocuotas"),
objalma.Tables("tabla").Rows(0).Item("tea"),
objalma.Tables("tabla").Rows(0).Item("fechainicial"),

99
objalma.Tables("tabla").Rows(0).Item("fechafinal"),
objalma.Tables("tabla").Rows(0).Item("fechapresupuesto"),
objalma.Tables("tabla").Rows(0).Item("formapago"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return rcre
End Function
Public Sub delcredito(ByVal idc As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try
delete_sql = "delete from registrocredito where idcredito =
'" & idc & "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub cambiarestado(ByVal id As String, ByVal est As String)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If (est = "") Then
Throw New Exception("Debe selecionar un estado")
End If
update_sql = "update registrocredito set estado = '" & est &
"' where idcredito = '" & id & "'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
If (ex.Message = "1") Then
End If
conexion.cerraconexion()
End Try
End Sub
Public Sub cambiarfechafinalpago(ByVal id As String, ByVal fec As
Date)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Dim tfec, feci As String
Try
tfec = fec
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
update_sql = "update registrocredito set fechafinal = '" &
feci & "' where idcredito = '" & id & "'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub

100
End Class

Requisitos
Public Class requisitos
Dim iddocumento, formalaboral, idcredito, idrequisito As String
Public Sub setdrequisitos(ByVal idr As String, ByVal idd As String,
ByVal forl As String, ByVal idc As String)
iddocumento = idd
formalaboral = forl
idcredito = idc
idrequisito = idr
End Sub
Public Function getidrequisito() As String
getidrequisito = idrequisito
End Function
Public Function Getiddocumento() As String
Getiddocumento = iddocumento
End Function
Public Function Getformalaboral() As String
Getformalaboral = formalaboral
End Function
Public Function Getidcredito() As String
Getidcredito = idcredito
End Function
End Class

requisitosbd
Public Class requisitos_bd
Dim conexion As New conexion_bd
Public Sub setrequisitos(ByVal req As requisitos)
Dim insert_sql As String
Try
If (req.getidrequisito = "") Then
Throw New Exception("Debe ingresar el identificador del
requisito")
End If
insert_sql = "insert into
requisitos(idrequisito,iddocumento,formalaboral,idcredito) values('" &
req.getidrequisito & "','" & req.Getiddocumento & "','" &
req.Getformalaboral & "','" & req.Getidcredito & "')"
conexion.ejecutar(insert_sql)
MessageBox.Show("El requisito ha sido cread")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getrequisitos() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from requisitos"
101
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getrequisitosid(ByVal idr As String) As requisitos
Dim objalma As New DataSet()
Dim req As New requisitos
Dim select_sql As String
Try
select_sql = "select * from requisitos where idrequisito = '"
& idr & "'"
objalma = conexion.consultar(select_sql)

req.setdrequisitos(objalma.Tables("tabla").Rows(0).Item("idrequisito"),
objalma.Tables("tabla").Rows(0).Item("iddocumento"),
objalma.Tables("tabla").Rows(0).Item("formalaboral"),
objalma.Tables("tabla").Rows(0).Item("idcredito"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return req
End Function
Public Function getrequisitosidcredito(ByVal idc As String) As
DataSet
Dim objalma As New DataSet()
Dim docu As New documentos
Dim select_sql As String
Try
select_sql = "select * from requisitos where idcredito = '" &
idc & "'"
objalma = conexion.consultar(select_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return objalma
End Function
Public Sub delrequisitos(ByVal idr As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try
delete_sql = "delete from requisitos where idrequisito = '" &
idr & "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updaterequisito(ByVal req As requisitos)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If (req.getidrequisito = "") Then

102
Throw New Exception("Debe ingresar el identificador del
requisito")
End If
update_sql = "update requisitos set idrequisito = '" &
req.getidrequisito & "',idcredito = '" & req.Getidcredito &
"',iddocumento = '" & req.Getiddocumento & "',formalaboral = '" &
req.Getformalaboral & "' where idrequisito = '" & req.getidrequisito &
"'"
conexion.ejecutar(update_sql)
MessageBox.Show("El requisito ha sido actualizad")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

Tasas
Public Class tasas
Dim idtasa, descripcion As String
Dim valor As Double
Dim fecha As Date
Public Sub settasas(ByVal idt As String, ByVal des As String, ByVal
val As Double, ByVal fec As Date)
idtasa = idt
descripcion = des
valor = val
fecha = fec
End Sub
Public Function Getidtasa() As String
Getidtasa = idtasa
End Function
Public Function Getdescripcion() As String
Getdescripcion = descripcion
End Function
Public Function Getvalor() As Double
Getvalor = valor
End Function
Public Function Getfecha() As Date
Getfecha = fecha
End Function
End Class

Tasasbd
Public Class tasa_bd
Dim conexion As New conexion_bd
Public Sub settasa(ByVal tas As tasas)
Dim insert_sql As String
Dim tfec, feci As String
Try
If (tas.Getidtasa = "") Then
103
Throw New Exception("Debe ingresar el identificador de la
tasa")
End If
tfec = tas.Getfecha.Date.ToString()
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
insert_sql = "insert into
tasas(idtasa,descripcion,fecha,valor) values('" & tas.Getidtasa & "','" &
tas.Getdescripcion & "','" & feci & "'," & tas.Getvalor & ")"
conexion.ejecutar(insert_sql)
MessageBox.Show("la tasa de inters ha sido cread")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function gettasa() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from tasas"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function gettasaid(ByVal idt As String) As tasas
Dim objalma As New DataSet
Dim tasa As New tasas
Dim select_sql As String
Try
select_sql = "select * from tasas where idtasa = '" & idt &
"'"
objalma = conexion.consultar(select_sql)
tasa.settasas(objalma.Tables("tabla").Rows(0).Item("idtasa"),
objalma.Tables("tabla").Rows(0).Item("descripcion"),
objalma.Tables("tabla").Rows(0).Item("valor"),
objalma.Tables("tabla").Rows(0).Item("fecha"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return tasa
End Function
Public Sub deltasa(ByVal idt As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try
delete_sql = "delete from tasas where idtasa = '" & idt & "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updatetasa(ByVal tas as tasas)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String

104
Dim tfec, feci As String
Try
If (tas.Getidtasa = "") Then
Throw New Exception("Debe ingresar el identificador de la
tasa")
End If
If (tas.Getvalor > 100) Then
Throw New Exception("Debe valor de la tasa no puede
superar el 100%")
End If
If (tas.Getvalor < 0) Then
Throw New Exception("Debe valor de la tasa no puede ser
menor a 0 (CERO)")
End If
tfec = tas.Getfecha.Date.ToString()
feci = Mid(tfec, 7, 4) & Mid(tfec, 4, 2) & Mid(tfec, 1, 2)
update_sql = "update tasas set idtasa = '" & tas.Getidtasa &
"',descripcion = '" & tas.Getdescripcion & "',valor = " & tas.Getvalor &
",fecha = '" & feci & "' where idtasa = '" & tas.Getidtasa & "'"
conexion.ejecutar(update_sql)
MessageBox.Show("la tasa de inters ha sido actualizad")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

Tipocredito
Public Class tipocredito
Dim idcredito, descripcion As String
Dim presupuesto As Double
Public Sub settipocredito(ByVal idc As String, ByVal des As String,
ByVal pre As Double)
idcredito = idc
descripcion = des
presupuesto = pre
End Sub
Public Function Getidtipocredito() As String
Getidtipocredito = idcredito
End Function
Public Function Getdescripcion() As String
Getdescripcion = descripcion
End Function
Public Function Getpresupuesto() As Double
Getpresupuesto = presupuesto
End Function
End Class

Tipocreditobd
Public Class tipocredito_bd
105
Dim conexion As New conexion_bd
Public Sub settipocredito(ByVal tcre As tipocredito)
Dim insert_sql As String
Try
If (tcre.Getidtipocredito = "") Then
Throw New Exception("Debe ingresar el id del tipo de
credito")
End If
insert_sql = "insert into
tipocreditos(idcredito,descripcion,presupuesto) values('" &
tcre.Getidtipocredito & "','" & tcre.Getdescripcion & "'," &
tcre.Getpresupuesto & ")"
conexion.ejecutar(insert_sql)
MessageBox.Show("El tipo de crdito ha sido cread")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Function gettipocredito() As DataSet
Dim objalma As DataSet
Dim select_sql As String
select_sql = "select * from tipocreditos"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function gettipocreditoid(ByVal idc As String) As tipocredito
Dim objalma As New DataSet
Dim tcre As New tipocredito
Dim select_sql As String
Try
select_sql = "select * from tipocreditos where idcredito = '"
& idc & "'"
objalma = conexion.consultar(select_sql)

tcre.settipocredito(objalma.Tables("tabla").Rows(0).Item("idcredito"),
objalma.Tables("tabla").Rows(0).Item("descripcion"),
objalma.Tables("tabla").Rows(0).Item("presupuesto"))
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
Return tcre
End Function
Public Sub deltipocredito(ByVal idc As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String
Try
delete_sql = "delete from tipocreditos where idcredito = '"
& idc & "'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
Public Sub updattipocredito(ByVal cre As tipocredito)

106
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If (cre.Getidtipocredito = "") Then
Throw New Exception("Debe ingresar el id del tipo de
credito")
End If
update_sql = "update tipocreditos set idcredito = '" &
cre.Getidtipocredito & "',descripcion = '" & cre.Getdescripcion &
"',presupuesto = " & cre.Getpresupuesto & " where idcredito = '" &
cre.Getidtipocredito & "'"
conexion.ejecutar(update_sql)
MessageBox.Show("El tipo de crdito ha sido actualizad")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updatepresupuesto(ByVal cre As tipocredito, ByVal val As
Double)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If (cre.Getidtipocredito = "") Then
Throw New Exception("Debe ingresar el id del tipo de
credito")
End If
update_sql = "update tipocreditos set presupuesto = " & val &
" where idcredito = '" & cre.Getidtipocredito & "'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
End Class

Usuario
Public Class usuario
Dim usuario, password, perfil, activo, nombre, apellido,
identificacion As String

Public Sub setusuario(ByVal usr As String, ByVal pas As String, ByVal


per As String, ByVal act As String, ByVal nom As String, ByVal ape As
String, ByVal iden As String)
usuario = usr
password = pas
perfil = per
activo = act
nombre = nom
apellido = ape
identificacion = iden
End Sub
107
Public Function Getusuario() As String
Getusuario = usuario
End Function
Public Function getpassword() As String
getpassword = password
End Function
Public Function getperfil() As String
getperfil = perfil
End Function
Public Function getactivo() As String
getactivo = activo
End Function
Public Function getapellido() As String
getapellido = apellido
End Function
Public Function getnombre() As String
getnombre = nombre
End Function
Public Function getidentificacion() As String
getidentificacion = identificacion
End Function
End Class

usuariobd
Public Class usuario_bd
Dim conexion As New conexion_bd
Public Sub setrusuario(ByVal usr As usuario)
Dim insert_sql As String
Try
If (usr.Getusuario = "") Then
Throw New Exception("Debe ingresar el usuario")
End If
If (usr.getpassword = "") Then
Throw New Exception("Debe ingresar la contrasea")
End If
If (usr.getperfil = "") Then
Throw New Exception("Debe seleccionar un perfil")
End If
insert_sql = "insert into usuarios(usuario, password, perfil,
activo, nombre, apellido, identificacion) values('" & usr.Getusuario &
"','" & usr.getpassword & "','" & usr.getperfil & "','" & usr.getactivo &
"','" & usr.getnombre & "','" & usr.getapellido & "','" &
usr.getidentificacion & "')"
conexion.ejecutar(insert_sql)
MessageBox.Show("El usuario ha sido cread")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Function getusuario() As DataSet
Dim objalma As DataSet
Dim select_sql As String
108
select_sql = "select * from usuarios"
objalma = conexion.consultar(select_sql)
Return objalma
End Function
Public Function getusuarioid(ByVal idc As String) As usuario
Dim objalma As New DataSet()
Dim cl As New usuario
Dim select_sql As String
Try
select_sql = "select * from usuarios where usuario = '" & idc
& "'"
objalma = conexion.consultar(select_sql)

cl.setusuario(objalma.Tables("tabla").Rows(0).Item("usuario"),
objalma.Tables("tabla").Rows(0).Item("password"),
objalma.Tables("tabla").Rows(0).Item("perfil"),
objalma.Tables("tabla").Rows(0).Item("activo"),
objalma.Tables("tabla").Rows(0).Item("nombre"),
objalma.Tables("tabla").Rows(0).Item("apellido"),
objalma.Tables("tabla").Rows(0).Item("identificacion"))
Catch ex As Exception
If StrComp(cl.Getusuario, "", CompareMethod.Binary) = 0 Then
MessageBox.Show("El usuario no existe")
Else
MessageBox.Show(ex.Message)
End If
conexion.cerraconexion()
End Try
Return cl
End Function
Public Function getusuarioactivo() As usuario
Dim objalma As New DataSet()
Dim cl As New usuario
Dim select_sql As String
Try
select_sql = "select * from usuarios where activo = 'SI'"
objalma = conexion.consultar(select_sql)

cl.setusuario(objalma.Tables("tabla").Rows(0).Item("usuario"),
objalma.Tables("tabla").Rows(0).Item("password"),
objalma.Tables("tabla").Rows(0).Item("perfil"),
objalma.Tables("tabla").Rows(0).Item("activo"),
objalma.Tables("tabla").Rows(0).Item("nombre"),
objalma.Tables("tabla").Rows(0).Item("apellido"),
objalma.Tables("tabla").Rows(0).Item("identificacion"))
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
Return cl
End Function
Public Sub delusuario(ByVal idc As String)
Dim objconexion As New OleDb.OleDbCommand
Dim delete_sql As String

109
Try
delete_sql = "delete from usuarios where usuario = '" & idc &
"'"
conexion.ejecutar(delete_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub

Public Sub updateactivo(ByVal usr As String)


Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
update_sql = "update usuarios set activo = 'SI' where usuario
= '" & usr & "'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updatepassword(ByVal usr As usuario, ByVal pas As String,
ByVal npas As String, ByVal cpas As String)
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
If Not (usr.getpassword = pas) Then
Throw New Exception("las contrasea del usuario es
incorrecta")
End If
If Not (npas = cpas) Then
Throw New Exception("las contraseas ingresadas no
coinciden")
End If
update_sql = "update usuarios set password = '" & npas & "'
where usuario = '" & usr.Getusuario & "'"
conexion.ejecutar(update_sql)
MessageBox.Show("La contrasea a sido modificada
satisfactoriamente")
Catch ex As Exception
MessageBox.Show(ex.Message)
conexion.cerraconexion()
End Try
End Sub
Public Sub updateactivoNO()
Dim objconexion As New OleDb.OleDbCommand
Dim update_sql As String
Try
update_sql = "update usuarios set activo = 'NO' where activo
= 'SI'"
conexion.ejecutar(update_sql)
Catch ex As Exception
MessageBox.Show(ex.Message)

110
conexion.cerraconexion()
End Try
End Sub
Public Function validaringreso(ByVal usr As String, ByVal pas As
String) As Boolean
Dim usrin As New usuario
usrin = Me.getusuarioid(usr)
If StrComp(usrin.Getusuario, "", CompareMethod.Binary) = 0 Then
validaringreso = False
Else
If StrComp(usrin.getpassword, pas, CompareMethod.Binary) = 0
Then
validaringreso = True
Me.updateactivo(usrin.Getusuario)
Else
MessageBox.Show("El usuario o la contrasea son
incorrectos")
validaringreso = False
End If
End If
End Function
End Class

Simularcredito
Public Class simularcredito
Dim cuota, dias, diasdate As Integer
Dim capital, tmpinteres, interesperiodo, interes, valcuota, saldo,
mora As Double
Dim fechapago As Date
Dim cuo As New cuota
Dim cuobd As New cuotas_bd
Dim sig As Boolean = True
Dim valortotal As Double
Dim ncuotas As Double
Dim valint As Double

Public Sub simularcredito(ByVal cre As registrocredito, ByVal vcuota


As Double)
Dim cuo2 As New cuota
Dim tasbd As New tasa_bd
Dim tas As New tasas
Dim regbd As New registrocredito_bd
Try
If StrComp(cre.Getformapago, "Valor cuota",
CompareMethod.Binary) = 0 And vcuota = 0 Then
Throw New Exception("Debe ingresar el valor de la cuota")
End If
cuobd.delcredito(cre.Getidcredito)
tas = tasbd.gettasaid(cre.gettasa)
If StrComp(cre.getperiodo, "Diario", CompareMethod.Binary) =
0 Then
dias = 30
diasdate = 1
111
Else
If StrComp(cre.getperiodo, "Semanal",
CompareMethod.Binary) = 0 Then
dias = 4
diasdate = 8
Else
dias = 1
diasdate = 30
End If
End If

fechapago = DateAdd(DateInterval.Day, diasdate,


cre.Getfechainicial)
If StrComp(cre.Getformapago, "Valor cuota",
CompareMethod.Binary) = 0 Then

ncuotas = cre.getvaloraprobado / vcuota


interesperiodo = 1 + ((((cre.Gettea + tas.Getvalor) /
100) / 12) / dias) * ncuotas

valortotal = cre.getvaloraprobado * interesperiodo

valint = valortotal - cre.getvaloraprobado


saldo = valortotal
cuota = 1
While sig = True
interes = valint / ncuotas
valcuota = vcuota - interes
saldo = saldo - vcuota
cuo.setcuotas(cre.Getidcredito, "NO", cuota,
valcuota, interes, vcuota, saldo, fechapago)
cuobd.setcuota(cuo)
If (saldo < vcuota) Then
cuota += 1
vcuota = saldo
valcuota = saldo - interes
saldo = 0
cuo.setcuotas(cre.Getidcredito, "NO", cuota,
valcuota, interes, vcuota, saldo, fechapago)
cuobd.setcuota(cuo)
sig = False
End If
fechapago = DateAdd(DateInterval.Day, diasdate,
fechapago)
cuota += 1
End While
Else
If StrComp(cre.Getformapago, "Capital fijo",
CompareMethod.Binary) = 0 Then
interesperiodo = 1 + ((((cre.Gettea + tas.Getvalor) /
100) / 12) / dias) * cre.Getnumerocuotas
valortotal = cre.getvaloraprobado * interesperiodo
valint = valortotal - cre.getvaloraprobado
saldo = valortotal

112
interes = valint
capital = cre.getvaloraprobado / cre.Getnumerocuotas
For cuota = 1 To cre.Getnumerocuotas
interes = interes / 2
saldo = saldo - capital - interes
If (cuota = cre.Getnumerocuotas) Then
interes = tmpinteres
saldo = 0
End If
cuo.setcuotas(cre.Getidcredito, "NO", cuota,
capital, interes, capital + interes, saldo, fechapago)
fechapago = DateAdd(DateInterval.Day, diasdate,
fechapago)
cuobd.setcuota(cuo)
tmpinteres = interes
Next
Else
interesperiodo = 1 + ((((cre.Gettea + tas.Getvalor) /
100) / 12) / dias) * cre.Getnumerocuotas
valortotal = cre.getvaloraprobado * interesperiodo
valint = valortotal - cre.getvaloraprobado
saldo = valortotal
For cuota = 1 To cre.Getnumerocuotas
interes = valint / cre.Getnumerocuotas
valcuota = valortotal / cre.Getnumerocuotas
capital = valcuota - interes
saldo = saldo - capital
If (cuota = cre.Getnumerocuotas) Then
saldo = 0
End If
cuo.setcuotas(cre.Getidcredito, "NO", cuota,
capital, interes, valcuota, saldo, fechapago)
fechapago = DateAdd(DateInterval.Day, diasdate,
fechapago)
cuobd.setcuota(cuo)
Next
End If
End If
regbd.cambiarfechafinalpago(cre.Getidcredito, fechapago)
MessageBox.Show("La simulacin a sido ejecutada, puede
observar las cuotas")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Class

Creditos (controladora)
Public Class creditos
Dim tas As New tasas
Dim tasbd As New tasa_bd
Dim doc As New documentos
Dim docbd As New documentos_bd

113
Dim tcre As New tipocredito
Dim tcrebd As New tipocredito_bd
Dim req As New requisitos
Dim reqbd As New requisitos_bd
Dim cta As New cuota
Dim cuobd As New cuotas_bd
Dim rcr As New registrocredito
Dim rcrbd As New registrocredito_bd
Dim cli As New cliente
Dim clibd As New cliente_bd
Dim sim As New simularcredito
Dim usr As New usuario
Dim usrbd As New usuario_bd
'usuarios
Public Function validaringreso(ByVal usr As String, ByVal pwd As
String) As Boolean
validaringreso = usrbd.validaringreso(usr, pwd)
End Function
Public Sub registar_usuarios(ByVal usua As String, ByVal pwd As
String, ByVal per As String, ByVal act As String, ByVal nom As String,
ByVal ape As String, ByVal iden As String)
usr.setusuario(usua, pwd, per, act, nom, ape, iden)
usrbd.setrusuario(usr)
End Sub
Public Function getusuario() As DataSet
Dim dt As DataSet
dt = usrbd.getusuario()
getusuario = dt
End Function
Public Function getusuarioid(ByVal id As String) As usuario
Dim us As usuario
us = usrbd.getusuarioid(id)
getusuarioid = us
End Function
Public Function getusuarioactivo() As usuario
Dim us As usuario
us = usrbd.getusuarioactivo()
getusuarioactivo = us
End Function
Public Sub del_usuario(ByVal id As String)
usrbd.delusuario(id)
End Sub
Public Sub udp_activo(ByVal idc As String)
usrbd.updateactivo(idc)
End Sub
Public Sub udp_activoNO()
usrbd.updateactivoNO()
End Sub
Public Sub cambiarpassword(ByVal pas As String, ByVal npas As String,
ByVal cpas As String)
Dim us As usuario
us = Me.getusuarioactivo()
usrbd.updatepassword(us, pas, npas, cpas)
End Sub

114
'simulacion
Public Sub simulacion(ByVal icr As String, ByVal cuota As Double)
sim.simularcredito(Me.getregistrocreditoid(icr), cuota)
End Sub
'clientes
Public Sub registar_cliente(ByVal idc As String, ByVal nom As String,
ByVal prn As String, ByVal segn As String, ByVal pra As String, ByVal
sega As String, ByVal dir As String, ByVal tel As String, ByVal mov As
String, ByVal fax As String, ByVal ema As String, ByVal veh As String,
ByVal viv As String, ByVal pro As String, ByVal fla As String, ByVal fec
As Date)
cli.setcliente(idc, nom, prn, segn, pra, sega, dir, tel, mov,
fax, ema, veh, viv, pro, fla, fec)
clibd.setrcliente(cli)
End Sub
Public Function getcliente() As DataSet
Dim dt As DataSet
dt = clibd.getcliente()
getcliente = dt
End Function
Public Function getclienteid(ByVal id As String) As cliente
Dim cl As cliente
cl = clibd.getclienteid(id)
getclienteid = cl
End Function
Public Sub del_cliente(ByVal id As String)
clibd.delcliente(id)
End Sub
Public Sub udp_cliente(ByVal idc As String, ByVal nom As String,
ByVal prn As String, ByVal segn As String, ByVal pra As String, ByVal
sega As String, ByVal dir As String, ByVal tel As String, ByVal mov As
String, ByVal fax As String, ByVal ema As String, ByVal veh As String,
ByVal viv As String, ByVal pro As String, ByVal fla As String, ByVal fec
As Date)
cli.setcliente(idc, nom, prn, segn, pra, sega, dir, tel, mov,
fax, ema, veh, viv, pro, fla, fec)
clibd.updatecliente(cli)
End Sub
'registrarcredito
Public Sub registar_credito(ByVal idc As String, ByVal cli As String,
ByVal nom As String, ByVal tas As String, ByVal est As String, ByVal tcr
As String, ByVal per As String, ByVal vap As Integer, ByVal vso As
Integer, ByVal ncu As Integer, ByVal tea As Double, ByVal fin As Date,
ByVal ffi As Date, ByVal fpr As Date, ByVal fpa As String)
rcr.setregitrocredito(idc, cli, nom, tas, est, tcr, per, vap,
vso, ncu, tea, fin, ffi, fpr, fpa)
rcrbd.setregistrocredito(rcr)
End Sub
Public Function getregistrocredito() As DataSet
Dim dt As DataSet
dt = rcrbd.getregistrocredito()
getregistrocredito = dt
End Function

115
Public Function getregistrocreditoid(ByVal id As String) As
registrocredito
Dim rc As registrocredito
rc = rcrbd.getregistrocreditoid(id)
getregistrocreditoid = rc
End Function
Public Sub del_registrocredito(ByVal id As String)
rcrbd.delcredito(id)
End Sub
Public Sub cambiarestado(ByVal id As String, ByVal est As String)
rcrbd.cambiarestado(id, est)
End Sub

'cuotas
Public Sub registar_cuotas(ByVal idc As String, ByVal pag As String,
ByVal cuo As Integer, ByVal cap As Double, ByVal int As Double, ByVal
vcuo As Double, ByVal sal As Double, ByVal fec As Date)
cta.setcuotas(idc, pag, cuo, cap, int, vcuo, sal, fec)
cuobd.setcuota(cta)
End Sub
Public Function getcuotas() As DataSet
Dim dt As DataSet
dt = cuobd.getcuotas()
getcuotas = dt
End Function
Public Function getcuotasid(ByVal id As String) As DataSet
Dim dt As DataSet
dt = cuobd.getcuotascredito(id)
getcuotasid = dt
End Function

Public Function getcuotasinpago(ByVal id As String) As DataSet


Dim dt As DataSet
dt = cuobd.getcuotascreditoSinpago(id)
getcuotasinpago = dt
End Function

Public Sub del_cuotas(ByVal id As String)


cuobd.delcredito(id)
End Sub
Public Sub pagarcuotas(ByVal id As String, ByVal cuo As Integer)
cuobd.pagarcuota(id, cuo)
End Sub
'requisitos
Public Sub registar_requisitos(ByVal idr As String, ByVal idd As
String, ByVal forl As String, ByVal idc As String)
req.setdrequisitos(idr, idd, forl, idc)
reqbd.setrequisitos(req)
End Sub
Public Function getrequisitos() As DataSet
Dim dt As DataSet
dt = reqbd.getrequisitos()
getrequisitos = dt
End Function

116
Public Function getrequisitoscredito(ByVal id As String) As DataSet
Dim dt As DataSet
dt = reqbd.getrequisitosidcredito(id)
getrequisitoscredito = dt
End Function
Public Function getrequisitosid(ByVal id As String) As requisitos
Dim rq As requisitos
rq = reqbd.getrequisitosid(id)
getrequisitosid = rq
End Function
Public Sub del_requisitos(ByVal id As String)
reqbd.delrequisitos(id)
End Sub
Public Sub udp_requisitos(ByVal idr As String, ByVal idd As String,
ByVal forl As String, ByVal idc As String)
req.setdrequisitos(idr, idd, forl, idc)
reqbd.updaterequisito(req)
End Sub
'Tasas
Public Sub registar_tasas(ByVal idt As String, ByVal des As String,
ByVal val As Double, ByVal fec As Date)
tas.settasas(idt, des, val, fec)
tasbd.settasa(tas)
End Sub
Public Function gettasa() As DataSet
Dim dt As DataSet
dt = tasbd.gettasa()
gettasa = dt
End Function
Public Function gettasaid(ByVal id As String) As tasas
Dim ts As tasas
ts = tasbd.gettasaid(id)
gettasaid = ts
End Function
Public Sub del_tasas(ByVal id As String)
tasbd.deltasa(id)
End Sub
Public Sub udp_tasas(ByVal idt As String, ByVal des As String, ByVal
val As Double, ByVal fec As Date)
tas.settasas(idt, des, val, fec)
tasbd.updatetasa(tas)
End Sub
'Documentos
Public Sub registrar_documentos(ByVal iddoc As String, ByVal des As
String, ByVal cant As Integer)
doc.setdocumentos(iddoc, des, cant)
docbd.setdocumento(doc)
End Sub
Public Function getdocumento() As DataSet
Dim dt As DataSet
dt = docbd.getdocumentos()
getdocumento = dt
End Function
Public Function getdocumentoid(ByVal id As String) As documentos

117
Dim dc As documentos
dc = docbd.getdocumentosid(id)
getdocumentoid = dc
End Function
Public Sub del_documento(ByVal id As String)
docbd.deldocumentos(id)
End Sub
Public Sub udp_documento(ByVal idd As String, ByVal des As String,
ByVal can As Integer)
doc.setdocumentos(idd, des, can)
docbd.updatedocumentos(doc)
End Sub
'tipos de credito
Public Sub registrar_tipo_credito(ByVal idcre As String, ByVal des As
String, ByVal pre As Double)
tcre.settipocredito(idcre, des, pre)
tcrebd.settipocredito(tcre)
End Sub
Public Function gettipocredito() As DataSet
Dim dt As DataSet
dt = tcrebd.gettipocredito()
gettipocredito = dt
End Function
Public Function gettipocreditoid(ByVal id As String) As tipocredito
Dim tc As tipocredito
tc = tcrebd.gettipocreditoid(id)
gettipocreditoid = tc
End Function
Public Sub del_tipocredito(ByVal id As String)
tcrebd.deltipocredito(id)
End Sub
Public Sub udp_tipocredito(ByVal idc As String, ByVal des As String,
ByVal val As Double)
tcre.settipocredito(idc, des, val)
tcrebd.updattipocredito(tcre)
End Sub
End Class

118
Base de datos

USE [creditos]
GO
/****** Objeto: Table [dbo].[documentos] Fecha de la secuencia de
comandos: 05/28/2008 22:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[documentos](
[iddocumento] [char](10) NOT NULL,
[descripcion] [text] NULL,
[cantidad] [int] NOT NULL,
CONSTRAINT [PK_documentos] PRIMARY KEY CLUSTERED
(
[iddocumento] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[tipocreditos] Fecha de la secuencia de
comandos: 05/28/2008 22:02:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tipocreditos](
[idcredito] [char](10) NOT NULL,
[descripcion] [text] NULL,
[presupuesto] [int] NOT NULL,
CONSTRAINT [PK_tipocreditos] PRIMARY KEY CLUSTERED
(
[idcredito] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[requisitos] Fecha de la secuencia de
comandos: 05/28/2008 22:01:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON

119
GO
CREATE TABLE [dbo].[requisitos](
[idrequisito] [char](10) NOT NULL,
[iddocumento] [char](10) NULL,
[formalaboral] [text] NULL,
[idcredito] [char](10) NULL,
CONSTRAINT [PK_requisitos] PRIMARY KEY CLUSTERED
(
[idrequisito] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[clientes] Fecha de la secuencia de
comandos: 05/28/2008 22:01:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[clientes](
[idcliente] [char](10) NOT NULL,
[nombrebusqueda] [text] NULL,
[primernombre] [text] NOT NULL,
[segundonombre] [text] NULL,
[primerapellido] [text] NOT NULL,
[segundoapellido] [text] NULL,
[Direccion] [text] NOT NULL,
[telefono] [text] NOT NULL,
[movil] [text] NULL,
[fax] [text] NULL,
[email] [text] NULL,
[vehiculo] [text] NULL,
[vivienda] [text] NULL,
[profesion] [text] NULL,
[fechanacimiento] [datetime] NULL,
[formalaboral] [text] NULL,
CONSTRAINT [PK__clientes__0519C6AF] PRIMARY KEY CLUSTERED
(
[idcliente] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[cuotas] Fecha de la secuencia de
comandos: 05/28/2008 22:01:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON

120
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[cuotas](
[idcredito] [char](10) NULL,
[cuota] [int] NULL,
[fechapago] [datetime] NULL,
[capital] [numeric](18, 2) NULL,
[interes] [numeric](18, 2) NULL,
[valcuota] [numeric](18, 2) NULL,
[saldo] [numeric](18, 2) NULL,
[pago] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[usuarios] Fecha de la secuencia de
comandos: 05/28/2008 22:02:04 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[usuarios](
[usuario] [char](10) NOT NULL,
[password] [text] NULL,
[perfil] [text] NULL,
[activo] [char](10) NULL,
[nombre] [text] NULL,
[apellido] [text] NULL,
[identificacion] [text] NULL,
CONSTRAINT [PK_usuarios] PRIMARY KEY CLUSTERED
(
[usuario] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[registrocredito] Fecha de la secuencia
de comandos: 05/28/2008 22:01:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[registrocredito](
[idcredito] [char](10) NOT NULL,
[cliente] [char](10) NOT NULL,
[nombrebusqueda] [text] NULL,
[valorsolicitado] [int] NULL,

121
[valoraprobado] [int] NULL,
[fechapresupuesto] [datetime] NULL,
[fechainicial] [datetime] NULL,
[fechafinal] [datetime] NULL,
[tipocredito] [text] NULL,
[numerocuotas] [int] NULL,
[periodo] [text] NULL,
[tea] [float] NULL,
[tasa] [text] NULL,
[estado] [text] NULL,
[formapago] [text] NULL,
CONSTRAINT [FK_registrocredito_1] PRIMARY KEY CLUSTERED
(
[idcredito] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: Table [dbo].[tasas] Fecha de la secuencia de
comandos: 05/28/2008 22:01:59 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tasas](
[idtasa] [char](10) NOT NULL,
[descripcion] [text] NULL,
[fecha] [datetime] NULL,
[valor] [float] NOT NULL,
PRIMARY KEY CLUSTERED
(
[idtasa] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Objeto: ForeignKey [FK_clientes_clientes] Fecha de la
secuencia de comandos: 05/28/2008 22:01:39 ******/
ALTER TABLE [dbo].[clientes] WITH CHECK ADD CONSTRAINT
[FK_clientes_clientes] FOREIGN KEY([idcliente])
REFERENCES [dbo].[clientes] ([idcliente])
GO
ALTER TABLE [dbo].[clientes] CHECK CONSTRAINT [FK_clientes_clientes]
GO

122

You might also like