SlideShare ist ein Scribd-Unternehmen logo
1 von 55
TABLA CLIENTE




Contiene los datos personales de los
clientes.
TABLA DESCUENTO




Contiene la descripción del
descuento y la cantidad de
descuento que se va aplicar
TABLA VENTA




Factura, dice si la venta es de
contado o no, muestra el
descuento y el iva aplicado.
TABLA DETALLE VENTA




 Describe la venta contiene 2
llaves foráneas
TABLA SERIE




Muestra el código de la factura
realizada
TABLA ARTICULO




Describe los articulos, si hay existencias
de dichos y contiene llave foráneas
TABLA UNIDAD MEDIDAD




Contiene el código y nombre
del articulo y el campo activo
habilita y deshabilita la tabla
TABLA CLASIFICACION




Contiene el código y
nombre del articulo y el
campo activo habilita y
deshabilita la tabla
TABLA COMPRA




Realiza la factura de los proveedores y
contiene la descripción de estas
TABLA DETALLE COMPRA




Contiene los detalles de la factura de los
proveedores
TABLA PROVEEDORES




Contiene los Datos personales de los
proveedores
CREATE TRIGGER AumentarExistencia1 ON DetalleCompra
AFTER INSERT
AS
UPDATE Articulo set Existencia = Existencia + (select Cantidad from
inserted)
where Codigo = (select objArticulo from inserted)
go

 Este aumenta la existencia de los articulos en detalle compra y
 luego actualiza
CREATE TRIGGER DisminuirExistencia1 ON DetalleVenta
AFTER INSERT
AS
UPDATE Articulo set Existencia = Existencia - (select Cantidad from inserted)
where Codigo = (select objArticulo from inserted)
go
 Este disminuye la existencia de los articulos en detalle venta y
 luego actualiza
CREATE TRIGGER DisminuirExistencia2 ON DetalleCompra
FOR DELETE
AS
UPDATE Articulo set Existencia = Existencia - (select Cantidad from
inserted)
where Codigo = (select objArticulo from inserted)
go    Este disminuye la existencia de detalle compra , borra y
      luego actualiza la tabla articulo

CREATE TRIGGER AumentarExistencia2 ON Venta
FOR UPDATE
AS
IF((select Anulada from updated) = 1)
begin
select Cantidad from DetalleVenta where objVenta = (select FacturaN from
updated)
UPDATE Articulo set Existencia = Existencia + (select Cantidad from
inserted)
where Codigo = (select objArticulo from inserted)
end
go
     Este aumenta la existencia en venta luego actualiza si el campo
     anulada = 1 y actualiza la tabla articulo
USE [Ferreteria]
Go

CREATE TRIGGER Seguridad ON DATABASE

FOR DROP_TABLE, ALTER_TABLE
AS

BEGIN

   PRINT'Desactivar el Trigger "SEGURIDAD" Antes de borrar o
