dbo.LN_alertas_obtener_cheques_cliente

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_cliente int 4
@p_Cuit varchar 20
@p_dias int 4
@p_cantidad int 4

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec [LN_alertas_obtener_cheques] '27179771131'
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
**/


--LN_alertas_obtener_cheques_cliente 5546348,'30692845605'

CREATE OR ALTER PROCEDURE  dbo.LN_alertas_obtener_cheques_cliente -- NO SE USA MAS... 
/* SE USA ESTE, CON EL NRO DE CONTRAPARTE, para sacar el cliente y ver la configuracion en ln_dias_alertas
[LN_alertas_obtener_cheques]
@p_Cuit varchar(20),
@p_dias int = 360,
@p_cantidad int = 2147483647, 
@p_contraparte int = null 
*/

@p_cliente int, 
@p_Cuit varchar(20),
@p_dias int = 360,
@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 @dias int, @causal int, @levantados char(1) 
 DECLARE @total_cheques int = 0
 declare @tipo char(1)
 declare @cheques table (cuit_firmante varchar(20), 
                         nro_cheque int, fecha_rechazo varchar(10),fecha_levantamiento varchar(10),fecha_pago varchar(10),
       importe float, nro_causa int,tipo varchar(20))


 if ((select COUNT(*) from ln_dias_alertas where cliente = @p_Cliente and tabla = 'cheques') = 0)
 begin
  DECLARE C_Cheques CURSOR FOR
   select 360 as dias, 2 as causal, 'N' as levantados 
    end 
 else
 begin 
  DECLARE C_Cheques CURSOR FOR
   select dias, causal, levantados 
     from ln_dias_alertas 
    where tabla = 'cheques' and cliente = @p_Cliente
 end 

 OPEN C_Cheques
 set @total_cheques = 0
 FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados  
    WHILE @@fetch_status = 0
 BEGIN
 SELECT @tipo = IIF(CharIndex('3',@p_Cuit)=1,'j',NULL)
    -- Los Cheques que vienen a nombre de la empresa, o son propios
 insert into @cheques
 SELECT 
   cuit_firmante  AS 'cuit_firmante',
      nro_cheque,
      CONVERT(varchar(10), ChequesBCRA.fecha_rechazo, 103)       AS fecha_rechazo,
      CONVERT(varchar(10), ChequesBCRA.fecha_levantamiento, 103) AS fecha_levantamiento,
      CONVERT(varchar(10), ChequesBCRA.fecha_pago, 103)          AS fecha_pago,
      convert(decimal(16,2),importe) as importe,
   id_causa, 
   iif(@tipo='j','a_nombre_de_empresa','propio') as tipo
    FROM
      ChequesBCRA
 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 ChequesBCRA.id_causa = @causal 
  AND ((@levantados = 'N' AND ChequesBCRA.fecha_levantamiento IS NULL)
       or 
    (@levantados = 'S' AND ChequesBCRA.fecha_levantamiento IS NOT NULL)
    or 
    (@levantados is null))
        AND (visible = 1)
  AND ChequesBCRA.fecha_rechazo >= (GETDATE()-@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) 
    )
   )
   FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados  
 END 
 CLOSE C_cheques
 DEALLOCATE C_cheques
 /*
  set @total_cheques = (select count(*) from @cheques)
  select nombre_persona as nombre_persona_firmante,
         cuit_firmante,nro_cheque,fecha_rechazo,fecha_levantamiento,fecha_pago,importe,
     Cheques_causales.codigo AS causa,
         @total_cheques as total_cheques
    from @cheques
    LEFT JOIN padrones AS pf ON (pf.identificacion = cuit_firmante)   
       INNER JOIN Cheques_causales ON  Cheques_causales.id_causa = nro_causa 
    */

END

GO

Used By

No items found