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)

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

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.

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

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.

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 Conexin Internet Papelera CDs Servicio pblico Luz $ 1500.000 $ 160.000 $ 160.000 $ 20.000 $ 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 simulacin

Aprobar credito Registrar pago

Recibir solicitud Informar documentacin Consultar cuotas Reporte a cliente 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: Autor: Fecha: 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. Parametrizar aplicacin. Fabin Andrs Cuervo Fajardo 20/03/2008

35

Caso de Uso: Registrar usuarios Nombre: Autor: Fecha: 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. Registrar usuarios Fabin Andrs Cuervo Fajardo 20/03/2008

36

Caso de Uso: Registrar cliente Nombre: Autor: Fecha: 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. Registrar cliente Fabin Andrs Cuervo Fajardo 20/03/2008

37

Caso de Uso: Solicitar Crdito Nombre: Autor: Fecha: 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

Solicitar Crdito Fabin Andrs Cuervo Fajardo 20/03/2008

Caso de Uso: Ejecutar simulacin Nombre: Autor: Fecha: 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. Ejecutar simulacin Fabin Andrs Cuervo Fajardo 20/03/2008

39

Caso de Uso: Aprobar cancelar crdito Nombre: Autor: Fecha: 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 Aprobar cancelar crdito Fabin Andrs Cuervo Fajardo 20/03/2008

40

Caso de Uso: Registrar pago Nombre: Autor: Fecha: 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. Registrar pago Fabin Andrs Cuervo Fajardo 20/03/2008

41

Caso de uso parametrizar modulo

Caso de uso: Parametrizar el modulo. Nombre: Autor: Fecha: 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

Parametrizar el modulo Fabin Andrs Cuervo Fajardo 20/03/2008

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

ingresar tasa de interes anual del creito

informar cantidad de cuotas

Cliente

uses

uses

Informar tipo de pago


uses

Ejecutar simulacin

Caso de uso: Solicitar crdito Nombre: Autor: Fecha: Descripcin: Muestra la solicitud del crdito, por parte del cliente y el registro del mismo
44

Solicitar crdito Fabin Andrs Cuervo Fajardo 20/03/2008

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 Administrador BIngresarDocumento_Click_1() 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() usuario upd_activoNO() updateactivoNO() ejecutar() abrirconexion()

cerrarconexion() validaringreso()

validaringreso() getusuarioid() Consultar abrirconexion()

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 +registar_tasas() +gettasa() +gettasaid() +del_tasas() +udp_tasas() 1 1 tasas_bd +conexion : conexion_bd +settasa() +gettasa() +gettasaid() : tasas +deltasa() +updatetasa() 1

<<local>>
1

frm_parametrizartasas +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +parametrizartasas_Load() +BEliminarTasa_Click() +BActualizar_Click() +CActualizarTasa_SelectedIndexChanged()

<<parametter>>

<<local>>
1 conexion_bd +con : Object +abrirconexion() +cerraconexion() +ejecutar() +consultar()

1 tasas

+idtasa : String +descripcion : String +valor : Double +fecha : Date +settasas() +Getidtasa() : String +Getdescripcion() : String +Getvalor() : Double +Getfecha() : Date

Parametrizar documentos

55

Parametriza requisitos
1

creditos +req : requisitos +req_bd : requisito_bd +registar_tipocredito() +getrequisito() +getrequisitosidcredito() +getrequisitoid() +del_requisito() +udp_requisito() 1 1

<<local>>
1

frm_parametrizarrequisitos +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +parametrizarrequisitos_Load() +BEliminarrequisitos_Click() +BIngresarrequisito_Click() +CActualizarrequisito_SelectedIndexChanged() +BIngresarrequisitos()

1 requisito_bd +conexion : conexion_bd +setrequisito() +getrequisito() +getrequisitoid() : requisitos +delrequisito() +updaterequisito() 1

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

<<parametter>> 1

56

Parametrizar tipo crdito


1

creditos +tcr : tipocredito +tcr_bd : tipocredito_bd +registar_tipocredito() +gettipocredito() +gettipocreditoid() +del_tipocredito() +udp_tipocredito() 1 1 tipocredito_bd +conexion : conexion_bd +settipocredito() +gettipocredito() +gettipocreditoid() : tipocredito +deltipocredito() +updatetipocredito() 1 1

<<local>>
1

frm_parametrizartipocredito +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +parametrizartipocredito_Load() +BEliminarrtipocredito_Click() +BIngresartipocredito_Click() +CActualizartipocredito_SelectedIndexChanged() +Bingresartipocredito()

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

<<parametter>> 1

57

Simular crdito e Ingresar cuotas

