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
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
Depends On
2Used By
No items found