Está en la página 1de 23

ESTRUCTURACION DE PROYECTO

PRESENTADO POR

NATALIA POSSO MUÑOZ


HERNAN ALBERTO VALENCIA GIL

SENA
2023
Tabla de contenido

Especificación de requisitos del software..............................................................................3


Identifica las necesidades del cliente.................................................................................3
Objetivo General................................................................................................................3
Objetivos Específicos.........................................................................................................3
Requisitos Funcionales:.....................................................................................................4
Diseño arquitectónico............................................................................................................5
Arquitectura Cliente-Servidor.............................................................................................5
Diseño de base de datos....................................................................................................6
Diagramas..........................................................................................................................7
Diagramas Casos de Uso...............................................................................................7
Diagramas Secuencias...................................................................................................7
Diagramas Clases..........................................................................................................8
Casos de uso.....................................................................................................................8
Manual de usuario:................................................................................................................9
Pruebas al Software.............................................................................................................11
Documentación del código fuente........................................................................................14
Codigo inicio de sesion.................................................................................................14
Codigo Pantalla principal..............................................................................................16
Codigo Crear cotizacion...............................................................................................19
Codigo Responder cotizacion.......................................................................................20
Codigo Eliminar Cotizacion...........................................................................................21
Caracteristicas del Sistema.................................................................................................22
Nombre:........................................................................................................................22
Instalación.....................................................................................................................22
Uso...............................................................................................................................22
Créditos........................................................................................................................22
Diagrama de arquitectura.............................................................................................22
Especificaciones técnicas.............................................................................................23
Especificación de requisitos del software.

Identifica las necesidades del cliente

Gran parte de las actividades que se desarrollan en Dinámica Tecnológica en su


ámbito comercial son soportadas por adquisiciones y contrataciones de bienes y
servicios de terceros. Los cuales permiten o no el cumplimiento de las funciones del
área comercial de Dinámica Tecnológica. Desde este punto de vista el impacto que
tiene la adquisición de dichos bienes o servicios es alto.

Actualmente dicho proceso es manual y se remite a la solicitud de cotizaciones via


WhatsApp o correo electrónico a los proveedores y en muchas ocasiones las
respuestas por parte de los proveedores no se da dentro de los tiempos en los que
Dinamica Tecnologica tiene para dar respuesta a sus clientes, afectando
directamente el servicio que presta Dinamica Tecnologica a sus clientes.

Por este motivo requerimos un sistema que nos permita crear una solicitud de
cotizacion online la cual una vez finalizada envie automáticamente un mensaje con
una URL a los proveedores para que estos realicen sus ofertas. Y de esta forma
poder entregarle a los clientes su cotizacion

Objetivo General

Crear una herramienta web donde al momento de que Dinámica Tecnológica tenga una
solicitud de cotizacion, llegue directamente a los proveedores y estos puedan realizar
sus ofertas de forma inmediata.

Objetivos Específicos

 Optimizar los tiempos de atención de los requerimientos asi como


reducir la asignación de horas hombre en el proceso.
 Maximizar el número de requerimientos atendidos en el mes
 Cumplir en más de un 90% los ANS de los tiempos para entregar las
cotizaciones.

Requisitos Funcionales:

 El sistema debe permitir a los usuarios registrarse y crear una cuenta


corporativa (únicamente se crearán cuentas con correos con dominio de
dinamica tecnologica) Criterios de Aceptación: Los usuarios deben poder
completar el formulario de registro sin errores - Cuando un usuario envía el
formulario, se debe crear una nueva cuenta en nuestra base de datos - Los
usuarios deben recibir un correo electrónico de confirmación para verificar su
dirección de correo electrónico.

 El sistema debe permitir a los usuarios subir y compartir archivos jpg Criterios
de Aceptación: Los usuarios deben poder seleccionar archivos de su
dispositivo para subirlos - Las publicaciones de los usuarios deben estar
disponibles en su perfil y en el feed principal de la aplicación.

 El sistema debe permitir a los administradores realizar filtros por tiempos de


