dbo.LN_alertas_obtener_cheques

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

4
Name Data Type Length Description
@p_Cuit varchar 20
@p_dias int 4
@p_cantidad int 4
@p_contraparte int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [LN_alertas_obtener_cheques] '20293314102',360,2147483647,184675
exec LN_alertas_obtener_cheques_cliente 5546348,'20293314102'
exec [obtener_cheques] '27179771131'
*/

/**
Para obtener la lista de cheques rechazados del producto "Alertas" de LED por CUIT
Deben obtenerse únicamente cheques rechazados SIN FONDOS, SIN fecha de levantamiento
o cheques por defectos formales
y de los últimos NN días (parametrizable default 360)


  AND (ChequesBCRA.id_causa = 2 AND ChequesBCRA.fecha_levantamiento IS NULL)
  or ChequesBCRA.id_causa = 1
  
  AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)

  

Y de personas Fisicas, solo muestra los cheques personales
$cuit,$dias,2147483647,$id
**/


CREATE OR ALTER PROCEDURE  dbo.LN_alertas_obtener_cheques
@p_Cuit varchar(20),
@p_dias int = 730,
@p_cantidad int = 2147483647, 
@p_contraparte int = null 
AS

BEGIN

DECLARE @p_5anios smalldatetime = getdate() - 1825
DECLARE @p_2anios smalldatetime = getdate() - 730
DECLARE @p_1anio  smalldatetime = getdate() - 365
DECLARE @total_cheques int = 0
DECLARE @tipo varchar(2)

/* 14/10/2020 Busca que cantidad de dias tiene configurado el cliente */
DECLARE @p_diasch int = null
DECLARE @p_cliente int = null 
if (@p_contraparte is not null)
begin
 select @p_cliente = cliente from ln_contrapartes where contraparte = @p_contraparte
 if (@p_cliente is not null) 
  select @p_diasch = max(dias) from ln_dias_alertas where tabla = 'cheques' and cliente = @p_cliente
 if (@p_diasch is not null) 
     set @p_dias = @p_diasch
end 
/* */

set @total_cheques = (select count(nro_cheque) from ChequesBCRA
       where (cuit_firmante = @p_Cuit)

       AND 
       (
       (ChequesBCRA.id_causa = 2 AND ChequesBCRA.fecha_levantamiento IS NULL)
       or 
       (ChequesBCRA.id_causa = 1)
       )
       AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)

         AND id_cheque = (select max(id_cheque) from chequesBCRA b 
       where b.cuit_firmante = chequesBCRA.cuit_firmante 
         and b.nro_cheque = chequesBCRA.nro_cheque 
         and b.visible = 1) 
      AND visible = 1
        AND 
       (

        (
         (
          (
        (fecha_levantamiento IS NULL) 
        AND
        (fecha_rechazo >= @p_5anios)
          ) 
          OR 
          (
        (
         (fecha_levantamiento >= @p_5anios)
          AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 15 ) 
        ) 
        AND 
        (
         ((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) 
         OR
         (((fecha_pago IS NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) AND (fecha_rechazo >= @p_5anios)) 
        ) 
          ) 
         ) 
         OR 
         (
          ((fecha_levantamiento >= @p_5anios) 
          AND (((datediff(day,fecha_rechazo,fecha_levantamiento)) >= 16 ) AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 90)) 
          ) 
          AND 
          (((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= @p_1anio))
        OR (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_1anio)) AND (fecha_rechazo >= @p_5anios))
          ) 
         ) 
        )

        OR 
 
        (
         (((fecha_levantamiento >= @p_5anios) AND
        ((datediff(day,fecha_rechazo,fecha_levantamiento)) > 90)) AND (fecha_levantamiento >= @p_2anios) 
         ) 
         AND (fecha_rechazo >= @p_5anios) 
        )

       )
       )

SELECT @tipo = IIF(CharIndex('3',@p_Cuit)=1,'j',NULL)

