Sunteți pe pagina 1din 18

UNIVERSIDAD NACIONAL DE CHIMBORAZO

FACULTAD DE INGENIERA
ESCUELA DE INGENIERA EN SISTEMAS Y COMPUTACIN

ASIGNATURA:
Base de Datos II
PROYECTO:

FACTURACIN
DOCENTE:
Ing. Pal Paguay
INTEGRANTES:
-Estuardo Cajilema
-Alex Yungn
-Samuel Naranjo

PERIODO ACADMICO
SPTIEMBRE 2014- FEBRERO 2015

Buscar una institucin pblica o privada que requiera del almacenamiento de


informacin.

Nombre de la Empresa/Organizacin
Comercial Econmico SA (Empresa)

Misin / Visin

MISION
Dar servicio de excelencia y honesto a nuestros clientes, creando confianza en
nuestro desempeo, y llenando las expectativas de nuestros clientes. Ofrecerte
mejores precios y mejor atencin para as ser los mejores en el mercado.
VISION
Llevar nuestra empresa a un liderazgo, y cumpliendo con todos nuestros clientes
ser, la mejor de nuestro sector ofreciendo servicio atento y a la par con la tecnologa
cambiante de nuestro mundo sin descuidar al cliente y llenando todas las
expectativas.
Departamento de la Organizacin (En caso de existir)
Datos informativos del proceso a automatizar

La empresa Comercial Econmico se dedica a la venta de productos de primera


necesidad donde realiza sus pedidos y ventas lo cual requiere almacenar todos sus
productos ya sean adquiridos o vendidas, as como los datos de los proveedores y
clientes de igual forma de las ordenes realizadas, a su vez el estado de sus ingresos
y gatos, ya la generacin de una factura de los productos vendidos, lo cual requiere
un sistema que permita realizar de forma automatizada.

Modelo Conceptual (DER)

IdProveedor

ProveedorNombre

Direccion

Proveedor

Nombre

IdEmpleado

Telefono

Foto

Direccion

Perne
ce

Empleado

ProductosNombre

IdProducto

Telefono

Descripcion

Foto

Atiend
e

Producto

Stock

PrecioCompraUnidad
N

IdOrder

Orden

FechaOrden

PrecioVenta

IdOrder

PrecioUnitario

Tiene

Venta
N

Cantidad
1

IdCategoria

Realiza
Descuento

IdCliente
CategoriaNombre

Nombre

Categoria

Cliente

Descripcion

Cedula

Direccion
Telefono

Foto

Modelo Lgico (MR)


Empleado

Orden

IdEmpleado <pi>
Nombre
Direccion
Telefono
Foto

Relationship_4

IdOrder
<pi>
FechaOrden
PK_IdOrder <pi>

Venta

Relationship_5

PrecioUnitario
Cantidad
Descuento

PK_IdEmpleado <pi>

Relationship_3
Relationship_6

Producto
Cliente
IdCliente <pi>
Nombre
Cedula
Direccion
Telefono

IdProducto
<pi>
ProductosNombre
DescripcionC
Stock
PrecioCompraUnidad
PrecioVenta

PK_IdCliente <pi>

PK_IdProducto <pi>

Relationship_2

Relationship_1

Proveedor

Categoria

IdProveedor
<pi>
ProveedorNombre
Direccion
Telefono
Foto

IdCategoria
<pi>
CategoriaNombre
DescripcionC
Foto

PK_IdProveedor <pi>

Pk_IdCategoria <pi>

Modelo Fsico

Relationship_5
IdOrder integer <pk,fk1>
Empleado
IdEmpleado
Nombre
Direccion
Telefono
Foto

Orden FK_RELATION_RELATIONS_ORDEN
integer
<pk>
FK_RELATION_RELATIONS_VENTA
IdOrder
integer <pk>
varchar(50)
IdEmpleado integer <fk2>
varchar(50)
FK_ORDEN_RELATIONS_EMPLEADO
IdCliente
integer <fk1>
varchar(10)
Venta
FechaOrden date
long binary
PrecioUnitario numeric(8,2)
Cantidad
integer
Descuento
numeric(8,2)
FK_ORDEN_RELATIONS_CLIENTE
FK_RELATION_RELATIONS_VENTA

Producto
IdProducto
IdProveedor
IdCategoria
ProductosNombre
Descripcion
Stock
PrecioCompraUnidad
PrecioVenta

Cliente
IdCliente
Nombre
Cedula
Direccion
Telefono

integer
<pk>
varchar(50)
varchar(11)
varchar(50)
varchar(10)

Relationship_6

FK_RELATION_RELATIONS_PRODUCTO
integer
<pk>
IdProducto integer <pk,fk1>
integer
<fk2>
integer
<fk1>
varchar(50)
varchar(50)
integer
numeric(8,2)
numeric(8,2)

