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

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_GET_DASHBOARD_DATA_V2] Script Date: 12/5/2023 10:21:17 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --EXEC PROC_GET_DASHBOARD_DATA_V2 @Flag = 'Dashboard'
  9. ALTER PROC [dbo].[PROC_GET_DASHBOARD_DATA_V2] (
  10. @Flag VARCHAR(20)
  11. ,@User VARCHAR(80) = NULL
  12. ,@fromDate VARCHAR(20) = NULL
  13. ,@toDate VARCHAR(20) = NULL
  14. )
  15. AS
  16. -- #9697 - Registered Customer Count Tally
  17. -- #13162 - Tran Count Tally
  18. -- #18970 - changes to show compliance txn on dashboard on the basis of kyc status
  19. -- selected kyc details to show on dashboard
  20. ;
  21. SET NOCOUNT ON;
  22. SET XACT_ABORT ON;
  23. BEGIN
  24. --SET @fromDate= CONVERT(varchar(10),DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0),121);
  25. SET @fromDate = CONVERT(VARCHAR(10), DATEADD(M, - 6, GETDATE()), 121);
  26. SET @toDate = CONVERT(VARCHAR(10), GETDATE(), 121) + ' 23:59:59';
  27. --set @fromDate = convert(varchar(10) , @fromDate , 121)
  28. --set @toDate = convert(varchar(10) , @toDate , 121)
  29. DECLARE @StartDatePrevious DATETIME
  30. ,@EndDatePrevious DATETIME
  31. SET @StartDatePrevious = dateadd(mm, - 1, getdate())
  32. SET @StartDatePrevious = dateadd(dd, datepart(dd, getdate()) * - 1, @StartDatePrevious)
  33. SET @EndDatePrevious = dateadd(mm, 1, @StartDatePrevious)
  34. IF @Flag = 'Dashboard'
  35. BEGIN
  36. SELECT TOP 50000 CONVERT(VARCHAR(30), RT.approvedDate, 110) createdDate
  37. ,RT.approvedDate AS createdDate1
  38. ,sAgent
  39. ,sAgentName = AM.agentName
  40. ,pCountry
  41. ,tranType
  42. ,tranStatus
  43. ,payStatus
  44. ,CONVERT(VARCHAR(30), paidDate, 110) paidDate
  45. ,CONVERT(VARCHAR(30), cancelApprovedDate, 110) cancelApprovedDate
  46. ,LEFT(DATENAME(MONTH, RT.approvedDate), 3) monthNameTxn
  47. ,DATEPART(MONTH, RT.approvedDate) MonthId
  48. ,id
  49. ,ISNULL(AM.actAsBranch, 'N') actAsBranch
  50. ,ISNULL(RT.createdBy, 'N/A') createdBy
  51. INTO #TXN_TABLE
  52. FROM remitTran RT(NOLOCK)
  53. INNER JOIN agentMaster AM(NOLOCK) ON AM.agentId = RT.sAgent
  54. WHERE RT.approvedDate BETWEEN @fromDate
  55. AND @toDate
  56. AND RT.tranStatus <> 'cancel'
  57. ORDER BY RT.id DESC
  58. SELECT *
  59. FROM #TXN_TABLE RT
  60. WHERE createdDate1 BETWEEN CONVERT(VARCHAR(10), DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), 121)
  61. AND @toDate
  62. ORDER BY MonthId ASC
  63. --OFAC and Compliance Data
  64. --SELECT [Head] = CASE
  65. -- WHEN TRANTYPE = 'I'
  66. -- THEN 'OFAC/Compliance/Cash Limit Hold : International'
  67. -- ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile'
  68. -- END
  69. -- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="List.aspx?tranType='+TRANTYPE+'">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
  70. --FROM remitTranTemp b WITH (NOLOCK)
  71. --WHERE B.tranStatus IN (
  72. -- 'Compliance Hold'
  73. -- ,'OFAC Hold'
  74. -- ,'OFAC/Compliance Hold'
  75. -- ,'Cash Limit Hold'
  76. -- ,'Cash Limit/OFAC/Compliance Hold'
  77. -- ,'Cash Limit/OFAC Hold'
  78. -- ,'Cash Limit/Compliance Hold'
  79. -- )
  80. --GROUP BY TRANTYPE
  81. --UNION ALL
  82. SELECT * FROM(
  83. SELECT [Head] = CASE
  84. WHEN TRANTYPE = 'I'
  85. THEN 'OFAC/Compliance/Cash Limit Hold : International'
  86. --ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Later)'
  87. ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile/Web Online'
  88. END
  89. ,[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
  90. FROM remitTranTemp b WITH (NOLOCK)
  91. LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
  92. LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
  93. WHERE --cm.LawsonCardNo = 'KYC_LATER'
  94. --AND
  95. B.tranStatus IN (
  96. 'Compliance Hold'
  97. ,'OFAC Hold'
  98. ,'OFAC/Compliance Hold'
  99. ,'Cash Limit Hold'
  100. ,'Cash Limit/OFAC/Compliance Hold'
  101. ,'Cash Limit/OFAC Hold'
  102. ,'Cash Limit/Compliance Hold'
  103. )
  104. GROUP BY TRANTYPE
  105. --,cm.LawsonCardNo
  106. --UNION ALL
  107. --SELECT [Head] = CASE
  108. -- WHEN TRANTYPE = 'I'
  109. -- THEN 'OFAC/Compliance/Cash Limit Hold : International'
  110. -- ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Now)'
  111. -- END
  112. -- ,[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
  113. --FROM remitTranTemp b WITH (NOLOCK)
  114. --LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
  115. --LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
  116. --WHERE cm.LawsonCardNo = 'KYC_NOW'
  117. -- AND B.tranStatus IN (
  118. -- 'Compliance Hold'
  119. -- ,'OFAC Hold'
  120. -- ,'OFAC/Compliance Hold'
  121. -- ,'Cash Limit Hold'
  122. -- ,'Cash Limit/OFAC/Compliance Hold'
  123. -- ,'Cash Limit/OFAC Hold'
  124. -- ,'Cash Limit/Compliance Hold'
  125. -- )
  126. --GROUP BY TRANTYPE
  127. -- ,cm.LawsonCardNo
  128. --UNION ALL
  129. --SELECT [Head] = 'OFAC Pay'
  130. -- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranOfacList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
  131. --FROM tranPayOfac rto WITH (NOLOCK)
  132. --LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rto.pBranch = am.agentId
  133. --WHERE rto.approvedDate IS NULL
  134. --UNION ALL
  135. --SELECT [Head] = 'Compliance Pay'
  136. -- ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranComplianceList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
  137. --FROM tranPayCompliance rtc WITH (NOLOCK)
  138. --LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rtc.pBranch = am.agentId
  139. --WHERE rtc.approvedDate IS NULL
  140. )x order by x.Head ASC
  141. DECLARE @totalmobileCustomer INT;
  142. DECLARE @todayMobileRegistration INT;
  143. DECLARE @todayMobileActivation INT;
  144. SELECT @totalmobileCustomer = COUNT(cm.CUSTOMERID)
  145. ,@todayMobileRegistration = SUM(CASE
  146. WHEN (
  147. CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  148. AND ISNULL(cm.customerStatus, '') <> 'OTC'
  149. )
  150. THEN 1
  151. ELSE 0
  152. END)
  153. FROM CUSTOMERMASTER cm
  154. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  155. AND cm.customerId = mu.customerId
  156. WHERE cm.mobileApprovedDate IS NOT NULL --and CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  157. SELECT @todayMobileActivation = COUNT(cm.customerId)
  158. FROM CUSTOMERMASTER cm
  159. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  160. AND cm.customerId = mu.customerId
  161. WHERE ISNULL(cm.customerStatus, '') = 'OTC'
  162. AND CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  163. AND cm.serviceusedfor = 'CM'
  164. SELECT TotalCustomers = COUNT('X')
  165. ,MobileCustomers = @totalmobileCustomer
  166. ,TodaysMobileRegistration = @todayMobileRegistration
  167. ,TodayMobileActivation = ISNULL(@todayMobileActivation, 0)
  168. ,TodaysRegistration = SUM(CASE
  169. WHEN CAST(approvedDate AS DATE) = CAST(GETDATE() AS DATE)
  170. THEN 1
  171. ELSE 0
  172. END)
  173. FROM customerMaster(NOLOCK)
  174. WHERE approveddate IS NOT NULL
  175. --Lawson summary
  176. DROP TABLE
  177. IF EXISTS #TEMP_SUMMARY
  178. CREATE TABLE #TEMP_SUMMARY (
  179. SN INT
  180. ,lDescription VARCHAR(100)
  181. ,lCount INT
  182. )
  183. DROP TABLE
  184. IF EXISTS #TEMP_PIN
  185. SELECT DISTINCT PIN_NUMBER
  186. INTO #TEMP_PIN
  187. FROM TBL_UNTRANSACTED_TXN(NOLOCK)
  188. WHERE RECORD_TYPE = 'LC'
  189. INSERT INTO #TEMP_SUMMARY (
  190. SN
  191. ,lDescription
  192. ,lCount
  193. )
  194. SELECT 1
  195. ,'Laswon Cards Issued Today'
  196. ,COUNT(cardNumber)
  197. FROM LawsonCard(NOLOCK) l
  198. INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
  199. WHERE isUsed = 'Y'
  200. AND CONVERT(VARCHAR, assignedDate, 23) = CONVERT(VARCHAR, GETDATE(), 23)
  201. INSERT INTO #TEMP_SUMMARY (
  202. SN
  203. ,lDescription
  204. ,lCount
  205. )
  206. SELECT 2
  207. ,'Total Lawson Cards Issued'
  208. ,COUNT(cardNumber)
  209. FROM LawsonCard(NOLOCK) L
  210. INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
  211. WHERE isUsed = 'Y'
  212. --and CONVERT(VARCHAR, assignedDate, 23) BETWEEN @fromDate AND @toDate
  213. INSERT INTO #TEMP_SUMMARY (
  214. SN
  215. ,lDescription
  216. ,lCount
  217. )
  218. SELECT 3
  219. ,'Total Cards with at least 1 Deposit'
  220. ,COUNT(x.particulars)
  221. FROM (
  222. SELECT particulars
  223. ,COUNT(particulars) AS depositCount
  224. FROM LAWSON_DEPOSIT_LOGS(NOLOCK) DL
  225. INNER JOIN LawsonCard(NOLOCK) l ON l.cardNumber = DL.particulars
  226. --AND CONVERT(VARCHAR, DL.tranDate, 23) BETWEEN @fromDate AND @toDate
  227. WHERE L.isUsed = 'Y'
  228. GROUP BY particulars
  229. HAVING COUNT(particulars) > 1
  230. ) x
  231. INSERT INTO #TEMP_SUMMARY (
  232. SN
  233. ,lDescription
  234. ,lCount
  235. )
  236. SELECT 4
  237. ,'Total Cards with more than 3 transactions'
  238. ,count(totalCount)
  239. FROM (
  240. SELECT DISTINCT CUSTOMER
  241. ,COUNT(T.PIN_NUMBER) AS totalCount
  242. FROM TBL_UNTRANSACTED U(NOLOCK)
  243. INNER JOIN TBL_UNTRANSACTED_TXN UT(NOLOCK) ON UT.TRAN_ID = U.TRAN_ID
  244. INNER JOIN #TEMP_PIN T ON T.PIN_NUMBER = UT.PIN_NUMBER
  245. WHERE U.RECORD_TYPE = 'LC'
  246. --AND ut.TXN_DATE BETWEEN @fromDate AND @toDate
  247. GROUP BY U.CUSTOMER
  248. HAVING COUNT(T.PIN_NUMBER) > 3
  249. ) y
  250. SELECT *
  251. FROM #TEMP_SUMMARY
  252. SELECT *
  253. FROM (
  254. SELECT count(*) RegCount
  255. ,[Day] = CONVERT(VARCHAR(10), approveddate, 121)
  256. ,'C' CustomerType
  257. FROM customerMaster(NOLOCK)
  258. WHERE approveddate IS NOT NULL
  259. AND ISNULL(approveddate, mobileApprovedDate) BETWEEN DATEADD(D, - 15, GETDATE())
  260. AND GETDATE()
  261. GROUP BY CONVERT(VARCHAR(10), approveddate, 121)
  262. UNION ALL
  263. SELECT count(*) RegCount
  264. ,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  265. ,'M' CustomerType
  266. FROM customerMaster cm
  267. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  268. AND cm.customerId = mu.customerId
  269. WHERE mobileApprovedDate IS NOT NULL
  270. AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
  271. AND GETDATE()
  272. AND ISNULL(cm.customerStatus, '') <> 'OTC'
  273. GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  274. UNION ALL
  275. SELECT count(*) RegCount
  276. ,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  277. ,'A' CustomerType
  278. FROM CUSTOMERMASTER cm
  279. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  280. AND cm.customerId = mu.customerId
  281. WHERE ISNULL(cm.customerStatus, '') = 'OTC'
  282. AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
  283. AND GETDATE()
  284. AND cm.serviceusedfor = 'CM'
  285. GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  286. ) x
  287. SELECT *
  288. FROM (
  289. SELECT DATEPART(YEAR, RT.createdDate) YearId
  290. ,LEFT(DATENAME(MONTH, RT.createdDate), 3) month_name
  291. ,DATEPART(MONTH, RT.createdDate) MonthId
  292. ,count(*) [Month_count]
  293. FROM #TXN_TABLE RT
  294. GROUP BY DATEPART(YEAR, RT.createdDate)
  295. ,LEFT(DATENAME(MONTH, RT.createdDate), 3)
  296. ,DATEPART(MONTH, RT.createdDate)
  297. ) x
  298. ORDER BY YearId
  299. ,MonthId ASC
  300. SELECT ISNULL(A.sAgentName, B.sAgentName) sAgentName
  301. ,ISNULL(A.CurrentMonth, 0) CurrentMonth
  302. ,ISNULL(B.PreviousMonth, 0) PreviousMonth
  303. FROM (
  304. SELECT count(c.sAgent) CurrentMonth
  305. ,c.sAgentName
  306. FROM #TXN_TABLE c
  307. WHERE ISNULL(c.actAsBranch, '') = 'N'
  308. AND c.tranStatus <> 'Cancel'
  309. AND C.createdDate1 BETWEEN CONVERT(VARCHAR(10), DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), 121)
  310. AND @toDate
  311. GROUP BY sAgentName
  312. ) A
  313. LEFT JOIN (
  314. SELECT count(p.sAgent) PreviousMonth
  315. ,p.sAgentName
  316. FROM #TXN_TABLE p
  317. WHERE ISNULL(p.actAsBranch, '') = 'N'
  318. AND p.tranStatus <> 'Cancel'
  319. AND p.createdDate1 BETWEEN @StartDatePrevious
  320. AND @EndDatePrevious
  321. GROUP BY sAgentName
  322. ) B ON a.sAgentName = B.sAgentName
  323. ORDER BY CurrentMonth DESC
  324. --KYC status
  325. DECLARE @kycNotCompleted INT;
  326. DECLARE @kycProcessing INT;
  327. DECLARE @kycCompleted INT;
  328. SELECT @kycNotCompleted = COUNT('x')
  329. FROM customerMaster cm WITH (NOLOCK)
  330. WHERE
  331. cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED'
  332. GROUP BY
  333. CASE
  334. WHEN cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED' THEN 'NOT_COMPLETED'
  335. ELSE cm.verificationCode
  336. END
  337. SELECT @kycProcessing = COUNT('x')
  338. FROM customerMaster cm WITH (NOLOCK)
  339. WHERE cm.verificationCode = 'PROCESSING'
  340. GROUP BY verificationCode
  341. SELECT @kycCompleted = COUNT('x')
  342. FROM customerMaster cm WITH (NOLOCK)
  343. WHERE cm.verificationCode = 'COMPLETED'
  344. GROUP BY verificationCode
  345. SELECT kycNotCompleted = ISNULL(@kycNotCompleted,0)
  346. ,kycProcessing = ISNULL(@kycProcessing,0)
  347. ,kycCompleted = ISNULL(@kycCompleted,0)
  348. END
  349. END