modificar la tabla!'
   RAISERROR ('No se permite borrar ni modificar las tablas
!',16,1)
   ROLLBACK TRANSACTION

END



  Este trigger brinda serguridad a las tablas impidiendo que
  estas sean borradas o modificadas , si se desea modificar
  dicha tabla primero hay que deshabilitarlo
create procedure IngresarDescuento
@Codigo INT,
@Descripcion VARCHAR(50),
@Porcentaje FLOAT
as
insert into Descuento values (@Codigo, @Descripcion, @Porcentaje, 0)
go

create procedure ModificarDescuento
@Codigo INT,
@Descripcion VARCHAR(50),
@Porcentaje FLOAT,
@Activo BIT
as
update Descuento set
Codigo =@Codigo,
Descripcion = @Descripcion,
Porcentaje = @Porcentaje,
Activo = @Activo
where Codigo = @Codigo
go
Create procedure EliminarDescuento
 @Codigo INT
 as
 delete from Descuento where Codigo = @Codigo
 go



Create procedure IngresarCliente
 @Cedula CHAR(16),
@Nombre VARCHAR(50),
@Direccion VARCHAR(100),
@Telefono CHAR(9),
@objDescuento INT,
@Activo BIT
as
insert into Cliente values (@cedula, @nombre, @direccion, @telefono,
@objDEscuentos, @activo,0)
create procedure ModificarCliente
@Cedula CHAR(16),
@Nombre VARCHAR(50),
@Direccion VARCHAR(100),
@Telefono CHAR(9),
@objDescuento INT,
@Activo BIT
as
update Cliente set
cedula = @Cedula,
Nombre = @Nombre,
Direccion = @Direccion,
Telefono = @Telefono,
objDescuento = @objDescuento,
Activo = @Activo BIT
where Cedula = @Cedula
go
Create procedure EliminarCliente
@Cedula CHAR
as
delete from Cliente Where Cedula = @Cedula
go
Create procedure IngresarProveedor
@Nombre VARCHAR(50),
@Direccion VARCHAR(100),
@Telefono CHAR(9),
@Activo BIT
as
insert into Proveedor values (@Nombre, @Direccion, @telefono, @activo,0)

Create procedure ModificarProveedor
@Nombre VARCHAR(50),
@Direccion VARCHAR(100),
@Telefono CHAR(9),
@Activo BIT
as
update Proveedor set
Nombre = @Nombre,
Direccion = @Direccion,
Telefono = @Telefono,
Activo = @Activo
Where Nombre = @nombre
go
Create Procedure EliminarProveedor
@Nombre VARCHAR
as
delete from Proveedor where Nombre = @Nombre
go


Create procedure IngresarUnidadMedida
@Nombre VARCHAR(50),
@Activo BIT
as
insert into UnidadMedida values (@Nombre, @activo,0)

Create Procedure ModificarUnidadMedida
     @Nombre varchar (50)
     @Activo BIT
as
update UnidadMedida set
Nombre = @Nombre,
Activo = @Activo
Where Nombre =@Nombre
go
Create procedure EliminarUnidadMedida
@Nombre VARCHAR
as
delete from UnidadMedida where Nombre = @Nombre
go



Create procedure IngresarClasificacion
@Nombre VARCHAR(20)
@Activo BIT
as
insert into Clasificacion values (@Nombre, @activo,0)

Create Procedure ModificarClasificacion
     @Nombre varchar (50)
     @Activo BIT
as
update Clasificacion set
Nombre = @Nombre,
Activo = @Activo,
Where Nombre =@Nombre
go
Create procedure EliminarClasificacion
@Nombre VARCHAR
as
delete from Clasificacion where Nombre = @Nombre
go



Create procedure IngresarAriculo
     @Nombre VARCHAR(50),
          @Descripcion VARCHAR(100),
          @objUnidadMedida INT,
          @objClasificacion INT,
          @Existencia FLOAT ,
          @Precio FLOAT,
          @Costo FLOAT,
          @Activo BIT
as
insert into Articulo values (@Nombre, @Descripcion, @objunidadmedida,
@objClasificacion, @Existencia, @precio, @Costo, @Activo,0)
Create procedure ModificarArticulo
     @Nombre VARCHAR(50),
        @Descripcion VARCHAR(100),
        @objUnidadMedida INT,
        @objClasificacion INT,
        @Existencia FLOAT,
        @Precio FLOAT,
        @Costo FLOAT,
        @Activo BIT
as
update Articulo set
Nombre = @Nombre,
Descripcion = @Descripcion,
objunudadmedida = @objUnidadMedida,
objClasificacion = @objClasificacion ,
Existencia = @Existencia,
Precio = @Precio,
Costo = @Costo,
Activo = @Activo,
where = @Nombre
go
create procedure EliminarArticulo
@Nombre = varchar
as
delete from Articulo where Nombre = @Nombre
go



create procedure IngresarCompra

       @FacturaN VARCHAR(20),
       @objProveedor INT,
       @Fecha DATETIME,
       @Subtotal FLOAT,
       @IVAPagado FLOAT,
       @Total FLOAT
as
insert into Compra values
(@FacturaN,@objProveedor,@Fecha,@Subtotal,@IVAPagado,@Total,0)
Create procedure ModificarCompra

       @FacturaN VARCHAR(20),
       @objProveedor INT,
       @Fecha DATETIME,
       @Subtotal FLOAT,
       @IVAPagado FLOAT,
       @Total FLOAT
as
update Compra set
FacturaN=@FacturaN,
objProveedor)@objProveedor,
Fecha=@Fecha,
Subtotal=@Subtotal,
IVAPagado=@IVAPagado,
Total=@Total
where=@FacturaN
go
Create procedure EliminarCompra
@FacturaN= VARCHAR(20)
as
delete from Compra where FacturaN=@FacturaN
go



 Create Procedure IngresarDetalleCompra

        @objCompra VARCHAR(20),
        @objProveedor INT,
        @objArticulo VARCHAR(20),
        @Costo FLOAT,
        @Cantidad FLOAT,
        @Monto FLOAT
 as
 insert into Detallecompra values
 (@objCompra,@objProveedor,@objArticulo,@Costo,@Cantidad,@Monto,0)
create procedure Modificar
DetalleCompra

       @objCompra VARCHAR(20),
       @objProveedor INT,
       @objArticulo VARCHAR(20),
       @Costo FLOAT,
       @Cantidad FLOAT,
       @Monto FLOAT
as
update DetalleCompra set
objCompra=@objCompra,
oblProveedor=@objProveedor,
objArticulo=@objArticulo,
Costo=@Costo,
Cantidad=@Cantidad,
Monto=@Monto
where=@objCompra
go
create procedure EliminarDetalleCompra
@objCompra VARCAHR(20)
as
delete from DetalleCompra where objCompra=@objCompra
go



