dbo.obtener_cuadro_cheques2

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

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

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*

exec obtener_cuadro_cheques2 '30670250225'

*/

CREATE OR ALTER PROCEDURE  dbo.obtener_cuadro_cheques2 
@p_Cuit varchar(20),
@p_contraparte int = null 
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())

/* Busca que cantidad de dias tiene configurado el cliente */
DECLARE @p_dias int = 1825
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_dias = max(dias) from ln_dias_alertas where tabla = 'cheques' and cliente = @p_cliente
end 

SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'CHEQUES' as cheques_o_levantados, Cheques_causales.codigo as causal,
     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 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 
   (
     (
    (
      (
      (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 iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo
union all 
-- ultimo semestre 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'LEVANTADOS' as cheques_o_levantados, Cheques_causales.codigo as causal,
    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 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 
   (
     (
    (
      (
      (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 iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo
union all 
-- ultimo semestre 
SELECT tipo = iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), 
       'SIN LEVANTAR' as cheques_o_levantados, Cheques_causales.codigo as causal,
    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 null
    AND visible = 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 
   (
     (
    (
      (
      (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 iif(cuit_relacionado is null or ltrim(rtrim(cuit_relacionado)) = '', '1propio','2empresa'), chequesBCRA.id_causa, codigo

 end
GO

Used By

No items found