Sunteți pe pagina 1din 50

Escuela Superior Politécnica del Litoral

Siste
ma de Base de Datos

ESCUELA SUPERIOR POLITECNICA DEL


LITORAL

MATERIA: SISTEMA DE BASE DE DATOS

PROYECTO: SISTEMA DE VENTA DE GAS

INTEGRANTES:

Marco Antonio Espinoza Arcenteles

Raúl Patricio Reyes Moyota

Wendy Jaramillo Ortiz

Carlos Olmedo Vaca Quimi

AÑO LECTIVO: 2009-2010


I TÉRMINO

SISTEMA DE VENTA DE GAS

Página 1 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
El proyecto consiste en desarrollar un sistema de venta de gas, el mismo que va a
ser administrado por tres tipos de usuarios (ADMINISTRADOR, CALL CENTER,
VENDEDOR), cada uno de ellos tiene su respectiva funcionalidad:

Lista de Actores

1. Cliente
2. Empleado
3. Administrador

Descripción de Actores

1. Nombre: Cliente
Descripción: Persona que solicita nuevos tanques o servicio técnico a la empresa.
Además puede ver sus reservas y el estado en el que se encuentran.
Notas: Actor Principal

2. Nombre: Empleado
Descripción: Persona que se encarga de retirar los tanques del proveedor, entregar
tanques

Notas: Actor Principal

3. Nombre: Administrador
Descripción: Persona que se encarga de la administración del sistema: el ingreso,
modificación o eliminación de los datos de los clientes, proveedores y empleados.
También se encarga de la administración de las cuentas.
Notas: Actor Principal

Propósito de la empresa.

La empresa tiene como propósito ofrecer a nuestro cliente la venta de gas de tipo
industrial y domestico, para la cual cuenta con un stock en nuestras bodegas de
almacenamiento, contamos con una cadena de distribuidores para así poder cumplir
con las necesidades de nuestra cartera de clientes.

Definición del sistema

Procesos
Compra a Proveedor
Solicitar al proveedor el stock requerido.

Venta a Clientes
Página 2 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Reservación del Cliente.

Generar factura que especifique el total a cobrar a los clientes por los
productos.

Especificación de Procesos

Compra a Proveedor

Solicitar al proveedor el stock requerido.

La única persona que puede llevar a cabo este proceso es el gerente, el


mismo que debe ingresar al sistema y enviar una solicitud al proveedor
escogido especificando la cantidad y el tipo de tanques que se desea
comprar.

Venta a Clientes

Reservación del Cliente.

La única persona que puede llevar a cabo este proceso es el administrador,


el mismo que debe ingresar al sistema y asignar las tareas específicas según
los requerimientos de la reservación aceptada.

Fijar el empleado encargado de entregar el producto al cliente.

El gerente debe asignar a un encargado para que cumpla con las tareas de
la solicitud. El encargado debe dirigirse a la dirección del cliente con los
tanques correspondientes.

Definición de los límites del sistema

Principal vista de usuario para el sistema

Página 3 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
DATOS TIPO DE ADMINISTRADOR EMPLEADO CALL
ACCESO CENTER
USUARIOS Ingresar X

Modificar X

Eliminar X

Consultar X

FORMULARIO DE Ingresar X
PROVEEDORES
Modificar X

Eliminar X

Consultar X X
FORMULARIO DE Ingresar X X
EMPLEADOS
Modificar X

Eliminar X

Consultar X

FORMULARIO Ingresar X
SALIDA DE
Modificar X
PRODUCTOS
Eliminar X

Consultar X X
FORMULARIO DE Ingresar X
PEDIDOS
Modificar X

Eliminar X

Consultar X X
FACTURAS Ingresar X

Modificar X

Eliminar X

Consultar X X

1. Modificar empleado
Escenarios:

• Modificación exitosa de los datos del empleado


• Modificación no exitosa, faltan datos

2. Eliminar empleado
Escenarios:

• Eliminación exitosa del proveedor


Página 4 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
• Eliminación del empleado no exitosa, el empleado esta Activo
(trabajando)

3. Consultar empleado
Escenarios:

• Consulta de empleado exitosa


• Consulta de empleado no exitosa, la identificación no existe

4. Ingresar producto
Escenarios:

• Ingreso de nuevo producto exitoso


• Ingreso producto no exitoso, la identificación no existe

5. Modificar producto
Escenarios:

• Modificación del producto exitosa


• Modificación del producto no exitosa, la identificación no existe

6. Eliminar producto
Escenarios:

• Eliminación de producto exitoso


• Eliminación de producto no exitosa, la identificación no existe

7. Consultar producto
Escenarios:

• Consulta de producto exitosa


• Consulta de producto no exitosa, la identificación no existe
8. Ingresar pedido
Escenarios:

• Ingreso exitoso de nuevo pedido


• Ingreso no exitoso por falta de datos

9. Modificar pedido
Escenarios:

• Modificación del pedido exitosa


• Modificación del pedido no exitosa, la identificación no existe

10.Eliminar pedido
Escenarios:
Página 5 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
• Eliminación de pedido exitoso
• Eliminación de pedido no exitosa, la identificación no existe

11.Consultar pedido
Escenarios:

• Consulta de pedido exitosa


• Consulta de pedido no exitosa, la identificación no existe

12.Realizar factura
Escenarios:

• La factura se realizo con éxito


• La factura no se pudo realizar con éxito

Descripción de casos de usos

Descripción C001: Ingresar sistema


Notas: El administrador, vendedor y call-center podrán
ingresar al sistema

Prerrequisitos: Ingresar el usuario y contraseña

Post Salidas: Mostrar opciones del menú

Excepciones: Incompatibilidad entre el login y la


contraseña

Fallas del sistema

Usuario ingresado no existe

Descripción C002: Ingresar usuarios


Notas: El administrador podrá ingresar un usuario

Prerrequisitos: Acceder al sistema con


administrador

Post Salidas: Se almacena información del nuevo


usuario

Excepciones: Registro duplicado

Falta de datos

Falla del sistema

Página 6 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Ingreso de datos no validos

Descripción C003: Modificar usuario


Notas: El administrador podrá modificar la información de
un usuario

Prerrequisitos: Acceder al sistema con


administrador

Haber ingresado al menos un


usuario

Post Salidas: Se modifica la información de un