FK_PRODUCTO_RELATIONS_CATEGORI
FK_PRODUCTO_RELATIONS_PROVEEDO

Proveedor
IdProveedor
ProveedorNombre
Direccion
Telefono
Foto

integer
<pk>
varchar(50)
varchar(50)
varchar(10)
long binary

Categoria
IdCategoria
CategoriaNombre
Descripcion
Foto

integer
<pk>
varchar(50)
varchar(50)
long binary

Esquema de Base de Datos

Venta
IdOrder
IdProducto
PrecioUnitario
Cantidad
Descuento

Ordenes
IdOrder
IdCliente
IdEmpleado
FechaOrden

Cliente
IdCliente
Nombre
Cedula
Direccion
Telefono

Empleado
IdEmpleado
Nombre
Direccion
Telefono
Foto

Producto
IdProducto
IdProveedor

Categoria

IdCategoria

IdCategoria

ProductosNombre

CategoriaNombre

Descripcion

Descripcion

Stock

Foto

PrecioCompraUnidad
PrecioVenta

Proveedor
IdProveedor
ProveedorNombre
Direccion
Telefono
Foto

Matriz de dominios

NOMBRE DEL
DOMINIO

TIPO DE
DATO

PERMITE
NULOS

VALOR
DEFECTO

REGLA

d_codigos

Int

No

@value>0

d_cedulas

Varchar(11)

No

d_nombres

varchar(30)

No

d_apellidos

varchar(30)

No

d_descripciones

varchar(30)

No

d_fechas

Date

SI

d_telefonos

Varchar(10)

SI

d_moneda

money

d_stock

int

@value like [0-9][0-9][09][0-9][0-9][0-9][0-9][09][0-9][-] [0-9]

Getdate()

@value<= getdate()

SI

@value>=0

No

@value>1

Sentencias DDL

1. Reglas
Create Rule r_codigos
As @value>0
Go

Create Rule r_cedulas


As @value like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][-][09]'
Go

Create Rule r_fechas


As @value<=Getdate()
Go

Create Rule r_moneda


As @value>=0
Go

Create Rule r_cantidades


As @value>0
Go

Create Rule r_stock


As @value>=0
Go

2. Valores por Defecto


Create Default vd_codigos
As 1

Go

Create Default vd_fechas


As Getdate()
Go

Create Default vd_moneda


As 0
Go

Create Default vd_cantidades


As 0
Go

Create Default vd_stock


As 0
Go

create table Empleado


(
IdEmpleado d_codigos identity (1,1),
Nombre d_nombres,
Direccion d_descripciones,
Telefono d_telefonos,
Foto image ,
primary key (IdEmpleado )
)
create table Cliente
(
IdCliente d_codigos identity (1,1),
Nombre d_nombres,
Cedula d_cedulas,
Direccion d_descripciones,
Telefono d_telefonos,
primary key (IdCliente )
)

create table Ordenes


(
IdOrder d_codigos identity (1,1),
IdCliente d_codigos,
IdEmpleado d_codigos,
FechaOrden d_fechas ,
primary key (IdOrder ),
foreign key (IdCliente) references Cliente ( IdCliente),
foreign key (IdEmpleado) references Empleado ( IdEmpleado),
)

create table Categoria


(
IdCategoria d_codigos identity (1,1),
CategoriaNombre d_descripciones,
Descripcion d_descripciones,
Foto image ,
primary key (IdCategoria )
)

create table Proveedor


(
IdProveedor d_codigos identity (1,1),
ProveedorNombre d_nombres,
Direccion d_descripciones,
Telefono d_telefonos,
Foto image ,
primary key (IdProveedor ),
)
create table Producto
(
IdProducto d_codigos identity (1,1),
IdProveedor d_codigos,
IdCategoria d_codigos
ProductosNombre d_nombres,
Descripcion d_descripciones,
Stock d_codigos,
PrecioCompraUnidad d_moneda,
PrecioVenta d_moneda,
primary key (IdProducto ),
foreign key (IdProveedor ) references Proveedor ( IdProveedor),
foreign key (IdCategoria) references Categoria ( IdCategoria)
)

create table Venta


(
IdOrder d_codigos,
IdProducto d_codigos,
PrecioUnitario d_moneda,
Cantidad d_codigos,
Descuento d_moneda,
primary key (IdProducto ,IdOrder ),
foreign key (IdProducto ) references Producto(IdProducto),
foreign key (IdOrder) references Ordenes (IdOrder)
)

--Trigger
select sum ( p.Stock) FROM Venta v
p.IdProducto=v.IdProducto
WHERE v.IdProducto=1

INNER JOIN Producto p ON

----------------------create FUNCTION fn_stock(@IdProducto int)


