You are on page 1of 10

create database muebles go use muebles go

create table area( codarea char(5) primary key, nomarea varchar(20) ) go insert into area values('ar001','Venta') insert into area values('ar002','Almacen') insert into area values ('ar003','Organizacion') select*from area go create table cargo( codcar char(5) primary key, codarea char(5) foreign key references area (codarea), nomcar varchar(20) ) go insert into cargo values('cr001','ar001','Jefe de venta') insert into cargo values('cr002','ar001','vendedor') insert into cargo values('cr003','ar002','Jefe de Almacen') insert into cargo values('cr004','ar002','Almacenero') insert into cargo values('cr005','ar003','Gerente') insert into cargo values('cr006','ar003','contador') select*from cargo go --creando tabla categoria CREATE TABLE categoria( codcat char(5) NOT NULL primary key, des_cat varchar(50) NOT NULL ) go insert into categoria values('ca001','conmedor') insert into categoria values('ca002','dormitorio') insert into categoria values('ca003','sala') --creanado tabla modelo --create table modelo( --codmod char(5) primary key, --codcat char(5) foreign key references categoria (codcat), --des_mod varchar(50) --) --go --insert into modelo values('m001','ca001','nogal plateado') --insert into modelo values('m002','ca001','cinta azul') --insert into modelo values('m0003','ca002','nogal dorado') --insert into modelo values('m0004','ca002','eclesial') --insert into modelo values('m0005','ca003','nogal') --insert into modelo values('m0006','ca003','eclesial') --select*from modelo --creando la tabla empleados create table empleados(

codemp char(5) primary key, nombres varchar(30), apellidos varchar(50), dni char(8), codarea char(5) foreign key references area(codarea), codcar char(5) foreign key references cargo (codcar), direccion varchar(30), telefono char(7), sueldo decimal(7,2), fecha_reg datetime ) insert into empleados values('','','','00000001','ar003','cr005','','',0.1,'01/0 1/2011') insert into empleados values('E0001','Carlos','Perez Castro','46631233','ar001', 'cr002','ca.girasoles 223','5288124','300','26/11/2010') /**procedimiento generado de empleado*/ create PROCEDURE gencod_emp AS DECLARE @CODIGO CHAR(5) SET @CODIGO=(SELECT MAX(codemp) FROM empleados) SELECT 'EM'+ RIGHT('000'+LTRIM(RIGHT(ISNULL(@CODIGO,'0000'),3)+1),3) go --creacion de la vista empleados go create view visempleados as select e.codemp,e.nombres,e.apellidos,e.dni,e.codarea,a.nomarea,e.codcar,c.nomca r,e.direccion,e.telefono,e.sueldo,e.fecha_reg from empleados as e inner join dbo.area as a on e.codarea=a.codarea inner join dbo.cargo as c on e.codcar=c.codcar select*from visempleados /*---------------------------------------------*/ /*procedimientos*/ create proc i_empleados @cod char(5), @nom varchar(30), @ape varchar(50), @dni char(8), @codarea char(5) , @codcar char(5) , @dir varchar(30), @telf char(7), @sue decimal(7,2), @freg datetime as insert into empleados values(@codemp,@nombres,@ape, @dni,@codarea,@codcar,@dir,@telf,@sue,@freg) go create proc u_empleado @cod char(5), @nom varchar(30), @ape varchar(50), @dni char(8), @codarea char(5) ,

@codcar char(5) , @dir varchar(30), @telf char(7), @sue decimal(7,2), @freg datetime update empleados set nombres=@nom, apellidos=@ape, dni=@dni , , codarea=@codarea codcar=@codcar, direccion=@dir, telefono=@telf, sueldo=@sue, fecha_reg)@freg where codemp=@cod create proc d_empleado @cod char(5) as delete from empleados where coemp=@cod go create proc bus_empleado @par varchar(40) as select CODIGO=codemp, NOMBRES=nombres, APELLIDOS=apellidos, DNI=dni, AREA=nomarea,CARGO=nomcar,DIRECCION=direccion from area a,cargo c,empleado e where e.codcar=c.codcar, a.codarea=e.codarea and e.codemp like @par +'%' or e.nombres like @par +'%' or e.apellidos like @par +'%' or dni like @par+'%' go

