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
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
Depends On
4Used By
No items found