returns INT
as
begin
return (select sum ( p.Stock) FROM Venta v
p.IdProducto=v.IdProducto
WHERE v.IdProducto=@IdProducto)
end
select *from Producto
select dbo.fn_stock(2)

INNER JOIN Producto p ON

create trigger tri_actulizar_stock


on Venta for update , insert, delete
as
begin
update p set Stock = p.Stock-i.Cantidad
from Producto p inner join
i on p.IdProducto=i.IdProducto
update p set Stock = p.Stock + d.Cantidad from Producto p inner join
on p.IdProducto=d.IdProducto
end
go
delete
select
select
insert

from Venta
*from Venta
*from Producto
into Venta values (1,1,12,0,0)

create trigger tri_ventas_cantidad


on Venta for insert
as
if(select Cantidad from inserted )<=0
begin
RAISERROR ('Cantidad no Valido Bebe ser > 0', 10, 1)
ROLLBACK TRANSACTION
end

create trigger tri_Producto_stock


on Producto for insert
as
if(select Stock from inserted )<=0
begin
RAISERROR ('Stock no Valido Bebe ser > 0', 10, 1)
ROLLBACK TRANSACTION

inserted
deleted d

end
Procedimientos Almacenados
create procedure ap_insertarcategoria

@CategoriaNombre varchar(30),
@Descripcion varchar(30)
as
insert into Categoria values (@CategoriaNombre,@Descripcion ,null)
exec ap_insertarcategoria 1,1

select *from Categoria


----create procedure ap_ModificarCategoria
@IdCategoria int ,
@CategoriaNombre varchar(30),
@Descripcion varchar(30)
as
update Categoria set CategoriaNombre=@CategoriaNombre,Descripcion=@Descripcion
where IdCategoria=@IdCategoria
exec ap_ModificarCategoria 11,'alex','yungan'

create procedure ap_eliminarCategoria


@IdCategoria int
as
delete Categoria where IdCategoria =@IdCategoria
exec ap_eliminarCategoria 10
create procedure ap_ListarCategodias
as
select * from Categoria

select *from Products

exec ap_ListarCategodias
-----productos
go
create procedure ap_listarProductos
as
select *from Producto
exec ap_listarProductos
go

create procedure ap_EliminarProductos


@IdProducto int
as

delete Producto where IdProducto=@IdProducto


exec ap_EliminarProductos 77

go
select *from Products
create procedure ap_ActualizarProducto
@IdProducto int,
@IdProveedor int ,
@IdCategoria int ,
@ProductosNombre varchar(50) ,
@Descripcion varchar(50) ,
@Stock int ,
@PrecioCompraUnidad money ,
@PrecioVenta money
as
update Producto set
IdProveedor=@IdProveedor,IdCategoria=@IdCategoria,ProductosNombre=@ProductosNombr
e,Descripcion =@Descripcion ,Stock=@Stock,PrecioCompraUnidad=@PrecioCompraUnidad
,PrecioVenta=@PrecioVenta where IdProducto =@IdProducto

create procedure ap_InsertarProducto

@IdProveedor int ,
@IdCategoria int ,
@ProductosNombre varchar(50) ,
@Descripcion varchar(50) ,
@Stock int ,
@PrecioCompraUnidad money ,
@PrecioVenta money
as
insert into Producto values (@IdProveedor,@IdCategoria ,@ProductosNombre
,@Descripcion,@Stock ,@PrecioCompraUnidad ,@PrecioVenta)
exec

ap_InsertarProducto 'ales',2,2,1,1,1,1,1,0

----------supliers
----------------------------------------------------------------------------------------------------create procedure ap_listarSupliers
as
select *from Proveedor

Create Procedure ap_InsertarSuppliers


@ProveedorNombre varchar(60),
@Direccion varchar(60),
@Telefono varchar(60)
as
insert into Proveedor values (@ProveedorNombre,@Direccion,@Telefono,null)

select * from Proveedor

Create Procedure ap_AcualizarSuppliers


@IdProveedor int,
@ProveedorNombre varchar(60),
@Direccion varchar(60),
@Telefono varchar(60)
as
Update Proveedor set
ProveedorNombre=@ProveedorNombre,Direccion=@Direccion,Telefono=@Telefono where
IdProveedor=@IdProveedor
Create Procedure ap_EliminarSuppliers
@IdProveedor int
as
Delete Proveedor where IdProveedor =@IdProveedor

select * from Proveedor


--------------------------------------------------------------------------empleado

create procedure pa_EmpoyesInsertar


@Nombre varchar(50),
@Direccion varchar(50),
@Telefono varchar(50)
as
insert into

Empleado values ( @Nombre

, @Direccion , @Telefono ,null)

create procedure pa_EmpoyesActualizar


