PC03

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 66

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS

DISEÑO DE BASE DE DATOS


(Presentación del trabajo de modelamiento de datos)

INTEGRANTES:

Flores Sánchez, Leo Daniel 20194512G


Lujan Montufar, Jesús Enrique 20191117J
Surichaqui Quintanilla Bryan Andre 20112022K

DOCENTE:

JOSÉ ALBERTO CABALLERO ORTIZ

Lima, Perú 2021

1. Descripción de la empresa

Proyectos Especiales CAT S.A.C


Empresa con más de 20 años de experiencia en el mercado nacional, dedicado al rubro
metal mecánico, nos dedicamos a la fabricación y comercialización de muebles metálicos como
lockers guardarropas, archivadores, planotecas, estanterías simples, estanterías dobles, estanterías
móviles, góndolas, racks, mini racks, racks acumulativos, rack selectivo y muebles especiales, sistema
de almacenaje para todo tipo de industria (oficinas, colegios, universidades, institutos, depósitos,
tiendas, etc.) con y sin gran cantidad de carga.

PROYECTOS ESPECIALES CAT S.A.C, es una sociedad anónima cerrada constituida por 3
socios, el 20 de Junio del 2005, como una empresa especializada en la producción y comercialización
en muebles metálicos, enfocados a garantizar la calidad de todos nuestros Productos.

Entre las funciones principales que realiza la empresa se encuentra la venta de productos
metal mecánicos a través de pedidos por la web, se hace la elaboración de estos productos y se
procede a entregar el pedido gracias a nuestro servicio de transporte, cada trabajador de esta
empresa tiene un rol diferente y el encargado de administrar a estos trabajadores es el jefe de
planta que tiene las funciones de registrar los datos de los nuevos trabajadores, asignar horarios,
establecer sueldos y cumplir el pago de estos mensualmente de acuerdo al contrato.

1.2 Descripción del proceso de negocio.

1.2.1 Proceso de pedido de cliente

Este proceso es uno de los principales de la empresa, empieza con el logueo del usuario en
la aplicación web con sus credenciales previamente creadas, para luego pueda generar una nueva
orden con los productos seleccionados, junto a esta orden se solicitarán sus datos personales y la
dirección a la que será entregado el o los productos pedidos, una vez confirmado y generado el
pedido el jefe de planta asignará el pedido a el área correspondiente interna de la empresa y de esta
manera el pedido del cliente podrá ser preparado.

● Logueo del cliente: El cliente se loguea en la ventana inicial con sus credenciales
previamente creadas, si el usuario se olvida su contraseña, existirá una función de
recuperación de contraseña, la cual enviará un correo al correo asociado para su respectivo
restablecimiento, en el caso de no tener una cuenta procederá a crearse una y aceptar el
correo de confirmación, luego se le mostrará la ventana de bienvenida.

● Crear nuevo pedido: Una vez ingresada a la plataforma se mostrará una lista de todos los
productos que ofrece la empresa, se podrán filtrar por categorías para una mejor
visualización cada producto tendrá su precio unitario y un botón de comprar con el cual el
usuario podrá agregar al carrito su producto, este proceso se realizará para cada producto
que el cliente requiera, se podrá ver más información de cada producto, dentro de esta
nueva ventana se especificará los detalles internos y externos del producto así como los
materiales del que está hecho.
● Confirmación de pedido: Cuando el cliente haya agregado al carrito todos los productos que
requiera en la ventana de carrito de compras se mostrará todos los productos seleccionados
y podrá ingresar la cantidad de cada uno que requiera,también se podrá vaciar el carrito,
esto significa volver a seleccionar todos los productos, junto con esto se mostrará un
pequeño cuadro con el resumen del pedido que se está realizando, esto incluye nombre del
producto, cantidad, precio unitario y precio total, y finalmente el precio total a pagar junto a
su botón de pagar.

● Pago de pedido: Cuando el cliente haga click en pagar se mostrará una ventana donde se
procesa el pago, el cliente tendrá 2 opciones, recoger en local o delivery, en el caso de
recoger solo se mostrará la ventana para ingresar los datos de su tarjeta de credito o debito,
estos datos serán el nombre del titular, el número de la tarjeta, el cvv y la fecha de
vencimiento, si el método de pago fuera paypal se le pedirá su correo y contraseña,, en el
caso del servicio de delivery, el cliente ingresará los datos del domicilio o local al que desea
que se le envia su pedido, estos datos serán departamento, provincia, celular, dirección,
codigo postal, distrito, referencia, descripción y finalmente dará click en pagar en finalizar
para terminar con la compra de su pedido.

● Modificar datos, preferencias y ver pedidos: Dentro de la ventana de mi perfil habrá 3


opciones la primera de modificar mis datos, en el cual el usuario podrá modificar los campos
de nombre, apellido, correo, teléfono , así como el correo y la contraseña, la segunda opción
será mis pedidos, en el cual el sistema listará el historial de pedidos con los datos como
fecha de pedido, estado de pedido, precio del pedido y la boleta del pedido, la cual podrá
descargar haciendo click, y la tercera opción será preferencias donde el sistema mostrará los
productos que más ha comprado el cliente, para que el cliente pueda saber en qué
productos está gastando más y sacar mejor sus cuentas.

1.2.2 Abastecimiento y recepción de suministros

Este proceso permite a los jefes de planta hacer un pedido al encargado de revisar la
disponibilidad de materia prima los materiales que están escasos o con los que no se cuenta,
el jefe de planta realiza el pedido de los suministros y este pedido es revisado por todos los
proveedores disponibles y responden a la solicitud con sus ofertas, el jefe de planta podrá
aceptar la oferta y concretar la compra al proveedor elegido.

● Hacer nuevo pedido: Esta función permite al jefe de planta solicitar la cantidad requerida de
materia prima en cada tipo de material, luego ingresa la fecha en la que lo requiere y el
monto a pagar por este pedido.