create table usuarios( codusu char(7)primary key, pass varchar(10), codemp char(5) foreign key references empleados (codemp) ) go insert into usuarios values('admin','123','E0001') go

create proc i_usuario @cod char(7), @pass varchar(10), @emp char(5) as insert into usuarios values(@cod,@pass,@emp) go create proc u_usuario @cod char(7),

@pass varchar(10), @emp char(5) update usuarios set codusu=@cod,pass=@pass where codemp=@emp go create proc d_usuario @emo char(5) as delete from usuarios where codemp=@emp go create view visusuario as SELECT U.codusu, U.pass, U.codemp, E.nombres + ' ' + E.apellidos AS nomemp, E.codcar, E.nomcar FROM dbo.usuarios AS U INNER JOIN dbo.visempleados AS E ON U.codemp = E.codemp select*from visusuario create table proveedor( codprov char(5) primary key, razon_social varchar(30), ruc char(11), telefono char(7), direccion varchar(30), fecha_reg datetime ) go create view visprov as SELECT P.codprov, P.razon_social,P.ruc,P.telefono, P.direccion,P.fecha_reg FROM dbo.proveedor AS P select*from proveedor go create PROCEDURE gencod_prov AS DECLARE @CODIGO CHAR(5) SET @CODIGO=(SELECT MAX(codprov) FROM proveedor) SELECT 'PV'+ RIGHT('000'+LTRIM(RIGHT(ISNULL(@CODIGO,'0000'),3)+1),3) go create proc i_proveedor @cod char(5), @rsocial varchar(30), @ruc char(11), @telf char(7), @dir varchar(30), @freg datetime as insert into proveedor values(@cod,@rsocial, @ruc,@telf, @dir,@freg) go create proc u_proveedor @cod char(5), @rsocial varchar(30), @ruc char(11), @telf char(7), @dir varchar(30),