usuario

Excepciones: Falta de datos

Fallas del sistema

Ingreso de datos no validos

Descripción C004:Eliminar usuario


Notas: El administrador podrá eliminar un registro de un
usuario

Prerrequisitos: Acceder al sistema con


administrador

Post Salidas: Se elimina la información de un


usuario

Excepciones: Fallas del sistema

Página 7 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Descripción C004: Consultar usuario
Notas: El administrador podrá consultar la información de
un usuario

Prerrequisitos: Acceder al sistema con


administrador

Post Salidas: Se consulta la información de un


usuario

Excepciones: No existe el usuario que desea


consultar

Fallas del sistema

CU:002 C002:Ingresar usuarios


Escenario 2.1 Ingreso exitoso de nuevo usuario
Escenario 2.2 Ingreso no exitoso, registros duplicados
Escenario 2.3 Ingreso no exitoso por falta de datos

CU:003 C003: Modificar usuarios


Escenario 3.1 Modificación exitosa de los datos del usuario
Escenario 3.2 Modificación no exitosa, registros duplicados
Escenario 3.3 Modificación no exitosa, faltan datos

CU:004 C004: Eliminar usuarios


Escenario 4.1 Eliminación exitosa del usuario
Escenario 4.2 Eliminación no exitosa por fallas del sistema

CU:005 C005: Consultar usuarios


Página 8 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Escenario 5.1 Consulta de usuario exitosa
Escenario 5.2 Consulta de usuario no existe, la identificación ingresada
no existe

CU:006 C006: Ingresar proveedor


Escenario 6.1 Ingreso exitoso de nuevo proveedor
Escenario 6.2 Ingreso no exitoso por falta de datos

CU:007 C007: Modificar proveedor


Escenario 7.1 Modificación exitosa de los datos del proveedor
Escenario 7.2 Modificación no exitosa, faltan datos

CU:008 C008: Eliminar proveedor


Escenario 8.1 Eliminación exitosa del proveedor
Escenario 8.2 Eliminación no exitosa por fallas del sistema

CU:009 C009: Consultar proveedor


Escenario 9.1 Consulta de proveedor exitosa
Escenario 9.2 Consulta de proveedor no exitosa, la identificación
ingresada no existe

CU:010 C010: Ingresar empleado


Escenario 10.1 Ingreso exitoso de nuevo empleado
Escenario 10 Ingreso no exitoso por falta de datos

CU:011 C011: Modificar empleado

Página 9 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Escenario 11.1 Modificación exitosa de los datos del empleado
Escenario 11.2 Modificación no exitosa, faltan datos

CU:012 C012: Eliminar empleado


Escenario 12.1 Eliminación exitosa del empleado
Escenario 12.2 Eliminación del empleado no exitosa, el empleado esta
Activo (trabajando)

CU:013 C013: Consultar empleado


Escenario 13.1 Consulta de empleado exitosa
Escenario 13.2 Consulta de empleado no exitosa, la identificación no
existe

CU:014 C014: Ingresar producto


Escenario 14.1 Ingreso de nuevo producto exitoso
Escenario 14.2 Ingreso producto no exitoso, la identificación no existe

CU:015 C015: Modificar producto


Escenario 15.1 Modificación del producto exitosa
Escenario 15.2 Modificación del producto no exitosa, la identificación no
existe

CU:016 C016: Eliminar producto


Escenario 16.1 Eliminación de producto exitoso
Escenario 16.2 Eliminación de producto no exitosa, la identificación no
existe

Página 10 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

CU:017 C017: Consultar producto


Escenario 17.1 Consulta de producto exitosa
Escenario 17.2 Consulta de producto no exitosa, la identificación no
existe

CU:018 C018: Ingresar pedido


Escenario 18.1 Ingreso exitoso de nuevo pedido
Escenario 18.2 Ingreso no exitoso por falta de datos

CU:019 C019: Modificar pedido


Escenario 19.1 Modificación del pedido exitosa
Escenario 19.2 Modificación del pedido no exitosa, la identificación no
existe

CU:020 C20: Eliminar pedido


Escenario 20.1 Eliminación de pedido exitoso
Escenario20.2 Eliminación de pedido no exitosa, la identificación no
existe

CU:021 C021: Consultar pedido


Escenario 21.1 Consulta de pedido exitosa
Escenario 21.2 Consulta de pedido no exitosa, la identificación no existe

CU:022 C022: Realizar factura

Página 11 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Escenario 22.1 La factura se realizo con éxito
Escenario 22.2 La factura no se pudo realizar con éxito

Modelo Lógico Anterior:

Cuenta
PK usuario

clave

Persona

PK Cedula
Tipo_persona
Nombre PK id_tipo Detalle_Reserva
Producto
Apellido
Genero PK id_det_reserva
Nombre PK id_producto
Edad
telefono 1 cantidad
nombre
telefono2 FK1 id_producto
precio
direccion precio_total
sueldo
Venta
email1
email2 PK id venta
FK1 id_tipo
usuario FK1 id_cliente
FK2 id_empleado
FK3 id_det_reserva

Comprar Reservar

PK id_compra PK id reserva
Detalle_Compra
FK1 id_empleado PK id_compra FK1 id_cliente
FK2 id_proveedor FK2 id_empleado
FK3 id_det_compra cantidad FK3 id_det_reserva
precio_total
FK1 id_producto

Página 12 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Modelo Lógico:

Página 13 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Diseño Lógico

Página 14 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Persona
PK Cedula
Tipo_persona
Nombre
PK id_tipo Detalle_Reserva
Apellido Producto
Genero PK id_det_reserva
Edad Nombre PK id_producto
telefono1 cantidad
telefono2 nombre
FK1 id_producto
direccion precio
precio_total
sueldo
email1 Venta
email2
FK1 id_tipo PK id venta
usuario
contraseña FK1 id_cliente
FK2 id_empleado
FK3 id_det_reserva

Comprar Reservar

PK id_compra PK id reserva
Detalle_Compra
FK1 id_empleado FK1 id_cliente
PK id_compra FK2 id_empleado
FK2 id_proveedor
FK3 id_det_compra FK3 id_det_reserva
cantidad
precio_total

Diseño Conceptual

Página 15 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

INTERACCIÓN DE OBJETOS

Cliente (Empleado)