● Recepción de pagos: Esta función permite ver si el pedido se encuentra entregado o si sigue
en estado de pago, cuando se ingrese a cada uno de estos pedidos se podrá ver la
información de cada uno de estos y también se podrá añadir nueva información
proporcionando la contraseña del jefe de planta.
● Consulta de compras. Esta función muestra la lista de los códigos de todas las compras
hechas y su estado (si están completamente recibidos o pagados, en cada uno se podrán ver
los detalles de las compras, las recepciones y pagos a la fecha.

● Ver estadísticas: Esta función permite mostrar gráficos con la información de los productos
que más se han comprado por parte de los clientes, esto permitirá asignar un mayor
presupuesto a los productos que tiene más demanda.

1.3. Motivación tras la empresa elegida

La elección de la empresa Proyectos Especiales CAT se realizó porque un integrante de nuestro


grupo es yerno del dueño de esta empresa y tiene contacto directo, lo que nos facilita la búsqueda
de información y conocer sobre las diversas funciones de la empresa tanto internas como externas.
Como extra el contacto nos ha brindado información adicional sobre cómo gestionan los pagos en la
empresa y algunos documentos como catálogo de productos que manejan entre los principales
clientes.Finalmente hemos desarrollado en un curso previo los procesos que ocurren y en este curso
buscamos poder modelar un mejor sistema del que hemos estado estudiando.

Requerimientos del sistema:

Los usuarios del sistema son los clientes y trabajadores(empleados,jefes de planta) cada uno de
estos tienen distintos roles y funciones en la empresa.

Cliente:

El cliente para ingresar a la plataforma de atención, debe proporcionar sus credenciales de


acceso las cuales han sido previamente creadas especificando su correo, número de celular, dni,
dirección y contraseña, luego de haber ingresado el sistema mostrará un buscador donde podrá
buscar el producto que desee, una vez seleccionado el producto el sistema mostrará el precio con la
descripción y el cliente tendrá la opción de agregar al carrito, una vez que haya finalizado su orden
selecciona en confirmar y añade su método de pago preferido, una vez completada esta operación
se procederá a descargar el voucher electrónico en formato pdf.

Trabajador:

El trabajador realiza distintas actividades de la empresa de acuerdo a los roles, primero se


deberá loguearse en el sistema con sus credenciales previamente generadas, luego si es el
encargado de los pedidos, se mostrará todos los pedidos por orden de fecha de pedido y será el
encargado de asignar a distintas áreas de la empresa (despacho,transporte) a la preparación del
pedido y el respectivo transporte al domicilio del cliente, en caso de que el trabajador pertenezca al
área de jefes de planta, el sistema mostrará las opciones de administración de los trabajadores,
podrá realizar funciones como registro de insumos, registro de productos, finalmente, se
responsabilizan de hacer el pedido de los recursos de menor disponibilidad para las actividades
dentro del departamento.

Caso de uso: Ingreso a la plataforma (Clientes y Trabajadores)

Actor: Cliente y trabajadores

1. El sistema tiene una opción de autenticación para ofrecer más funcionalidades.

2. El usuario solicita poder autenticarse presionando el botón de “login”.

3. El sistema solicita su usuario y contraseña.

3.1.1. En caso el cliente olvide su contraseña selecciona la opción “Olvidé mi contraseña”.

3.1.2 El sistema envía un correo de restablecimiento de contraseña al correo asociado.

3.2.1 En el caso de que el cliente no tenga una cuenta en el portal, se tendrá que registrar.

3.2.2. El sistema solicita sus datos para crear una cuenta como nombre, apellido, teléfono, dni,
correo y contraseña.

3.2.3. El usuario da click en registrar y se le envía un correo de confirmación para activar su


cuenta.

4. El cliente ingresa como datos su usuario y contraseña

5. El sistema verifica las credenciales y reconoce si es un cliente o trabajador.

6. Si el usuario es un trabajador se les habilita los módulos de suministros y pedidos del cliente.

7. Si el trabajador quiere ingresar a un módulo que no le pertenece el sistema mostrará una


ventana de acceso denegado.

8. Si el sistema determina que el usuario es un cliente, se muestran los productos para


añadirlos al carrito de compras.
Caso de uso: Creación de nuevo pedido

Actor: Cliente

1. El sistema muestra la lista de productos con sus respectivos nombres, precios y la opción
de comprar, estos se pueden filtrar por categorías y añadirlas al carrito.

2. El usuario da click en comprar y se agrega al carrito el producto elegido.

3. El sistema muestra una ventana de confirmación antes de que el producto sea añadido al
carrito.

4. El sistema muestra una barra con los productos agregados al carrito.

5. El sistema da la opción ingresar las unidades de los productos elegidos, luego se muestran
los botones de ir al carrito o ir a pagar.

5.1. En caso el usuario seleccione ir al carrito

5.2. El sistema muestra una lista con los productos agregados por el cliente en el carrito con
su respectivo precio y un botón de más detalles.
5.3. El cliente ingresa la cantidad requerida de cada producto en el carrito.

5.4. Si el cliente accede a más detalles se muestra una ventana con los detalles internos,
externos, materiales, peso del producto, información de la garantía y datos adicionales.

6. Si selecciona ir a pagar

7. El sistema muestra una ventana de procesamiento de compra.

8. El cliente ingresa los datos de su tarjeta como nombre de titular, número de tarjeta, cvv y
fecha de vencimiento.

9. Si elige paypal se le pedirá su correo y contraseña.


Caso de uso: Procesamiento de pago

Actor: Cliente

1. El cliente selecciona la opción de pagar en el carrito.

2. El sistema muestra una ventana de procesamiento de pago.

3. El sistema muestra 2 opciones de pago, por tarjeta de crédito o paypal.

4. Si el usuario elige paypal.

4.1. Si el usuario elige tarjeta de crédito.

4.2. El sistema muestra una ventana donde el usuario ingresará los datos como: nombre de
titular, número de tarjeta, cvv, fecha de vencimiento.

5. El sistema muestra los campos de ingreso de correo y contraseña.

6. El sistema muestra las opciones de recojo en local y delivery.

7. Si el usuario elige delivery.

8. El sistema muestra los campos de ingreso de la dirección del lugar al que se desee hacer
delivery, campos como dirección, distrito, provincia, código postal, teléfono referencias.

9. El usuario completa los datos y selecciona en pagar y finalizar.

10. El sistema muestra una ventana con el título “ Su compra fue realizada con éxito”.

11. Se mostrará un mensaje personalizado para cada opción: si ha escogido delivery o recojo
en local.

12. El sistema permite descargar el voucher en formato pdf.


Caso de uso: Actualizar perfil

Actor: Cliente

1. El cliente selecciona la opción de mis datos dentro de la ventana de mi perfil.

2. El sistema muestra una ventana con los campos de nombre, teléfono, dni, celular, correo,
y contraseña, que podrán ser ingresados para actualizar sus datos.

3. El cliente llena los campos con sus datos personales actualizados y da click en cambiar
datos.

4. El sistema muestra una ventana con el texto “¿Está seguro que desea actualizar sus
datos?”

5. El cliente selecciona sí, estoy seguro y regresa a la ventana de perfil para que siga viendo
las siguientes opciones.
Caso de uso: Revisión de mis pedidos

Actor: Cliente

1. El cliente da click en mis pedidos.

2. El sistema listará los pedidos hechos por el cliente.

3. El sistema mostrará datos como fecha de pedido, precio de pedido, estado del pedido y la
opciones de descargar la boleta del pedido.

4. El cliente da click en descargar la boleta.

5. El sistema abrirá una nueva pestaña para que descargue el pdf de la boleta del pedido.
.

Caso de uso: Ver preferencias


Actor: Cliente

1. El cliente selecciona la opción de preferencias dentro de la ventana de mi perfil.

2. El sistema muestra una ventana con las imágenes de los productos que se han comprado
en mayor cantidad, así como la fecha de la última compra de ese producto.

3. El usuario da click en ver más y se muestran los productos que han sido comprados en
menor cantidad.
Caso de uso: Registro de Insumos

Actor: jefe área Suministros

1. Al ingresar a la plataforma verá los botones de SUMINISTROS Y ABASTECIMIENTOS,


PEDIDOS DEL CLIENTE y CERRAR SESIÓN

1.1 Si elige PEDIDOS DEL CLIENTE aparece una pantalla de ACCESO DENEGADO con el botón
REGRESAR para volver a la página anterior

1.2 Si elige CERRAR SESION se vuelve a la página de LOGIN

2. Elige SUMINISTROS Y ABASTECIMIENTOS

3. Ve una pantalla con los botones INVENTARIO PRODUCTOS, INVENTARIO DE INSUMOS,


DISTRIBUIDORES y ESTADÍSTICAS GENERALES Y REGRESAR

3.1 REGRESAR para volver al punto 1

4. Elige INVENTARIO DE INSUMOS

5. Ve una pantalla con los botones CREAR INSUMO, VER INSUMOS y REGRESAR

5.1 REGRESAR para volver al punto 3

6. Elige CREAR INSUMO

7. En esta pantalla se ingresan los datos CÓDIGO DE INSUMO, PRECIO DE INSUMO, NOMBRE
DE INSUMO, CATEGORÍA DE INSUMO, CANTIDAD DE EXISTENCIAS, DESCRIPCIÓN DE INSUMO
Y FOTO DE INSUMO. También están los botones CREAR, VER INSUMOS y REGRESAR

7.1 REGRESAR para volver al punto 5 sin registrar

8. Elige CREAR para registrar (solo si todos los campos de 7 están llenos)

6. Elige VER INSUMOS

7. Se ve una pantalla con una tabla de todos los insumos registrados con los datos CÓDIGO DE
INSUMO, NOMBRE DE INSUMO, CATEGORÍA DE INSUMO, PRECIO DE INSUMO y CANTIDAD DE
EXISTENCIAS con las páginas numeradas necesarias. También los botones DESCARGAR EN XLS,
SELECCIONAR y REGRESAR

7.1 REGRESAR para volver al punto 5

7.2 DESCARGAR EN XLS para generar un Excel con toda la información de la tabla del punto 7
con el nombre “INSUMOS”

8 SELECCIONAR habiendo elegido alguna fila de tabla


9. Se ve una pantalla con todos los detalles de dicho insumo habilitados para ser cambiados,
además los botones MODIFICAR INSUMO, ELIMINAR INSUMO y REGRESAR

9.1 MODIFICAR INSUMO para guardar los cambios hechos

9.2 ELIMINAR INSUMO para eliminar dicho insumo de las tablas

9.3 REGRESAR para volver al punto 7

Caso de uso: Registro de Productos

Actor: jefe área Ventas

1. Al ingresar a la plataforma verá los botones de SUMINISTROS Y ABASTECIMIENTOS,


PEDIDOS DEL CLIENTE y CERRAR SESIÓN

1.1 Si elige CERRAR SESION se vuelve a la página de LOGIN

1.2 PEDIDOS DEL CLIENTE es otro caso de uso

2. Elige SUMINISTROS Y ABASTECIMIENTOS

3. Ve una pantalla con los botones INVENTARIO PRODUCTOS, INVENTARIO DE INSUMOS,


DISTRIBUIDORES y ESTADÍSTICAS GENERALES Y REGRESAR

3.1 REGRESAR para volver al punto 1

4. Elige INVENTARIO DE PRODUCTOS

5. Ve una pantalla con los botones CREAR PRODUCTO, VER PRODUCTOS y REGRESAR

5.1 REGRESAR para volver al punto 3

6. Elige CREAR PRODUCTO

7. En esta pantalla se ingresan los datos CÓDIGO DE PRODUCTO, PRECIO DE PRODUCTOS,


NOMBRE DE PRODUCTOS, CATEGORÍA DE PRODUCTO, CANTIDAD DE EXISTENCIAS,
DESCRIPCIÓN DE PRODUCTO Y FOTO DE PRODUCTO. También están los botones CREAR, VER
PRODUCTOS y REGRESAR

7.1 REGRESAR para volver al punto 5 sin registrar

8. Elige CREAR para registrar (solo si todos los campos de 7 están llenos)

6. Elige VER PRODUCTOS


7. Se ve una pantalla con una tabla de todos los insumos registrados con los datos CÓDIGO DE
PRODUCTO, NOMBRE DE PRODUCTOS, CATEGORÍA DE PRODUCTO, PRECIO DE PRODUCTO y
CANTIDAD DE EXISTENCIAS con las páginas numeradas necesarias. También los botones
DESCARGAR EN XLS, SELECCIONAR y REGRESAR

7.1 REGRESAR para volver al punto 5

7.2 DESCARGAR EN XLS para generar un Excel con toda la información de la tabla del punto 7
con el nombre “PRODUCTOS”

8 SELECCIONAR habiendo elegido alguna fila de tabla

9. Se ve una pantalla con todos los detalles de dicho insumo habilitados para ser cambiados,
además los botones MODIFICAR PRODUCTO, ELIMINAR PRODUCTO y REGRESAR

9.1 MODIFICAR PRODUCTO para guardar los cambios hechos

9.2 ELIMINAR PRODUCTOS para eliminar dicho insumo de las tablas

9.3 REGRESAR para volver al punto 7

Caso de Uso: Compra de Suministros

Actor: jefe área Suministros

1. Al ingresar a la plataforma verá los botones de SUMINISTROS Y ABASTECIMIENTOS,


PEDIDOS DEL CLIENTE y CERRAR SESIÓN

1.1 Si elige PEDIDOS DEL CLIENTE aparece una pantalla de ACCESO DENEGADO con el botón
REGRESAR para volver a la página anterior

1.2 Si elige CERRAR SESION se vuelve a la página de LOGIN

2. Elige SUMINISTROS Y ABASTECIMIENTOS

3. Ve una pantalla con los botones INVENTARIO PRODUCTOS, INVENTARIO DE INSUMOS,


DISTRIBUIDORES, ESTADÍSTICAS GENERALES y REGRESAR

3.1 REGRESAR para volver al punto 1

4. Elige DISTRIBUIDORES

5. Ve una pantalla con los botones COMPRA A DISTRIBUIDORES, REGISTRO DE PEDIDOS y


REGRESAR

5.1 REGRESAR para volver al punto 3


6. Elige COMPRA A DISTRIBUIDORES

7. En la pantalla se ve un desplegable para elegir un distribuidor.

8. Elegido el distribuidor se muestran todos los insumos que puede vender, cada insumo con
foto, código, precio, la opción de digitar una cantidad de unidades y un botón de PEDIR
INSUMO para confirmar de forma preliminar. Aparte están los botones HABLAR CON
DISTRIBUIDOR, FINALIZAR PEDIDO y REGRESAR

8.1 REGRESAR para volver al punto 5 sin comprar nada

9. Elige FINALIZAR PEDIDO

10. Se ve una pantalla con el distribuidor elegido junto con todos los insumos confirmados
preliminarmente. Cada insumo con foto, nombre, cantidad pedido y el costo total por dicho
insumo. Aparte se ve el total a pagar del pedido y el botón PAGAR. También los botones
HABLAR CON DISTRIBUIDOR y REGRESAR.

10.1 REGRESAR para volver al punto 5 sin comprar nada

11. Elige PAGAR

12. Se ve una pantalla donde se podrá pagar únicamente con tarjeta de crédito o débito. Se
necesita ingresar Titular de tarjeta, Fecha de vencimiento, Número de tarjeta y CVV. También
se puede seleccionar una casilla de Guardar Sesión para mayor rapidez en la próxima compra.
Aparte están los botones PAGAR Y FINALIZAR y REGRESAR

12.1 REGRESAR para volver al punto 5 sin comprar nada

13. Elige PAGAR Y FINALIZAR

14. Se ve una pantalla con el mensaje “SU COMPRA FUE REALIZADO CON ÉXITO” y una imagen.
Aparte los botones IMPRIMIR VOUCHER, REGISTRO DE PEDIDOS y HABLAR CON
DISTRIBUIDOR.

9. Elige HABLAR CON DISTRIBUIDOR

10. Se ve una pantalla con el nombre del distribuidor seleccionado en el punto 8, junto con su
número de contacto y correo. También los botones ENVIAR MENSAJE POR GMAIL y ENVIAR
MENSAJE POR WHATSAPP. Ambos redirigen al usuario al chat seleccionado. Aparte el botón
REGRESAR

10.1 REGRESAR para volver al punto 5

6. Elige REGISTRO DE PEDIDOS

7. Se ve una pantalla con una tabla de todos los pedidos hechos con CÓDIGO DE PEDIDO,
PRECIO, DISTRIBUIDOR, ESTADO y FECHA además de la opción de descargar boleta. Aparte los
botones de DESCARGAR EN XLS, HABLAR CON DISTRIBUIDOR Y REGRESAR.
7.1 REGRESAR para volver al punto 5

7.2 DESCARGAR EN XLS para generar un Excel con toda la información d la tabla del punto 7
con el nombre “PEDIDOS”

Caso de uso: Ver estadísticas

Actor: jefe área (Cualquiera)

1. Al ingresar a la plataforma verá los botones de SUMINISTROS Y ABASTECIMIENTOS,


PEDIDOS DEL CLIENTE y CERRAR SESIÓN

1.1 Si elige CERRAR SESION se vuelve a la página de LOGIN

1.2 PEDIDOS DEL CLIENTE es otro caso de uso (en caso tenga el permiso) o aparece una
pantalla de ACCESO DENEGADO con el botón REGRESAR para volver a la página anterior (en
caso que no tenga el permiso)

2. Elige SUMINISTROS Y ABASTECIMIENTOS

3. Ve una pantalla con los botones INVENTARIO PRODUCTOS, INVENTARIO DE INSUMOS,


DISTRIBUIDORES y ESTADÍSTICAS GENERALES Y REGRESAR

3.1 REGRESAR para volver al punto 1

4. Elige ESTADÍSTICAS GENERALES

5. Se mostrarán diversos botones con diferentes gráficas en cada uno, como por ejemplo los
costos de los pedidos o las ventas mensuales o anuales. Esto está todavía por definirse.
También un botón de REGRESAR para volver al punto 3.
Requerimientos no funcionales:
- El sistema debe ser capaz de operar adecuadamente con hasta 10.000 usuarios con
sesiones concurrentes.
- Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará
operando hasta ser desbloqueado por un administrador de seguridad.
- El sistema debe contar con manuales de usuario estructurados adecuadamente.
- El sistema debe proporcionar mensajes de error que sean informativos y orientados
al usuario final.
- El sistema debe contar con un módulo de ayuda en línea.
- La aplicación web debe poseer un diseño adaptable a fin de garantizar la adecuada
visualización en múltiples computadores personales, dispositivos tablets y teléfonos
inteligentes
- El sistema debe tener una disponibilidad del 99,99% de las veces en que un usuario
intente acceder.
- El sistema no revelará a sus operadores otros datos personales de los clientes
distintos a nombres y números de referencia.
MODELAMIENTO CONCEPTUAL

Módulo de Compra
Módulo de compra

Entidades y Atributos

Insumos: Materia prima necesaria para la producción. Esta entidad absorbe el inventario de
insumos de la empresa

codigo_in: Identificador principal de 8 caracteres de cada insumo

nombre: Nombre específico y detallado del insumo.

descripcion: detalles técnicos adicionales del insumo.

existencias: Cantidad actual de unidades de dicho insumo en el inventario de la


empresa.

Categoria_In: Las diferentes categorías que pueden tener los insumos

codigo_ca: Identificador principal de la categoría. Es un entero

nombre: Nombre en general de la categoría.

descripcion: detalles técnicos adicionales de la categoría.

Distribuidor: Empresas que proveen de los insumos a la nuestra.

ruc: Identificador de la empresa según SUNAT de 11 caracteres.

nombre: completo de la empresa proveedora.

correo: Dirección única de correo electrónico de la empresa proveedora.

whatsapp: Número celular único de la empresa proveedora.

Pedido_Compra: Cada una de los pedidos que se desean comprar a las empresas proveedoras

codigo_pc: Identificador de 5 caracteres de los pedidos

fecha: fecha en el que se hace el pedido

monto_total: costo total del pedido


status: indica si este pedido ya ha sido cancelado, entregado o está pendiente.

Pagos: Entidad débil que depende de Pedido_Compra. Son los pagos que hace nuestra
empresa por cada pedido.

numero: El cardinal de los pagos

tarjeta: Número de la tarjeta con la que se hizo el pago.

pago: monto correspondiente en este pago

fecha: en la cual se realizó este pago

Relaciones:

posee: Relaciona Insumos y Categoria_In. Se supone que un insumo puede tener una o
muchas categorías y que una categoría puede ser poseída por ningún o muchos insumos.

vende: Relaciona Distribuidor e Insumos. Se supone que un distribuidor puede vender un o


muchos insumos y que un insumo puede ser vendido por uno o más distribuidores.

precio: cada distribuidor pone el precio de venta de sus insumos.

contiene: Relaciona Pediodo_Compra e Insumos. Se supone que un pedido puede contener


uno o muchos insumos y que un insumo puede estar en ningún o muchos pedidos.

cantidad: de cada insumo pedido por nuestra empresa en un pedido específico.

tiene: Relaciona Pedido_Compra y Pagos. Se supone que un pedido puede tener uno o más
pagos y que estos pagos son solo para este pedido. Es una relación con una entidad débil.
Modulo Venta

Producto: Son los productos que ofrece la empresa en la página web.

Nombre, Color, Existencias, Peso, Miniatura de la imagen

Categoria: Las diferentes categorías que pueden tener los productos.

Nombre, Descripción

ProductoxCategoría:: Ya que esta relación es muchos a muchos se crea una tabla intermedia.

Carrito_Compra: Son los productos que el cliente escoge en su sesión de cuenta.

cantidad_prod: Identifica las unidades de cada producto.

fecha_creacion: fecha en la que se llena el carrito

fecha modificación: fecha en la que se modifica el carrito

Sesion_Compra: Esta sesión está activa cuando el cliente aún no hace click a pagar.

monto: El precio de los productos que ha escogido.

fecha_modificacion: fecha de la última sesión del usuario.

Pedido: Son la orden confirmada por el usuario.

Fecha, hora, cod_trabajador, cod_pago

Detalles_pago: Son los detalles del pago hecho por el cliente por cada pedido.

monto, proveedor, estado, fecha

Relaciones:
supervisa: Relaciona al trabajador y el pedido que hace el cliente.

pertenece: Relaciona al área con el trabajador y al producto con su categoría y a la sesión con
el cliente, un área puede tener muchos trabajadores, pero un trabajador pertenece a una sola
área.

confirma: Relaciona pedido y pago, cuando el cliente confirma el pago se hace el pedido se
procede al despacho interno.

realiza: Relaciona cliente y pedido, cada cliente puede realizar muchos pedidos, pero un
pedido es realizado por un solo cliente.

compuesto de: Relaciona pedido con producto y sesión con producto, un pedido está
conformado por muchos productos.

posee: Relaciona cliente con dirección y método de pago, cada cliente necesita estas dos
entidades para realizar operaciones.
Módulo de Venta
MODELAMIENTO LÓGICO

Módulo de Compra
Módulo de Venta
CREACIÓN DE TABLAS

CREATE TABLE Cliente


(
Nombre VARCHAR(20) NOT NULL,
Apellido VARCHAR(20) NOT NULL,
DNI INT NOT NULL,
Telefono INT NOT NULL,
Correo VARCHAR(30) NOT NULL,
fecha_nac DATE NOT NULL,
Contraseña VARCHAR(8) NOT NULL,
fecha_creación DATE NOT NULL,
fecha_modif DATE NOT NULL,
PRIMARY KEY (DNI)
);

CREATE TABLE Area


(
cod_area INT NOT NULL,
nombre_area VARCHAR(20) NOT NULL,
descripcion_area VARCHAR(50) NOT NULL,
capacidad_area INT NOT NULL,
PRIMARY KEY (cod_area)
);

CREATE TABLE Categoria


(
cod_categoria INT NOT NULL,
nombre_cat VARCHAR(30) NOT NULL,
descripción_cat VARCHAR(50) NOT NULL,
PRIMARY KEY (cod_categoria)
);

CREATE TABLE Cliente_dirección


(
cod_cliente_direccion INT NOT NULL,
dirección VARCHAR(40) NOT NULL,
ciudad VARCHAR(20) NOT NULL,
cod_postal INT NOT NULL,
país VARCHAR(20) NOT NULL,
teléfono INT NOT NULL,
celular INT NOT NULL,
DNI INT NOT NULL,
PRIMARY KEY (cod_cliente_direccion),
FOREIGN KEY (DNI) REFERENCES Cliente(DNI)
);

CREATE TABLE Cliente_pago


(
cod_cliente_tarjeta INT NOT NULL,
tipo_pago VARCHAR(15) NOT NULL,
proveedor_tarjeta VARCHAR(20) NOT NULL,
número_cuenta INT NOT NULL,
fecha_exp DATE NOT NULL,
cvv_tarjeta INT NOT NULL,
DNI INT NOT NULL,
PRIMARY KEY (cod_cliente_tarjeta),
FOREIGN KEY (DNI) REFERENCES Cliente(DNI)
);

CREATE TABLE Detalles_pago


(
cod_pago INT NOT NULL,
cod_pedido INT NOT NULL,
monto_pago INT NOT NULL,
proveedor_pago VARCHAR(20) NOT NULL,
estado_pago VARCHAR(20) NOT NULL,
fecha_creación DATE NOT NULL,
PRIMARY KEY (cod_pago)
);

CREATE TABLE sesion_compra


(
cod_sesión_compra INT NOT NULL,
monto_total INT NOT NULL,
fecha_creacion DATE NOT NULL,
fecha_modificación DATE NOT NULL,
DNI INT NOT NULL,
PRIMARY KEY (cod_sesión_compra),
FOREIGN KEY (DNI) REFERENCES Cliente(DNI)
);
CREATE TABLE Trabajador
(
Cod_trabajador INT NOT NULL,
especialidad VARCHAR(30) NOT NULL,
tipo_contrato VARCHAR(20) NOT NULL,
DNI INT NOT NULL,
fecha_creación DATE NOT NULL,
cod_area INT NOT NULL,
PRIMARY KEY (Cod_trabajador),
FOREIGN KEY (cod_area) REFERENCES Area(cod_area)
);

CREATE TABLE Producto


(
Nombre VARCHAR(20) NOT NULL,
cod_producto INT NOT NULL,
Color VARCHAR(20) NOT NULL,
Descripcion VARCHAR(50) NOT NULL,
Precio INT NOT NULL,
existencias INT NOT NULL,
peso FLOAT NOT NULL,
Miniatura VARCHAR(50) NOT NULL,
PRIMARY KEY (cod_producto)
);

CREATE TABLE Carrito_compra


(
cod_carrito INT NOT NULL,
cantidad_prod INT NOT NULL,
fecha_creación DATE NOT NULL,
fecha_modicación DATE NOT NULL,
cod_sesión_compra INT NOT NULL,
cod_producto INT NOT NULL,
PRIMARY KEY (cod_carrito),
FOREIGN KEY (cod_sesión_compra) REFERENCES sesion_compra(cod_sesión_compra),
FOREIGN KEY (cod_producto) REFERENCES Producto(cod_producto)
);

CREATE TABLE Pedido


(
Cod_pedido INT NOT NULL,
fecha_pedido DATE NOT NULL,
hora_pedido DATE NOT NULL,
Cod_trabajador INT NOT NULL,
DNI INT NOT NULL,
cod_pago INT NOT NULL,
PRIMARY KEY (Cod_pedido),
FOREIGN KEY (Cod_trabajador) REFERENCES Trabajador(Cod_trabajador),
FOREIGN KEY (DNI) REFERENCES Cliente(DNI),
FOREIGN KEY (cod_pago) REFERENCES Detalles_pago(cod_pago)
);

CREATE TABLE Pedido_producto


(
cod_pedido_producto INT NOT NULL,
cant_producto INT NOT NULL,
Cod_pedido INT NOT NULL,
cod_producto INT NOT NULL,
PRIMARY KEY (cod_pedido_producto),
FOREIGN KEY (Cod_pedido) REFERENCES Pedido(Cod_pedido),
FOREIGN KEY (cod_producto) REFERENCES Producto(cod_producto)
);

CREATE TABLE Producto_categoría


(
cod_producto_categoria INT NOT NULL,
cod_categoria INT NOT NULL,
cod_producto INT NOT NULL,
PRIMARY KEY (cod_producto_categoria),
FOREIGN KEY (cod_categoria) REFERENCES Categoria(cod_categoria),
FOREIGN KEY (cod_producto) REFERENCES Producto(cod_producto)
);

CREATE TABLE Insumos


(
codigo_in CHAR(8) NOT NULL,
nombre VARCHAR(50) NOT NULL,
descripcion VARCHAR(100) NOT NULL,
existencias INT NOT NULL,
miniatura VARCHAR(50) NOT NULL,
PRIMARY KEY (codigo_in)
);

CREATE TABLE Distribuidor


(
ruc CHAR(11) NOT NULL,
nombre VARCHAR(50) NOT NULL,
correo VARCHAR(30) NOT NULL,
whatsapp VARCHAR(20),
PRIMARY KEY (ruc)
);

CREATE TABLE DistribuidorxInsumos


(
ruc CHAR(11) NOT NULL,
codigo_in CHAR(8) NOT NULL,
precio INT NOT NULL,
PRIMARY KEY (ruc, codigo_in),
FOREIGN KEY (ruc) REFERENCES Distribuidor(ruc),
FOREIGN KEY (codigo_in) REFERENCES Insumos(codigo_in)
);

CREATE TABLE Categoria_In


(
codigo_ca INT NOT NULL,
nombre VARCHAR(50) NOT NULL,
descripcion VARCHAR(100) NOT NULL,
PRIMARY KEY (codigo_ca)
);

CREATE TABLE InsumosxCategoria


(
codigo_in CHAR(8) NOT NULL,
codigo_ca INT NOT NULL,
PRIMARY KEY (codigo_in, codigo_ca),
FOREIGN KEY (codigo_in) REFERENCES Insumos(codigo_in),
FOREIGN KEY (codigo_ca) REFERENCES Categoria_In(codigo_ca)
);
CREATE TABLE Pedido_Compra
(
codigo_pc CHAR(5) NOT NULL,
fecha DATE NOT NULL,
monto_total INT NOT NULL,
estatus VARCHAR(50) NOT NULL,
ruc CHAR(11) NOT NULL,
cod_trabajador INT NOT NULL,
PRIMARY KEY (codigo_pc),
FOREIGN KEY (ruc) REFERENCES Distribuidor(ruc),
FOREIGN KEY (cod_trabajador) REFERENCES Trabajador(cod_trabajador)
);

CREATE TABLE PCxInsumos


(
codigo_pc CHAR(5) NOT NULL,
codigo_in CHAR(8) NOT NULL,
cantidad INT NOT NULL,
PRIMARY KEY (codigo_pc, codigo_in),
FOREIGN KEY (codigo_pc) REFERENCES Pedido_Compra(codigo_pc),
FOREIGN KEY (codigo_in) REFERENCES Insumos(codigo_in)
);

CREATE TABLE Pagos


(
codigo_pc CHAR(5) NOT NULL,
numero INT NOT NULL,
tarjeta INT NOT NULL,
pago INT NOT NULL,
fecha DATE NOT NULL,
PRIMARY KEY (numero, codigo_pc),
FOREIGN KEY (codigo_pc) REFERENCES Pedido_Compra(codigo_pc)
);

Select* From Producto_categoría;


Select* From Pedido_producto;
Select* From Pedido;
Select* From Producto;
Select* From Carrito_Compra;
Select* From Trabajador;
Select* From Sesion_Compra;
Select* From Detalles_pago;
Select* From Cliente_pago;
Select* From Cliente_dirección;
Select* From Categoria;
Select* From Area;
Select* From Cliente;
select* from DistribuidorxInsumos;
select* from PCxInsumos;
select* from Pedido_Compra;
select* from Distribuidor;
select* from Insumos;
select* from Pagos;
select* from Categoria_In;
select* from InsumosxCategoria;

Delete From Producto_categoría;


Delete From Pedido_producto;
Delete From Pedido;
Delete From Producto;
Delete From Carrito_Compra;
Delete From Trabajador;
Delete From Sesion_Compra;
Delete From Detalles_pago;
Delete From Cliente_pago;
Delete From Cliente_dirección;
Delete From Categoria;
Delete From Area;
Delete From Cliente;
delete from Pagos;
delete from Categoria_in;
delete from InsumosxCategoria;
delete from DistribuidorxInsumos;
delete from PCxInsumos;
delete from Pedido_Compra;
delete from Distribuidor;
delete from Insumos;

Drop table Producto_categoría;


Drop table Pedido_producto;
Drop table Pedido;
Drop table Carrito_Compra;
Drop table Producto;
Drop table Sesion_Compra;
Drop table Detalles_pago;
Drop table Cliente_pago;
Drop table Cliente_dirección;
Drop table Categoria;
Drop table Cliente;
Drop table Pagos;
Drop table InsumosxCategoria;
Drop table DistribuidorxInsumos;
Drop table PCxInsumos;
Drop table Categoria_In;
Drop table Pedido_Compra;
Drop table Distribuidor;
Drop table Insumos;
Drop table Trabajador;
Drop table Area;
Sentencias SQL por cada prototipo

Código Requerimiento R-001


Código Interfaz I-001
Imagen Interfaz

Sentencias SQL
Eventos:
1. Inicio de sesión: El usuario ingresa sus credenciales para iniciar sesión

SELECT nombre, apellido, dni FROM CLIENTE where correo=? and contraseña=?;

Donde el código de la persona es obtenido gracias al ingreso a la plataforma.


2. Creación de sesión: El sistema crea una sesión para el usuario

INSERT INTO SESION_COMPRA (cod_sesión_compra, monto_total, fecha_creacion,


fecha_modificación, DNI) SELECT dni, 0, CURRENT_DATE, CURRENT_DATE, DNI FROM cliente
ORDER BY CURRENT_DATE DESC LIMIT 1;

Código Requerimiento R-002


Código Interfaz I-002
Imagen Interfaz

Sentencias SQL
Eventos:
1. Registro de nuevo usuario

INSERT INTO CLIENTE (nombre, apellido, correo, telefono, dni, contraseña, fecha_creación,
fecha_modif) VALUES (<1>, <2>, <3>, <4>, <5>, <6>, current_date, current_date)

Donde los valores enumerados vienen a ser los datos ingresados por el cliente para su
registro en la tabla cliente,

Código Requerimiento R-003


Código Interfaz I-003
Imagen Interfaz
Sentencias SQL
Eventos:
1. Carga de productos según categoría

SELECT Miniatura, Nombre, Precio FROM PRODUCTO WHERE cod_categoria=? ORDER BY


Precio|| Nombre DESC||ASC LIMIT 12;

Donde el código de categoría es obtenido gracias al clic del usuario y se ordena por nombre o
precio de manera ascendente o descendente según la opción del usuario.
2. Agregar productos al carrito con el botón comprar

INSERT INTO Carrito_compra (cod_carrito, cantidad_prod, fecha_creación, fecha_modicación,


cod_sesión_compra, cod_producto) SELECT dni, ?, CURRENT_DATE, CURRENT_DATE,
cod_sesión_compra, ? FROM sesion_compra;

Donde la cant_producto será el número ingresado por el cliente cuando haga clic en comprar
el producto de su preferencia.
Código Requerimiento R-004
Código Interfaz I-004
Imagen Interfaz

Sentencias SQL
Eventos:
1. Carga de productos agregados al carrito

SELECT Miniatura, Nombre, Precio FROM PRODUCTO WHERE cod_categoria=? ORDER BY


Precio|| Nombre DESC||ASC LIMIT 12;

2. Actualizar la sesión de usuario con el monto total

UPDATE
sesion_compra
SET
monto_total = sesion_compra.monto_total + (CC.cantidad_prod * P.precio) FROM
Carrito_compra CC, Producto P WHERE CC.cod_producto=P.cod_producto AND
CC.cod_carrito=sesion_compra.cod_sesión_compra;

Se hará un update a la tabla sesión compra que contiene el monto total del carrito de compras
cada vez que el usuario de clic en comprar un producto e ingrese la cantidad requerida
Código Requerimiento R-005
Código Interfaz I-005
Imagen Interfaz

Sentencias SQL
Eventos:
RESUMEN DE CARRITO DE COMPRAS

Al cargar página

SELECT d.Nombre, d.color, d.precio, d.miniatura FROM Carrito_Compra c, Producto d,


sesion_compra s WHERE c.cod_producto = d.cod_producto and
c.cod_carrito=s.cod_sesión_compra

Al seleccionar vaciar carrito


DELETE FROM Carrito_compra USING sesion_compra WHERE
cod_carrito=sesion_compra.cod_sesión_compra

Mostrar el resumen del pedido si desea pagar

SELECT p.nombre, c.cantidad_prod, p.precio, s.monto_total FROM Producto p, sesion_compra


s, Carrito_compra c WHERE s.cod_sesión_compra=c.cod_carrito and
c.cod_producto=p.cod_producto
Código Requerimiento R-006
Código Interfaz I-006
Imagen Interfaz

Sentencias SQL

1.EVENTO: PAGAR Y FINALIZAR ELIGIENDO EL MÉTODO DE ENVIO (LOCAL) Y EL


MÉTODO DE PAGO TARJETA

INSERT INTO Metodos VALUES (1, true, false, true, false);

INSERT INTO Cliente_pago_tarjeta VALUES (1,'JOSE MANUAL TRUJILLO


FLORES',213343434, TO_DATE('28/02/1999','DD/MM/YYYY'),334,62374376,1);

Se selecciona el método de envío y el método de pago en este caso (local) (tarjeta)


Se inserta los datos de los campos de la tarjeta y se finaliza y paga.
Código Requerimiento R-007
Código Interfaz I-007
Imagen Interfaz

Sentencias SQL

1.EVENTO: PAGAR Y FINALIZAR ELIGIENDO EL MÉTODO DE ENVIO (LOCAL) Y EL


MÉTODO DE PAGO PAYPAL

INSERT INTO Metodos VALUES (3, false, true, true, false);

INSERT INTO Cliente_pago_paypal VALUES (1,


[email protected]','12312432',62374370,3);

Se selecciona el método de envió y el método de pago en este caso (local) (paypal)


Se inserta los datos de los campos de la cuenta PayPal y se finaliza y paga.
Código Requerimiento R-008
Código Interfaz I-008
Imagen Interfaz

Sentencias SQL

1.EVENTO: PAGAR Y FINALIZAR ELIGIENDO EL MÉTODO DE ENVIO (A CASA) Y EL


MÉTODO DE PAGO TARJETA

INSERT INTO Metodos VALUES (1, true, false, true, false);

INSERT INTO Cliente_direccion (1, departamento, direccion, celular, provincia,


codigo_posta, referencia, distrito, teléfono, descripción);

INSERT INTO Cliente_pago_tarjeta VALUES (1,'JOSE MANUAL TRUJILLO


FLORES',213343434, TO_DATE('28/02/1999','DD/MM/YYYY'),334,62374376,1);

Se selecciona el método de envío y el método de pago en este caso (a casa) (tarjeta)


Se inserta los datos de los campos de la información para el delivery y se finaliza y paga.
Código Requerimiento R-009
Código Interfaz I-009
Imagen Interfaz

Sentencias SQL

1.EVENTO: PAGAR Y FINALIZAR ELIGIENDO EL MÉTODO DE ENVIO (A CASA) Y EL


MÉTODO DE PAGO TARJETA

INSERT INTO Metodos VALUES (1, true, false, true, false);

INSERT INTO Cliente_direccion (2, departamento, direccion, celular, provincia,


codigo_posta, referencia, distrito, teléfono, descripción);

INSERT INTO Cliente_pago_tarjeta VALUES (1,'JOSE MANUAL TRUJILLO


FLORES',213343434, TO_DATE('28/02/1999','DD/MM/YYYY'),334,62374376,1);

Se selecciona el método de envío y el método de pago en este caso (a casa) (tarjeta)


Se inserta los datos de los campos de la información para el delivery y se finaliza y paga.
Código Requerimiento R-010
Código Interfaz I-010
Imagen Interfaz

Sentencias SQL
CREAR PRODUCTO

INSERT INTO Producto (Miniatura, cod_producto, Precio, Nombre, categoría, existencias,


color, peso, Descripcion) VALUES (<1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>);

*El script se ejecuta al hacer clic en CREAR PRODUCTO.


*Se agregarán las opciones de color y peso.
*<1>, <2>, <3>, <4>, <5>, <6>, <7>, <8> y <9> Ingreso de datos.
Código Requerimiento R-011
Código Interfaz I-011
Imagen Interfaz

Sentencias SQL
CREAR SUMINISTROS

INSERT INTO Insumos (miniatura, codigo_in, nombre, categoría, existencias, descripcion)


VALUES (<1>, <2>, <3>, <4>, <5>, <6>);

*El script se ejecuta al hacer clic en CREAR SUMINISTRO.


*En la pantalla de Suministros no hay el atributo precio.
*<1>, <2>, <3>, <4>, <5> y <6> Ingreso de datos.
Código Requerimiento R-012
Código Interfaz I-012
Imagen Interfaz

Sentencias SQL
LISTA DE PRODUCTOS

SELECT c.nombre_cat, p.cod_producto, p.nombre, p.precio, p.existencias FROM Categoria c,


Producto p WHERE c.cod_categoria=p.cod_categoria;

*Se elimina la columna de inventarios (que no se consideró al crear la base de datos) y se


reemplazó con la columna de existencias.
Código Requerimiento R-013
Código Interfaz I-013
Imagen Interfaz

Sentencias SQL
LISTA DE SUMINISTROS

SELECT c.nombre, i.codigo_in, i.nombre, i.existencias FROM Categoria c, Insumos i WHERE


c.codigo_ca = i.codigo_ca;

*Se elimina la columna de inventarios y la de precios (que no se consideró al crear la base


de datos) y se reemplazaron con la columna de existencias.
Código Requerimiento R-014
Código Interfaz I-014
Imagen Interfaz

Sentencias SQL
MODIFICAR PRODUCTO

SELECT Miniatura, Precio, Nombre, categoría, existencias, color, peso, Descripcion FROM
Producto WHERE cod_producto = <1>;

*Se rellena la información del producto seleccionado, el código de producto no aparece.

UPDATE Producto
SET Miniatura = <2>,
Precio = <3>,
Nombre = <4>,
categoría= <5>,
existencias= <6>,
color= <7>,
peso= <8>,
Descripcion= <9>
WHERE cod_producto = <1>;

*Se puede modificar cualquier campo excepto el código al hacer click en MODIFICAR
PRODUCTO.

ELIMINAR PRODUCTO

DELETE FROM Producto WHERE cod_producto = <1>;

*Se elimina el registro del producto seleccionado.


*<1>Código del producto seleccionado.

Código Requerimiento R-015


Código Interfaz I-015
Imagen Interfaz

Sentencias SQL
MODIFICAR SUMINISTRO

SELECT miniatura, nombre, categoría, existencias, descripcion FROM Insumos WHERE


codigo_in = <1>;

*Se rellena la información del insumo seleccionado, el código de insumo no aparece.

UPDATE Insumos
SET miniatura = <2>,
nombre = <3>,
categoría= <4>,
existencias= <5>,
descripcion= <6>
WHERE codigo_in = <1>;

*Se puede modificar cualquier campo excepto el código al hacer click en MODIFICAR
INSUMO.

ELIMINAR SUMINISTRO

DELETE FROM Insumos WHERE codigo_in= <1>;

*Se elimina el registro del insumo seleccionado.


*<1>Código del insumo seleccionado.

Código Requerimiento R-016


Código Interfaz I-016
Imagen Interfaz
Sentencias SQL
COMPRAR A DISTRIBUIDORES

Al cargar la Pagina:
SELECT ruc, nombre FROM Distribuidor;
SELECT i.miniatura, i.nombre, c.codigo_in, c.precio FROM Insumos i, DistribuidorxInsumos
c, WHERE i.codigo_in = c.codigo_in AND c.ruc = <1>

*<1> Corresponde al Distribuidor seleccionado*

INSERT INTO Pagos (codigo_pa, titular, fecha_exp, tarjeta, cvv) VALUES (<2>, <3>, <4>, <5>,
<6>);
INSERT INTO Pedido_Compra (codigo_pc, fecha, monto_total, estatus, ruc, cod_trabajador,
codigo_pa) VALUES (<7>, <8>, <9>, <10>, <1>, <11>, <2>);

*Al seleccionar un Distribuidor se crea un Insert en Pagos y un Insert en Pedido_Compra.


*<2> y <7> son códigos que se crearan automáticamente mediante secuencia.
*<3>, <4>, <5>, <6> y <9> serán datos básicos temporales que luego se actualizarán con
datos reales.
*<8> fecha actual.
*<10>’PENDIENTE’.
*<11> Código del trabajador usando el sistema.

INSERT INTO PCxInsumos (codigo_pc, codigo_in, cantidad) VALUES (<7>, <12>, <13>);

*Cada vez que se haga clic en PEDIR PRODUCTO (de insumos diferentes) se crea un Insert.
*<12>Código del insumo (codigo_in) donde se digito la cantidad.
*<13>Cantidad digitada.
Código Requerimiento R-017
Código Interfaz I-017
Imagen Interfaz

Sentencias SQL
RESUMEN DE COMPRA

Al cargar página
SELECT c.ruc, d.nombre FROM Pedido_Compra c, Distribuidor d WHERE c.ruc = d.ruc AND
c.codigo_pc = <1>;

CREATE VIEW Lista AS


SELECT i.miniatura, i.nombre, i.codigo_in, a.cantidad, a.cantidad*b.precio as total FROM
Insumos i, Pedido_Compra c, PCxInsumos a, DistribuidorxInsumos b WHERE a.codigo_in =
i.codigo_in AND a.codigo_in = b.codigo_in AND c.ruc = b.ruc AND a.codigo_pc = <1>;

UPDATE Pedido_Compra
Set monto_total = (Select Sum(l.total) FROM Lista l)
WHERE codigo_pc=<1>;

*<1>Código del pedido actual.

SELECT*FROM Lista;
SELECT monto_total FROM Pedido_Compra;

DROP VIEW Lista;


Código Requerimiento R-018
Código Interfaz I-018
Imagen Interfaz

Sentencias SQL
INGRESO DE DATOS DE TARJETA

UPDATE Pagos
SET titular= <1>
fecha_exp= <2>
tarjeta= <3>
cvv= <4>
WHERE codigo_pa=<5>;

*<1>, <2>, <3> y <4> datos digitados.


*<5>Código del pago actual que se creó previamente.
Código Requerimiento R-019
Código Interfaz I-019
Imagen Interfaz

Sentencias SQL
Comunicarse con Distribuidor

SELECT nombre, correo, whasapp FROM Distribuidor WHERE ruc=<1>


*<1> Corresponde al Distribuidor seleccionado previamente*

CANCELAR COMPRA

DELETE FROM PCxInsumos WHERE codigo_pc=<1>;


DELETE FROM Pedido_Compra WHERE codigo_pc=<1>;
DELETE FROM Pagos WHERE codigo_pa=<2>;

*<1> y <2> códigos actuales que se generaron.


*En cualquiera de las pantallas del proceso de compra tiene la opción de REGRESAR lo que
devolverá al usuario al menú principal y eliminara las tuplas que se crearon al inicio.
Código Requerimiento R-020
Código Interfaz I-020
Imagen Interfaz

Sentencias SQL
PEDIDOS

SELECT c.codigo_pc, c.monto_total, d.nombre, c.estatus, ‘Descargar boleta’ AS Boleta FROM


Pedido_Compra c, Distribuidos d WHERE c.ruc = d.ruc;

*La columna Boleta deberá imprimir la pantalla de RESUMEN DE COMPRA referenciando el


codigo_pc.

ACTUALIZAR PEDIDO

SELECT * FROM Pedido_Compra;


UPDATE Pedido_Compra
SET estatus = <1>
WHERE codigo_pc = <2>;

*<1>Se verán todos los datos de la tabla, pero solo se puede actualizar el estatus del pedido.
*<2>codigo_pc seleccionado.

También podría gustarte