dbo.LN_COUNT_CHEQUES

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

3
Name Data Type Length Description
@p_Cuit varchar 20
@p_causa tinyint 1
@p_cantidad int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*

EXEC LN_COUNT_CHEQUES  '30711144648'

*/


CREATE OR ALTER PROCEDURE  dbo.LN_COUNT_CHEQUES
@p_Cuit varchar(20),
@p_causa tinyint = 2, /*2 = SIN FONDOS 1 = FORMALES*/
@p_cantidad int = 2147483647
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)

set @total_cheques = (select count(nro_cheque) from ChequesBCRA
       where (cuit_firmante = @p_Cuit) AND id_causa=@p_causa
         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 @total_cheques AS acumulado_cheques
/*
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
    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 
   (

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

)

    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

    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 

(

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

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

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

)

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

Depends On

1

Used By

No items found