Caso 1: Ingreso Cliente (Empleado)


Escenario 1.1: El cliente ingreso con éxito al sistema.

Página 16 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Validar
Ingresar
Paquete:
Direcciona
Basedatos
Datos clave
de
index.jsp
Index.jsp
menu.jsp usuario
página
y del cliente
la cuenta
UsuarioCtrl.class
de SP:
del
Función:
usuario,
login
Datos
Cliente presionar
cuente del
datos
login
LOGIN
Cliente

Caso 2: Reservar Tanques


Escenario 2.1: El cliente ingreso una reservación de tanques con
éxito.

Página 17 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Ingresar
Mensaje:
Presionar
Guardar todos
cliente.jsp
PedidoCtrl.
Base
Paquete: Los
de Ingresar
datos
los
datos
Ingresar_pedido.jsp
PedidoCtrl.class
Ctrl Class completado.jsp
datosFunción:
fueron obligatorios
registrados
Pedido y
SP:datos
insertarPedido
presionar
correctamente.
Enviar
reservar
insertarDetallePedido

Caso 3: Ver Reservas de tanques pendientes


Escenario 3.1: El cliente consulta sus reservas de tanques con
éxito.

Página 18 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Función:
Presionar
Datos
Basede Ver
las
PedidoCtrl.class
index.jsp
ver_pedido.jsp
Paquete: de
Ctrl,Srv
consultaReservas
Reservas/
Res ervaciones
es.java
datos
SP: listarPedidos
* Pendientes

Caso 4: Eliminar Reservación de tanques pendientes


Escenario 4.1: El cliente elimina su reservación de tanques con éxito.

Página 19 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Función:
Presionar
aje:
Paquete: de
PedidoCtrl.
Mens class
ver_pendientes.jsp
completado.jsp
Base Se Srv
Ctrl,
eliminaPedido()
Drop
datos
SP:
eliminaron
eliminaPedido
correctamente
EliminaDetalle.

Cliente
Caso 5: Ingreso Cliente
Escenario 5.1: El cliente ingreso con éxito al sistema.

Página 20 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Validar
Ingresar
Paquete:
Direcciona
Basedatos
Datos clave
de
index.jsp
menu.jsp Ctrl,
de
UsuarioCtrl.
UsuarioSrv. página
y class
Srvdel cliente
la Cuenta
class SP:
del
Función:
usuario,
validarDatos.
Datos
Cliente presionar
cuenta del
datos
Validardatos();
Ingresar
Cliente

Caso 6: Consultar datos


Escenario 6.1: El cliente consulta con éxito los datos del empleado
buscado.

Página 21 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Opción:
Presionar
Datos
Datos de
de
index.jsp lalos Srv
UsuarioSrv.jsp
Base de
UsuarioCtrl.
lista_usuario.
Función:
Paquete: Ctrl, class
jsp
ConsultaUsuario
Consultar
consulta
empleados
datos
listarEmpleados
SP:listarEmpleados
realizada
Empleados

Caso 7: Modificar datos del Empleado


Escenario 7.1: El cliente modifica con éxito los datos del empleado
seleccionado.

Página 22 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Opción:
Presionar
Escribir
Paquete:
Datos
Función:
Datos del
index.jsplos
Editar
Ctrl,
del
Modifica_usu datos
completado.jsp
Base de
UsuarioCtrl. Srvque
empleado se desean
class
modificarUsua
Edit
modificar
SP:modificaUsuario
empleado yapresionar Guardar
datos
ario.jsp
modificar
rio

Página 23 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 8: Registrar empleado con éxito


Escenario 8.1: El cliente registró un empleado con éxito al sistema.
Presionar
Paquete:
Ingresar
Función:
Opción:
Baseingresar
todos
insertaCuenta
Ctrl, Srv
ingresar_Usu
index.jspde
UsuarioSrv.
completado.
UsuarioCtrl. losclass
class
jsp
insertausuario
Add
datos obligatorios
SP: y
ario.jsp
datos
insertaUsuario
presionar
insertaCuenta
ingresar

Página 24 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Caso 9: Venta de tanques
Escenario 9.1: El empleado vende la reservación escogida.
Función:
Paquete:
Datos
Se ha confirmado
Datos
Base de
de
Presionar las
de
PedidoCtrl.
PedidoSrv. reslaervaciones
Confirmar
las class
class
lista_pedidos.jsp
completado.jsp
listarPendientes
Confirmar/
packReservacionT
reservaciones
reservación
por escogida
confirmarporanques SP:
datos
*Tanques
listarPendientesT
confirmar anque

Página 25 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 10: Ingreso Administrador


Escenario 10.1: El Administrador ingreso con éxito al sistema.
Validar
Ingresar
Paquete:
Direcciona
Basedatos
Datos clave
de
index.jsp
menu.jsp deCtrl,
UsuarioCtrl.página
yFunción:
Srvdel Administrador
la cuenta
class SP:
del
usuario,
validaUsuario
ValidaUsuario
Adminis
cuenta presionar
del
trador
datos
Ingresar
Adminis trador

Página 26 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 11: Registrar datos del empleado


Escenario 11.1: El Administrador registró un empleado con éxito al
sistema.
Ingresar
Presionar
Opción:
Baseingresar
index.jsptodos
Add
Ctrl, los
modifica_usua
completado.jsp
de
UsuarioCtrl.
UsuarioSrv.
Función:
Paquete: class
insertaCuenta
Srv
datos obligatorios y
rio.jsp
datos
insertaUsuario
SP:insertaUsuario,
class
presionar Ingresar
insertaCuenta

Página 27 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 12: Modificar datos del empleado


Escenario 12.1: El Administrador modifico datos del empleado con
éxito.

Página 28 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Mensaje:
Presionar
Paquete:
Función:
Base modificarCuenta
Se
CtrlSP:
edit
SrvModificaron
lista_usuario.jsp
completado.jsp
de
UsuarioCtrl.
UsuarioSrv.
Función:
Paquete: class
SP:class
modificaCuenta
modificarUsuario
correctamente los datos
datos
modificarUsuarios

Página 29 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 13: Eliminar empleado


Escenario 13.1: El Administrador elimino a un empleado con éxito.
Presionar
Paquete:
Mensaje: Se
Ctrl,Srv
elimino
class
lista_usuarios.jsp
Baseeliminar
Usuario.
opcion: de
UsuarioCtrl. class
Eliminar
SP:
correctamente el usuario
datos
eliminarUsuario
eliminaCuenta

