dbo.LN_contrapartes_DEV

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

18
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_id_producto 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_DEV 'search_informes_contraparte', null, null, 5546348, null, null, null, null, null, null, null, null, null, null, 1, null, null, 73
exec LN_contrapartes_DEV 'search_contraparte', 107, null, 5546348, null, null, null, null, null, null, null, null, null, null, 1, null, null, null

*/




-- Description: <Description,,>
-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_contrapartes_DEV 
 -- Add the parameters for the stored procedure here
 @accion          varchar(40),
 @p_contraparte        int,
 @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,
 @p_subcontratista       bit = 0,
 @p_id_padre         int = NULL,
 @p_id_producto        int = NULL


 
AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;

    -- Insert statements for procedure here
 DECLARE @country_code VARCHAR(2)
 DECLARE @clave_anterior VARCHAR(80)


 IF (@accion = 'INSERT') BEGIN

  IF (@p_id_padron > 0 AND @p_cliente > 0) begin


   DECLARE @contraparte int


   SELECT @country_code = identificadores.country_code
   FROM identificadores INNER JOIN padrones ON identificadores.identificador = padrones.identificador
   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,
     created, created_by)

   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,
     GETDATE(), @p_user_id)


   SET @contraparte = SCOPE_IDENTITY()

   SELECT @contraparte AS contraparte from LN_contrapartes


  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
   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,
     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(19), LN_contrapartes.clave_expira, 103) 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(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
     


     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,
       LN_gestiones.gestion as gestion


       FROM LN_contrapartes
       INNER JOIN ln_gestiones on LN_gestiones.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 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
       AND LN_gestiones.desde <= CONVERT(date, GETDATE())
       AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
       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


         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
         ORDER BY padrones.nombre_persona
                                    /*
                                     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,
                                     LN_gestiones.gestion as gestion,
                                                                        LN_demo.informe as informe
                                     --es acá
                                    
                                     FROM LN_contrapartes
                                                                        INNER JOIN LN_demo ON LN_demo.contraparte = LN_contrapartes.contraparte
                                     INNER JOIN LN_gestiones on LN_gestiones.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 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
                                     AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                                     AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
                                     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


         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
         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


         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
         and LN_contrapartes.servicio_contratado = isnull(@p_id_producto,47) 
         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


          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
          and LN_contrapartes.servicio_contratado = isnull(@p_id_producto,47) 

          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


          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.servicio_contratado = isnull(@p_id_producto,47) 

          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 <= CONVERT(date, GETDATE())
         AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
         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 b.gestion = ln_docs.gestion 
               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 = '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,
            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
            

            if (@accion ='search_informes_contraparteAGB') 
                BEGIN        
      select @p_id_producto as IDP
      if (@p_id_producto is null)
                           
                            SELECT LN_contrapartes.contraparte,ln_familias.nombre_familia, 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,
       ISNULL(LN_contrapartes.modalidad_pago, 'CC') as modalidad_pago,
                            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,
                            LN_gestiones.gestion as gestion,
       LN_gestiones.desde as desde, 
       CONVERT(VARCHAR, LN_gestiones.desde,103) AS gestion_desde,
                            CONVERT(VARCHAR, LN_gestiones.hasta,103) AS gestion_hasta,
                            LN_demo.informe as informe, 
       LN_productos.dossier,
       
       /*,FAMPRODACTIVO.ACTIVO AS AGBACTIVO,LN_demo.producto as prodAGB,*/

       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.status) AS status,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.valor) AS valor,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.moneda) AS moneda
                            --es acá
       ,ln_contrapartes.servicio_contratado,
       UPPER(productos.nombre_producto) as servicio_contratado_name, 
       case LN_gestiones.Iv_informe 
        when 1 then 'SI'
        when 0 then 'NO'
        else null 
       end as iv_informe,
       iif(isnull(CDE.DE,0) > 0,1,0) as tiene_de, 
       iif(isnull(CLCS.LCS, 0) > 0,1,0) as tiene_lcs,
       iif(isnull(MLCS.LCS, 0) > 0,1,0) as tiene_mlcs,
       iif(isnull(PP.PP, 0) > 0,1,0) as tiene_pp,

       ln_contrapartes.pais_servicio as pais_servicio_cod, 
       pais_servicio.country_name as pais_servicio

                            FROM LN_contrapartes
                            INNER JOIN LN_gestiones on LN_gestiones.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 clientes ON LN_contrapartes.cliente = clientes.cliente
                            INNER JOIN country ON LN_contrapartes.country_code = country.country_code
       INNER JOIN country pais_servicio ON LN_contrapartes.pais_servicio = pais_servicio.country_code

                            INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
       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
                            LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id

       LEFT OUTER JOIN LN_demo ON (LN_contrapartes.contraparte = LN_demo.contraparte AND LN_gestiones.gestion = LN_demo.gestion)
       LEFT OUTER JOIN LN_productos ON LN_demo.producto = LN_productos.producto
       LEFT OUTER JOIN productos on productos.producto = LN_contrapartes.servicio_contratado
       /*
        left join LN_familia_productos FAMPRODACTIVO on (LN_familias.familia=FAMPRODACTIVO.familia)
        left OUTER JOIN LN_demo DEMOACT ON (LN_contrapartes.contraparte = DEMOACT.contraparte AND LN_gestiones.gestion = LN_demo.gestion and FAMPRODACTIVO.producto = DEMOACT.producto and FAMPRODACTIVO.activo=1)
       -- left join LN_familia_productos FAMPRODACTIVO on (LN_DEMO.producto=FAMPRODACTIVO.producto and FAMPRODACTIVO.activo=1)
       */

     
       LEFT OUTER JOIN pagos_transacciones ON LN_contrapartes.contraparte = pagos_transacciones.contraparte 

       left outer join (select FP.familia, count(*) as DE from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('dependEconomica','dependEconomicaBal')
              group by FP.familia) CDE
            on (CDE.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCredito')
              group by FP.familia) CLCS
            on (CLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCreditoMultiple')
              group by FP.familia) MLCS
            on (MLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as PP from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('planespago')
              group by FP.familia) PP
            on (PP.familia = LN_contraparte_familias.familia)

                            WHERE LN_contrapartes.cliente = @p_cliente
                            AND LN_contrapartes.subcontratista = 0
       --AND LN_contrapartes.activo = 1
                            AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                            AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
       and ln_contrapartes.contraparte=83613
                            ORDER BY padrones.nombre_persona

      else


                            SELECT LN_contrapartes.contraparte,ln_familias.nombre_familia, 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,
       ISNULL(LN_contrapartes.modalidad_pago, 'CC') as modalidad_pago,
                            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,
                            LN_gestiones.gestion as gestion,
       LN_gestiones.desde as desde, 
       CONVERT(VARCHAR, LN_gestiones.desde,103) AS gestion_desde,
                            CONVERT(VARCHAR, LN_gestiones.hasta,103) AS gestion_hasta,
                            LN_demo.informe as informe, LN_productos.dossier,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.status) AS status,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.valor) AS valor,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.moneda) AS moneda
                            --es acá
       ,ln_contrapartes.servicio_contratado,
       UPPER(productos.nombre_producto) as servicio_contratado_name,
       case LN_gestiones.Iv_informe 
        when 1 then 'SI'
        when 0 then 'NO'
        else null 
       end as iv_informe,

       iif(isnull(CDE.DE,0) > 0,1,0) as tiene_de, 
       iif(isnull(CLCS.LCS, 0) > 0,1,0) as tiene_lcs,
       iif(isnull(MLCS.LCS, 0) > 0,1,0) as tiene_mlcs,
       iif(isnull(PP.PP, 0) > 0,1,0) as tiene_PP,

       ln_contrapartes.pais_servicio as pais_servicio_cod, 
       pais_servicio.country_name as pais_servicio
        

                            FROM LN_contrapartes
                            INNER JOIN LN_gestiones on LN_gestiones.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 clientes ON LN_contrapartes.cliente = clientes.cliente
                            INNER JOIN country ON LN_contrapartes.country_code = country.country_code
       INNER JOIN country pais_servicio ON LN_contrapartes.pais_servicio = pais_servicio.country_code
                            INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
       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
                            LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id

       LEFT OUTER JOIN LN_demo ON (LN_contrapartes.contraparte = LN_demo.contraparte
              AND LN_gestiones.gestion = LN_demo.gestion)
       LEFT OUTER JOIN LN_productos ON LN_demo.producto = LN_productos.producto
       LEFT OUTER JOIN productos on productos.producto = LN_contrapartes.servicio_contratado

       LEFT OUTER JOIN pagos_transacciones ON LN_contrapartes.contraparte = pagos_transacciones.contraparte 

       left outer join (select FP.familia, count(*) as DE from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('dependEconomica','dependEconomicaBal')
            group by FP.familia) CDE
            on (CDE.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCredito')
            group by FP.familia) CLCS
            on (CLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCreditoMultiple')
              group by FP.familia) MLCS
            on (MLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as PP from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('planespago')
              group by FP.familia) PP
            on (PP.familia = LN_contraparte_familias.familia)

                            WHERE LN_contrapartes.cliente = @p_cliente
                            AND LN_contrapartes.subcontratista = 0
       --AND LN_contrapartes.activo = 1
                            AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                            AND LN_gestiones.hasta >= CONVERT(date, GETDATE())

       AND LN_familias.id_producto = @p_id_producto
       
                            ORDER BY padrones.nombre_persona
   end

   /*** uso unicamente en backend en lista de contrapartes de un cliente. si se pasa el parámetro id_producto, toma las familias
    asociadas al mismo (47 = LED , 10 = INQUIRO) */

            if (@accion ='search_informes_contraparte') 
                BEGIN        
    
      if (@p_id_producto is null)
                           
                            SELECT distinct LN_contrapartes.contraparte,ln_familias.nombre_familia, LN_contrapartes.country_code, LN_contrapartes.cliente,
                            LN_contrapartes.id_padron, convert(varchar(max),LN_contrapartes.datos_comerciales) as 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,
       ISNULL(LN_contrapartes.modalidad_pago, 'CC') as modalidad_pago,
                            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,
                            LN_gestiones.gestion as gestion,
       LN_gestiones.desde as desde, 
       CONVERT(VARCHAR, LN_gestiones.desde,103) AS gestion_desde,
                            CONVERT(VARCHAR, LN_gestiones.hasta,103) AS gestion_hasta,
                            LN_demo.informe as informe, LN_productos.dossier,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.status) AS status,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.valor) AS valor,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.moneda) AS moneda
                            --es acá
       ,ln_contrapartes.servicio_contratado,
       UPPER(productos.nombre_producto) as servicio_contratado_name, 
       case LN_gestiones.Iv_informe 
        when 1 then 'SI'
        when 0 then 'NO'
        else null 
       end as iv_informe,
       iif(isnull(CDE.DE,0) > 0,1,0) as tiene_de, 
       iif(isnull(CLCS.LCS, 0) > 0,1,0) as tiene_lcs,
       iif(isnull(MLCS.LCS, 0) > 0,1,0) as tiene_mlcs,
       iif(isnull(PP.PP, 0) > 0,1,0) as tiene_pp,

       ln_contrapartes.pais_servicio as pais_servicio_cod, 
       pais_servicio.country_name as pais_servicio,
       led_contratistas.codigo_interno

                            FROM LN_contrapartes
                            INNER JOIN LN_gestiones on LN_gestiones.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 clientes ON LN_contrapartes.cliente = clientes.cliente
                            INNER JOIN country ON LN_contrapartes.country_code = country.country_code
       INNER JOIN country pais_servicio ON LN_contrapartes.pais_servicio = pais_servicio.country_code

                            INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
       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
                            LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id

       LEFT OUTER JOIN LN_demo ON (LN_contrapartes.contraparte = LN_demo.contraparte
              AND LN_gestiones.gestion = LN_demo.gestion)
       LEFT OUTER JOIN LN_productos ON LN_demo.producto = LN_productos.producto
       LEFT OUTER JOIN productos on productos.producto = LN_contrapartes.servicio_contratado
       LEFT JOIN led_contratistas ON LN_contrapartes.id_imperium=led_contratistas.contratista
     
       LEFT OUTER JOIN pagos_transacciones ON LN_contrapartes.contraparte = pagos_transacciones.contraparte 

       left outer join (select FP.familia, count(*) as DE from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('dependEconomica','dependEconomicaBal')
              group by FP.familia) CDE
            on (CDE.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCredito')
              group by FP.familia) CLCS
            on (CLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCreditoMultiple')
              group by FP.familia) MLCS
            on (MLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as PP from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('planespago')
              group by FP.familia) PP
            on (PP.familia = LN_contraparte_familias.familia)

                            WHERE LN_contrapartes.cliente = @p_cliente
                            AND LN_contrapartes.subcontratista = 0
       --AND LN_contrapartes.activo = 1
                            AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                            AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
       
                            ORDER BY padrones.nombre_persona

      else


                            SELECT distinct LN_contrapartes.contraparte,ln_familias.nombre_familia, LN_contrapartes.country_code, LN_contrapartes.cliente,
                            LN_contrapartes.id_padron, convert(varchar(max),LN_contrapartes.datos_comerciales) as 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,
       ISNULL(LN_contrapartes.modalidad_pago, 'CC') as modalidad_pago,
                            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,
                            LN_gestiones.gestion as gestion,
       LN_gestiones.desde as desde, 
       CONVERT(VARCHAR, LN_gestiones.desde,103) AS gestion_desde,
                            CONVERT(VARCHAR, LN_gestiones.hasta,103) AS gestion_hasta,
                            LN_demo.informe as informe, LN_productos.dossier,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.status) AS status,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.valor) AS valor,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.moneda) AS moneda
                            --es acá
       ,ln_contrapartes.servicio_contratado,
       UPPER(productos.nombre_producto) as servicio_contratado_name,
       case LN_gestiones.Iv_informe 
        when 1 then 'SI'
        when 0 then 'NO'
        else null 
       end as iv_informe,

       iif(isnull(CDE.DE,0) > 0,1,0) as tiene_de, 
       iif(isnull(CLCS.LCS, 0) > 0,1,0) as tiene_lcs,
       iif(isnull(MLCS.LCS, 0) > 0,1,0) as tiene_mlcs,
       iif(isnull(PP.PP, 0) > 0,1,0) as tiene_PP,

       ln_contrapartes.pais_servicio as pais_servicio_cod, 
       pais_servicio.country_name as pais_servicio
        

                            FROM LN_contrapartes
                            INNER JOIN LN_gestiones on LN_gestiones.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 clientes ON LN_contrapartes.cliente = clientes.cliente
                            INNER JOIN country ON LN_contrapartes.country_code = country.country_code
       INNER JOIN country pais_servicio ON LN_contrapartes.pais_servicio = pais_servicio.country_code
                            INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
       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
                            LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id

       LEFT OUTER JOIN LN_demo ON (LN_contrapartes.contraparte = LN_demo.contraparte
              AND LN_gestiones.gestion = LN_demo.gestion)
       LEFT OUTER JOIN LN_productos ON LN_demo.producto = LN_productos.producto
       LEFT OUTER JOIN productos on productos.producto = LN_contrapartes.servicio_contratado

       LEFT OUTER JOIN pagos_transacciones ON LN_contrapartes.contraparte = pagos_transacciones.contraparte 

       left outer join (select FP.familia, count(*) as DE from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('dependEconomica','dependEconomicaBal')
            group by FP.familia) CDE
            on (CDE.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCredito')
            group by FP.familia) CLCS
            on (CLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCreditoMultiple')
              group by FP.familia) MLCS
            on (MLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as PP from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('planespago')
              group by FP.familia) PP
            on (PP.familia = LN_contraparte_familias.familia)

                            WHERE LN_contrapartes.cliente = @p_cliente
                            AND LN_contrapartes.subcontratista = 0
       --AND LN_contrapartes.activo = 1
                            AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                            AND LN_gestiones.hasta >= CONVERT(date, GETDATE())

       AND LN_familias.id_producto = @p_id_producto
       
                            ORDER BY padrones.nombre_persona

       END   
     

     if (@accion ='search_contraparte') 
     BEGIN

     SELECT top 1 LN_contrapartes.contraparte,ln_familias.nombre_familia, 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,
       ISNULL(LN_contrapartes.modalidad_pago, 'CC') as modalidad_pago,
                            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,
                            LN_gestiones.gestion as gestion,
       LN_gestiones.desde as desde, 
       CONVERT(VARCHAR, LN_gestiones.desde,103) AS gestion_desde,
                            CONVERT(VARCHAR, LN_gestiones.hasta,103) AS gestion_hasta,
                            LN_demo.informe as informe, LN_productos.dossier,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.status) AS status,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.valor) AS valor,
       IIF(ISNULL(LN_contrapartes.modalidad_pago, 'CC') = 'CC', NULL, pagos_transacciones.moneda) AS moneda
                            --es acá
       ,ln_contrapartes.servicio_contratado,
       UPPER(productos.nombre_producto) as servicio_contratado_name,
       case LN_gestiones.Iv_informe 
        when 1 then 'SI'
        when 0 then 'NO'
        else null 
       end as iv_informe,
       iif(isnull(CDE.DE,0) > 0,1,0) as tiene_de, 
       iif(isnull(CLCS.LCS, 0) > 0,1,0) as tiene_lcs , 
       iif(isnull(MLCS.LCS, 0) > 0,1,0) as tiene_mlcs,
       iif(isnull(PP.PP, 0) > 0,1,0) as tiene_PP,


       pais_servicio.country_name as pais_servicio 

                            FROM LN_contrapartes
                            INNER JOIN LN_gestiones on LN_gestiones.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 clientes ON LN_contrapartes.cliente = clientes.cliente
                            INNER JOIN country ON LN_contrapartes.country_code = country.country_code
       INNER JOIN country pais_servicio ON LN_contrapartes.pais_servicio = pais_servicio.country_code

                            INNER JOIN users users1 ON LN_contrapartes.created_by = users1.user_id
       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
                            LEFT OUTER JOIN users users2 ON LN_contrapartes.modified_by = users2.user_id

       LEFT OUTER JOIN LN_demo ON (LN_contrapartes.contraparte = LN_demo.contraparte
              AND LN_gestiones.gestion = LN_demo.gestion)
       LEFT OUTER JOIN LN_productos ON LN_demo.producto = LN_productos.producto
       LEFT OUTER JOIN productos on productos.producto = LN_contrapartes.servicio_contratado

       LEFT OUTER JOIN pagos_transacciones ON LN_contrapartes.contraparte = pagos_transacciones.contraparte 

       left outer join (select FP.familia, count(*) as DE from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('dependEconomica','dependEconomicaBal')
            group by FP.familia) CDE
            on (CDE.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
             inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCredito')
            group by FP.familia) CLCS
            on (CLCS.familia = LN_contraparte_familias.familia)
       left outer join (select FP.familia, count(*) as LCS from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('limiteCreditoMultiple')
              group by FP.familia) MLCS
            on (MLCS.familia = LN_contraparte_familias.familia)

       left outer join (select FP.familia, count(*) as PP from 
            LN_familia_productos FP
            inner join 
            LN_cliente_productos CP on (CP.producto = FP.producto and CP.cliente = @p_cliente and CP.activo = 1)
            inner join 
            LN_productos P on P.producto = FP.producto 
            where FP.activo = 1
              and P.visible = 1 
              and P.producto_id in ('planespago')
              group by FP.familia) PP
            on (PP.familia = LN_contraparte_familias.familia)

                            WHERE LN_contrapartes.contraparte = @p_contraparte
                            --AND LN_contrapartes.subcontratista = 0
       --AND LN_contrapartes.activo = 1
                            AND LN_gestiones.desde <= CONVERT(date, GETDATE())
                            AND LN_gestiones.hasta >= CONVERT(date, GETDATE())
       AND LN_gestiones.vigente = 1 

       
                            ORDER BY padrones.nombre_persona

       END    



END

GO

Used By

No items found