creditos +cuo : cuotas +cuo_bd : cuota_bd -sim : simular credito +registar_cuotas() +getcuotas() +getcuotas() +getcuotasid() +del_cuotas() +udp_cuotas() +simularcredito()

frm_simulacion 1 +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +parametrizarcuotas_Load() +BIngresarcuotas()

cuota_bd +conexion : conexion_bd +setcuotas() +getcuotas() +getcuotaid() : cuotas +delcuota() +updatecuota() 1 1

<<parametter>>
1

<<local>>

1 conexion_bd +con : Object +abrirconexion() +cerraconexion() +ejecutar() +consultar() 1

simular credito 1 cuotas +idcredito : String +pago : String +capital : Double +interes : Double +valcuota : Double +saldo : Double +mora : Double -fecha : Date +setcuota() +Getidcredito() : String +Getpago() : String +Getcapital() : Double +GetValcuota() : Double +Getsaldo() : Double +Getmora() : Double +Getfecha() : Date +cuota : Integer +dias : Integer +diasdate : Integer +capital : Double +interesperiodo : Double +intreres : Double +valcuota : Double +saldo : Double +mora : Double -fechapago : Date +simualrcredito() 1 1

<<parametter>>

1 tasas tasas_bd +conexion : conexion_bd +settasa() +gettasa() +gettasaid() : tasas +deltasa() +updatetasa() 1

<<local>>

+idtasa : String +descripcion : String +valor : Double +fecha : Date +settasas() +Getidtasa() : String +Getdescripcion() : String +Getvalor() : Double +Getfecha() : Date

58

Parametrizar clientes
1

creditos +cli : clientes +cli_bd : cliente_bd +registar_clientes() +getclientes() +getclientes() +getclientesid() +del_clientes() +udp_clientes() 1 1

<<local>>
1

frm_parametrizarclientes +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +parametrizarclientes_Load() +BIngresarclientes() +BActualizarclientes() +BEliminarclientes() +CActualizarcliente_SelectedValueChanged()

1 cliente_bd +conexion : conexion_bd +setcliente() +getcliente() +getclienteid() : clientes +delcliente() +updatecliente() 1

<<local>>
1 1 clientes conexion_bd +con : Object +abrirconexion() +cerraconexion() +ejecutar() +consultar() +idcliente : String +nombrebusqueda : String +primernombre : String +segundonombre : String +primerapellido : String +segundoapellido : String +direccion : String +telefono : String +movil : String +fax : String +email : String +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

<<parametter>>

59

Registrar Crditos
1

creditos +rcr : registrocredito +rcr_bd : registrocredito_bd +registrocredito() +getregistrocredito() +getregistrocreditoid() +del_registrocredito() +udp_registrocredito() 1 1 registrocredito_bd +conexion : conexion_bd +setregistrocredito() +getregistrocredito() +getregistrocreditoid() : registrocredito +delregistrocredito() +updateregistrocredito() 1

<<local>>
1

frm_registrocredito +cred +cargando : Boolean +llenardatagrid() +llenarcombocox() +registrocredito_Load() +Bregistrocredito() +BActualizarregistrocredito() +BEliminarregistrocredito() +Cregistrocredito_SelectedValueChanged() 1

1
registrocredito +idcredito : String +cliente : String +nombre : String +tasa : String +estado : String +tipocredito : String +periodo : String +formapago : String +valorsolicitado : Integer +valoraprobado : Integer +numerocuotas : Integer +fechainicial : Date +fechafinal : Date +fechapresupuesto : Date +tea : Double +setregistrarcredito() +Getidcredito() : String +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

<<local>>
1 conexion_bd +con : Object +abrirconexion() +cerraconexion() +ejecutar() +consultar()

<<parametter>>

60

Diagrama de clases Usuarios

frm_principal +cred : creditos +ClientesToolStripMenuItem_Click() +ExamenesToolStripMenuItem_Click() +SoliToolStripMenuItem_Click() +ExamenesClienteToolStripMenuItem_Click() +ConsultarExamenesPorPacienteToolStripMenuItem_Click() +RechazarAprobarSolicitudToolStripMenuItem_Click() +UsuariosToolStripMenuItem_Click() +principal_FormClosed() +ResultadosExamenesToolStripMenuItem_Click() +ConsultarSolicitudesToolStripMenuItem_Click() 1 1 creditos +usr : usuarios +usrbd : usuarios_bd +registar_usuarios() +getusuarios() +getusuairoactivo() +getusuarioid() +del_clientes() +udpactivo() +udpactivono() 1 1