create procedure IngresarSerie
          @Codigo CHAR(1),
          @Descripcion VARCHAR(50)
as
insert into Serie values (@Codigo,@Descripcion,0)

 create procedure ModificarSerie

         @Codigo CHAR(1),
         @Descripcion VARCHAR(50)
 as
 update Serie set
 Codigo=@Codigo,
 Descripcion=@Descripcion
 where=@Codigo
 go
create procedure EliminarSerie
 @Codigo=VARCHAR(1)
 delete from Serie where Codigo=@Codigo
 go
create procedure IngresarVenta


       @FacturaN INT,
       @objSerie CHAR(1),
       @objCliente CHAR(16),
       @Contado BIT,
       @Fecha DATETIME,
       @Subtotal FLOAT,
       @Descuento FLOAT,
       @SubtotalConDescuento FLOAT,
       @IVA BIT,
       @IVAPagar FLOAT,
       @Total FLOAT,
       @Anulada BIT
as
insert into Venta values
(@FacturaN,@objSerie,@objCliente,@Contado,@Fecha,@Subtotal,@Descuento,@
SubtotalConDescuento,@IVA,@IVAPagar,@Total,@Anulada,0)
create procedure ModificarVenta

       @FacturaN INT,
       @objSerie CHAR(1),
       @objCliente CHAR(16),
       @Contado BIT,
       @Fecha DATETIME,
       @Subtotal FLOAT,
       @Descuento FLOAT,
       @SubtotalConDescuento FLOAT,
       @IVA BIT,
       @IVAPagar FLOAT,
       @Total FLOAT,
       @Anulada BIT
 as
 update Venta set
 FacturaN=@FacturaN,
 objSerie=@objSerie,
 objCliente=@objCliente,
 Contado=@Contado,
 Fecha=@Fecha,
 Subtotal=@Subtotal,
Descuento=@Descuento,
SubtotalconDescuento=@SubtotalConD
escuento,
IVA=@IVA,
IVAPagar=@IVAPagar,
Total@Total,
Aunlada=@Anulada
where=@FacturaN
go



create procedure EliminarVenta
@FacturaN=INT
delete from Venta where FacturaN=@FacturaN
go
create procedure IngresarDetalleVenta
          @objVenta INT,
          @objArticulo VARCHAR(20),
          @Precio FLOAT,
          @Cantidad FLOAT,
          @Monto FLOAT
as
insert into DetalleVenta values
(@objVenta,@objArticulo,@Precio,@Cantidad,@Monto,0)



create procedure ModificarDetalleVenta
        @objVenta INT,
        @objArticulo VARCHAR(20),
        @Precio FLOAT,
        @Cantidad FLOAT,
        @Monto FLOAT
as
update DetalleVenta set
objVenta=@objVenta,
objArticulo=@objArticulo,
Precio=@Precio,
Cantidad=@Cantidad,
Monto=@Monto
where=@objVenta
go


create procedure EliminarDetalleVenta
@objVenta=INT
delete from DetalleVenta where objVenta=@objVenta
go
Todos lo procedimientos que utilizamos en esta
base de datos realizan las mismas funciones
solo que para cada tabla, dichas funciones son:
 Inserción
 Modificación
 Eliminación de datos
Procedimiento de Inserción:

Este procedimiento ingresa los valores de
los campos en la tabla asignada, no se
toma en cuenta el Codigo porque es
autonumerico, el DEFAULT es para agarrar
el valor por omisión.


Procedimiento de Modificación:

Este procedimiento modifica y actualiza la
tabla asignada
Procedimiento de Eliminación:

Este procedimiento elimina la tabla
asignada cuando la llave foránea es igual
al valor del primer campo.
CREATE VIEW Descuentos
AS
SELECT * FROM Descuento WHERE Activo = 1
GO

Esta vista muestra los campos de la tabla descuento cuando el
campo activo es igual a 1


CREATE VIEW Clientes
AS
SELECT a.Cedula, a.Nombre, a.Direccion, a.Telefono,
b.Descripcion AS [Tipo de Descuento], b.Porcentaje
FROM Cliente a, Descuento b
WHERE a.Activo = 1 AND a.objDescuento = b.Codigo
GO

Crea una vista llamada cliente le cual nos muestra los campos
mencionado
CREATE VIEW Proveedores
AS
SELECT * FROM Proveedor WHERE Activo = 1
GO
 Crea una vista llamada proveedores y muestra los
 campos codigo, nombre, direccion , telefono y activo

CREATE VIEW UnidadesMedida
AS
SELECT * FROM UnidadMedida WHERE Activo = 1
GO
    Crea una vista llamada Unidad de medida en el cual
    muestra los campos codigo, nombre y activo junto
    con sus registros
CREATE VIEW Clasificaciones
AS
SELECT * FROM Clasificacion WHERE Activo = 1
GO
 Crea una vista llamada Clasifiaciones muestra los
 campos codigo, nombre y activo con sus registros
