You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

80 lines
6.9 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_AgeingReport] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--Customer Wallet Aging Report
--proc_AgeingReport @flag='days',@user='admin'
CREATE PROCEDURE [dbo].[proc_AgeingReport](
@Flag VARCHAR(20)=NULL,
@User VARCHAR(100)=NULL
)AS
BEGIN
IF @Flag='amount'
BEGIN
DECLARE @MoreThan3Mil MONEY= 3000000
,@MoreThan4Mil MONEY= 4000000
,@MoreThan5Mil MONEY= 5000000
,@MoreThan6Mil MONEY= 6000000
,@MoreThan7Mil MONEY= 7000000
,@MoreThan8Mil MONEY= 8000000
,@MoreThan9Mil MONEY= 9000000
,@MoreThan10Mil MONEY= 10000000
SELECT
SUM(CASE WHEN x.amount<@MoreThan3Mil THEN x.amount ELSE 0 END) AS MoreThan3Mil
,SUM(CASE WHEN x.amount>@MoreThan3Mil AND x.amount<@MoreThan4Mil THEN x.amount ELSE 0 END) AS MoreThan4Mil
,SUM(CASE WHEN x.amount>@MoreThan4Mil AND x.amount<@MoreThan5Mil THEN x.amount ELSE 0 END) AS MoreThan5Mil
,SUM(CASE WHEN x.amount>@MoreThan5Mil AND x.amount<@MoreThan6Mil THEN x.amount ELSE 0 END) AS MoreThan6Mil
,SUM(CASE WHEN x.amount>@MoreThan6Mil AND x.amount<@MoreThan7Mil THEN x.amount ELSE 0 END) AS MoreThan7Mil
,SUM(CASE WHEN x.amount>@MoreThan7Mil AND x.amount<@MoreThan8Mil THEN x.amount ELSE 0 END) AS MoreThan8Mil
,SUM(CASE WHEN x.amount>@MoreThan8Mil AND x.amount<@MoreThan9Mil THEN x.amount ELSE 0 END) AS MoreThan9Mil
,SUM(CASE WHEN x.amount>@MoreThan9Mil AND x.amount<@MoreThan10Mil THEN x.amount ELSE 0 END) AS MoreThan10Mil
,x.virtualAccountNo
FROM (
SELECT
SUM(TVBDD.amount) AS amount,TVBDD.virtualAccountNo
FROM dbo.TblVirtualBankDepositDetail AS TVBDD(NOLOCK)
GROUP BY TVBDD.virtualAccountNo
)x GROUP BY x.virtualAccountNo
END
IF @Flag='days'
BEGIN
DECLARE @today DATE=GETDATE()
DECLARE @For1 DATETIME=DATEADD(DAY,-1,@today),@For2 DATETIME=DATEADD(DAY,-2,@today)
,@For3 DATETIME=DATEADD(DAY,-3,@today),@For7 DATETIME=DATEADD(DAY,-7,@today),@For30 DATETIME=DATEADD(DAY,-30,@today)
,@ForMore1Month DATETIME=DATEADD(MONTH,-1,@today),@ForMore6Month DATETIME=DATEADD(MONTH,-6,@today)
SELECT
SUM(x.LessThan24Hr) LessThan24Hr
,SUM(x.For1To2Days) For1To2Days
,SUM(x.For3To7Days) For3To7Days
,SUM(x.MonthMoreThan1) MonthMoreThan1
,SUM(MonthMoreThan1And6) MonthMoreThan1And6
,SUM(x.MoreThan6Month) MoreThan6Month
FROM (
SELECT
CASE WHEN TVBDD.logDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() THEN SUM(TVBDD.amount) ELSE 0 END AS LessThan24Hr
,CASE WHEN TVBDD.logDate BETWEEN @For2 AND @For1 THEN SUM(TVBDD.amount) ELSE 0 END AS For1To2Days
,CASE WHEN TVBDD.logDate BETWEEN @For7 AND @For3 THEN SUM(TVBDD.amount) ELSE 0 END AS For3To7Days
,CASE WHEN TVBDD.logDate BETWEEN @For30 AND @For7 THEN SUM(TVBDD.amount) ELSE 0 END AS For7To30Days
,CASE WHEN TVBDD.logDate < CAST(@For30 AS DATE) THEN SUM(TVBDD.amount) ELSE 0 END AS MonthMoreThan1
,CASE WHEN TVBDD.logDate BETWEEN @ForMore6Month AND @ForMore1Month THEN SUM(TVBDD.amount) ELSE 0 END AS MonthMoreThan1And6
,CASE WHEN TVBDD.logDate < @ForMore6Month THEN SUM(TVBDD.amount) ELSE 0 END AS MoreThan6Month
FROM dbo.TblVirtualBankDepositDetail AS TVBDD(NOLOCK)
GROUP BY TVBDD.logDate
)x
END
EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
SELECT 'Report Type' head, CASE WHEN @Flag='amount' THEN 'Amount Wise' ELSE 'Date wise' end value
SELECT 'Ageing Report' AS Title
END
GO