dbo.LN_indicadores_

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

16
Name Data Type Length Description
@accion varchar 20
@p_indicador int 4
@p_producto int 4
@p_nombre_indicador varchar 100
@p_etiqueta varchar 100
@p_clave_indicador varchar 50
@p_valoracion varchar 1
@p_tipo_dato varchar 1
@p_rango_inferior float 8
@p_rango_superior float 8
@p_intervalo float 8
@p_colores varchar 500
@p_opciones varchar 500
@p_tipo_control varchar 10
@p_visible bit 1
@p_user_id int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>

/**

exec ln_indicadores_ 'search',null,4,null,null,null,null,null,null,null,null,null,null,null,null,null

**/


-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_indicadores_ 

 -- Add the parameters for the stored procedure here

 @accion        varchar(20),

 @p_indicador      int,
 @p_producto       int,
 @p_nombre_indicador     varchar(100),
 @p_etiqueta       varchar(100),
 @p_clave_indicador     varchar(50),
 @p_valoracion      varchar(1), /* F: Fidelitas C: Cliente A: Automatico */

 @p_tipo_dato      varchar(1), /* I: numérico entero, F: Float, S: string, B: boolean, M: texto descriptivo */
 @p_rango_inferior     float,
 @p_rango_superior     float,
 @p_intervalo      float,

 @p_colores       varchar(500),
 @p_opciones       varchar(500),
 @p_tipo_control      varchar(10),

 @p_visible       bit,
 @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

 DECLARE @ord int
 DECLARE @ind int
 DECLARE @prd int
 DECLARE @cnt int

 
 IF (@accion = 'INSERT') BEGIN

  if (@p_producto IS NOT NULL) begin

   select @ord = isnull(max(orden), 0)+1 from LN_indicadores
   where producto = @p_producto

   INSERT INTO LN_indicadores
    (producto, nombre_indicador, etiqueta, clave_indicador, valoracion, tipo_dato,
    rango_inferior, rango_superior, intervalo, colores, opciones, tipo_control,
    orden, visible, created_by, created)
   VALUES
    (@p_producto, @p_nombre_indicador, @p_etiqueta, @p_clave_indicador, @p_valoracion, @p_tipo_dato,
    @p_rango_inferior, @p_rango_superior, @p_intervalo, @p_colores, @p_opciones, @p_tipo_control,
    @ord, @p_visible, @p_user_id, GETDATE())

   SET @ind = SCOPE_IDENTITY()
   
   SELECT @ind AS indicador

  end 

 END ELSE

  IF (@accion = 'UPDATE') BEGIN

   if (@p_indicador IS NOT NULL) begin

    UPDATE LN_indicadores SET
    producto = @p_producto,
    nombre_indicador = @p_nombre_indicador,
    etiqueta = @p_etiqueta,
    clave_indicador = @p_clave_indicador,
    valoracion = @p_valoracion,
    tipo_dato = @p_tipo_dato,
    rango_inferior = @p_rango_inferior, 
    rango_superior = @p_rango_superior,
    intervalo = @p_intervalo,
    colores = @p_colores,
    opciones = @p_opciones,
    tipo_control = @p_tipo_control,
    visible = @p_visible,
    modified = GETDATE(),
    modified_by = @p_user_id
    WHERE indicador = @p_indicador

   end


  END ELSE

   IF (@accion = 'DELETE') BEGIN

    if (@p_indicador is not null) begin

     select @prd = producto, @ord = orden
     from LN_indicadores
     where indicador = @p_indicador
      
     if (@prd is not null AND @ord is not null) begin

      delete from LN_indicadores where indicador = @p_indicador

      update LN_indicadores set orden = orden - 1
       where producto = @prd
       and orden > @ord

     end

    end


   END ELSE

    IF (@accion = 'UP') BEGIN


     if (@p_indicador is not null) begin

      select @prd = producto, @ord = orden
      from LN_indicadores
      where indicador = @p_indicador
      
      if (@prd is not null AND @ord > 1) begin

       select @ind = indicador from LN_indicadores where producto = @prd and orden = @ord-1

       UPDATE LN_indicadores SET orden = @ord WHERE indicador = @ind
       UPDATE LN_indicadores SET orden = @ord-1 WHERE indicador = @p_indicador

      end

     end

    END ELSE

     IF (@accion = 'DOWN') BEGIN


      if (@p_indicador is not null) begin

       select @prd = producto, @ord = orden
       from LN_indicadores
       where indicador = @p_indicador

       if (@prd is not null and @ord is not null) begin

        select @cnt = COUNT(*) from LN_indicadores where producto = @prd

        if (@cnt > @ord) begin

         select @ind = indicador from LN_indicadores where producto = @prd and orden = @ord+1

         update LN_indicadores set orden = @ord where indicador = @ind
         update LN_indicadores set orden = orden+1 where indicador = @p_indicador

        end

       end


      end



     END ELSE

      IF (@accion = 'SELECT') BEGIN

       SELECT LN_indicadores.indicador, LN_indicadores.producto, LN_indicadores.nombre_indicador, LN_indicadores.etiqueta, 
       LN_indicadores.clave_indicador, LN_indicadores.valoracion, LN_indicadores.tipo_dato, 
       CASE WHEN LN_indicadores.tipo_dato = 'I' THEN 'Entero'
        WHEN LN_indicadores.tipo_dato = 'F' THEN 'Decimal'
        WHEN LN_indicadores.tipo_dato = 'S' THEN 'Texto'
        WHEN LN_indicadores.tipo_dato = 'M' THEN 'Texto descriptivo'
        WHEN LN_indicadores.tipo_dato = 'D' THEN 'Fecha'
        WHEN LN_indicadores.tipo_dato = 'B' THEN 'SI/NO' END AS nombre_tipo_dato,
       LN_indicadores.rango_inferior, 
       LN_indicadores.rango_superior, LN_indicadores.intervalo, LN_indicadores.colores, LN_indicadores.opciones,
       LN_indicadores.tipo_control, LN_indicadores.visible, LN_indicadores.created_by, LN_indicadores.modified_by, 
       users.first_name + ' ' + users.last_name as created_by_user,
       users2.first_name + ' ' + users2.last_name as modified_by_user,
       CONVERT(VARCHAR, LN_indicadores.created,103) as created,
       CONVERT(VARCHAR, LN_indicadores.modified,103) as modified, LN_indicadores.orden,
       LN_productos.nombre_producto, LN_productos.country_code, country.country_name
       FROM LN_indicadores INNER JOIN LN_productos ON LN_indicadores.producto = LN_productos.producto
       LEFT OUTER JOIN country ON LN_productos.country_code = country.country_code
       LEFT OUTER JOIN users ON LN_indicadores.created_by = users.user_id
       LEFT OUTER JOIN users users2 ON LN_indicadores.modified_by = users2.user_id
       WHERE LN_indicadores.indicador = @p_indicador

      END ELSE BEGIN

       /**** Search ****/

       if (@p_producto is not null)

        SELECT LN_indicadores.indicador, LN_indicadores.producto, LN_indicadores.nombre_indicador, LN_indicadores.etiqueta, 
        LN_indicadores.clave_indicador, LN_indicadores.valoracion, LN_indicadores.tipo_dato, 
        CASE WHEN LN_indicadores.tipo_dato = 'I' THEN 'Entero'
         WHEN LN_indicadores.tipo_dato = 'F' THEN 'Decimal'
         WHEN LN_indicadores.tipo_dato = 'S' THEN 'Texto'
         WHEN LN_indicadores.tipo_dato = 'M' THEN 'Texto descriptivo'
         WHEN LN_indicadores.tipo_dato = 'D' THEN 'Fecha'
         WHEN LN_indicadores.tipo_dato = 'B' THEN 'SI/NO' END AS nombre_tipo_dato,         
        LN_indicadores.rango_inferior, 
        LN_indicadores.rango_superior, LN_indicadores.intervalo, LN_indicadores.colores, LN_indicadores.opciones,
        LN_indicadores.tipo_control, LN_indicadores.visible, LN_indicadores.created_by, LN_indicadores.modified_by, 
        users.first_name + ' ' + users.last_name as created_by_user,
        users2.first_name + ' ' + users2.last_name as modified_by_user,
        CONVERT(VARCHAR, LN_indicadores.created,103) as created,
        CONVERT(VARCHAR, LN_indicadores.modified,103) as modified, LN_indicadores.orden,
        LN_productos.nombre_producto, LN_productos.country_code, country.country_name
        FROM LN_indicadores INNER JOIN LN_productos ON LN_indicadores.producto = LN_productos.producto
        LEFT OUTER JOIN country ON LN_productos.country_code = country.country_code
        LEFT OUTER JOIN users ON LN_indicadores.created_by = users.user_id
        LEFT OUTER JOIN users users2 ON LN_indicadores.modified_by = users2.user_id
        WHERE LN_indicadores.producto = @p_producto
        ORDER BY country.country_name, LN_productos.nombre_producto, LN_indicadores.orden

       else

        SELECT LN_indicadores.indicador, LN_indicadores.producto, LN_indicadores.nombre_indicador, LN_indicadores.etiqueta, 
        LN_indicadores.clave_indicador, LN_indicadores.valoracion, LN_indicadores.tipo_dato, 
        CASE WHEN LN_indicadores.tipo_dato = 'I' THEN 'Entero'
         WHEN LN_indicadores.tipo_dato = 'F' THEN 'Decimal'
         WHEN LN_indicadores.tipo_dato = 'S' THEN 'Texto'
         WHEN LN_indicadores.tipo_dato = 'M' THEN 'Texto descriptivo'
         WHEN LN_indicadores.tipo_dato = 'D' THEN 'Fecha'
         WHEN LN_indicadores.tipo_dato = 'B' THEN 'SI/NO' END AS nombre_tipo_dato,     
        LN_indicadores.rango_inferior, 
        LN_indicadores.rango_superior, LN_indicadores.intervalo, LN_indicadores.colores, LN_indicadores.opciones,
        LN_indicadores.tipo_control, LN_indicadores.visible, LN_indicadores.created_by, LN_indicadores.modified_by, 
        users.first_name + ' ' + users.last_name as created_by_user,
        users2.first_name + ' ' + users2.last_name as modified_by_user,
        CONVERT(VARCHAR, LN_indicadores.created,103) as created,
        CONVERT(VARCHAR, LN_indicadores.modified,103) as modified, LN_indicadores.orden,
        LN_productos.nombre_producto, LN_productos.country_code, country.country_name
        FROM LN_indicadores INNER JOIN LN_productos ON LN_indicadores.producto = LN_productos.producto
        LEFT OUTER JOIN country ON LN_productos.country_code = country.country_code
        LEFT OUTER JOIN users ON LN_indicadores.created_by = users.user_id
        LEFT OUTER JOIN users users2 ON LN_indicadores.modified_by = users2.user_id
        ORDER BY country.country_name, LN_productos.nombre_producto, LN_indicadores.orden



      END







END

GO

Used By

No items found