Página 30 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 14: Modificar datos del cliente


Escenario 14.1: El Administrador modifico datos del cliente con éxito.

Página 31 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Mensaje:
Presionar
Paquete:
Función:
Base modificaCuenta
index.jsp Se
Ctrl
edit
srvModificaron
completado.jsp class
modifica_usuario.jsp
de
UsuarioCtrl.
Función:
Paquete:
SP: modificarUsuario
correctamente los datos
datos
modificaUsuario
SP:odificaCuenta

Página 32 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Caso 15: Eliminar cliente


Escenario 15.1: El Administrador elimino a un cliente con éxito.
Presionar
Paquete:
Mensaje:
Base deEl
Ctrl,
Drop
UsuarioCtrl.
Función: usuario
Srvclass
lista_usurios.jsp
completado.jsp
eliminar se elimino
SP:
correctamente
datos
eliminarUsuario
eliminarCuenta

Página 33 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

Diccionario de Datos:

TABLA TB_PERSONA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Cedula Varchar2 PK, identificador de la tabla. (1….1) 20

Nombre Varchar2 Nombre de la persona (1….1) 20

Página 34 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Apellido
Varchar2 Apellido (1….1) 20
Solo son dos entre Masculino
Genero Varchar2 (1….1) 20
y Femenino
Edad Varchar2 La edad de la persona (1….1) 20

Dirección del domicilio de la


Dirección Varchar2 (1….1) 20
empresa o persona

Teléfono principal de la
Telefono1 Varchar2 (1….1) 20
empresa o persona
Es el teléfono secundario de
Telefono2 Varchar2 la persona, es para evitar el (1….1) 20
atributo multivaluado.
Email principal de la empresa
Email1 Varchar2 (1….1) 20
o persona
Es el email secundario de la
Email2 Varchar2 persona, es para evitar el (1….1) 20
atributo multivaluado.
FK, Es el identificador del tipo
Id_tipo Varchar2 de persona al que nos (1….1) 20
referimos
Es el usuario que va a tener
Usuario Varchar2 la persona o empresa para (1….1) 20
acceder a la base de datos
Es la contraseña que va a
Contrasen tener la persona o empresa
Varchar2 (1….1) 20
ia para entrar a la base de
datos

TABLA TB_TIPO

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Id_tipo Varchar2 PK, identificador de la tabla. (1….1) 20

Nombre Varchar2 Nombre del tipo de la Persona (1….1) 20

Página 35 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

TABLA TB_COMPRA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Id_compra Varchar2 PK, identificador de la tabla. (1….1) 20

FK1, identificador del


Id_emplead
Varchar2 empleado que interviene en (1….1) 20
o
la transacción
FK2, identificador del
Id_proveedo
Varchar2 proveedor que interviene en (1….1) 20
r
la transacción
Id_det_com FK2, identificador del
Varchar2 (1….1) 20
pra detalle de la compra

TABLA TB_DETALLE_COMPRA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O
Id_det_com
Varchar2 PK, identificador de la tabla. (1….1) 20
pra
FK1, identificador del
Id_producto Varchar2 (1….1) 20
producto
Numéric Cantidad del producto que
Cantidad (1….1) 20
o compramos
Precio total de los productos
Precio_total Varchar2 (1….1) 20
que compramos

TABLA TB_VENTA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Id_venta Varchar2 PK, identificador de la tabla. (1….1) 20

FK1, identificador del


Id_emplead
Varchar2 empleado que interviene en (1….1) 20
o
la transacción
Id_cliente Varchar2 FK2, identificador del (1….1) 20
cliente que interviene en la
Página 36 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

transacción
FK2, identificador del
Id_det_reser
Varchar2 detalle de la reserva que (1….1) 20
va
hace el cliente

TABLA TB_DETALLE_RESERVA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O
Id_det_reser
Varchar2 PK, identificador de la tabla. (1….1) 20
va
FK1, identificador del
Id_producto Varchar2 (1….1) 20
producto
Numéric Cantidad del producto que
Cantidad (1….1) 20
o reserva el cliente
Precio total de los productos
Precio_total Varchar2 (1….1) 20
que reserva el cliente

TABLA TB_RESERVA

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Id_reserva Varchar2 PK, identificador de la tabla. (1….1) 20

FK1, identificador del


Id_emplead
Varchar2 empleado que interviene en (1….1) 20
o
la transacción
FK2, identificador del
Id_cliente Varchar2 cliente que interviene en la (1….1) 20
transacción
FK2, identificador del
Id_det_reser
Varchar2 empleado q interviene en la (1….1) 20
va
transacción

TABLA TB_PRODUCTO

CARDINALID TAMAÑ
NOMBRE TIPO DESCRIPCION
AD O

Página 37 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Id_producto
Varchar2 PK, identificador de la tabla. (1….1) 20

Nombre del producto que


Nombre Varchar2 (1….1) 20
son: Industrial y Doméstico
Precio Varchar2 Precio del producto (1….1) 20

Diagrama de Clases:

Página 38 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
Producto
Usuario
Venta
Cuenta
Detalle
Pedido
id_pedido:String
Cedula:
id_venta:String
Us
idDetalle:String
uario:s s tring int
Id_producto:
Nombre:s
id_cliente:
Pas
idPedido:String
cedula:String
s word:s
Nombre: tring
String
tring
string
Apellido:s
id_empleado:String
getUs
idProducto:String
fechaP:String
uario:s
tringtring
Precio: string
Genero:s
fecha:String
getPas
cantidad:String
horaP:String
s word:s
tring tring
Stock:
Edad:int stringtring
hora;String
s
precio_total:s
esetUs
tado:String
uario:void
getId_producto:string
Telefono1:s
s
getidDetalle:String
total:s
etPastring
s word:void
tring
getNombre:string
Telefono2:s tring
getid_venta:String
getidPedido:String
getid_pedido:String
getPrecio:string
Email1:s
getid_cliente:
getidProducto:String
getCedula:String
tring
Email2:s tring
String
getcantidad:String
getFechaP:String
getStock::string
Id_tipo:s
getid_empleado:Str
getprecio_total:s
getHoraP:String
tring
setId_producto:void tring
Us
ing
s
getEs
etidDetalle:void
uario:s
tado:String
tring
setNombre:void
getCedula:
getfecha:String
s
getTotal:s
etidPedido:void
tring
s tring
setPrecio:string
getNombre:s
gethora;String
s etidProducto:void
etId_pedido:String
tring
setStock:string
getApellido:s
gettotal:s
s etcantidad:void
etCedula:String
tringtring
getGenero:s
s etid_venta:void
etprecio_total:void
etFechaP:Stringtring
getEdad:int
s etid_cliente: void
ethoraP:String
getTelefono1:s
s etid_empleado:voi
etEs tado:String tring
getTelefono2:s
d
s etTotal:s tring tring
getEmail1:s
s etfecha:void tring
getEmail2:s
s ethora:voidtring
getId_tipo:s
s ettotal:voidtring
getUs uario:s tring
s etCedula: void
s etNombre:void
s etApellido:void
s etGenero:void
s etEdad:void
s etTelefono1:void
s etTelefono2:void
s etEmail1:void
s etEmail2:void
s etId_tipo:void
s etUs uario:void

