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 | 10 | |
| @p_doc_id | int | 4 | |
| @p_seccion | int | 4 | |
| @p_campo | int | 4 | |
| @p_valor_fecha | datetime | 8 | |
| @p_valor_texto | varchar | -1 | |
| @p_valor_numerico | float | 8 | |
| @p_fila | tinyint | 1 | |
| @p_col | 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,,>
-- =============================================
/*
exec LN_doc_campos_ 'search', 333241, null, null, null, null, null, null, null, null
*/
CREATE OR ALTER PROCEDURE dbo.LN_doc_campos_
-- Add the parameters for the stored procedure here
@accion varchar(10),
@p_doc_id int,
@p_seccion int,
@p_campo int,
@p_valor_fecha datetime,
@p_valor_texto varchar(max),
@p_valor_numerico float,
@p_fila tinyint,
@p_col 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
declare @tipo_campo varchar(1)
declare @filas tinyint
declare @columnas tinyint
declare @anual tinyint = 0
IF (@accion = 'GENERATE') BEGIN
IF (@p_doc_id > 0) BEGIN
declare @tipo_doc int
declare @seccion int
declare @campo int
declare @orden int
declare Campos cursor for
select LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.campo, LN_tipo_doc_campos.orden,
LN_campos.tipo_campo, LN_campos.filas, LN_campos.columnas, LN_campos.anual_vencida
from LN_tipo_doc_campos
inner join LN_docs on LN_tipo_doc_campos.tipo_doc = LN_docs.tipo_doc
inner join LN_campos on LN_tipo_doc_campos.campo = LN_campos.campo
where LN_docs.doc_id = @p_doc_id
order by LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.orden
open Campos
fetch next from Campos into @tipo_doc, @seccion, @campo, @orden, @tipo_campo, @filas, @columnas, @anual
while @@FETCH_STATUS = 0 begin
if not exists (select LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo
from LN_doc_campos
where doc_id = @p_doc_id
and seccion = @seccion
and campo = @campo) begin
insert into LN_doc_campos
(doc_id, seccion, campo, created, created_by)
values
(@p_doc_id, @seccion, @campo, GETDATE(), @p_user_id)
if (@tipo_campo = 'G') begin
declare @ff smalldatetime
DECLARE @x tinyint = 0
DECLARE @y tinyint
WHILE @x < @filas BEGIN
SET @x = @x + 1
SET @y = 0
if (@anual = 1) begin
set @ff = DATEFROMPARTS(Year(dateadd(year,-1,GETDATE())), @x, 1)
INSERT INTO LN_doc_campos_col
(doc_id, seccion, campo, fila, col, valor_fecha, created, created_by)
VALUES
(@p_doc_id, @seccion, @campo, @x, 0, @ff, GETDATE(), @p_user_id)
end
WHILE @y < @columnas BEGIN
SET @y = @y + 1
INSERT INTO LN_doc_campos_col
(doc_id, seccion, campo, fila, col, created, created_by)
VALUES
(@p_doc_id, @seccion, @campo, @x, @y, GETDATE(), @p_user_id)
END
END
end
end
fetch next from Campos into @tipo_doc, @seccion, @campo, @orden, @tipo_campo, @filas, @columnas, @anual
end
close Campos
deallocate Campos
END
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT @tipo_campo = tipo_campo
FROM LN_campos
WHERE campo = @p_campo
IF (@tipo_campo <> 'G') BEGIN
SELECT LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo, LN_doc_campos.valor_fecha,
LN_doc_campos.valor_texto, LN_doc_campos.valor_numerico,
CONVERT(VARCHAR, LN_doc_campos.valor_fecha, 103) AS valor_fecha_str,
CONVERT(DATE, LN_doc_campos.created, 103) as created, LN_doc_campos.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos.modified, 103) as modified, LN_doc_campos.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,LN_campos.tipo_attach,ln_campos.tipo_campo_padre
FROM LN_doc_campos
INNER JOIN LN_campos ON LN_doc_campos.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
END ELSE BEGIN
SELECT LN_doc_campos_col.doc_id, LN_doc_campos_col.seccion, LN_doc_campos_col.campo,
LN_doc_campos_col.valor_fecha, CONVERT(VARCHAR, LN_doc_campos_col.valor_fecha, 103) AS valor_fecha_str,
LN_doc_campos_col.valor_texto, LN_doc_campos_col.valor_numerico,
CONVERT(DATE, LN_doc_campos_col.created, 103) as created, LN_doc_campos_col.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos_col.modified, 103) as modified, LN_doc_campos_col.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,LN_campos.tipo_attach,ln_campos.tipo_campo_padre
FROM LN_doc_campos_col
INNER JOIN LN_campos ON LN_doc_campos_col.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos_col.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos_col.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos_col.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos_col.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos_col.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
ORDER BY LN_doc_campos_col.fila, LN_doc_campos_col.col
END
END ELSE
IF (@accion = 'UPDATE') BEGIN
SELECT @tipo_campo = LN_campos.tipo_campo
FROM LN_campos
WHERE campo = @p_campo
if (@tipo_campo = 'G') begin
if (@p_user_id is not null) begin
UPDATE LN_doc_campos_col SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE(),
modified_by = @p_user_id
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
AND LN_doc_campos_col.fila = @p_fila
AND LN_doc_campos_col.col = @p_col
end else begin
UPDATE LN_doc_campos_col SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE()
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
AND LN_doc_campos_col.fila = @p_fila
AND LN_doc_campos_col.col = @p_col
end
end else begin
if (@p_user_id is not null) begin
UPDATE LN_doc_campos SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE(),
modified_by = @p_user_id
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
end else begin
UPDATE LN_doc_campos SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
end
end
END ELSE
IF (@accion = 'DELETE') BEGIN
DELETE FROM LN_doc_campos
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
SELECT @tipo_campo = LN_campos.tipo_campo
FROM LN_campos
WHERE campo = @p_campo
if (@tipo_campo <> 'G') begin
DELETE FROM LN_doc_campos_col
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
end
END ELSE
/* search */
SELECT LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo, LN_doc_campos.valor_fecha,
LN_doc_campos.valor_texto, LN_doc_campos.valor_numerico,
CONVERT(VARCHAR, LN_doc_campos.valor_fecha, 103) AS valor_fecha_str,
CONVERT(DATE, LN_doc_campos.created, 103) as created, LN_doc_campos.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos.modified, 103) as modified, LN_doc_campos.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user, LN_tipos_doc.tipo_doc,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,
LN_campos.filas, LN_campos.columnas,
LN_campos.nombre_campo + '_' + CONVERT(VARCHAR, LN_tipo_doc_campos.seccion) AS FORM_ID,
'campo_' + CONVERT(VARCHAR, LN_tipo_doc_campos.seccion) + '_' + CONVERT(VARCHAR, LN_campos.campo) AS FORM_NAME,LN_campos.tipo_attach,
LN_tipos_doc.es_dni,ln_campos.tipo_campo_padre
FROM LN_doc_campos
INNER JOIN LN_campos ON LN_doc_campos.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_campos.seccion
AND LN_doc_campos.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos.doc_id = @p_doc_id
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_doc_campos.seccion, LN_tipo_doc_campos.orden
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
/*
exec LN_doc_campos_ 'search', 333241, null, null, null, null, null, null, null, null
*/
CREATE OR ALTER PROCEDURE dbo.LN_doc_campos_
-- Add the parameters for the stored procedure here
@accion varchar(10),
@p_doc_id int,
@p_seccion int,
@p_campo int,
@p_valor_fecha datetime,
@p_valor_texto varchar(max),
@p_valor_numerico float,
@p_fila tinyint,
@p_col 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
declare @tipo_campo varchar(1)
declare @filas tinyint
declare @columnas tinyint
declare @anual tinyint = 0
IF (@accion = 'GENERATE') BEGIN
IF (@p_doc_id > 0) BEGIN
declare @tipo_doc int
declare @seccion int
declare @campo int
declare @orden int
declare Campos cursor for
select LN_tipo_doc_campos.tipo_doc, LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.campo, LN_tipo_doc_campos.orden,
LN_campos.tipo_campo, LN_campos.filas, LN_campos.columnas, LN_campos.anual_vencida
from LN_tipo_doc_campos
inner join LN_docs on LN_tipo_doc_campos.tipo_doc = LN_docs.tipo_doc
inner join LN_campos on LN_tipo_doc_campos.campo = LN_campos.campo
where LN_docs.doc_id = @p_doc_id
order by LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.orden
open Campos
fetch next from Campos into @tipo_doc, @seccion, @campo, @orden, @tipo_campo, @filas, @columnas, @anual
while @@FETCH_STATUS = 0 begin
if not exists (select LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo
from LN_doc_campos
where doc_id = @p_doc_id
and seccion = @seccion
and campo = @campo) begin
insert into LN_doc_campos
(doc_id, seccion, campo, created, created_by)
values
(@p_doc_id, @seccion, @campo, GETDATE(), @p_user_id)
if (@tipo_campo = 'G') begin
declare @ff smalldatetime
DECLARE @x tinyint = 0
DECLARE @y tinyint
WHILE @x < @filas BEGIN
SET @x = @x + 1
SET @y = 0
if (@anual = 1) begin
set @ff = DATEFROMPARTS(Year(dateadd(year,-1,GETDATE())), @x, 1)
INSERT INTO LN_doc_campos_col
(doc_id, seccion, campo, fila, col, valor_fecha, created, created_by)
VALUES
(@p_doc_id, @seccion, @campo, @x, 0, @ff, GETDATE(), @p_user_id)
end
WHILE @y < @columnas BEGIN
SET @y = @y + 1
INSERT INTO LN_doc_campos_col
(doc_id, seccion, campo, fila, col, created, created_by)
VALUES
(@p_doc_id, @seccion, @campo, @x, @y, GETDATE(), @p_user_id)
END
END
end
end
fetch next from Campos into @tipo_doc, @seccion, @campo, @orden, @tipo_campo, @filas, @columnas, @anual
end
close Campos
deallocate Campos
END
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT @tipo_campo = tipo_campo
FROM LN_campos
WHERE campo = @p_campo
IF (@tipo_campo <> 'G') BEGIN
SELECT LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo, LN_doc_campos.valor_fecha,
LN_doc_campos.valor_texto, LN_doc_campos.valor_numerico,
CONVERT(VARCHAR, LN_doc_campos.valor_fecha, 103) AS valor_fecha_str,
CONVERT(DATE, LN_doc_campos.created, 103) as created, LN_doc_campos.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos.modified, 103) as modified, LN_doc_campos.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,LN_campos.tipo_attach,ln_campos.tipo_campo_padre
FROM LN_doc_campos
INNER JOIN LN_campos ON LN_doc_campos.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
END ELSE BEGIN
SELECT LN_doc_campos_col.doc_id, LN_doc_campos_col.seccion, LN_doc_campos_col.campo,
LN_doc_campos_col.valor_fecha, CONVERT(VARCHAR, LN_doc_campos_col.valor_fecha, 103) AS valor_fecha_str,
LN_doc_campos_col.valor_texto, LN_doc_campos_col.valor_numerico,
CONVERT(DATE, LN_doc_campos_col.created, 103) as created, LN_doc_campos_col.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos_col.modified, 103) as modified, LN_doc_campos_col.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,LN_campos.tipo_attach,ln_campos.tipo_campo_padre
FROM LN_doc_campos_col
INNER JOIN LN_campos ON LN_doc_campos_col.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos_col.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos_col.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos_col.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos_col.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos_col.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
ORDER BY LN_doc_campos_col.fila, LN_doc_campos_col.col
END
END ELSE
IF (@accion = 'UPDATE') BEGIN
SELECT @tipo_campo = LN_campos.tipo_campo
FROM LN_campos
WHERE campo = @p_campo
if (@tipo_campo = 'G') begin
if (@p_user_id is not null) begin
UPDATE LN_doc_campos_col SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE(),
modified_by = @p_user_id
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
AND LN_doc_campos_col.fila = @p_fila
AND LN_doc_campos_col.col = @p_col
end else begin
UPDATE LN_doc_campos_col SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE()
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
AND LN_doc_campos_col.fila = @p_fila
AND LN_doc_campos_col.col = @p_col
end
end else begin
if (@p_user_id is not null) begin
UPDATE LN_doc_campos SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto,
modified = GETDATE(),
modified_by = @p_user_id
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
end else begin
UPDATE LN_doc_campos SET
valor_fecha = @p_valor_fecha,
valor_numerico = @p_valor_numerico,
valor_texto = @p_valor_texto
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
end
end
END ELSE
IF (@accion = 'DELETE') BEGIN
DELETE FROM LN_doc_campos
WHERE LN_doc_campos.doc_id = @p_doc_id
AND LN_doc_campos.seccion = @p_seccion
AND LN_doc_campos.campo = @p_campo
SELECT @tipo_campo = LN_campos.tipo_campo
FROM LN_campos
WHERE campo = @p_campo
if (@tipo_campo <> 'G') begin
DELETE FROM LN_doc_campos_col
WHERE LN_doc_campos_col.doc_id = @p_doc_id
AND LN_doc_campos_col.seccion = @p_seccion
AND LN_doc_campos_col.campo = @p_campo
end
END ELSE
/* search */
SELECT LN_doc_campos.doc_id, LN_doc_campos.seccion, LN_doc_campos.campo, LN_doc_campos.valor_fecha,
LN_doc_campos.valor_texto, LN_doc_campos.valor_numerico,
CONVERT(VARCHAR, LN_doc_campos.valor_fecha, 103) AS valor_fecha_str,
CONVERT(DATE, LN_doc_campos.created, 103) as created, LN_doc_campos.created_by,
users1.first_name + ' ' + users1.last_name as created_by_user,
CONVERT(DATE, LN_doc_campos.modified, 103) as modified, LN_doc_campos.modified_by,
users2.first_name + ' ' + users2.last_name as modified_by_user, LN_tipos_doc.tipo_doc,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.modalidad, LN_tipos_doc.tipo_vigencia,
LN_tipos_doc.vigencia, LN_tipos_doc.dia_vigencia, LN_tipos_doc.mes_vigencia, LN_tipos_doc.es_balance,
LN_campos.nombre_campo, LN_campos.etiqueta, LN_campos.tipo_campo, LN_campos.longitud,
LN_campos.decimales, LN_campos.validacion, LN_campos.opciones, LN_campos.anual_vencida,
LN_campos.aplica_formula_dep_econ,
CASE WHEN (LN_tipo_doc_secciones.titulo_seccion IS NOT NULL) THEN
LN_tipo_doc_secciones.titulo_seccion
ELSE '' END AS titulo_seccion,
LN_tipo_doc_secciones.texto_bajada, LN_tipo_doc_secciones.texto_pie,
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'
END AS nombre_tipo_campo,
IIF (LN_tipo_doc_campos.obligatorio > 0, LN_campos.etiqueta + ' <span class="text-danger">*</span>', LN_campos.etiqueta) AS etiqueta_form,
LN_tipo_doc_campos.seccion, LN_tipo_doc_campos.celdas, LN_tipo_doc_campos.nueva_linea,
LN_tipo_doc_campos.orden, LN_tipo_doc_campos.visible, LN_tipo_doc_campos.campo_id,
LN_tipo_doc_campos.obligatorio, LN_tipo_doc_campos.country_code AS pais,
padrones.nombre_persona, padrones.numero, padrones.id_padron, identificadores.abreviatura,
identificadores.identificador, identificadores.country_code, country.country_name,
LN_contrapartes.cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
LN_contrapartes.telefono_contacto, LN_contrapartes.activo,
clientes.nombre_cliente, clientes.cli_codigo,
LN_docs.estado_doc, LN_docs.ingresado, LN_docs.rechazado, LN_docs.verificado_backend,
LN_docs.verificado_cliente, LN_docs.texto_rechazo, LN_docs.gestion,
LN_docs.vencimiento_carga, LN_docs.fecha_vigencia, LN_docs.doc_attach, LN_docs.doc_version,
LN_campos.filas, LN_campos.columnas,
LN_campos.nombre_campo + '_' + CONVERT(VARCHAR, LN_tipo_doc_campos.seccion) AS FORM_ID,
'campo_' + CONVERT(VARCHAR, LN_tipo_doc_campos.seccion) + '_' + CONVERT(VARCHAR, LN_campos.campo) AS FORM_NAME,LN_campos.tipo_attach,
LN_tipos_doc.es_dni,ln_campos.tipo_campo_padre
FROM LN_doc_campos
INNER JOIN LN_campos ON LN_doc_campos.campo = LN_campos.campo
INNER JOIN LN_docs ON LN_doc_campos.doc_id = LN_docs.doc_id
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_tipo_doc_campos ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_campos.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_campos.seccion
AND LN_doc_campos.campo = LN_tipo_doc_campos.campo)
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT OUTER JOIN users users1 ON LN_doc_campos.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_doc_campos.modified_by = users2.user_id
LEFT OUTER JOIN LN_tipo_doc_secciones ON (LN_tipos_doc.tipo_doc = LN_tipo_doc_secciones.tipo_doc
AND LN_doc_campos.seccion = LN_tipo_doc_secciones.seccion)
WHERE LN_doc_campos.doc_id = @p_doc_id
ORDER BY LN_tipo_doc_secciones.orden_seccion, LN_doc_campos.seccion, LN_tipo_doc_campos.orden
END
GO