Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE DATABASE StockPro
- GO
- USE StockPro
- GO
- -- ================================================
- -- Tablas
- -- ================================================
- CREATE TABLE Accesos
- (
- AccesoID int NOT NULL,
- Nombre varchar(50) NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE Accesos ADD CONSTRAINT PK_AccesoID PRIMARY KEY (AccesoID)
- ALTER TABLE Accesos ADD CONSTRAINT UQ_Nombre_Accesos UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Cargos
- (
- CargoID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Salario decimal(9, 2) NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE Cargos ADD CONSTRAINT PK_CargoID PRIMARY KEY (CargoID)
- ALTER TABLE Cargos ADD CONSTRAINT UQ_Nombre_Cargos UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE TiposEmpleados
- (
- TipoEmpleadoID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE TiposEmpleados ADD CONSTRAINT PK_TipoEmpleadoID PRIMARY KEY (TipoEmpleadoID)
- ALTER TABLE TiposEmpleados ADD CONSTRAINT UQ_Nombre_TiposEmpleados UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Empleados
- (
- EmpleadoID int NOT NULL IDENTITY(1, 1),
- PrimerNombre varchar(50) NOT NULL,
- SegundoNombre varchar(50) NOT NULL,
- PrimerApellido varchar(50) NOT NULL,
- SegundoApellido varchar(50) NOT NULL,
- FechaNacimiento date NOT NULL,
- Sexo char(1) NOT NULL,
- NumeroIdentidad varchar(20) NOT NULL,
- Direccion varchar(100) NOT NULL,
- Telefono varchar(20) NOT NULL,
- CorreoElectronico varchar(50) NULL,
- TipoEmpleadoID int NOT NULL,
- CargoID int NOT NULL
- )
- -- Integridad
- ALTER TABLE Empleados ADD CONSTRAINT PK_EmpleadoID PRIMARY KEY (EmpleadoID)
- ALTER TABLE Empleados ADD CONSTRAINT FK_TipoEmpleadoID_Empleados FOREIGN KEY (TipoEmpleadoID)
- REFERENCES TiposEmpleados (TipoEmpleadoID)
- ALTER TABLE Empleados ADD CONSTRAINT FK_CargoID_Empleados FOREIGN KEY (CargoID)
- REFERENCES Cargos (CargoID)
- ALTER TABLE Empleados ADD CONSTRAINT CK_NumeroIdentidad_Empleados CHECK (NumeroIdentidad LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9]')
- ALTER TABLE Empleados ADD CONSTRAINT CK_Sexo_Empleados CHECK (Sexo IN ('M', 'F'))
- ALTER TABLE Empleados ADD CONSTRAINT CK_Telefono_Empleados CHECK (Telefono LIKE '([0-9][0-9][0-9])_[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')
- -- ================================================
- GO
- CREATE TABLE Usuarios
- (
- UsuarioID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Contrasena varbinary(128) NOT NULL,
- AccesoID int NOT NULL,
- EmpleadoID int NOT NULL
- )
- -- Integridad
- ALTER TABLE Usuarios ADD CONSTRAINT PK_UsuarioID PRIMARY KEY (UsuarioID)
- ALTER TABLE Usuarios ADD CONSTRAINT FK_AccesoID_Usuarios FOREIGN KEY (AccesoID)
- REFERENCES Accesos (AccesoID)
- ALTER TABLE Usuarios ADD CONSTRAINT FK_EmpleadoID_Usuarios FOREIGN KEY (EmpleadoID)
- REFERENCES Empleados (EmpleadoID)
- ALTER TABLE Usuarios ADD CONSTRAINT UQ_Nombre_Usuarios UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Cajas
- (
- CajaID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- EmpleadoID int NOT NULL
- )
- -- Integridad
- ALTER TABLE Cajas ADD CONSTRAINT PK_CajaID PRIMARY KEY (CajaID)
- ALTER TABLE Cajas ADD CONSTRAINT FK_EmpleadoID_Cajas FOREIGN KEY (EmpleadoID)
- REFERENCES Empleados (EmpleadoID)
- ALTER TABLE Cajas ADD CONSTRAINT UQ_Nombre_Cajas UNIQUE (Nombre)
- ALTER TABLE Cajas ADD CONSTRAINT UQ_EmpleadoID_Cajas UNIQUE (EmpleadoID)
- -- ================================================
- GO
- CREATE TABLE Almacenes
- (
- AlmacenID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Direccion varchar(100) NOT NULL
- )
- -- Integridad
- ALTER TABLE Almacenes ADD CONSTRAINT PK_AlmacenID PRIMARY KEY (AlmacenID)
- ALTER TABLE Almacenes ADD CONSTRAINT UQ_Nombre_Almacenes UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Proveedores
- (
- ProveedorID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Direccion varchar(100) NOT NULL,
- Telefono varchar(20) NOT NULL
- )
- -- Integridad
- ALTER TABLE Proveedores ADD CONSTRAINT PK_ProveedorID PRIMARY KEY (ProveedorID)
- ALTER TABLE Proveedores ADD CONSTRAINT UQ_Nombre_Proveedores UNIQUE (Nombre)
- ALTER TABLE Proveedores ADD CONSTRAINT CK_Telefono_Proveedores CHECK (Telefono LIKE '([0-9][0-9][0-9])_[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')
- -- ================================================
- GO
- CREATE TABLE Categorias
- (
- CategoriaID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE Categorias ADD CONSTRAINT PK_CategoriaID PRIMARY KEY (CategoriaID)
- ALTER TABLE Categorias ADD CONSTRAINT UQ_Nombre_Categorias UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Productos
- (
- ProductoID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- ProveedorID int NOT NULL,
- CategoriaID int NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE Productos ADD CONSTRAINT PK_ProductoID PRIMARY KEY (ProductoID)
- ALTER TABLE Productos ADD CONSTRAINT FK_ProveedorID_Productos FOREIGN KEY (ProveedorID)
- REFERENCES Proveedores (ProveedorID)
- ALTER TABLE Productos ADD CONSTRAINT FK_CategoriaID_Productos FOREIGN KEY (CategoriaID)
- REFERENCES Categorias (CategoriaID)
- ALTER TABLE Productos ADD CONSTRAINT UQ_Nombre_Productos UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Inventario
- (
- AlmacenID int NOT NULL,
- ProductoID int NOT NULL,
- Precio decimal(9, 2) NOT NULL,
- Existencia int NOT NULL
- )
- -- Integridad
- ALTER TABLE Inventario ADD CONSTRAINT PK_AlmacenID_ProductoID PRIMARY KEY (AlmacenID, ProductoID)
- ALTER TABLE Inventario ADD CONSTRAINT FK_AlmacenID_Inventario FOREIGN KEY (AlmacenID)
- REFERENCES Almacenes (AlmacenID)
- ALTER TABLE Inventario ADD CONSTRAINT FK_ProductoID_Inventario FOREIGN KEY (ProductoID)
- REFERENCES Productos (ProductoID)
- -- ================================================
- GO
- CREATE TABLE OrdenesCompras
- (
- OrdenCompraID int NOT NULL IDENTITY(1, 1),
- AlmacenID int NOT NULL,
- ProveedorID int NOT NULL,
- Fecha date NOT NULL
- )
- -- Integridad
- ALTER TABLE OrdenesCompras ADD CONSTRAINT PK_OrdenCompraID PRIMARY KEY (OrdenCompraID)
- ALTER TABLE OrdenesCompras ADD CONSTRAINT FK_AlmacenID_OrdenesCompras FOREIGN KEY (AlmacenID)
- REFERENCES Almacenes (AlmacenID)
- ALTER TABLE OrdenesCompras ADD CONSTRAINT FK_ProveedorID_OrdenesCompras FOREIGN KEY (ProveedorID)
- REFERENCES Proveedores (ProveedorID)
- -- ================================================
- GO
- CREATE TABLE DetalleOrdenesCompras
- (
- OrdenCompraID int NOT NULL,
- Hora time NOT NULL,
- ProductoID int NOT NULL,
- Costo decimal(9, 2) NOT NULL,
- Impuesto int NOT NULL,
- Solicitado int NOT NULL,
- Recibido int NOT NULL
- )
- -- Integridad
- ALTER TABLE DetalleOrdenesCompras ADD CONSTRAINT PK_OrdenCompraID_ProductoID PRIMARY KEY (OrdenCompraID, ProductoID)
- ALTER TABLE DetalleOrdenesCompras ADD CONSTRAINT FK_OrdenCompraID_DetalleOrdenesCompras FOREIGN KEY (OrdenCompraID)
- REFERENCES OrdenesCompras (OrdenCompraID)
- ALTER TABLE DetalleOrdenesCompras ADD CONSTRAINT FK_ProductoID_DetalleOrdenesCompras FOREIGN KEY (ProductoID)
- REFERENCES Productos (ProductoID)
- -- ================================================
- GO
- CREATE TABLE DevolucionesCompras
- (
- DevolucionCompraID int NOT NULL IDENTITY(1, 1),
- OrdenCompraID int NOT NULL,
- Fecha date NOT NULL
- )
- -- Integridad
- ALTER TABLE DevolucionesCompras ADD CONSTRAINT PK_DevolucionCompraID PRIMARY KEY (DevolucionCompraID)
- ALTER TABLE DevolucionesCompras ADD CONSTRAINT FK_OrdenCompraID_DevolucionesCompras FOREIGN KEY (OrdenCompraID)
- REFERENCES OrdenesCompras (OrdenCompraID)
- ALTER TABLE DevolucionesCompras ADD CONSTRAINT UQ_OrdenCompraID_DevolucionesCompras UNIQUE (OrdenCompraID)
- ALTER TABLE DevolucionesCompras ADD CONSTRAINT UQ_Fecha_DevolucionesCompras UNIQUE (Fecha)
- -- ================================================
- GO
- CREATE TABLE DetalleDevolucionesCompras
- (
- DevolucionCompraID int NOT NULL,
- Hora time NOT NULL,
- Cantidad int NOT NULL
- )
- -- Integridad
- ALTER TABLE DetalleDevolucionesCompras ADD CONSTRAINT FK_DevolucionCompraID_DetalleDevolucionesCompras FOREIGN KEY (DevolucionCompraID)
- REFERENCES DevolucionesCompras (DevolucionCompraID)
- -- ================================================
- GO
- CREATE TABLE Clientes
- (
- ClienteID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Apellido varchar(50) NOT NULL,
- Direccion varchar(100) NOT NULL,
- Telefono varchar(20) NOT NULL,
- CorreoElectronico varchar(50) NULL
- )
- -- Integridad
- ALTER TABLE Clientes ADD CONSTRAINT PK_ClienteID PRIMARY KEY (ClienteID)
- ALTER TABLE Clientes ADD CONSTRAINT CK_Telefono_Clientes CHECK (Telefono LIKE '([0-9][0-9][0-9])_[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]')
- -- ================================================
- GO
- CREATE TABLE FormasPago
- (
- FormaPagoID int NOT NULL IDENTITY(1, 1),
- Nombre varchar(50) NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE FormasPago ADD CONSTRAINT PK_FormaPagoID PRIMARY KEY (FormaPagoID)
- ALTER TABLE FormasPago ADD CONSTRAINT UQ_Nombre_FormasPago UNIQUE (Nombre)
- -- ================================================
- GO
- CREATE TABLE Facturas
- (
- FacturaID int NOT NULL IDENTITY(1, 1),
- CajaID int NOT NULL,
- ClienteID int NOT NULL,
- Fecha date NOT NULL
- )
- -- Integridad
- ALTER TABLE Facturas ADD CONSTRAINT PK_FacturaID PRIMARY KEY (FacturaID)
- ALTER TABLE Facturas ADD CONSTRAINT FK_CajaID_Facturas FOREIGN KEY (CajaID)
- REFERENCES Cajas (CajaID)
- ALTER TABLE Facturas ADD CONSTRAINT FK_ClienteID_Facturas FOREIGN KEY (ClienteID)
- REFERENCES Clientes (ClienteID)
- ALTER TABLE Facturas ADD CONSTRAINT UQ_CajaID_Facturas UNIQUE (CajaID)
- ALTER TABLE Facturas ADD CONSTRAINT UQ_ClienteID_Facturas UNIQUE (ClienteID)
- ALTER TABLE Facturas ADD CONSTRAINT UQ_Fecha_Facturas UNIQUE (Fecha)
- -- ================================================
- GO
- CREATE TABLE DetalleFacturas
- (
- FacturaID int NOT NULL,
- Hora time NOT NULL,
- AlmacenID int NOT NULL,
- ProductoID int NOT NULL,
- Precio decimal(9, 2) NOT NULL,
- Cantidad int NOT NULL,
- FormaPagoID int NOT NULL
- )
- -- Integridad
- ALTER TABLE DetalleFacturas ADD CONSTRAINT PK_FacturaID_AlmacenID_ProductoID_FormaPagoID PRIMARY KEY (FacturaID, AlmacenID, ProductoID, FormaPagoID)
- ALTER TABLE DetalleFacturas ADD CONSTRAINT FK_FacturaID_DetalleFacturas FOREIGN KEY (FacturaID)
- REFERENCES Facturas (FacturaID)
- ALTER TABLE DetalleFacturas ADD CONSTRAINT FK_AlmacenID_DetalleFacturas FOREIGN KEY (AlmacenID)
- REFERENCES Almacenes (AlmacenID)
- ALTER TABLE DetalleFacturas ADD CONSTRAINT FK_ProductoID_DetalleFacturas FOREIGN KEY (ProductoID)
- REFERENCES Productos (ProductoID)
- ALTER TABLE DetalleFacturas ADD CONSTRAINT FK_FormaPagoID_DetalleFacturas FOREIGN KEY (FormaPagoID)
- REFERENCES FormasPago (FormaPagoID)
- -- ================================================
- GO
- CREATE TABLE DevolucionesVentas
- (
- DevolucionVentaID int NOT NULL IDENTITY(1, 1),
- FacturaID int NOT NULL,
- Fecha date NOT NULL
- )
- -- Integridad
- ALTER TABLE DevolucionesVentas ADD CONSTRAINT PK_DevolucionVentaID PRIMARY KEY (DevolucionVentaID)
- ALTER TABLE DevolucionesVentas ADD CONSTRAINT FK_FacturaID_DevolucionesVentas FOREIGN KEY (FacturaID)
- REFERENCES Facturas (FacturaID)
- ALTER TABLE DevolucionesVentas ADD CONSTRAINT UQ_FacturaID_DevolucionesVentas UNIQUE (FacturaID)
- ALTER TABLE DevolucionesVentas ADD CONSTRAINT UQ_Fecha_DevolucionesVentas UNIQUE (Fecha)
- -- ================================================
- GO
- CREATE TABLE DetalleDevolucionesVentas
- (
- DevolucionVentaID int NOT NULL,
- Hora time NOT NULL,
- Cantidad int NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE DetalleDevolucionesVentas ADD CONSTRAINT PK_DevolucionVentaID_DetalleDevolucionesVentas PRIMARY KEY (DevolucionVentaID)
- ALTER TABLE DetalleDevolucionesVentas ADD CONSTRAINT FK_DevolucionVentaID_DetalleDevolucionesVentas FOREIGN KEY (DevolucionVentaID)
- REFERENCES DevolucionesVentas (DevolucionVentaID)
- -- ================================================
- GO
- CREATE TABLE Transferencias
- (
- TransferenciaID int NOT NULL IDENTITY(1, 1),
- AlmacenID_Origen int NOT NULL,
- AlmacenID_Destino int NOT NULL,
- Fecha date NOT NULL
- )
- -- Integridad
- ALTER TABLE Transferencias ADD CONSTRAINT PK_TransferenciaID PRIMARY KEY (TransferenciaID)
- ALTER TABLE Transferencias ADD CONSTRAINT FK_AlmacenID_Origen_Transferencias FOREIGN KEY (AlmacenID_Origen)
- REFERENCES Almacenes (AlmacenID)
- ALTER TABLE Transferencias ADD CONSTRAINT FK_AlmacenID_Destino_Transferencias FOREIGN KEY (AlmacenID_Destino)
- REFERENCES Almacenes (AlmacenID)
- ALTER TABLE Transferencias ADD CONSTRAINT UQ_AlmacenID_Origen_Transferencias UNIQUE (AlmacenID_Origen)
- ALTER TABLE Transferencias ADD CONSTRAINT UQ_AlmacenID_Destino_Transferencias UNIQUE (AlmacenID_Destino)
- ALTER TABLE Transferencias ADD CONSTRAINT UQ_Fecha_Transferencias UNIQUE (Fecha)
- -- ================================================
- GO
- CREATE TABLE DetalleTransferencias
- (
- TransferenciaID int NOT NULL,
- Hora time NOT NULL,
- ProductoID int NOT NULL,
- Solicitado int NOT NULL,
- Recibido int NOT NULL,
- Descripcion varchar(100) NULL
- )
- -- Integridad
- ALTER TABLE DetalleTransferencias ADD CONSTRAINT PK_TransferenciaID_ProductoID PRIMARY KEY (TransferenciaID, ProductoID)
- ALTER TABLE DetalleTransferencias ADD CONSTRAINT FK_TransferenciaID_DetalleTransferencias FOREIGN KEY (TransferenciaID)
- REFERENCES Transferencias (TransferenciaID)
- ALTER TABLE DetalleTransferencias ADD CONSTRAINT FK_ProductoID_DetalleTransferencias FOREIGN KEY (ProductoID)
- REFERENCES Productos (ProductoID)
- -- ================================================
- GO
- CREATE TABLE Pagos
- (
- FormaPagoID int NOT NULL IDENTITY(1, 1),
- Fecha date NOT NULL,
- Hora time NOT NULL,
- Valor decimal(9, 2) NOT NULL
- )
- -- Integridad
- ALTER TABLE Pagos ADD CONSTRAINT PK_FormaPagoID_Pagos PRIMARY KEY (FormaPagoID)
- ALTER TABLE Pagos ADD CONSTRAINT FK_FormaPagoID_Pagos FOREIGN KEY (FormaPagoID)
- REFERENCES FormasPago (FormaPagoID)
- -- ================================================
- -- Valores predeterminados
- -- ================================================
- GO
- CREATE DEFAULT NoDisponible
- AS 'No disponible'
- -- Enlaces
- GO
- sp_bindefault 'NoDisponible', 'Accesos.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'Cargos.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'TiposEmpleados.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'TiposEmpleados.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'Empleados.CorreoElectronico'
- GO
- sp_bindefault 'NoDisponible', 'Categorias.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'Productos.Descripcion'
- GO
- sp_bindefault 'NoDisponible', 'Clientes.CorreoElectronico'
- GO
- sp_bindefault 'NoDisponible', 'FormasPago.Descripcion'
- -- ================================================
- -- Funciones
- -- ================================================
- GO
- CREATE FUNCTION QuitarEspacios
- (
- @Cadena varchar(100)
- )
- RETURNS varchar(100)
- AS
- BEGIN
- RETURN ISNULL(@Cadena, LTRIM(RTRIM(@Cadena)))
- END
- -- ================================================
- GO
- CREATE FUNCTION FormatoFecha
- (
- @Fecha date
- )
- RETURNS varchar(15)
- AS
- BEGIN
- RETURN CONVERT(varchar, @Fecha, 103)
- END
- -- ================================================
- GO
- CREATE FUNCTION FormatoHora
- (
- @Hora time
- )
- RETURNS varchar(15)
- AS
- BEGIN
- RETURN CONVERT(VARCHAR, @Hora, 108)
- END
- -- ================================================
- GO
- CREATE FUNCTION ObtenerTotal
- (
- @Total decimal(9, 2),
- @Impuesto int
- )
- RETURNS decimal(9, 2)
- AS
- BEGIN
- RETURN @Total * CONVERT(decimal(9, 2), '1.' + CONVERT(varchar, @Impuesto))
- END
- -- ================================================
- -- Vistas
- -- ================================================
- GO
- CREATE VIEW vAccesos
- AS
- SELECT CONVERT(varchar, AccesoID) 'ID',
- Nombre 'Nombre',
- Descripcion 'Descripción'
- FROM Accesos
- -- ================================================
- GO
- CREATE VIEW vCargos
- AS
- SELECT CONVERT(varchar, CargoID) 'ID',
- Nombre 'Nombre',
- Salario 'Salario',
- Descripcion 'Descripción'
- FROM Cargos
- -- ================================================
- GO
- CREATE VIEW vTiposEmpleados
- AS
- SELECT CONVERT(varchar, TipoEmpleadoID) 'ID',
- Nombre 'Nombre',
- Descripcion 'Descripción'
- FROM TiposEmpleados
- -- ================================================
- GO
- CREATE VIEW vEmpleados
- AS
- SELECT CONVERT(varchar, e.EmpleadoID) 'ID',
- e.PrimerNombre 'Primer nombre',
- e.SegundoNombre 'Segundo nombre',
- e.PrimerApellido 'Primer apellido',
- e.SegundoApellido 'Segundo apellido',
- dbo.FormatoFecha(e.FechaNacimiento) 'Fecha de nacimiento',
- e.Sexo 'Sexo',
- e.NumeroIdentidad 'Número de identidad',
- e.Direccion 'Dirección',
- e.Telefono 'Teléfono',
- e.CorreoElectronico 'Correo electrónico',
- t.Nombre 'Tipo',
- c.Nombre 'Cargo'
- FROM Empleados e WITH (NOLOCK)
- INNER JOIN TiposEmpleados t WITH (NOLOCK)
- ON e.TipoEmpleadoID = t.TipoEmpleadoID
- INNER JOIN Cargos c WITH (NOLOCK)
- ON e.CargoID = c.CargoID
- -- ================================================
- GO
- CREATE VIEW vUsuarios
- AS
- SELECT CONVERT(varchar, u.UsuarioID) 'ID',
- u.Nombre 'Nombre',
- a.Nombre 'Acceso',
- e.PrimerNombre + SPACE(1) +
- e.PrimerApellido 'Empleado'
- FROM Usuarios u WITH (NOLOCK)
- INNER JOIN Accesos a WITH (NOLOCK)
- ON u.AccesoID = a.AccesoID
- INNER JOIN Empleados e WITH (NOLOCK)
- ON u.EmpleadoID = e.EmpleadoID
- -- ================================================
- GO
- CREATE VIEW vCajas
- AS
- SELECT CONVERT(varchar, c.CajaID) 'ID',
- c.Nombre 'Nombre',
- e.PrimerNombre + SPACE(1) +
- e.PrimerApellido 'Empleado'
- FROM Cajas c WITH (NOLOCK)
- INNER JOIN Empleados e WITH (NOLOCK)
- ON c.EmpleadoID = e.EmpleadoID
- -- ================================================
- GO
- CREATE VIEW vAlmacenes
- AS
- SELECT CONVERT(varchar, AlmacenID) 'ID',
- Nombre 'Nombre',
- Direccion 'Dirección'
- FROM Almacenes
- -- ================================================
- GO
- CREATE VIEW vProveedores
- AS
- SELECT CONVERT(varchar, ProveedorID) 'ID',
- Nombre 'Nombre',
- Direccion 'Dirección',
- Telefono 'Teléfono'
- FROM Proveedores
- -- ================================================
- GO
- CREATE VIEW vCategorias
- AS
- SELECT CONVERT(varchar, CategoriaID) 'ID',
- Nombre 'Nombre',
- Descripcion 'Descripción'
- FROM Categorias
- -- ================================================
- GO
- CREATE VIEW vProductos
- AS
- SELECT CONVERT(varchar, ProductoID) 'ID',
- p.Nombre 'Nombre',
- c.Nombre 'Categoría',
- v.Nombre 'Proveedor',
- p.Descripcion 'Descripción'
- FROM Productos p WITH (NOLOCK)
- INNER JOIN Categorias c WITH (NOLOCK)
- ON p.CategoriaID = c.CategoriaID
- INNER JOIN Proveedores v WITH (NOLOCK)
- ON p.ProveedorID = v.ProveedorID
- -- ================================================
- GO
- CREATE VIEW vInventario
- AS
- SELECT a.Nombre 'Almacén',
- p.Nombre 'Producto',
- i.Precio 'Precio',
- i.Existencia 'Existencia'
- FROM Inventario i WITH (NOLOCK)
- INNER JOIN Almacenes a WITH (NOLOCK)
- ON i.AlmacenID = a.AlmacenID
- INNER JOIN Productos p WITH (NOLOCK)
- ON i.ProductoID = p.ProductoID
- -- ================================================
- GO
- CREATE VIEW vOrdenesCompras
- AS
- SELECT CONVERT(varchar, o.OrdenCompraID) 'ID',
- a.Nombre 'Almacén',
- p.Nombre 'Proveedor',
- dbo.FormatoFecha(o.Fecha) 'Fecha'
- FROM OrdenesCompras o WITH (NOLOCK)
- INNER JOIN Almacenes a WITH (NOLOCK)
- ON o.AlmacenID = a.AlmacenID
- INNER JOIN Proveedores p WITH (NOLOCK)
- ON o.ProveedorID = p.ProveedorID
- -- ================================================
- GO
- CREATE VIEW vDevolucionesCompras
- AS
- SELECT CONVERT(varchar, DevolucionCompraID) 'ID',
- OrdenCompraID 'Orden de compra',
- dbo.FormatoFecha(Fecha) 'Fecha'
- FROM DevolucionesCompras
- -- ================================================
- GO
- CREATE VIEW vClientes
- AS
- SELECT CONVERT(varchar, ClienteID) 'ID',
- Nombre 'Nombre',
- Apellido 'Apellido',
- Direccion 'Dirección',
- Telefono 'Teléfono',
- CorreoElectronico 'Correo electrónico'
- FROM Clientes
- -- ================================================
- GO
- CREATE VIEW vFormasPago
- AS
- SELECT CONVERT(varchar, FormaPagoID) 'ID',
- Nombre 'Nombre',
- Descripcion 'Descripción'
- FROM FormasPago
- -- ================================================
- GO
- CREATE VIEW vFacturas
- AS
- SELECT CONVERT(varchar, f.FacturaID) 'ID',
- c.Nombre 'Caja',
- l.Nombre + SPACE(1) + l.Apellido 'Cliente',
- dbo.FormatoFecha(f.Fecha) 'Fecha'
- FROM Facturas f WITH (NOLOCK)
- INNER JOIN Cajas c WITH (NOLOCK)
- ON f.CajaID = c.CajaID
- INNER JOIN Clientes l WITH (NOLOCK)
- ON f.ClienteID = l.ClienteID
- -- ================================================
- GO
- CREATE VIEW vDevolucionesVentas
- AS
- SELECT CONVERT(varchar, DevolucionVentaID) 'ID',
- FacturaID 'Factura',
- dbo.FormatoFecha(Fecha) 'Fecha'
- FROM DevolucionesVentas
- -- ================================================
- GO
- CREATE VIEW vTransferencias
- AS
- SELECT CONVERT(varchar, t.TransferenciaID) 'ID',
- o.Nombre 'Almacén de origen',
- d.Nombre 'Almacén de destino',
- dbo.FormatoFecha(t.Fecha) 'Fecha'
- FROM Transferencias t WITH (NOLOCK)
- INNER JOIN Almacenes o WITH (NOLOCK)
- ON t.AlmacenID_Origen = o.AlmacenID
- INNER JOIN Almacenes d WITH (NOLOCK)
- ON t.AlmacenID_Destino = d.AlmacenID
- -- ================================================
- -- Procedimientos almacenados
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerAccesos
- AS
- BEGIN
- SELECT * FROM vAccesos
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoAcceso
- @AccesoID int,
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO Accesos(AccesoID, Nombre, Descripcion)
- VALUES(@AccesoID, dbo.QuitarEspacios(@Nombre), ISNULL(dbo.QuitarEspacios(@Descripcion), 'No disponible'))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarAcceso
- @AccesoID int,
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Descripcion = dbo.QuitarEspacios(@Descripcion)
- SET @DescripcionActual = (SELECT Descripcion FROM Accesos WHERE AccesoID = @AccesoID)
- IF @Nombre != (SELECT Nombre FROM Accesos WHERE AccesoID = @AccesoID)
- UPDATE Accesos
- SET Nombre = @Nombre
- WHERE AccesoID = @AccesoID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NOT NULL AND @DescripcionActual IS NULL
- UPDATE Accesos
- SET Descripcion = @Descripcion
- WHERE AccesoID = @AccesoID
- ELSE
- UPDATE Accesos
- SET Descripcion = default
- WHERE AccesoID = @AccesoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarAcceso
- @AccesoID int
- AS
- BEGIN
- IF (@AccesoID > 3)
- DELETE FROM Accesos
- WHERE AccesoID = @AccesoID
- ELSE
- RETURN @@ERROR
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarAccesos
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vAccesos
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerCargos
- AS
- BEGIN
- SELECT * FROM vCargos
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoCargo
- @Nombre varchar(50),
- @Salario decimal(9, 2),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO Cargos(Nombre, Salario, Descripcion)
- VALUES(dbo.QuitarEspacios(@Nombre), @Salario, dbo.QuitarEspacios(@Descripcion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarCargo
- @CargoID int,
- @Nombre varchar(50),
- @Salario decimal(9, 2),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Descripcion = dbo.QuitarEspacios(@Descripcion)
- SET @DescripcionActual = (SELECT Descripcion FROM Cargos WHERE CargoID = @CargoID)
- IF @Nombre != (SELECT Nombre FROM Cargos WHERE CargoID = @CargoID)
- UPDATE Cargos
- SET Nombre = @Nombre
- WHERE CargoID = @CargoID
- IF @Salario != (SELECT Salario FROM Cargos WHERE CargoID = @CargoID)
- UPDATE Cargos
- SET Salario = @Salario
- WHERE CargoID = @CargoID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NULL AND @DescripcionActual IS NOT NULL OR @DescripcionActual IS NULL AND @Descripcion IS NOT NULL
- UPDATE Cargos
- SET Descripcion = @Descripcion
- WHERE CargoID = @CargoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarCargo
- @CargoID int
- AS
- BEGIN
- DELETE FROM Cargos
- WHERE CargoID = @CargoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarCargos
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vCargos
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerTiposEmpleados
- AS
- BEGIN
- SELECT * FROM vTiposEmpleados
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoTipoEmpleados
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO TiposEmpleados(Nombre, Descripcion)
- VALUES(dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Descripcion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarTipoEmpleados
- @TipoEmpleadoID int,
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Descripcion = dbo.QuitarEspacios(@Descripcion)
- SET @DescripcionActual = (SELECT Descripcion FROM TiposEmpleados WHERE TipoEmpleadoID = @TipoEmpleadoID)
- IF @Nombre != (SELECT Nombre FROM TiposEmpleados WHERE TipoEmpleadoID = @TipoEmpleadoID)
- UPDATE TiposEmpleados
- SET Nombre = @Nombre
- WHERE TipoEmpleadoID = @TipoEmpleadoID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NULL AND @DescripcionActual IS NOT NULL OR @DescripcionActual IS NULL AND @Descripcion IS NOT NULL
- UPDATE TiposEmpleados
- SET Descripcion = @Descripcion
- WHERE TipoEmpleadoID = @TipoEmpleadoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarTipoEmpleados
- @TipoEmpleadoID int
- AS
- BEGIN
- DELETE FROM TiposEmpleados
- WHERE TipoEmpleadoID = @TipoEmpleadoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarTiposEmpleados
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vTiposEmpleados
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerEmpleados
- AS
- BEGIN
- SELECT * FROM vEmpleados
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoEmpleado
- @PrimerNombre varchar(50),
- @SegundoNombre varchar(50),
- @PrimerApellido varchar(50),
- @SegundoApellido varchar(50),
- @FechaNacimiento varchar(10),
- @Sexo char(1),
- @NumeroIdentidad varchar(20),
- @Direccion varchar(100),
- @Telefono varchar(20),
- @CorreoElectronico varchar(50),
- @Tipo varchar(50),
- @Cargo varchar(50)
- AS
- BEGIN
- INSERT INTO Empleados(PrimerNombre, SegundoNombre, PrimerApellido, SegundoApellido, FechaNacimiento, Sexo, NumeroIdentidad,
- Direccion, Telefono, CorreoElectronico, TipoEmpleadoID, CargoID)
- VALUES(dbo.QuitarEspacios(@PrimerNombre), dbo.QuitarEspacios(@SegundoNombre), dbo.QuitarEspacios(@PrimerApellido), dbo.QuitarEspacios(@SegundoApellido), dbo.QuitarEspacios(@FechaNacimiento),
- dbo.QuitarEspacios(@Sexo), dbo.QuitarEspacios(@NumeroIdentidad), dbo.QuitarEspacios(@Direccion), dbo.QuitarEspacios(@Telefono), dbo.QuitarEspacios(@CorreoElectronico), (SELECT TipoEmpleadoID FROM TiposEmpleados WHERE Nombre = @Tipo), (SELECT CargoID FROM Cargos WHERE Nombre = @Cargo))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarEmpleado
- @EmpleadoID int,
- @PrimerNombre varchar(50),
- @SegundoNombre varchar(50),
- @PrimerApellido varchar(50),
- @SegundoApellido varchar(50),
- @FechaNacimiento varchar(10),
- @Sexo char(1),
- @NumeroIdentidad varchar(20),
- @Direccion varchar(100),
- @Telefono varchar(20),
- @CorreoElectronico varchar(50),
- @TipoEmpleadoID int,
- @CargoID int
- AS
- BEGIN
- DECLARE @CorreoElectronicoActual varchar(50)
- SET @PrimerNombre = dbo.QuitarEspacios(@PrimerNombre)
- SET @SegundoNombre = dbo.QuitarEspacios(@SegundoNombre)
- SET @PrimerApellido = dbo.QuitarEspacios(@PrimerApellido)
- SET @SegundoApellido = dbo.QuitarEspacios(@SegundoApellido)
- SET @Direccion = dbo.QuitarEspacios(@Direccion)
- SET @Telefono = dbo.QuitarEspacios(@Telefono)
- SET @CorreoElectronico = dbo.QuitarEspacios(@CorreoElectronico)
- SET @CorreoElectronicoActual = (SELECT CorreoElectronico FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- IF @PrimerNombre != (SELECT PrimerNombre FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET PrimerNombre = @PrimerNombre
- WHERE EmpleadoID = @EmpleadoID
- IF @SegundoNombre != (SELECT SegundoNombre FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET SegundoNombre = @SegundoNombre
- WHERE EmpleadoID = @EmpleadoID
- IF @PrimerApellido != (SELECT PrimerApellido FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET PrimerApellido = @PrimerApellido
- WHERE EmpleadoID = @EmpleadoID
- IF @SegundoApellido != (SELECT SegundoApellido FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET SegundoApellido = @SegundoApellido
- WHERE EmpleadoID = @EmpleadoID
- IF @FechaNacimiento != (SELECT FechaNacimiento FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET FechaNacimiento = @FechaNacimiento
- WHERE EmpleadoID = @EmpleadoID
- IF @Sexo != (SELECT Sexo FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET Sexo = @Sexo
- WHERE EmpleadoID = @EmpleadoID
- IF @NumeroIdentidad != (SELECT NumeroIdentidad FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET NumeroIdentidad = @NumeroIdentidad
- WHERE EmpleadoID = @EmpleadoID
- IF @Direccion != (SELECT Direccion FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET Direccion = @Direccion
- WHERE EmpleadoID = @EmpleadoID
- IF @Telefono != (SELECT Telefono FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET Telefono = @Telefono
- WHERE EmpleadoID = @EmpleadoID
- IF @CorreoElectronico != @CorreoElectronicoActual OR @CorreoElectronico IS NULL AND @CorreoElectronicoActual IS NOT NULL OR @CorreoElectronicoActual IS NULL AND @CorreoElectronico IS NOT NULL
- UPDATE Empleados
- SET CorreoElectronico = @CorreoElectronico
- WHERE EmpleadoID = @EmpleadoID
- IF @TipoEmpleadoID != (SELECT TipoEmpleadoID FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET TipoEmpleadoID = @TipoEmpleadoID
- WHERE EmpleadoID = @EmpleadoID
- IF @CargoID != (SELECT CargoID FROM Empleados WHERE EmpleadoID = @EmpleadoID)
- UPDATE Empleados
- SET CargoID = @CargoID
- WHERE EmpleadoID = @EmpleadoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarEmpleado
- @EmpleadoID int
- AS
- BEGIN
- DELETE FROM Empleados
- WHERE EmpleadoID = @EmpleadoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarEmpleados
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vEmpleados
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- [Primer nombre] + ' ' + [Primer apellido]
- WHEN 3 THEN
- Tipo
- ELSE
- Cargo
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerUsuarios
- AS
- BEGIN
- SELECT * FROM vUsuarios
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoUsuario
- @Nombre varchar(50),
- @Acceso varchar(50),
- @Empleado varchar(50)
- AS
- BEGIN
- INSERT INTO Usuarios(Nombre, Contrasena, AccesoID, EmpleadoID)
- VALUES(dbo.QuitarEspacios(@Nombre), PWDENCRYPT('1234'), (SELECT AccesoID FROM Accesos WHERE Nombre = dbo.QuitarEspacios(@Acceso)), (SELECT EmpleadoID FROM Empleados WHERE PrimerNombre = dbo.QuitarEspacios(@Empleado)))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarUsuario
- @UsuarioID int,
- @Nombre varchar(50),
- @Acceso varchar(50),
- @Empleado varchar(50)
- AS
- BEGIN
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- IF @Nombre != (SELECT Nombre FROM Usuarios WHERE UsuarioID = @UsuarioID)
- UPDATE Usuarios
- SET Nombre = @Nombre
- WHERE UsuarioID = @UsuarioID
- IF @Acceso != (SELECT Nombre FROM Accesos WHERE AccesoID = (SELECT AccesoID FROM Usuarios WHERE UsuarioID = @UsuarioID))
- UPDATE Usuarios
- SET AccesoID = (SELECT AccesoID FROM Accesos WHERE Nombre = @Acceso)
- WHERE UsuarioID = @UsuarioID
- IF @Empleado != (SELECT PrimerNombre FROM Empleados WHERE EmpleadoID = (SELECT EmpleadoID FROM Usuarios WHERE UsuarioID = @UsuarioID))
- UPDATE Usuarios
- SET EmpleadoID = (SELECT EmpleadoID FROM Empleados WHERE PrimerNombre = @Empleado)
- WHERE UsuarioID = @UsuarioID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarUsuario
- @UsuarioID int
- AS
- BEGIN
- DELETE FROM Usuarios
- WHERE UsuarioID = @UsuarioID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarUsuarios
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vUsuarios
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Nombre
- WHEN 3 THEN
- Acceso
- ELSE
- Empleado
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerCajas
- AS
- BEGIN
- SELECT * FROM vCajas
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaCaja
- @Nombre varchar(50),
- @Empleado varchar(50)
- AS
- BEGIN
- INSERT INTO Cajas(Nombre, EmpleadoID)
- VALUES(dbo.QuitarEspacios(@Nombre), (SELECT EmpleadoID FROM Empleados WHERE PrimerNombre = dbo.QuitarEspacios(@Empleado)))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarCaja
- @CajaID int,
- @Nombre varchar(50),
- @Empleado varchar(50)
- AS
- BEGIN
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- IF @Nombre != (SELECT Nombre FROM Cajas WHERE CajaID = @CajaID)
- UPDATE Cajas
- SET Nombre = @Nombre
- WHERE CajaID = @CajaID
- IF @Empleado != (SELECT PrimerNombre FROM Empleados WHERE EmpleadoID = (SELECT EmpleadoID FROM Cajas WHERE CajaID = @CajaID))
- UPDATE Cajas
- SET EmpleadoID = (SELECT EmpleadoID FROM Empleados WHERE PrimerNombre = @Empleado)
- WHERE CajaID = @CajaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarCaja
- @CajaID int
- AS
- BEGIN
- DELETE FROM Cajas
- WHERE CajaID = @CajaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarCajas
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vCajas
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Nombre
- ELSE
- Empleado
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerAlmacenes
- AS
- BEGIN
- SELECT * FROM vAlmacenes
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoAlmacen
- @Nombre varchar(50),
- @Direccion varchar(100)
- AS
- BEGIN
- INSERT INTO Almacenes(Nombre, Direccion)
- VALUES(dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Direccion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarAlmacen
- @AlmacenID int,
- @Nombre varchar(50),
- @Direccion varchar(100)
- AS
- BEGIN
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Direccion = dbo.QuitarEspacios(@Direccion)
- IF @Nombre != (SELECT Nombre FROM Almacenes WHERE AlmacenID = @AlmacenID)
- UPDATE Almacenes
- SET Nombre = @Nombre
- WHERE AlmacenID = @AlmacenID
- IF @Direccion != (SELECT Direccion FROM Almacenes WHERE AlmacenID = @AlmacenID)
- UPDATE Almacenes
- SET Direccion = @Direccion
- WHERE AlmacenID = @AlmacenID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarAlmacen
- @AlmacenID int
- AS
- BEGIN
- DELETE FROM Almacenes
- WHERE AlmacenID = @AlmacenID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarAlmacenes
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vAlmacenes
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerProveedores
- AS
- BEGIN
- SELECT * FROM vProveedores
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoProveedor
- @Nombre varchar(50),
- @Direccion varchar(100),
- @Telefono varchar(20)
- AS
- BEGIN
- INSERT INTO Proveedores(Nombre, Direccion, Telefono)
- VALUES(dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Direccion), dbo.QuitarEspacios(@Telefono))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarProveedor
- @ProveedorID int,
- @Nombre varchar(50),
- @Direccion varchar(100),
- @Telefono varchar(20)
- AS
- BEGIN
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Direccion = dbo.QuitarEspacios(@Direccion)
- SET @Telefono = dbo.QuitarEspacios(@Telefono)
- IF @Nombre != (SELECT Nombre FROM Proveedores WHERE ProveedorID = @ProveedorID)
- UPDATE Proveedores
- SET Nombre = @Nombre
- WHERE ProveedorID = @ProveedorID
- IF @Direccion != (SELECT Nombre FROM Proveedores WHERE ProveedorID = @ProveedorID)
- UPDATE Proveedores
- SET Direccion = @Direccion
- WHERE ProveedorID = @ProveedorID
- IF @Telefono != (SELECT Telefono FROM Proveedores WHERE ProveedorID = @ProveedorID)
- UPDATE Proveedores
- SET Telefono = @Telefono
- WHERE ProveedorID = @ProveedorID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarProveedor
- @ProveedorID int
- AS
- BEGIN
- DELETE FROM Proveedores
- WHERE ProveedorID = @ProveedorID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarProveedores
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vProveedores
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerCategorias
- AS
- BEGIN
- SELECT * FROM vCategorias
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaCategoria
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO Categorias(Nombre, Descripcion)
- VALUES(dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Descripcion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarCategoria
- @CategoriaID int,
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Descripcion = dbo.QuitarEspacios(@Descripcion)
- SET @DescripcionActual = (SELECT Descripcion FROM Categorias WHERE CategoriaID = @CategoriaID)
- IF @Nombre != (SELECT Nombre FROM Categorias WHERE CategoriaID = @CategoriaID)
- UPDATE Categorias
- SET Nombre = @Nombre
- WHERE CategoriaID = @CategoriaID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NULL AND @DescripcionActual IS NOT NULL OR @DescripcionActual IS NULL AND @Descripcion IS NOT NULL
- UPDATE Categorias
- SET Descripcion = @Descripcion
- WHERE CategoriaID = @CategoriaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarCategoria
- @CategoriaID int
- AS
- BEGIN
- DELETE FROM Categorias
- WHERE CategoriaID = @CategoriaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarCategorias
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vCategorias
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerProductos
- AS
- BEGIN
- SELECT * FROM vProductos
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoProducto
- @Nombre varchar(50),
- @Proveedor varchar(50),
- @Categoria varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO Productos(Nombre, ProveedorID, CategoriaID, Descripcion)
- VALUES(dbo.QuitarEspacios(@Nombre), (SELECT ProveedorID FROM Proveedores WHERE Nombre = dbo.QuitarEspacios(@Proveedor)), (SELECT CategoriaID FROM Categorias WHERE Nombre = dbo.QuitarEspacios(@Categoria)), dbo.QuitarEspacios(@Descripcion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarProducto
- @ProductoID int,
- @Nombre varchar(50),
- @Proveedor varchar(50),
- @Categoria varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Proveedor = dbo.QuitarEspacios(@Proveedor)
- SET @Categoria = dbo.QuitarEspacios(@Categoria)
- SET @Descripcion = dbo.QuitarEspacios(@Descripcion)
- SET @DescripcionActual = (SELECT Descripcion FROM Productos WHERE ProductoID = @ProductoID)
- IF @Nombre != (SELECT Nombre FROM Productos WHERE ProductoID = @ProductoID)
- UPDATE Productos
- SET Nombre = @Nombre
- WHERE ProductoID = @ProductoID
- IF @Proveedor != (SELECT Nombre FROM Proveedores WHERE ProveedorID = (SELECT ProveedorID FROM Productos WHERE ProductoID = @ProductoID))
- UPDATE Productos
- SET ProveedorID = (SELECT ProveedorID FROM Proveedores WHERE Nombre = @Proveedor)
- WHERE ProductoID = @ProductoID
- IF @Categoria != (SELECT Nombre FROM Categorias WHERE CategoriaID = (SELECT CategoriaID FROM Productos WHERE ProductoID = @ProductoID))
- UPDATE Productos
- SET CategoriaID = (SELECT CategoriaID FROM Categorias WHERE Nombre = @Categoria)
- WHERE ProductoID = @ProductoID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NULL AND @DescripcionActual IS NOT NULL OR @DescripcionActual IS NULL AND @Descripcion IS NOT NULL
- UPDATE Productos
- SET Descripcion = @Descripcion
- WHERE ProductoID = @ProductoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarProducto
- @ProductoID int
- AS
- BEGIN
- DELETE FROM Productos
- WHERE ProductoID = @ProductoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarProductos
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vProductos
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Nombre
- WHEN 3 THEN
- Categoría
- ELSE
- Proveedor
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerInventario
- AS
- BEGIN
- SELECT * FROM vInventario
- ORDER BY Almacén ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoInventario
- @AlmacenID int,
- @ProductoID int,
- @Precio decimal(9, 4),
- @Existencia int
- AS
- BEGIN
- INSERT INTO Inventario(AlmacenID, ProductoID, Precio, Existencia)
- VALUES(@AlmacenID, @ProductoID, @Precio, @Existencia)
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarInventario
- @AlmacenID int,
- @ProductoID int,
- @Precio decimal(9, 4)
- AS
- BEGIN
- IF @Precio != (SELECT Precio FROM Inventario WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID)
- UPDATE Inventario
- SET Precio = @Precio
- WHERE ProductoID = @ProductoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarInventario
- @AlmacenID int,
- @ProductoID int
- AS
- BEGIN
- DELETE FROM Inventario
- WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarInventario
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vInventario
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- Almacén
- ELSE
- Producto
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY Almacén ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerOrdenesCompras
- AS
- BEGIN
- SELECT * FROM vOrdenesCompras
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaOrdenCompra
- @Almacen varchar(50),
- @Proveedor varchar(50),
- @Producto varchar(50),
- @Costo decimal(9, 2),
- @Precio decimal(9, 2),
- @Impuesto int,
- @Solicitado int,
- @Recibido int
- AS
- BEGIN
- DECLARE @OrdenCompraID int
- DECLARE @AlmacenID int
- DECLARE @ProveedorID int
- DECLARE @ProductoID int
- DECLARE @Fecha date
- SET @AlmacenID = (SELECT AlmacenID FROM Almacenes WHERE Nombre = @Almacen)
- SET @ProveedorID = (SELECT ProveedorID FROM Proveedores WHERE Nombre = @Proveedor)
- SET @ProductoID = (SELECT ProductoID FROM Productos WHERE Nombre = @Producto)
- SET @Fecha = CONVERT(date, GETDATE())
- IF (@Costo > 0 AND @Solicitado > 0)
- IF EXISTS(SELECT 1 FROM OrdenesCompras WHERE AlmacenID = @AlmacenID AND ProveedorID = @ProveedorID AND Fecha = @Fecha)
- SET @OrdenCompraID = (SELECT OrdenCompraID FROM OrdenesCompras WHERE AlmacenID = @AlmacenID AND ProveedorID = @ProveedorID AND Fecha = @Fecha)
- ELSE
- BEGIN
- INSERT INTO OrdenesCompras
- VALUES(@AlmacenID, @ProveedorID, @Fecha)
- SET @OrdenCompraID = (SELECT OrdenCompraID FROM OrdenesCompras WHERE AlmacenID = @AlmacenID AND ProveedorID = @ProveedorID AND Fecha = @Fecha)
- END
- INSERT INTO DetalleOrdenesCompras(OrdenCompraID, Hora, ProductoID, Costo, Impuesto, Solicitado, Recibido)
- VALUES(@OrdenCompraID, CONVERT(time, GETDATE()), @ProductoID, @Costo, @Impuesto, @Solicitado, @Recibido)
- IF EXISTS(SELECT 1 FROM Inventario WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID)
- UPDATE Inventario
- SET Precio = @Precio,
- Existencia = Existencia + @Recibido
- WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID
- ELSE
- INSERT INTO Inventario(AlmacenID, ProductoID, Precio, Existencia)
- VALUES(@AlmacenID, @ProductoID, @Precio, @Recibido)
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarOrdenCompra
- @OrdenCompraID int
- AS
- BEGIN
- IF EXISTS(SELECT 1 FROM DevolucionesCompras WHERE OrdenCompraID = @OrdenCompraID)
- BEGIN
- DELETE FROM DetalleDevolucionesCompras
- WHERE DevolucionCompraID = (SELECT DevolucionCompraID FROM DevolucionesCompras WHERE OrdenCompraID = @OrdenCompraID)
- DELETE FROM DevolucionesCompras
- WHERE OrdenCompraID = @OrdenCompraID
- END
- DELETE FROM DetalleOrdenesCompras
- WHERE OrdenCompraID = @OrdenCompraID
- DELETE FROM OrdenesCompras
- WHERE OrdenCompraID = @OrdenCompraID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarOrdenesCompras
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vOrdenesCompras
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Almacén
- WHEN 3 THEN
- Proveedor
- ELSE
- Fecha
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDetalleOrdenCompra
- @OrdenCompraID int
- AS
- BEGIN
- SELECT dbo.FormatoHora(d.Hora) 'Hora',
- r.Nombre 'Producto',
- d.Costo 'Costo',
- CONVERT(varchar, d.Impuesto) + '%' 'Impuesto',
- d.Solicitado 'Solicitado',
- d.Recibido 'Recibido',
- dbo.ObtenerTotal(d.Costo * d.Recibido, d.Impuesto) 'Total'
- FROM OrdenesCompras o WITH (NOLOCK)
- INNER JOIN Almacenes a WITH (NOLOCK)
- ON o.AlmacenID = a.AlmacenID
- INNER JOIN Proveedores p WITH (NOLOCK)
- ON o.ProveedorID = p.ProveedorID
- INNER JOIN DetalleOrdenesCompras d WITH (NOLOCK)
- ON o.OrdenCompraID = d.OrdenCompraID
- INNER JOIN Productos r WITH (NOLOCK)
- ON d.ProductoID = r.ProductoID
- WHERE o.OrdenCompraID = @OrdenCompraID
- ORDER BY o.Fecha ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDevolucionesCompras
- AS
- BEGIN
- SELECT * FROM vDevolucionesCompras
- ORDER BY Fecha ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaDevolucionCompra
- @OrdenCompraID int,
- @Cantidad int
- AS
- BEGIN
- DECLARE @Fecha date
- DECLARE @Existencia int
- SET @Fecha = CONVERT(date, GETDATE())
- SET @Existencia = (SELECT Recibido FROM DetalleOrdenesCompras WHERE OrdenCompraID = @OrdenCompraID)
- IF (DATEDIFF(DAY, @Fecha, DATEADD(WEEK, 3, (SELECT Fecha FROM OrdenesCompras WHERE OrdenCompraID = @OrdenCompraID))) > 21 AND @Cantidad > 0 AND @Cantidad <= @Existencia)
- DECLARE @DevolucionCompraID int
- DECLARE @AlmacenID int
- DECLARE @ProductoID int
- SET @AlmacenID = (SELECT AlmacenID FROM OrdenesCompras WHERE OrdenCompraID = @OrdenCompraID)
- SET @ProductoID = (SELECT ProductoID FROM DetalleOrdenesCompras WHERE OrdenCompraID = @OrdenCompraID)
- IF EXISTS(SELECT 1 FROM DevolucionesCompras WHERE OrdenCompraID = @OrdenCompraID AND Fecha = @Fecha)
- SET @DevolucionCompraID = (SELECT DevolucionCompraID FROM DevolucionesCompras WHERE OrdenCompraID = @OrdenCompraID)
- ELSE
- BEGIN
- INSERT INTO DevolucionesCompras(OrdenCompraID, Fecha)
- VALUES(@OrdenCompraID, @Fecha)
- SET @DevolucionCompraID = (SELECT MAX(DevolucionCompraID) FROM DevolucionesCompras)
- END
- INSERT INTO DetalleDevolucionesCompras(DevolucionCompraID, Hora, Cantidad)
- VALUES(@DevolucionCompraID, CONVERT(time, GETDATE()), @Cantidad)
- UPDATE Inventario
- SET Existencia = Existencia - @Cantidad
- WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarDevolucionCompra
- @OrdenCompraID int
- AS
- BEGIN
- DELETE FROM DetalleDevolucionesCompras
- WHERE DevolucionCompraID = (SELECT DevolucionCompraID FROM DevolucionesCompras WHERE OrdenCompraID = @OrdenCompraID)
- DELETE FROM DevolucionesCompras
- WHERE OrdenCompraID = @OrdenCompraID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarDevolucioneCompras
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vDevolucionesCompras
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- [Orden de compra]
- ELSE
- Fecha
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY Fecha ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDetalleDevolucionCompra
- @DevolucionCompraID int
- AS
- BEGIN
- SET NOCOUNT ON
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerClientes
- AS
- BEGIN
- SELECT * FROM vClientes
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevoCliente
- @Nombre varchar(50),
- @Apellido varchar(50),
- @Direccion varchar(100),
- @Telefono varchar(20),
- @CorreoElectronico varchar(50)
- AS
- BEGIN
- INSERT INTO Clientes(Nombre, Apellido, Direccion, Telefono, CorreoElectronico)
- VALUES(dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Apellido), dbo.QuitarEspacios(@Direccion),
- dbo.QuitarEspacios(@Telefono), dbo.QuitarEspacios(@CorreoElectronico))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarCliente
- @ClienteID int,
- @Nombre varchar(50),
- @Apellido varchar(50),
- @Direccion varchar(100),
- @Telefono varchar(20),
- @CorreoElectronico varchar(50)
- AS
- BEGIN
- DECLARE @CorreoElectronicoActual varchar(50)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @Apellido = dbo.QuitarEspacios(@Apellido)
- SET @Direccion = dbo.QuitarEspacios(@Direccion)
- SET @Telefono = dbo.QuitarEspacios(@Telefono)
- SET @CorreoElectronico = dbo.QuitarEspacios(@CorreoElectronico)
- SET @CorreoElectronicoActual = (SELECT CorreoElectronico FROM Clientes WHERE ClienteID = @ClienteID)
- IF @Nombre != (SELECT Nombre FROM Clientes WHERE ClienteID = @ClienteID)
- UPDATE Clientes
- SET Nombre = @Nombre
- WHERE ClienteID = @ClienteID
- IF @Apellido != (SELECT Apellido FROM Clientes WHERE ClienteID = @ClienteID)
- UPDATE Clientes
- SET Apellido = @Apellido
- WHERE ClienteID = @ClienteID
- IF @Direccion != (SELECT Direccion FROM Clientes WHERE ClienteID = @ClienteID)
- UPDATE Clientes
- SET Direccion = @Direccion
- WHERE ClienteID = @ClienteID
- IF @Telefono != (SELECT Telefono FROM Clientes WHERE ClienteID = @ClienteID)
- UPDATE Clientes
- SET Telefono = @Telefono
- WHERE ClienteID = @ClienteID
- IF @CorreoElectronico != @CorreoElectronicoActual OR @CorreoElectronico IS NULL AND @CorreoElectronicoActual IS NOT NULL OR @CorreoElectronicoActual IS NULL AND @CorreoElectronico IS NOT NULL
- UPDATE Clientes
- SET CorreoElectronico = @CorreoElectronico
- WHERE ClienteID = @ClienteID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarCliente
- @ClienteID int
- AS
- BEGIN
- DELETE FROM Clientes
- WHERE ClienteID = @ClienteID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarClientes
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vClientes
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre + ' ' + Apellido
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerFormasPago
- AS
- BEGIN
- SELECT * FROM vFormasPago
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaFormaPago
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- INSERT INTO FormasPago (Nombre, Descripcion)
- VALUES (dbo.QuitarEspacios(@Nombre), dbo.QuitarEspacios(@Descripcion))
- END
- -- ================================================
- GO
- CREATE PROCEDURE ModificarFormaPago
- @FormaPagoID int,
- @Nombre varchar(50),
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @DescripcionActual varchar(100)
- SET @Nombre = dbo.QuitarEspacios(@Nombre)
- SET @DescripcionActual = (SELECT Descripcion FROM FormasPago WHERE FormaPagoID = @FormaPagoID)
- IF @Nombre != (SELECT Nombre FROM FormasPago WHERE FormaPagoID = @FormaPagoID)
- UPDATE FormasPago
- SET Nombre = @Nombre
- WHERE FormaPagoID = @FormaPagoID
- IF @Descripcion != @DescripcionActual OR @Descripcion IS NULL AND @DescripcionActual IS NOT NULL OR @DescripcionActual IS NULL AND @Descripcion IS NOT NULL
- UPDATE FormasPago
- SET Descripcion = @Descripcion
- WHERE FormaPagoID = @FormaPagoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarFormaPago
- @FormaPagoID int
- AS
- BEGIN
- DELETE FROM FormasPago
- WHERE FormaPagoID = @FormaPagoID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarFormasPago
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vFormasPago
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- ELSE
- Nombre
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerFacturas
- AS
- BEGIN
- SELECT * FROM vFacturas
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaFactura
- @Caja varchar(50),
- @Cliente varchar(50),
- @Almacen varchar(50),
- @Producto varchar(50),
- @Cantidad int,
- @FormaPago varchar(50)
- AS
- BEGIN
- DECLARE @CajaID int
- DECLARE @ClienteID int
- DECLARE @AlmacenID int
- DECLARE @Existencia int
- DECLARE @ProductoID int
- SET @CajaID = (SELECT CajaID FROM Cajas WHERE Nombre = @Caja)
- SET @ClienteID = (SELECT ClienteID FROM Clientes WHERE Nombre = @Cliente)
- SET @AlmacenID = (SELECT AlmacenID FROM Almacenes WHERE Nombre = @Almacen)
- SET @ProductoID = (SELECT ProductoID FROM Productos WHERE Nombre = @Producto)
- SET @Existencia = (SELECT Existencia FROM Inventario WHERE AlmacenID = @AlmacenID AND ProductoID = @ProductoID)
- IF (@Existencia > 0 AND @Cantidad <= @Existencia)
- BEGIN
- DECLARE @Fecha date
- DECLARE @FacturaID int
- SET @Fecha = CONVERT(date, GETDATE())
- UPDATE Inventario
- SET Existencia = @Existencia - @Cantidad
- WHERE ProductoID = @ProductoID
- IF EXISTS(SELECT 1 FROM Facturas WHERE CajaID = @CajaID AND ClienteID = @ClienteID AND Fecha = @Fecha)
- SET @FacturaID = (SELECT FacturaID FROM Facturas WHERE CajaID = @CajaID AND ClienteID = @ClienteID AND Fecha = @Fecha)
- ELSE
- BEGIN
- INSERT INTO Facturas(CajaID, ClienteID, Fecha)
- VALUES(@CajaID, @ClienteID, @Fecha)
- SET @FacturaID = (SELECT MAX(FacturaID) FROM Facturas)
- END
- INSERT INTO DetalleFacturas(FacturaID, Hora, AlmacenID, ProductoID, Precio, Cantidad, FormaPagoID)
- VALUES(@FacturaID, CONVERT(time, GETDATE()), @AlmacenID, @ProductoID, (SELECT Precio FROM Inventario WHERE AlmacenID = @AlmacenID AND ProductoID = (SELECT ProductoID FROM Productos WHERE Nombre = @Producto)),
- @Cantidad, (SELECT FormaPagoID FROM FormasPago WHERE Nombre = @FormaPago))
- END
- ELSE
- RETURN @@ERROR
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarFactura
- @FacturaID int
- AS
- BEGIN
- IF EXISTS(SELECT 1 FROM DevolucionesVentas WHERE FacturaID = @FacturaID)
- BEGIN
- DELETE FROM DetalleDevolucionesVentas
- WHERE DevolucionVentaID = (SELECT DevolucionVentaID FROM DevolucionesVentas WHERE FacturaID = @FacturaID)
- DELETE FROM DevolucionesVentas
- WHERE FacturaID = @FacturaID
- END
- IF EXISTS(SELECT 1 FROM DetalleFacturas WHERE FacturaID = @FacturaID)
- DELETE FROM DetalleFacturas
- WHERE FacturaID = @FacturaID
- DELETE FROM DetalleFacturas
- WHERE FacturaID = @FacturaID
- DELETE FROM Facturas
- WHERE FacturaID = @FacturaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarFacturas
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vFacturas
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Caja
- WHEN 3 THEN
- Cliente
- ELSE
- Fecha
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDetalleFactura
- @FacturaID int
- AS
- BEGIN
- SELECT dbo.FormatoHora(d.Hora) 'Hora',
- a.Nombre 'Almacen',
- p.Nombre 'Producto',
- d.Precio 'Precio',
- d.Cantidad 'Cantidad',
- f.Nombre 'Forma de pago'
- FROM DetalleFacturas d WITH (NOLOCK)
- INNER JOIN Almacenes a WITH (NOLOCK)
- ON a.AlmacenID = d.AlmacenID
- INNER JOIN Productos p WITH (NOLOCK)
- ON p.ProductoID = d.ProductoID
- INNER JOIN FormasPago f WITH (NOLOCK)
- ON f.FormaPagoID = d.FormaPagoID
- WHERE FacturaID = @FacturaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDevolucionesVentas
- AS
- BEGIN
- SELECT * FROM vDevolucionesVentas
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaDevolucionVenta
- @FacturaID int,
- @Cantidad int,
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @Fecha date
- DECLARE @Existencia int
- SET @Fecha = CONVERT(date, GETDATE())
- SET @Existencia = (SELECT Cantidad FROM DetalleFacturas WHERE FacturaID = @FacturaID)
- IF (DATEDIFF(DAY, @Fecha, DATEADD(WEEK, 3, (SELECT Fecha FROM Facturas WHERE FacturaID = @FacturaID))) > 21 AND @Cantidad > 0 AND @Cantidad <= @Existencia)
- BEGIN
- DECLARE @DevolucionVentaID int
- IF EXISTS(SELECT 1 FROM DevolucionesVentas WHERE FacturaID = @FacturaID AND Fecha = @Fecha)
- SET @DevolucionVentaID = (SELECT DevolucionVentaID FROM DevolucionesVentas WHERE FacturaID = @FacturaID)
- ELSE
- BEGIN
- INSERT INTO DevolucionesVentas(FacturaID, Fecha)
- VALUES(@FacturaID, @Fecha)
- SET @DevolucionVentaID = (SELECT MAX(DevolucionVentaID) FROM DevolucionesVentas)
- END
- INSERT INTO DetalleDevolucionesVentas(DevolucionVentaID, Hora, Cantidad, Descripcion)
- VALUES(@DevolucionVentaID, CONVERT(time, GETDATE()), @Cantidad, dbo.QuitarEspacios(@Descripcion))
- UPDATE Inventario
- SET Existencia = Existencia + @Cantidad
- WHERE AlmacenID = (SELECT AlmacenID FROM DetalleFacturas WHERE FacturaID = @FacturaID) AND
- ProductoID = (SELECT ProductoID FROM DetalleFacturas WHERE FacturaID = @FacturaID)
- END
- ELSE
- RETURN @@ERROR
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarDevolucionVenta
- @FacturaID int
- AS
- BEGIN
- DELETE FROM DetalleDevolucionesVentas
- WHERE DevolucionVentaID = (SELECT DevolucionVentaID FROM DevolucionesVentas WHERE FacturaID = @FacturaID)
- DELETE FROM DevolucionesVentas
- WHERE FacturaID = @FacturaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarDevolucionesVentas
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vDevolucionesVentas
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- Factura
- ELSE
- Fecha
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDetalleDevolucionVenta
- @DevolucionVentaID int
- AS
- BEGIN
- SELECT v.DevolucionVentaID 'ID',
- v.FacturaID 'Factura',
- dbo.FormatoFecha(v.Fecha) 'Fecha',
- dbo.FormatoHora(d.Hora) 'Hora',
- p.Nombre 'Producto',
- f.Precio 'Precio',
- d.Cantidad 'Cantidad',
- d.Descripcion 'Descripción',
- dbo.ObtenerTotal(f.Precio * d.Cantidad,
- (SELECT Impuesto FROM DetalleOrdenesCompras
- WHERE ProductoID = p.ProductoID)) 'Total'
- FROM DevolucionesVentas v WITH (NOLOCK)
- INNER JOIN DetalleDevolucionesVentas d WITH (NOLOCK)
- ON v.DevolucionVentaID = d.DevolucionVentaID
- INNER JOIN DetalleFacturas f WITH (NOLOCK)
- ON v.FacturaID = f.FacturaID
- INNER JOIN Productos p WITH (NOLOCK)
- ON f.ProductoID = p.ProductoID
- WHERE v.DevolucionVentaID = @DevolucionVentaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerTransferencias
- AS
- BEGIN
- SELECT * FROM vTransferencias
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE NuevaTransferencia
- @Almacen_Origen varchar(50),
- @Almacen_Destion varchar(50),
- @Producto varchar(50),
- @Solicitado int,
- @Recibido int,
- @Descripcion varchar(100)
- AS
- BEGIN
- DECLARE @AlmacenID_O int
- DECLARE @AlmacenID_D int
- DECLARE @ProductoID int
- SET @AlmacenID_O = (SELECT AlmacenID FROM Almacenes WHERE Nombre = @Almacen_Origen)
- SET @AlmacenID_D = (SELECT AlmacenID FROM Almacenes WHERE Nombre = @Almacen_Destion)
- SET @ProductoID = (SELECT ProductoID FROM Productos WHERE Nombre = @Producto)
- IF (@AlmacenID_O != @AlmacenID_D AND @Solicitado > 0 AND @Solicitado <= (SELECT Existencia FROM Inventario WHERE AlmacenID = @AlmacenID_O AND ProductoID = @ProductoID))
- BEGIN
- UPDATE Inventario
- SET Existencia = Existencia - @Recibido
- WHERE AlmacenID = @AlmacenID_O AND ProductoID = @ProductoID
- IF EXISTS(SELECT 1 FROM Inventario WHERE AlmacenID = @AlmacenID_D AND ProductoID = @ProductoID)
- UPDATE Inventario
- SET Existencia = Existencia + @Recibido
- WHERE AlmacenID = @AlmacenID_D AND ProductoID = @ProductoID
- ELSE
- INSERT INTO Inventario(AlmacenID, ProductoID, Precio, Existencia)
- VALUES(@AlmacenID_D, @ProductoID, (SELECT Precio FROM Inventario WHERE ProductoID = @ProductoID), @Recibido)
- DECLARE @Fecha date
- DECLARE @TransferenciaID int
- SET @Fecha = CONVERT(date, GETDATE())
- IF EXISTS(SELECT 1 FROM Transferencias WHERE AlmacenID_Origen = @AlmacenID_O AND AlmacenID_Destino = @AlmacenID_D AND Fecha = @Fecha)
- SET @TransferenciaID = (SELECT TransferenciaID FROM Transferencias WHERE AlmacenID_Origen = @AlmacenID_O AND AlmacenID_Destino = @AlmacenID_D AND Fecha = @Fecha)
- ELSE
- BEGIN
- INSERT INTO Transferencias(AlmacenID_Origen, AlmacenID_Destino, Fecha)
- VALUES(@AlmacenID_O, @AlmacenID_D, @Fecha)
- SET @TransferenciaID = (SELECT MAX(TransferenciaID) FROM Transferencias)
- END
- INSERT INTO DetalleTransferencias(TransferenciaID, Hora, ProductoID, Solicitado, Recibido, Descripcion)
- VALUES(@TransferenciaID, CONVERT(time, GETDATE()), @ProductoID, @Solicitado, @Recibido, dbo.QuitarEspacios(@Descripcion))
- END
- ELSE
- RETURN @@ERROR
- END
- -- ================================================
- GO
- CREATE PROCEDURE EliminarTransferencia
- @TransferenciaID int
- AS
- BEGIN
- DELETE FROM DetalleTransferencias
- WHERE TransferenciaID = @TransferenciaID
- DELETE FROM Transferencias
- WHERE TransferenciaID = @TransferenciaID
- END
- -- ================================================
- GO
- CREATE PROCEDURE BuscarTransferencias
- @Buscar int,
- @Consulta varchar(50)
- AS
- BEGIN
- SELECT * FROM vTransferencias
- WHERE
- CASE @Buscar
- WHEN 1 THEN
- ID
- WHEN 2 THEN
- [Almacén de origen]
- WHEN 3 THEN
- [Almacén de destino]
- ELSE
- Fecha
- END
- LIKE '%' + @Consulta + '%'
- ORDER BY ID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE ObtenerDetalleTransferencia
- @TransferenciaID int
- AS
- BEGIN
- SELECT t.TransferenciaID 'ID',
- o.Nombre 'Almacén de origen',
- s.Nombre 'Almacén de destino',
- dbo.FormatoFecha(t.Fecha) 'Fecha',
- dbo.FormatoHora(d.Hora) 'Hora',
- p.Nombre 'Producto',
- d.Solicitado 'Solicitado',
- d.Recibido 'Recibido',
- d.Descripcion 'Descripción'
- FROM Transferencias t WITH (NOLOCK)
- INNER JOIN DetalleTransferencias d WITH (NOLOCK)
- ON t.TransferenciaID = d.TransferenciaID
- INNER JOIN Almacenes o WITH (NOLOCK)
- ON t.AlmacenID_Origen = o.AlmacenID
- INNER JOIN Almacenes s WITH (NOLOCK)
- ON t.AlmacenID_Destino = s.AlmacenID
- INNER JOIN Productos p WITH (NOLOCK)
- ON d.ProductoID = p.ProductoID
- WHERE t.TransferenciaID = @TransferenciaID
- ORDER BY t.TransferenciaID ASC
- END
- -- ================================================
- GO
- CREATE PROCEDURE Autenticacion
- @Nombre varchar(50),
- @Contrasena varchar(25)
- WITH ENCRYPTION
- AS
- BEGIN
- IF EXISTS(SELECT 1 FROM Usuarios WHERE Nombre = @Nombre)
- BEGIN
- IF PWDCOMPARE(@Contrasena, (SELECT Contrasena FROM Usuarios WHERE Nombre = @Nombre)) = 1
- SELECT 1
- ELSE
- SELECT @@ERROR
- END
- ELSE
- SELECT @@ERROR
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement