Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
10| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 50 | |
| @set_doc | int | 4 | |
| @tipo_doc | int | 4 | |
| @user_id | int | 4 | |
| @tolerancia | tinyint | 1 | |
| @activo | bit | 1 | |
| @peso_score | decimal | 5 | |
| @killer | bit | 1 | |
| @verif_back | bit | 1 | |
| @verif_cliente | bit | 1 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE OR ALTER PROCEDURE dbo.LN_set_tipo_doc_V2
@accion VARCHAR(50),
@set_doc INT,
@tipo_doc INT,
@user_id INT,
@tolerancia TINYINT=0,
@activo BIT=1,
@peso_score DECIMAL(5,2) = NULL,
@killer BIT = 0,
@verif_back BIT = 0,
@verif_cliente BIT = 0
-- add more stored procedure parameters here
AS
BEGIN
SET NOCOUNT OFF;
-- variables declarados
DECLARE @p_tipo_doc INT;
DECLARE @orden TINYINT;
-- body of the stored procedure
IF ( @accion = 'SEARCH' )
-- accion que devuelve los tipos de documentos de un set de documentos
-- parametros usados: (set_doc)
BEGIN
SELECT LN_set_tipo_doc.* , LN_tipos_doc.nombre_tipo_doc,LN_tipos_doc.consentimiento,LN_tipos_doc.es_dni
FROM LN_set_tipo_doc
INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc
ORDER BY LN_set_tipo_doc.orden ASC;
RETURN;
END
IF ( @accion = 'SELECT' )
-- accion que selecciona un tipo de documento especifico de un set de documentos
-- parametros usados: (set_doc,tipo_doc)
BEGIN
SELECT LN_set_tipo_doc.* , LN_tipos_doc.nombre_tipo_doc,LN_tipos_doc.consentimiento,LN_tipos_doc.es_dni
FROM LN_set_tipo_doc
INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc AND LN_set_tipo_doc.tipo_doc=@tipo_doc;
RETURN;
END
IF ( @accion = 'INSERT' )
-- accion que inserta un tipo de documento en un set de documentos
-- parametros usados: Todos
BEGIN
SELECT @orden = MAX(LN_set_tipo_doc.orden)
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc
IF ( @orden IS NULL )
SET @orden = 0
--
INSERT INTO LN_set_tipo_doc (
set_doc,
tipo_doc,
tolerancia_carga,
orden,
verifica_backend,
verifica_cliente,
peso_score,
activo,
killer,
created,
created_by
) VALUES (
@set_doc,
@tipo_doc,
@tolerancia,
@orden+1,
@verif_back,
@verif_cliente,
@peso_score,
@activo,
@killer,
GETDATE(),
@user_id
);
RETURN;
END
IF ( @accion = 'UPDATE' )
BEGIN
-- accion que actualiza un registro de la tabla
-- parametros usados: Todos
UPDATE LN_set_tipo_doc SET
tolerancia_carga = @tolerancia,
peso_score = @peso_score,
activo = @activo,
killer = @killer,
verifica_backend = @verif_back,
verifica_cliente = @verif_cliente,
modified = GETDATE(),
modified_by = @user_id
WHERE set_doc=@set_doc AND tipo_doc=@tipo_doc;
RETURN;
END
IF ( @accion = 'DELETE' )
-- accion que borra el registro tipo_doc set_doc
-- parametros usados : (set_doc,tipo_doc)
BEGIN
DELETE FROM LN_set_tipo_doc WHERE set_doc=@set_doc AND tipo_doc=@tipo_doc;
-- Cursor que reordena todos el orden de todos los tipos de documentos
/* DECLARE @cur_set_doc INT ,@cur_tipo_doc INT;
SET @orden = 1; -- variable del orden
DECLARE cursor_set_tipo_doc CURSOR FOR SELECT set_doc,tipo_doc FROM LN_set_tipo_doc WHERE set_doc=1 ORDER BY orden ASC
OPEN cursor_set_tipo_doc;
FETCH NEXT FROM cursor_set_tipo_doc INTO @cur_set_doc,@cur_tipo_doc;
--
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE LN_set_tipo_doc SET orden=@orden WHERE set_doc=@cur_set_doc AND tipo_doc=@cur_tipo_doc
SET @orden += 1
FETCH NEXT FROM cursor_set_tipo_doc INTO @cur_set_doc,@cur_tipo_doc;
END
--
CLOSE cursor_set_tipo_doc;
DEALLOCATE cursor_set_tipo_doc;
*/
RETURN;
END
IF ( @accion = 'UP')
-- accion que sube el orden
-- parametros usados : (set_doc,tipo_doc)
BEGIN
-- variable que se le asigna el orden
SELECT @orden = LN_set_tipo_doc.orden
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.tipo_doc = @tipo_doc
--
IF (@orden > 1)
BEGIN
-- variable que tiene el orden atras
SELECT @p_tipo_doc = tipo_doc
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.orden = @orden-1
--
UPDATE LN_set_tipo_doc SET orden = @orden-1
WHERE set_doc = @set_doc
AND tipo_doc = @tipo_doc
--
UPDATE LN_set_tipo_doc SET orden = @orden
WHERE set_doc = @set_doc
AND tipo_doc = @p_tipo_doc
END
RETURN;
END
IF ( @accion = 'DOWN' )
BEGIN
-- count de filas de set
DECLARE @cant TINYINT;
SELECT @cant = COUNT(*)
FROM LN_set_tipo_doc
WHERE set_doc = @set_doc
-- orden de la fila
SELECT @orden = LN_set_tipo_doc.orden
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.tipo_doc = @tipo_doc
-- se verifica que el orden sea menor al maximo orden posible
IF (@orden < @cant)
BEGIN
SELECT @p_tipo_doc = tipo_doc
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.orden = @orden+1
--
UPDATE LN_set_tipo_doc SET orden = @orden+1
WHERE set_doc = @set_doc
AND tipo_doc = @tipo_doc
--
UPDATE LN_set_tipo_doc SET orden = @orden
WHERE set_doc = @set_doc
AND tipo_doc = @p_tipo_doc
END
RETURN;
END
if (@accion = 'available') begin
select LN_tipos_doc.*
from LN_tipos_doc
where LN_tipos_doc.tipo_doc NOT IN
(select tipo_doc
from LN_set_tipo_doc
where set_doc = @set_doc)
order by LN_tipos_doc.nombre_tipo_doc
end
-- No ejecuta nada
SELECT 'NO EXECUTION';
END
GO
GO
CREATE OR ALTER PROCEDURE dbo.LN_set_tipo_doc_V2
@accion VARCHAR(50),
@set_doc INT,
@tipo_doc INT,
@user_id INT,
@tolerancia TINYINT=0,
@activo BIT=1,
@peso_score DECIMAL(5,2) = NULL,
@killer BIT = 0,
@verif_back BIT = 0,
@verif_cliente BIT = 0
-- add more stored procedure parameters here
AS
BEGIN
SET NOCOUNT OFF;
-- variables declarados
DECLARE @p_tipo_doc INT;
DECLARE @orden TINYINT;
-- body of the stored procedure
IF ( @accion = 'SEARCH' )
-- accion que devuelve los tipos de documentos de un set de documentos
-- parametros usados: (set_doc)
BEGIN
SELECT LN_set_tipo_doc.* , LN_tipos_doc.nombre_tipo_doc,LN_tipos_doc.consentimiento,LN_tipos_doc.es_dni
FROM LN_set_tipo_doc
INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc
ORDER BY LN_set_tipo_doc.orden ASC;
RETURN;
END
IF ( @accion = 'SELECT' )
-- accion que selecciona un tipo de documento especifico de un set de documentos
-- parametros usados: (set_doc,tipo_doc)
BEGIN
SELECT LN_set_tipo_doc.* , LN_tipos_doc.nombre_tipo_doc,LN_tipos_doc.consentimiento,LN_tipos_doc.es_dni
FROM LN_set_tipo_doc
INNER JOIN LN_tipos_doc ON LN_tipos_doc.tipo_doc=LN_set_tipo_doc.tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc AND LN_set_tipo_doc.tipo_doc=@tipo_doc;
RETURN;
END
IF ( @accion = 'INSERT' )
-- accion que inserta un tipo de documento en un set de documentos
-- parametros usados: Todos
BEGIN
SELECT @orden = MAX(LN_set_tipo_doc.orden)
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc=@set_doc
IF ( @orden IS NULL )
SET @orden = 0
--
INSERT INTO LN_set_tipo_doc (
set_doc,
tipo_doc,
tolerancia_carga,
orden,
verifica_backend,
verifica_cliente,
peso_score,
activo,
killer,
created,
created_by
) VALUES (
@set_doc,
@tipo_doc,
@tolerancia,
@orden+1,
@verif_back,
@verif_cliente,
@peso_score,
@activo,
@killer,
GETDATE(),
@user_id
);
RETURN;
END
IF ( @accion = 'UPDATE' )
BEGIN
-- accion que actualiza un registro de la tabla
-- parametros usados: Todos
UPDATE LN_set_tipo_doc SET
tolerancia_carga = @tolerancia,
peso_score = @peso_score,
activo = @activo,
killer = @killer,
verifica_backend = @verif_back,
verifica_cliente = @verif_cliente,
modified = GETDATE(),
modified_by = @user_id
WHERE set_doc=@set_doc AND tipo_doc=@tipo_doc;
RETURN;
END
IF ( @accion = 'DELETE' )
-- accion que borra el registro tipo_doc set_doc
-- parametros usados : (set_doc,tipo_doc)
BEGIN
DELETE FROM LN_set_tipo_doc WHERE set_doc=@set_doc AND tipo_doc=@tipo_doc;
-- Cursor que reordena todos el orden de todos los tipos de documentos
/* DECLARE @cur_set_doc INT ,@cur_tipo_doc INT;
SET @orden = 1; -- variable del orden
DECLARE cursor_set_tipo_doc CURSOR FOR SELECT set_doc,tipo_doc FROM LN_set_tipo_doc WHERE set_doc=1 ORDER BY orden ASC
OPEN cursor_set_tipo_doc;
FETCH NEXT FROM cursor_set_tipo_doc INTO @cur_set_doc,@cur_tipo_doc;
--
WHILE (@@FETCH_STATUS = 0)
BEGIN
UPDATE LN_set_tipo_doc SET orden=@orden WHERE set_doc=@cur_set_doc AND tipo_doc=@cur_tipo_doc
SET @orden += 1
FETCH NEXT FROM cursor_set_tipo_doc INTO @cur_set_doc,@cur_tipo_doc;
END
--
CLOSE cursor_set_tipo_doc;
DEALLOCATE cursor_set_tipo_doc;
*/
RETURN;
END
IF ( @accion = 'UP')
-- accion que sube el orden
-- parametros usados : (set_doc,tipo_doc)
BEGIN
-- variable que se le asigna el orden
SELECT @orden = LN_set_tipo_doc.orden
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.tipo_doc = @tipo_doc
--
IF (@orden > 1)
BEGIN
-- variable que tiene el orden atras
SELECT @p_tipo_doc = tipo_doc
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.orden = @orden-1
--
UPDATE LN_set_tipo_doc SET orden = @orden-1
WHERE set_doc = @set_doc
AND tipo_doc = @tipo_doc
--
UPDATE LN_set_tipo_doc SET orden = @orden
WHERE set_doc = @set_doc
AND tipo_doc = @p_tipo_doc
END
RETURN;
END
IF ( @accion = 'DOWN' )
BEGIN
-- count de filas de set
DECLARE @cant TINYINT;
SELECT @cant = COUNT(*)
FROM LN_set_tipo_doc
WHERE set_doc = @set_doc
-- orden de la fila
SELECT @orden = LN_set_tipo_doc.orden
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.tipo_doc = @tipo_doc
-- se verifica que el orden sea menor al maximo orden posible
IF (@orden < @cant)
BEGIN
SELECT @p_tipo_doc = tipo_doc
FROM LN_set_tipo_doc
WHERE LN_set_tipo_doc.set_doc = @set_doc
AND LN_set_tipo_doc.orden = @orden+1
--
UPDATE LN_set_tipo_doc SET orden = @orden+1
WHERE set_doc = @set_doc
AND tipo_doc = @tipo_doc
--
UPDATE LN_set_tipo_doc SET orden = @orden
WHERE set_doc = @set_doc
AND tipo_doc = @p_tipo_doc
END
RETURN;
END
if (@accion = 'available') begin
select LN_tipos_doc.*
from LN_tipos_doc
where LN_tipos_doc.tipo_doc NOT IN
(select tipo_doc
from LN_set_tipo_doc
where set_doc = @set_doc)
order by LN_tipos_doc.nombre_tipo_doc
end
-- No ejecuta nada
SELECT 'NO EXECUTION';
END
GO
Depends On
2Used By
No items found