Está en la página 1de 5

create table clientes(

codcli char(10),
nombre varchar(30),
apellido varchar(30),
dni double,
telefono double,
direccion varchar(50),
email varchar(50),
foto varchar(100));

create table productos(


codpro char(10),
nombre varchar(30),
descripcion varchar(100),
pu decimal(8,2),
stock double,
foto varchar(30));

create table facturas(


nrofac char(10) not null,
codcli char(10) not null,
subtotal decimal(8,2) ,
igv decimal(8,2),
total decimal(8,2),
estado int default 0,
fechaemi date,
fechacan date,
codper char(10));

create table detallefacturas(


nrofac char(10) not null,
codpro char(6) not null,
cant int,
importe decimal(8,2));

create table personal(


codper char(10),
nombre varchar(30),
apellido varchar(30),
dni double,
telefono double,
direccion varchar(50),
email varchar(50),
foto varchar(100),
codusuario char(10));

create table usuarios(


codusuario char(10),
codestado char(10),
usuario char(50),
clave char(50));

create table estadousuarios


(codestado char(10),
descripcion char(50));

alter table clientes


add primary key (codcli);
alter table Productos add
primary key (codpro);

alter table Facturas


add primary key (nrofac);

alter table personal


add primary key (codper);

alter table usuarios


add primary key (codusuario);

alter table estadousuarios


add primary key (codestado);

alter table facturas


add constraint R_FAC_CLI foreign key (codcli)
references clientes (codcli)
on delete cascade
on update cascade;

alter table detallefacturas


add constraint R_DETA_FAC foreign key (nrofac)
references facturas (nrofac)
on delete cascade
on update cascade;

alter table detallefacturas


add constraint R_DETA_PRO foreign key (codpro)
references productos (codpro)
on delete cascade
on update cascade;

alter table facturas


add constraint R_FAC_PER foreign key (codper)
references personal(codper)
on delete cascade
on update cascade;

alter table personal


add constraint R_PER_USU foreign key (codusuario)
references usuarios(codusuario)
on delete cascade
on update cascade;

alter table usuarios


add constraint R_USU_ESTADO foreign key (codestado)
references estadousuarios(codestado)
on delete cascade
on update cascade;

insert into clientes values


("C0001","Gabriela","Saenz",45125252,3212121,"Av.Los Rosales #897 -
Lince","gsaenz@hotmail.com","gabriela.jpg"),
("C0002","Angelina","Ascona",77778888,1112233,"Jr. Las Lomas #765 -La
molina","aascona@yahoo.es","angelina.jpg");

insert into productos values


("P0001","Monitor","Pantalla lcd",300.00,5,"monitor.jpg"),
("P0002","Memoria","kingston",15.00,10,"memoria.jpg"),
("P0003","Impresora","Epson",200.00,6,"impresora.jpg"),
("P0004","Estabilizador","Estabilizador altron",30.00,8,"estabilizador.jpg"),
("P0005","Scanner","HP",190.00,10,"scanner.jpg");

insert into estadousuarios values


("E0001","ACTIVO"),
("E0002","INACTIVO"),
("E0003","BLOQUEADO"),("E0004","TEMPORAL");

insert into usuarios values


("U0001","E0001","admin",des_encrypt("admin123")),
("U0002","E0001","supervisor",des_encrypt("super123")),
("U0003","E0001","invitado",des_encrypt("invitado123"));

insert into personal values


("R0001","Manuel","Ramirez",65125252,5212121,"Av.Las Flores #897 -
Comas","mramirez@hotmail.com","manuel.jpg","U0002"),
("R0002","Pedro","Morales",72378888,3112233,"Jr. Las Rosas #765 -
Surco","pmorales@yahoo.es","pedro.jpg","U0002");

delimiter //
create procedure insertarclientes
(
codcli char(10),
nomcli varchar(30),
apecli varchar(30),
dnicli double,
telcli double,
direccli varchar(50),
emailcli varchar(50),
fotocli varchar(100))
begin
insert into Clientes values
(codcli,nomcli,apecli,dnicli,telcli,direccli,emailcli,fotocli);
end;
//

delimiter //
create procedure insertarproductos
(
codpro char(10),
nombrePro varchar(30),
descripPro varchar(100),
puPro decimal(8,2),
stockPro double,
fotoPro varchar(30))
Begin
insert into Productos values
(codpro,nombrePro,descripPro,puPro,stockPro,fotoPro);
End;
//

delimiter //
create procedure insertarfactura
(
nrofacF char(10),
codcliF char(10),
subtotalF decimal(8,2),
igvF decimal(8,2),
totalF decimal(8,2),
estadoF int,
fechaemiF date,
fechacanF date,
codper char(10))
Begin
insert into facturas values
(nrofacF,codcliF,subtotalF,igvF,totalF,estadoF,
fechaemiF,fechacanF,codper);
End;
//

delimiter //
create procedure insertarDF
(
nrofac char(10),
codpro char(6),
cant int,
importe decimal(8,2))
Begin
insert into DetalleFacturas values
(nrofac, codpro,cant,importe);
End;
//

delimiter //
create procedure generarcodigo
(
nomtabla varchar(50))
begin
declare ultcod varchar(20);
declare total int;
declare ceros int;
declare opcion int;
declare cod varchar(20);
declare nuevo char(10);
set ultcod=(select ultimocodigo from auxiliar where tabla=nomtabla);
set opcion = (select count(*) from auxiliar where tabla=nomtabla);
if opcion > 0 then
set total = cast(substring(ultcod,2,length(ultcod)) as unsigned) + 1;
set ceros = length(ultcod) - length(total)-1;
set nuevo = concat(left(ultcod,1),repeat("0",ceros),total);
update auxiliar set ultimocodigo=nuevo where tabla=nomtabla;
end if;
end;
//

delimiter //
create function darcodigo
(
nomtabla varchar(20))
returns varchar(20)
begin
declare cod char(10);
select ultimocodigo into cod from auxiliar where tabla=nomtabla;
return cod;
end;
//
delimiter //
create table auxiliar
(
tabla varchar(50),
ultimocodigo varchar(50)
);//

delimiter //
insert into auxiliar values
("clientes","C0002"),
("usuarios","U0003"),
("productos","P0005"),
("facturas","F0000"),
("personal","R0002");
//
http://linoit.com/users/kgarcia110485/canvases/Senati%20comparative%20Forms%201

https://www.youtube.com/watch?v=ISZnoCRIJtg

rational rose

jroman@senati.pe comunicacion
11
https://www.youtube.com/watch?v=48elbLRMxuU
22
https://www.youtube.com/watch?v=OtseVzlHhJc

También podría gustarte