Tablas:

CREATE TABLE "TB_CUENTA"


( "USUARIO" VARCHAR2 (15) NOT NULL,
"CONTRASENIA" VARCHAR2 (20) NOT NULL,
CONSTRAINT "CUENTA_PK" PRIMARY KEY ("USUARIO")
)

CREATE TABLE “TB_TIPO"


( "ID_TIPO" VARCHAR2(10) NOT NULL,
"NOMBRE" VARCHAR2(20) NOT NULL,
CONSTRAINT "TB_TIPO_PK" PRIMARY KEY ("ID_TIPO")
)

CREATE TABLE "TB_PERSONA"


( "CEDULA" VARCHAR2(10) NOT NULL,
"NOMBRE" VARCHAR2(50) NOT NULL,
"APELLIDO" VARCHAR2(50) NOT NULL,
"GENERO" VARCHAR2(5) NOT NULL,
"EDAD" NUMBER NOT NULL,
"TELEFONO1" VARCHAR2(10) NOT NULL,
"TELEFONO2" VARCHAR2(10),
"DIRECCION" VARCHAR2(100) NOT NULL,
"EMAIL1" VARCHAR2(25) NOT NULL,
"EMAIL2" VARCHAR2(25),
"ID_TIPO" VARCHAR2(10) NOT NULL,
"USUARIO" VARCHAR2(15) NOT NULL,
CONSTRAINT "TB_PERSONA_PK" PRIMARY KEY ("CEDULA"),
CONSTRAINT "TB_PERSONA_FK" FOREIGN KEY ("USUARIO")

Página 39 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
REFERENCES "TB_CUENTA" ("USUARIO"),
CONSTRAINT "TB_PERSONA_FK1" FOREIGN KEY ("ID_TIPO")
REFERENCES "TB_TIPO" ("ID_TIPO")
)

CREATE TABLE "TB_COMPRA"


( "ID_COMPRA" VARCHAR2(10) NOT NULL,
"ID_EMPLEADO" VARCHAR2(10) NOT NULL,
"ID_PROVEEDOR" VARCHAR2(10) NOT NULL,
"FECHA" VARCHAR2(15) NOT NULL,
"HORA" VARCHAR2(15) NOT NULL,
"TOTAL" VARCHAR2(10),
CONSTRAINT "TB_COMPRA_PK" PRIMARY KEY ("ID_COMPRA"),
CONSTRAINT "TB_COMPRA_FK" FOREIGN KEY ("ID_EMPLEADO")
REFERENCES "TB_PERSONA" ("CEDULA"),
CONSTRAINT "TB_COMPRA_FK2" FOREIGN KEY ("ID_PROVEEDOR")
REFERENCES "TB_PERSONA" ("CEDULA")
)

CREATE TABLE "TB_PRODUCTO"


( "ID_PRODUCTO" VARCHAR2(10) NOT NULL,
"NOMBRE" VARCHAR2(20) NOT NULL,
"PRECIO" VARCHAR2(10) NOT NULL,
"STOCK" VARCHAR2(5) NOT NULL,
CONSTRAINT "TB_PRODUCTO_PK" PRIMARY KEY ("ID_PRODUCTO")
)

CREATE TABLE "TB_RESERVA"


( "ID_RESERVA" VARCHAR2(10),
"ID_CLIENTE" VARCHAR2(10) NOT NULL,
"FECHA" VARCHAR2(15) NOT NULL,
"HORA" VARCHAR2(15) NOT NULL,
"ESTADO" VARCHAR2(15),
"TOTAL" VARCHAR2(10) NOT NULL,
CONSTRAINT "TB_RESERVA_PK" PRIMARY KEY ("ID_RESERVA"),
CONSTRAINT "TB_RESERVA_FK" FOREIGN KEY ("ID_CLIENTE")
REFERENCES "TB_PERSONA" ("CEDULA")
)

CREATE TABLE "TB_VENTA"


( "ID_VENTA" VARCHAR2(10) NOT NULL,
"ID_CLIENTE" VARCHAR2(10) NOT NULL,
"ID_EMPLEADO" VARCHAR2(10) NOT NULL,
"FECHA" VARCHAR2(15) NOT NULL,
"HORA" VARCHAR2(15) NOT NULL,
"TOTAL" VARCHAR2(10),
CONSTRAINT "TB_VENTA_PK" PRIMARY KEY ("ID_VENTA"),
CONSTRAINT "TB_VENTA_FK" FOREIGN KEY ("ID_CLIENTE")
REFERENCES "TB_PERSONA" ("CEDULA"),
CONSTRAINT "TB_VENTA_FK2" FOREIGN KEY ("ID_EMPLEADO")
REFERENCES "TB_PERSONA" ("CEDULA")
)

CREATE TABLE "TB_DET_COMPRA"