CREATE VIEW Articulos
AS
SELECT a.Codigo, a.Nombre, a.Descripcion, b.Nombre AS [Unidad de
Medida], c.Nombre AS Clasificacion, a.Existencia, a.Precio,
a.Costo
FROM Articulo a, UnidadMedida b, Clasificacion c
WHERE a.Activo = 1 AND a.objUnidadMedida = b.Codigo AND
a.objClasificacion = c.Codigo
GO
Crea una vista llamada articulos en el cual muestra los campos codigo,
nombre, descripcion, unidades de medida, clasificacion , existencia,
precio y costo

CREATE VIEW Series
AS
SELECT * FROM Serie
GO


 Muestra los campos de codigo y descripcion
CREATE VIEW Compras
AS
SELECT a.FacturaN, b.Nombre AS Proveedor, a.Fecha, d.Nombre AS
Articulo, c.Costo, c.Cantidad, c.Monto, a.Subtotal,
a.IVAPagado, a.Total
FROM Compra a, Proveedor b, DetalleCompra c, Articulo d
WHERE a.objProveedor = b.Codigo AND a.FacturaN = c.objCompra
AND a.objProveedor = c.objProveedor AND c.objArticulo =
d.Codigo
GO



 Crea la vista compra y muestra la factura , proveedor, fecha, articulo,
 costo, cantidad, monto, subtotal, iva pagado y total de las tablas
 compra, proveedor, detallecompra y articulo.
CREATE VIEW Ventas
AS
SELECT a.FacturaN, b.Descripcion AS Serie, c.Nombre AS Cliente,
a.Contado, a.Fecha, e.Nombre AS Articulo, d.Precio, d.Cantidad,
d.Monto, a.Subtotal, a.Descuento, a.SubtotalConDescuento,
a.IVAPagar, a.Total
FROM Venta a, Serie b, Cliente c, DetalleVenta d, Articulo e
WHERE a.objSerie = b.Codigo AND a.objCliente = c.Cedula AND
a.FacturaN = d.objVenta AND d.objArticulo = e.Codigo AND
a.objSerie = d.objSerie AND a.Anulada = 0
GO


 Crea una vista llamada Ventas que muestra los campos factura N,
 serie, cliente, contado, fecha, articulo, precio, cantidad, monto,
 subtotal, descuento, subtotal con descuento, iva pagar, y total de las
 tablas venta, serire, cliente, detalle venta y articulo.
Muestra Todos los Descuentos
SELECT * FROM Descuento

Descuentos Activos ordenados por descuentos ascendentes
SELECT * FROM Descuentos ORDER BY Porcentaje ASC

Muestra los Descuentos Inactivos
SELECT * FROM descuento WHERE activo = 0

Muestra Todos los Clientes y sus datos personales
SELECT Cedula, Nombre, Direccion, Telefono, Descripcion AS
[Tipo de Descuento], Porcentaje
FROM Cliente INNER JOIN Descuento ON
Cliente.objDescuento = Descuento.Codigo ORDER BY Nombre

 Muestra a los Clientes Activos por nombre
 SELECT * FROM Clientes ORDER BY Nombre
Muestra los Clientes Inactivos con activos igual 0
SELECT Cedula, Nombre, Direccion, Telefono, Descripcion AS
[Tipo de Descuento], Porcentaje
FROM Cliente INNER JOIN Descuento ON
Cliente.objDescuento = Descuento.Codigo WHERE Cliente.Activo
= 0
Muestra Todos los Proveedores
SELECT * FROM Proveedor

Proveedores Activos por nombre
SELECT * FROM Proveedores ORDER BY Nombre

Proveedores Inactivos cuando activo igual 0
SELECT * FROM Proveedor where Activo = 0

Muestra Todas las Unidades de Medida
SELECT * FROM UnidadMedida

Muestra las Unidades de Medida Activas
SELECT * FROM UnidadesMedida ORDER BY Nombre

Muestra lasUnidades de Medida Inctivas
SELECT * FROM UnidadMedida where Activo = 0
Muestra los Articulos Activos
SELECT * FROM Articulos ORDER BY Nombre

Muestra Todas las Compras
SELECT * FROM Compras

Muestra Todas las Series
SELECT * FROM Series

Muestra Todas las Ventas
SELECT * FROM Ventas
Proyecto Base de Datos I
Proyecto Base de Datos I
Proyecto Base de Datos I

Weitere ähnliche Inhalte

Ähnlich wie Proyecto Base de Datos I

Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005pabloesp
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenadosguesta403644
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos AlmacenadosRafa
 
Celis perez, carlos
Celis perez, carlosCelis perez, carlos
Celis perez, carlosCELISPEREZ2
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptxDieguess
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollbackArchCHUZ
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Macros En Ms Excel
Macros En Ms ExcelMacros En Ms Excel
Macros En Ms Excelrobertoh
 
