Académique Documents
Professionnel Documents
Culture Documents
Siste
ma de Base de Datos
INTEGRANTES:
Marco Antonio Espinoza Arcenteles
Ral Patricio Reyes Moyota
Wendy Jaramillo Ortiz
Carlos Olmedo Vaca Quimi
AO LECTIVO: 2009-2010
I TRMINO
Pgina 1 de 50
Actor Principal
3. Nombre:
Administrador
Descripcin: Persona que se encarga de la administracin del sistema: el ingreso,
modificacin o eliminacin de los datos de los clientes, proveedores y empleados.
Tambin se encarga de la administracin de las cuentas.
Notas:
Actor Principal
Propsito de la empresa.
La empresa tiene como propsito 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.
Venta a Clientes
Pgina 2 de 50
Venta a Clientes
Reservacin 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 especficas segn
los requerimientos de la reservacin 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 direccin del cliente con los
tanques correspondientes.
Pgina 3 de 50
DATOS
USUARIOS
FORMULARIO DE
PROVEEDORES
FORMULARIO DE
EMPLEADOS
FORMULARIO
SALIDA DE
PRODUCTOS
FORMULARIO DE
PEDIDOS
FACTURAS
TIPO DE
ACCESO
Ingresar
ADMINISTRADOR
Modificar
Eliminar
Consultar
Ingresar
Modificar
Eliminar
Consultar
Ingresar
X
X
Modificar
Eliminar
Consultar
EMPLEADO
Ingresar
Modificar
Eliminar
Consultar
Ingresar
X
X
Modificar
Eliminar
Consultar
Ingresar
Modificar
Eliminar
Consultar
2. Eliminar empleado
Escenarios:
X
X
1. Modificar empleado
Escenarios:
CALL
CENTER
X
X
3. Consultar empleado
Escenarios:
4. Ingresar producto
Escenarios:
5. Modificar producto
Escenarios:
6. Eliminar producto
Escenarios:
7. Consultar producto
Escenarios:
Consulta de producto exitosa
Consulta de producto no exitosa, la identificacin no existe
8. Ingresar pedido
Escenarios:
9. Modificar pedido
Escenarios:
10.Eliminar pedido
Escenarios:
Pgina 5 de 50
11.Consultar pedido
Escenarios:
12.Realizar factura
Escenarios:
Descripcin
Notas:
Descripcin
Notas:
Descripcin
Notas:
C004:Eliminar usuario
El administrador podr eliminar un registro de un
usuario
Prerrequisitos: Acceder al sistema con
administrador
Post Salidas: Se elimina la informacin de un
usuario
Excepciones: Fallas del sistema
Pgina 7 de 50
Descripcin
Notas:
CU:002
Escenario 2.1
Escenario 2.2
Escenario 2.3
C002:Ingresar usuarios
Ingreso exitoso de nuevo usuario
Ingreso no exitoso, registros duplicados
Ingreso no exitoso por falta de datos
CU:003
Escenario 3.1
Escenario 3.2
Escenario 3.3
CU:004
Escenario 4.1
Escenario 4.2
CU:005
Escenario 5.1
Escenario 5.2
CU:006
Escenario 6.1
Escenario 6.2
CU:007
Escenario 7.1
Escenario 7.2
CU:008
Escenario 8.1
Escenario 8.2
CU:009
Escenario 9.1
Escenario 9.2
CU:010
Escenario 10.1
Escenario 10
CU:011
Escenario 11.1
Escenario 11.2
CU:012
Escenario 12.1
Escenario 12.2
CU:013
Escenario 13.1
Escenario 13.2
CU:014
Escenario 14.1
Escenario 14.2
CU:015
Escenario 15.1
Escenario 15.2
CU:016
Escenario 16.1
Escenario 16.2
Pgina 10 de 50
CU:017
Escenario 17.1
Escenario 17.2
CU:018
Escenario 18.1
Escenario 18.2
CU:019
Escenario 19.1
Escenario 19.2
CU:020
Escenario 20.1
Escenario20.2
CU:021
Escenario 21.1
Escenario 21.2
CU:022
Pgina 11 de 50
Escenario 22.1
Escenario 22.2
Cuenta
PK
usuario
clave
Persona
PK
FK1
Cedula
Nombre
Apellido
Genero
Edad
telefono 1
telefono2
direccion
sueldo
email1
email2
id_tipo
usuario
Tipo_persona
PK
id_tipo
Nombre
PK
Venta
id venta
FK1
FK2
FK3
id_cliente
id_empleado
id_det_reserva
Reservar
Comprar
PK
id_compra
FK1
FK2
FK3
id_empleado
id_proveedor
id_det_compra
id_producto
nombre
precio
PK
Detalle_Compra
PK
id_compra
FK1
cantidad
precio_total
id_producto
Detalle_Reserva
Producto
PK
id reserva
FK1
FK2
FK3
id_cliente
id_empleado
id_det_reserva
Pgina 12 de 50
PK
id_det_reserva
FK1
cantidad
id_producto
precio_total
Modelo Lgico:
Pgina 13 de 50
Diseo Lgico
Pgina 14 de 50
Persona
PK
Cedula
FK1
Nombre
Apellido
Genero
Edad
telefono1
telefono2
direccion
sueldo
email1
email2
id_tipo
usuario
contrasea
Tipo_persona
PK
id_tipo
Nombre
PK
Venta
id venta
FK1
FK2
FK3
id_cliente
id_empleado
id_det_reserva
Reservar
Comprar
PK
id_compra
FK1
FK2
FK3
id_empleado
id_proveedor
id_det_compra
id_producto
nombre
precio
PK
Detalle_Compra
PK
id_compra
cantidad
precio_total
Diseo Conceptual
Pgina 15 de 50
Detalle_Reserva
Producto
PK
id reserva
FK1
FK2
FK3
id_cliente
id_empleado
id_det_reserva
PK
id_det_reserva
FK1
cantidad
id_producto
precio_total
INTERACCIN DE OBJETOS
Cliente (Empleado)
Caso 1:
Escenario 1.1:
Pgina 16 de 50
Caso 2:
Escenario 2.1:
xito.
Reservar Tanques
El cliente ingreso una reservacin de tanques con
Pgina 17 de 50
Caso 3:
Escenario 3.1:
xito.
Pgina 18 de 50
es.java
datos
* Pendientes
Caso 4:
Escenario 4.1:
Pgina 19 de 50
Cliente
Caso 5:
Escenario 5.1:
Ingreso Cliente
El cliente ingreso con xito al sistema.
Pgina 20 de 50
Caso 6:
Escenario 6.1:
buscado.
Consultar datos
El cliente consulta
con xito
Pgina 21 de 50
datos
realizada
Empleados
Caso 7:
Escenario 7.1:
seleccionado.
Pgina 23 de 50
Caso 8:
Escenario 8.1:
Presionar
Paquete:
Ingresar
Funcin:
Opcin:
todos
insertaCuenta
Ctrl, Srv
losclass
ingresar_Usu
index.jsp
Baseingresar
de
UsuarioSrv.
completado.
UsuarioCtrl.
class
jsp
insertausuario
Add
datos
obligatorios
SP:
y
ario.jsp
datos
insertaUsuario
presionar
insertaCuenta
ingresar
Pgina 24 de 50
Caso 9:
Venta de tanques
Escenario 9.1:
El empleado vende la reservacin escogida.
Funcin:
Paquete:
Datos
Se
ha confirmado
de
las
Datos
Presionar
de
Confirmar
las class
reslaervaciones
lista_pedidos.jsp
completado.jsp
Base
de
PedidoCtrl.
PedidoSrv.
class
listarPendientes
Confirmar/
packReservacionT
reservaciones
reservacin
escogida
poranques
SP:
por
confirmar
datos
*Tanques
listarPendientesT
confirmar
anque
Pgina 25 de 50
Caso 10:
Ingreso Administrador
Escenario 10.1:
El Administrador ingreso con xito al sistema.
Validar
Ingresar
Paquete:
Direcciona
clave
Ctrl,
pgina
yFuncin:
Srv
del Administrador
SP:
Datos
de
la cuenta
del
index.jsp
menu.jsp
Basedatos
de
UsuarioCtrl.
class
usuario,
validaUsuario
ValidaUsuario
presionar
Adminis
cuenta
del
trador
datos
Ingresar
Adminis trador
Pgina 26 de 50
Caso 11:
Escenario 11.1:
sistema.
Ingresar
Presionar
Opcin:
todos
Add
modifica_usua
index.jsp
completado.jsp
Baseingresar
de
UsuarioCtrl.
UsuarioSrv.
Funcin:
Paquete:
insertaCuenta
Ctrl, los
Srv
class
datos obligatorios y
insertaUsuario
SP:insertaUsuario,
rio.jsp
datos
presionar Ingresar
class
insertaCuenta
Pgina 27 de 50
Caso 12:
Escenario 12.1:
xito.
Pgina 28 de 50
Mensaje:
Presionar
Paquete:
Funcin:
Se
CtrlSP:
edit
lista_usuario.jsp
completado.jsp
Base modificarCuenta
de
Funcin:
Paquete:
UsuarioCtrl.
UsuarioSrv.
SrvModificaron
SP:
class
class
modificaCuenta
modificarUsuario
correctamente
los datos
modificarUsuarios
datos
Pgina 29 de 50
Caso 13:
Escenario 13.1:
Presionar
Paquete:
Mensaje:
Se
Ctrl,Srv
elimino
lista_usuarios.jsp
Baseeliminar
de
UsuarioCtrl.
Usuario.
opcion:
class
class
Eliminar
SP:
correctamente
el usuario
datos
eliminarUsuario
Eliminar empleado
El Administrador elimino a un empleado con xito.
eliminaCuenta
Pgina 30 de 50
Caso 14:
Escenario 14.1:
Pgina 31 de 50
Mensaje:
Presionar
Paquete:
Funcin:
Se
Ctrl
edit
index.jsp
completado.jsp
modifica_usuario.jsp
Base modificaCuenta
de
Funcin:
Paquete:
UsuarioCtrl.
srvModificaron
class
SP: modificarUsuario
correctamente
los datos
modificaUsuario
SP:odificaCuenta
datos
Pgina 32 de 50
Caso 15:
Eliminar cliente
Escenario 15.1:
El Administrador elimino a un cliente con xito.
Presionar
Paquete:
Mensaje:
El
Ctrl,
Drop
usuario
Srvclass
se elimino
lista_usurios.jsp
completado.jsp
Base de
UsuarioCtrl.
Funcin:
eliminar
SP:
correctamente
datos
eliminarUsuario
eliminarCuenta
Pgina 33 de 50
Diccionario de Datos:
TABLA TB_PERSONA
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Cedula
Varchar2
(1.1)
20
Nombre
Varchar2
Nombre de la persona
(1.1)
20
Pgina 34 de 50
Apellido
Varchar2
Apellido
(1.1)
20
Genero
Varchar2
(1.1)
20
Edad
Varchar2
La edad de la persona
(1.1)
20
Direccin
Varchar2
(1.1)
20
Telefono1
Varchar2
Telfono principal de la
empresa o persona
(1.1)
20
Telefono2
Varchar2
Es el telfono secundario de
la persona, es para evitar el
atributo multivaluado.
(1.1)
20
Email1
Varchar2
(1.1)
20
(1.1)
20
(1.1)
20
(1.1)
20
(1.1)
20
Email2
Varchar2
Id_tipo
Varchar2
Usuario
Varchar2
Contrasen
ia
Varchar2
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 contrasea que va a
tener la persona o empresa
para entrar a la base de
datos
TABLA TB_TIPO
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_tipo
Varchar2
(1.1)
20
Nombre
Varchar2
(1.1)
20
Pgina 35 de 50
TABLA TB_COMPRA
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_compra
Varchar2
(1.1)
20
Id_emplead
o
Varchar2
(1.1)
20
Id_proveedo
r
Varchar2
(1.1)
20
Id_det_com
pra
Varchar2
(1.1)
20
TABLA TB_DETALLE_COMPRA
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_det_com
pra
Varchar2
(1.1)
20
Id_producto
Varchar2
(1.1)
20
Cantidad
Numric
o
(1.1)
20
Precio_total
Varchar2
(1.1)
20
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_venta
Varchar2
(1.1)
20
Id_emplead
o
Varchar2
(1.1)
20
Id_cliente
Varchar2
(1.1)
20
transaccin
Id_det_reser
va
Varchar2
(1.1)
20
TABLA TB_DETALLE_RESERVA
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_det_reser
va
Varchar2
(1.1)
20
Id_producto
Varchar2
(1.1)
20
Cantidad
Numric
o
(1.1)
20
Precio_total
Varchar2
(1.1)
20
TABLA TB_RESERVA
NOMBRE
TIPO
DESCRIPCION
CARDINALID
AD
TAMA
O
Id_reserva
Varchar2
(1.1)
20
Id_emplead
o
Varchar2
(1.1)
20
Id_cliente
Varchar2
(1.1)
20
Id_det_reser
va
Varchar2
(1.1)
20
CARDINALID
AD
TAMA
O
TABLA TB_PRODUCTO
NOMBRE
TIPO
DESCRIPCION
Pgina 37 de 50
Id_producto
Varchar2
(1.1)
20
Nombre
Varchar2
(1.1)
20
Precio
Varchar2
(1.1)
20
Diagrama de Clases:
Pgina 38 de 50
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
tring
String
tring
Nombre:
string
Apellido:s
id_empleado:String
getUs
idProducto:String
fechaP:String
uario:s
tring
tring
Precio: string
Genero:s
fecha:String
getPas
cantidad:String
horaP:String
s word:s
tring tring
Stock:
stringtring
Edad:int
hora;String
s
precio_total:s
es
etUs
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
Email1:s
getid_cliente:
getidProducto:String
getCedula:String
tring
getPrecio:string
Email2:s tring
String
getcantidad:String
getFechaP:String
getStock::string
Id_tipo:s
getid_empleado:Str
getprecio_total:s
getHoraP:String
tring
tring
setId_producto:void
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
tring
tring
getGenero:s
s
etid_venta:void
etprecio_total:void
etFechaP:String
tring
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")
Pgina 39 de 50
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
procedure
salida);
procedure
procedure
varchar2);
procedure
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;
is
usuario=usu;
end;
Pgina 41 de 50
begin
update tb_cuenta set contrasenia=pass where usuario=usu;
commit;
end;
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;
= id;
commit;
end;
procedure modifica_stockCompra(id varchar2,stk varchar2) is
begin
update tb_producto set stock = stock+stk where id_producto
commit;
end;
Pgina 42 de 50
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;
Pgina 43 de 50
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);
Pgina 44 de 50
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;
Pgina 47 de 50
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);
Pgina 48 de 50
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;
Pgina 50 de 50