Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
11| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 10 | |
| @p_tipo_doc | int | 4 | |
| @p_seccion | int | 4 | |
| @p_campo | int | 4 | |
| @p_celdas | tinyint | 1 | |
| @p_nueva_linea | tinyint | 1 | |
| @p_visible | tinyint | 1 | |
| @p_campo_id | varchar | 50 | |
| @p_obligatorio | tinyint | 1 | |
| @p_orden | int | 4 | |
| @p_country_code | varchar | 10 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
exec ln_tipo_doc_campos_ 'insert',1,4,null
exec ln_tipo_doc_campos_ 'insert',1,3,null
exec ln_tipo_doc_campos_ 'insert',1,1,null
exec ln_tipo_doc_campos_ 'insert',1,5,null
exec ln_tipo_doc_campos_ 'insert',1,6,null
exec ln_tipo_doc_campos_ 'delete',1,2,null
exec ln_tipo_doc_campos_ 'search',1005,null,null,null,null,null,null,null
exec ln_tipo_doc_campos_ 'DOWN',1,5,null
select * from ln_tipo_doc_campos
truncate table ln_tipo_doc_campos
*/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_tipo_doc_campos_
-- Add the parameters for the stored procedure here
@accion varchar(10),
@p_tipo_doc int,
@p_seccion int,
@p_campo int,
@p_celdas tinyint,
@p_nueva_linea tinyint,
@p_visible tinyint,
@p_campo_id varchar(50),
@p_obligatorio tinyint,
@p_orden int,
@p_country_code varchar(10)=null
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 @fld int
DECLARE @cant int
DECLARE @sec_ant int
IF (@accion = 'INSERT') BEGIN
IF NOT EXISTS (SELECT tipo_doc, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo) begin
select @ord = ISNULL(max(orden),0)+1
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
INSERT INTO LN_tipo_doc_campos (tipo_doc, campo, seccion, celdas, nueva_linea, visible, campo_id, obligatorio, orden,country_code)
values (@p_tipo_doc, @p_campo, @p_seccion, @p_celdas,@p_nueva_linea,@p_visible,@p_campo_id,@p_obligatorio, @ord,@p_country_code)
/*
SELECT tipo_doc, @p_campo AS campo, @p_seccion as seccion, @p_celdas as celdas,
@p_nueva_linea as nueva_linea, @p_visible as visible, @p_campo_id as campo_id, @p_obligatorio, @ord AS orden,@p_country_code As country_code
from LN_tipos_doc
where tipo_doc = @p_tipo_doc
*/
end
END ELSE
IF (@accion = 'UPDATE') BEGIN
if exists (select tipo_doc, seccion, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo) begin
/* misma seccion */
UPDATE LN_tipo_doc_campos SET
celdas = @p_celdas,
nueva_linea = @p_nueva_linea,
visible = @p_visible,
campo_id = @p_campo_id,
obligatorio = @p_obligatorio,
country_code = @p_country_code
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
end else begin
/* cambia de sección : la muevo al final si no existe */
if not exists (select tipo_doc, seccion, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo)
exec LN_tipo_doc_campos_ 'insert', @p_tipo_doc, @p_seccion, @p_campo, @p_celdas, @p_nueva_linea, @p_visible, @p_campo_id, @p_obligatorio, NULL
end
END ELSE
IF (@accion = 'DELETE') BEGIN
SELECT @ord = orden, @sec_ant = seccion
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
DELETE LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET orden = orden-1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden > @ord
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
AND LN_tipo_doc_campos.seccion = @p_seccion
AND LN_tipo_doc_campos.campo = @p_campo
END ELSE
IF (@accion = 'SEARCH') BEGIN
if (@p_visible is not null)
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
AND LN_tipo_doc_campos.visible = @p_visible
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_tipo_doc_campos.orden
else
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_tipo_doc_campos.orden
END ELSE
IF (@accion = 'UP') BEGIN
SELECT @ord = orden, @sec_ant = seccion
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
IF (@ord > 1) BEGIN
SELECT @fld = campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden = (@ord-1)
UPDATE LN_tipo_doc_campos SET
orden = @ord - 1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET
orden = @ord
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @fld
END
END ELSE
IF (@accion = 'DOWN') BEGIN
SELECT @ord = orden
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
SELECT @cant = MAX(orden)
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
IF (@ord < @cant) BEGIN
SELECT @fld = campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden = (@ord+1)
UPDATE LN_tipo_doc_campos SET
orden = @ord + 1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET
orden = @ord
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @fld
END
END
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
exec ln_tipo_doc_campos_ 'insert',1,4,null
exec ln_tipo_doc_campos_ 'insert',1,3,null
exec ln_tipo_doc_campos_ 'insert',1,1,null
exec ln_tipo_doc_campos_ 'insert',1,5,null
exec ln_tipo_doc_campos_ 'insert',1,6,null
exec ln_tipo_doc_campos_ 'delete',1,2,null
exec ln_tipo_doc_campos_ 'search',1005,null,null,null,null,null,null,null
exec ln_tipo_doc_campos_ 'DOWN',1,5,null
select * from ln_tipo_doc_campos
truncate table ln_tipo_doc_campos
*/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_tipo_doc_campos_
-- Add the parameters for the stored procedure here
@accion varchar(10),
@p_tipo_doc int,
@p_seccion int,
@p_campo int,
@p_celdas tinyint,
@p_nueva_linea tinyint,
@p_visible tinyint,
@p_campo_id varchar(50),
@p_obligatorio tinyint,
@p_orden int,
@p_country_code varchar(10)=null
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 @fld int
DECLARE @cant int
DECLARE @sec_ant int
IF (@accion = 'INSERT') BEGIN
IF NOT EXISTS (SELECT tipo_doc, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo) begin
select @ord = ISNULL(max(orden),0)+1
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
INSERT INTO LN_tipo_doc_campos (tipo_doc, campo, seccion, celdas, nueva_linea, visible, campo_id, obligatorio, orden,country_code)
values (@p_tipo_doc, @p_campo, @p_seccion, @p_celdas,@p_nueva_linea,@p_visible,@p_campo_id,@p_obligatorio, @ord,@p_country_code)
/*
SELECT tipo_doc, @p_campo AS campo, @p_seccion as seccion, @p_celdas as celdas,
@p_nueva_linea as nueva_linea, @p_visible as visible, @p_campo_id as campo_id, @p_obligatorio, @ord AS orden,@p_country_code As country_code
from LN_tipos_doc
where tipo_doc = @p_tipo_doc
*/
end
END ELSE
IF (@accion = 'UPDATE') BEGIN
if exists (select tipo_doc, seccion, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo) begin
/* misma seccion */
UPDATE LN_tipo_doc_campos SET
celdas = @p_celdas,
nueva_linea = @p_nueva_linea,
visible = @p_visible,
campo_id = @p_campo_id,
obligatorio = @p_obligatorio,
country_code = @p_country_code
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
end else begin
/* cambia de sección : la muevo al final si no existe */
if not exists (select tipo_doc, seccion, campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo)
exec LN_tipo_doc_campos_ 'insert', @p_tipo_doc, @p_seccion, @p_campo, @p_celdas, @p_nueva_linea, @p_visible, @p_campo_id, @p_obligatorio, NULL
end
END ELSE
IF (@accion = 'DELETE') BEGIN
SELECT @ord = orden, @sec_ant = seccion
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
DELETE LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET orden = orden-1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden > @ord
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
AND LN_tipo_doc_campos.seccion = @p_seccion
AND LN_tipo_doc_campos.campo = @p_campo
END ELSE
IF (@accion = 'SEARCH') BEGIN
if (@p_visible is not null)
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
AND LN_tipo_doc_campos.visible = @p_visible
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_tipo_doc_campos.orden
else
SELECT LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.campo,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas,
LN_tipo_doc_campos.nueva_linea, LN_tipo_doc_campos.visible,
LN_tipo_doc_campos.campo_id, LN_tipo_doc_campos.obligatorio,
LN_tipo_doc_campos.orden,
LN_tipos_doc.nombre_tipo_doc,
LN_campos.nombre_campo, LN_campos.etiqueta,
LN_campos.tipo_campo,
CASE
WHEN LN_campos.tipo_campo = 'N' THEN 'Numérico'
WHEN LN_campos.tipo_campo = 'T' THEN 'Texto'
WHEN LN_campos.tipo_campo = 'D' THEN 'Fecha'
WHEN LN_campos.tipo_campo = 'B' THEN 'SI/NO'
WHEN LN_campos.tipo_campo = 'S' THEN 'Sel. opciones'
WHEN LN_campos.tipo_campo = 'M' THEN 'Texto largo'
WHEN LN_campos.tipo_campo = 'R' THEN 'Radio'
WHEN LN_campos.tipo_campo = 'C' THEN 'Checkbox'
WHEN LN_campos.tipo_campo = 'F' THEN 'Archivo'
WHEN LN_campos.tipo_campo = 'W' THEN 'País'
WHEN LN_campos.tipo_campo = 'X' THEN 'Provincia'
WHEN LN_campos.tipo_campo = 'Y' THEN 'Localidad'
WHEN LN_campos.tipo_campo = 'Z' THEN 'Nacionalidad'
END AS nombre_tipo_campo,
LN_campos.longitud, LN_campos.decimales,
LN_campos.opciones,
LN_tipo_doc_secciones.titulo_seccion,ln_campos.tipo_attach,ln_campos.tipo_campo_padre,LN_tipo_doc_campos.country_code
FROM LN_tipo_doc_campos INNER JOIN LN_tipoS_doc ON
LN_tipo_doc_campos.tipo_doc = LN_tipoS_doc.tipo_doc
INNER JOIN LN_campos ON LN_tipo_doc_campos.campo = LN_campos.campo
LEFT OUTER JOIN LN_tipo_doc_secciones
ON (LN_tipo_doc_campos.seccion = LN_tipo_doc_secciones.seccion
AND LN_tipo_doc_campos.tipo_doc = LN_tipo_doc_secciones.tipo_doc)
WHERE LN_tipo_doc_campos.tipo_doc = @p_tipo_doc
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_tipo_doc_campos.orden
END ELSE
IF (@accion = 'UP') BEGIN
SELECT @ord = orden, @sec_ant = seccion
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
IF (@ord > 1) BEGIN
SELECT @fld = campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden = (@ord-1)
UPDATE LN_tipo_doc_campos SET
orden = @ord - 1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET
orden = @ord
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @fld
END
END ELSE
IF (@accion = 'DOWN') BEGIN
SELECT @ord = orden
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
SELECT @cant = MAX(orden)
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
IF (@ord < @cant) BEGIN
SELECT @fld = campo
from LN_tipo_doc_campos
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and orden = (@ord+1)
UPDATE LN_tipo_doc_campos SET
orden = @ord + 1
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @p_campo
UPDATE LN_tipo_doc_campos SET
orden = @ord
where tipo_doc = @p_tipo_doc
and seccion = @p_seccion
and campo = @fld
END
END
END
GO