dbo.LN_familia_productos_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

5
Name Data Type Length Description
@action varchar 10
@p_familia int 4
@p_producto int 4
@p_activo tinyint 1
@p_user_id int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_familia_productos_
 -- Add the parameters for the stored procedure here
 @action         varchar(10),
 @p_familia        int,
 @p_producto        int,
 @p_activo        tinyint,
 @p_user_id        int

 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 IF (@action = 'INSERT') BEGIN

  IF NOT EXISTS (SELECT familia,producto FROM LN_familia_productos
      WHERE familia = @p_familia AND producto = @p_producto) BEGIN

   insert into LN_familia_productos 
   (familia, producto, activo, created_by)
   values
   (@p_familia, @p_producto, @p_activo, @p_user_id)

  END

 END ELSE

  IF (@action = 'UPDATE') BEGIN

   UPDATE LN_familia_productos set
   activo = @p_activo,
   modified = getdate(),
   modified_by = @p_user_id
   where familia = @p_familia 
   and producto = @p_producto


  END ELSE

   IF (@action = 'DELETE') BEGIN

    delete from LN_familia_productos where familia = @p_familia AND producto = @p_producto

   END ELSE

    IF (@p_familia IS NULL and @p_producto IS NULL) BEGIN

     select LN_familia_productos.familia, LN_familia_productos.producto, 
     LN_familia_productos.activo, LN_familia_productos.created_by, LN_familia_productos.modified_by,
     CONVERT(VARCHAR(19), LN_familia_productos.created, 121) as created,
     CONVERT(VARCHAR(19), LN_familia_productos.modified, 121) as modified,
     users1.first_name + ' ' + users1.last_name AS created_by_user,
     users2.first_name + ' ' + users2.last_name AS modified_by_user,
     clientes.nombre_cliente, 
     LN_productos.nombre_producto, country.country_name, LN_familias.nombre_familia
     from LN_familia_productos
     inner join LN_familias on LN_familia_productos.familia = LN_familias.familia
     inner join clientes on LN_familias.cliente = clientes.cliente
     inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
     left outer join country on LN_productos.country_code = country.country_code
     left outer join users users1 on LN_familia_productos.created_by = users1.user_id
     left outer join users users2 on LN_familia_productos.modified_by = users2.user_id
     order by clientes.nombre_cliente, country.country_name, LN_familias.nombre_familia, LN_productos.nombre_producto

    end else

     IF (@p_familia IS NULL and @p_producto IS NOT NULL) BEGIN

      select LN_familia_productos.familia, LN_familia_productos.producto, 
      LN_familia_productos.activo, LN_familia_productos.created_by, LN_familia_productos.modified_by,
      CONVERT(VARCHAR(19), LN_familia_productos.created, 121) as created,
      CONVERT(VARCHAR(19), LN_familia_productos.modified, 121) as modified,
      users1.first_name + ' ' + users1.last_name AS created_by_user,
      users2.first_name + ' ' + users2.last_name AS modified_by_user,
      clientes.nombre_cliente, 
      LN_productos.nombre_producto, country.country_name, LN_familias.nombre_familia
      from LN_familia_productos
      inner join LN_familias on LN_familia_productos.familia = LN_familias.familia
      inner join clientes on LN_familias.cliente = clientes.cliente
      inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
      left outer join country on LN_productos.country_code = country.country_code
      left outer join users users1 on LN_familia_productos.created_by = users1.user_id
      left outer join users users2 on LN_familia_productos.modified_by = users2.user_id
      where LN_familia_productos.producto = @p_producto
      order by clientes.nombre_cliente, country.country_name, LN_familias.nombre_familia, LN_productos.nombre_producto

     end else

      if (@p_familia IS NOT NULL and @p_producto IS NULL) BEGIN

       select LN_familia_productos.familia, LN_familia_productos.producto, 
       LN_familia_productos.activo, LN_familia_productos.created_by, LN_familia_productos.modified_by,
       CONVERT(VARCHAR(19), LN_familia_productos.created, 121) as created,
       CONVERT(VARCHAR(19), LN_familia_productos.modified, 121) as modified,
       users1.first_name + ' ' + users1.last_name AS created_by_user,
       users2.first_name + ' ' + users2.last_name AS modified_by_user,
       clientes.nombre_cliente, 
       LN_productos.nombre_producto, country.country_name, LN_familias.nombre_familia
       from LN_familia_productos
       inner join LN_familias on LN_familia_productos.familia = LN_familias.familia
       inner join clientes on LN_familias.cliente = clientes.cliente
       inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
       left outer join country on LN_productos.country_code = country.country_code
       left outer join users users1 on LN_familia_productos.created_by = users1.user_id
       left outer join users users2 on LN_familia_productos.modified_by = users2.user_id
       where LN_familia_productos.familia = @p_familia
       order by clientes.nombre_cliente, country.country_name, LN_familias.nombre_familia, LN_productos.nombre_producto

      END ELSE

       select LN_familia_productos.familia, LN_familia_productos.producto, 
       LN_familia_productos.activo, LN_familia_productos.created_by, LN_familia_productos.modified_by,
       CONVERT(VARCHAR(19), LN_familia_productos.created, 121) as created,
       CONVERT(VARCHAR(19), LN_familia_productos.modified, 121) as modified,
       users1.first_name + ' ' + users1.last_name AS created_by_user,
       users2.first_name + ' ' + users2.last_name AS modified_by_user,
       clientes.nombre_cliente, 
       LN_productos.nombre_producto, country.country_name, LN_familias.nombre_familia
       from LN_familia_productos
       inner join LN_familias on LN_familia_productos.familia = LN_familias.familia
       inner join clientes on LN_familias.cliente = clientes.cliente
       inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
       left outer join country on LN_productos.country_code = country.country_code
       left outer join users users1 on LN_familia_productos.created_by = users1.user_id
       left outer join users users2 on LN_familia_productos.modified_by = users2.user_id
       where LN_familia_productos.familia = @p_familia
       and LN_familia_productos.producto = @p_producto
       order by clientes.nombre_cliente, country.country_name, LN_familias.nombre_familia, LN_productos.nombre_producto

      
END

GO

Used By

No items found