Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
28| Name | Data Type | Length | Description |
|---|---|---|---|
| @accion | varchar | 40 | |
| @p_contraparte | int | 4 | |
| @p_id_padron | int | 4 | |
| @p_cliente | int | 4 | |
| @p_datos_comerciales | text | -1 | |
| @p_activo | tinyint | 1 | |
| @p_nombre_contacto | varchar | 512 | |
| @p_email_contacto | varchar | 512 | |
| @p_telefono_contacto | varchar | 512 | |
| @p_fecha_ultimo_cierre | datetime | 8 | |
| @p_periodicidad_ejercicio | varchar | 1 | |
| @p_clave | varchar | 80 | |
| @p_vigencia_desde | date | 3 | |
| @p_vigencia_hasta | date | 3 | |
| @p_user_id | int | 4 | |
| @p_subcontratista | bit | 1 | |
| @p_id_padre | int | 4 | |
| @p_modalidad_pago | varchar | 2 | |
| @p_domicilio | varchar | 500 | |
| @p_transact_id | int | 4 | |
| @pais_servicio | varchar | 2 | |
| @p_fecha_gestion | varchar | 10 | |
| @p_codigo_idioma | varchar | 3 | |
| @servicio_contratado | int | 4 | |
| @p_familia | int | 4 | |
| @sector | int | 4 | |
| @responsable | varchar | 512 | |
| @tipo_servicio | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
select * from users where username='f0000'
exec ln_contrapartes_ 'insert',null,7,9700868,null,1,null,null,null,null,1063064806
Se agregó para la accion SEARCH la consideración del parámetro @p_id_padron
cuando @p_cliente IS NOT NULL para poder buscar una contraparte por id_padron
dentro del cliente y eliminar posibilidad de duplicaciones.
select * from ln_contrapartes where id_padron = (select id_padron from padrones where identificacion = '30708841532')
exec ln_contrapartes_ 'DOCUMENTOS_GESTION_ACTIVA',31286,null,null,null,null,null,null,null,null,null,null,null,null,null
select * from ln_docs where contraparte = 394 and aplica = 0
exec LN_contrapartes_ 'CLIENTE',107586,null,null,null,null,null,null,null,null,null,null,null,null
*/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_contrapartes_sc
-- Add the parameters for the stored procedure here
@accion varchar(40),
@p_contraparte int OUTPUT,
@p_id_padron int,
@p_cliente int,
@p_datos_comerciales text,
@p_activo tinyint,
@p_nombre_contacto varchar(512),
@p_email_contacto varchar(512),
@p_telefono_contacto varchar(512),
@p_fecha_ultimo_cierre datetime,
@p_periodicidad_ejercicio varchar(1),
@p_clave varchar(80),
@p_vigencia_desde date,
@p_vigencia_hasta date,
@p_user_id int = NULL,
@p_subcontratista bit = 0,
@p_id_padre int = NULL,
@p_modalidad_pago varchar(2) = 'CC',
@p_domicilio varchar(500) = NULL,
@p_transact_id int = NULL, -- para consultar prepagos por id de transaccion
@pais_servicio varchar(2) = 'AR',
@p_fecha_gestion varchar(10) = null,
@p_codigo_idioma varchar(3) = 'spa',
@servicio_contratado int = 47,
@p_familia int = null,
@sector INT = NULL,
@responsable VARCHAR(512) = NULL,
@tipo_servicio INT = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @fecha_gestion date
if (isnull(@p_fecha_gestion,'') = '')
begin
set @fecha_gestion = convert(date, getdate())
end
else
begin
set @fecha_gestion = convert(date, @p_fecha_gestion)
end
-- Insert statements for procedure here
DECLARE @country_code VARCHAR(2)
DECLARE @clave_anterior VARCHAR(80)
DECLARE @gest int = NULL, @cliente int = NULL, @nueva_gestion int = NULL
IF (@accion = 'CLIENTE' AND @p_contraparte > 0) BEGIN
select LN_contrapartes.contraparte, LN_contrapartes.cliente, LN_contrapartes.servicio_contratado,
LN_contrapartes.id_imperium, LN_contrapartes.pais_servicio, padrones.nombre_persona, padrones.id_padron,
padrones.identificador, padrones.numero, padrones.identificacion, identificadores.abreviatura,
iif(cliente_paises.nombre_local IS NOT NULL, cliente_paises.nombre_local, clientes.nombre_cliente) as nombre_cliente
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
left outer join cliente_paises on (LN_contrapartes.cliente = cliente_paises.cliente
and LN_contrapartes.pais_servicio = cliente_paises.country_code
and LN_contrapartes.servicio_contratado = cliente_paises.servicio_contratado)
where LN_contrapartes.contraparte = @p_contraparte
END
IF (@accion = 'GESTION') BEGIN
SELECT gestion, cliente, contraparte, desde, hasta
FROM LN_gestiones where contraparte = @p_contraparte
AND vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
END
IF (@accion = 'UPDATE_CONTACTO') BEGIN
UPDATE LN_contrapartes SET
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
modified = GETDATE(),
modified_by = @p_user_id,
pais_servicio = @pais_servicio,
modalidad_pago = @p_modalidad_pago,idTipoServicioPriv = @tipo_servicio,idSectorPriv=@sector,email_ejecutivo_cuenta=@responsable
WHERE contraparte = @p_contraparte
select 'ok'
return
END
IF (@accion = 'INSERT') BEGIN
IF (@p_id_padron > 0 AND @p_cliente > 0) begin
DECLARE @contraparte int
DECLARE @codigo_idioma varchar(3) = NULL
SELECT @country_code = identificadores.country_code,
@codigo_idioma = idiomas.codigo_iso
FROM identificadores
INNER JOIN padrones ON identificadores.identificador = padrones.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT Outer JOIN idiomas ON country.codigo_idioma = idiomas.codigo_idioma
WHERE padrones.id_padron = @p_id_padron
INSERT INTO LN_contrapartes (id_padron, cliente, country_code, datos_comerciales, activo,
nombre_contacto, email_contacto, telefono_contacto,
fecha_ultimo_cierre, periodicidad_ejercicio, vigencia_desde, vigencia_hasta,
clave, clave_temporal, clave_cambio, clave_expira,
subcontratista, id_padre, codigo_idioma, modalidad_pago,
created, created_by,pais_servicio,servicio_contratado,idTipoServicioPriv,idSectorPriv,email_ejecutivo_cuenta)
VALUES (@p_id_padron, @p_cliente, @country_code, @p_datos_comerciales, 1,
@p_nombre_contacto, @p_email_contacto, @p_telefono_contacto,
CONVERT(DATE,@p_fecha_ultimo_cierre), @p_periodicidad_ejercicio,
@p_vigencia_desde, @p_vigencia_hasta, @p_clave, 1,
NULL, DATEADD(day, 5, getdate()),
@p_subcontratista, @p_id_padre, iif(@codigo_idioma is not null, @codigo_idioma, 'spa'), @p_modalidad_pago,
GETDATE(), @p_user_id,@pais_servicio,@servicio_contratado,@tipo_servicio,@sector,@responsable)
SET @contraparte = SCOPE_IDENTITY()
SET @p_contraparte = @contraparte
exec insertar_trazabilidad 'Alta contrapartes', @p_cliente, 'ALTA_CONTRAPARTE','BACK-WWW', @contraparte,@p_user_id
if (@servicio_contratado = 73) -- IMPERIUM
begin
exec LN_alta_Contratistas 'insert', @p_cliente, @p_id_padron, @p_familia, @p_vigencia_desde, @p_vigencia_hasta, @p_contraparte, @p_user_id
exec insertar_trazabilidad 'Alta contratista', @p_cliente, 'ALTA_CONTRAPARTE','BACK-WWW', @contraparte,@p_user_id
end
SELECT @contraparte AS contraparte
RETURN;
end
END ELSE
IF (@accion = 'UPDATE') BEGIN
/*SELECT @country_code = identificadores.country_code
FROM identificadores INNER JOIN padrones ON identificadores.identificador = padrones.identificador
WHERE padrones.id_padron = @p_id_padron*/
IF (@p_fecha_ultimo_cierre IS NULL)
SELECT @p_fecha_ultimo_cierre = fecha_ultimo_cierre
FROM LN_contrapartes
WHERE contraparte = @p_contraparte
IF (@p_periodicidad_ejercicio IS NULL)
SELECT @p_periodicidad_ejercicio = periodicidad_ejercicio
FROM LN_contrapartes
WHERE contraparte = @p_contraparte
UPDATE LN_contrapartes SET
/*id_padron = @p_id_padron,
cliente = @p_cliente,
country_code = @country_code,*/
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
fecha_ultimo_cierre = CONVERT(DATE,@p_fecha_ultimo_cierre),
periodicidad_ejercicio = @p_periodicidad_ejercicio,
subcontratista = @p_subcontratista,
id_padre = @p_id_padre,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
modified = GETDATE(),
modified_by = @p_user_id,
pais_servicio = @pais_servicio,idTipoServicioPriv = @tipo_servicio,idSectorPriv=@sector,email_ejecutivo_cuenta=@responsable
WHERE contraparte = @p_contraparte
if (@p_domicilio is not null)
UPDATE LN_contrapartes SET domicilio = @p_domicilio where contraparte = @p_contraparte
END ELSE
IF (@accion = 'CHANGE_PASSWORD') BEGIN
SELECT @clave_anterior = clave FROM LN_contrapartes
WHERE contraparte = @p_contraparte
IF (@clave_anterior <> @p_clave) BEGIN
if (@p_user_id > 0)
UPDATE LN_contrapartes SET
clave = @p_clave,
clave_cambio = GETDATE(),
clave_expira = DATEADD(day, 90, getdate()),
clave_temporal = 0,
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
else
UPDATE LN_contrapartes SET
clave = @p_clave,
clave_cambio = GETDATE(),
clave_expira = DATEADD(day, 90, getdate()),
clave_temporal = 0
WHERE contraparte = @p_contraparte
END
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto, LN_contrapartes.domicilio,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
LN_contrapartes.subcontratista, LN_contrapartes.id_padre,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(10), LN_contrapartes.clave_cambio, 103) + ' ' + CONVERT(VARCHAR(5), LN_contrapartes.clave_cambio, 14) as clave_cambio_str,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 103) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
CONVERT(VARCHAR(10), LN_contrapartes.last_login, 103) + ' ' + CONVERT(VARCHAR(5), LN_contrapartes.last_login, 14) as last_login_str,
CONVERT(VARCHAR(19), LN_contrapartes.limite_carga_inicial, 103) as limite_carga_inicial,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(10), LN_contrapartes.created, 103) as created_str,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
p2.nombre_persona as nombre_persona_padre,
p2.identificador as identificador_padre,
p2.numero as numero_padre,
p2.identificacion as identificacion_padre,
i2.abreviatura as abreviatura_padre,
c2.country_code as country_code_padre,
c2.country_name as country_name_padre,
CONVERT(VARCHAR,LN_contrapartes.inicio_actividades,103) AS inicio_actividades,
LN_contrapartes.empleados, LN_contrapartes.resenia,
convert(varchar(10),LN_contrapartes.limite_carga_inicial,103) as limite_carga_inicial,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma, ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,
LN_contrapartes.servicio_contratado,
LN_contrapartes.id_imperium,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
LEFT OUTER JOIN LN_contrapartes PADRE on LN_contrapartes.id_padre = PADRE.contraparte
LEFT OUTER JOIN padrones p2 on PADRE.id_padron = p2.id_padron
LEFT OUTER JOIN identificadores i2 on p2.identificador = i2.identificador
LEFT OUTER JOIN country c2 on i2.country_code = c2.country_code
WHERE LN_contrapartes.contraparte = @p_contraparte
END ELSE
IF (@accion = 'SEARCH') BEGIN
if(@p_cliente is null AND @p_activo is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else
if (@p_cliente is not null AND @p_activo is null) begin
if (@p_id_padron is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.id_padron = @p_id_padron
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end
end else
if (@p_cliente is null AND @p_activo is not null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.activo = @p_activo
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else
if (@p_id_padron is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.activo = @p_activo
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.activo = @p_activo
AND LN_contrapartes.id_padron = @p_id_padron
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end
END ELSE
IF (@accion = 'DELETE') BEGIN
DELETE FROM LN_contrapartes WHERE contraparte = @p_contraparte
END ELSE
IF (@accion = 'NOVEDADES') BEGIN
select LN_contrapartes.contraparte, monitoreos_resultados.cuit,
CONVERT(VARCHAR, monitoreos_resultados.fecha, 103) AS fecha_dmy,
CONVERT(VARCHAR, monitoreos_resultados.fecha, 121) AS fecha,
monitoreos_resultados.tipo_novedad, padrones.nombre_persona,
monitoreos_resultados.seccion_mantenimiento,
monitoreos_resultados.tabla
from monitoreos_resultados
inner join padrones on monitoreos_resultados.cuit = padrones.identificacion
inner join LN_contrapartes on padrones.id_padron = LN_contrapartes.id_padron
where LN_contrapartes.contraparte = @p_contraparte
and monitoreos_resultados.seccion_mantenimiento <> 7
group by LN_contrapartes.contraparte, monitoreos_resultados.cuit,
monitoreos_resultados.fecha, monitoreos_resultados.tipo_novedad,
padrones.nombre_persona, monitoreos_resultados.seccion_mantenimiento,
monitoreos_resultados.tabla
order by monitoreos_resultados.fecha desc, monitoreos_resultados.tipo_novedad
END ELSE
IF (@accion = 'DOCUMENTOS_GESTION_ACTIVA') BEGIN
SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.tipo_doc,
LN_docs.doc_version,
IIF(ln_docs.aplica = 0, 'N',LN_docs.estado_doc) as estado_doc,
LN_docs.doc_log, LN_docs.doc_attach,
IIF(ln_docs.aplica = 0, 'No solicitado',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'Pendiente de ingreso'
WHEN LN_docs.estado_doc = 'I' THEN 'Ingresado'
WHEN LN_docs.estado_doc = 'R' THEN 'Rechazado'
WHEN LN_docs.estado_doc = 'V' THEN 'Verificado'
END) AS estado_documento,
IIF(ln_docs.aplica = 0, 'text-info',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'text-info'
WHEN LN_docs.estado_doc = 'I' THEN 'text-warning'
WHEN LN_docs.estado_doc = 'R' THEN 'text-danger'
WHEN LN_docs.estado_doc = 'V' THEN 'text-success'
END) AS class_estado,
IIF(ln_docs.aplica = 0, 'minus',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'cloud-upload fa-cloud-upload-alt'
WHEN LN_docs.estado_doc = 'I' THEN 'exclamation'
WHEN LN_docs.estado_doc = 'R' THEN 'times'
WHEN LN_docs.estado_doc = 'V' THEN 'check'
END) AS icon_estado,
IIF(ln_docs.aplica = 0, '999',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 1
WHEN LN_docs.estado_doc = 'I' THEN 3
WHEN LN_docs.estado_doc = 'R' THEN 2
WHEN LN_docs.estado_doc = 'V' THEN 4
END) AS orden_estado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 112)) AS fecha_vigencia,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 103)) AS fecha_vigencia_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 112)) AS vencimiento_carga,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 103)) AS vencimiento_carga_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 112)) AS created,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 103)) AS created_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 112)) AS modified,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 103)) AS modified_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 112)) AS ingresado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 103)) AS ingresado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 112)) AS rechazado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 103)) AS rechazado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 112)) AS verificado_backend,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 103)) AS verificado_backend_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 112)) AS verificado_cliente,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 103)) AS verificado_cliente_dmy,
ISNULL(LN_tipos_doc.es_balance, 0) AS es_balance,
CONVERT(VARCHAR(10), LN_docs.inicio_ejercicio, 103) AS inicio_ejercicio,
CONVERT(VARCHAR(10), LN_docs.fin_ejercicio, 103) AS fin_ejercicio,
LN_docs.gestion,
LN_docs.ingresado_por, LN_docs.rechazado_por, LN_docs.verificado_backend_por,
LN_docs.verificado_cliente_por, LN_docs.created_by, LN_docs.modified_by,
clientes.nombre_cliente, padrones.nombre_persona, padrones.identificador,
padrones.numero, identificadores.abreviatura, identificadores.country_code,
country.country_name, LN_contrapartes.activo, LN_contrapartes.nombre_contacto,
LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.tipo_vigencia, LN_docs.id_externo,
users1.first_name + ' ' + users1.last_name AS ingresado_por_usuario,
users2.first_name + ' ' + users2.last_name AS rechazado_por_usuario,
users3.first_name + ' ' + users3.last_name AS verificado_backend_por_usuario,
users4.first_name + ' ' + users4.last_name AS verificado_cliente_por_usuario,
users5.first_name + ' ' + users5.last_name AS created_by_usuario,
users6.first_name + ' ' + users6.last_name AS modified_by_usuario,
balances_contables.id_balance,
balances_contables.fecha_balance, balances_contables.ejercicio,
balances_contables.periodo, balances_contables.visible,
balances_contables.estado, balances_contables.ruta_archivo,
convert(varchar, balances_contables.fecha_balance, 103) as fecha_cierre,
balances_contables.moneda, monedas.nombre_moneda
FROM LN_docs
INNER JOIN clientes ON LN_docs.cliente = clientes.cliente
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
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
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_gestiones ON (LN_contrapartes.contraparte = LN_gestiones.contraparte
AND LN_docs.gestion = LN_gestiones.gestion)
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
LEFT OUTER JOIN balances_contables ON LN_docs.id_externo = balances_contables.id_balance
LEFT OUTER JOIN monedas ON balances_contables.moneda = monedas.moneda
LEFT OUTER JOIN users users1 ON LN_docs.ingresado_por = users1.user_id
LEFT OUTER JOIN users users2 ON LN_docs.rechazado_por = users2.user_id
LEFT OUTER JOIN users users3 ON LN_docs.verificado_backend_por = users3.user_id
LEFT OUTER JOIN users users4 ON LN_docs.verificado_cliente_por = users4.user_id
LEFT OUTER JOIN users users5 ON LN_docs.created_by = users5.user_id
LEFT OUTER JOIN users users6 ON LN_docs.modified_by = users6.user_id
WHERE LN_contrapartes.contraparte = @p_contraparte
AND LN_gestiones.desde <= @fecha_gestion
AND LN_gestiones.hasta >= @fecha_gestion
AND LN_docs.estado_doc != 'X'
AND (LN_docs.aplica = 1 OR
(LN_docs.aplica = 0 and
not exists (select * from LN_docs b
where b.contraparte = ln_docs.contraparte
and b.tipo_doc = ln_docs.tipo_doc
and ISNULL(b.inicio_ejercicio, '2001-01-01') = ISNULL(ln_docs.inicio_ejercicio, '2001-01-01')
and b.gestion = ln_docs.gestion
and b.estado_doc != 'X'
and b.aplica = 1))
)
ORDER BY clientes.nombre_cliente, padrones.nombre_persona, LN_docs.aplica desc, orden_estado, LN_set_tipo_doc.orden, LN_tipos_doc.nombre_tipo_doc, LN_docs.doc_version
END ELSE
IF (@accion = 'DOCUMENTOS_POR_GESTION') BEGIN
/* Como la acción 'DOCUMENTOS_GESTION_ACTIVA',
pero toma todos los documentos que figuran en la gestion (de la fecha enviada como parametro),
sin tener en cuenta si la familia actual tiene el documento, si esta en el set de documentos, etc.
porque puede ocurrir que según la gestión esté en distinta familia, o que se haya cambiado
la configuración de set de documentos.
Por eso, toma todos los documentos que no estén en estado 'X' o aplica = 0,
de la gestión que estamos buscando */
SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.tipo_doc,
LN_docs.doc_version,
IIF(ln_docs.aplica = 0, 'N',LN_docs.estado_doc) as estado_doc,
LN_docs.doc_log, LN_docs.doc_attach,
IIF(ln_docs.aplica = 0, 'No solicitado',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'Pendiente de ingreso'
WHEN LN_docs.estado_doc = 'I' THEN 'Ingresado'
WHEN LN_docs.estado_doc = 'R' THEN 'Rechazado'
WHEN LN_docs.estado_doc = 'V' THEN 'Verificado'
END) AS estado_documento,
IIF(ln_docs.aplica = 0, 'text-info',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'text-info'
WHEN LN_docs.estado_doc = 'I' THEN 'text-warning'
WHEN LN_docs.estado_doc = 'R' THEN 'text-danger'
WHEN LN_docs.estado_doc = 'V' THEN 'text-success'
END) AS class_estado,
IIF(ln_docs.aplica = 0, 'minus',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'cloud-upload fa-cloud-upload-alt'
WHEN LN_docs.estado_doc = 'I' THEN 'exclamation'
WHEN LN_docs.estado_doc = 'R' THEN 'times'
WHEN LN_docs.estado_doc = 'V' THEN 'check'
END) AS icon_estado,
IIF(ln_docs.aplica = 0, '999',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 1
WHEN LN_docs.estado_doc = 'I' THEN 3
WHEN LN_docs.estado_doc = 'R' THEN 2
WHEN LN_docs.estado_doc = 'V' THEN 4
END) AS orden_estado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 112)) AS fecha_vigencia,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 103)) AS fecha_vigencia_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 112)) AS vencimiento_carga,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 103)) AS vencimiento_carga_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 112)) AS created,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 103)) AS created_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 112)) AS modified,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 103)) AS modified_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 112)) AS ingresado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 103)) AS ingresado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 112)) AS rechazado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 103)) AS rechazado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 112)) AS verificado_backend,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 103)) AS verificado_backend_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 112)) AS verificado_cliente,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 103)) AS verificado_cliente_dmy,
ISNULL(LN_tipos_doc.es_balance, 0) AS es_balance,
CONVERT(VARCHAR(10), LN_docs.inicio_ejercicio, 103) AS inicio_ejercicio,
CONVERT(VARCHAR(10), LN_docs.fin_ejercicio, 103) AS fin_ejercicio,
LN_docs.gestion,
LN_docs.ingresado_por, LN_docs.rechazado_por, LN_docs.verificado_backend_por,
LN_docs.verificado_cliente_por, LN_docs.created_by, LN_docs.modified_by,
clientes.nombre_cliente, padrones.nombre_persona, padrones.identificador,
padrones.numero, identificadores.abreviatura, identificadores.country_code,
country.country_name, LN_contrapartes.activo, LN_contrapartes.nombre_contacto,
LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.tipo_vigencia, LN_docs.id_externo,
users1.first_name + ' ' + users1.last_name AS ingresado_por_usuario,
users2.first_name + ' ' + users2.last_name AS rechazado_por_usuario,
users3.first_name + ' ' + users3.last_name AS verificado_backend_por_usuario,
users4.first_name + ' ' + users4.last_name AS verificado_cliente_por_usuario,
users5.first_name + ' ' + users5.last_name AS created_by_usuario,
users6.first_name + ' ' + users6.last_name AS modified_by_usuario,
balances_contables.id_balance,
balances_contables.fecha_balance, balances_contables.ejercicio,
balances_contables.periodo, balances_contables.visible,
balances_contables.estado, balances_contables.ruta_archivo,
convert(varchar, balances_contables.fecha_balance, 103) as fecha_cierre,
balances_contables.moneda, monedas.nombre_moneda
FROM LN_docs
INNER JOIN clientes ON LN_docs.cliente = clientes.cliente
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
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
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_gestiones ON (LN_contrapartes.contraparte = LN_gestiones.contraparte
AND LN_docs.gestion = LN_gestiones.gestion)
/*
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
*/
LEFT OUTER JOIN balances_contables ON LN_docs.id_externo = balances_contables.id_balance
LEFT OUTER JOIN monedas ON balances_contables.moneda = monedas.moneda
LEFT OUTER JOIN users users1 ON LN_docs.ingresado_por = users1.user_id
LEFT OUTER JOIN users users2 ON LN_docs.rechazado_por = users2.user_id
LEFT OUTER JOIN users users3 ON LN_docs.verificado_backend_por = users3.user_id
LEFT OUTER JOIN users users4 ON LN_docs.verificado_cliente_por = users4.user_id
LEFT OUTER JOIN users users5 ON LN_docs.created_by = users5.user_id
LEFT OUTER JOIN users users6 ON LN_docs.modified_by = users6.user_id
WHERE LN_contrapartes.contraparte = @p_contraparte
AND LN_gestiones.desde <= @fecha_gestion
AND LN_gestiones.hasta >= @fecha_gestion
AND LN_docs.estado_doc != 'X'
AND (LN_docs.aplica = 1 OR
(LN_docs.aplica = 0 and
not exists (select * from LN_docs b
where b.contraparte = ln_docs.contraparte
and b.tipo_doc = ln_docs.tipo_doc
and ISNULL(b.inicio_ejercicio, '2001-01-01') = ISNULL(ln_docs.inicio_ejercicio, '2001-01-01')
and b.gestion = ln_docs.gestion
and b.estado_doc != 'X'
and b.aplica = 1))
)
ORDER BY clientes.nombre_cliente, padrones.nombre_persona, LN_docs.aplica desc, orden_estado, LN_tipos_doc.nombre_tipo_doc, LN_docs.doc_version
END ELSE
IF (@accion = 'PRODUCTO_SUBCONTRATISTAS') BEGIN
/* dada una contraparte, determinar si puede dar de alta subcontratistas
en función de los productos asociados al cliente y la familia a la
que pertenece la misma */
select LN_productos.producto
from LN_contraparte_familias
inner join LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
inner join LN_familia_productos ON LN_familias.familia = LN_familia_productos.familia
inner join LN_cliente_productos ON (LN_familias.cliente = LN_cliente_productos.cliente
AND LN_familia_productos.producto = LN_cliente_productos.producto)
inner join LN_productos on LN_cliente_productos.producto = LN_productos.producto
where LN_contraparte_familias.contraparte = @p_contraparte
AND LN_productos.subcontratistas = 1
AND LN_familias.visible = 1
AND LN_familia_productos.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_productos.visible = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
END ELSE
IF (@accion = 'DOCUMENTOS_SUBCONTRATISTAS') BEGIN
/* dada una contraparte (PADRE), determinar si existen productos del tipo documentación
asociada a sus subcontratistas, a través de las subfamilias correspondientes */
select LN_productos.producto
from LN_contraparte_familias
inner join LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
inner join LN_familia_productos ON LN_familias.familia = LN_familia_productos.familia
inner join LN_cliente_productos ON (LN_familias.cliente = LN_cliente_productos.cliente
AND LN_familia_productos.producto = LN_cliente_productos.producto)
inner join LN_productos on LN_cliente_productos.producto = LN_productos.producto
/* este join es para exigir que las subfamilias de subcontratistas estén vinculadas
a al menos una familia de la contraparte padre */
inner join (select LN_subfamilias.familia
from LN_subfamilias
inner join LN_familias on LN_subfamilias.familia = LN_familias.familia
inner join LN_contraparte_familias on LN_subfamilias.familia_padre = LN_contraparte_familias.familia
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_familias.subfamilia = 1
group by LN_subfamilias.familia) subf ON LN_familia_productos.familia = subf.familia
where LN_contrapartes.id_padre = @p_contraparte
AND LN_contrapartes.subcontratista = 1
AND LN_productos.documentos = 1
AND LN_familias.visible = 1
AND LN_familia_productos.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_productos.visible = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
group by LN_productos.producto
END ELSE
/* Específico para el update de datos de contraparte desde el backend */
IF (@accion = 'UPDATE_BACKEND') BEGIN
UPDATE LN_contrapartes SET
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
pais_servicio = @pais_servicio,
codigo_idioma = @p_codigo_idioma,
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
END ELSE
/* Devolver un query con una columna modalidad_login con valores 'T' o 'L' según configuración --por tax id o por link */
IF (@accion = 'MODALIDAD_LOGIN') BEGIN
if (@p_contraparte is not null) begin
declare @modo varchar(1) = 'L', @ml varchar(1)
DECLARE Familias CURSOR FOR
select distinct ISNULL(LN_familias.modalidad_login, 'T') AS modalidad_login
from LN_contrapartes inner join LN_contraparte_familias on
LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on (LN_contraparte_familias.familia = LN_familias.familia
and LN_contrapartes.cliente = LN_familias.cliente)
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_contraparte_familias.activo = 1
and LN_familias.visible = 1
Open Familias
Fetch next from Familias into @ml
While @@FETCH_STATUS = 0 begin
if (@modo != 'T') begin
set @modo = @ml
end
Fetch next from Familias into @ml
End
Close Familias
Deallocate Familias
SELECT @p_contraparte AS contraparte, @modo AS modalidad_login
end
END ELSE
IF (@accion = 'NUEVA_GESTION') BEGIN
/* Busco la gestión activa */
select @gest = gestion, @cliente = cliente
from LN_gestiones
where contraparte = @p_contraparte
and desde <= GETDATE()
and hasta >= GETDATE()
/* Si no hay gestión activa, se busca la más reciente */
if (@gest is null)
select top 1 @gest = gestion, @cliente = cliente
from LN_gestiones
where contraparte = @p_contraparte
and hasta < convert(date, GETDATE())
order by hasta DESC
else
/* gestion no finalizada, actualizo la vigente hasta un día antes de hoy */
update LN_gestiones set
hasta = CONVERT(DATE, DATEADD(DAY,-1,GETDATE())),
vigente = 0,
modified = GETDATE(),
modified_by = @p_user_id
where gestion = @gest
if (@gest is not null) begin
INSERT INTO LN_gestiones
(cliente, contraparte, desde, hasta, vigente, created, created_by)
VALUES
(@cliente, @p_contraparte,
iif(@p_vigencia_desde is null, CONVERT(DATE,GETDATE()), @p_vigencia_desde),
iif(@p_vigencia_hasta is null, '2099-12-31', @p_vigencia_hasta),
1, GETDATE(), @p_user_id)
SET @nueva_gestion = SCOPE_IDENTITY()
UPDATE LN_contrapartes SET
carga_inicial = 1,
limite_carga_inicial = DATEADD(MINUTE,-1, CONVERT(DATETIME,DATEADD(DAY,15,CONVERT(DATE, GETDATE())))),
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
/* Crear la documentación de la nueva gestión */
EXEC LN_actualizar_legajo @p_contraparte, @nueva_gestion, @p_user_id
/* Traslado de balances a la nueva gestión */
UPDATE LN_docs SET
fecha_vigencia = Anteriores.fecha_vigencia,
ingresado = Anteriores.ingresado,
ingresado_por = Anteriores.ingresado_por,
verificado_backend = Anteriores.verificado_backend,
verificado_backend_por = Anteriores.verificado_backend_por,
estado_doc = Anteriores.estado_doc,
id_externo = Anteriores.id_externo,
aplica = Anteriores.aplica
FROM LN_docs INNER JOIN LN_docs Anteriores ON
(LN_docs.tipo_doc = Anteriores.tipo_doc
and LN_docs.contraparte = Anteriores.contraparte
and LN_docs.inicio_ejercicio = Anteriores.inicio_ejercicio
and LN_docs.fin_ejercicio = Anteriores.fin_ejercicio)
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
WHERE LN_docs.contraparte = @p_contraparte
AND LN_docs.gestion = @nueva_gestion
AND LN_tipos_doc.es_balance = 1
AND Anteriores.gestion = @gest
AND Anteriores.aplica = 1
/* Recálculo de indicadores */
EXEC LN_contrapartes_queue_ 'insert',NULL,@p_contraparte
end
END ELSE
IF (@accion = 'prepagos') BEGIN
if (@p_contraparte is null) begin
if (@p_transact_id is null)
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
order by pagos_transacciones.fecha_transaccion desc
else
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and pagos_transacciones.transact_id = @p_transact_id
order by pagos_transacciones.fecha_transaccion desc
end
else begin
if (@p_transact_id is null)
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and LN_contrapartes.contraparte = @p_contraparte
order by pagos_transacciones.fecha_transaccion desc
else
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and LN_contrapartes.contraparte = @p_contraparte
and pagos_transacciones.transact_id = @p_transact_id
order by pagos_transacciones.fecha_transaccion desc
end
END ELSE
IF (@accion = 'generar_prepagos') BEGIN
if (@p_contraparte is not null) begin
declare @modalidad_pago varchar(2)
declare @country varchar(2)
declare @gestion_hasta date
declare @id_producto int = 47
select @cliente = LN_contrapartes.cliente,
@modalidad_pago = LN_contrapartes.modalidad_pago,
@country = identificadores.country_code,
@gestion_hasta = LN_gestiones.hasta,
@id_producto = LN_contrapartes.servicio_contratado
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
if (@modalidad_pago = 'PP') begin
declare @familia int
--declare @id_producto int = (select 47 from LN_familias where familia = (select familia from LN_contraparte_familias where contraparte = @contraparte ))
declare @id_pago int = NULL
declare @valor decimal(18,2)
declare @moneda varchar(3)
declare @vigencia datetime
declare @periodicidad varchar(1)
declare @transact_id int
declare Familias cursor for
select familia from LN_contraparte_familias where contraparte = @p_contraparte and activo = 1
Open Familias
Fetch next from Familias into @familia
While (@@FETCH_STATUS = 0) begin
if (@country = 'AR') begin
declare Pagos cursor for
select iif(personalizado.id_pago is not null,personalizado.id_pago,cpp.id_pago) as id_pago,
iif(personalizado.valor is not null,personalizado.valor,cpp.valor) as valor,
iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) as moneda,
cpp.periodicidad
from clientes_productos_pagos cpp
left join clientes_productos_pago_personalizado personalizado
on (cpp.id_pago = personalizado.id_pago
and personalizado.familia = @familia)
where cpp.activo = 1 and cpp.cliente = @cliente and cpp.id_producto = @id_producto
and iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) = 'ARS'
end
else begin
declare Pagos cursor for
select iif(personalizado.id_pago is not null,personalizado.id_pago,cpp.id_pago) as id_pago,
iif(personalizado.valor is not null,personalizado.valor,cpp.valor) as valor,
iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) as moneda,
cpp.periodicidad
from clientes_productos_pagos cpp
/* 26 de Marzo de 2020 cambiado momentáneamente a las 20:26 por AGB de left join a inner join */
left join clientes_productos_pago_personalizado personalizado
on (cpp.id_pago = personalizado.id_pago
and personalizado.familia = @familia)
where cpp.activo = 1 and cpp.cliente = @cliente and cpp.id_producto = @id_producto
and iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) != 'ARS'
end
Open Pagos
Fetch next from Pagos into @id_pago, @valor, @moneda, @periodicidad
While (@@FETCH_STATUS = 0) begin
-- si no existe ingresado un pago vigente para la contraparte
if NOT EXISTS (select id_pago from pagos_transacciones
where id_pago = @id_pago
and contraparte = @p_contraparte
and vigencia > GETDATE()) begin
SET @vigencia = CASE
WHEN @periodicidad = 'M' THEN dateadd(second,-1, dateadd(day,1, convert(datetime,eomonth(getdate()) )))
WHEN @periodicidad = 'E' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, convert(date, getdate())) ))
WHEN @periodicidad = 'B' THEN dateadd(second,-1, dateadd(day,1, iif(month(getdate()) % 2 = 0, convert(datetime,eomonth(getdate())) , convert(datetime,eomonth(dateadd(month, 1,getdate()))) ) ))
WHEN @periodicidad = 'T' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%3 = 0, 0, 3-month(getdate())%3), getdate())) ) ))
WHEN @periodicidad = 'C' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%4 = 0, 0, 4-month(getdate())%4), getdate())) ) ))
WHEN @periodicidad = 'S' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%6 = 0, 0, 6-month(getdate())%6), getdate())) ) ))
WHEN @periodicidad = 'A' THEN DATETIMEFROMPARTS(year(getdate()),12,31,23,59,59,0)
WHEN @periodicidad = 'N' THEN dateadd(second,-1,dateadd(day,1,convert(datetime, @gestion_hasta)))
END
insert into pagos_transacciones
(id_pago, plataforma_pago, merchant_id, contraparte, user_id, producto, vigencia, created, valor, moneda, status)
values
(@id_pago, iif(@country='AR','MPAGO','2CHECKOUT'), null, @p_contraparte, @p_user_id, @id_producto, @vigencia, GETDATE(), @valor, @moneda, 'pending')
set @transact_id = SCOPE_IDENTITY()
insert into pagos_trazabilidad
(transact_id, user_id, horario, detalle)
values
(@transact_id, @p_user_id, GETDATE(), 'Ingreso de pago pendiente.')
end
Fetch next from Pagos into @id_pago, @valor, @moneda, @periodicidad
end
Close Pagos
Deallocate Pagos
Fetch next from Familias into @familia
end
Close Familias
Deallocate Familias
end
end
END ELSE
-- Registrar el acceso por link a la web de legajos por parte de la contraparte
IF (@accion = 'registrar_acceso') BEGIN
if (@p_contraparte > 0) begin
update LN_contrapartes SET
clave_temporal = 0,
clave_cambio = GETDATE(),
clave_expira = '2050-12-30 23:59'
where contraparte = @p_contraparte
and clave_temporal = 1
and clave_cambio is null
update LN_contrapartes SET
last_login = convert(smalldatetime, GETDATE()),
ultimo_acceso = GETDATE()
where contraparte = @p_contraparte
end
END ELSE
-- Actualizar la fecha límite de carga inicial (usualmente luego de enviar el mail con el link)
-- ATENCION: enviarlo en el parámetro DATETIME @p_fecha_ultimo_cierre
IF (@accion = 'actualizar_carga_inicial') BEGIN
if (@p_contraparte > 0 and @p_fecha_ultimo_cierre is not null)
update LN_contrapartes SET
limite_carga_inicial = @p_fecha_ultimo_cierre,
carga_inicial = 1
where contraparte = @p_contraparte
END ELSE
IF (@accion = 'activar_informe') BEGIN
-- Dado el id de contraparte que tiene modo prepago, reactivar el informe en Carga Comercial para que esté visible en el panel de control del BLUE
if (@p_contraparte > 0) begin
DECLARE @informe int = NULL
DECLARE @estado_actual varchar(1) = NULL
DECLARE @asignado int = NULL
DECLARE @informe_log varchar(max)
DECLARE @preffix varchar(200) = ''
DECLARE @docs int = 0
DECLARE @id_tipo_informe int = NULL
DECLARE @item_contrato int = NULL
DECLARE @producto smallint = NULL
DECLARE @generico int = NULL
DECLARE @por_pais int = NULL
-- icontrato1 asociado al tipo de informe encontrato por pais
-- icontrato2 asociado al tipo de informe encontrado como genérico
-- prod1 asociado al tipo de informe encontrato por pais
-- prod2 asociado al tipo de informe encontrado como genérico
DECLARE @icontrato1 int = NULL, @icontrato2 int = NULL
DECLARE @prod1 smallint = NULL, @prod2 smallint = NULL
declare @user int, @datamanager int
declare @fecha_limite_doc datetime = NULL, @fecha_comprometida datetime = NULL
declare @producto_led int
declare @nuevoinf int = null
DECLARE @tipo_tarea_gestion int = NULL
DECLARE @usuario_gestion INT = NULL
DECLARE @id INT, @pais VARCHAR(2), @solicitud INT, @item INT, @prod SMALLINT
if(@p_user_id is not null)
select @preffix = '['+isnull(first_name,'')+' '+isnull(last_name,'')+' - '+convert(varchar(10),getdate(),103)+' '+convert(varchar(5),getdate(),14)+']: '
from users where user_id = @p_user_id
--- traigo los datos del informe (si existe)
select @informe = informes.informe,
@id_tipo_informe = id_tipo_informe,
@estado_actual = informes.estado_informe,
@asignado = informes.asignado,
@informe_log = convert(varchar(max),informes.historial_informe),
@datamanager = informes.datamanager
from informes
inner join LN_demo on informes.informe = LN_demo.informe
inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
and LN_demo.gestion = LN_gestiones.gestion)
where LN_demo.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and informes.informe_padre IS NULL
-- BUSCO si la contraparte va a tener que subir documentos (hay gestión)
select @docs = count(*)
from LN_set_tipo_doc
inner join LN_familias on LN_set_tipo_doc.set_doc = LN_familias.set_doc
inner join LN_contraparte_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on LN_familias.familia = LN_familia_productos.familia
inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
left outer join LN_tipos_doc_carga_verif on
(LN_set_tipo_doc.tipo_doc = LN_tipos_doc_carga_verif.tipo_doc
and LN_familias.cliente = LN_tipos_doc_carga_verif.cliente)
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_tipos_doc_carga_verif.quien_carga, 'L') = 'L'
and LN_productos.documentos = 1
and LN_productos.visible = 1
-- El informe puede existir en carga comercial
if (@informe is not null AND @estado_actual = 'X') begin
-- si el informe está en carga comercial y fue cargado con usuario asignado lo pongo no calificado, sino ingresado
-- fecha comprometida estimada en 14 días, 7 de gestión y 7 de elaboración.
if (@datamanager is null) begin
-- Si no tiene datamanager le asignamos uno
select TOP 1 @datamanager = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and roles.datamanager = 1
and users.active_user = 'Y'
update informes set datamanager = @datamanager where informe = @informe
end
if (@asignado is not null) begin
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a NO calificado por cobranza del pago correspondiente.'
update informes set estado_informe = 'A',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
end else begin
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a ingresado por cobranza del pago correspondiente.'
update informes set estado_informe = 'I',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
-- Lo asignamos
select TOP 1 @asignado = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a NO calificado por cobranza del pago correspondiente.'
update informes set estado_informe = 'A',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
end
if (@docs > 0)
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a En gestión.'
else
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a En proceso.'
-- Seteamos estado y fecha comprometida en función de si es con o sin gestión.
update informes set estado_informe = iif(@docs > 0, 'P', 'E'),
fecha_comprometida = iif(@docs > 0, convert(date, dateadd(day,14,getdate())), convert(date, dateadd(day, 7,getdate()))),
historial_informe = @informe_log
where informe = @informe
--- Si hay documentos (gestión) tenemos que activar la tarea de gestión
if (@docs > 0) begin
select @tipo_tarea_gestion = tipos_subinformes.id_tipo_subinforme
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
where tipos_subinformes.id_tipo_informe = @id_tipo_informe
and tareas.genera_solicitud_doc = 1
if (@tipo_tarea_gestion is not null) begin
----- //// HARDCODE PARA PREPAGOS LA GESTION SE LA ASIGNAMOS A GISELE FERNANDES USER ID 89681892
select TOP 1 @usuario_gestion = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @tipo_tarea_gestion
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
and users.user_id = 89681892
if (@usuario_gestion is not null) begin
set @fecha_limite_doc = DATETIMEFROMPARTS(Year(dateadd(day,7,getdate())),Month(dateadd(day,7,getdate())),Day(dateadd(day,7,getdate())),23,59,59,0)
EXEC LN_informes 'activar_gestion_documentacion',@p_contraparte,@informe,@user,NULL,NULL,NULL,1,'E',@user,NULL,@usuario_gestion,@cliente,@fecha_limite_doc
end
end
end
--//////////////----
end else begin
--- NO EXISTE INFORME, DEBERIA CREARSE: determino el tipo de informe según familia, con/sin gestión y pais
if (@informe is null) begin
select @country_code = identificadores.country_code,
@cliente = LN_contrapartes.cliente
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
where LN_contrapartes.contraparte = @p_contraparte
-- busco los tipos de informe posibles según familia
DECLARE TiposInforme CURSOR FOR
select tipos_informe.id_tipo_informe, tipos_informe.country_code,
iif(informes_con_solicitud.id_tipo_informe is not null, 1, 0) as tiene_solicitud,
contratos_items.item_contrato, contratos_items.producto
from tipos_informe
INNER JOIN LN_familias_tipo_informe on tipos_informe.id_tipo_informe = LN_familias_tipo_informe.id_tipo_informe
INNER JOIN LN_contraparte_familias on LN_familias_tipo_informe.familia = LN_contraparte_familias.familia
INNER JOIN LN_familias on LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_contrapartes on LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
INNER JOIN padrones on LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores on padrones.identificador = identificadores.identificador
INNER JOIN grupos_clientes on LN_familias.cliente = grupos_clientes.cliente
INNER JOIN contratos_grupos on grupos_clientes.grupo = contratos_grupos.grupo
INNER JOIN contratos_items on contratos_grupos.id_contrato = contratos_items.id_contrato
INNER JOIN productos on (contratos_items.producto = productos.producto
and tipos_informe.grupo_informes = productos.grupo_informes)
LEFT OUTER JOIN
(select tipos_subinformes.id_tipo_informe
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
inner join tipos_informe on tipos_subinformes.id_tipo_informe = tipos_informe.id_tipo_informe
where tipos_informe.vigente = 1
and tareas.vigente = 1
and tareas.genera_solicitud_doc = 1
group by tipos_subinformes.id_tipo_informe) informes_con_solicitud on tipos_informe.id_tipo_informe = informes_con_solicitud.id_tipo_informe
where LN_contraparte_familias.contraparte = @p_contraparte
and contratos_grupos.estado_contrato = 'A'
and contratos_grupos.fecha_vigencia <= GETDATE()
and contratos_grupos.fecha_vencimiento >= GETDATE()
group by tipos_informe.id_tipo_informe, tipos_informe.country_code, informes_con_solicitud.id_tipo_informe,
contratos_items.item_contrato, contratos_items.producto
Open TiposInforme
FETCH NEXT FROM TiposInforme INTO @id, @pais, @solicitud, @item, @prod
WHILE @@FETCH_STATUS = 0 BEGIN
if (@solicitud > 0) begin
-- con solicitud, si la contraparte tiene legajo, busco genérico o del país
if (@docs > 0) begin
-- el pais del tipo de informe es Argentina y la contraparte Argentina
if (@pais = 'AR' AND @pais = @country_code) begin
set @por_pais = @id
set @icontrato1 = @item
set @prod1 = @prod
end else begin
-- Es un genérico (tipo de informe sin país)
if (@pais is null) begin
set @generico = @id
set @icontrato2 = @item
set @prod2 = @prod
end
end
end
end else begin
-- confidencial, sólo evalúo si la contraparte no tiene legajo
if (@docs = 0) begin
if (@pais = 'AR' AND @pais = @country_code) begin
set @por_pais = @id
set @icontrato1 = @item
set @prod1 = @prod
end else begin
if (@pais is null) begin
set @generico = @id
set @icontrato2 = @item
set @prod2 = @prod
end
end
end
end
FETCH NEXT FROM TiposInforme INTO @id, @pais, @solicitud, @item, @prod
END
Close TiposInforme
Deallocate TiposInforme
-- Verifico si encontró un genérico o uno por país en cuyo caso prevalece
SET @id_tipo_informe = iif(@por_pais is not null, @por_pais, iif(@generico is not null, @generico, NULL))
SET @item_contrato = iif(@por_pais is not null, @icontrato1, iif(@generico is not null, @icontrato2, NULL))
SET @producto = iif(@por_pais is not null, @prod1, iif(@generico is not null, @prod2, NULL))
if (@id_tipo_informe is not null AND @item_contrato is not null AND @producto is not null) begin
-- GENERAR INFORME Y TAREAS
select @user = user_id from users where username = 'sa'
select TOP 1 @datamanager = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and roles.datamanager = 1
and users.active_user = 'Y'
select TOP 1 @asignado = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
select @producto_led = LN_familia_productos.producto
from LN_familia_productos
inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
where LN_productos.dossier = 1
and LN_productos.visible = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and LN_contraparte_familias.contraparte = @p_contraparte
-- 7 días sin gestión, 14 con gestión
set @fecha_comprometida = iif(@docs > 0, convert(date,dateadd(day,14,getdate())), convert(date,dateadd(day,7,getdate())))
declare @estado_inicial varchar(1) = iif(@docs > 0, 'P', 'E')
if not exists (select LN_demo.contraparte
from LN_demo inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
and LN_demo.gestion = LN_gestiones.gestion)
where LN_demo.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_demo.producto = @producto_led) begin
insert into LN_demo (contraparte, gestion, producto, created, visible)
select contraparte, gestion, @producto_led as producto, GETDATE() as created, 0 as visible
from LN_gestiones
where contraparte = @p_contraparte
and desde <= GETDATE()
and hasta >= GETDATE()
end
EXEC LN_informes 'ingresar_informe',@p_contraparte,@nuevoinf OUTPUT,@user,@item_contrato,@producto,@id_tipo_informe,5,@estado_inicial, @user,@datamanager,@asignado,@cliente,@fecha_limite_doc,@producto_led,@fecha_comprometida,'INFORME GENERADO AUTOMATICAMENTE POR INGRESO DEL PAGO DE LA CONTRAPARTE EN LED.'
if (@docs > 0) begin
-- si hay documentos hay que activar la tarea de gestión
select @tipo_tarea_gestion = tipos_subinformes.id_tipo_subinforme
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
where tipos_subinformes.id_tipo_informe = @id_tipo_informe
and tareas.genera_solicitud_doc = 1
if (@tipo_tarea_gestion is not null) begin
----- //// HARDCODE PARA PREPAGOS LA GESTION SE LA ASIGNAMOS A GISELE FERNANDES USER ID 89681892
select TOP 1 @usuario_gestion = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @tipo_tarea_gestion
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
and users.user_id = 89681892
if (@usuario_gestion is not null) begin
set @fecha_limite_doc = DATETIMEFROMPARTS(Year(dateadd(day,7,getdate())),Month(dateadd(day,7,getdate())),Day(dateadd(day,7,getdate())),23,59,59,0)
EXEC LN_informes 'activar_gestion_documentacion',@p_contraparte,@nuevoinf,@user,NULL,NULL,NULL,1,'E',@user,NULL,@usuario_gestion,@cliente,@fecha_limite_doc
end
end
end
end
end
end
end
END ELSE
-- Dado el id de contraparte, busca por cuit en la tabla de domicilios_todos, arma el string y lo graba en el campo 'domicilio'
IF (@accion = 'buscar_domicilio') BEGIN
if (@p_contraparte > 0) begin
declare @cuit varchar(30) = NULL
select @cuit = padrones.identificacion from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
where LN_contrapartes.contraparte = @p_contraparte
if (@cuit IS NOT NULL) begin
declare @domicilio varchar(512)
declare @loc_nombre varchar(150)
declare @prv_nombre varchar(100)
declare @codpos varchar(10)
declare @pai_nombre varchar(100)
declare @full_domicilio varchar(500)
select
@domicilio = ISNULL(domicilio, ''),
@loc_nombre = ISNULL(loc_nombre, ''),
@prv_nombre = ISNULL(prv_nombre, ''),
@codpos = ISNULL(codpos, '') ,
@pai_nombre = ISNULL(pai_nombre, '')
from domicilios_todos
where cuit = @cuit
and tipo_domicilio = 'F'
set @full_domicilio = LEFT( @domicilio + iif(@loc_nombre !='', ' - ', '')
+ @loc_nombre
+ iif(@prv_nombre !='', ' - ', '')
+ @prv_nombre
+ iif(@codpos !='', ' (' + @codpos + ')', '')
+ iif(@pai_nombre !='', ' - ', '')
+ @pai_nombre
, 500)
update LN_contrapartes set domicilio = iif(@full_domicilio != '', @full_domicilio, NULL) where contraparte = @p_contraparte
end
end
END
END
GO
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
/*
select * from users where username='f0000'
exec ln_contrapartes_ 'insert',null,7,9700868,null,1,null,null,null,null,1063064806
Se agregó para la accion SEARCH la consideración del parámetro @p_id_padron
cuando @p_cliente IS NOT NULL para poder buscar una contraparte por id_padron
dentro del cliente y eliminar posibilidad de duplicaciones.
select * from ln_contrapartes where id_padron = (select id_padron from padrones where identificacion = '30708841532')
exec ln_contrapartes_ 'DOCUMENTOS_GESTION_ACTIVA',31286,null,null,null,null,null,null,null,null,null,null,null,null,null
select * from ln_docs where contraparte = 394 and aplica = 0
exec LN_contrapartes_ 'CLIENTE',107586,null,null,null,null,null,null,null,null,null,null,null,null
*/
-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_contrapartes_sc
-- Add the parameters for the stored procedure here
@accion varchar(40),
@p_contraparte int OUTPUT,
@p_id_padron int,
@p_cliente int,
@p_datos_comerciales text,
@p_activo tinyint,
@p_nombre_contacto varchar(512),
@p_email_contacto varchar(512),
@p_telefono_contacto varchar(512),
@p_fecha_ultimo_cierre datetime,
@p_periodicidad_ejercicio varchar(1),
@p_clave varchar(80),
@p_vigencia_desde date,
@p_vigencia_hasta date,
@p_user_id int = NULL,
@p_subcontratista bit = 0,
@p_id_padre int = NULL,
@p_modalidad_pago varchar(2) = 'CC',
@p_domicilio varchar(500) = NULL,
@p_transact_id int = NULL, -- para consultar prepagos por id de transaccion
@pais_servicio varchar(2) = 'AR',
@p_fecha_gestion varchar(10) = null,
@p_codigo_idioma varchar(3) = 'spa',
@servicio_contratado int = 47,
@p_familia int = null,
@sector INT = NULL,
@responsable VARCHAR(512) = NULL,
@tipo_servicio INT = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @fecha_gestion date
if (isnull(@p_fecha_gestion,'') = '')
begin
set @fecha_gestion = convert(date, getdate())
end
else
begin
set @fecha_gestion = convert(date, @p_fecha_gestion)
end
-- Insert statements for procedure here
DECLARE @country_code VARCHAR(2)
DECLARE @clave_anterior VARCHAR(80)
DECLARE @gest int = NULL, @cliente int = NULL, @nueva_gestion int = NULL
IF (@accion = 'CLIENTE' AND @p_contraparte > 0) BEGIN
select LN_contrapartes.contraparte, LN_contrapartes.cliente, LN_contrapartes.servicio_contratado,
LN_contrapartes.id_imperium, LN_contrapartes.pais_servicio, padrones.nombre_persona, padrones.id_padron,
padrones.identificador, padrones.numero, padrones.identificacion, identificadores.abreviatura,
iif(cliente_paises.nombre_local IS NOT NULL, cliente_paises.nombre_local, clientes.nombre_cliente) as nombre_cliente
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join clientes on LN_contrapartes.cliente = clientes.cliente
left outer join cliente_paises on (LN_contrapartes.cliente = cliente_paises.cliente
and LN_contrapartes.pais_servicio = cliente_paises.country_code
and LN_contrapartes.servicio_contratado = cliente_paises.servicio_contratado)
where LN_contrapartes.contraparte = @p_contraparte
END
IF (@accion = 'GESTION') BEGIN
SELECT gestion, cliente, contraparte, desde, hasta
FROM LN_gestiones where contraparte = @p_contraparte
AND vigente = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
END
IF (@accion = 'UPDATE_CONTACTO') BEGIN
UPDATE LN_contrapartes SET
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
modified = GETDATE(),
modified_by = @p_user_id,
pais_servicio = @pais_servicio,
modalidad_pago = @p_modalidad_pago,idTipoServicioPriv = @tipo_servicio,idSectorPriv=@sector,email_ejecutivo_cuenta=@responsable
WHERE contraparte = @p_contraparte
select 'ok'
return
END
IF (@accion = 'INSERT') BEGIN
IF (@p_id_padron > 0 AND @p_cliente > 0) begin
DECLARE @contraparte int
DECLARE @codigo_idioma varchar(3) = NULL
SELECT @country_code = identificadores.country_code,
@codigo_idioma = idiomas.codigo_iso
FROM identificadores
INNER JOIN padrones ON identificadores.identificador = padrones.identificador
INNER JOIN country ON identificadores.country_code = country.country_code
LEFT Outer JOIN idiomas ON country.codigo_idioma = idiomas.codigo_idioma
WHERE padrones.id_padron = @p_id_padron
INSERT INTO LN_contrapartes (id_padron, cliente, country_code, datos_comerciales, activo,
nombre_contacto, email_contacto, telefono_contacto,
fecha_ultimo_cierre, periodicidad_ejercicio, vigencia_desde, vigencia_hasta,
clave, clave_temporal, clave_cambio, clave_expira,
subcontratista, id_padre, codigo_idioma, modalidad_pago,
created, created_by,pais_servicio,servicio_contratado,idTipoServicioPriv,idSectorPriv,email_ejecutivo_cuenta)
VALUES (@p_id_padron, @p_cliente, @country_code, @p_datos_comerciales, 1,
@p_nombre_contacto, @p_email_contacto, @p_telefono_contacto,
CONVERT(DATE,@p_fecha_ultimo_cierre), @p_periodicidad_ejercicio,
@p_vigencia_desde, @p_vigencia_hasta, @p_clave, 1,
NULL, DATEADD(day, 5, getdate()),
@p_subcontratista, @p_id_padre, iif(@codigo_idioma is not null, @codigo_idioma, 'spa'), @p_modalidad_pago,
GETDATE(), @p_user_id,@pais_servicio,@servicio_contratado,@tipo_servicio,@sector,@responsable)
SET @contraparte = SCOPE_IDENTITY()
SET @p_contraparte = @contraparte
exec insertar_trazabilidad 'Alta contrapartes', @p_cliente, 'ALTA_CONTRAPARTE','BACK-WWW', @contraparte,@p_user_id
if (@servicio_contratado = 73) -- IMPERIUM
begin
exec LN_alta_Contratistas 'insert', @p_cliente, @p_id_padron, @p_familia, @p_vigencia_desde, @p_vigencia_hasta, @p_contraparte, @p_user_id
exec insertar_trazabilidad 'Alta contratista', @p_cliente, 'ALTA_CONTRAPARTE','BACK-WWW', @contraparte,@p_user_id
end
SELECT @contraparte AS contraparte
RETURN;
end
END ELSE
IF (@accion = 'UPDATE') BEGIN
/*SELECT @country_code = identificadores.country_code
FROM identificadores INNER JOIN padrones ON identificadores.identificador = padrones.identificador
WHERE padrones.id_padron = @p_id_padron*/
IF (@p_fecha_ultimo_cierre IS NULL)
SELECT @p_fecha_ultimo_cierre = fecha_ultimo_cierre
FROM LN_contrapartes
WHERE contraparte = @p_contraparte
IF (@p_periodicidad_ejercicio IS NULL)
SELECT @p_periodicidad_ejercicio = periodicidad_ejercicio
FROM LN_contrapartes
WHERE contraparte = @p_contraparte
UPDATE LN_contrapartes SET
/*id_padron = @p_id_padron,
cliente = @p_cliente,
country_code = @country_code,*/
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
fecha_ultimo_cierre = CONVERT(DATE,@p_fecha_ultimo_cierre),
periodicidad_ejercicio = @p_periodicidad_ejercicio,
subcontratista = @p_subcontratista,
id_padre = @p_id_padre,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
modified = GETDATE(),
modified_by = @p_user_id,
pais_servicio = @pais_servicio,idTipoServicioPriv = @tipo_servicio,idSectorPriv=@sector,email_ejecutivo_cuenta=@responsable
WHERE contraparte = @p_contraparte
if (@p_domicilio is not null)
UPDATE LN_contrapartes SET domicilio = @p_domicilio where contraparte = @p_contraparte
END ELSE
IF (@accion = 'CHANGE_PASSWORD') BEGIN
SELECT @clave_anterior = clave FROM LN_contrapartes
WHERE contraparte = @p_contraparte
IF (@clave_anterior <> @p_clave) BEGIN
if (@p_user_id > 0)
UPDATE LN_contrapartes SET
clave = @p_clave,
clave_cambio = GETDATE(),
clave_expira = DATEADD(day, 90, getdate()),
clave_temporal = 0,
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
else
UPDATE LN_contrapartes SET
clave = @p_clave,
clave_cambio = GETDATE(),
clave_expira = DATEADD(day, 90, getdate()),
clave_temporal = 0
WHERE contraparte = @p_contraparte
END
END ELSE
IF (@accion = 'SELECT') BEGIN
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto, LN_contrapartes.domicilio,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
LN_contrapartes.subcontratista, LN_contrapartes.id_padre,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(10), LN_contrapartes.clave_cambio, 103) + ' ' + CONVERT(VARCHAR(5), LN_contrapartes.clave_cambio, 14) as clave_cambio_str,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 103) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
CONVERT(VARCHAR(10), LN_contrapartes.last_login, 103) + ' ' + CONVERT(VARCHAR(5), LN_contrapartes.last_login, 14) as last_login_str,
CONVERT(VARCHAR(19), LN_contrapartes.limite_carga_inicial, 103) as limite_carga_inicial,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(10), LN_contrapartes.created, 103) as created_str,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
p2.nombre_persona as nombre_persona_padre,
p2.identificador as identificador_padre,
p2.numero as numero_padre,
p2.identificacion as identificacion_padre,
i2.abreviatura as abreviatura_padre,
c2.country_code as country_code_padre,
c2.country_name as country_name_padre,
CONVERT(VARCHAR,LN_contrapartes.inicio_actividades,103) AS inicio_actividades,
LN_contrapartes.empleados, LN_contrapartes.resenia,
convert(varchar(10),LN_contrapartes.limite_carga_inicial,103) as limite_carga_inicial,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma, ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,
LN_contrapartes.servicio_contratado,
LN_contrapartes.id_imperium,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
LEFT OUTER JOIN LN_contrapartes PADRE on LN_contrapartes.id_padre = PADRE.contraparte
LEFT OUTER JOIN padrones p2 on PADRE.id_padron = p2.id_padron
LEFT OUTER JOIN identificadores i2 on p2.identificador = i2.identificador
LEFT OUTER JOIN country c2 on i2.country_code = c2.country_code
WHERE LN_contrapartes.contraparte = @p_contraparte
END ELSE
IF (@accion = 'SEARCH') BEGIN
if(@p_cliente is null AND @p_activo is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else
if (@p_cliente is not null AND @p_activo is null) begin
if (@p_id_padron is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.id_padron = @p_id_padron
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end
end else
if (@p_cliente is null AND @p_activo is not null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.activo = @p_activo
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else
if (@p_id_padron is null) begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.activo = @p_activo
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end else begin
SELECT LN_contrapartes.contraparte, LN_contrapartes.country_code, LN_contrapartes.cliente,
LN_contrapartes.id_padron, LN_contrapartes.datos_comerciales, LN_contrapartes.activo,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
CONVERT(VARCHAR(10), LN_contrapartes.fecha_ultimo_cierre, 103) AS fecha_ultimo_cierre,
LN_contrapartes.periodicidad_ejercicio,
CONVERT(VARCHAR, LN_contrapartes.vigencia_desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_contrapartes.vigencia_hasta,103) AS vigencia_hasta,
LN_contrapartes.clave, LN_contrapartes.clave_temporal,
CONVERT(VARCHAR(19), LN_contrapartes.clave_cambio, 121) as clave_cambio,
CONVERT(VARCHAR(19), LN_contrapartes.clave_expira, 121) as clave_expira,
CONVERT(VARCHAR(19), LN_contrapartes.last_login, 121) as last_login,
LN_contrapartes.created_by, LN_contrapartes.modified_by,
padrones.identificador, padrones.numero, padrones.nombre_persona, identificadores.abreviatura,
padrones.identificacion, country.country_name, clientes.nombre_cliente,
CONVERT(VARCHAR(19), LN_contrapartes.created, 121) as created,
CONVERT(VARCHAR(19), LN_contrapartes.modified, 121) as modified,
users1.first_name + ' ' + users1.last_name as created_by_user,
users2.first_name + ' ' + users2.last_name as modified_by_user,
ISNULL(LN_contrapartes.codigo_idioma, 'spa') AS codigo_idioma,
ISNULL(LN_contrapartes.modalidad_pago, 'CC') AS modalidad_pago,
LN_contrapartes.pais_servicio,LN_contrapartes.idTipoServicioPriv,LN_contrapartes.idSectorPriv,LN_contrapartes.email_ejecutivo_cuenta
FROM LN_contrapartes
INNER JOIN padrones ON LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores ON padrones.identificador = identificadores.identificador
INNER JOIN clientes ON LN_contrapartes.cliente = clientes.cliente
INNER JOIN country ON LN_contrapartes.country_code = country.country_code
INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id
WHERE LN_contrapartes.cliente = @p_cliente
AND LN_contrapartes.activo = @p_activo
AND LN_contrapartes.id_padron = @p_id_padron
AND LN_contrapartes.subcontratista = 0
-- 24/06/2020
and servicio_contratado = @servicio_contratado
ORDER BY padrones.nombre_persona
end
END ELSE
IF (@accion = 'DELETE') BEGIN
DELETE FROM LN_contrapartes WHERE contraparte = @p_contraparte
END ELSE
IF (@accion = 'NOVEDADES') BEGIN
select LN_contrapartes.contraparte, monitoreos_resultados.cuit,
CONVERT(VARCHAR, monitoreos_resultados.fecha, 103) AS fecha_dmy,
CONVERT(VARCHAR, monitoreos_resultados.fecha, 121) AS fecha,
monitoreos_resultados.tipo_novedad, padrones.nombre_persona,
monitoreos_resultados.seccion_mantenimiento,
monitoreos_resultados.tabla
from monitoreos_resultados
inner join padrones on monitoreos_resultados.cuit = padrones.identificacion
inner join LN_contrapartes on padrones.id_padron = LN_contrapartes.id_padron
where LN_contrapartes.contraparte = @p_contraparte
and monitoreos_resultados.seccion_mantenimiento <> 7
group by LN_contrapartes.contraparte, monitoreos_resultados.cuit,
monitoreos_resultados.fecha, monitoreos_resultados.tipo_novedad,
padrones.nombre_persona, monitoreos_resultados.seccion_mantenimiento,
monitoreos_resultados.tabla
order by monitoreos_resultados.fecha desc, monitoreos_resultados.tipo_novedad
END ELSE
IF (@accion = 'DOCUMENTOS_GESTION_ACTIVA') BEGIN
SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.tipo_doc,
LN_docs.doc_version,
IIF(ln_docs.aplica = 0, 'N',LN_docs.estado_doc) as estado_doc,
LN_docs.doc_log, LN_docs.doc_attach,
IIF(ln_docs.aplica = 0, 'No solicitado',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'Pendiente de ingreso'
WHEN LN_docs.estado_doc = 'I' THEN 'Ingresado'
WHEN LN_docs.estado_doc = 'R' THEN 'Rechazado'
WHEN LN_docs.estado_doc = 'V' THEN 'Verificado'
END) AS estado_documento,
IIF(ln_docs.aplica = 0, 'text-info',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'text-info'
WHEN LN_docs.estado_doc = 'I' THEN 'text-warning'
WHEN LN_docs.estado_doc = 'R' THEN 'text-danger'
WHEN LN_docs.estado_doc = 'V' THEN 'text-success'
END) AS class_estado,
IIF(ln_docs.aplica = 0, 'minus',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'cloud-upload fa-cloud-upload-alt'
WHEN LN_docs.estado_doc = 'I' THEN 'exclamation'
WHEN LN_docs.estado_doc = 'R' THEN 'times'
WHEN LN_docs.estado_doc = 'V' THEN 'check'
END) AS icon_estado,
IIF(ln_docs.aplica = 0, '999',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 1
WHEN LN_docs.estado_doc = 'I' THEN 3
WHEN LN_docs.estado_doc = 'R' THEN 2
WHEN LN_docs.estado_doc = 'V' THEN 4
END) AS orden_estado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 112)) AS fecha_vigencia,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 103)) AS fecha_vigencia_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 112)) AS vencimiento_carga,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 103)) AS vencimiento_carga_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 112)) AS created,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 103)) AS created_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 112)) AS modified,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 103)) AS modified_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 112)) AS ingresado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 103)) AS ingresado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 112)) AS rechazado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 103)) AS rechazado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 112)) AS verificado_backend,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 103)) AS verificado_backend_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 112)) AS verificado_cliente,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 103)) AS verificado_cliente_dmy,
ISNULL(LN_tipos_doc.es_balance, 0) AS es_balance,
CONVERT(VARCHAR(10), LN_docs.inicio_ejercicio, 103) AS inicio_ejercicio,
CONVERT(VARCHAR(10), LN_docs.fin_ejercicio, 103) AS fin_ejercicio,
LN_docs.gestion,
LN_docs.ingresado_por, LN_docs.rechazado_por, LN_docs.verificado_backend_por,
LN_docs.verificado_cliente_por, LN_docs.created_by, LN_docs.modified_by,
clientes.nombre_cliente, padrones.nombre_persona, padrones.identificador,
padrones.numero, identificadores.abreviatura, identificadores.country_code,
country.country_name, LN_contrapartes.activo, LN_contrapartes.nombre_contacto,
LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.tipo_vigencia, LN_docs.id_externo,
users1.first_name + ' ' + users1.last_name AS ingresado_por_usuario,
users2.first_name + ' ' + users2.last_name AS rechazado_por_usuario,
users3.first_name + ' ' + users3.last_name AS verificado_backend_por_usuario,
users4.first_name + ' ' + users4.last_name AS verificado_cliente_por_usuario,
users5.first_name + ' ' + users5.last_name AS created_by_usuario,
users6.first_name + ' ' + users6.last_name AS modified_by_usuario,
balances_contables.id_balance,
balances_contables.fecha_balance, balances_contables.ejercicio,
balances_contables.periodo, balances_contables.visible,
balances_contables.estado, balances_contables.ruta_archivo,
convert(varchar, balances_contables.fecha_balance, 103) as fecha_cierre,
balances_contables.moneda, monedas.nombre_moneda
FROM LN_docs
INNER JOIN clientes ON LN_docs.cliente = clientes.cliente
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
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
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_gestiones ON (LN_contrapartes.contraparte = LN_gestiones.contraparte
AND LN_docs.gestion = LN_gestiones.gestion)
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
LEFT OUTER JOIN balances_contables ON LN_docs.id_externo = balances_contables.id_balance
LEFT OUTER JOIN monedas ON balances_contables.moneda = monedas.moneda
LEFT OUTER JOIN users users1 ON LN_docs.ingresado_por = users1.user_id
LEFT OUTER JOIN users users2 ON LN_docs.rechazado_por = users2.user_id
LEFT OUTER JOIN users users3 ON LN_docs.verificado_backend_por = users3.user_id
LEFT OUTER JOIN users users4 ON LN_docs.verificado_cliente_por = users4.user_id
LEFT OUTER JOIN users users5 ON LN_docs.created_by = users5.user_id
LEFT OUTER JOIN users users6 ON LN_docs.modified_by = users6.user_id
WHERE LN_contrapartes.contraparte = @p_contraparte
AND LN_gestiones.desde <= @fecha_gestion
AND LN_gestiones.hasta >= @fecha_gestion
AND LN_docs.estado_doc != 'X'
AND (LN_docs.aplica = 1 OR
(LN_docs.aplica = 0 and
not exists (select * from LN_docs b
where b.contraparte = ln_docs.contraparte
and b.tipo_doc = ln_docs.tipo_doc
and ISNULL(b.inicio_ejercicio, '2001-01-01') = ISNULL(ln_docs.inicio_ejercicio, '2001-01-01')
and b.gestion = ln_docs.gestion
and b.estado_doc != 'X'
and b.aplica = 1))
)
ORDER BY clientes.nombre_cliente, padrones.nombre_persona, LN_docs.aplica desc, orden_estado, LN_set_tipo_doc.orden, LN_tipos_doc.nombre_tipo_doc, LN_docs.doc_version
END ELSE
IF (@accion = 'DOCUMENTOS_POR_GESTION') BEGIN
/* Como la acción 'DOCUMENTOS_GESTION_ACTIVA',
pero toma todos los documentos que figuran en la gestion (de la fecha enviada como parametro),
sin tener en cuenta si la familia actual tiene el documento, si esta en el set de documentos, etc.
porque puede ocurrir que según la gestión esté en distinta familia, o que se haya cambiado
la configuración de set de documentos.
Por eso, toma todos los documentos que no estén en estado 'X' o aplica = 0,
de la gestión que estamos buscando */
SELECT LN_docs.doc_id, LN_docs.contraparte, LN_docs.cliente, LN_docs.tipo_doc,
LN_docs.doc_version,
IIF(ln_docs.aplica = 0, 'N',LN_docs.estado_doc) as estado_doc,
LN_docs.doc_log, LN_docs.doc_attach,
IIF(ln_docs.aplica = 0, 'No solicitado',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'Pendiente de ingreso'
WHEN LN_docs.estado_doc = 'I' THEN 'Ingresado'
WHEN LN_docs.estado_doc = 'R' THEN 'Rechazado'
WHEN LN_docs.estado_doc = 'V' THEN 'Verificado'
END) AS estado_documento,
IIF(ln_docs.aplica = 0, 'text-info',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'text-info'
WHEN LN_docs.estado_doc = 'I' THEN 'text-warning'
WHEN LN_docs.estado_doc = 'R' THEN 'text-danger'
WHEN LN_docs.estado_doc = 'V' THEN 'text-success'
END) AS class_estado,
IIF(ln_docs.aplica = 0, 'minus',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 'cloud-upload fa-cloud-upload-alt'
WHEN LN_docs.estado_doc = 'I' THEN 'exclamation'
WHEN LN_docs.estado_doc = 'R' THEN 'times'
WHEN LN_docs.estado_doc = 'V' THEN 'check'
END) AS icon_estado,
IIF(ln_docs.aplica = 0, '999',
CASE
WHEN LN_docs.estado_doc = 'N' THEN 1
WHEN LN_docs.estado_doc = 'I' THEN 3
WHEN LN_docs.estado_doc = 'R' THEN 2
WHEN LN_docs.estado_doc = 'V' THEN 4
END) AS orden_estado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 112)) AS fecha_vigencia,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.fecha_vigencia, 103)) AS fecha_vigencia_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 112)) AS vencimiento_carga,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.vencimiento_carga, 103)) AS vencimiento_carga_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 112)) AS created,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.created, 103)) AS created_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 112)) AS modified,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.modified, 103)) AS modified_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 112)) AS ingresado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.ingresado, 103)) AS ingresado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 112)) AS rechazado,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.rechazado, 103)) AS rechazado_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 112)) AS verificado_backend,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_backend, 103)) AS verificado_backend_dmy,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 112)) AS verificado_cliente,
IIF(ln_docs.aplica = 0, null, CONVERT(VARCHAR, LN_docs.verificado_cliente, 103)) AS verificado_cliente_dmy,
ISNULL(LN_tipos_doc.es_balance, 0) AS es_balance,
CONVERT(VARCHAR(10), LN_docs.inicio_ejercicio, 103) AS inicio_ejercicio,
CONVERT(VARCHAR(10), LN_docs.fin_ejercicio, 103) AS fin_ejercicio,
LN_docs.gestion,
LN_docs.ingresado_por, LN_docs.rechazado_por, LN_docs.verificado_backend_por,
LN_docs.verificado_cliente_por, LN_docs.created_by, LN_docs.modified_by,
clientes.nombre_cliente, padrones.nombre_persona, padrones.identificador,
padrones.numero, identificadores.abreviatura, identificadores.country_code,
country.country_name, LN_contrapartes.activo, LN_contrapartes.nombre_contacto,
LN_contrapartes.email_contacto, LN_contrapartes.telefono_contacto,
LN_tipos_doc.nombre_tipo_doc, LN_tipos_doc.tipo_vigencia, LN_docs.id_externo,
users1.first_name + ' ' + users1.last_name AS ingresado_por_usuario,
users2.first_name + ' ' + users2.last_name AS rechazado_por_usuario,
users3.first_name + ' ' + users3.last_name AS verificado_backend_por_usuario,
users4.first_name + ' ' + users4.last_name AS verificado_cliente_por_usuario,
users5.first_name + ' ' + users5.last_name AS created_by_usuario,
users6.first_name + ' ' + users6.last_name AS modified_by_usuario,
balances_contables.id_balance,
balances_contables.fecha_balance, balances_contables.ejercicio,
balances_contables.periodo, balances_contables.visible,
balances_contables.estado, balances_contables.ruta_archivo,
convert(varchar, balances_contables.fecha_balance, 103) as fecha_cierre,
balances_contables.moneda, monedas.nombre_moneda
FROM LN_docs
INNER JOIN clientes ON LN_docs.cliente = clientes.cliente
INNER JOIN LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
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
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
INNER JOIN LN_gestiones ON (LN_contrapartes.contraparte = LN_gestiones.contraparte
AND LN_docs.gestion = LN_gestiones.gestion)
/*
INNER JOIN LN_contraparte_familias ON LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
INNER JOIN LN_familias ON LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_set_tipo_doc ON (LN_familias.set_doc = LN_set_tipo_doc.set_doc
AND LN_tipos_doc.tipo_doc = LN_set_tipo_doc.tipo_doc
AND LN_set_tipo_doc.activo = 1)
*/
LEFT OUTER JOIN balances_contables ON LN_docs.id_externo = balances_contables.id_balance
LEFT OUTER JOIN monedas ON balances_contables.moneda = monedas.moneda
LEFT OUTER JOIN users users1 ON LN_docs.ingresado_por = users1.user_id
LEFT OUTER JOIN users users2 ON LN_docs.rechazado_por = users2.user_id
LEFT OUTER JOIN users users3 ON LN_docs.verificado_backend_por = users3.user_id
LEFT OUTER JOIN users users4 ON LN_docs.verificado_cliente_por = users4.user_id
LEFT OUTER JOIN users users5 ON LN_docs.created_by = users5.user_id
LEFT OUTER JOIN users users6 ON LN_docs.modified_by = users6.user_id
WHERE LN_contrapartes.contraparte = @p_contraparte
AND LN_gestiones.desde <= @fecha_gestion
AND LN_gestiones.hasta >= @fecha_gestion
AND LN_docs.estado_doc != 'X'
AND (LN_docs.aplica = 1 OR
(LN_docs.aplica = 0 and
not exists (select * from LN_docs b
where b.contraparte = ln_docs.contraparte
and b.tipo_doc = ln_docs.tipo_doc
and ISNULL(b.inicio_ejercicio, '2001-01-01') = ISNULL(ln_docs.inicio_ejercicio, '2001-01-01')
and b.gestion = ln_docs.gestion
and b.estado_doc != 'X'
and b.aplica = 1))
)
ORDER BY clientes.nombre_cliente, padrones.nombre_persona, LN_docs.aplica desc, orden_estado, LN_tipos_doc.nombre_tipo_doc, LN_docs.doc_version
END ELSE
IF (@accion = 'PRODUCTO_SUBCONTRATISTAS') BEGIN
/* dada una contraparte, determinar si puede dar de alta subcontratistas
en función de los productos asociados al cliente y la familia a la
que pertenece la misma */
select LN_productos.producto
from LN_contraparte_familias
inner join LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
inner join LN_familia_productos ON LN_familias.familia = LN_familia_productos.familia
inner join LN_cliente_productos ON (LN_familias.cliente = LN_cliente_productos.cliente
AND LN_familia_productos.producto = LN_cliente_productos.producto)
inner join LN_productos on LN_cliente_productos.producto = LN_productos.producto
where LN_contraparte_familias.contraparte = @p_contraparte
AND LN_productos.subcontratistas = 1
AND LN_familias.visible = 1
AND LN_familia_productos.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_productos.visible = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
END ELSE
IF (@accion = 'DOCUMENTOS_SUBCONTRATISTAS') BEGIN
/* dada una contraparte (PADRE), determinar si existen productos del tipo documentación
asociada a sus subcontratistas, a través de las subfamilias correspondientes */
select LN_productos.producto
from LN_contraparte_familias
inner join LN_contrapartes ON LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
inner join LN_familias ON (LN_contraparte_familias.familia = LN_familias.familia
AND LN_contrapartes.cliente = LN_familias.cliente)
inner join LN_familia_productos ON LN_familias.familia = LN_familia_productos.familia
inner join LN_cliente_productos ON (LN_familias.cliente = LN_cliente_productos.cliente
AND LN_familia_productos.producto = LN_cliente_productos.producto)
inner join LN_productos on LN_cliente_productos.producto = LN_productos.producto
/* este join es para exigir que las subfamilias de subcontratistas estén vinculadas
a al menos una familia de la contraparte padre */
inner join (select LN_subfamilias.familia
from LN_subfamilias
inner join LN_familias on LN_subfamilias.familia = LN_familias.familia
inner join LN_contraparte_familias on LN_subfamilias.familia_padre = LN_contraparte_familias.familia
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_familias.subfamilia = 1
group by LN_subfamilias.familia) subf ON LN_familia_productos.familia = subf.familia
where LN_contrapartes.id_padre = @p_contraparte
AND LN_contrapartes.subcontratista = 1
AND LN_productos.documentos = 1
AND LN_familias.visible = 1
AND LN_familia_productos.activo = 1
AND LN_cliente_productos.activo = 1
AND LN_productos.visible = 1
AND LN_gestiones.desde <= getdate() AND LN_gestiones.hasta >= getdate()
group by LN_productos.producto
END ELSE
/* Específico para el update de datos de contraparte desde el backend */
IF (@accion = 'UPDATE_BACKEND') BEGIN
UPDATE LN_contrapartes SET
datos_comerciales = @p_datos_comerciales,
activo = @p_activo,
nombre_contacto = @p_nombre_contacto,
email_contacto = @p_email_contacto,
telefono_contacto = @p_telefono_contacto,
vigencia_desde = @p_vigencia_desde,
vigencia_hasta = @p_vigencia_hasta,
pais_servicio = @pais_servicio,
codigo_idioma = @p_codigo_idioma,
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
END ELSE
/* Devolver un query con una columna modalidad_login con valores 'T' o 'L' según configuración --por tax id o por link */
IF (@accion = 'MODALIDAD_LOGIN') BEGIN
if (@p_contraparte is not null) begin
declare @modo varchar(1) = 'L', @ml varchar(1)
DECLARE Familias CURSOR FOR
select distinct ISNULL(LN_familias.modalidad_login, 'T') AS modalidad_login
from LN_contrapartes inner join LN_contraparte_familias on
LN_contrapartes.contraparte = LN_contraparte_familias.contraparte
inner join LN_familias on (LN_contraparte_familias.familia = LN_familias.familia
and LN_contrapartes.cliente = LN_familias.cliente)
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_contraparte_familias.activo = 1
and LN_familias.visible = 1
Open Familias
Fetch next from Familias into @ml
While @@FETCH_STATUS = 0 begin
if (@modo != 'T') begin
set @modo = @ml
end
Fetch next from Familias into @ml
End
Close Familias
Deallocate Familias
SELECT @p_contraparte AS contraparte, @modo AS modalidad_login
end
END ELSE
IF (@accion = 'NUEVA_GESTION') BEGIN
/* Busco la gestión activa */
select @gest = gestion, @cliente = cliente
from LN_gestiones
where contraparte = @p_contraparte
and desde <= GETDATE()
and hasta >= GETDATE()
/* Si no hay gestión activa, se busca la más reciente */
if (@gest is null)
select top 1 @gest = gestion, @cliente = cliente
from LN_gestiones
where contraparte = @p_contraparte
and hasta < convert(date, GETDATE())
order by hasta DESC
else
/* gestion no finalizada, actualizo la vigente hasta un día antes de hoy */
update LN_gestiones set
hasta = CONVERT(DATE, DATEADD(DAY,-1,GETDATE())),
vigente = 0,
modified = GETDATE(),
modified_by = @p_user_id
where gestion = @gest
if (@gest is not null) begin
INSERT INTO LN_gestiones
(cliente, contraparte, desde, hasta, vigente, created, created_by)
VALUES
(@cliente, @p_contraparte,
iif(@p_vigencia_desde is null, CONVERT(DATE,GETDATE()), @p_vigencia_desde),
iif(@p_vigencia_hasta is null, '2099-12-31', @p_vigencia_hasta),
1, GETDATE(), @p_user_id)
SET @nueva_gestion = SCOPE_IDENTITY()
UPDATE LN_contrapartes SET
carga_inicial = 1,
limite_carga_inicial = DATEADD(MINUTE,-1, CONVERT(DATETIME,DATEADD(DAY,15,CONVERT(DATE, GETDATE())))),
modified = GETDATE(),
modified_by = @p_user_id
WHERE contraparte = @p_contraparte
/* Crear la documentación de la nueva gestión */
EXEC LN_actualizar_legajo @p_contraparte, @nueva_gestion, @p_user_id
/* Traslado de balances a la nueva gestión */
UPDATE LN_docs SET
fecha_vigencia = Anteriores.fecha_vigencia,
ingresado = Anteriores.ingresado,
ingresado_por = Anteriores.ingresado_por,
verificado_backend = Anteriores.verificado_backend,
verificado_backend_por = Anteriores.verificado_backend_por,
estado_doc = Anteriores.estado_doc,
id_externo = Anteriores.id_externo,
aplica = Anteriores.aplica
FROM LN_docs INNER JOIN LN_docs Anteriores ON
(LN_docs.tipo_doc = Anteriores.tipo_doc
and LN_docs.contraparte = Anteriores.contraparte
and LN_docs.inicio_ejercicio = Anteriores.inicio_ejercicio
and LN_docs.fin_ejercicio = Anteriores.fin_ejercicio)
INNER JOIN LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
WHERE LN_docs.contraparte = @p_contraparte
AND LN_docs.gestion = @nueva_gestion
AND LN_tipos_doc.es_balance = 1
AND Anteriores.gestion = @gest
AND Anteriores.aplica = 1
/* Recálculo de indicadores */
EXEC LN_contrapartes_queue_ 'insert',NULL,@p_contraparte
end
END ELSE
IF (@accion = 'prepagos') BEGIN
if (@p_contraparte is null) begin
if (@p_transact_id is null)
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
order by pagos_transacciones.fecha_transaccion desc
else
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and pagos_transacciones.transact_id = @p_transact_id
order by pagos_transacciones.fecha_transaccion desc
end
else begin
if (@p_transact_id is null)
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and LN_contrapartes.contraparte = @p_contraparte
order by pagos_transacciones.fecha_transaccion desc
else
select LN_contrapartes.contraparte, LN_gestiones.gestion,
LN_contrapartes.cliente,
LN_contrapartes.id_padron,
LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto,
CONVERT(VARCHAR, LN_gestiones.desde,103) AS vigencia_desde,
CONVERT(VARCHAR, LN_gestiones.hasta,103) AS vigencia_hasta,
clientes.nombre_cliente, padrones.identificador, padrones.nombre_persona, identificadores.abreviatura,
padrones.numero, padrones.identificacion, country.country_name, identificadores.country_code,
pagos_transacciones.transact_id, pagos_transacciones.valor, pagos_transacciones.moneda,
pagos_transacciones.id_pago, pagos_transacciones.plataforma_pago, pagos_transacciones.status,
convert(varchar(10),pagos_transacciones.vigencia,103) as vigencia,
pagos_transacciones.vigencia as vigencia_completa,
pagos_transacciones.fecha_transaccion as fecha_transaccion_completa,
convert(date,pagos_transacciones.fecha_transaccion) as fecha_transaccion_ymd,
convert(date,pagos_transacciones.fecha_confirmacion) as fecha_confirmacion_ymd,
convert(date,pagos_transacciones.created) as fecha_creacion_ymd,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103) as fecha_transaccion_dmy,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103) as fecha_confirmacion_dmy,
convert(varchar(10),pagos_transacciones.created,103) as fecha_creacion_dmy,
convert(varchar(10),pagos_transacciones.fecha_transaccion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_transaccion,14) as fecha_transaccion,
convert(varchar(10),pagos_transacciones.fecha_confirmacion,103)+' '+convert(varchar(5),pagos_transacciones.fecha_confirmacion,14) as fecha_confirmacion,
convert(varchar(10),pagos_transacciones.created,103)+' '+convert(varchar(5),pagos_transacciones.created,14) as fecha_creacion,
pagos_transacciones.motivo, pagos_transacciones.preference_id, pagos_transacciones.payment_id,
iif(isnull(pagos_transacciones.facturado,0)=1,'SI','NO') as facturado,
pagos_transacciones.fecha_facturado,
convert(varchar(10),pagos_transacciones.fecha_facturado,103) as fecha_facturado_dmy,
b.country_name as pais_servicio
from LN_contrapartes
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
inner join country b on ln_contrapartes.pais_servicio = b.country_code
inner join LN_gestiones ON LN_contrapartes.contraparte = LN_gestiones.contraparte
left outer join pagos_transacciones on LN_contrapartes.contraparte = pagos_transacciones.contraparte
where LN_contrapartes.activo = 1
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_contrapartes.modalidad_pago = 'PP'
and LN_contrapartes.contraparte = @p_contraparte
and pagos_transacciones.transact_id = @p_transact_id
order by pagos_transacciones.fecha_transaccion desc
end
END ELSE
IF (@accion = 'generar_prepagos') BEGIN
if (@p_contraparte is not null) begin
declare @modalidad_pago varchar(2)
declare @country varchar(2)
declare @gestion_hasta date
declare @id_producto int = 47
select @cliente = LN_contrapartes.cliente,
@modalidad_pago = LN_contrapartes.modalidad_pago,
@country = identificadores.country_code,
@gestion_hasta = LN_gestiones.hasta,
@id_producto = LN_contrapartes.servicio_contratado
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
where LN_contrapartes.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
if (@modalidad_pago = 'PP') begin
declare @familia int
--declare @id_producto int = (select 47 from LN_familias where familia = (select familia from LN_contraparte_familias where contraparte = @contraparte ))
declare @id_pago int = NULL
declare @valor decimal(18,2)
declare @moneda varchar(3)
declare @vigencia datetime
declare @periodicidad varchar(1)
declare @transact_id int
declare Familias cursor for
select familia from LN_contraparte_familias where contraparte = @p_contraparte and activo = 1
Open Familias
Fetch next from Familias into @familia
While (@@FETCH_STATUS = 0) begin
if (@country = 'AR') begin
declare Pagos cursor for
select iif(personalizado.id_pago is not null,personalizado.id_pago,cpp.id_pago) as id_pago,
iif(personalizado.valor is not null,personalizado.valor,cpp.valor) as valor,
iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) as moneda,
cpp.periodicidad
from clientes_productos_pagos cpp
left join clientes_productos_pago_personalizado personalizado
on (cpp.id_pago = personalizado.id_pago
and personalizado.familia = @familia)
where cpp.activo = 1 and cpp.cliente = @cliente and cpp.id_producto = @id_producto
and iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) = 'ARS'
end
else begin
declare Pagos cursor for
select iif(personalizado.id_pago is not null,personalizado.id_pago,cpp.id_pago) as id_pago,
iif(personalizado.valor is not null,personalizado.valor,cpp.valor) as valor,
iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) as moneda,
cpp.periodicidad
from clientes_productos_pagos cpp
/* 26 de Marzo de 2020 cambiado momentáneamente a las 20:26 por AGB de left join a inner join */
left join clientes_productos_pago_personalizado personalizado
on (cpp.id_pago = personalizado.id_pago
and personalizado.familia = @familia)
where cpp.activo = 1 and cpp.cliente = @cliente and cpp.id_producto = @id_producto
and iif(personalizado.moneda is not null,personalizado.moneda,cpp.moneda) != 'ARS'
end
Open Pagos
Fetch next from Pagos into @id_pago, @valor, @moneda, @periodicidad
While (@@FETCH_STATUS = 0) begin
-- si no existe ingresado un pago vigente para la contraparte
if NOT EXISTS (select id_pago from pagos_transacciones
where id_pago = @id_pago
and contraparte = @p_contraparte
and vigencia > GETDATE()) begin
SET @vigencia = CASE
WHEN @periodicidad = 'M' THEN dateadd(second,-1, dateadd(day,1, convert(datetime,eomonth(getdate()) )))
WHEN @periodicidad = 'E' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, convert(date, getdate())) ))
WHEN @periodicidad = 'B' THEN dateadd(second,-1, dateadd(day,1, iif(month(getdate()) % 2 = 0, convert(datetime,eomonth(getdate())) , convert(datetime,eomonth(dateadd(month, 1,getdate()))) ) ))
WHEN @periodicidad = 'T' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%3 = 0, 0, 3-month(getdate())%3), getdate())) ) ))
WHEN @periodicidad = 'C' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%4 = 0, 0, 4-month(getdate())%4), getdate())) ) ))
WHEN @periodicidad = 'S' THEN dateadd(second,-1, dateadd(day,1, convert(datetime, eomonth(dateadd(month, iif(month(getdate())%6 = 0, 0, 6-month(getdate())%6), getdate())) ) ))
WHEN @periodicidad = 'A' THEN DATETIMEFROMPARTS(year(getdate()),12,31,23,59,59,0)
WHEN @periodicidad = 'N' THEN dateadd(second,-1,dateadd(day,1,convert(datetime, @gestion_hasta)))
END
insert into pagos_transacciones
(id_pago, plataforma_pago, merchant_id, contraparte, user_id, producto, vigencia, created, valor, moneda, status)
values
(@id_pago, iif(@country='AR','MPAGO','2CHECKOUT'), null, @p_contraparte, @p_user_id, @id_producto, @vigencia, GETDATE(), @valor, @moneda, 'pending')
set @transact_id = SCOPE_IDENTITY()
insert into pagos_trazabilidad
(transact_id, user_id, horario, detalle)
values
(@transact_id, @p_user_id, GETDATE(), 'Ingreso de pago pendiente.')
end
Fetch next from Pagos into @id_pago, @valor, @moneda, @periodicidad
end
Close Pagos
Deallocate Pagos
Fetch next from Familias into @familia
end
Close Familias
Deallocate Familias
end
end
END ELSE
-- Registrar el acceso por link a la web de legajos por parte de la contraparte
IF (@accion = 'registrar_acceso') BEGIN
if (@p_contraparte > 0) begin
update LN_contrapartes SET
clave_temporal = 0,
clave_cambio = GETDATE(),
clave_expira = '2050-12-30 23:59'
where contraparte = @p_contraparte
and clave_temporal = 1
and clave_cambio is null
update LN_contrapartes SET
last_login = convert(smalldatetime, GETDATE()),
ultimo_acceso = GETDATE()
where contraparte = @p_contraparte
end
END ELSE
-- Actualizar la fecha límite de carga inicial (usualmente luego de enviar el mail con el link)
-- ATENCION: enviarlo en el parámetro DATETIME @p_fecha_ultimo_cierre
IF (@accion = 'actualizar_carga_inicial') BEGIN
if (@p_contraparte > 0 and @p_fecha_ultimo_cierre is not null)
update LN_contrapartes SET
limite_carga_inicial = @p_fecha_ultimo_cierre,
carga_inicial = 1
where contraparte = @p_contraparte
END ELSE
IF (@accion = 'activar_informe') BEGIN
-- Dado el id de contraparte que tiene modo prepago, reactivar el informe en Carga Comercial para que esté visible en el panel de control del BLUE
if (@p_contraparte > 0) begin
DECLARE @informe int = NULL
DECLARE @estado_actual varchar(1) = NULL
DECLARE @asignado int = NULL
DECLARE @informe_log varchar(max)
DECLARE @preffix varchar(200) = ''
DECLARE @docs int = 0
DECLARE @id_tipo_informe int = NULL
DECLARE @item_contrato int = NULL
DECLARE @producto smallint = NULL
DECLARE @generico int = NULL
DECLARE @por_pais int = NULL
-- icontrato1 asociado al tipo de informe encontrato por pais
-- icontrato2 asociado al tipo de informe encontrado como genérico
-- prod1 asociado al tipo de informe encontrato por pais
-- prod2 asociado al tipo de informe encontrado como genérico
DECLARE @icontrato1 int = NULL, @icontrato2 int = NULL
DECLARE @prod1 smallint = NULL, @prod2 smallint = NULL
declare @user int, @datamanager int
declare @fecha_limite_doc datetime = NULL, @fecha_comprometida datetime = NULL
declare @producto_led int
declare @nuevoinf int = null
DECLARE @tipo_tarea_gestion int = NULL
DECLARE @usuario_gestion INT = NULL
DECLARE @id INT, @pais VARCHAR(2), @solicitud INT, @item INT, @prod SMALLINT
if(@p_user_id is not null)
select @preffix = '['+isnull(first_name,'')+' '+isnull(last_name,'')+' - '+convert(varchar(10),getdate(),103)+' '+convert(varchar(5),getdate(),14)+']: '
from users where user_id = @p_user_id
--- traigo los datos del informe (si existe)
select @informe = informes.informe,
@id_tipo_informe = id_tipo_informe,
@estado_actual = informes.estado_informe,
@asignado = informes.asignado,
@informe_log = convert(varchar(max),informes.historial_informe),
@datamanager = informes.datamanager
from informes
inner join LN_demo on informes.informe = LN_demo.informe
inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
and LN_demo.gestion = LN_gestiones.gestion)
where LN_demo.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and informes.informe_padre IS NULL
-- BUSCO si la contraparte va a tener que subir documentos (hay gestión)
select @docs = count(*)
from LN_set_tipo_doc
inner join LN_familias on LN_set_tipo_doc.set_doc = LN_familias.set_doc
inner join LN_contraparte_familias on LN_familias.familia = LN_contraparte_familias.familia
inner join LN_familia_productos on LN_familias.familia = LN_familia_productos.familia
inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
left outer join LN_tipos_doc_carga_verif on
(LN_set_tipo_doc.tipo_doc = LN_tipos_doc_carga_verif.tipo_doc
and LN_familias.cliente = LN_tipos_doc_carga_verif.cliente)
where LN_contraparte_familias.contraparte = @p_contraparte
and LN_familias.visible = 1
and LN_contraparte_familias.activo = 1
and ISNULL(LN_tipos_doc_carga_verif.quien_carga, 'L') = 'L'
and LN_productos.documentos = 1
and LN_productos.visible = 1
-- El informe puede existir en carga comercial
if (@informe is not null AND @estado_actual = 'X') begin
-- si el informe está en carga comercial y fue cargado con usuario asignado lo pongo no calificado, sino ingresado
-- fecha comprometida estimada en 14 días, 7 de gestión y 7 de elaboración.
if (@datamanager is null) begin
-- Si no tiene datamanager le asignamos uno
select TOP 1 @datamanager = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and roles.datamanager = 1
and users.active_user = 'Y'
update informes set datamanager = @datamanager where informe = @informe
end
if (@asignado is not null) begin
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a NO calificado por cobranza del pago correspondiente.'
update informes set estado_informe = 'A',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
end else begin
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a ingresado por cobranza del pago correspondiente.'
update informes set estado_informe = 'I',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
-- Lo asignamos
select TOP 1 @asignado = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a NO calificado por cobranza del pago correspondiente.'
update informes set estado_informe = 'A',
fecha_comprometida = convert(date, dateadd(day,14,getdate())),
historial_informe = @informe_log
where informe = @informe
end
if (@docs > 0)
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a En gestión.'
else
set @informe_log = iif(@informe_log is not null, @informe_log + CHAR(13)+CHAR(10), '')+@preffix+'Cambio automático de estado del informe a En proceso.'
-- Seteamos estado y fecha comprometida en función de si es con o sin gestión.
update informes set estado_informe = iif(@docs > 0, 'P', 'E'),
fecha_comprometida = iif(@docs > 0, convert(date, dateadd(day,14,getdate())), convert(date, dateadd(day, 7,getdate()))),
historial_informe = @informe_log
where informe = @informe
--- Si hay documentos (gestión) tenemos que activar la tarea de gestión
if (@docs > 0) begin
select @tipo_tarea_gestion = tipos_subinformes.id_tipo_subinforme
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
where tipos_subinformes.id_tipo_informe = @id_tipo_informe
and tareas.genera_solicitud_doc = 1
if (@tipo_tarea_gestion is not null) begin
----- //// HARDCODE PARA PREPAGOS LA GESTION SE LA ASIGNAMOS A GISELE FERNANDES USER ID 89681892
select TOP 1 @usuario_gestion = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @tipo_tarea_gestion
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
and users.user_id = 89681892
if (@usuario_gestion is not null) begin
set @fecha_limite_doc = DATETIMEFROMPARTS(Year(dateadd(day,7,getdate())),Month(dateadd(day,7,getdate())),Day(dateadd(day,7,getdate())),23,59,59,0)
EXEC LN_informes 'activar_gestion_documentacion',@p_contraparte,@informe,@user,NULL,NULL,NULL,1,'E',@user,NULL,@usuario_gestion,@cliente,@fecha_limite_doc
end
end
end
--//////////////----
end else begin
--- NO EXISTE INFORME, DEBERIA CREARSE: determino el tipo de informe según familia, con/sin gestión y pais
if (@informe is null) begin
select @country_code = identificadores.country_code,
@cliente = LN_contrapartes.cliente
from LN_contrapartes inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
inner join identificadores on padrones.identificador = identificadores.identificador
where LN_contrapartes.contraparte = @p_contraparte
-- busco los tipos de informe posibles según familia
DECLARE TiposInforme CURSOR FOR
select tipos_informe.id_tipo_informe, tipos_informe.country_code,
iif(informes_con_solicitud.id_tipo_informe is not null, 1, 0) as tiene_solicitud,
contratos_items.item_contrato, contratos_items.producto
from tipos_informe
INNER JOIN LN_familias_tipo_informe on tipos_informe.id_tipo_informe = LN_familias_tipo_informe.id_tipo_informe
INNER JOIN LN_contraparte_familias on LN_familias_tipo_informe.familia = LN_contraparte_familias.familia
INNER JOIN LN_familias on LN_contraparte_familias.familia = LN_familias.familia
INNER JOIN LN_contrapartes on LN_contraparte_familias.contraparte = LN_contrapartes.contraparte
INNER JOIN padrones on LN_contrapartes.id_padron = padrones.id_padron
INNER JOIN identificadores on padrones.identificador = identificadores.identificador
INNER JOIN grupos_clientes on LN_familias.cliente = grupos_clientes.cliente
INNER JOIN contratos_grupos on grupos_clientes.grupo = contratos_grupos.grupo
INNER JOIN contratos_items on contratos_grupos.id_contrato = contratos_items.id_contrato
INNER JOIN productos on (contratos_items.producto = productos.producto
and tipos_informe.grupo_informes = productos.grupo_informes)
LEFT OUTER JOIN
(select tipos_subinformes.id_tipo_informe
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
inner join tipos_informe on tipos_subinformes.id_tipo_informe = tipos_informe.id_tipo_informe
where tipos_informe.vigente = 1
and tareas.vigente = 1
and tareas.genera_solicitud_doc = 1
group by tipos_subinformes.id_tipo_informe) informes_con_solicitud on tipos_informe.id_tipo_informe = informes_con_solicitud.id_tipo_informe
where LN_contraparte_familias.contraparte = @p_contraparte
and contratos_grupos.estado_contrato = 'A'
and contratos_grupos.fecha_vigencia <= GETDATE()
and contratos_grupos.fecha_vencimiento >= GETDATE()
group by tipos_informe.id_tipo_informe, tipos_informe.country_code, informes_con_solicitud.id_tipo_informe,
contratos_items.item_contrato, contratos_items.producto
Open TiposInforme
FETCH NEXT FROM TiposInforme INTO @id, @pais, @solicitud, @item, @prod
WHILE @@FETCH_STATUS = 0 BEGIN
if (@solicitud > 0) begin
-- con solicitud, si la contraparte tiene legajo, busco genérico o del país
if (@docs > 0) begin
-- el pais del tipo de informe es Argentina y la contraparte Argentina
if (@pais = 'AR' AND @pais = @country_code) begin
set @por_pais = @id
set @icontrato1 = @item
set @prod1 = @prod
end else begin
-- Es un genérico (tipo de informe sin país)
if (@pais is null) begin
set @generico = @id
set @icontrato2 = @item
set @prod2 = @prod
end
end
end
end else begin
-- confidencial, sólo evalúo si la contraparte no tiene legajo
if (@docs = 0) begin
if (@pais = 'AR' AND @pais = @country_code) begin
set @por_pais = @id
set @icontrato1 = @item
set @prod1 = @prod
end else begin
if (@pais is null) begin
set @generico = @id
set @icontrato2 = @item
set @prod2 = @prod
end
end
end
end
FETCH NEXT FROM TiposInforme INTO @id, @pais, @solicitud, @item, @prod
END
Close TiposInforme
Deallocate TiposInforme
-- Verifico si encontró un genérico o uno por país en cuyo caso prevalece
SET @id_tipo_informe = iif(@por_pais is not null, @por_pais, iif(@generico is not null, @generico, NULL))
SET @item_contrato = iif(@por_pais is not null, @icontrato1, iif(@generico is not null, @icontrato2, NULL))
SET @producto = iif(@por_pais is not null, @prod1, iif(@generico is not null, @prod2, NULL))
if (@id_tipo_informe is not null AND @item_contrato is not null AND @producto is not null) begin
-- GENERAR INFORME Y TAREAS
select @user = user_id from users where username = 'sa'
select TOP 1 @datamanager = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and roles.datamanager = 1
and users.active_user = 'Y'
select TOP 1 @asignado = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @id_tipo_informe
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
select @producto_led = LN_familia_productos.producto
from LN_familia_productos
inner join LN_productos on LN_familia_productos.producto = LN_productos.producto
inner join LN_contraparte_familias on LN_familia_productos.familia = LN_contraparte_familias.familia
where LN_productos.dossier = 1
and LN_productos.visible = 1
and LN_familia_productos.activo = 1
and LN_contraparte_familias.activo = 1
and LN_contraparte_familias.contraparte = @p_contraparte
-- 7 días sin gestión, 14 con gestión
set @fecha_comprometida = iif(@docs > 0, convert(date,dateadd(day,14,getdate())), convert(date,dateadd(day,7,getdate())))
declare @estado_inicial varchar(1) = iif(@docs > 0, 'P', 'E')
if not exists (select LN_demo.contraparte
from LN_demo inner join LN_gestiones on (LN_demo.contraparte = LN_gestiones.contraparte
and LN_demo.gestion = LN_gestiones.gestion)
where LN_demo.contraparte = @p_contraparte
and LN_gestiones.desde <= GETDATE()
and LN_gestiones.hasta >= GETDATE()
and LN_demo.producto = @producto_led) begin
insert into LN_demo (contraparte, gestion, producto, created, visible)
select contraparte, gestion, @producto_led as producto, GETDATE() as created, 0 as visible
from LN_gestiones
where contraparte = @p_contraparte
and desde <= GETDATE()
and hasta >= GETDATE()
end
EXEC LN_informes 'ingresar_informe',@p_contraparte,@nuevoinf OUTPUT,@user,@item_contrato,@producto,@id_tipo_informe,5,@estado_inicial, @user,@datamanager,@asignado,@cliente,@fecha_limite_doc,@producto_led,@fecha_comprometida,'INFORME GENERADO AUTOMATICAMENTE POR INGRESO DEL PAGO DE LA CONTRAPARTE EN LED.'
if (@docs > 0) begin
-- si hay documentos hay que activar la tarea de gestión
select @tipo_tarea_gestion = tipos_subinformes.id_tipo_subinforme
from tipos_subinformes
inner join tipos_informe tareas on tipos_subinformes.id_tipo_subinforme = tareas.id_tipo_informe
where tipos_subinformes.id_tipo_informe = @id_tipo_informe
and tareas.genera_solicitud_doc = 1
if (@tipo_tarea_gestion is not null) begin
----- //// HARDCODE PARA PREPAGOS LA GESTION SE LA ASIGNAMOS A GISELE FERNANDES USER ID 89681892
select TOP 1 @usuario_gestion = users.user_id
from users
inner join usuarios_roles on users.user_id = usuarios_roles.user_id
inner join roles_tipo_informe on usuarios_roles.rol = roles_tipo_informe.rol
inner join idiomas on usuarios_roles.idioma = idiomas.idioma
inner join roles on roles_tipo_informe.rol = roles.rol
where roles_tipo_informe.id_tipo_informe = @tipo_tarea_gestion
and idiomas.codigo_idioma = 'ES'
and users.active_user = 'Y'
and users.user_id = 89681892
if (@usuario_gestion is not null) begin
set @fecha_limite_doc = DATETIMEFROMPARTS(Year(dateadd(day,7,getdate())),Month(dateadd(day,7,getdate())),Day(dateadd(day,7,getdate())),23,59,59,0)
EXEC LN_informes 'activar_gestion_documentacion',@p_contraparte,@nuevoinf,@user,NULL,NULL,NULL,1,'E',@user,NULL,@usuario_gestion,@cliente,@fecha_limite_doc
end
end
end
end
end
end
end
END ELSE
-- Dado el id de contraparte, busca por cuit en la tabla de domicilios_todos, arma el string y lo graba en el campo 'domicilio'
IF (@accion = 'buscar_domicilio') BEGIN
if (@p_contraparte > 0) begin
declare @cuit varchar(30) = NULL
select @cuit = padrones.identificacion from LN_contrapartes
inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
where LN_contrapartes.contraparte = @p_contraparte
if (@cuit IS NOT NULL) begin
declare @domicilio varchar(512)
declare @loc_nombre varchar(150)
declare @prv_nombre varchar(100)
declare @codpos varchar(10)
declare @pai_nombre varchar(100)
declare @full_domicilio varchar(500)
select
@domicilio = ISNULL(domicilio, ''),
@loc_nombre = ISNULL(loc_nombre, ''),
@prv_nombre = ISNULL(prv_nombre, ''),
@codpos = ISNULL(codpos, '') ,
@pai_nombre = ISNULL(pai_nombre, '')
from domicilios_todos
where cuit = @cuit
and tipo_domicilio = 'F'
set @full_domicilio = LEFT( @domicilio + iif(@loc_nombre !='', ' - ', '')
+ @loc_nombre
+ iif(@prv_nombre !='', ' - ', '')
+ @prv_nombre
+ iif(@codpos !='', ' (' + @codpos + ')', '')
+ iif(@pai_nombre !='', ' - ', '')
+ @pai_nombre
, 500)
update LN_contrapartes set domicilio = iif(@full_domicilio != '', @full_domicilio, NULL) where contraparte = @p_contraparte
end
end
END
END
GO
Depends On
43- dbo.insertar_trazabilidad
- dbo.LN_actualizar_legajo
- dbo.LN_alta_Contratistas
- dbo.LN_contrapartes_queue_
- dbo.LN_informes
- dbo.balances_contables
- dbo.cliente_paises
- dbo.clientes
- dbo.clientes_productos_pago_personalizado
- dbo.clientes_productos_pagos
- dbo.contratos_grupos
- dbo.contratos_items
- dbo.country
- dbo.domicilios_todos
- dbo.grupos_clientes
- dbo.identificadores
- dbo.idiomas
- dbo.informes
- dbo.LN_cliente_productos
- dbo.LN_contraparte_familias
- dbo.LN_contrapartes
- dbo.LN_demo
- dbo.LN_docs
- dbo.LN_familia_productos
- dbo.LN_familias
- dbo.LN_familias_tipo_informe
- dbo.LN_gestiones
- dbo.LN_productos
- dbo.LN_set_tipo_doc
- dbo.LN_subfamilias
- dbo.LN_tipos_doc
- dbo.LN_tipos_doc_carga_verif
- dbo.monedas
- dbo.monitoreos_resultados
- dbo.padrones
- dbo.pagos_transacciones
- dbo.productos
- dbo.roles
- dbo.roles_tipo_informe
- dbo.tipos_informe
- dbo.tipos_subinformes
- dbo.users
- dbo.usuarios_roles
Used By
No items found