@freg datetime as update proveedor set razon_social=@rsocial, ruc=@ruc,telefono=@telf,direccion=@dir,fecha_reg=@freg where codprov=@cod go create proc d_proveedor @cod char(5) as delete from proveedor where codprod=@cod --TABLA CLIENTES create table cliente( codcli char(5) primary key, TipoNJ char(1) null, TipoDoc char(1) null, Documento varchar(20) null, razon_social varchar(40) null, nombres varchar(40) null, apellidos varchar(40) null, direccion varchar(40) null, telefono char (7) null, fecha_reg datetime null ) select*from viscliente CREATE VIEW visCliente AS SELECT codcli, TipoNJ, CASE WHEN TipoNJ = 'J' THEN 'Juridico' ELSE 'Natural' END AS NomNJ, TipoDoc, CASE WHEN TipoDoc = 'R' THEN 'RUC' ELSE 'DNI' END AS Nom Doc, Documento, razon_social, nombres, apellidos, direccion, t elefono, fecha_reg FROM dbo.cliente create PROCEDURE gencod_CJ AS DECLARE @CODIGO CHAR(5) SET @CODIGO=(SELECT MAX(codcli) FROM cliente) SELECT 'CJ'+ RIGHT('000'+LTRIM(RIGHT(ISNULL(@CODIGO,'0000'),3)+1),3) go create PROCEDURE gencod_cn AS DECLARE @CODIGO CHAR(5) SET @CODIGO=(SELECT MAX(codcli) FROM cliente) SELECT 'CJ'+ RIGHT('000'+LTRIM(RIGHT(ISNULL(@CODIGO,'0000'),3)+1),3) create proc i_cliente @cod char(5), @TipoNJ char(1), @TipoDoc char(1), @Documento varchar(20), @rsocial varchar(40), @nom varchar(40), @ape varchar(40), @dir varchar(40), @telf char (7), @freg datetime as insert into cliente values(@cod,@TipoNJ,@TipoDOC,

@Documento,@rsocial,@nom,@ape,@dir,@telf,@freg) go create proc u_cliente @cod char(5), @TipoNJ char(1), @TipoDoc char(1), @Documento varchar(20), @rsocial varchar(40), @nom varchar(40), @ape varchar(40), @dir varchar(40), @telf char (7), @freg datetime update cliente set TipoNJ=@TipoNJ,TipoDoc=@TipoDoc, Documento=@Documento,razon_social=@rsocial,nombres=@nom, apellidos=@ape,direccion=@dir,telefono=@telf where codcli=@cod go create proc d_cliente @cod char(5) as delete from cliente where codcli=@cod go create proc bus_cliente @par varchar(40) as SELECT codcli, TipoNJ, CASE WHEN TipoNJ = 'J' THEN 'Juridico' ELSE 'Natural' END AS NomNJ, TipoDoc, CASE WHEN TipoDoc = 'R' THEN 'RUC' ELSE 'DNI' END AS Nom Doc, Documento, razon_social, nombres, apellidos, direccion, t elefono, fecha_reg FROM dbo.cliente where codcli like @par +'%' or Documento like @par+'%' or nombres like @par+'%'or razon_social like @par+'%' --creacion de tablas dependientes create table producto( codmue char(5) primary key, codcat char(5) foreign key references categoria (codcat), modelo varchar(35), material varchar(20), stockmin int, stock int, precio_compra decimal(7,2), precio_venta decimal(7,2), fecha_reg datetime go select*from visProducto go create pro i_producto @cod char(5), @cat char(5), @mod varchar(35), @mat varchar(20), @stomin int,

@sto int, @pcomp decimal(7,2), @pventa decimal(7,2), @freg datetime as insert into producto values(@cod,@cat,@mod,@stomin,@sto, @pcomp,@pventa,@freg) create proc u_producto @cod char(5), @cat char(5), @mod varchar(35), @mat varchar(20), @stomin int, @sto int, @pcomp decimal(7,2), @pventa decimal(7,2), @freg datetime as update producto set codcat=@cat,modelo=@mod,material=@mat, stockmin=@stomin,stock=@sto,precio_compra=@pcomp, precio_venta=@pventa where codmue=@cod create proc d_producto @cod char(5) as delete from producto where codmue=@cod create VIEW visProducto AS SELECT P.codmue, P.codcat, C.des_cat,P.modelo,P.material, P.stockmin,P.stock , P.precio_compra, P.precio_venta, P.fecha_reg FROM dbo.producto AS P INNER JOIN dbo.categoria AS C ON P.codcat = C.codcat GO select * from visProducto create table contacto ( contacto_id char (5)primary key , clase char(1), tipo_doc varchar(5), num_doc char (11), razon_social varchar (40), direccion varchar (40), telefono char (7), fecha datetime ) insert into contacto values('P0001','P','RUC','10682484112','El sol','ca.bolivar 448','5288124','10/11/11') insert into contacto values('C0001','C','DNI','00042733937','Condor Osorio Jorge ','ca.bolivar 450','5288134','10/11/10') create proc i_contacto @cod char (5), @clase char(1), @tipo_doc varchar(5), @num_doc char (11), @rsocial varchar (40), @dir varchar (40), @telf char (7),

@fecha datetime as insert into contacto values(@cod,@clase,@tipo_doc, @num_doc,@rsocial,@dir,@telf,@fecha) go create proc u_contacto @cod char (5), @clase char(1), @tipo_doc varchar(5), @num_doc char (11), @rsocial varchar (40), @dir varchar (40), @telf char (7) as update contacto set clase=@clase,tipo_doc=@tipo_doc, num_doc=@num_doc,razon_social=@rsocial,direccion=@dir, telefono=@telf where contacto_id=@cod go create proc d_contacto @cod char(5) as delete from contacnto where contacto_id=@cod create table cliente( codcli char(5) primary key, TipoNJ char(1), TipoDoc char(1), Documento varchar(20), razon_social varchar(40), nombres varchar(40), apellidos varchar(40), direccion varchar(40), telefono char (7), fecha_reg datetime ) CREATE VIEW visCliente AS SELECT codcli, TipoNJ, CASE WHEN TipoNJ = 'J' THEN 'Juridico' ELSE 'Natural' END AS NomNJ, TipoDoc, CASE WHEN TipoDoc = 'R' THEN 'RUC' ELSE 'DNI' END AS NomDoc, Documento, razon_social, nombres, apellidos, direccion, telefono, fecha_reg FROM dbo.cliente select * from visCliente /*******************************************************************/

create table factura( fac_id char (5)primary key,

serie varchar(5), correlativo varchar (5), codcli char(5) foreign key references cliente(codcli), ruc char(11), F_registro datetime, codemp char (5) references empleados(codemp), subtotal decimal(8,4), igv decimal(8,4), total decimal(8,4) ) go create proc gen_sercor_factura @tipo int as declare @codigo char(5) begin if @tipo=0 set @codigo=(select(max(serie)from factura) select 'FA'+right('0000'+ltrim(right(isnull(@codigo,'0000'),3)+1),3) end if @tipo=1 begin set @codigo=(select max(correlativo)from factura) select '00'+right('000'+ltrim(right(isnull(@codigo,'0000'),3)+1),3) end go create proc i_cabfactura @id char(10), @serie varchar(3), @correlativo varchar(6), @codcli char(5), @ruc char(11), @freg datetime, @codemp char(5), @subtot decimal(8,4), @igv decimal(8,4), @total decimal(8,4) as insert into factura values(@id,@serie,@correlativo, @codcli,@ruc,@freg,@codemp,@subtot,@igv,@total) create table detalle_factura( fac_id char(10) foreign key references factura (fac_id), codmue char(5), pre_unit decimal(7,2), cantidad int, inporte decimal(7,2) ) select*from usuarios delete from producto where codmue='m0002' select*from producto select*from factura create proc i_detFactura @fac_id char(10), @codmue char(5), @pre_unit decimal(7,2), @cantidad int, @inporte decimal(7,2)

as insert into detalle_factura values(@fac_id,@codmue, @pre_unit,@cantidad) create table boleta( bol_id char (10)primary key, serie varchar(5), correlativo varchar (5), codcli char(5) foreign key references cliente(codcli), dni char(8), F_registro datetime, codemp char (5) references empleados(codemp), total decimal(8,4) ) create proc gen_sercor_boleta @tipo int as declare @codigo char(5) begin if @tipo=0 set @codigo=(select(max(serie)from boleta) select 'FA'+right('0000'+ltrim(right(isnull(@codigo,'0000'),3)+1),3) end if @tipo=1 begin set @codigo=(select max(correlativo)from boleta) select '00'+right('000'+ltrim(right(isnull(@codigo,'0000'),3)+1),3) end create proc i_boleta @bol_id char (10)primary key, @serie varchar(5), @correlativo varchar (5), @codcli char(5) foreign key references cliente(codcli), @dni char(8), @F_registro datetime, @codemp char (5), @total decimal(8,4) as insert into boleta values(@bol_id,@serie,@correlativo, @codcli,@dni,@f_registro,@codemp,@total) create table detalle_boleta( bol_id char(10) foreign key references boleta (bol_id), codmue char(5), pre_unit decimal(7,2), cantidad int, inporte decimal(7,2) ) create proc i_DetBoleta @bol_id char(10), @codmue char(5), @pre_unit decimal(7,2), @cantidad int, @inporte decimal(7,2) as insert into detalle_boleta values(@bol_id,@codmue,@pre_unit, @cantidad,@importe)

You might also like