solicitud, por proveedores, por usuarios)

Requisitos No Funcionales:

 El software debe ser compatible con dispositivos móviles y navegadores


comunes (Chrome, Firefox, Safari.).
 El software debe tener un tiempo de respuesta máximo de 3 segundos para
todas las interacciones de usuario.
 El software debe cumplir con las normas de accesibilidad web WCAG 2.1.

 El software debe tener un tiempo de respuesta rápido :La aplicación debe


responder rápidamente a las interacciones del usuario, como cargar
nuevas imágenes, nuevos precios. Los tiempos de carga excesivamente
largos pueden frustrar a los usuarios y hacer que abandonen el uso de la
aplicación. Criterios de Aceptación: Todas las páginas de la aplicación
(incluyendo el registro, la publicación y el feed) deben cargarse en 3
segundos o menos- La aplicación debe procesar todas las solicitudes de
usuario en 500 milisegundos o menos.

Requisitos Técnicos Mínimos

 Portatil Core i5 Decima generación o superior- Disco 256 SSD o Superior Memoria
16GB Windows 10 Pro o superior
 Microsoft Visual Studio 2019 Community Edition para el desarrollo del
 Microsoft SQL Server Express Edition 2017 o superior para la base de datos.
 Navegador preferencia Google Chorme
 .NET Framework 4.8.
 Lenguaje JAVA
 Seguridad: Conexión por VPN y La base de datos debe estar cifrada y
protegida mediante contraseña para evitar accesos no autorizados.
Diseño arquitectónico

Arquitectura Cliente-Servidor

En esta arquitectura que vamos a usar existe un servidor y múltiples clientes que
se conectan al servidor para recuperar todos los recursos necesarios para
funcionar, en este sentido el cliente solo es una capa para representar los datos y
se detonan acciones para modificar el estado del servidor.

Las caracteristicas principales en esta arquitectura comprometen protocolos


asimétricos, encapsulación de servicios, integridad, transparencia de localización,
intercambios basados en mensajes, modularidad, independencia de la plataforma,
código reutilizable, escalabilidad, separación de la funcionalidad del cliente-
servidor y recursos compartidos.

Los componentes que usamos para nuestro modelo son:

 Red
 Cliente
 Servidor
 Protocolo
 Servicios
 Bases de Datos

Esta es una de las arquitecturas más comunes en el desarrollo de software


empresarial. Consiste en una aplicación dividida en dos grandes componentes, el
cliente y el servidor. El cliente es la interfaz de usuario que se ejecuta en el equipo
del usuario final, mientras que el servidor es responsable de procesar la lógica de
negocio y los datos. La interacción entre ambos componentes se realiza a través
de una red.
Utilizaremos el Diseño de Material ya que este es un diseño popular utilizado
principalmente en aplicaciones de Android. Se caracteriza por usar capas y
animaciones para crear un ambiente visual y táctil, que imita la sensación de
manipular objetos reales.

Diseño de base de datos.

MODELO DE BASE DE DATOS.

Modelo Relacional: Utilizaremos un modelo relacional. Ya que el ejecutivo de


Dinamica tecnologica generara una solicitud de cotizacion, y los datos ingresados
se relacionarán con los productos disponibles en lo proveedores activos Este es
uno de los modelos de almacenamiento de datos más comunes y se utiliza para
representar datos estructurados en filas y columnas. Es muy útil para aplicaciones
con una gran cantidad de datos relacionales, como aplicaciones financieras o
comerciales.
Diagramas

Diagramas Casos de Uso

Diagramas Secuencias

Es recomendable crear diagramas UML (Lenguaje de Modelado Unificado) para


ayudar a visualizar el diseño del software. Los diagramas más comunes son el
diagrama de clases, diagrama de secuencia y diagrama de actividad.
Diagramas Clases

Casos de uso