IF @tipo = 'j'
  BEGIN
    -- Los Cheques que vienen a nombre de la empresa
 SELECT top (@p_cantidad)
      pf.nombre_persona AS 'nombre_persona_firmante',
   cuit_firmante  AS 'cuit_firmante',
   '0' AS 'nombre_persona_relacionado',
   '0' AS 'Cuit_relacionado',
      nro_cheque,
   pf.id_padron as idp,
   '0' as idppr,
      CONVERT(varchar, ChequesBCRA.fecha_rechazo, 103)       AS fecha_rechazo,
      CONVERT(varchar, ChequesBCRA.fecha_levantamiento, 103) AS fecha_levantamiento,
      CONVERT(varchar, ChequesBCRA.fecha_pago, 103)          AS fecha_pago,
      convert(decimal(16,2),importe) as importe,
   '0' AS cantidad,
   Cheques_causales.codigo AS causa,
      'a_nombre_de_empresa' AS tipo,
   @total_cheques as total_cheques,
   @p_dias as dias
    FROM
      ChequesBCRA
      LEFT JOIN padrones AS pf ON (pf.identificacion = cuit_firmante and pf.habilitado = 1)    --info firmante
      INNER JOIN Cheques_causales ON (ChequesBCRA.id_causa = Cheques_causales.id_causa)
    WHERE
   (Cuit_firmante = @p_Cuit)
     AND id_cheque = (select max(id_cheque) from chequesBCRA b 
       where b.cuit_firmante = chequesBCRA.cuit_firmante 
         and b.nro_cheque = chequesBCRA.nro_cheque 
         and b.visible = 1) 

      AND visible = 1

   AND 
   /*ChequesBCRA.id_causa = 2
      AND ChequesBCRA.fecha_levantamiento IS NULL*/

    (
  (ChequesBCRA.id_causa = 2 AND ChequesBCRA.fecha_levantamiento IS NULL)
  or 
  (ChequesBCRA.id_causa = 1)
  )

   AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)


   AND 
    (

   (
    (
     (
   (fecha_levantamiento IS NULL) 
   AND
   (fecha_rechazo >= @p_5anios)
     ) 
     OR 
     (
   (
    (fecha_levantamiento >= @p_5anios)
     AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 15 ) 
   ) 
   AND 
   (
    ((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) 
    OR
    (((fecha_pago IS NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) AND (fecha_rechazo >= @p_5anios)) 
   ) 
     ) 
    ) 
    OR 
    (
     ((fecha_levantamiento >= @p_5anios) 
     AND (((datediff(day,fecha_rechazo,fecha_levantamiento)) >= 16 ) AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 90)) 
     ) 
     AND 
     (((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= @p_1anio))
   OR (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_1anio)) AND (fecha_rechazo >= @p_5anios))
     ) 
    ) 
   )

   OR 
 
   (
    (((fecha_levantamiento >= @p_5anios) AND
   ((datediff(day,fecha_rechazo,fecha_levantamiento)) > 90)) AND (fecha_levantamiento >= @p_2anios) 
    ) 
    AND (fecha_rechazo >= @p_5anios) 
   )

  )

    UNION ALL 

 -- Los registros de los firmantes de los cheques de la empresa
  
 SELECT top (@p_cantidad)
      pf.nombre_persona AS 'nombre_persona_firmante',
   cuit_firmante     AS 'cuit_firmante',
   pr.nombre_persona AS 'nombre_persona_relacionado',
   Cuit_relacionado  AS 'Cuit_relacionado',
   pf.id_padron as idp,
   pr.id_padron as idppr,
   '0' as nro_cheque,
      '0' AS fecha_rechazo,
      '0' AS fecha_levantamiento,
      '0' AS fecha_pago,
      '0' AS importe,
   count(nro_cheque) as cantidad,
   '0' AS causa,
      'vinculaciones' AS tipo,
   @total_cheques as total_cheques, 
   @p_dias as dias


    FROM
      ChequesBCRA
      LEFT JOIN padrones AS pf ON (pf.identificacion = cuit_firmante and pf.habilitado = 1)    --info firmante
   LEFT JOIN padrones AS pr ON (pr.identificacion = Cuit_relacionado and pr.habilitado = 1) --info relacionado
      INNER JOIN Cheques_causales ON (ChequesBCRA.id_causa = Cheques_causales.id_causa)
    WHERE 
   (Cuit_relacionado = @p_Cuit)
    AND id_cheque = (select max(id_cheque) from chequesBCRA b 
       where b.cuit_firmante = chequesBCRA.cuit_firmante 
         and b.nro_cheque = chequesBCRA.nro_cheque 
         and b.visible = 1) 
      AND visible = 1 
   AND 
   /*ChequesBCRA.id_causa = 2
      AND ChequesBCRA.fecha_levantamiento IS NULL*/

    (
  (ChequesBCRA.id_causa = 2 AND ChequesBCRA.fecha_levantamiento IS NULL)
  or 
  (ChequesBCRA.id_causa = 1)
  )
   AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)

   AND 

  (

   (
    (
     (
   (fecha_levantamiento IS NULL) 
   AND
   (fecha_rechazo >= @p_5anios)
     ) 
     OR 
     (
   (
    (fecha_levantamiento >= @p_5anios)
     AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 15 ) 
   ) 
   AND 
   (
    ((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) 
    OR
    (((fecha_pago IS NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) AND (fecha_rechazo >= @p_5anios)) 
   ) 
     ) 
    ) 
    OR 
    (
     ((fecha_levantamiento >= @p_5anios) 
     AND (((datediff(day,fecha_rechazo,fecha_levantamiento)) >= 16 ) AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 90)) 
     ) 
     AND 
     (((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= @p_1anio))
   OR (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_1anio)) AND (fecha_rechazo >= @p_5anios))
     ) 
    ) 
   )

   OR 
 
   (
    (((fecha_levantamiento >= @p_5anios) AND
   ((datediff(day,fecha_rechazo,fecha_levantamiento)) > 90)) AND (fecha_levantamiento >= @p_2anios) 
    ) 
    AND (fecha_rechazo >= @p_5anios) 
   )

  )
  group by pf.nombre_persona,ChequesBCRA.cuit_firmante,pr.nombre_persona,Cuit_relacionado,pf.id_padron,pr.id_padron
     ORDER BY fecha_rechazo, nro_cheque DESC
  END

  ELSE
  
  BEGIN
  /* persona fisica */

  -- Los cheques personales 
    SELECT top (@p_cantidad)
   pf.nombre_persona AS 'nombre_persona_firmante',
   cuit_firmante     AS 'cuit_firmante',
   '0' AS 'nombre_persona_relacionado',
   '0' AS 'Cuit_relacionado',
      nro_cheque,
   pf.id_padron as idp,
  '0' as idppr,
      CONVERT(varchar, ChequesBCRA.fecha_rechazo, 103)       AS fecha_rechazo,
      CONVERT(varchar, ChequesBCRA.fecha_levantamiento, 103) AS fecha_levantamiento,
      CONVERT(varchar, ChequesBCRA.fecha_pago, 103)          AS fecha_pago,
      convert(decimal(16,2),importe) as importe,
   '0' AS cantidad,
      Cheques_causales.codigo AS causa,
   'propio' as tipo,
   @total_cheques as total_cheques, 
   @p_dias as dias

    FROM 
      ChequesBCRA
      LEFT JOIN padrones AS pf ON (pf.identificacion = cuit_firmante and pf.habilitado = 1)    --info firmante
      INNER JOIN Cheques_causales ON (ChequesBCRA.id_causa = Cheques_causales.id_causa)
 WHERE 
      ( ( cuit_firmante = @p_Cuit) AND (cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = ''))
      /*AND fecha_rechazo > getdate() - 770*/ -- Solo lo tenia este select, se lo saque para que sea igual a los demas
    AND id_cheque = (select max(id_cheque) from chequesBCRA b 
       where b.cuit_firmante = chequesBCRA.cuit_firmante 
         and b.nro_cheque = chequesBCRA.nro_cheque 
         and b.visible = 1) 
      AND visible = 1
   AND    
   /*ChequesBCRA.id_causa = 2
      AND ChequesBCRA.fecha_levantamiento IS NULL*/

    (
  (ChequesBCRA.id_causa = 2 AND ChequesBCRA.fecha_levantamiento IS NULL)
  or 
  (ChequesBCRA.id_causa = 1)
  )
      AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)

   AND 

  (
   (
    (
     (
   (fecha_levantamiento IS NULL) AND (fecha_rechazo >= @p_5anios)
     ) 
     OR 
     (
   (
    (fecha_levantamiento >= @p_5anios)
     AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 15 ) 
   ) 
   AND 
   (
    ((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) 
    OR
    (((fecha_pago IS NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) AND (fecha_rechazo >= @p_5anios)) 
   ) 
     ) 
    ) 
    OR 
    (
     ((fecha_levantamiento >= @p_5anios) 
     AND (((datediff(day,fecha_rechazo,fecha_levantamiento)) >= 16 ) AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 90)) 
     ) 
     AND 
     (((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= @p_1anio))
   OR (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_1anio)) AND (fecha_rechazo >= @p_5anios))
     ) 
    ) 
   )

   OR 
 
   (
    (((fecha_levantamiento >= @p_5anios) AND
   ((datediff(day,fecha_rechazo,fecha_levantamiento)) > 90)) AND (fecha_levantamiento >= @p_2anios) 
    ) 
    AND (fecha_rechazo >= @p_5anios) 
   )

  )
  /*
   UNION ALL
   -- Los cheques de las empresas en las que es firmante
   SELECT top (@p_cantidad)  
     pf.nombre_persona AS 'nombre_persona_firmante',
     cuit_firmante     AS 'cuit_firmante',
     pr.nombre_persona AS 'nombre_persona_relacionado',
     Cuit_relacionado  AS 'Cuit_relacionado',
        nro_cheque,
     pf.id_padron as idp,
     pr.id_padron as idppr,
        CONVERT(varchar, ChequesBCRA.fecha_rechazo, 103)       AS fecha_rechazo,
        CONVERT(varchar, ChequesBCRA.fecha_levantamiento, 103) AS fecha_levantamiento,
        CONVERT(varchar, ChequesBCRA.fecha_pago, 103)          AS fecha_pago,
        convert(decimal(16,2),importe) as importe,
     '0' AS cantidad,
        Cheques_causales.codigo AS causa,
     'empresa' as tipo,
     @total_cheques as total_cheques
      FROM 
        ChequesBCRA
        LEFT JOIN padrones AS pf ON (pf.identificacion = cuit_firmante and pf.habilitado = 1)    --info firmante
     INNER JOIN padrones AS pr ON (pr.identificacion = Cuit_relacionado and pr.habilitado = 1) --info relacionado
        INNER JOIN Cheques_causales ON (ChequesBCRA.id_causa = Cheques_causales.id_causa)
   WHERE 
   ( ( cuit_firmante = @p_Cuit) AND (cuit_relacionado is not null and ltrim(rtrim(cuit_relacionado)) != ''))
       /*AND not exists(select * from chequesBCRA b 
         where b.cuit_firmante = chequesBCRA.cuit_firmante 
     and b.nro_cheque = chequesBCRA.nro_cheque 
     and b.visible = 1 
     and b.id_cheque > chequesBCRA.id_cheque)*/

  
       AND id_cheque = (select max(id_cheque) from chequesBCRA b 
   where b.cuit_firmante = chequesBCRA.cuit_firmante 
     and b.nro_cheque = chequesBCRA.nro_cheque 
     and b.visible = 1) 
        AND visible = 1
        AND ChequesBCRA.id_causa = 2
     AND ChequesBCRA.fecha_levantamiento IS NULL
        AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@p_dias)
  
     AND 
   (
    (
     (
      (
   (fecha_levantamiento IS NULL) 
   AND
   (fecha_rechazo >= @p_5anios)
      ) 
      OR 
      (
   (
    (fecha_levantamiento >= @p_5anios)
     AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 15 ) 
   ) 
   AND 
   (
    ((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= (GETDATE() - 2))) 
    OR
    (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_2anios)) AND (fecha_rechazo >= @p_5anios)) 
   ) 
      ) 
     ) 
     OR 
     (
      ((fecha_levantamiento >= @p_5anios) 
      AND (((datediff(day,fecha_rechazo,fecha_levantamiento)) >= 16 ) AND ((datediff(day,fecha_rechazo,fecha_levantamiento)) <= 90)) 
      ) 
      AND 
      (((fecha_pago IS NOT NULL) AND (fecha_levantamiento >= @p_1anio))
   OR (((fecha_pago IS NULL) AND (fecha_levantamiento >= @p_2anios)) AND (fecha_rechazo >= @p_5anios))
      ) 
     ) 
    )
  
    OR 
   
    (
     (((fecha_levantamiento >= @p_5anios) AND
   ((datediff(day,fecha_rechazo,fecha_levantamiento)) > 90)) AND (fecha_levantamiento >= @p_2anios) 
     ) 
     AND (fecha_rechazo >= @p_5anios) 
    )
  
   )
   */

 ORDER BY nro_cheque ASC
  END

END

GO

Used By

No items found