@IdEmpleado int,
@Nombre varchar(50),
@Direccion varchar(50),
@Telefono varchar(50)
as
update Empleado set Nombre=@Nombre
where IdEmpleado=@IdEmpleado

,Direccion=@Direccion ,Telefono =@Telefono

create procedure pa_EmployeesEliminar


@IdEmpleado int
as
delete Empleado where IdEmpleado=@IdEmpleado

CREATE PROCEDURE pa_EmployeesListar


as

select *from Empleado


--cliente
-------------------------------------------------------------------------------------

create procedure pa_CustomersInsertar


@Nombre varchar(10) ,
@Cedula varchar (50) ,
@Direccion varchar (50) ,
@Telefono varchar (50)

as
insert into Cliente values (@Nombre ,@Cedula ,@Direccion , @Telefono)

create procedure pa_CustomersModificar


@IdCliente int,
@Nombre varchar(10) ,
@Cedula varchar (50) ,
@Direccion varchar (50) ,
@Telefono varchar (50)
as
update Cliente set
Nombre=@Nombre ,Cedula
=@Cedula,Direccion=@Direccion,Telefono=@Telefono WHERE IdCliente =@IdCliente
CREATE procedure pa_CustomerseLIMINAR
@IdCliente int
AS
DELETE Cliente WHERE IdCliente= @IdCliente
CREATE procedure pa_CustomerselListar
AS
select *from

Cliente

----------------------------------------------------------------------------------oden

create procedure pa_OrdenInsertar


@IdCliente int,
@IdEmpleado int ,
@FechaOrden date

as
insert into Ordenes values (@IdCliente, @IdEmpleado ,@FechaOrden )

create procedure pa_OrdenModificar


@IdOrder int,
@IdCliente int,
@IdEmpleado int ,

@FechaOrden

date

as
update Ordenes set
IdCliente=@IdCliente ,IdEmpleado
=@IdEmpleado,FechaOrden=@FechaOrden WHERE IdOrder =@IdOrder
CREATE procedure pa_OrdenseLIMINAR
@IdOrder int
AS
DELETE Ordenes WHERE IdOrder=@IdOrder
CREATE procedure pa_OrderlListar
AS
select *from

Ordenes

--ventas

create procedure pa_VentaInsertar


@IdOrder int,
@IdProducto int ,
@PrecioUnitario money,
@Cantidad int ,
@Descuento money

as
insert into Venta values (@IdOrder, @IdProducto , @PrecioUnitario, @Cantidad,
@Descuento )

create procedure pa_VentaModificar


@IdOrder int,
@IdProducto int ,
@PrecioUnitario money,
@Cantidad int ,
@Descuento money
as
update Venta set
PrecioUnitario=@PrecioUnitario ,Cantidad =@Cantidad,Descuento
=@Descuento WHERE IdOrder =@IdOrder and IdProducto=@IdProducto
CREATE procedure pa_VentaLIMINAR
@IdOrder int,
@IdProducto int
AS
DELETE Venta
WHERE IdOrder =@IdOrder and IdProducto=@IdProducto
CREATE procedure pa_VentalListar
AS
select *from

Venta

select *from Producto


create procedure pa_ventadetalle
as

select o.IdOrder, p.IdProducto,p.Descripcion


,v.Cantidad,v.PrecioUnitario,(v.Cantidad*v.PrecioUnitario -v.Descuento)as total
from Venta v inner join Ordenes o on o.IdOrder=v.IdOrder inner join Producto p
on p.IdProducto
=v.IdProducto

select *from Ordenes


create PROCEDURE ap_facturaMostar
as
select o.IdOrder,e.IdEmpleado,e.Nombre as NombreEmpleado,c.IdCliente,c.Nombre as
NombreCliente ,c.Cedula,c.Direccion,c.Telefono ,O.FechaOrden from Ordenes o inner
join Cliente c on o.IdCliente=c.IdCliente inner join Empleado e on e.IdEmpleado=
o.IdEmpleado
order by o.IdOrder desc

create

PROCEDURE ap_facturaMostarVentaProductos

as
select v.IdOrder, p.IdProducto,ca.Descripcion as Categoria,
p.ProductosNombre,p.Descripcion,v.PrecioUnitario as PrecioVenta,v.Cantidad
,v.Descuento ,((v.Cantidad*v.PrecioUnitario)-v.Descuento)as Total from Producto
p inner join Venta v on v.IdProducto=p.IdProducto inner join Categoria ca on
ca.IdCategoria= p.IdCategoria
select *from Producto
select *from Venta
create procedure pa_ganancias
as
select sum(((v.PrecioUnitario -p.PrecioCompraUnidad)*v.Cantidad)-v.Descuento) as
TotalGanancia from Venta v inner join Producto p on p.IdProducto = v.IdProducto

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