Nombre del caso de uso: Login


Actor principal: Usuario registrado
Objetivo: Realizar una solicitud de login
Precondiciones:
- El usuario debe estar registrado en la table de datos usuarios
- El usuario debe tener asignado una contraseña
Flujo principal de eventos:
1. El usuario ejecuta la aplicación cotiza 2. Ingresa su nombre de usuario 3. Ingresa su
contraseña 4. Da click en ingresar.
Postcondiciones:
Se genera un inicio de sesion
Se genera aviso de usuario o contraseña incorrectos en caso de no ser correcto el acceso-

Nombre del caso de uso: Realizar una cotizacion


Actor principal: Usuario registrado
Objetivo: Realizar una solicitud de cotizacion
Precondiciones:
- El usuario debe estar registrado en la aplicación
- El usuario debe haber iniciado sesión en su cuenta de usuario.
Flujo principal de eventos:
1. El usuario selecciona los productos con codigo y descripción que desea cotizar y
los agrega la cantidad su carrito de cotizaciones. 2. El usuario confirma la
selección de los productos y procede a realizar la cotizacion. 3. El sistema muestra al
usuario la información del resumen de pedido y la cantidad total a cotizar. 4. El sistema
envía link a los proveedores registrados que tienen el producto disponible y finaliza el
proceso.
Postcondiciones:
Se genera una cotizacion en el sistema con un número único de pedido para el
usuario.

Nombre del caso de uso: Responder una cotizacion


Actor principal: Usuario registrado
Objetivo: Responder una solicitud de cotizacion
Precondiciones:
- El usuario debe estar registrado en la aplicación
- El usuario debe haber iniciado sesión en su cuenta de usuario.
Flujo principal de eventos:
1. El usuario selecciona No de cotizacion que desea responder y agrega precio
unitario a cada producto solicitado y finaliza el proceso.

Manual de usuario:
Ingrese usuario y contraseña:

Una vez correctamente logueado el sistema mostrar la siguiente vista.


Para solicitar una nueva cotizacion digite el numero de parte del producto a cotizar,
la descripción del mismo y la cantidad que requieren que le coticen, y finalice
dando click al icono guardar como lo muestra la siguiente imagen

Una vez le des click en guardar el sistema enviara un link al lo proveedores


registrados que venden ese producto. Y al darle click en el link les aparecerá la
siguiente pantalla. En la cual el proveedor debe colocar el valor unitario de precio
de venta y el nombre del proveedor.

El sistema guardara cada propuesta de cada proveedor y colocara en pantalla


principal la oferta del proveedor mas economico y el nombre del proveedor.
Quedando de la siguiente forma

Con esta informacion la persona de compras ya podra realizar su proceso de


compras.
Pruebas al Software
CASO DE PRUEBA
Id de Prueba CP01
Fecha de Ejecución 17/11/2023
Ejecutado Por Natalia Poss
ID caso de uso CU01
Descripción de la Prueba Garantizar que el módulo de usuarios pueda
realizar las acciones descritas dentro del caso
de uso, como lo son:
logueo correcto usuarios

Precondiciones Inicio de sesión

DETALLE DE LA PRUEBA
No. Acción Usuario Respuesta Esperada Resultado
Secue
ncia
1 Ingreso al módulo de usuarios Ok
2 Valida la información Ok
ingresada
3 Valida la información en base de Ok
datos
3 Mensaje error en caso de
credenciales ser incorrectas
4 Genera mensaje exitoso Ingresa a Ok
modulo principal
EVIDENCIAS

CASO DE PRUEBA
Id de Prueba CP02
Fecha de Ejecución 17/11/2023
Ejecutado Por Natalia Poss
ID caso de uso CU01
Descripción de la Prueba Garantizar la creación de la solicitud de
cotizacion

Precondiciones Debe estar al sesion iniciada.

