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.
391 lines
25 KiB
391 lines
25 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[PROC_GET_DASHBOARD_DATA_V2] Script Date: 12/5/2023 10:21:17 AM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
--EXEC PROC_GET_DASHBOARD_DATA_V2 @Flag = 'Dashboard'
|
|
ALTER PROC [dbo].[PROC_GET_DASHBOARD_DATA_V2] (
|
|
@Flag VARCHAR(20)
|
|
,@User VARCHAR(80) = NULL
|
|
,@fromDate VARCHAR(20) = NULL
|
|
,@toDate VARCHAR(20) = NULL
|
|
)
|
|
AS
|
|
-- #9697 - Registered Customer Count Tally
|
|
-- #13162 - Tran Count Tally
|
|
-- #18970 - changes to show compliance txn on dashboard on the basis of kyc status
|
|
-- selected kyc details to show on dashboard
|
|
;
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
BEGIN
|
|
--SET @fromDate= CONVERT(varchar(10),DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0),121);
|
|
SET @fromDate = CONVERT(VARCHAR(10), DATEADD(M, - 6, GETDATE()), 121);
|
|
SET @toDate = CONVERT(VARCHAR(10), GETDATE(), 121) + ' 23:59:59';
|
|
|
|
--set @fromDate = convert(varchar(10) , @fromDate , 121)
|
|
--set @toDate = convert(varchar(10) , @toDate , 121)
|
|
DECLARE @StartDatePrevious DATETIME
|
|
,@EndDatePrevious DATETIME
|
|
|
|
SET @StartDatePrevious = dateadd(mm, - 1, getdate())
|
|
SET @StartDatePrevious = dateadd(dd, datepart(dd, getdate()) * - 1, @StartDatePrevious)
|
|
SET @EndDatePrevious = dateadd(mm, 1, @StartDatePrevious)
|
|
|
|
IF @Flag = 'Dashboard'
|
|
BEGIN
|
|
SELECT TOP 50000 CONVERT(VARCHAR(30), RT.approvedDate, 110) createdDate
|
|
,RT.approvedDate AS createdDate1
|
|
,sAgent
|
|
,sAgentName = AM.agentName
|
|
,pCountry
|
|
,tranType
|
|
,tranStatus
|
|
,payStatus
|
|
,CONVERT(VARCHAR(30), paidDate, 110) paidDate
|
|
,CONVERT(VARCHAR(30), cancelApprovedDate, 110) cancelApprovedDate
|
|
,LEFT(DATENAME(MONTH, RT.approvedDate), 3) monthNameTxn
|
|
,DATEPART(MONTH, RT.approvedDate) MonthId
|
|
,id
|
|
,ISNULL(AM.actAsBranch, 'N') actAsBranch
|
|
,ISNULL(RT.createdBy, 'N/A') createdBy
|
|
INTO #TXN_TABLE
|
|
FROM remitTran RT(NOLOCK)
|
|
INNER JOIN agentMaster AM(NOLOCK) ON AM.agentId = RT.sAgent
|
|
WHERE RT.approvedDate BETWEEN @fromDate
|
|
AND @toDate
|
|
AND RT.tranStatus <> 'cancel'
|
|
ORDER BY RT.id DESC
|
|
|
|
SELECT *
|
|
FROM #TXN_TABLE RT
|
|
WHERE createdDate1 BETWEEN CONVERT(VARCHAR(10), DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), 121)
|
|
AND @toDate
|
|
ORDER BY MonthId ASC
|
|
|
|
--OFAC and Compliance Data
|
|
--SELECT [Head] = CASE
|
|
-- WHEN TRANTYPE = 'I'
|
|
-- THEN 'OFAC/Compliance/Cash Limit Hold : International'
|
|
-- ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile'
|
|
-- END
|
|
-- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="List.aspx?tranType='+TRANTYPE+'">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
|
|
--FROM remitTranTemp b WITH (NOLOCK)
|
|
--WHERE B.tranStatus IN (
|
|
-- 'Compliance Hold'
|
|
-- ,'OFAC Hold'
|
|
-- ,'OFAC/Compliance Hold'
|
|
-- ,'Cash Limit Hold'
|
|
-- ,'Cash Limit/OFAC/Compliance Hold'
|
|
-- ,'Cash Limit/OFAC Hold'
|
|
-- ,'Cash Limit/Compliance Hold'
|
|
-- )
|
|
--GROUP BY TRANTYPE
|
|
|
|
--UNION ALL
|
|
SELECT * FROM(
|
|
SELECT [Head] = CASE
|
|
WHEN TRANTYPE = 'I'
|
|
THEN 'OFAC/Compliance/Cash Limit Hold : International'
|
|
--ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Later)'
|
|
ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile/Web Online'
|
|
END
|
|
,[Count] = COUNT('x') -- CASE WHEN COUNT('x') > 0 THEN '<a href="List.aspx?tranType='' + TRANTYPE + ''&kycstatus='' + cm.LawsonCardNo + ''">' + CAST(COUNT('x') AS VARCHAR) + '</a>' ELSE '-' END
|
|
FROM remitTranTemp b WITH (NOLOCK)
|
|
LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
|
|
LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
|
|
WHERE --cm.LawsonCardNo = 'KYC_LATER'
|
|
--AND
|
|
B.tranStatus IN (
|
|
'Compliance Hold'
|
|
,'OFAC Hold'
|
|
,'OFAC/Compliance Hold'
|
|
,'Cash Limit Hold'
|
|
,'Cash Limit/OFAC/Compliance Hold'
|
|
,'Cash Limit/OFAC Hold'
|
|
,'Cash Limit/Compliance Hold'
|
|
)
|
|
GROUP BY TRANTYPE
|
|
--,cm.LawsonCardNo
|
|
|
|
--UNION ALL
|
|
|
|
--SELECT [Head] = CASE
|
|
-- WHEN TRANTYPE = 'I'
|
|
-- THEN 'OFAC/Compliance/Cash Limit Hold : International'
|
|
-- ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Now)'
|
|
-- END
|
|
-- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="List.aspx?tranType='' + TRANTYPE + ''&kycstatus='' + cm.LawsonCardNo + ''">' + CAST(COUNT('x') AS VARCHAR) + '</a>' ELSE '-' END
|
|
--FROM remitTranTemp b WITH (NOLOCK)
|
|
--LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
|
|
--LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
|
|
--WHERE cm.LawsonCardNo = 'KYC_NOW'
|
|
-- AND B.tranStatus IN (
|
|
-- 'Compliance Hold'
|
|
-- ,'OFAC Hold'
|
|
-- ,'OFAC/Compliance Hold'
|
|
-- ,'Cash Limit Hold'
|
|
-- ,'Cash Limit/OFAC/Compliance Hold'
|
|
-- ,'Cash Limit/OFAC Hold'
|
|
-- ,'Cash Limit/Compliance Hold'
|
|
-- )
|
|
--GROUP BY TRANTYPE
|
|
-- ,cm.LawsonCardNo
|
|
|
|
--UNION ALL
|
|
|
|
--SELECT [Head] = 'OFAC Pay'
|
|
-- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranOfacList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
|
|
--FROM tranPayOfac rto WITH (NOLOCK)
|
|
--LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rto.pBranch = am.agentId
|
|
--WHERE rto.approvedDate IS NULL
|
|
|
|
--UNION ALL
|
|
|
|
--SELECT [Head] = 'Compliance Pay'
|
|
-- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranComplianceList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
|
|
--FROM tranPayCompliance rtc WITH (NOLOCK)
|
|
--LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rtc.pBranch = am.agentId
|
|
--WHERE rtc.approvedDate IS NULL
|
|
)x order by x.Head ASC
|
|
DECLARE @totalmobileCustomer INT;
|
|
DECLARE @todayMobileRegistration INT;
|
|
DECLARE @todayMobileActivation INT;
|
|
|
|
SELECT @totalmobileCustomer = COUNT(cm.CUSTOMERID)
|
|
,@todayMobileRegistration = SUM(CASE
|
|
WHEN (
|
|
CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
|
|
AND ISNULL(cm.customerStatus, '') <> 'OTC'
|
|
)
|
|
THEN 1
|
|
ELSE 0
|
|
END)
|
|
FROM CUSTOMERMASTER cm
|
|
INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
|
|
AND cm.customerId = mu.customerId
|
|
WHERE cm.mobileApprovedDate IS NOT NULL --and CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
|
|
|
|
SELECT @todayMobileActivation = COUNT(cm.customerId)
|
|
FROM CUSTOMERMASTER cm
|
|
INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
|
|
AND cm.customerId = mu.customerId
|
|
WHERE ISNULL(cm.customerStatus, '') = 'OTC'
|
|
AND CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
|
|
AND cm.serviceusedfor = 'CM'
|
|
|
|
SELECT TotalCustomers = COUNT('X')
|
|
,MobileCustomers = @totalmobileCustomer
|
|
,TodaysMobileRegistration = @todayMobileRegistration
|
|
,TodayMobileActivation = ISNULL(@todayMobileActivation, 0)
|
|
,TodaysRegistration = SUM(CASE
|
|
WHEN CAST(approvedDate AS DATE) = CAST(GETDATE() AS DATE)
|
|
THEN 1
|
|
ELSE 0
|
|
END)
|
|
FROM customerMaster(NOLOCK)
|
|
WHERE approveddate IS NOT NULL
|
|
|
|
|
|
|
|
|
|
--Lawson summary
|
|
DROP TABLE
|
|
|
|
IF EXISTS #TEMP_SUMMARY
|
|
CREATE TABLE #TEMP_SUMMARY (
|
|
SN INT
|
|
,lDescription VARCHAR(100)
|
|
,lCount INT
|
|
)
|
|
|
|
DROP TABLE
|
|
|
|
IF EXISTS #TEMP_PIN
|
|
SELECT DISTINCT PIN_NUMBER
|
|
INTO #TEMP_PIN
|
|
FROM TBL_UNTRANSACTED_TXN(NOLOCK)
|
|
WHERE RECORD_TYPE = 'LC'
|
|
|
|
INSERT INTO #TEMP_SUMMARY (
|
|
SN
|
|
,lDescription
|
|
,lCount
|
|
)
|
|
SELECT 1
|
|
,'Laswon Cards Issued Today'
|
|
,COUNT(cardNumber)
|
|
FROM LawsonCard(NOLOCK) l
|
|
INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
|
|
WHERE isUsed = 'Y'
|
|
AND CONVERT(VARCHAR, assignedDate, 23) = CONVERT(VARCHAR, GETDATE(), 23)
|
|
|
|
INSERT INTO #TEMP_SUMMARY (
|
|
SN
|
|
,lDescription
|
|
,lCount
|
|
)
|
|
SELECT 2
|
|
,'Total Lawson Cards Issued'
|
|
,COUNT(cardNumber)
|
|
FROM LawsonCard(NOLOCK) L
|
|
INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
|
|
WHERE isUsed = 'Y'
|
|
|
|
--and CONVERT(VARCHAR, assignedDate, 23) BETWEEN @fromDate AND @toDate
|
|
INSERT INTO #TEMP_SUMMARY (
|
|
SN
|
|
,lDescription
|
|
,lCount
|
|
)
|
|
SELECT 3
|
|
,'Total Cards with at least 1 Deposit'
|
|
,COUNT(x.particulars)
|
|
FROM (
|
|
SELECT particulars
|
|
,COUNT(particulars) AS depositCount
|
|
FROM LAWSON_DEPOSIT_LOGS(NOLOCK) DL
|
|
INNER JOIN LawsonCard(NOLOCK) l ON l.cardNumber = DL.particulars
|
|
--AND CONVERT(VARCHAR, DL.tranDate, 23) BETWEEN @fromDate AND @toDate
|
|
WHERE L.isUsed = 'Y'
|
|
GROUP BY particulars
|
|
HAVING COUNT(particulars) > 1
|
|
) x
|
|
|
|
INSERT INTO #TEMP_SUMMARY (
|
|
SN
|
|
,lDescription
|
|
,lCount
|
|
)
|
|
SELECT 4
|
|
,'Total Cards with more than 3 transactions'
|
|
,count(totalCount)
|
|
FROM (
|
|
SELECT DISTINCT CUSTOMER
|
|
,COUNT(T.PIN_NUMBER) AS totalCount
|
|
FROM TBL_UNTRANSACTED U(NOLOCK)
|
|
INNER JOIN TBL_UNTRANSACTED_TXN UT(NOLOCK) ON UT.TRAN_ID = U.TRAN_ID
|
|
INNER JOIN #TEMP_PIN T ON T.PIN_NUMBER = UT.PIN_NUMBER
|
|
WHERE U.RECORD_TYPE = 'LC'
|
|
--AND ut.TXN_DATE BETWEEN @fromDate AND @toDate
|
|
GROUP BY U.CUSTOMER
|
|
HAVING COUNT(T.PIN_NUMBER) > 3
|
|
) y
|
|
|
|
SELECT *
|
|
FROM #TEMP_SUMMARY
|
|
|
|
SELECT *
|
|
FROM (
|
|
SELECT count(*) RegCount
|
|
,[Day] = CONVERT(VARCHAR(10), approveddate, 121)
|
|
,'C' CustomerType
|
|
FROM customerMaster(NOLOCK)
|
|
WHERE approveddate IS NOT NULL
|
|
AND ISNULL(approveddate, mobileApprovedDate) BETWEEN DATEADD(D, - 15, GETDATE())
|
|
AND GETDATE()
|
|
GROUP BY CONVERT(VARCHAR(10), approveddate, 121)
|
|
|
|
UNION ALL
|
|
|
|
SELECT count(*) RegCount
|
|
,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
|
|
,'M' CustomerType
|
|
FROM customerMaster cm
|
|
INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
|
|
AND cm.customerId = mu.customerId
|
|
WHERE mobileApprovedDate IS NOT NULL
|
|
AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
|
|
AND GETDATE()
|
|
AND ISNULL(cm.customerStatus, '') <> 'OTC'
|
|
GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
|
|
|
|
UNION ALL
|
|
|
|
SELECT count(*) RegCount
|
|
,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
|
|
,'A' CustomerType
|
|
FROM CUSTOMERMASTER cm
|
|
INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
|
|
AND cm.customerId = mu.customerId
|
|
WHERE ISNULL(cm.customerStatus, '') = 'OTC'
|
|
AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
|
|
AND GETDATE()
|
|
AND cm.serviceusedfor = 'CM'
|
|
GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
|
|
) x
|
|
|
|
SELECT *
|
|
FROM (
|
|
SELECT DATEPART(YEAR, RT.createdDate) YearId
|
|
,LEFT(DATENAME(MONTH, RT.createdDate), 3) month_name
|
|
,DATEPART(MONTH, RT.createdDate) MonthId
|
|
,count(*) [Month_count]
|
|
FROM #TXN_TABLE RT
|
|
GROUP BY DATEPART(YEAR, RT.createdDate)
|
|
,LEFT(DATENAME(MONTH, RT.createdDate), 3)
|
|
,DATEPART(MONTH, RT.createdDate)
|
|
) x
|
|
ORDER BY YearId
|
|
,MonthId ASC
|
|
|
|
SELECT ISNULL(A.sAgentName, B.sAgentName) sAgentName
|
|
,ISNULL(A.CurrentMonth, 0) CurrentMonth
|
|
,ISNULL(B.PreviousMonth, 0) PreviousMonth
|
|
FROM (
|
|
SELECT count(c.sAgent) CurrentMonth
|
|
,c.sAgentName
|
|
FROM #TXN_TABLE c
|
|
WHERE ISNULL(c.actAsBranch, '') = 'N'
|
|
AND c.tranStatus <> 'Cancel'
|
|
AND C.createdDate1 BETWEEN CONVERT(VARCHAR(10), DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), 121)
|
|
AND @toDate
|
|
GROUP BY sAgentName
|
|
) A
|
|
LEFT JOIN (
|
|
SELECT count(p.sAgent) PreviousMonth
|
|
,p.sAgentName
|
|
FROM #TXN_TABLE p
|
|
WHERE ISNULL(p.actAsBranch, '') = 'N'
|
|
AND p.tranStatus <> 'Cancel'
|
|
AND p.createdDate1 BETWEEN @StartDatePrevious
|
|
AND @EndDatePrevious
|
|
GROUP BY sAgentName
|
|
) B ON a.sAgentName = B.sAgentName
|
|
ORDER BY CurrentMonth DESC
|
|
|
|
--KYC status
|
|
DECLARE @kycNotCompleted INT;
|
|
DECLARE @kycProcessing INT;
|
|
DECLARE @kycCompleted INT;
|
|
|
|
SELECT @kycNotCompleted = COUNT('x')
|
|
FROM customerMaster cm WITH (NOLOCK)
|
|
WHERE
|
|
cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED'
|
|
GROUP BY
|
|
CASE
|
|
WHEN cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED' THEN 'NOT_COMPLETED'
|
|
ELSE cm.verificationCode
|
|
END
|
|
|
|
SELECT @kycProcessing = COUNT('x')
|
|
FROM customerMaster cm WITH (NOLOCK)
|
|
WHERE cm.verificationCode = 'PROCESSING'
|
|
GROUP BY verificationCode
|
|
|
|
SELECT @kycCompleted = COUNT('x')
|
|
FROM customerMaster cm WITH (NOLOCK)
|
|
WHERE cm.verificationCode = 'COMPLETED'
|
|
GROUP BY verificationCode
|
|
|
|
SELECT kycNotCompleted = ISNULL(@kycNotCompleted,0)
|
|
,kycProcessing = ISNULL(@kycProcessing,0)
|
|
,kycCompleted = ISNULL(@kycCompleted,0)
|
|
END
|
|
END
|