( "ID_DET_COMPRA" VARCHAR2(10) NOT NULL,
"ID_COMPRA" VARCHAR2(10) NOT NULL,
"ID_PRODUCTO" VARCHAR2(10) NOT NULL,
"CANTIDAD" VARCHAR2(10),
"PRECIO_TOTAL" VARCHAR2(10),
CONSTRAINT "TB_DET_COMPRA_PK" PRIMARY KEY ("ID_DET_COMPRA"),
CONSTRAINT "TB_DET_COMPRA_FK" FOREIGN KEY ("ID_COMPRA")
REFERENCES "TB_COMPRA" ("ID_COMPRA"),
CONSTRAINT "TB_DET_COMPRA_FK2" FOREIGN KEY ("ID_PRODUCTO")
Página 40 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
REFERENCES "TB_PRODUCTO" ("ID_PRODUCTO")
)

CREATE TABLE "TB_DET_RESERVA"


( "ID_DET_RESERVA" VARCHAR2(10) NOT NULL,
"ID_RESERVA" VARCHAR2(10) NOT NULL,
"ID_PRODUCTO" VARCHAR2(10) NOT NULL,
"CANTIDAD" VARCHAR2(10),
"PRECIO_TOTAL" VARCHAR2(10),
CONSTRAINT "TB_DET_RESERVA_PK" PRIMARY KEY ("ID_DET_RESERVA"),
CONSTRAINT "TB_DET_RESERVA_FK" FOREIGN KEY ("ID_RESERVA")
REFERENCES "TB_RESERVA" ("ID_RESERVA"),
CONSTRAINT "TB_DET_RESERVA_FK2" FOREIGN KEY ("ID_PRODUCTO")
REFERENCES "TB_PRODUCTO" ("ID_PRODUCTO")
)

CREATE TABLE "TB_DET_VENTA"


( "ID_DET_VENTA" VARCHAR2(10) NOT NULL,
"ID_VENTA" VARCHAR2(10) NOT NULL,
"ID_PRODUCTO" VARCHAR2(10) NOT NULL,
"CANTIDAD" VARCHAR2(10),
"PRECIO_TOTAL" VARCHAR2(10),
CONSTRAINT "TB_DET_VENTA_PK" PRIMARY KEY ("ID_DET_VENTA"),
CONSTRAINT "TB_DET_VENTA_FK" FOREIGN KEY ("ID_PRODUCTO")
REFERENCES "TB_PRODUCTO" ("ID_PRODUCTO"),
CONSTRAINT "TB_DET_VENTA_FK2" FOREIGN KEY ("ID_VENTA")
REFERENCES "TB_VENTA" ("ID_VENTA")
)

Procedures:

CUENTA:

create or replace package cuenta as


type salida is ref cursor;

procedure inserta_cuenta(usu varchar2,pass varchar2);


procedure consulta_cuenta(usu varchar2, resultado in out
salida);
procedure modifica_cuentaUsuario(usu varchar2,pass varchar2);
procedure modifica_cuentaContrasenia(usu varchar2,pass
varchar2);
procedure elimina_cuenta(usu varchar2);

end cuenta;

create or replace package body cuenta as

procedure inserta_cuenta(usu varchar2,pass varchar2) is


begin
insert into tb_cuenta (usuario,contrasenia)
values(usu,pass);
commit;
end;

procedure consulta_cuenta(usu varchar2, resultado in out salida)


is
begin
open resultado for select * from tb_cuenta where
usuario=usu;
end;

Página 41 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
procedure modifica_cuentaUsuario(usu varchar2,pass varchar2) is
begin
update tb_cuenta set usuario=usu where contrasenia=pass;
commit;
end;

procedure modifica_cuentaContrasenia(usu varchar2,pass varchar2)


is
begin
update tb_cuenta set contrasenia=pass where usuario=usu;
commit;
end;

procedure elimina_cuenta(usu varchar2) is


begin
delete from tb_cuentawhere usuario=usu;
commit;
end;
end cuenta;

PRODUCTO:

create or replace package producto as

type salida is ref cursor;


procedure consulta_todo_productos(resultado in out salida);
procedure modifica_stock(id varchar2,stk varchar2);
procedure modifica_stockCompra(id varchar2,stk varchar2);

end producto;
/

create or replace package body producto as

procedure consulta_todo_productos(resultado in out salida) is


begin
open resultado for select * from tb_producto;

end;

procedure modifica_stock(id varchar2,stk varchar2) is


begin
update tb_producto set stock = stock-stk where id_producto
= id;
commit;
end;

procedure modifica_stockCompra(id varchar2,stk varchar2) is


begin
update tb_producto set stock = stock+stk where id_producto
= id;
commit;
end;

Página 42 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
end producto;

USUARIO:

create or replace package usuario as


type salida is ref cursor;

procedure valida_usuario(usu varchar2,pass varchar2, resultado


in out salida);
procedure consulta_usuario(consulta varchar2 , tipo number,
resultado in out salida);
procedure consultar_empleados(resultado in out salida);
procedure consultar_clientes(resultado in out salida);
procedure consultar_proveedores(resultado in out salida);
procedure listar_usuarios(resultado in out salida);
procedure inserta_usuario(ced varchar2,nom varchar2,ape
varchar2,gen varchar2,eda varchar2,tel1 varchar2,tel2 varchar2,dir
varchar2,mail1 varchar2,mail2 varchar2,tip varchar2,usu varchar2);
procedure modifica_usuario(ced varchar2,nom varchar2,ape
varchar2,gen varchar2,eda varchar2,tel1 varchar2,tel2 varchar2,dir
varchar2,mail1 varchar2,mail2 varchar2,tip varchar2,usu varchar2);
procedure elimina_usuario(ced varchar2);

end usuario;

create or replace package body usuario as

procedure valida_usuario(usu varchar2,pass varchar2, resultado


in out salida) is
begin
open resultado for select * from tb_cuenta where
usuario=usu and contrasenia=pass;

end;

procedure consulta_usuario(consulta varchar2 , tipo number,


resultado in out salida) is
begin
if tipo = 1 then
open resultado for select * from tb_persona where nombre
like ''||consulta||'%' order by nombre asc;
elsif tipo = 2 then
open resultado for select * from tb_persona where apellido
like ''||consulta||'%' order by apellido asc;
elsif tipo = 3 then
open resultado for select * from tb_persona where cedula
like ''||consulta||'%';
elsif tipo = 4 then
open resultado for select * from tb_persona where id_tipo
like ''||consulta||'%' order by id_tipo asc;
elsif tipo = 5 then
open resultado for select * from tb_persona where usuario
like ''||consulta||'%';
end if;
end;

procedure consultar_empleados(resultado in out salida) is