DETALLE DE LA PRUEBA
No. Acción Usuario Respuesta Esperada Resultado
Secue
ncia
1 Ingresar codigo de parte y Ok
descripción de parte a cotizar y
cantidad de cotizacion
2 Grabación de información Ok Validar ya
en tabla de datos y vista de que genera un
la información. Envio de error cuando el
mensajes con link a los proveedor no
proveedores. tiene guardado
correo
electronico
donde enviar e
link
4 Genera mensaje exitoso Ok
EVIDENCIAS

CASO DE PRUEBA
Id de Prueba CP03
Fecha de Ejecución 17/11/2023
Ejecutado Por Natalia Poss
ID caso de uso CU01
Descripción de la Prueba Creación Respuesta de cotizacion
Precondiciones Debe estar al sesion iniciada. Debe haber
recibido link de geneacion de cotizacion.

DETALLE DE LA PRUEBA
No. Acción Usuario Respuesta Esperada Resultado
Secue
ncia
1 Ingresar valor unitario y nombre de Ok
proveedor que responde la
cotizacion
2 Grabación de información ok
en tabla de datos y vista de
la información del proveedor
mas economico.
EVIDENCIAS

Documentación del código fuente.

Codigo inicio de sesion.

<%--
Document : index
Created on : 11/09/2023, 9:05 p. m.
Author : Hernan Valencia - Natalia Posso
--%>

<%@page import="java.sql.*"%>
<%@page import="com.mysql.jdbc.Driver"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%--
html formulario para pedir usuario y contraseña
--%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM"
crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN"
crossorigin="anonymous">
<title>login</title>
</head>
<body>

<div class="container mt-5">


<div class="row">
<div class="col-sm">
<form action="login.jsp" method="post">
<div class="mb-3">
<label for="usuario" class="form-label">Usuario</label>
<input type="text" class="form-control" id="usuario" "
aria-describedby="emailHelp" required="required" name="usuario" placeholder="Ingresa tu usuario">
</div>

<div class="mb-3">
<label for="password" class="form-label">Password</label>
<input type="password" class="form-control" id="password"
aria-describedby="emailHelp" required="required" name="password" placeholder="Ingresa tu
contraseña">
</div>
<a href="url"></a>
<button type="submit" class="btn btn-primary" name="login">Login <i class="fa fa-sign-in" aria-
hidden="true"></i>
</button>

</form>
</div>
</div>
</div>
<%--
Conexiones a bases de datos y verificaion de logueo.
--%>
<%
Connection con = null;
Statement st = null;//sirve para procesar una sentencia SQL estatica y obtener los resultados producidos por ella
ResultSet rs = null;
if (request.getParameter("login") != null) {
String user = request.getParameter("usuario");
String password = request.getParameter("password");
HttpSession sesion = request.getSession();

try {
Class.forName("com.mysql.jdbc.Driver");//para usar el codigo mysql
//DriverManager: Administrador de controladores
con = DriverManager.getConnection("jdbc:mysql://localhost/bdusuarios?user=root&password=");
st = con.createStatement();
rs = st.executeQuery("SELECT * FROM admin WHERE User='"+user+"' AND Password='"+password+"';");
//request.getRequestDispatcher("index.jsp").forward(request, response);//redireccionar a la pagina index
//response.sendRedirect();
while(rs.next()){
sesion.setAttribute("logueado", "1");
sesion.setAttribute("usuario", rs.getString("user"));
sesion.setAttribute("id", rs.getString("id"));
response.sendRedirect("index.jsp");
}
out.print("<div class= \"alert alert-danger\" role=\"alert\">Usario Incorrecto</div>");
} catch (Exception e) {
out.print("<div class= \"alert alert-danger\" role=\"alert\">error base de datos</div>");
}
}

/*
if (request.getParameter("login") != null) {
String user = request.getParameter("usuario");
String password = request.getParameter("password");
HttpSession sesion = request.getSession();
if (user.equals("admin") && password.equals("123")) {
sesion.setAttribute("logueado", "1");
sesion.setAttribute("usuario", user);
response.sendRedirect("index.jsp");
} else {
out.print("te equivocaste en usuario o contraseña");
}
}*/
%>
</body>
</html>

