dbo.ws_obtener_cuadro_cheques

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

1
Name Data Type Length Description
@p_Cuit varchar 20

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO

CREATE OR ALTER PROCEDURE dbo.ws_obtener_cuadro_cheques
@p_Cuit varchar(20)
AS
BEGIN
DECLARE @tipo varchar(1)
DECLARE @p_5anios smalldatetime = getdate() - 1825
DECLARE @p_2anios smalldatetime = getdate() - 730
DECLARE @p_1anio  smalldatetime = getdate() - 365
declare @hoy date = convert(date,getdate())
-- ultimo semestre 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'CHEQUES' as cheques_o_levantados, 
    chequesBCRA.id_causa, Cheques_causales.codigo as causal,
    '1' as semestre, 
     count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
    FROM chequesBCRA
    left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
    AND visible = 1
    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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) < 180

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo

union all

-- semetre anterior
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'CHEQUES' as cheques_o_levantados, 
    chequesBCRA.id_causa, Cheques_causales.codigo as causal,
    '2' as semestre, 
     count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
    FROM chequesBCRA
    left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
     AND visible = 1
     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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) >= 180 and DATEDIFF(day,fecha_rechazo,@hoy) < 365

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo


union all 

-- años anteriores 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'CHEQUES' as cheques_o_levantados, 
    chequesBCRA.id_causa, Cheques_causales.codigo as causal, 
    '3' as semestre, 
    count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
    FROM chequesBCRA
    left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
     AND visible = 1
    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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) >= 365 and DATEDIFF(day,fecha_rechazo,@hoy) < 1825 

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo
--------------------------
-- cheques abonados
--------------------------
union all 
-- ultimo semestre 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'LEVANTADOS' as cheques_o_levantados, 
    '5' as id_causa, 'Cheques Abonados' as causal, 
    '1' as semestre, 
    count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
    FROM chequesBCRA
    left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
    AND ChequesBCRA.fecha_levantamiento is not null
    AND visible = 1
    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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) < 180

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo

union all

-- semetre anterior
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'LEVANTADOS' as cheques_o_levantados, 
     '5' as id_causa, 'Cheques Abonados' as causal, 
    '2' as semestre, 
    count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
    FROM chequesBCRA
    left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
   AND ChequesBCRA.fecha_levantamiento is not null
     AND visible = 1
     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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) >= 180 and DATEDIFF(day,fecha_rechazo,@hoy) < 365

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo


union all 

-- años anteriores 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'LEVANTADOS' as cheques_o_levantados, 
        '5' as id_causa, 'Cheques Abonados' as causal, 
    '3' as semestre, 
    count(*) as cantidad,
       convert(decimal(16,2),sum(importe)) as monto
      FROM chequesBCRA
   left join Cheques_causales 
      on Cheques_causales.id_causa = ChequesBCRA.id_causa
   WHERE cuit_firmante = @p_Cuit
   AND ChequesBCRA.fecha_levantamiento is not null
     AND visible = 1
    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 
   (
     (
    (
      (
      (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) 
     ) 
   )

   and DATEDIFF(day,fecha_rechazo,@hoy) >= 365 and DATEDIFF(day,fecha_rechazo,@hoy) >= 365 and DATEDIFF(day,fecha_rechazo,@hoy) < 1825

   group by iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo


   order by tipo, id_causa, semestre
END 

GO

Used By

No items found