frm_Ingreso 1 +cred : creditos +ingresar : Boolean -contador : Integer +BIngreso_Click()

<<local>>
1

1 1

frm_usuario 1 +cre : creditos +cargando : Boolean +llenardatagrid() +llenarcombocox() +usuarios_Load() +BIngresarusuario() +BEliminarclientes()

usuarios_bd +conexion : conexion_bd +setusuario() +getusuario() +getusuarioid() : usuarios +delusuario() +updateactivo() +updateactivoNO() +getusuarioactivo()

1 <<parametter>>
1 usuarios +usuario : String +nombre : String +apellido : String +Identificacion : String +password : String +perfil : String +setusuario() +Getusuario() : String +Getnombre() : String +getapellido() : String +getidentificacion() : String +getpassword() : String +getperfil() : String

<<local>>

1 conexion_bd +con : Object +abrirconexion() +cerraconexion() +ejecutar() +consultar()

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

1.

sim

c ula

ion

2.1. getregistrocreditoid() Creditos


2.2 s

3. Consultar registrarcredito Conexion bd

im u

lar c

red it

o()

. ge 4.1

ai d ttas

()

tasasbd

simulacion
4 .3 .s

etc

uo

s 2. 4.

as ot tcu e

tas

cuotas

cuotasbd

63

Diagrama de colaboracin ingreso usuarios

et .g 2 .2 u us ) d( ioi ar

jec 3.1. e utar

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 PK idcliente nombrebusqueda primernombre segundonombre primerapellido segundoapellido Direccion telefono movil fax email vehiculo vivienda profesion fechanacimiento formalaboral registrocredito PK,FK1 idcredito cliente nombrebusqueda valorsolicitado valoraprobado fechapresupuesto fechainicial fechafinal tipocredito numerocuotas periodo tea tasa estado formapago PK tasas idtasa descripcion fecha valor idcredito

FK1

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

FK2

Entidades Tipos de crdito


tipocreditos PK,FK1 idcredito descripcion presupuesto idrequisito

FK2

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 nombrebusqueda primernombre segundonombre primerapellido segundoapellido Direccion telefono Mvil Fax Email vehiculo vivienda profesion fechanacimiento formalaboral char(10) Text Text Text Text Text Text Text Text Text Text Text Text Text Datetime Text NOT NULL NULL NOT NULL NULL NOT NULL NULL NOT NULL NOT NULL NULL NULL NULL NULL NULL NULL NULL NULL

Cuotas idcredito Cuota fechapago capital interes char(10) NULL int NULL datetime NULL numeric (18, 2) NULL numeric (18, 2) NULL
68

valcuota Saldo Mora Pago

numeric numeric numeric Text

(18, 2) NULL (18, 2) NULL (18, 2) NULL NULL

Documentos Iddocumento descripcion Cantidad char(10) Text Int NOT NULL NULL NOT NULL

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

Requisitos Idrequisito Iddocumento Formalaboral Idcredito char(10) char(10) text char(10) NOT NULL NULL NULL NULL

69

Tasas Idtasa descripcion Fecha Valor char(10) Text datetime Float NOT NULL NULL NULL NOT NULL

Tipocreditos idcredito descripcion presupuesto char(10) Text Int NOT NULL NULL NOT NULL

Usuarios usuario password Perfil Activo nombre apellido identificacion char(10) Text Text char(10) Text Text Text NOT NULL NULL NULL NULL NULL NULL 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 La funcin de validacin de letras es correcta La funcin de validacin de nmeros es correcta La rutina de validacin de espacios en blanco es correcta SI X X X NO

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 Se generan errores al momento de cargar un Submen Los Submens son complejos La interaccin con el usuario es fcil La seleccin de mens y submens funciona Realiza el proceso de insercin de nuevo entorno Realiza el proceso de salir del entorno actual X X X X SI NO X 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 Existe una documentacin interna (cdigo) Los nombres de las variables y etiquetas son significativas Los comentarios son fciles de entender Existe una documentacin externa La ayuda es fcil de entender y manejar SI X X X X X NO

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 Existe perfiles de usuario para el funcionamiento del sistema Solicita contrasea al ingresar a la aplicacin SI X X NO

4.2.5 Pruebas de Calidad Objetivo: Verificar la capacidad operativa y de adaptacin a los cambios en la aplicacin.

75

PRUEBAS Existe portabilidad El cdigo es reutilizable Existe integridad Es fcil de utilizar

SI

NO X

X X 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.proactivacalidad.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/eses/library/fx6bk1f4(VS.80).aspx [Citado Mayo 17 de 2008] [15] Visual Basic. Disponible: http://msdn.microsoft.com/eses/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