Codigo Pantalla principal

<%--
Document : index
Created on : 11/09/2023, 9:05 p. m.
Author : Natalia Posso - Hernan Valencia
--%>

<%@page import="java.sql.*"%>
<%@page import="com.mysql.jdbc.Driver"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap CSS -->


<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-
EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">

<!-- JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-
MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

<!<!-- Iconos -->


<script type="module" src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.esm.js"></script>
<script nomodule src="https://unpkg.com/ionicons@7.1.0/dist/ionicons/ionicons.js"></script>

<title>Usuarios</title>
<style>
body{
background: #6fb021; /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #6dd5ed, #6fb021); /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #6dd5ed, #6fb021); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+,
Safari 7+ */
}
</style>
</head>
<body>

<%--
Verificacion que este correctamente logueado el usuario.
--%>

<%
HttpSession sesion = request.getSession();
if (sesion.getAttribute("logueado") == null || sesion.getAttribute("logueado").equals("0")){
response.sendRedirect("login.jsp");
}

String id = request.getParameter("id");
String usuario = request.getParameter("usuario");
String nombre = request.getParameter("nombre");
String password = request.getParameter("password");

Connection con = null;//crea la conexion libreia para usar mysql


Statement st = null;//permite usara sentencia sql para java
ResultSet rs = null;//guardar variable todo lo que se encuentre en la base de datos en un arreglo

%>

<%--
Formularios de ingreso de Informacion.
--%>

<h1 class="text-center mt-5 mb-5 text-white">Cotizaciones</h1>

<div class="container">
<div class="card shadow">
<div class="card-body">
<form action="Guardar.jsp" method="POST">
<div class="row mb-3">
<div class="col">
<label>Codigo</label>
<input type="text" class="form-control mb-3" name="codigo">
</div>
<div class="col">
<label>Descripcion</label>
<input type="text" class="form-control mb-3" name="descripcion">
</div>
<div class="col">
<label>Cantidad</label>
<input type="text" class="form-control mb-3" name="cantidad">
</div>
<div class="col">
<button class="btn btn-outline-primary mb-3 mt-4" name="guardar" type="submit"><ion-icon name="save-
outline"></ion-icon></button>
</div>
</div>
</form> <!--Tabla-->

<table class="table table-bordered">


<thead>
<tr>
<th scope="col">ID</th>
<th scope="col">Codigo</th>
<th scope="col">Descripcion</th>
<th scope="col">Cantidad</th>
<th scope="col">Mejor Valor cotizado</th>
<th scope="col">Proveedor</th>
<th scope="col">Acciones</th>
</tr>
</thead>
<tbody>
<%try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/bdcotizacion?user=root&password=");
st = con.createStatement();
rs = st.executeQuery("SELECT * FROM `cotizaciones`;");
while (rs.next()) {
String rowid = rs.getString(1);
String rowcodigo = rs.getString(2);
String rowdescripcion = rs.getString(3);
String rowcantidad = rs.getString(4);
String rowvlrunidad = rs.getString(6);
String rowproveedor = rs.getString(9);
%>
<tr>
<th scope="row"><%=rowid%></th>
<td><%=rowcodigo%></td>
<td><%=rowdescripcion%></td>
<td><%=rowcantidad%></td>
<td><%=rowvlrunidad%></td>
<td><%=rowproveedor%></td>

<td>
<a href="#" class="btn btn-outline-success" data-bs-toggle="modal" data-bs-target="#modal_<%=rowid
%>"><ion-icon name="create-outline"></ion-icon></a>

<a href="Eliminar.jsp?id=<%=rowid%>" class="btn btn-outline-danger" onclick="javascript:if(!


confirm('¿Está seguro de eliminar este registro?')) return false"><ion-icon name="trash-outline"></ion-icon></a>
</td>
</tr>

