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_cliente | int | 4 | |
| @rechazados | int | 4 |
SQL Script
Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
/*
DECLARE @rechazados int
EXEC [LN_alertas_cheques_cliente] '30602627388', '5546348', @rechazados output
select @rechazados as rechazados
*/
/*****************************************************************************
En la tabla [LN_dias_alertas] buscamos los criterios de 'cheques' que hay que tomar
Si hay varias, devuelve el total de todos los casos a tener en cuenta
Por default:
CHEQUES RECHAZADOS SIN FONDOS NO PAGADOS
(SIN FECHA DE LEVANTAMIENTO) DE LOS ULTIMOS 360 DIAS
******************************************************************************/
CREATE OR ALTER PROCEDURE dbo.LN_alertas_cheques_cliente
@p_Cuit varchar(20),
@p_cliente int,
@rechazados int = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
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 @cheques_rechazados int = 0
declare @total_rechazados int = 0
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
FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados
WHILE @@fetch_status = 0
BEGIN
select @cheques_rechazados = count(*) 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)
)
)
set @total_rechazados = @total_rechazados + @cheques_rechazados
FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados
END
SET @rechazados = @total_rechazados
CLOSE C_cheques
DEALLOCATE C_cheques
END
GO
GO
/*
DECLARE @rechazados int
EXEC [LN_alertas_cheques_cliente] '30602627388', '5546348', @rechazados output
select @rechazados as rechazados
*/
/*****************************************************************************
En la tabla [LN_dias_alertas] buscamos los criterios de 'cheques' que hay que tomar
Si hay varias, devuelve el total de todos los casos a tener en cuenta
Por default:
CHEQUES RECHAZADOS SIN FONDOS NO PAGADOS
(SIN FECHA DE LEVANTAMIENTO) DE LOS ULTIMOS 360 DIAS
******************************************************************************/
CREATE OR ALTER PROCEDURE dbo.LN_alertas_cheques_cliente
@p_Cuit varchar(20),
@p_cliente int,
@rechazados int = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
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 @cheques_rechazados int = 0
declare @total_rechazados int = 0
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
FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados
WHILE @@fetch_status = 0
BEGIN
select @cheques_rechazados = count(*) 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)
)
)
set @total_rechazados = @total_rechazados + @cheques_rechazados
FETCH NEXT FROM C_Cheques INTO @dias, @causal, @levantados
END
SET @rechazados = @total_rechazados
CLOSE C_cheques
DEALLOCATE C_cheques
END
GO
Depends On
2Used By
15- dbo.LN_dashboard_cliente_0822
- dbo.LN_dashboard_cliente_13052020
- dbo.LN_dashboard_cliente_2020
- dbo.LN_dashboard_cliente_20200403
- dbo.LN_dashboard_cliente_2024
- dbo.LN_dashboard_cliente_21-08-2022-AGB
- dbo.LN_dashboard_cliente_A_BORRAR
- dbo.LN_dashboard_cliente_AB
- dbo.LN_dashboard_cliente_AGB
- dbo.LN_dashboard_cliente_ant
- dbo.LN_dashboard_cliente_BACKUP_12062019_2006HORAS
- dbo.LN_dashboard_cliente_DEV
- dbo.LN_dashboard_cliente_MIS
- dbo.LN_dashboard_cliente_MS
- dbo.LN_dashboard_cliente_ppp