Rd Configurador De Producto V1 0
Rd   Configurador De Producto   V1 0Rd   Configurador De Producto   V1 0
Rd Configurador De Producto V1 0AXAZURE
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaJorge Ricardo
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basicRafael Tobar Jame
 

Ähnlich wie Proyecto Base de Datos I (20)

Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Procedimientos Almacenados
Procedimientos AlmacenadosProcedimientos Almacenados
Procedimientos Almacenados
 
Celis perez, carlos
Celis perez, carlosCelis perez, carlos
Celis perez, carlos
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Trabajo autonomo
Trabajo autonomoTrabajo autonomo
Trabajo autonomo
 
UPDATE
UPDATE UPDATE
UPDATE
 
4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx4. ARREGLOS C++.pptx
4. ARREGLOS C++.pptx
 
4 practica nota de venta
4 practica nota de venta4 practica nota de venta
4 practica nota de venta
 
Qué es SQL
Qué es SQL Qué es SQL
Qué es SQL
 
Commit&rollback
Commit&rollbackCommit&rollback
Commit&rollback
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Macros En Ms Excel
Macros En Ms ExcelMacros En Ms Excel
Macros En Ms Excel
 
Rd Configurador De Producto V1 0
Rd   Configurador De Producto   V1 0Rd   Configurador De Producto   V1 0
Rd Configurador De Producto V1 0
 
Vistas (1)
Vistas (1)Vistas (1)
Vistas (1)
 
Arreglos, Procedimientos y Funciones
Arreglos, Procedimientos y FuncionesArreglos, Procedimientos y Funciones
Arreglos, Procedimientos y Funciones
 
Que es un algoritmo de jorge magaña
Que es un algoritmo de jorge magañaQue es un algoritmo de jorge magaña
Que es un algoritmo de jorge magaña
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 