<!-- Modal de edición específico para cada registro -->

<div class="modal fade" id="modal_<%=rowid%>" tabindex="-1" aria-labelledby="exampleModalLabel" aria-


hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Comprar Productos</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form action="Editar.jsp?vlran=<%=rowvlrunidad%>" method="post">
<label>Codigo</label>
<input type="text" class="form-control mb-3" id="usuario" name="usuario" value="<%=rowcodigo
%>">
<label>Descripcion</label>
<input type="text" class="form-control mb-3" id="nombre" name="nombre" value="<
%=rowdescripcion%>">
<label>Cantidad a Cotizar</label>
<input type="text" class="form-control mb-3" id="cantidad" name="cantidad" value="<
%=rowcantidad%>">
<label>Valor unitario cotizado</label>
<input type="text" class="form-control mb-3" id="vlrcot" name="valrcot" value="0">
<label>Proveedor</label>
<input type="text" class="form-control mb-3" id="proveedor" name="proveedor" value=" ">

<input type="hidden" name="id" value="<%=rowid%>">


<div class="modal-footer">
<button type="submit" class="btn btn-outline-primary"><ion-icon name="save-outline"></ion-icon>
Guardar</button>
</div>
</form>

</div>
</div>
</div>
</div>

<%

}
} catch (Exception e) {
out.print("Error conexión MySQL" + e);
}
%>
</body>
</html>

Codigo Crear cotizacion.


<%--
Document : index
Created on : 11/09/2023, 9:05 p. m.
Author : Natalia Posso - Hernan Valencia
--%>

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Guardar</title>
</head>
<body>
<%
HttpSession sesion = request.getSession();
if (sesion.getAttribute("logueado") == null || sesion.getAttribute("logueado").equals("0")){
response.sendRedirect("login.jsp");
}

String usuario = request.getParameter("usuario");


String nombre = request.getParameter("nombre");
String password = request.getParameter("password");

%>

<%
if (request.getParameter("guardar") != null){
String id = request.getParameter("id");
String codigo = request.getParameter("codigo");
String descripcion = request.getParameter("descripcion");
String cantidad = request.getParameter("cantidad");
String vlrunidad = request.getParameter("vlrunidad");
Float can = Float.parseFloat(cantidad);

try {
Connection con = null;
Statement st = null;

Class.forName("com.mysql.jdbc.Driver");//para usar el codigo mysql


//administrador de controladores
con = DriverManager.getConnection("jdbc:mysql://localhost/bdcotizacion?user=root&password=");
st = con.createStatement();
st.executeUpdate("INSERT INTO cotizaciones (codigo, descripcion, cantidad) values ('" + codigo + "', '" +
descripcion + "', '" + can + "');");
// st.executeUpdate("INSERT INTO cotizaciones (cedula ,codigo, descripcion, cantidad) values ('" + usuario + "','" +
usuario + "','" + codigo + "', '" + descripcion + "', '" + can + "');");
response.sendRedirect("http://localhost:8080/FormularioModal/index.jsp");
}catch (Exception e){
out.print(e);
}
}
%>
</body>
</html>

Codigo Responder cotizacion.

<%--
Document : index
Created on : 11/09/2023, 9:05 p. m.
Author : Natalia Posso - Hernan Valencia
--%>

<%@page import="java.sql.*"%>
<%@page import="java.sql.DriverManager"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Editar</title>
</head>
<body>

<%

String vlran = request.getParameter("valrcot");


String id = request.getParameter("id");
String codigo = request.getParameter("codigo");
String descripcion = request.getParameter("descripcion");
String cantidad = request.getParameter("cantidad");
String valrcot = request.getParameter("valrcot");
String proveedor = request.getParameter("proveedor");

Float vlrc = Float.parseFloat(valrcot);