begin
open resultado for select * from tb_persona where
id_tipo =2;
Página 43 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
end;

procedure consultar_clientes(resultado in out salida) is


begin
open resultado for select * from tb_persona where
id_tipo =3;
end;

procedure consultar_proveedores(resultado in out salida) is


begin
open resultado for select * from tb_persona where
id_tipo =4;
end;

procedure listar_usuarios(resultado in out salida) is


begin
open resultado for select * from tb_persona;

end;

procedure inserta_usuario(ced varchar2,nom varchar2,ape


varchar2,gen varchar2,eda varchar2,tel1 varchar2,tel2 varchar2,dir
varchar2,mail1 varchar2,mail2 varchar2,tip varchar2,usu varchar2) is
begin
insert into tb_persona
(cedula,nombre,apellido,genero,edad,telefono1,telefono2,direccion,emai
l1,email2,id_tipo,usuario)
values(ced,nom,ape,gen,eda,tel1,tel2,dir,mail1,mail2,tip,usu);
commit;
end;

procedure modifica_usuario(ced varchar2,nom varchar2,ape


varchar2,gen varchar2,eda varchar2,tel1 varchar2,tel2 varchar2,dir
varchar2,mail1 varchar2,mail2 varchar2,tip varchar2,usu varchar2) is
begin
update tb_persona set
nombre=nom,apellido=ape,genero=gen,edad=eda,telefono1=tel1,
telefono2=tel2, direccion=dir, email1=mail1, email2=mail2,
id_tipo=tip, usuario=usu where cedula=ced;
commit;
end;

procedure elimina_usuario(ced varchar2) is


begin
delete from tb_persona where cedula=ced;
commit;
end;
end usuario;

RESERVA:

create or replace package reserva as


type salida is ref cursor;
procedure consulta_next_id(maximo in out salida);
procedure consulta_next_id_det(maximo in out salida);
procedure consulta_reserva(resultado in out salida);
procedure consulta_reservaPendientes(resultado in out salida);
procedure consulta_reservaVendidas(resultado in out salida);
procedure consulta_reservaEliminadas(resultado in out salida);
Página 44 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
procedure consulta_reservaxId(id varchar2,resultado in out
salida);
procedure inserta_reserva(id varchar2,idcl varchar2,fe
varchar2,ho varchar2,est varchar2,tot varchar2);
procedure modifica_reserva(id varchar2,idcl varchar2,fe
varchar2,ho varchar2,est varchar2,tot varchar2);
procedure reserva_vendida(id varchar2);
procedure elimina_reserva(id varchar2);
procedure consulta_det_reserva(idres varchar2,resultado in out
salida);
procedure inserta_det_reserva(id varchar2,idreserva
varchar2,idprod varchar2,cant varchar2,ptotal varchar2);
procedure modifica_det_reserva(id varchar2,idreserva
varchar2,idprod varchar2,cant varchar2,ptotal varchar2);
procedure elimina_det_reserva(id varchar2);

end reserva;
/

create or replace package body reserva as

procedure consulta_next_id(maximo in out salida) is


begin
open maximo for select count(id_reserva)+1 from tb_reserva;
end;

procedure consulta_next_id_det(maximo in out salida) is


begin
open maximo for select count(id_det_reserva)+1 from
tb_det_reserva;
end;

procedure consulta_reserva(resultado in out salida) is


begin
open resultado for select * from tb_reserva order by
id_reserva;

end;

procedure consulta_reservaPendientes(resultado in out salida) is


begin
open resultado for select * from tb_reserva where
estado='pendiente' order by id_reserva;
end;

procedure consulta_reservaVendidas(resultado in out salida) is


begin
open resultado for select * from tb_reserva where
estado='vendido' order by id_reserva;
end;

procedure consulta_reservaEliminadas(resultado in out salida) is


begin
open resultado for select * from tb_reserva where
estado='eliminado' order by id_reserva;
end;

procedure consulta_reservaxId(id varchar2,resultado in out


salida) is
begin
open resultado for select * from tb_reserva where
id_reserva=id;
end;
Página 45 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

procedure inserta_reserva(id varchar2,idcl varchar2,fe


varchar2,ho varchar2,est varchar2,tot varchar2) is
begin
insert into tb_reserva
(id_reserva,id_cliente,fecha,hora,estado,total)
values(id,idcl,fe,ho,est,tot);
commit;
end;

procedure modifica_reserva(id varchar2,idcl varchar2,fe


varchar2,ho varchar2,est varchar2,tot varchar2) is
begin
update tb_reserva set
id_cliente=idcl,fecha=fe,hora=ho,estado=est,total=tot where
id_reserva=id;
commit;
end;

procedure reserva_vendida(id varchar2) is


begin
update tb_reserva set estado='vendido' where id_reserva=id;
commit;
end;

procedure elimina_reserva(id varchar2) is


begin
update tb_reserva set estado='eliminado' where
id_reserva=id;
commit;
end;

procedure consulta_det_reserva(idres varchar2,resultado in out


salida) is
begin
open resultado for select * from tb_det_reserva where
id_reserva=idres order by id_det_reserva;
end;

procedure inserta_det_reserva(id varchar2,idreserva


varchar2,idprod varchar2,cant varchar2,ptotal varchar2) is
begin
insert into tb_det_reserva
(id_det_reserva,id_reserva,id_producto,cantidad,precio_total)
values(id,idreserva,idprod,cant,ptotal);
commit;
end;

procedure modifica_det_reserva(id varchar2,idreserva


varchar2,idprod varchar2,cant varchar2,ptotal varchar2) is
begin
update tb_det_reserva set
id_reserva=idreserva,id_producto=idprod,cantidad=cant,precio_total=pto
tal where id_det_reserva=id;
commit;
end;

procedure elimina_det_reserva(id varchar2) is


begin
delete from tb_det_reservawhere id_det_reserva=id;
commit;
end;

Página 46 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
end reserva;

VENTA:

create or replace package venta as


