UNIVERSIDAD TÉCNICA DE BABAHOYO
FACULTAD DE ADMINISTRACIÓN FINANZAS E
INFORMÁTICA
AUTOR:
DARWIN PATRICIO MOROCHO TENELEMA
CURSO:
VII SEMESTRE SISTEMAS
ASIGNATURA:
INGENIERÍA DEL SOFTWARE II
TEMA:
SOFTWARE PARA LA SIMULACION DE CRÉDITOS
PERSONALES
DOCENTE:
ING. MARÍA GONZALES
BABAHOYO – 2021
INTRODUCCIÓN
En la actualidad la tecnología está irrumpiendo con fuerza en la mayoría de los
ámbitos por las ventajas que ofrecen como movilidad y facilidad de acceso.
Debido a esto las aplicaciones se está convirtiendo en un mercado mundial,
logrando que muchas empresas inviertan en su desarrollo para lograr mayores ganancias,
eficiencia y agilidad al momento de prestar sus servicios a la ciudadanía.
Sin embargo no cuentan con un medio que permita a los usuarios simular créditos
de los bancos o personas que se dediquen a este tipo de actividades a cierta distancia de
su ubicación, de cada banco y según el crédito; además de mostrar el banco que presenta
la mejor alternativa de crédito, sus oficinas con su respectiva información y ruta,
provocando con esto que los usuarios pierdan tiempo y dinero al trasladarse a cada
institución financiera para obtener información sobre el crédito que deseen solicitar.
Es por ello, se ha propuesto el desarrollo del presente trabajo cuyo objetivo
principal es “Simular los créditos a través de una aplicación multiplataforma.
La simulación es la representación de un proceso o fenómeno mediante otro más
simple, que permite analizar sus características; Pero la simulación no es solo eso también
es algo muy cotidiano, hoy en día, puede ser desde la simulación de un examen, que le
hace la maestra a su alumno para un examen del ministerio, la producción de textiles,
alimentos, juguetes, construcción de infraestructuras por medio de maquetas, hasta el
entrenamiento virtual de los pilotos de combate.
Ahora en la actualidad existen empresas que comercializan con créditos y no se
posee con el software necesario para el cálculo y la administración de esto más que en
Hojas de cálculo, y aplicaciones que no cubren totalmente sus necesidades, ya que no
acompañan todo el proceso del Crédito, solo el cálculo de las cuotas y los intereses del
Crédito con las limitantes de la hoja de cálculo y de los conocimientos de la persona que
opera estos cálculos.
CARACTERÍSTICAS DEL SOFTWARE
CAPACIDAD DE MANTENIMIENTO:
El mantenimiento del software debe ser fácil para cualquier tipo de usuario.
FLEXIBILIDAD:
El cambio en el software debe ser fácil de hacer.
EXTENSIBILIDAD
Debe ser fácil de aumentar nuevas funciones.
ESCALABILIDAD:
Debe ser muy fácil de actualizar para más trabajo. (UPDATE)
CAPACIDAD DE PRUEBA:
Prueba del software debe ser fácil.
SEGURO:
Dentro de este proyecto vamos a otorgar al personal capacitado en el negocio,
un usuario y una contraseña predeterminado
EFICIENTE:
Este proyecto va a tener pasos que cumplir en la hora de generación de
reportes que indica la fecha y hora,
ESTUDIO DE FACTIBILIDAD
Este proyecto dará una facilidad y comodidad a los usuarios de poder realizar estos
procesos desde cualquier computador o dispositivo móvil que se encuentre conectado al
internet, esta solución tecnológica es realizada con el fin de introducirla al mercado
comercial y demostrar el costo/beneficio que se obtienen ya que será parametrizable a
cada negocio según las políticas que posee cada una.
FACTIBILIDAD TÉCNICA:
Debido a tratarse de un sistema pequeño, pero sumamente importante, sus costos
son bajos y la necesidad de equipos potentes es innecesaria, motivo por el cual un equipo
pequeño y una impresora común funcionarían adecuadamente con el sistema.
Al momento de vender el software e instalarlo se debe contar con estos requisitos,
por lo que no habría necesidad de adquirirlos. En cuanto nuestros conocimientos son
suficientes para el desarrollo y cumplimiento del software. Se debe de concluir indicando
si es factible o no desarrollar técnicamente el proyecto.
Para una mejor explicación de lo que se ha descrito anteriormente, se muestra la
siguiente tabla, detallando las características tanto de Hardware como de Software que se
necesitan para el desarrollo y funcionamiento del sistema:
HARDWARE SOFTWARE
Sistema operativo Windows 10
Monitor de 20 pulgadas
actualización (21h1)
Procesadores de 8va Generación en XAMMP, SublimeTEXT o Visual Studio
adelante. Code
Mínimo 8 Gb de Memoria RAM Antivirus, Firewall
Navegadores (Google Chrome versión 91
Tarjeta de Red
superior, Firefox Versión 89.0 Superior)
Puertos USB Antivirus NOD 32 versión 13 superior
Teclados, Impresoras, mouse Lector de PDF (Nitro PDF)
Reguladores de Voltaje o UPS Microsoft Office (2019 superior)
FACTIBILIDAD ECONÓMICA
En el estudio de la Factibilidad Económica, determinamos el presupuesto de
costos de los recursos técnicos, humanos y materiales tanto para el desarrollo como para
la implantación del Sistema.
Además, nos ayudará a realizar el análisis costo-beneficio de nuestro sistema, el
mismo que nos permitirá determinar si es factible a desarrollar económicamente el
proyecto.
A continuación, se describe los costos del recurso necesario para el desarrollo de
nuestro Sistema de Información:
Recursos Humanos
Nº Cargo Costo Costo Total
Individual
1 Ing. Sistema (Líder del Proyecto) 1200,00 1200,00
2 Analista/Diseñador 960,00 1920,00
1 Ingeniero del Software 840,00 840,00
1 Programador 720,00 720,00
Total 4680,00
Recursos Tecnológicos
Hardware
Cantidad Descripción Costo/Hora Total
2 140 horas Computadora 0,80 224,00
1 Impresora Epson l6161 500,00
Software
Cantidad Descripción Costo/Hora Costo Total
1 Licencia Microsoft Office 400,00
2 Licencia Antivirus 30,00
2 Licencia Nitro PDF 30,00
Total 1184,00
Recursos Materiales
Cantidad Descripción Costo Total
1 Resma de Papel A4 3,50 3,50
4 Tinta para Impresora 60,00 60,00
1 Transporte a la empresa 50,00
1 Viáticos 60,00
Total 173.50
Flujo de Pago
Recursos Costos
Recursos Humanos 4680,00
Recursos Tecnológicos 1184,00
Recursos Materiales 173,50
Imprevistos (10%) 545,23
Total $6582,73
Costo de Operación
Descripción Costo Total
Suministros y Gastos 600,00
Diseñador Gráfico 850,00
Total 1450,00
FACTIBILIDAD OPERACIONAL:
Por este motivo, la creación de un sistema que automatice dicho problema será
una de las mejores soluciones, además se ha obtenido la información necesaria mediante
la investigación realizada, con lo que se creara un sistema que llene todas las expectativas
y necesidades.
En cuanto a información, control y su eficacia se tiene como objetivo trabajar
mutuamente con los socios, secretaria y el gerente, para que ellos vayan describiendo
cuáles serán los requerimientos en el sistema y de esta manera desarrollar un sistema en
donde se tendrá la completa satisfacción de los que lo van a utilizar.
Además, gracias a su plan de trabajo tiene gran aceptación entre los que lo van a
utilizar por parte de la directiva y el resto de socios que piensan que el sistema es ideal
para sus metas y que el problema será superado.
Toda lo resumido anteriormente se lo redacto a partir de las preguntas que se dicen
a continuación:
Preguntas:
¿Está conforme toda la empresa con las soluciones que se van a obtener mediante el
sistema?
Si, ya que solucionara dos grandes problemas dentro de la empresa, además el
resto de socios podrán tener a mano información de sus créditos.
¿Usted como persona encargada de manejar estos procesos de manera directa cree
que el sistema que estamos planteando le es de gran ayuda?
Sí, porque me ahorraría tiempo a la hora de realizar los procesos, y de esta manera
estaría disponible para realizar otras tareas, además los resultados serían más exactos.
¿En qué le beneficia el presente sistema?
El principal beneficio que me otorga es tener acceso a información que antes no
se podía, como conocer el estado de un crédito de una manera fácil y accesible.
FACTIBILIDAD LEGAL O JURÍDICA
Se recomienda adquirir las licencias para el software a emplearse en la
implantación de un sistema informático de manera auténtica, con la finalidad de no tener
inconvenientes legales a futuro.
La factibilidad legal nos permite determina los derechos que tienen los autores
sobre la documentación realizada por estos en este proyecto, la cual es exclusividad de
los desarrolladores de este sistema, por tal motivo queda prohibida la distribución y
reproducción de este documento, tales como la publicación impresa o su grabación.
ANÁLISIS COSTO BENEFICIO
La estimación de costos para desarrollos a la medida puede tener márgenes de
error bastante significativos en función del tamaño del proyecto y la precisión de las
especificaciones.
Incluso en algunos casos en los cuales no existe un proceso riguroso de control de
cambios, la estimación de esfuerzo original puede resultar totalmente errónea.
Por tal motivo, se deben utilizar métodos alternativos para la evaluación del
esfuerzo del proceso con el objeto de utilizarlos como mecanismo de validación.
Para ello un método que puede ser utilizado como una forma de validación
complementaria es el peso porcentual del esfuerzo por actividad del proceso para un
desarrollo de estas características.
MODELO CICLO DE VIDA DEL SOFTWARE
MODELO DE CICLO DE VIDA LINEAL
“Ciclo de vida básico del software”, sugiere un enfoque sistemático, secuencial
para el desarrollo de software. Inicia en un nivel de sistemas y progresa con el análisis,
diseño, complementación, pruebas y mantenimiento. Desarrollado entre 1960-1980,
Basado en el modelo en cascada de Winston Royce.
Se conoce como el ciclo de vida básico. Secuencia de actividades, donde la
estrategia principal es seguir el progreso del desarrollo de software hacia puntos de
revisión bien definidos mediante entregas calendarizadas. Análisis de requerimientos:
Sirve para comprender la naturaleza de los programas a desarrollar, el ingeniero debe
comprender el dominio de información del software, así como la función requerida, el
comportamiento, el rendimiento y la interconexión. Diseño: Es un proceso de muchos
pasos que se centra en 4 atributos del programa:
Estructura de datos
arquitectura de software
representaciones de interfaz
detalle-procedimental (algoritmo).
Traduce requisitos en una representación del software donde se puede evaluar su calidad
antes de que comience su codificación
IMPLEMENTACIÓN:
El diseño se traduce en una forma legible por la máquina, usando lenguajes de
programación o lenguajes 4gl entre otros.
Pruebas: Después de generar el código, se prueba la funcionalidad de este, haciendo un
test de los procesos lógicos internos, se busca detectar errores y garantizar que el software
hace exactamente lo que debe hacer.
MANTENIMIENTO:
El software debe sufrir cambios, ya sea por la detección de errores, por nuevas
necesidades y requerimientos, por modernizar la funcionalidad de este o por adaptación
a cambios del medio externo del software. Este modelo es el más antiguo y usado en la
ingeniería del software.
ANÁLISIS DE REQUERIMIENTOS
La ingeniería de requisitos del software es un proceso de descubrimiento,
refinamiento, modelado y especificación. Se refinan en detalle los requisitos del sistema
y el papel asignado al software. Tanto el desarrollador como el cliente tienen un papel
activo en la ingeniería de requisitos – un conjunto de actividades que son denominadas
análisis – El cliente intenta replantear un sistema confuso, a nivel de descripción de datos,
funciones y comportamiento, en detalles concretos.
El desarrollador actúa como interrogador, como consultor, como persona que
resuelve problemas y como negociador
Tipo de usuario: Administrador
Formación Ingeniero En sistemas o carreras a fines
Habilidades Trabajar bajo presión, ser creativo.
Manejo de plataformas Contables
Actividades Controlar y monitorear a los usuarios y
clientes, crear nuevos usuarios con
privilegios al sistema.
Tipo de usuario: Supervisor
Formación Ingeniero CPA o carreras a fines
Habilidades Trabajar bajo presión, ser creativo.
Manejo de plataformas Contables.
Actividades Registrar Información de los clientes en la
BD para su solicitud del crédito.
Tipo de usuario: Cliente
Formación N/A
Habilidades Conocimientos básicos de computación
Actividades N/A
MÓDULOS DE SOFTWARE
REQUERIMIENTOS FUNCIONALES
Describen lo que el sistema debe hacer, es decir, especifican acciones que el
sistema debe ser capaz de realizar, sin considerar restricciones físicas. Los requerimientos
funcionales especifican el comportamiento del sistema.
Requerimientos no funcionales
Describen únicamente atributos del sistema o atributos del ambiente del sistema y
pueden ser por ejemplo: la gestión de requerimientos de interfaz, de diseño,
de implementación, legales, físicos, de costo, de tiempo, de calidad, de seguridad, de
construcción, de operación, entre otros.
✓ De acuerdo al nivel de cumplimiento
✓ Requerimiento obligatorio
✓ Es un requerimiento que debe ser implementado.
✓ Requerimiento recomendable
✓ Es deseable que sea implementado.
✓ Requerimiento opcional
✓ No es crítica su implementación.
REQUERIMIENTOS FUNCIONALES
Numero de requisito: RF1
Nombre de requisito: Ingreso al sistema.
Tipo: X REQUISITO RESTRICCIÓN
Fuente de requisito: BD Tablas : Usuario CAMPOS: nombre , clave
Prioridad de requisito: X ESENCIAL/ALTO DESEADO MEDIO
APORTE BAJO
ENTRADAS
Usuario y contraseña del sistema.
PROCESOS
Para cumplir con este requerimiento se le presentará una sola pantalla donde el sistema
pedirá la correspondiente identificación como administrador para efectuar la tarea.
SALIDAS
Mensaje de aviso: operaciones efectuadas satisfactoriamente.
Mensaje de error: en casos de ingresar incorrectamente los datos es decir que el formato
de los datos sea incorrecto.
Numero de requisito: RF2
Nombre de requisito: Préstamo
Tipo: X REQUISITO RESTRICCIÓN
Fuente de requisito: BD Tablas : préstamo CAMPOS:
Prioridad de requisito: X ESENCIAL/ALTO DESEADO MEDIO
APORTE BAJO
ENTRADAS
Seleccionar el cliente previamente registrado y el usuario quien realizará la operación
crediticia, además se ingresa el monto, se selecciona interés el monto a solicitar y forma
de pago.
PROCESOS
Para cumplir con este requerimiento se le presentará una sola pantalla donde el sistema
pedirá que escoja el cliente y usuario registrado.
SALIDAS
Mensaje de aviso: préstamo registrado
Mensaje de error: en casos de ingresar incorrectamente los datos es decir que el formato
de los datos sea incorrecto.
DIAGRAMA DE CONTEXTO
GASTOS
Ingresar Gastos de los
usuarios/Operadores del SW
Permite conocer el
rol de cada usuario
SOFTWARE
y modificar Ingresar información
PARA LA de cliente
Usuario/Operador del SIMULACIÓN DE
SW CRÉDITOS CLIENTES
PERSONALES
Ingresar
Información de los
usuarios del SW y
los roles que
cumplirán
Proporciona información de las Permite conocer los créditos realizados
operaciones crediticias realizadas por por cada operario del software.
cada operario.
Consultas
DIAGRAMA DE NIVEL N
2. Registro de
ADMINISTRADOR 1. Inicio de Información CLIENTE
Sesión al sistema de Clientes
3.Consulta de
4. Generar informe Datos de clientes
PRESTAMO general de
Clientes/Préstamo
5. Ingresar detalles
del préstamo, monto, 7. Ingresar
forma de pago y 6. generar Reporte información del
de los créditos PAGOS
plazo. cliente
8. Usuario
10. Consulta 9. Ingresar el GASTOS quien recauda
de prestamos Consulta Usuario que va
reportar el gasto
11. Generar
reporte
DIAGRAMA DE CASO DE USO
usuarios
Clientes
Préstamo
Pagos
Software
gastos
Cliente
administrador
Consultas
Prestamos
Pago
Agente Software
Gastos
Diagrama de Actividades
Registrar Cliente
Consultar Cliente
Generar tabla
Generar Préstamo Amortización
CÓDIGO DE LA APP WEB
LOGIN. JS
$("#frmAcceso").on('submit',function(e)
{
e.preventDefault();
logina=$("#logina").val();
clavea=$("#clavea").val();
$.post("../ajax/usuarios.php?op=verificar",
{"logina":logina,"clavea":clavea},
function(data)
{
if (data!="null")
{
$(location).attr("href","concepto.php");
}
else
{
bootbox.alert("Usuario y/o Password incorrectos");
}
});
})
CLIENTE.JS
var tabla;
//Funcion que se ejecuta al inicio
function init() {
mostrarform(false);
listar();
$("#formulario").on("submit", function (e) {
guardaryeditar(e);
})
}
//Funcion Limpiar
function limpiar() {
$("#idcliente").val("");
$("#cedula").val("");
$("#nombre").val("");
$("#direccion").val("");
$("#telefono").val("");
}
//Mostrar Formulario
function mostrarform(flag) {
limpiar();
if (flag) {
$("#listadoregistros").hide();
$("#formularioregistros").show();
$("#btnGuardar").prop("disabled", false);
$("#btnagregar").hide();
} else {
$("#listadoregistros").show();
$("#formularioregistros").hide();
$("#btnagregar").show();
}
}
function cancelarform() {
limpiar();
mostrarform(false);
}
function listar() {
tabla = $('#tbllistado').dataTable({
"aProcessing": true, //Activamos el procesamiento del datatables
"aServerSide": true, //Paginación y filtrado realizados por el se
rvidor
dom: 'Bfrtip', //Definimos los elementos del control de tabla
buttons: [
'copyHtml5',
'excelHtml5',
'pdf'
],
"ajax": {
url: '../ajax/clientes.php?op=listar',
type: "get",
dataType: "json",
error: function (e) {
console.log(e.responseText);
}
},
"bDestroy": true,
"iDisplayLength": 10, //Paginación
"order": [
[2, "asc"]
] //Ordenar (columna,orden)
}).DataTable();
}
function guardaryeditar(e) {
e.preventDefault(); //No se activará la acción predeterminada del eve
nto
$("#btnGuardar").prop("disabled", true);
var formData = new FormData($("#formulario")[0]);
$.ajax({
url: "../ajax/clientes.php?op=guardaryeditar",
type: "POST",
data: formData,
contentType: false,
processData: false,
success: function (datos) {
bootbox.alert(datos);
mostrarform(false);
tabla.ajax.reload();
}
});
limpiar();
}
function mostrar(idcliente) {
$.post("../ajax/clientes.php?op=mostrar", {
idcliente: idcliente
}, function (data, status) {
data = JSON.parse(data);
mostrarform(true);
$("#cedula").val(data.cedula);
$("#nombre").val(data.nombre);
$("#direccion").val(data.direccion);
$("#telefono").val(data.telefono);
$("#idcliente").val(data.idcliente);
})
}
//Función para desactivar registros
function desactivar(idcliente) {
bootbox.confirm("¿Está Seguro de desactivar el Cliente?", function (r
esult) {
if (result) {
$.post("../ajax/clientes.php?op=desactivar", {
idcliente: idcliente
}, function (e) {
bootbox.alert(e);
tabla.ajax.reload();
});
}
})
}
//Función para activar registros
function activar(idcliente) {
bootbox.confirm("¿Está Seguro de activar Cliente?", function (result)
{
if (result) {
$.post("../ajax/clientes.php?op=activar", {
idcliente: idcliente
}, function (e) {
bootbox.alert(e);
tabla.ajax.reload();
});
}
})
}
init();
PRÉSTAMO.JS
var tabla;
//Funcion que se ejecuta al inicio
function init(){
mostrarform(false);
listar();
$("#formulario").on("submit",function(e)
{
guardaryeditar(e);
});
//Cargamos los items al select Cliente
$.post("../ajax/prestamos.php?op=selectCliente", function(r){
$("#idcliente").append(r);
$('#idcliente').selectpicker('refresh');
});
//Cargamos los items al select Usuarios
$.post("../ajax/prestamos.php?op=selectUsuario", function(r){
$("#usuario").append(r);
$('#usuario').selectpicker('refresh');
});
}
//Funcion Limpiar
function limpiar(){
$("#idprestamo").val("");
$("#idcliente").val("");
$("#usuario").val("");
$("#fprestamo").val("");
$("#monto").val("");
$("#interes").val("");
$("#saldo").val("");
$("#formapago").val("");
$("#fechapago").val("");
$("#plazo").val("");
$("#fplazo").val("");
$("#estado").val("");
//Obtenemos la fecha actual
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#fprestamo').val(today);
//Mostrar Formulario
function mostrarform(flag)
{
limpiar();
if (flag)
{
$("#listadoregistros").hide();
$("#formularioregistros").show();
$("#btnGuardar").prop("disabled",false);
$("#btnagregar").hide();
}
else
{
$("#listadoregistros").show();
$("#formularioregistros").hide();
$("#btnagregar").show();
}
}
function cancelarform()
{
limpiar();
mostrarform(false);
}
function listar()
{
tabla=$('#tbllistado').dataTable(
{
"aProcessing": true,//Activamos el procesamiento del datatables
"aServerSide": true,//Paginación y filtrado realizados por el ser
vidor
dom: 'Bfrtip',//Definimos los elementos del control de tabla
buttons: [
'copyHtml5',
'excelHtml5',
'pdf'
],
"ajax":
{
url: '../ajax/prestamos.php?op=listar',
type : "get",
dataType : "json",
error: function(e){
console.log(e.responseText);
}
},
"bDestroy": true,
"iDisplayLength": 10,//Paginación
"order": [[ 0, "desc" ]]//Ordenar (columna,orden)
}).DataTable();
}
function guardaryeditar(e)
{
e.preventDefault(); //No se activará la acción predeterminada del eve
nto
$("#btnGuardar").prop("disabled",true);
var formData = new FormData($("#formulario")[0]);
$.ajax({
url: "../ajax/prestamos.php?op=guardaryeditar",
type: "POST",
data: formData,
contentType: false,
processData: false,
success: function(datos)
{
bootbox.alert(datos);
mostrarform(false);
tabla.ajax.reload();
}
});
limpiar();
}
function mostrar(idprestamo)
{
$.post("../ajax/prestamos.php?op=mostrar",{idprestamo : idprestamo},
function(data, status)
{
data = JSON.parse(data);
mostrarform(true);
$("#idcliente").val(data.cliente);
$('#idcliente').selectpicker('refresh');
$("#usuario").val(data.usuario);
$('#usuario').selectpicker('refresh');
$("#fprestamo").val(data.fecha);
$("#monto").val(data.monto);
$("#interes").val(data.interes);
$("#saldo").val(data.saldo);
$("#formapago").val(data.formapago);
$("#fechapago").val(data.fechap);
$("#plazo").val(data.plazo);
$("#fplazo").val(data.fechaf);
$("#estado").val(data.estado);
$("#idprestamo").val(data.idprestamo);
});
}
//Función para eliminar registros
function eliminar(idprestamo)
{
bootbox.confirm("¿Está Seguro de eliminar el Prestamo?", function(res
ult){
if(result)
{
$.post("../ajax/prestamos.php?op=eliminar", {idprestamo : idp
restamo}, function(e){
bootbox.alert(e);
tabla.ajax.reload();
});
}
})
}
init();
/*
$(document).ready(function($){
var mont;
$('#monto').keyup(function (e) {
mont = $(this).val();
//console.log(mont)
})
$('select#interes').on('change',function(){
var valor = $(this).val();
var subt = mont * (valor/100);
var total = parseFloat(subt) + parseFloat(mont);
$("#saldo").val(total);
})
sumaDias = function(d, fecha)
{
var Fecha = new Date();
var sFecha = fecha || (Fecha.getDate() + "-
" + (Fecha.getMonth() +1) + "-" + Fecha.getFullYear());
var sep = sFecha.indexOf('-') != -1 ? '-' : '-';
var aFecha = sFecha.split(sep);
var fecha = aFecha[2]+'-'+aFecha[1]+'-'+aFecha[0];
fecha= new Date(fecha);
fecha.setDate(fecha.getDate()+parseInt(d));
var anno=fecha.getFullYear();
var mes= fecha.getMonth()+1;
var dia= fecha.getDate();
mes = (mes < 10) ? ("0" + mes) : mes;
dia = (dia < 10) ? ("0" + dia) : dia;
var fechaFinal = dia+sep+mes+sep+anno;
return (fechaFinal);
}
$('select#formapago').on('change',function(){
var valor = $(this).val();
if(valor == 'Diario'){
$('#fechapago').val(sumaDias(1));
}
if(valor == 'Semanal'){
$('#fechapago').val(sumaDias(5));
}
if(valor == 'Quincenal'){
$('#fechapago').val(sumaDias(15));
}
if(valor == 'Mensual'){
$('#fechapago').val(sumaDias(30));
}
})
$('select#plazo').on('change',function(){
var valor = $(this).val();
if(valor == 'Dia'){
$('#fplazo').val(sumaDias(1));
}
if(valor == 'Semana'){
$('#fplazo').val(sumaDias(5));
}
if(valor == 'Quincena'){
$('#fplazo').val(sumaDias(15));
}
if(valor == 'Mes'){
$('#fplazo').val(sumaDias(30));
}
})
})
*/
PAGOS.JS
ar tabla;
//Funcion que se ejecuta al inicio
function init() {
mostrarform(false);
listar();
$("#formulario").on("submit", function (e) {
guardaryeditar(e);
});
//Cargamos los items al select Cliente
$.post("../ajax/pagos.php?op=selectPrestamo", function(r){
$("#idprestamo").append(r);
$('#idprestamo').selectpicker('refresh');
});
}
//Funcion Limpiar
function limpiar() {
$("#idpago").val("");
$("#idprestamo").val("");
$("#usuario").val("");
$("#fecha").val("");
$("#cuota").val("");
//Obtenemos la fecha actual
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
$('#fecha').val(today);
}
//Mostrar Formulario
function mostrarform(flag) {
limpiar();
if (flag) {
$("#listadoregistros").hide();
$("#formularioregistros").show();
$("#btnGuardar").prop("disabled", false);
$("#btnagregar").hide();
} else {
$("#listadoregistros").show();
$("#formularioregistros").hide();
$("#btnagregar").show();
}
}
function cancelarform() {
limpiar();
mostrarform(false);
}
function listar() {
tabla = $('#tbllistado').dataTable({
"aProcessing": true, //Activamos el procesamiento del dat
atables
"aServerSide": true, //Paginación y filtrado realizados p
or el servidor
dom: 'Bfrtip', //Definimos los elementos del control de t
abla
buttons: [
'copyHtml5',
'excelHtml5',
'pdf'
],
"ajax": {
url: '../ajax/pagos.php?op=listar',
type: "get",
dataType: "json",
error: function (e) {
console.log(e.responseText);
}
},
"bDestroy": true,
"iDisplayLength": 10, //Paginación
"order": [
[3, "desc"]
] //Ordenar (columna,orden)
}).DataTable();
}
function guardaryeditar(e) {
e.preventDefault(); //No se activará la acción predeterminada
del evento
$("#btnGuardar").prop("disabled", true);
var formData = new FormData($("#formulario")[0]);
$.ajax({
url: "../ajax/pagos.php?op=guardaryeditar",
type: "POST",
data: formData,
contentType: false,
processData: false,
success: function (datos) {
bootbox.alert(datos);
mostrarform(false);
tabla.ajax.reload();
}
});
limpiar();
}
function mostrar(idpago) {
$.post("../ajax/pagos.php?op=mostrar", {idpago: idpago},
function (data, status)
{
data = JSON.parse(data);
mostrarform(true);
$("#idprestamo").val(data.idprestamo);
$('#idprestamo').selectpicker('refresh');
$("#usuario").val(data.usuario);
$("#fecha").val(data.fecha);
$("#cuota").val(data.cuota);
$("#idpago").val(data.idpago);
})
}
//Función para eliminar registros
function eliminar(idpago)
{
bootbox.confirm("¿Está Seguro de eliminar el Pago?", function(result)
{
if(result)
{
$.post("../ajax/pagos.php?op=eliminar", {idpago : idpago}, fu
nction(e){
bootbox.alert(e);
tabla.ajax.reload();
});
}
})
}
init();
PRUEBAS
IMPLEMENTACIÓN:
En este modulo se detallan las soluciones implementadas para las diferentes
funcionalidades de la aplicación. Esta implementación es consecuencia directa de la
implementación, Diseño, y se han respetado todas las decisiones que se especifican en
éste. En este capítulo se describen los detalles más importantes de las capas de la
aplicación.
En primer lugar se describen los detalles relacionados con el entorno de usuario.
A continuación, se hace referencia a la implementación del motor de la aplicación,
haciendo hincapié en las funcionalidades que tienen un mayor peso dentro de la
aplicación. Luego, se describe los aspectos más relevantes de la implementación de la
capa de datos. Por ultimo se especifica la manera en la que se han integrado las diferentes
herramientas o aplicaciones que darán apoyo a la aplicación.
Motor de la aplicación.
EL motor de la aplicación realiza la función de enlace con entre el entorno de usuario y
la capa de datos, verificando, tratando y adaptando la información que se envíe entre
ambas. Esta manipulación de la información se hace mediante el uso del lenguaje de
programación PHP, que nos permite tanto el uso del lenguaje de etiquetas HTML, como
la interacción con el sistema de base de datos MySQL.
Las diferentes funcionalidades que integra la aplicación se han dividido en archivos
distintos. Cada uno de estos archivos contiene la estructura principal de la aplicación a la
que se le añade el código necesario para la funcionalidad correspondiente.
Además, en el proyecto, hay una serie de archivos que contienen código que se aplica
varias veces en la aplicación o que pueden son susceptibles a cambios futuros (gestión de
menús, conexión con la base de datos, etc.). El código de estos archivos se incluye en la
aplicación cuando es necesario mediante el uso de la función incluye de PHP.
En la aplicación encontramos una serie de funcionalidades que consisten en la
visualización, inserción o modificación de la información que contiene la base de datos.
En las funcionalidades de inserción o modificación, se obtiene la información a través de
formularios. Cuando el usuario lo desea, la información es validada por la aplicación y
ésta genera una consulta de inserción/actualización que pueda ser interpretada por
MySQL.
Cuando la funcionalidad consiste en visualizar información de la BBDD, la aplicación
realiza una consulta de selección de información a la base de datos, y prepara dicha
información para que sea interpretada por el entorno de usuario.
Estas consultas se realizan a través de funcionalidades específicas de PHP. Por otro lado
en el proyecto, se incluyen funcionalidades, que aunque interactúan también con el
entorno de usuario y la capa de datos, poseen características especiales. Entre éstas,
encontramos funcionalidades que cumplen requerimientos no funcionales (seguridad,
accesibilidad) y funcionalidades que requieren un tratamiento especial, ya que cumplen
con requerimientos funcionales no habituales en portales WEB clásicos de gestión de
contenidos.
PRUEBAS DE COMPATIBILIDAD.
Puesto que el acceso a la aplicación se debe realizar mediante un navegador WEB, se ha
procedido a realizar una prueba de funcionamiento de la aplicación con los diferentes
navegadores con los que se dará uso.
El portal WEB ha sido diseñado e implementado para que funcione tanto con Microsoft
Internet Explorer como con Mozilla Firefox. Por tanto, se han realizado las pruebas de
compatibilidad con dichos navegadores junto a otros navegadores de uso emergente:
Microsoft Internet Explorer 6.0.
• Mozilla Firefox 3.6.
• Opera 9.64.
• Google Chrome 2.0.
El funcionamiento de la aplicación es correcto con estos navegadores, y no se aprecian
diferencias de rendimiento entre ellos. El diseño general del portal es con todos los
navegadores correcto, pese a que se observan algunas diferencias puntuales en el modo
de visualizar determinada información. Estas diferencias se deben a la distinta
interpretación entre navegadores de etiquetas del lenguaje HTML.
PRUEBAS DE SEGURIDAD.
A la aplicación acceden usuarios con perfiles distintos y cada perfil de usuario tiene
permiso para acceder a funcionalidades distintas. Por esto es necesario comprobar que el
control de accesos que se ha diseñado e implementado funciona correctamente. El menú
de acceso a las funcionalidades, muestra para cada perfil de usuario las funcionalidades
correspondientes. Además, si se introduce en el navegador una url a una funcionalidad
para la que el usuario no tiene permiso, se muestra un mensaje que notifica al usuario el
acceso restringido.
Conexión a la Base de datos:
Para que el motor de la aplicación pueda interactuar con la capa de datos, se necesita
realizar una conexión con la base de datos de la aplicación. De esta conexión se encarga
el archivo conect.php de la aplicación. En este archivo se hace uso de funciones que se
incluyen en las librerías de PHP que permiten la conexión con bases de datos MySQL.
Cuando la conexión con la BBDD es requerida, la aplicación recurre al código del
archivo. La codificación de esta conexión en un archivo aparte, permite, que modificando
unos parámetros, se pueda realizar la conexión con otra base de datos.
MANTENIMIENTO:
El mantenimiento web engloba todas las acciones preventivas o correctivas que se
realizan sobre un sitio web para detectar errores que estén minando su
estructura, usabilidad o performance, para así evitar que se deteriore con el tiempo.
Por medio de tareas de mantenimiento sobre los elementos, los contenidos, la
arquitectura, el hosting y demás aspectos técnicos de la web, puedes corroborar que tu
escaparate digital esté funcional, ordenado y listo para atender a tus usuarios.
Ventajas del mantenimiento web
Nuestro sitio web es la columna vertebral de tu presencia digital. Y como tal, el
mantenimiento web ayuda a reflejar el valor de tu marca. En concreto, estas son las
ventajas de invertir en este proceso:
Corrige errores de diseño, contenido y usabilidad
• Las tendencias en diseño web y la información se transforman a ritmo constante
en la era digital y tu sitio web no puede quedarse atrás.
•
• Tal vez hayas notado que hemos pasado de ver sitios web planos a páginas
interactivas llenas de elementos visuales que buscan conquistar la atención de los
usuarios.
• De forma similar, los contenidos que se publicaron 5 años atrás puede que hoy ya
no sean tan relevantes, tanto a nivel de temática como de experiencia visual.
• En este sentido, el mantenimiento web te permite identificar las páginas que
requieren una optimización en contenido, diseño o funcionalidades. De esta
manera, conseguirás tener una web actualizada que mejore la retención de los
usuarios.
Conexión a la BD
<?php
require_once "global.php";
$conexion = new mysqli(DB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAME);
mysqli_query( $conexion, 'SET NAMES "'.DB_ENCODE.'"');
//Si tenemos un posible error en la conexión lo mostramos
if (mysqli_connect_errno())
{
printf("Falló conexión a la base de datos: %s\n",mysqli_connect_error
());
exit();
}
if (!function_exists('ejecutarConsulta'))
{
function ejecutarConsulta($sql)
{
global $conexion;
$query = $conexion->query($sql);
return $query;
}
function ejecutarConsultaSimpleFila($sql)
{
global $conexion;
$query = $conexion->query($sql);
$row = $query->fetch_assoc();
return $row;
}
function ejecutarConsulta_retornarID($sql)
{
global $conexion;
$query = $conexion->query($sql);
return $conexion->insert_id;
}
function limpiarCadena($str)
{
global $conexion;
$str = mysqli_real_escape_string($conexion,trim($str));
return htmlspecialchars($str);
}
}
?>
Xampp es una herramienta muy práctica que nos permite instalar el entorno MySQL,
Apache y PHP , suficiente para empezar proyectos web o revisar alguna aplicación
localmente..