Float tot = Float.parseFloat(valrcot)*Float.parseFloat(cantidad);
Float vlra = Float.parseFloat(vlran);

Connection con = null;//crea la conexion libreia para usar mysql


Statement st = null;//permite usara sentencia sql para java

try {

Class.forName("com.mysql.jdbc.Driver");//para usar el codigo mysql


//DriverManager: administrador de controladores
con = DriverManager.getConnection("jdbc:mysql://localhost/bdcotizacion?user=root&password=");
st = con.createStatement();

if (vlra>vlrc) {
st.executeUpdate("UPDATE cotizaciones SET vlrunidad='" + vlrc + "', total='" + tot + "', proveedor='" +
proveedor + "' WHERE id='" + id + "';");
}

request.getRequestDispatcher("index.jsp").forward(request, response);//redireccionar
//response.sendRedirect("index.jsp");
} catch (Exception e) {
out.print(e);
} finally {}

%>
</body>
</html>

Codigo Eliminar Cotizacion.

<%--
Document : index
Created on : 11/09/2023, 9:05 p. m.
Author : Natalia Posso - Hernan Valencia
--%>

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.*"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Borrar</title>
</head>
<body>
<%

Connection con = null;//crea la conexion libreia para usar mysql


Statement st = null;//permite usara sentencia sql para java

try {
Class.forName("com.mysql.jdbc.Driver");//para usar el codigo mysql
//DriverManager: administrador de controladores
con = DriverManager.getConnection("jdbc:mysql://localhost/bdusuarios?user=root&password=");
st = con.createStatement();
st.executeUpdate("DELETE FROM tblproductos where id='"+request.getParameter("id")+"';");
request.getRequestDispatcher("index.jsp").forward(request, response);//redireccionar
//response.sendRedirect("index.jsp");
} catch (Exception e) {
out.print(e);
}
%>
</body>
</html>

Caracteristicas del Sistema

Nombre:
El sistema tendrá por nombre Cotiza. Este sistema es una aplicación que apoyara a reducir los tiempos de cotizacion de los
proveedores hacia la empresa Dinamica Tecnologica SAS.

Instalación
Clonar o descargar el repositorio en la máquina local

Uso

Acceder a través de un navegador web a la dirección `http://localhost:8080`

Créditos
- Autor Natalia Posso
- Autor Hernan Valencia

Diagrama de arquitectura

Especificaciones técnicas

Tecnologías utilizadas:

 Microsoft Visual Studio 2019 Community Edition para el desarrollo del


 Microsoft SQL Server Express Edition 2017 o superior para la base de datos.
 Navegador preferencia Google Chorme
 .NET Framework 4.8.
 Lenguaje JAVA
 Frontend: HTML5, CSS3, JavaScript
o Librerías de terceros: Bootstrap 4.6, jQuery 3.6

Requisitos de hardware:
 Procesador: Intel Core i5 o equivalente 7 generacion o superior
 Memoria RAM: 8 GB
 Espacio en disco duro: al menos 10 GB

Requisitos de software:
 Sistema operativo: Windows 10, Ubuntu 20.04 LTS u otra distribución de Linux
compatible con MySQL
 Navegador web: Chrome 91, Firefox 89 u otro navegador web compatible con
HTML5, CSS3 y JavaScript
 Wamserver64 instalado y configurado

Mantenimiento
El sistema tendrá una garantia del codigo durante 6 meses. La cual cubrira los cambios
necesario en caso que a nivel de codigo el sistema tenga algún error

Luego de los 6 meses el cliente en caso de requerir un cambio a nivel de codigo podrá
generar una solicitud la cual tendrá un cobro adicional dependiendo de lo complejo de
la solicitud

Costos
El sistema tendrá un costo unico de 14.000.000 millones de pesos Cop

Propiedad intelectual
Despues de realizado el pago la propiedad intelectual como material del sistema será
en su totalidad del cliente. Dinamica Tecnologica SAS

También podría gustarte