Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
6| Name | Data Type | Length | Description |
|---|---|---|---|
| @action | varchar | 20 | |
| @p_contraparte | int | 4 | |
| @p_user_id | int | 4 | |
| @p_automatico | int | 4 | |
| @p_grupo | varchar | 100 | |
| @p_prioriodad | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
EXEC LN_actualizar_legajo_AGB 147088, NULL,NULL
SELECT LN_CONTRAPARTE_SUB_SET.contraparte,LN_CONTRAPARTE_SUB_SET.set_doc, ln_gestiones.gestion,ln_gestiones.cliente,
ln_gestiones.desde,ln_gestiones.hasta
FROM LN_CONTRAPARTE_SUB_SET inner join ln_gestiones on LN_CONTRAPARTE_SUB_SET.contraparte=ln_gestiones.contraparte
where LN_CONTRAPARTE_SUB_SET.activo = 1 and ln_gestiones.vigente = 1
and convert(date,getdate()) between ln_gestiones.desde and ln_gestiones.hasta
DELETE LN_DOCS WHERE CONTRAPARTE = 147088 AND TIPO_DOC = 1048
SELECT * FROM LN_DOCS WHERE CONTRAPARTE = 147088
SELECT * FROM LN_CONTRAPARTES WHERE CONTRAPARTE = 147088
SELECT * FROM PADRONES WHERE ID_PADRON = 37202918
select * from LN_CONTRAPARTE_SUB_SET
select * from ln_gestiones where contraparte = 147088
exec LN_contraparte_sub_docs 'ALTA',147088,1
select * from users where username = 'bbvafide'
LN_contraparte_sub_docs_new 'ALTA',147071,681521128,0,'DDR',1
select * from LN_CONTRAPARTE_SUB_SET where contraparte = 147071
SELECT * FROM LN_DOCS Where contraparte = 147071 and tipo_doc = 1048
select * from trazabilidad where contraparte = 147071 order by created desc
*/
/*
ADMINISTRAR LOS SET DE DOCUMENTOS ADICIONALES QUE DEBEN GENERARSE A LAS CONTRAPARTES
*/
CREATE OR ALTER PROCEDURE dbo.LN_contraparte_sub_docs
@action varchar(20),
@p_contraparte int,
@p_user_id int,
@p_automatico int = 0, /* 0: lo pidieron a mano, 1: si disparó automáticamente */
@p_grupo varchar(100) = null,
@p_prioriodad int = 1
AS
BEGIN
SET NOCOUNT ON;
/*AGREGAMOS UN SET DE DECOUMENTOS ADICIONAL A LA CONTRAPARTE / GESTION */
declare @existe int =0
declare @activo bit =0
declare @idsub int=0
declare @p_set_doc_padre int
declare @p_set_doc int
declare @p_gestion int
declare @p_cliente int
select @p_gestion = gestion
from ln_gestiones
where contraparte = @p_contraparte
and vigente = 1 and desde <= getdate() and hasta >= getdate()
select @p_cliente = cliente
from ln_contrapartes
where contraparte = @p_contraparte
select @p_set_doc_padre = set_doc
from ln_familias
where familia = (select familia from ln_contraparte_familias where contraparte = @p_contraparte)
if (@p_grupo is null)
select top 1 @p_set_doc = set_doc_hijo from LN_set_sub_docs
where set_doc_padre = @p_set_doc_padre
and prioridad_set = @p_prioriodad
/*and not exists (select * from LN_CONTRAPARTE_SUB_SET css where css.contraparte = @p_contraparte
and css.gestion = @p_gestion
and css.set_doc = LN_set_sub_docs.set_doc_hijo)
order by prioridad_set*/
else
select top 1 @p_set_doc = set_doc_hijo from LN_set_sub_docs
inner join LN_set_docs on LN_set_docs.set_doc = set_doc_hijo
where set_doc_padre = @p_set_doc_padre
and LN_set_docs.grupo_set = @p_grupo
and prioridad_set = @p_prioriodad
/*
and not exists (select * from LN_CONTRAPARTE_SUB_SET css where css.contraparte = @p_contraparte
and css.gestion = @p_gestion
and css.set_doc = LN_set_sub_docs.set_doc_hijo)
order by prioridad_set*/
set @existe = 0
select @existe=1,@activo=activo,@idsub=idContraparteSubSet
from LN_CONTRAPARTE_SUB_SET where contraparte = @p_contraparte and gestion = @p_gestion and set_doc = @p_set_doc
/* SI ES ALTA Y NO EXISTE LO INSERTAMOS */
if (@action='ALTA' and @existe = 0)
BEGIN
INSERT INTO LN_CONTRAPARTE_SUB_SET (contraparte,gestion,set_doc,activo,created,created_by)
values (@p_contraparte,@p_gestion,@p_set_doc,1,getdate(),@p_user_id)
END
/* SI ES ALTA PERO EXISTE COMO ACTIVO 0 HACEMOS UN UPDATE */
if (@action='ALTA' and @existe = 1 AND @activo=0)
BEGIN
begin
update LN_CONTRAPARTE_SUB_SET set activo =1 ,modified=getdate(),modified_by=@p_user_id where contraparte = @p_contraparte and gestion = @p_gestion and set_doc=@p_set_doc and idContraparteSubSet=@idsub
end
END
/* SI ES BAJA HACEMOS UN UPDATE A ACTIVO = 0 */
if (@action='BAJA')
BEGIN
begin
update LN_CONTRAPARTE_SUB_SET set activo =0 ,
modified=getdate(),modified_by=@p_user_id
where contraparte = @p_contraparte and gestion = @p_gestion and set_doc=@p_set_doc and idContraparteSubSet=@idsub
end
END
declare @txt varchar(100) = null
if (@p_grupo is null) set @p_grupo = 'Subset documentos'
if (@action='ALTA' and (@existe = 0 or @activo=0)) /* 8/4/22: Solo lo hace si no existía o estaba como inactivo, porque si ya esta pedido no vuelve a pedir */
begin
--EXEC LN_actualizar_legajo_AGB @p_contraparte, NULL,NULL /* pasamos el fuente de LN_actualizar_legajo_AGB a LN_actualizar_legajo
EXEC LN_actualizar_legajo @p_contraparte, NULL,NULL
if (@p_automatico = 1) /* 8/4/22: Se puede disparar automáticamente */
set @txt = 'Solicitar ' + @p_grupo + ': Automático'
else
set @txt = 'Solicitar ' + @p_grupo + ': SI'
EXEC insertar_trazabilidad @txt, @p_cliente, 'AGREGAR_SUB_SET_DOC', 'FI', @p_contraparte, @p_user_id
end
if (@action='BAJA')
begin
-- Si se da de baja el subset se borran los registros de ln_docs porque si los marcamos como aplica=0, cuando se hace el EXEC LN_actualizar_legajo NO LOS CARGA porque se supone que quieren que NO APLIQUE el documento
delete from LN_docs where contraparte = @p_contraparte and gestion = @p_gestion and tipo_doc in (select tipo_doc from LN_set_tipo_doc where set_doc = @p_set_doc)
EXEC LN_actualizar_legajo @p_contraparte, NULL,NULL
set @txt = 'Solicitar ' + @p_grupo + ': NO'
EXEC insertar_trazabilidad @txt, @p_cliente, 'SACAR_SUB_SET_DOC', 'FI', @p_contraparte, @p_user_id
end
END
/*
select * from LN_CONTRAPARTE_SUB_SET where contraparte =147069
select * from LN_contraparte_familias where contraparte = 147088
select * from ln_familias where familia = 368
select * from LN_set_sub_docs where set_doc_padre = 80
select * from ln_indicadores where etiqueta = 'Solicitar DDR'
select * from clientes where cli_codigo = 222
update ln_contraparte_indicadores set valor_texto = null where indicador = 396 and contraparte = 147069
select * from ln_contraparte_indicadores where indicador = 396 and contraparte = 147069
select * from ln_docs where contraparte = 147069
delete from ln_docs where contraparte = 147069 and tipo_doc = 1048
select * from LN_CONTRAPARTE_SUB_SET where contraparte =147069
*/
GO
GO
/*
EXEC LN_actualizar_legajo_AGB 147088, NULL,NULL
SELECT LN_CONTRAPARTE_SUB_SET.contraparte,LN_CONTRAPARTE_SUB_SET.set_doc, ln_gestiones.gestion,ln_gestiones.cliente,
ln_gestiones.desde,ln_gestiones.hasta
FROM LN_CONTRAPARTE_SUB_SET inner join ln_gestiones on LN_CONTRAPARTE_SUB_SET.contraparte=ln_gestiones.contraparte
where LN_CONTRAPARTE_SUB_SET.activo = 1 and ln_gestiones.vigente = 1
and convert(date,getdate()) between ln_gestiones.desde and ln_gestiones.hasta
DELETE LN_DOCS WHERE CONTRAPARTE = 147088 AND TIPO_DOC = 1048
SELECT * FROM LN_DOCS WHERE CONTRAPARTE = 147088
SELECT * FROM LN_CONTRAPARTES WHERE CONTRAPARTE = 147088
SELECT * FROM PADRONES WHERE ID_PADRON = 37202918
select * from LN_CONTRAPARTE_SUB_SET
select * from ln_gestiones where contraparte = 147088
exec LN_contraparte_sub_docs 'ALTA',147088,1
select * from users where username = 'bbvafide'
LN_contraparte_sub_docs_new 'ALTA',147071,681521128,0,'DDR',1
select * from LN_CONTRAPARTE_SUB_SET where contraparte = 147071
SELECT * FROM LN_DOCS Where contraparte = 147071 and tipo_doc = 1048
select * from trazabilidad where contraparte = 147071 order by created desc
*/
/*
ADMINISTRAR LOS SET DE DOCUMENTOS ADICIONALES QUE DEBEN GENERARSE A LAS CONTRAPARTES
*/
CREATE OR ALTER PROCEDURE dbo.LN_contraparte_sub_docs
@action varchar(20),
@p_contraparte int,
@p_user_id int,
@p_automatico int = 0, /* 0: lo pidieron a mano, 1: si disparó automáticamente */
@p_grupo varchar(100) = null,
@p_prioriodad int = 1
AS
BEGIN
SET NOCOUNT ON;
/*AGREGAMOS UN SET DE DECOUMENTOS ADICIONAL A LA CONTRAPARTE / GESTION */
declare @existe int =0
declare @activo bit =0
declare @idsub int=0
declare @p_set_doc_padre int
declare @p_set_doc int
declare @p_gestion int
declare @p_cliente int
select @p_gestion = gestion
from ln_gestiones
where contraparte = @p_contraparte
and vigente = 1 and desde <= getdate() and hasta >= getdate()
select @p_cliente = cliente
from ln_contrapartes
where contraparte = @p_contraparte
select @p_set_doc_padre = set_doc
from ln_familias
where familia = (select familia from ln_contraparte_familias where contraparte = @p_contraparte)
if (@p_grupo is null)
select top 1 @p_set_doc = set_doc_hijo from LN_set_sub_docs
where set_doc_padre = @p_set_doc_padre
and prioridad_set = @p_prioriodad
/*and not exists (select * from LN_CONTRAPARTE_SUB_SET css where css.contraparte = @p_contraparte
and css.gestion = @p_gestion
and css.set_doc = LN_set_sub_docs.set_doc_hijo)
order by prioridad_set*/
else
select top 1 @p_set_doc = set_doc_hijo from LN_set_sub_docs
inner join LN_set_docs on LN_set_docs.set_doc = set_doc_hijo
where set_doc_padre = @p_set_doc_padre
and LN_set_docs.grupo_set = @p_grupo
and prioridad_set = @p_prioriodad
/*
and not exists (select * from LN_CONTRAPARTE_SUB_SET css where css.contraparte = @p_contraparte
and css.gestion = @p_gestion
and css.set_doc = LN_set_sub_docs.set_doc_hijo)
order by prioridad_set*/
set @existe = 0
select @existe=1,@activo=activo,@idsub=idContraparteSubSet
from LN_CONTRAPARTE_SUB_SET where contraparte = @p_contraparte and gestion = @p_gestion and set_doc = @p_set_doc
/* SI ES ALTA Y NO EXISTE LO INSERTAMOS */
if (@action='ALTA' and @existe = 0)
BEGIN
INSERT INTO LN_CONTRAPARTE_SUB_SET (contraparte,gestion,set_doc,activo,created,created_by)
values (@p_contraparte,@p_gestion,@p_set_doc,1,getdate(),@p_user_id)
END
/* SI ES ALTA PERO EXISTE COMO ACTIVO 0 HACEMOS UN UPDATE */
if (@action='ALTA' and @existe = 1 AND @activo=0)
BEGIN
begin
update LN_CONTRAPARTE_SUB_SET set activo =1 ,modified=getdate(),modified_by=@p_user_id where contraparte = @p_contraparte and gestion = @p_gestion and set_doc=@p_set_doc and idContraparteSubSet=@idsub
end
END
/* SI ES BAJA HACEMOS UN UPDATE A ACTIVO = 0 */
if (@action='BAJA')
BEGIN
begin
update LN_CONTRAPARTE_SUB_SET set activo =0 ,
modified=getdate(),modified_by=@p_user_id
where contraparte = @p_contraparte and gestion = @p_gestion and set_doc=@p_set_doc and idContraparteSubSet=@idsub
end
END
declare @txt varchar(100) = null
if (@p_grupo is null) set @p_grupo = 'Subset documentos'
if (@action='ALTA' and (@existe = 0 or @activo=0)) /* 8/4/22: Solo lo hace si no existía o estaba como inactivo, porque si ya esta pedido no vuelve a pedir */
begin
--EXEC LN_actualizar_legajo_AGB @p_contraparte, NULL,NULL /* pasamos el fuente de LN_actualizar_legajo_AGB a LN_actualizar_legajo
EXEC LN_actualizar_legajo @p_contraparte, NULL,NULL
if (@p_automatico = 1) /* 8/4/22: Se puede disparar automáticamente */
set @txt = 'Solicitar ' + @p_grupo + ': Automático'
else
set @txt = 'Solicitar ' + @p_grupo + ': SI'
EXEC insertar_trazabilidad @txt, @p_cliente, 'AGREGAR_SUB_SET_DOC', 'FI', @p_contraparte, @p_user_id
end
if (@action='BAJA')
begin
-- Si se da de baja el subset se borran los registros de ln_docs porque si los marcamos como aplica=0, cuando se hace el EXEC LN_actualizar_legajo NO LOS CARGA porque se supone que quieren que NO APLIQUE el documento
delete from LN_docs where contraparte = @p_contraparte and gestion = @p_gestion and tipo_doc in (select tipo_doc from LN_set_tipo_doc where set_doc = @p_set_doc)
EXEC LN_actualizar_legajo @p_contraparte, NULL,NULL
set @txt = 'Solicitar ' + @p_grupo + ': NO'
EXEC insertar_trazabilidad @txt, @p_cliente, 'SACAR_SUB_SET_DOC', 'FI', @p_contraparte, @p_user_id
end
END
/*
select * from LN_CONTRAPARTE_SUB_SET where contraparte =147069
select * from LN_contraparte_familias where contraparte = 147088
select * from ln_familias where familia = 368
select * from LN_set_sub_docs where set_doc_padre = 80
select * from ln_indicadores where etiqueta = 'Solicitar DDR'
select * from clientes where cli_codigo = 222
update ln_contraparte_indicadores set valor_texto = null where indicador = 396 and contraparte = 147069
select * from ln_contraparte_indicadores where indicador = 396 and contraparte = 147069
select * from ln_docs where contraparte = 147069
delete from ln_docs where contraparte = 147069 and tipo_doc = 1048
select * from LN_CONTRAPARTE_SUB_SET where contraparte =147069
*/
GO