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_a_sacar | varchar | 1 | |
| @p_cantidad | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
exec obtener_cheques '30670250225'
select * from chequesbcra where cuit_firmante = '30670250225' and nro_cheque = 99075279
*/
CREATE OR ALTER PROCEDURE dbo.obtener_cheques
@p_Cuit varchar(20),
@p_a_sacar varchar(1) = null,
@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_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 @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 >= (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)
)
)
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 >= (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 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 >= (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)
)
)
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 >= (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)
)
)
ORDER BY nro_cheque ASC
END
END
GO
GO
/*
exec obtener_cheques '30670250225'
select * from chequesbcra where cuit_firmante = '30670250225' and nro_cheque = 99075279
*/
CREATE OR ALTER PROCEDURE dbo.obtener_cheques
@p_Cuit varchar(20),
@p_a_sacar varchar(1) = null,
@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_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 @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 >= (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)
)
)
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 >= (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 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 >= (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)
)
)
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 >= (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)
)
)
ORDER BY nro_cheque ASC
END
END
GO