type salida is ref cursor;
procedure consulta_next_id(maximo in out salida);
procedure consulta_next_id_det(maximo in out salida);
procedure consulta_venta(resultado in out salida);
procedure consulta_ventaxID(idventa varchar2,resultado in out
salida);
procedure inserta_venta(id varchar2,idcl varchar2,idemp
varchar2,fe varchar2,ho varchar2,tot varchar2);
procedure modifica_venta(id varchar2,idcl varchar2,idemp
varchar2,fe varchar2,ho varchar2,tot varchar2);
procedure elimina_venta(id varchar2);
procedure consulta_det_venta(idventa varchar2,resultado in out
salida);
procedure inserta_det_venta(id varchar2,idventa varchar2,idprod
varchar2,cant varchar2,ptotal varchar2);
procedure modifica_det_venta(id varchar2,idventa varchar2,idprod
varchar2,cant varchar2,ptotal varchar2);
procedure elimina_det_venta(id varchar2);

end venta;
/

create or replace package body venta as

procedure consulta_next_id(maximo in out salida) is


begin
open maximo for select count(id_venta)+1 from tb_venta;
end;

procedure consulta_next_id_det(maximo in out salida) is


begin
open maximo for select count(id_det_venta)+1 from
tb_det_venta;
end;

procedure consulta_venta(resultado in out salida) is


begin
open resultado for select * from tb_venta;

end;

procedure consulta_ventaxID(idventa varchar2,resultado in out


salida) is
begin
open resultado for select * from tb_venta where id_venta
= idventa;

end;

procedure inserta_venta(id varchar2,idcl varchar2,idemp


varchar2,fe varchar2,ho varchar2,tot varchar2) is
begin
insert into tb_venta
(id_venta,id_cliente,id_empleado,fecha,hora,total)
values(id,idcl,idemp,fe,ho,tot);
commit;
end;
Página 47 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos

procedure modifica_venta(id varchar2,idcl varchar2,idemp


varchar2,fe varchar2,ho varchar2,tot varchar2) is
begin
update tb_venta set
id_cliente=idcl,id_empleado=idemp,fecha=fe,hora=ho,total=tot where
id_venta=id;
commit;
end;

procedure elimina_venta(id varchar2) is


begin
delete from tb_ventawhere id_venta=id;
commit;
end;

procedure consulta_det_venta(idventa varchar2,resultado in out


salida) is
begin
open resultado for select * from tb_det_venta where
id_venta=idventa;
end;

procedure inserta_det_venta(id varchar2,idventa varchar2,idprod


varchar2,cant varchar2,ptotal varchar2) is
begin
insert into tb_det_venta
(id_det_venta,id_venta,id_producto,cantidad,precio_total)
values(id,idventa,idprod,cant,ptotal);
commit;
end;

procedure modifica_det_venta(id varchar2,idventa varchar2,idprod


varchar2,cant varchar2,ptotal varchar2) is
begin
update tb_det_venta set
id_producto=idprod,cantidad=cant,precio_total=ptotal,id_venta=idventa
where id_det_venta=id;
commit;
end;

procedure elimina_det_venta(id varchar2) is


begin
delete from tb_det_ventawhere id_det_venta=id;
commit;
end;

end venta;

COMPRA:

create or replace package compra as


type salida is ref cursor;
procedure consulta_next_id(maximo in out salida);
procedure consulta_next_id_det(maximo in out salida);
procedure consulta_compra(resultado in out salida);
procedure consulta_compraxID(idcompra varchar2,resultado in out
salida);
procedure inserta_compra(id varchar2,idemp varchar2,idprov
varchar2,fe varchar2,ho varchar2,tot varchar2);

Página 48 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
procedure modifica_compra(id varchar2,idemp varchar2,idprov
varchar2,fe varchar2,ho varchar2,tot varchar2);
procedure elimina_compra(id varchar2);
procedure consulta_det_compra(idcompra varchar2,resultado in out
salida);
procedure inserta_det_compra(id varchar2,idcompra
varchar2,idprod varchar2,cant varchar2,ptotal varchar2);
procedure modifica_det_compra(id varchar2,idcompra
varchar2,idprod varchar2,cant varchar2,ptotal varchar2);
procedure elimina_det_compra(id varchar2);

end compra;
/

create or replace package body compra as

procedure consulta_next_id(maximo in out salida) is


begin
open maximo for select count(id_compra)+1 from tb_compra;
end;

procedure consulta_next_id_det(maximo in out salida) is


begin
open maximo for select count(id_det_compra)+1 from
tb_det_compra;
end;

procedure consulta_compra(resultado in out salida) is


begin
open resultado for select * from tb_compra;

end;

procedure consulta_compraxID(idcompra varchar2,resultado in


out salida) is
begin
open resultado for select * from tb_compra where
id_compra = idcompra;

end;

procedure inserta_compra(id varchar2,idemp varchar2,idprov


varchar2,fe varchar2,ho varchar2,tot varchar2) is
begin
insert into tb_compra
(id_compra,id_empleado,id_proveedor,fecha,hora,total)
values(id,idemp,idprov,fe,ho,tot);
commit;
end;

procedure modifica_compra(id varchar2,idemp varchar2,idprov


varchar2,fe varchar2,ho varchar2,tot varchar2) is
begin
update tb_compra set
id_empleado=idemp,id_proveedor=idprov,fecha=fe,hora=ho,total=tot where
id_compra=id;
commit;
end;

procedure elimina_compra(id varchar2) is


begin
delete from tb_comprawhere id_compra=id;
commit;
Página 49 de 50
Escuela Superior Politécnica del Litoral
Siste
ma de Base de Datos
end;

procedure consulta_det_compra(idcompra varchar2,resultado in out


salida) is
begin
open resultado for select * from tb_det_compra where
id_compra=idcompra;
end;

procedure inserta_det_compra(id varchar2,idcompra


varchar2,idprod varchar2,cant varchar2,ptotal varchar2) is
begin
insert into tb_det_compra
(id_det_compra,id_compra,id_producto,cantidad,precio_total)
values(id,idcompra,idprod,cant,ptotal);
commit;
end;

procedure modifica_det_compra(id varchar2,idcompra


varchar2,idprod varchar2,cant varchar2,ptotal varchar2) is
begin
update tb_det_compra set
id_producto=idprod,cantidad=cant,precio_total=ptotal,id_compra=idcompr
a where id_det_compra=id;
commit;
end;

procedure elimina_det_compra(id varchar2) is


begin
delete from tb_det_comprawhere id_det_compra=id;
commit;
end;

end compra;

Página 50 de 50

S-ar putea să vă placă și