dbo.LN_email_data

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@accion varchar 50
@p_contraparte int 4
@p_cliente int 4
@p_dias int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
/*

exec ln_email_data 'contrapartes_vencimiento',null,null,15

*/

-- =============================================
CREATE OR ALTER PROCEDURE dbo.LN_email_data 
 -- Add the parameters for the stored procedure here

 @accion              varchar(50) = NULL,
 @p_contraparte            int = NULL,
 @p_cliente             int = NULL,
 @p_dias              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

 --- Todas las contrapartes de todos los clientes o filtrado, obtener las contrapartes con documentacion pendiente a vencer en al menos @p_dias

 IF (@accion = 'contrapartes_vencimiento') BEGIN

  if (@p_contraparte is null AND @p_cliente is null)

   select LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto
   from LN_docs 
   inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
   inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join LN_gestiones on (LN_docs.contraparte  = LN_gestiones.contraparte
          and LN_docs.gestion = LN_gestiones.gestion)
   where DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) <= @p_dias 

   AND DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) >= 0

   and LN_docs.estado_doc IN ('N','R')
   and LN_contrapartes.activo = 1
   and LN_docs.aplica = 1
   and LN_gestiones.desde <= GETDATE()
   and LN_gestiones.hasta >= GETDATE()
   group by LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto


  else if (@p_contraparte is not null AND @p_cliente is null)


   select LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto
   from LN_docs 
   inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
   inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join LN_gestiones on (LN_docs.contraparte  = LN_gestiones.contraparte
          and LN_docs.gestion = LN_gestiones.gestion)
   where DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) <= @p_dias

   AND DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) >= 0

   and LN_docs.estado_doc IN ('N','R')
   and LN_contrapartes.activo = 1
   and LN_docs.aplica = 1
   and LN_gestiones.desde <= GETDATE()
   and LN_gestiones.hasta >= GETDATE()
   and LN_contrapartes.contraparte = @p_contraparte
   group by LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto

  else if (@p_contraparte is null AND @p_cliente is not null)

   select LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto
   from LN_docs 
   inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
   inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join LN_gestiones on (LN_docs.contraparte  = LN_gestiones.contraparte
          and LN_docs.gestion = LN_gestiones.gestion)
   where DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) <= @p_dias

   AND DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) >= 0

   and LN_docs.estado_doc IN ('N','R')
   and LN_contrapartes.activo = 1
   and LN_docs.aplica = 1
   and LN_gestiones.desde <= GETDATE()
   and LN_gestiones.hasta >= GETDATE()
   and LN_contrapartes.cliente = @p_cliente
   group by LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto

  else

   select LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto
   from LN_docs 
   inner join LN_contrapartes on LN_docs.contraparte = LN_contrapartes.contraparte
   inner join clientes on LN_contrapartes.cliente = clientes.cliente
   inner join LN_gestiones on (LN_docs.contraparte  = LN_gestiones.contraparte
          and LN_docs.gestion = LN_gestiones.gestion)
   where DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) <= @p_dias

   AND DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) >= 0

   and LN_docs.estado_doc IN ('N','R')
   and LN_contrapartes.activo = 1
   and LN_docs.aplica = 1
   and LN_gestiones.desde <= GETDATE()
   and LN_gestiones.hasta >= GETDATE()
   and LN_contrapartes.contraparte = @p_contraparte
   and LN_contrapartes.cliente = @p_cliente
   group by LN_docs.contraparte, LN_docs.cliente, clientes.nombre_cliente, LN_contrapartes.nombre_contacto, LN_contrapartes.email_contacto



 END ELSE


 --- Dado un ID de contraparte lista los documentos pendientes a vencer en al menos @p_dias
 IF (@accion = 'documentos_vencimiento') BEGIN

  select LN_docs.doc_id, LN_docs.tipo_doc, 
    convert(varchar, LN_docs.vencimiento_carga, 103) as vencimiento_carga, 
    LN_docs.estado_doc,
    LN_docs.es_balance,
    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,
    CASE
     WHEN traducciones.app_key IS NULL THEN LN_tipos_doc.nombre_tipo_doc
     ELSE
      CASE
       WHEN LN_contrapartes.codigo_idioma = 'spa' THEN traducciones.spa
       WHEN LN_contrapartes.codigo_idioma = 'por' THEN traducciones.por
       WHEN LN_contrapartes.codigo_idioma = 'eng' THEN traducciones.eng
       ELSE traducciones.spa
      END
    END AS nombre_tipo_doc,
    iif(ISNULL(LN_docs.es_balance,0) > 0, CONVERT(VARCHAR,LN_docs.fin_ejercicio,103), NULL) AS cierre
  from LN_docs 
  inner join LN_tipos_doc ON LN_docs.tipo_doc = LN_tipos_doc.tipo_doc
  inner join LN_contrapartes ON LN_docs.contraparte = LN_contrapartes.contraparte
  left outer join traducciones on (LN_tipos_doc.nombre_tipo_doc = traducciones.app_key
          and traducciones.app_id = 4
          and traducciones.blade = 'home legajos')
  where LN_docs.contraparte = @p_contraparte
  and DATEDIFF(DAY,CONVERT(DATE,GETDATE()),CONVERT(DATE,LN_docs.vencimiento_carga)) <= @p_dias
  and LN_docs.estado_doc IN ('N','R')
  and LN_docs.aplica = 1
  order by LN_docs.vencimiento_carga, LN_tipos_doc.nombre_tipo_doc

 END
 
END
GO

Used By

No items found