Proyecto Base de Datos I

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. TABLA CLIENTE Contiene los datos personales de los clientes.
  • 7. TABLA DESCUENTO Contiene la descripción del descuento y la cantidad de descuento que se va aplicar
  • 8. TABLA VENTA Factura, dice si la venta es de contado o no, muestra el descuento y el iva aplicado.
  • 9. TABLA DETALLE VENTA Describe la venta contiene 2 llaves foráneas
  • 10. TABLA SERIE Muestra el código de la factura realizada
  • 11. TABLA ARTICULO Describe los articulos, si hay existencias de dichos y contiene llave foráneas
  • 12. TABLA UNIDAD MEDIDAD Contiene el código y nombre del articulo y el campo activo habilita y deshabilita la tabla
  • 13. TABLA CLASIFICACION Contiene el código y nombre del articulo y el campo activo habilita y deshabilita la tabla
  • 14. TABLA COMPRA Realiza la factura de los proveedores y contiene la descripción de estas
  • 15. TABLA DETALLE COMPRA Contiene los detalles de la factura de los proveedores
  • 16. TABLA PROVEEDORES Contiene los Datos personales de los proveedores
  • 17.
  • 18. CREATE TRIGGER AumentarExistencia1 ON DetalleCompra AFTER INSERT AS UPDATE Articulo set Existencia = Existencia + (select Cantidad from inserted) where Codigo = (select objArticulo from inserted) go Este aumenta la existencia de los articulos en detalle compra y luego actualiza CREATE TRIGGER DisminuirExistencia1 ON DetalleVenta AFTER INSERT AS UPDATE Articulo set Existencia = Existencia - (select Cantidad from inserted) where Codigo = (select objArticulo from inserted) go Este disminuye la existencia de los articulos en detalle venta y luego actualiza
  • 19. CREATE TRIGGER DisminuirExistencia2 ON DetalleCompra FOR DELETE AS UPDATE Articulo set Existencia = Existencia - (select Cantidad from inserted) where Codigo = (select objArticulo from inserted) go Este disminuye la existencia de detalle compra , borra y luego actualiza la tabla articulo CREATE TRIGGER AumentarExistencia2 ON Venta FOR UPDATE AS IF((select Anulada from updated) = 1) begin select Cantidad from DetalleVenta where objVenta = (select FacturaN from updated) UPDATE Articulo set Existencia = Existencia + (select Cantidad from inserted) where Codigo = (select objArticulo from inserted) end go Este aumenta la existencia en venta luego actualiza si el campo anulada = 1 y actualiza la tabla articulo
  • 20. USE [Ferreteria] Go CREATE TRIGGER Seguridad ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS BEGIN PRINT'Desactivar el Trigger "SEGURIDAD" Antes de borrar o modificar la tabla!' RAISERROR ('No se permite borrar ni modificar las tablas !',16,1) ROLLBACK TRANSACTION END Este trigger brinda serguridad a las tablas impidiendo que estas sean borradas o modificadas , si se desea modificar dicha tabla primero hay que deshabilitarlo
  • 21.
  • 22. create procedure IngresarDescuento @Codigo INT, @Descripcion VARCHAR(50), @Porcentaje FLOAT as insert into Descuento values (@Codigo, @Descripcion, @Porcentaje, 0) go create procedure ModificarDescuento @Codigo INT, @Descripcion VARCHAR(50), @Porcentaje FLOAT, @Activo BIT as update Descuento set Codigo =@Codigo, Descripcion = @Descripcion, Porcentaje = @Porcentaje, Activo = @Activo where Codigo = @Codigo go
  • 23. Create procedure EliminarDescuento @Codigo INT as delete from Descuento where Codigo = @Codigo go Create procedure IngresarCliente @Cedula CHAR(16), @Nombre VARCHAR(50), @Direccion VARCHAR(100), @Telefono CHAR(9), @objDescuento INT, @Activo BIT as insert into Cliente values (@cedula, @nombre, @direccion, @telefono, @objDEscuentos, @activo,0)
  • 24. create procedure ModificarCliente @Cedula CHAR(16), @Nombre VARCHAR(50), @Direccion VARCHAR(100), @Telefono CHAR(9), @objDescuento INT, @Activo BIT as update Cliente set cedula = @Cedula, Nombre = @Nombre, Direccion = @Direccion, Telefono = @Telefono, objDescuento = @objDescuento, Activo = @Activo BIT where Cedula = @Cedula go Create procedure EliminarCliente @Cedula CHAR as delete from Cliente Where Cedula = @Cedula go
  • 25. Create procedure IngresarProveedor @Nombre VARCHAR(50), @Direccion VARCHAR(100), @Telefono CHAR(9), @Activo BIT as insert into Proveedor values (@Nombre, @Direccion, @telefono, @activo,0) Create procedure ModificarProveedor @Nombre VARCHAR(50), @Direccion VARCHAR(100), @Telefono CHAR(9), @Activo BIT as update Proveedor set Nombre = @Nombre, Direccion = @Direccion, Telefono = @Telefono, Activo = @Activo Where Nombre = @nombre go
  • 26. Create Procedure EliminarProveedor @Nombre VARCHAR as delete from Proveedor where Nombre = @Nombre go Create procedure IngresarUnidadMedida @Nombre VARCHAR(50), @Activo BIT as insert into UnidadMedida values (@Nombre, @activo,0) Create Procedure ModificarUnidadMedida @Nombre varchar (50) @Activo BIT as update UnidadMedida set Nombre = @Nombre, Activo = @Activo Where Nombre =@Nombre go
  • 27. Create procedure EliminarUnidadMedida @Nombre VARCHAR as delete from UnidadMedida where Nombre = @Nombre go Create procedure IngresarClasificacion @Nombre VARCHAR(20) @Activo BIT as insert into Clasificacion values (@Nombre, @activo,0) Create Procedure ModificarClasificacion @Nombre varchar (50) @Activo BIT as update Clasificacion set Nombre = @Nombre, Activo = @Activo, Where Nombre =@Nombre go
  • 28. Create procedure EliminarClasificacion @Nombre VARCHAR as delete from Clasificacion where Nombre = @Nombre go Create procedure IngresarAriculo @Nombre VARCHAR(50), @Descripcion VARCHAR(100), @objUnidadMedida INT, @objClasificacion INT, @Existencia FLOAT , @Precio FLOAT, @Costo FLOAT, @Activo BIT as insert into Articulo values (@Nombre, @Descripcion, @objunidadmedida, @objClasificacion, @Existencia, @precio, @Costo, @Activo,0)
  • 29. Create procedure ModificarArticulo @Nombre VARCHAR(50), @Descripcion VARCHAR(100), @objUnidadMedida INT, @objClasificacion INT, @Existencia FLOAT, @Precio FLOAT, @Costo FLOAT, @Activo BIT as update Articulo set Nombre = @Nombre, Descripcion = @Descripcion, objunudadmedida = @objUnidadMedida, objClasificacion = @objClasificacion , Existencia = @Existencia, Precio = @Precio, Costo = @Costo, Activo = @Activo, where = @Nombre go
  • 30. create procedure EliminarArticulo @Nombre = varchar as delete from Articulo where Nombre = @Nombre go create procedure IngresarCompra @FacturaN VARCHAR(20), @objProveedor INT, @Fecha DATETIME, @Subtotal FLOAT, @IVAPagado FLOAT, @Total FLOAT as insert into Compra values (@FacturaN,@objProveedor,@Fecha,@Subtotal,@IVAPagado,@Total,0)
  • 31. Create procedure ModificarCompra @FacturaN VARCHAR(20), @objProveedor INT, @Fecha DATETIME, @Subtotal FLOAT, @IVAPagado FLOAT, @Total FLOAT as update Compra set FacturaN=@FacturaN, objProveedor)@objProveedor, Fecha=@Fecha, Subtotal=@Subtotal, IVAPagado=@IVAPagado, Total=@Total where=@FacturaN go
  • 32. Create procedure EliminarCompra @FacturaN= VARCHAR(20) as delete from Compra where FacturaN=@FacturaN go Create Procedure IngresarDetalleCompra @objCompra VARCHAR(20), @objProveedor INT, @objArticulo VARCHAR(20), @Costo FLOAT, @Cantidad FLOAT, @Monto FLOAT as insert into Detallecompra values (@objCompra,@objProveedor,@objArticulo,@Costo,@Cantidad,@Monto,0)
  • 33. create procedure Modificar DetalleCompra @objCompra VARCHAR(20), @objProveedor INT, @objArticulo VARCHAR(20), @Costo FLOAT, @Cantidad FLOAT, @Monto FLOAT as update DetalleCompra set objCompra=@objCompra, oblProveedor=@objProveedor, objArticulo=@objArticulo, Costo=@Costo, Cantidad=@Cantidad, Monto=@Monto where=@objCompra go
  • 34. create procedure EliminarDetalleCompra @objCompra VARCAHR(20) as delete from DetalleCompra where objCompra=@objCompra go create procedure IngresarSerie @Codigo CHAR(1), @Descripcion VARCHAR(50) as insert into Serie values (@Codigo,@Descripcion,0) create procedure ModificarSerie @Codigo CHAR(1), @Descripcion VARCHAR(50) as update Serie set Codigo=@Codigo, Descripcion=@Descripcion where=@Codigo go
  • 35. create procedure EliminarSerie @Codigo=VARCHAR(1) delete from Serie where Codigo=@Codigo go create procedure IngresarVenta @FacturaN INT, @objSerie CHAR(1), @objCliente CHAR(16), @Contado BIT, @Fecha DATETIME, @Subtotal FLOAT, @Descuento FLOAT, @SubtotalConDescuento FLOAT, @IVA BIT, @IVAPagar FLOAT, @Total FLOAT, @Anulada BIT as insert into Venta values (@FacturaN,@objSerie,@objCliente,@Contado,@Fecha,@Subtotal,@Descuento,@ SubtotalConDescuento,@IVA,@IVAPagar,@Total,@Anulada,0)
  • 36. create procedure ModificarVenta @FacturaN INT, @objSerie CHAR(1), @objCliente CHAR(16), @Contado BIT, @Fecha DATETIME, @Subtotal FLOAT, @Descuento FLOAT, @SubtotalConDescuento FLOAT, @IVA BIT, @IVAPagar FLOAT, @Total FLOAT, @Anulada BIT as update Venta set FacturaN=@FacturaN, objSerie=@objSerie, objCliente=@objCliente, Contado=@Contado, Fecha=@Fecha, Subtotal=@Subtotal,
  • 38. create procedure IngresarDetalleVenta @objVenta INT, @objArticulo VARCHAR(20), @Precio FLOAT, @Cantidad FLOAT, @Monto FLOAT as insert into DetalleVenta values (@objVenta,@objArticulo,@Precio,@Cantidad,@Monto,0) create procedure ModificarDetalleVenta @objVenta INT, @objArticulo VARCHAR(20), @Precio FLOAT, @Cantidad FLOAT, @Monto FLOAT
  • 39. as update DetalleVenta set objVenta=@objVenta, objArticulo=@objArticulo, Precio=@Precio, Cantidad=@Cantidad, Monto=@Monto where=@objVenta go create procedure EliminarDetalleVenta @objVenta=INT delete from DetalleVenta where objVenta=@objVenta go
  • 40. Todos lo procedimientos que utilizamos en esta base de datos realizan las mismas funciones solo que para cada tabla, dichas funciones son:  Inserción  Modificación  Eliminación de datos
  • 41. Procedimiento de Inserción: Este procedimiento ingresa los valores de los campos en la tabla asignada, no se toma en cuenta el Codigo porque es autonumerico, el DEFAULT es para agarrar el valor por omisión. Procedimiento de Modificación: Este procedimiento modifica y actualiza la tabla asignada
  • 42. Procedimiento de Eliminación: Este procedimiento elimina la tabla asignada cuando la llave foránea es igual al valor del primer campo.
  • 43.
  • 44. CREATE VIEW Descuentos AS SELECT * FROM Descuento WHERE Activo = 1 GO Esta vista muestra los campos de la tabla descuento cuando el campo activo es igual a 1 CREATE VIEW Clientes AS SELECT a.Cedula, a.Nombre, a.Direccion, a.Telefono, b.Descripcion AS [Tipo de Descuento], b.Porcentaje FROM Cliente a, Descuento b WHERE a.Activo = 1 AND a.objDescuento = b.Codigo GO Crea una vista llamada cliente le cual nos muestra los campos mencionado
  • 45. CREATE VIEW Proveedores AS SELECT * FROM Proveedor WHERE Activo = 1 GO Crea una vista llamada proveedores y muestra los campos codigo, nombre, direccion , telefono y activo CREATE VIEW UnidadesMedida AS SELECT * FROM UnidadMedida WHERE Activo = 1 GO Crea una vista llamada Unidad de medida en el cual muestra los campos codigo, nombre y activo junto con sus registros CREATE VIEW Clasificaciones AS SELECT * FROM Clasificacion WHERE Activo = 1 GO Crea una vista llamada Clasifiaciones muestra los campos codigo, nombre y activo con sus registros
  • 46. CREATE VIEW Articulos AS SELECT a.Codigo, a.Nombre, a.Descripcion, b.Nombre AS [Unidad de Medida], c.Nombre AS Clasificacion, a.Existencia, a.Precio, a.Costo FROM Articulo a, UnidadMedida b, Clasificacion c WHERE a.Activo = 1 AND a.objUnidadMedida = b.Codigo AND a.objClasificacion = c.Codigo GO Crea una vista llamada articulos en el cual muestra los campos codigo, nombre, descripcion, unidades de medida, clasificacion , existencia, precio y costo CREATE VIEW Series AS SELECT * FROM Serie GO Muestra los campos de codigo y descripcion
  • 47. CREATE VIEW Compras AS SELECT a.FacturaN, b.Nombre AS Proveedor, a.Fecha, d.Nombre AS Articulo, c.Costo, c.Cantidad, c.Monto, a.Subtotal, a.IVAPagado, a.Total FROM Compra a, Proveedor b, DetalleCompra c, Articulo d WHERE a.objProveedor = b.Codigo AND a.FacturaN = c.objCompra AND a.objProveedor = c.objProveedor AND c.objArticulo = d.Codigo GO Crea la vista compra y muestra la factura , proveedor, fecha, articulo, costo, cantidad, monto, subtotal, iva pagado y total de las tablas compra, proveedor, detallecompra y articulo.
  • 48. CREATE VIEW Ventas AS SELECT a.FacturaN, b.Descripcion AS Serie, c.Nombre AS Cliente, a.Contado, a.Fecha, e.Nombre AS Articulo, d.Precio, d.Cantidad, d.Monto, a.Subtotal, a.Descuento, a.SubtotalConDescuento, a.IVAPagar, a.Total FROM Venta a, Serie b, Cliente c, DetalleVenta d, Articulo e WHERE a.objSerie = b.Codigo AND a.objCliente = c.Cedula AND a.FacturaN = d.objVenta AND d.objArticulo = e.Codigo AND a.objSerie = d.objSerie AND a.Anulada = 0 GO Crea una vista llamada Ventas que muestra los campos factura N, serie, cliente, contado, fecha, articulo, precio, cantidad, monto, subtotal, descuento, subtotal con descuento, iva pagar, y total de las tablas venta, serire, cliente, detalle venta y articulo.
  • 49.
  • 50. Muestra Todos los Descuentos SELECT * FROM Descuento Descuentos Activos ordenados por descuentos ascendentes SELECT * FROM Descuentos ORDER BY Porcentaje ASC Muestra los Descuentos Inactivos SELECT * FROM descuento WHERE activo = 0 Muestra Todos los Clientes y sus datos personales SELECT Cedula, Nombre, Direccion, Telefono, Descripcion AS [Tipo de Descuento], Porcentaje FROM Cliente INNER JOIN Descuento ON Cliente.objDescuento = Descuento.Codigo ORDER BY Nombre Muestra a los Clientes Activos por nombre SELECT * FROM Clientes ORDER BY Nombre
  • 51. Muestra los Clientes Inactivos con activos igual 0 SELECT Cedula, Nombre, Direccion, Telefono, Descripcion AS [Tipo de Descuento], Porcentaje FROM Cliente INNER JOIN Descuento ON Cliente.objDescuento = Descuento.Codigo WHERE Cliente.Activo = 0 Muestra Todos los Proveedores SELECT * FROM Proveedor Proveedores Activos por nombre SELECT * FROM Proveedores ORDER BY Nombre Proveedores Inactivos cuando activo igual 0 SELECT * FROM Proveedor where Activo = 0 Muestra Todas las Unidades de Medida SELECT * FROM UnidadMedida Muestra las Unidades de Medida Activas SELECT * FROM UnidadesMedida ORDER BY Nombre Muestra lasUnidades de Medida Inctivas SELECT * FROM UnidadMedida where Activo = 0
  • 52. Muestra los Articulos Activos SELECT * FROM Articulos ORDER BY Nombre Muestra Todas las Compras SELECT * FROM Compras Muestra Todas las Series SELECT * FROM Series Muestra Todas las Ventas SELECT * FROM Ventas