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, ( ADMINISTRADOR, CALL CENTER, VENDEDOR ), ), cada uno de ellos tiene su respectiva funcionalidad:
Lista de Actores
1. Cliente 2. Empleado 3. Admin dminis istr trad ador or Descripción de Actores
1. Nombre: Cliente Descripción: Persona que solicita nuevos tanques o servicio técnico a la empresa. 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 tanques del proveedor, proveedor, entregar tanques Notas:
Actor Principal
3. Nombre: Administrador Descripción: Persona que se encarga de la administración del sistema: el ingreso, 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 esco escogi gido do espe especi cifi fica cando ndo la cant cantid idad ad y el tipo tipo de tanqu tanques es que que se dese desea a comprar.
Venta a Clientes
Reservación eservaci ón del d el Cliente. Cl iente. 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. correspondientes.
Definición de los límites del sistema
Principal Princip al vista de usuario para el sistema
Página 3 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
DATOS USUARIOS
FORMULARIO DE PROVEEDORES
FORMULARIO DE EMPLEADOS
FORMULARIO SALIDA DE PRODUCTOS
FORMULARIO DE PEDIDOS
FACTURAS
TIPO DE ACCESO Ingresar
ADMINISTRADOR
Modificar
X
Eliminar
X
Consultar
X
Ingresar
X
Modificar
X
Eliminar
X
Consultar Ingresar
X X
Modificar
X
Eliminar
X
Consultar
X
EMP EMPLEADO
X
•
Modificar
X
Eliminar
X
Consultar Ingresar
X
X X X
Modificar Eliminar
X
Consultar Ingresar
X
Modificar
X
Eliminar
X
Consultar
X
Modificación exitosa de los datos del empleado Modificación no exitosa, faltan datos
2. Elimin Eliminar ar emple empleado ado Escenarios: •
X X
X
Ingresar
1. Modif Modifica icarr empl emplead eado o Escenarios: •
CALL CENTER
Eliminación exitosa del proveedor Página 4 de 50
X X
X
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos •
Eliminación del empleado no exitosa, el empleado esta Activo (trabajando)
3. Consu Consulta ltarr empl emplead eado o Escenarios: • •
Consulta de empleado exitosa Consulta de empleado no exitosa, la identificación no existe
4. Ing Ingres resar ar produ producto cto Escenarios: • •
Ingreso de nuevo producto exitoso Ingreso producto no exitoso, la identificación no existe
5. Modif Modifica icarr produ producto cto Escenarios: • •
Modificación del producto exitosa Modificación del producto no exitosa, la identificación no existe
6. Elimin Eliminar ar produc producto to Escenarios: • •
Eliminación de producto exitoso Eliminación de producto no exitosa, la identificación no existe
7. Consu Consulta ltarr prod product ucto o Escenarios:
Consulta de producto exitosa Consulta de producto no exitosa, la identificación no existe 8. Ingr Ingres esar ar ped pedid ido o Escenarios: • •
• •
Ingreso exitoso de nuevo pedido Ingreso no exitoso por falta de datos
9. Modif Modifica icarr pedido 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 Notas:
C001: Ingresar sistema 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 Incompatibilidad entre el login y la contraseña Fallas del sistema Usuario ingresado no existe
Descripción Notas:
C002: Ingresar usuarios 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 Notas:
C003: Modificar usuario 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 Notas:
C004:Eliminar usuario 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: Excepciones : Fallas del sistema
Página 7 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Descripción Notas:
C004: Consultar usuario 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 Escenario 2.1 Escenario 2.2 Escenario 2.3
C002:Ingresar usuarios Ingreso exitoso de nuevo usuario Ingreso no exitoso, registros registros duplicados Ingreso no exitoso por falta de datos
CU:003 Escenario 3.1 Escenario 3.2 Escenario 3.3
C003: Modificar usuarios Modificación exitosa de los datos del usuario Modificación no exitosa, registros registros duplicados Modificación no exitosa, faltan datos
CU:004 Escenario 4.1 Escenario 4.2
C004: Eliminar usuarios Eliminación exitosa del usuario 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 Escenario 5.2
Consulta de usuario exitosa Consulta de usuario no existe, la identificación ingresada no existe
CU:006 Escenario 6.1 Escenario 6.2
C006: Ingresar proveedor Ingreso exitoso de nuevo proveedor Ingreso no exitoso por falta de datos
CU:007 Escenario 7.1 Escenario 7.2
C007: Modificar proveedor Modificación exitosa de los datos del proveedor Modificación no exitosa, faltan datos
CU:008 Escenario 8.1 Escenario 8.2
C008: Eliminar proveedor Eliminación exitosa del proveedor Eliminación no exitosa por fallas del sistema
CU:009 Escenario 9.1 Escenario 9.2
C009: Consultar proveedor Consulta de proveedor exitosa Consulta de proveedor no exitosa, la identificación ingresada no existe
CU:010 Escenario 10.1 Escenario 10
C010: Ingresar empleado Ingreso exitoso de nuevo empleado 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 Escenario 11.2
Modificación exitosa de los datos del empleado Modificación no exitosa, faltan datos
CU:012 Escenario 12.1 Escenario 12.2
C012: Eliminar empleado Eliminación exitosa del empleado Eliminación del empleado no exitosa, el empleado esta Activo (trabajando)
CU:013 Escenario 13.1 Escenario 13.2
C013: Consultar empleado Consulta de empleado exitosa Consulta de empleado no exitosa, la identificación no existe
CU:014 Escenario 14.1 Escenario 14.2
C014: Ingresar producto Ingreso de nuevo producto exitoso Ingreso producto no exitoso, la identificación no existe
CU:015 Escenario 15.1 Escenario 15.2
C015: Modificar producto Modificación del producto exitosa Modificación del producto no exitosa, la identificación no existe
CU:016 Escenario 16.1 Escenario 16.2
C016: Eliminar producto Eliminación de producto exitoso 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 Escenario 17.1 Escenario 17.2
C017: Consultar producto Consulta de producto exitosa Consulta de producto no exitosa, la identificación no existe
CU:018 Escenario 18.1 Escenario 18.2
C018: Ingresar pedido Ingreso exitoso de nuevo pedido Ingreso no exitoso por falta de datos
CU:019 Escenario 19.1 Escenario 19.2
C019: Modificar pedido Modificación del pedido exitosa Modificación del pedido no exitosa, la identificación no existe
CU:020 Escenario 20.1 Escenario20.2
C20: Eliminar pedido Eliminación de pedido exitoso Eliminación de pedido no exitosa, la identificación no existe
CU:021 Escenario 21.1 Escenario 21.2
C021: Consultar pedido Consulta de pedido exitosa 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 Escenario 22.2
La factura se realizo con éxito La factura no se pudo realizar con éxito
Modelo Lógico Anterior:
Cuenta PK
usua usuario rio clave
Persona PK
FK1
C ed edul a Nombre Apellido Genero Edad telefono telefono 1 telefono2 direccion sueldo email1 email2 id_t id_tipo usuario
Tipo_persona PK
id_t id_tipo Nombre
Producto PK
nombre precio Venta PK
id vent venta a
FK1 FK1 FK2 FK3
id_clie id_client nte e id_emplea id_empleado do id_det_re id_det_reser serva va
Reservar
Comprar PK
id_ id_compr ompra a
FK1 FK2 FK3
id_emp id_emplea leado do id_prove id_proveedor edor id_de id_det_comp t_compra ra
id_pro id_produc ducto to
Detalle_Compra PK
id_c id_com ompr pra a
FK1
cantidad precio_total id_produ id_product cto o
PK
id rese reserv rva a
FK1 FK2 FK3
id_clie id_client nte e id_emp id_emplea leado do id_det_rese id_det_reserva rva
Página 12 de 50
Detalle_Reserva PK
id_det_r id_det_res eser erva va
FK1
cantidad id_produc id_producto to precio_total
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
Cedul edula a Tipo_persona
FK1
Nombre Apellido Genero Edad telefono1 telefono2 direccion sueldo email1 email2 id_ti id_tipo po usuario contraseña
PK
id_ti id_tipo po Nombre
Producto PK
nombre precio Venta PK
id vent venta a
FK1 FK2 FK3
id_cli id_client ente e id_emp id_emplea leado do id_det id_det_re _reser serva va
Reservar
Comprar PK
id_c id_com ompr pra a
FK1 FK2 FK3
id_emp id_emplea leado do id_pro id_provee veedor dor id_det_comp id_det_compra ra
id_pro id_produc ducto to
PK
id rese reserv rva a
FK1 FK2 FK3
id_cli id_client ente e id_emp id_emplea leado do id_det id_det_re _reser serva va
Detalle_Compra PK
id_com id_compra pra cantidad precio_total
Diseño Conceptual
Página 15 de 50
Detalle_Reserva PK
id_de id_det_ t_re rese serv rva a
FK1
cantidad id_pro id_produc ducto to precio_total
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
INTERACCIÓN DE OBJETOS Cliente (Empleado) Caso 1: Esce Escena nari rio o 1.1: 1.1:
Ingreso Cliente (Empleado) El clie client nte e ingr ingres eso o con con éxit éxito o al sist sistem ema. a.
Página 16 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Ingresar Validar Paquete: Direcciona clave usuario usuari página yo del cliente SP: SP : Datos de la cuenta del UsuarioCtrl.class Index.jsp menu.jsp index.jsp Basedatos de usuario, Función: login Datos presionar cuente Cliente del datos login LOGIN Cliente
Caso 2: Esce Escena nari rio o 2.1: 2.1: éxito.
Reservar Tanques El clie client nte e ingr ingres eso o un una a rese reserv rvac ació ión n de tanq tanque ues s con con
Página 17 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Ingresar Mensaje: Presionar todos Los datos Ingresar Guardar datos Ingresar_pedido.jsp PedidoCtrl.class cliente.jsp PedidoCtr Ped Base idoCtrl. de l.losClass Class completado.jsp completado.jsp Paquete: Ctrl datos fueron obligatorios registrados regi stradosy Pedido Función: SP: insertarPedido datos correctamente. presionar Enviar reservar insertarDetallePedido
Caso 3: Esce Escena nari rio o 3.1 3.1: éxito.
Ver Reservas de tanques pendientes El clie client nte e cons consul ulta ta sus sus rese reserv rvas as de tanq tanque ues s con con
Página 18 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Presionar Función: Ver Datos las ver_pedido.jsp index.jsp Basedede PedidoCtrl.class Paquete: Ctrl,Srv consultaReservas Reservas/
Reservaciones SP: SP datos : listarPedidos listarPedidos es.java * Pendientes
Caso 4: Escenario 4.1:
Eliminar Reservación de tanques pendientes 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 ver_pendientes.jsp completado.jsp Base de PedidoCtrl. class Paquete: Ctrl, Srv Mensaje: eliminaPedido() Drop Se SP: eliminaron datos eliminaPedido correctamente EliminaDetalle.
Cliente Caso 5: Esce Escena nari rio o 5.1: 5.1:
Ingreso Cliente El clie client nte e ingr ingres eso o con con éxit éxito o al sist sistem ema. a.
Página 20 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Ingresar Validar Paquete: Paquete Direcciona :clave Ctrl, página ySrvclass del cliente SP: SP : Datos de la Cuenta del menu.jsp index.jsp Basedatos de UsuarioSrv. UsuarioCtrl. class usuario, validarDatos. Función: Datos presionar cuenta Cliente del datos Validardatos(); Ingresar Cliente
Caso 6: Esce Escena nari rio o 6.1: 6.1: buscado.
Consultar datos El clien liente te cons consul ulta ta con con éxi éxito to los los dat datos os del del em emple pleado ado
Página 21 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Datos Presionar Opción: de la Datos de los Srv jsp UsuarioSrv.jsp index.jsp Base de lista_usuario. UsuarioCtrl. class jsp Paquete: Función: Ctrl, ConsultaUsuario consulta Consultar empleados SP:listarEmpleados listarEmpleados datos realizada Empleados
Caso 7: Esce Escena nari rio o 7.1 7.1: seleccionado.
Modificar datos del Empleado El cli clie ente nte modi modifi fica ca con con éxi éxito to los los dat datos del del emp emple lead ado o Página 22 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Presionar Opción: Paquete: Datos Función: Escribir Paquete los :de Ctrl Cdatos trl, , Srv S rvque se desean Editar Datos del empleado completado.jsp index.jsp Basedel UsuarioCtrl. Modifica_usu class modificar SP:modificaUsuario empleado yapresionar modificarUsua Edit Guardar modificar riodatos ario.jsp
Página 23 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 8: Esce Escena nario rio 8.1: 8.1: Ingresar Opción: Presionar Paquete: Función: Paquete ingresar : todos Ctrl C trl, , Srv S los rv insertaCuenta ingresar_Usu index.jsp BaseSP: de jsp completado. UsuarioSrv. UsuarioCtrl. class class jsp datos y insertausuario Add obligatorios ario.jsp datos insertaUsuario presionar
Registrar empleado con éxito El clie client nte e regis registr tró ó un un emp emple lead ado o con con éxito éxito al siste sistema ma..
insertaCuenta ingresar
Página 24 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 9: Venta de tanques Esce Escena nari rio o 9.1 9.1:: El empl emplea eado do vend vende e la la re reserv servac ació ión n esc escog ogid ida. a. Datos Presionar Paquete: Función: Se ha confirmado de las la Datos de las reservaciones Confirmar lista_pedidos.jsp completado.jsp Base de PedidoSrv. PedidoCtrl. class class reservación reservaciones packReservacionTanques escogida por SP: listarPendientes Confirmar/ por confirmar datos confirmar listarPendientesTanque *Tanques
Página 25 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 10: Ingreso Administrador Esce Escena nario rio 10.1 10.1:: El Adm Admin inis istra trado dorr ingr ingres eso o con con éxit éxito o al sis siste tema ma.. Ingresar Paquete: Validar Paquete Direcciona datos : clave Ctrl, página y Srv Función: del Administrador SP: SP : Datos de la cuenta del menu.jsp index.jsp Base de class UsuarioCtrl. usuario, validaUsuario presionar ValidaUsuario Administrador cuenta del datos Ingresar Administrador
Página 26 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 11: Esce Escena nari rio o 11.1 11.1:: sistema. Ingresar Opción: Presionar ingresar todos Addlos modifica_usua completado.jsp index.jsp Base de UsuarioSrv. UsuarioCtrl. class Paquete: Función: Ctrl, Srv insertaCuenta datos obligatorios y SP:insertaUsuario, insertaUsuario rio.jsp datosIngresar presionar class
Registrar datos del empleado El Admin Adminis istr trad ador or regis registr tró ó un emple emplead ado o con con éxito xito al
insertaCuenta
Página 27 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 12: Esce Escena nari rio o 12.1 12.1:: éxito.
Modificar datos del empleado El Admi Admini nist stra rado dorr modi modifi fico co dato datos s del del empl emplea eado do con con
Página 28 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Mensaje: Presionar Paquete: Función: Paquete Se CtrlSP: CtrlSP Modificaron Modific : class aron aCuenta edit completado.jsp lista_usuario.jsp Base :modificarCuenta de UsuarioSrv. UsuarioCtrl. Paquete: Función: Srv SP: SP : datos modificaC modific uenta modificarUsuario correctamente losclass modificarUsuarios datos
Página 29 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 13: Esce Escena nario rio 13.1 13.1:: Mensaje: Presionar Paquete: Paquete : Se Ctrl,Srv elimino lista_usuarios.jsp Baseeliminar declass UsuarioCtrl. Usuario. opcion: SP: correctamente el class usuario Eliminar datos eliminarUsuario
Eliminar empleado El Admi Admini nist strad rador or elim elimin ino o a un empl emplea eado do con con éxi éxito to..
eliminaCuenta
Página 30 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 14: Escena Escenario rio 14.1: 14.1:
Modificar datos del cliente El Admini Administra strador dor modifi modifico co datos datos del del client cliente e con con éxito. éxito.
Página 31 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Mensaje: Presionar Paquete: Función: Paquete :modificaCuenta Se Ctrl Cedit trlModificaron Modific aron modifica_usuario.jsp completado.jsp index.jsp Base de UsuarioCtrl. Paquete: Función: srv SP: SP : modificarUsuario correctamente modifica rUsuario losclass datos SP:odificaCuenta modificaUsuario datos
Página 32 de 50
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Caso 15: Eliminar cliente Esce Escena nario rio 15.1 15.1:: El Adm Admin inis istra trado dorr elimi elimino no a un un clie client nte e con con éxit éxito. o. Presionar Paquete: Paquete Mensaje: : El Ctrl C trl, usuario , Srv S rv se elimino Drop completado.jsp lista_usurios.jsp Base de UsuarioCtrl. class Función: eliminar correctamente SP: 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Ñ AD O
NOMBRE
TIPO
DESCRIPCION
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
Genero
Varchar2
Solo son dos entre Masculino y Femenino
(1….1)
20
Edad
Varchar2
La edad de la persona
(1….1)
20
Dirección
Varchar2
Dirección del domicilio de la empresa o persona
(1….1)
20
Te Telef lefono1 ono1
Varcha char2
(1….1)
20
Te Telef lefono2 ono2
Varcha char2
(1….1)
20
Email1
Varchar2
(1….1)
20
Email2
Varchar2
(1….1)
20
Id_tipo
Varchar2
(1….1)
20
Usuario
Varchar2
(1….1)
20
Contrasen ia
Varchar2
Teléfono principal de la empresa o persona Es el teléfono secundario de la persona, es para evitar el atributo multivaluado. Email principal de la empresa o persona Es el email secundario de la persona, es para evitar el atributo multivaluado. FK, Es el identificador del tipo de persona al que nos referimos Es el usuario que va a tener la persona o empresa para acceder a la base de datos Es la contraseña que va a tener la persona o empresa para entrar a la base de datos
(1….1)
20
TABLA TB_TIPO NOMBRE
TIPO
DESCRIPCION
Id_tipo
Varchar2
PK, identificador de la tabla.
Nombre
Varchar2 Nombre del tipo de la Persona
Página 35 de 50
CARDINALID TAMAÑ AD O (1….1)
20
(1….1)
20
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
TABLA TB_COMPRA NOMBRE
TIPO
DESCRIPCION
Id_compra
Varchar2
PK, identificador de la tabla.
Id_emplead o
FK1, identificador del Varchar2 empleado que interviene en la transacción FK2, identificador del Varchar2 proveedor que interviene en la transacción FK2, identificador del Varchar2 detalle de la compra
Id_proveedo r Id_det_com pra
CARDINALID TAMAÑ AD O (1….1)
20
(1….1)
20
(1….1)
20
(1….1)
20
TABLA TB_DETALLE_COMPRA NOMBRE
TIPO
DESCRIPCION
Id_det_com pra
Varchar2
PK, identificador de la tabla.
Id_pr d_prod oduc uctto Cantidad Precio_ cio_ttotal otal
FK1, identificador del producto Numéric Cantidad del producto que o compramos Varchar char2 2 Precio total de los productos que compramos Varchar char2 2
CARDINALID TAMAÑ AD O (1….1)
20
(1….1)
20
(1….1)
20
(1….1)
20
TABLA TB_VENT TB_VE NTA A NOMBRE
TIPO
DESCRIPCION
Id_venta
Varchar2
PK, identificador de la tabla.
Id_emplead o
Varchar2
Id_cliente
Varchar2
FK1, identificador del empleado que interviene en la transacción FK2, identificador del cliente que interviene en la Página 36 de 50
CARDINALID TAMAÑ AD O (1….1)
20
(1….1)
20
(1….1)
20
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
transacción Id_det_reser va
Varchar2
FK2, identificador del detalle de la reserva que hace el cliente
(1….1)
20
TABLA TB_DETALLE_RESERVA TB_DETALLE_RESERVA CARDINALID TAMAÑ AD O
NOMBRE
TIPO
DESCRIPCION
Id_det_reser va
Varchar2
PK, identificador de la tabla.
(1….1)
20
FK1, identificador del producto Numéric Cantidad del producto que o reserva el cliente Precio total de los productos Varchar char2 2 que reserva el cliente
(1….1)
20
(1….1)
20
(1….1)
20
Id_pr d_prod oduc uctto Cantidad Precio_ cio_ttotal otal
Varchar char2 2
TABLA TB_RESERV TB_ RESERVA A NOMBRE
TIPO
DESCRIPCION
Id_reserva
Varchar2
PK, identificador de la tabla.
Id_emplead o
Varchar2
Id_cliente
Varchar2
Id_det_reser va
Varchar2
FK1, identificador del empleado que interviene en la transacción FK2, identificador del cliente que interviene en la transacción FK2, identificador del empleado q interviene en la transacción
CARDINALID TAMAÑ AD O (1….1)
20
(1….1)
20
(1….1)
20
(1….1)
20
TABLA TB_PRODUCTO NOMBRE
TIPO
DESCRIPCION
Página 37 de 50
CARDINALID TAMAÑ AD O
Escuela Superior Politécnica del Litoral Siste ma de Base de Datos
Id_producto
Varchar2
PK, identificador de la tabla.
(1….1)
20
Nombre
Varchar2
Nombre del producto que son: Industrial y Doméstico
(1….1)
20
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
Detalle Usuario Producto Venta Cuenta Pedido
id_venta:String id_pedido:String Cedula: string int Usuario:string idDetalle:String Id_producto: id_cliente: idPedido:String Nombre:string cedula:String Password:string Stringg Nombre: Nom bre: string strin id_empleado:String idProducto:String getUsuario:string fechaP:String Apellido:string Precio: string getPassword:string cantidad:String fecha:String horaP:String Genero:string Stock: precio_total:string setUsuario:void estado:String hora;String Edad:intstring getId_producto:string Telefono1:string getidDetalle:String setPassword:void total:string getNombre:string Telefono2:string getid_venta:String getid_pedido:String getidPedido:String getidProducto:String getCedula:String getid_cliente: Email1:string getPrecio:string getcantidad:String getFechaP:String Email2:string String getStock::string getprecio_total:string getid_empleado:Str Id_tipo:string getHoraP:String setId_producto:void getEstado:String setidDetalle:void Usuario:string ing setNombre:void getCedula: getfecha:String setidPedido:void getTotal:string string setPrecio:string setId_pedido:String setidProducto:void getNombre:string gethora;String setStock:string getApellido:string setCedula:String gettotal:string setcantidad:void setprecio_total:void setid_venta:void setFechaP:String getGenero:string setid_cliente: sethoraP:String getEdad:int void getTelefono1:string setEstado:String setid_empleado:voi getTelefono2:string setTotal:string d getEmail1:string setfecha:void getEmail2:string sethora:void getId_tipo:string settotal:void getUsuario:string setCedula: void setNombre:void setApellido:void setGenero:void setEdad:void setTelefono1:void setTelefono2:void setEmail1:void setEmail2:void setId_tipo:void setUsuario:void
Tablas: CREATE TABLE "TB_CUENTA" ( "USUAR "USUARIO IO" " VARC VARCHAR HAR2 2 (15) (15) NOT NULL, NULL, "CONTRASENIA" VARCHAR2 (20) NOT NULL, CONSTRAINT "CUENTA_PK" PRIMARY KEY ("USUARIO") ) CREATE TABLE “TB_TIPO" ( "ID_TI "ID_TIPO PO" " VARCHA VARCHAR2( R2(10) 10) NOT NULL, NULL, "NOMBRE" VARCHAR2(20) NOT NULL, CONSTRAINT "TB_TIPO_PK" PRIMARY KEY ("ID_TIPO") ) CREATE TABLE "TB_PERSONA" ( "CED "CEDUL ULA" A" VAR VARCH CHAR AR2( 2(10 10) ) NOT NOT NULL 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" "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" "TB_PERSONA_FK1" FOREIGN KEY ("ID_TIPO") REFERENCES "TB_TIPO" ("ID_TIPO") ) CREATE TABLE "TB_COMPRA" ( "ID_CO "ID_COMP MPRA" RA" VARCHA VARCHAR2( R2(10) 10) NOT NULL, 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"), ("ID_COMPRA"), CONSTRAINT "TB_COMPRA_FK" FOREIGN KEY ("ID_EMPLEADO") ("ID_EMPLEADO") REFERENCES "TB_PERSONA" "TB_PERSONA " ("CEDULA"), CONSTRAINT "TB_COMPRA_FK2" FOREIGN KEY ("ID_PROVEEDOR") REFERENCES "TB_PERSONA" "TB_PERSONA " ("CEDULA") ) CREATE TABLE "TB_PRODUCTO" "TB_PRODUCTO " ( "ID_PR "ID_PROD ODUCT UCTO" O" VARCHA VARCHAR2( R2(10) 10) NOT NULL, NULL, "NOMBRE" VARCHAR2(20) NOT NULL, "PRECIO" VARCHAR2(10) NOT NULL, "STOCK" VARCHAR2(5) NOT NULL, CONSTRAINT "TB_PRODUCTO_PK" "TB_PRODUCTO_PK" PRIMARY KEY ("ID_PRODUCTO") ("ID_PRODUCTO") ) CREATE TABLE "TB_RESERVA" ( "ID_ "ID_RE RESE SERV RVA" A" VAR VARCH CHAR AR2( 2(10 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" "TB_PERSONA " ("CEDULA") ) CREATE TABLE "TB_VENTA" ( "ID_VE "ID_VENT NTA" A" VARCHA VARCHAR2( R2(10) 10) NOT NULL, 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" "TB_PERSONA " ("CEDULA"), CONSTRAINT "TB_VENTA_FK2" FOREIGN KEY ("ID_EMPLEADO") ("ID_EMPLEADO") REFERENCES "TB_PERSONA" "TB_PERSONA " ("CEDULA") ) CREATE TABLE "TB_DET_COMPRA" "TB_DET_COMP RA" ( "ID_DE "ID_DET_ T_COM COMPRA PRA" " VARCH VARCHAR2 AR2(10 (10) ) NOT NOT NULL, 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" "TB_DET_COMPRA_PK" PRIMARY KEY ("ID_DET_COMPRA"), ("ID_DET_COMPRA"), CONSTRAINT "TB_DET_COMPRA_FK" "TB_DET_COMPRA_FK" FOREIGN KEY ("ID_COMPRA") REFERENCES "TB_COMPRA" ("ID_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" "TB_PRODUCT O" ("ID_PRODUCTO") ("ID_PRODUCT O")
) CREATE TABLE "TB_DET_RESERVA" "TB_DET_RESE RVA" ( "ID_DE "ID_DET_ T_RES RESERV ERVA" A" VARC VARCHAR HAR2(1 2(10) 0) NOT NOT NULL 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" "TB_RESERVA " ("ID_RESERVA"), ("ID_RESERVA" ), CONSTRAINT "TB_DET_RESERVA_FK2" "TB_DET_RESERVA_FK2" FOREIGN KEY ("ID_PRODUCTO") ("ID_PRODUCTO") REFERENCES "TB_PRODUCTO" "TB_PRODUCT O" ("ID_PRODUCTO") ("ID_PRODUCT O") ) CREATE TABLE "TB_DET_VENTA" "TB_DET_VENT A" ( "ID_DE "ID_DET_ T_VEN VENTA" TA" VARCHA VARCHAR2( R2(10) 10) NOT NULL, 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" "TB_PRODUCT O" ("ID_PRODUCTO"), ("ID_PRODUCT O"), CONSTRAINT "TB_DET_VENTA_FK2" "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 procedure salida); procedure procedure varchar2); procedure
inserta_cuenta(usu varchar2,pass varchar2); consulta_cuenta(usu varchar2, resultado in out modifica_cuentaUsuario(usu varchar2,pass varchar2); modifica_cuentaContrasenia(usu varchar2,pass 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 contrasenia=pass where usuario=usu; usuario=usu; commit; end; procedure elimina_cuenta(usu varchar2) is begin delete from tb_cuentawhere tb_cuentawher e usuario=usu; 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; tb_producto; end; procedure modifica_stock(id 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 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; 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||'%' ''||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 consulta_next_id(maximo in out salida); procedure consulta_next_id_det(maxi consulta_next_id_det(maximo mo 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 inserta_det_reserva(id varchar2,idreserva 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 elimina_det_reserva(id varchar2); end reserva; / create or replace package body reserva as procedure consulta_next_id(maximo 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(resulta consulta_reserva(resultado do in out salida) is begin open resultado for select * from tb_reserva order by id_reserva; end; procedure consulta_reservaPendiente consulta_reservaPendientes(resultado s(resultado in out salida) is begin open resultado for select * from tb_reserva where estado='pendiente' 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' estado='vendido' order by id_reserva; end; procedure consulta_reservaEliminada consulta_reservaEliminadas(resultado s(resultado in out salida) is begin open resultado for select * from tb_reserva where estado='eliminado' 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 tb_det_reserva where id_reserva=idres order by id_det_reserva; end; procedure inserta_det_reserva(id inserta_det_reserva(id varchar2,idreserva 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; id_det_reserva=id; commit; end; procedure elimina_det_reserva(id elimina_det_reserva(id varchar2) is begin delete from tb_det_reservawhere tb_det_reserv awhere id_det_reserva=id; id_det_reser va=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 consulta_next_id(maximo in out salida); procedure consulta_next_id_det(maxi consulta_next_id_det(maximo mo 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 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 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 tb_det_venta where id_venta=idventa; end; procedure inserta_det_venta(id varchar2,idventa varchar2,idprod varchar2,cant varchar2,cant varchar2,ptotal 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,cant varchar2,ptotal 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; id_det_venta=id; commit; end; procedure elimina_det_venta(id elimina_det_venta(id varchar2) is begin delete from tb_det_ventawhere tb_det_ventaw here id_det_venta=id; 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 consulta_next_id(maximo in out salida); procedure consulta_next_id_det(maxi consulta_next_id_det(maximo mo in out salida); procedure consulta_compra(resultado consulta_compra(resultado in out salida); procedure consulta_compraxID(idcompra varchar2,resultado in out salida); procedure inserta_compra(id varchar2,idemp varchar2,idprov 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 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,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 tb_comprawher e id_compra=id; id_compra=i d; 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 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,idpr values(id,idcompra,idprod,cant,ptot od,cant,ptotal); al); 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; id_det_compra=id; commit; end; procedure elimina_det_compra(id varchar2) is begin delete from tb_det_comprawhere tb_det_compra where id_det_compra=id; id_det_comp ra=id; commit; end; end compra;
Página 50 de 50