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.

392 lines
26 KiB

10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_GET_DASHBOARD_DATA_V2] Script Date: 11/17/2023 12:09:28 PM ******/
  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 [Head] = CASE
  83. WHEN TRANTYPE = 'I'
  84. THEN 'OFAC/Compliance/Cash Limit Hold : International'
  85. --ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Later)'
  86. ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile/Web Online'
  87. END
  88. ,[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
  89. FROM remitTranTemp b WITH (NOLOCK)
  90. LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
  91. LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
  92. WHERE --cm.LawsonCardNo = 'KYC_LATER'
  93. --AND
  94. B.tranStatus IN (
  95. 'Compliance Hold'
  96. ,'OFAC Hold'
  97. ,'OFAC/Compliance Hold'
  98. ,'Cash Limit Hold'
  99. ,'Cash Limit/OFAC/Compliance Hold'
  100. ,'Cash Limit/OFAC Hold'
  101. ,'Cash Limit/Compliance Hold'
  102. )
  103. GROUP BY TRANTYPE
  104. --,cm.LawsonCardNo
  105. UNION ALL
  106. --SELECT [Head] = CASE
  107. -- WHEN TRANTYPE = 'I'
  108. -- THEN 'OFAC/Compliance/Cash Limit Hold : International'
  109. -- ELSE 'OFAC/Compliance/Cash Limit Hold : Mobile (KYC Now)'
  110. -- END
  111. -- ,[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
  112. --FROM remitTranTemp b WITH (NOLOCK)
  113. --LEFT JOIN transenderstemp tst(NOLOCK) ON b.id = tst.tranId
  114. --LEFT JOIN customerMaster cm(NOLOCK) ON tst.customerId = cm.customerId
  115. --WHERE cm.LawsonCardNo = 'KYC_NOW'
  116. -- AND B.tranStatus IN (
  117. -- 'Compliance Hold'
  118. -- ,'OFAC Hold'
  119. -- ,'OFAC/Compliance Hold'
  120. -- ,'Cash Limit Hold'
  121. -- ,'Cash Limit/OFAC/Compliance Hold'
  122. -- ,'Cash Limit/OFAC Hold'
  123. -- ,'Cash Limit/Compliance Hold'
  124. -- )
  125. --GROUP BY TRANTYPE
  126. -- ,cm.LawsonCardNo
  127. --UNION ALL
  128. SELECT [Head] = 'OFAC Pay'
  129. ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranOfacList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
  130. FROM tranPayOfac rto WITH (NOLOCK)
  131. LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rto.pBranch = am.agentId
  132. WHERE rto.approvedDate IS NULL
  133. UNION ALL
  134. SELECT [Head] = 'Compliance Pay'
  135. ,[Count] = COUNT('x') --CASE WHEN COUNT('x') > 0 THEN '<a href="PayTranComplianceList.aspx">'+CAST(COUNT('x') AS VARCHAR) +'</a>' ELSE '-' END
  136. FROM tranPayCompliance rtc WITH (NOLOCK)
  137. LEFT JOIN dbo.agentMaster am WITH (NOLOCK) ON rtc.pBranch = am.agentId
  138. WHERE rtc.approvedDate IS NULL
  139. DECLARE @totalmobileCustomer INT;
  140. DECLARE @todayMobileRegistration INT;
  141. DECLARE @todayMobileActivation INT;
  142. SELECT @totalmobileCustomer = COUNT(cm.CUSTOMERID)
  143. ,@todayMobileRegistration = SUM(CASE
  144. WHEN (
  145. CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  146. AND ISNULL(cm.customerStatus, '') <> 'OTC'
  147. )
  148. THEN 1
  149. ELSE 0
  150. END)
  151. FROM CUSTOMERMASTER cm
  152. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  153. AND cm.customerId = mu.customerId
  154. WHERE cm.mobileApprovedDate IS NOT NULL --and CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  155. SELECT @todayMobileActivation = COUNT(cm.customerId)
  156. FROM CUSTOMERMASTER cm
  157. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  158. AND cm.customerId = mu.customerId
  159. WHERE ISNULL(cm.customerStatus, '') = 'OTC'
  160. AND CAST(mobileApprovedDate AS DATE) = CAST(GETDATE() AS DATE)
  161. AND cm.serviceusedfor = 'CM'
  162. SELECT TotalCustomers = COUNT('X')
  163. ,MobileCustomers = @totalmobileCustomer
  164. ,TodaysMobileRegistration = @todayMobileRegistration
  165. ,TodayMobileActivation = ISNULL(@todayMobileActivation, 0)
  166. ,TodaysRegistration = SUM(CASE
  167. WHEN CAST(approvedDate AS DATE) = CAST(GETDATE() AS DATE)
  168. THEN 1
  169. ELSE 0
  170. END)
  171. FROM customerMaster(NOLOCK)
  172. WHERE approveddate IS NOT NULL
  173. --Lawson summary
  174. DROP TABLE
  175. IF EXISTS #TEMP_SUMMARY
  176. CREATE TABLE #TEMP_SUMMARY (
  177. SN INT
  178. ,lDescription VARCHAR(100)
  179. ,lCount INT
  180. )
  181. DROP TABLE
  182. IF EXISTS #TEMP_PIN
  183. SELECT DISTINCT PIN_NUMBER
  184. INTO #TEMP_PIN
  185. FROM TBL_UNTRANSACTED_TXN(NOLOCK)
  186. WHERE RECORD_TYPE = 'LC'
  187. INSERT INTO #TEMP_SUMMARY (
  188. SN
  189. ,lDescription
  190. ,lCount
  191. )
  192. SELECT 1
  193. ,'Laswon Cards Issued Today'
  194. ,COUNT(cardNumber)
  195. FROM LawsonCard(NOLOCK) l
  196. INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
  197. WHERE isUsed = 'Y'
  198. AND CONVERT(VARCHAR, assignedDate, 23) = CONVERT(VARCHAR, GETDATE(), 23)
  199. INSERT INTO #TEMP_SUMMARY (
  200. SN
  201. ,lDescription
  202. ,lCount
  203. )
  204. SELECT 2
  205. ,'Total Lawson Cards Issued'
  206. ,COUNT(cardNumber)
  207. FROM LawsonCard(NOLOCK) L
  208. INNER JOIN customerMaster(NOLOCK) CM ON CM.LawsonCardNo = L.cardNumber
  209. WHERE isUsed = 'Y'
  210. --and CONVERT(VARCHAR, assignedDate, 23) BETWEEN @fromDate AND @toDate
  211. INSERT INTO #TEMP_SUMMARY (
  212. SN
  213. ,lDescription
  214. ,lCount
  215. )
  216. SELECT 3
  217. ,'Total Cards with at least 1 Deposit'
  218. ,COUNT(x.particulars)
  219. FROM (
  220. SELECT particulars
  221. ,COUNT(particulars) AS depositCount
  222. FROM LAWSON_DEPOSIT_LOGS(NOLOCK) DL
  223. INNER JOIN LawsonCard(NOLOCK) l ON l.cardNumber = DL.particulars
  224. --AND CONVERT(VARCHAR, DL.tranDate, 23) BETWEEN @fromDate AND @toDate
  225. WHERE L.isUsed = 'Y'
  226. GROUP BY particulars
  227. HAVING COUNT(particulars) > 1
  228. ) x
  229. INSERT INTO #TEMP_SUMMARY (
  230. SN
  231. ,lDescription
  232. ,lCount
  233. )
  234. SELECT 4
  235. ,'Total Cards with more than 3 transactions'
  236. ,count(totalCount)
  237. FROM (
  238. SELECT DISTINCT CUSTOMER
  239. ,COUNT(T.PIN_NUMBER) AS totalCount
  240. FROM TBL_UNTRANSACTED U(NOLOCK)
  241. INNER JOIN TBL_UNTRANSACTED_TXN UT(NOLOCK) ON UT.TRAN_ID = U.TRAN_ID
  242. INNER JOIN #TEMP_PIN T ON T.PIN_NUMBER = UT.PIN_NUMBER
  243. WHERE U.RECORD_TYPE = 'LC'
  244. --AND ut.TXN_DATE BETWEEN @fromDate AND @toDate
  245. GROUP BY U.CUSTOMER
  246. HAVING COUNT(T.PIN_NUMBER) > 3
  247. ) y
  248. SELECT *
  249. FROM #TEMP_SUMMARY
  250. SELECT *
  251. FROM (
  252. SELECT count(*) RegCount
  253. ,[Day] = CONVERT(VARCHAR(10), approveddate, 121)
  254. ,'C' CustomerType
  255. FROM customerMaster(NOLOCK)
  256. WHERE approveddate IS NOT NULL
  257. AND ISNULL(approveddate, mobileApprovedDate) BETWEEN DATEADD(D, - 15, GETDATE())
  258. AND GETDATE()
  259. GROUP BY CONVERT(VARCHAR(10), approveddate, 121)
  260. UNION ALL
  261. SELECT count(*) RegCount
  262. ,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  263. ,'M' CustomerType
  264. FROM customerMaster cm
  265. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  266. AND cm.customerId = mu.customerId
  267. WHERE mobileApprovedDate IS NOT NULL
  268. AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
  269. AND GETDATE()
  270. AND ISNULL(cm.customerStatus, '') <> 'OTC'
  271. GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  272. UNION ALL
  273. SELECT count(*) RegCount
  274. ,[Day] = CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  275. ,'A' CustomerType
  276. FROM CUSTOMERMASTER cm
  277. INNER JOIN mobile_userRegistration mu(NOLOCK) ON mu.username = cm.email
  278. AND cm.customerId = mu.customerId
  279. WHERE ISNULL(cm.customerStatus, '') = 'OTC'
  280. AND mobileApprovedDate BETWEEN DATEADD(D, - 15, GETDATE())
  281. AND GETDATE()
  282. AND cm.serviceusedfor = 'CM'
  283. GROUP BY CONVERT(VARCHAR(10), mobileApprovedDate, 121)
  284. ) x
  285. SELECT *
  286. FROM (
  287. SELECT DATEPART(YEAR, RT.createdDate) YearId
  288. ,LEFT(DATENAME(MONTH, RT.createdDate), 3) month_name
  289. ,DATEPART(MONTH, RT.createdDate) MonthId
  290. ,count(*) [Month_count]
  291. FROM #TXN_TABLE RT
  292. GROUP BY DATEPART(YEAR, RT.createdDate)
  293. ,LEFT(DATENAME(MONTH, RT.createdDate), 3)
  294. ,DATEPART(MONTH, RT.createdDate)
  295. ) x
  296. ORDER BY YearId
  297. ,MonthId ASC
  298. SELECT ISNULL(A.sAgentName, B.sAgentName) sAgentName
  299. ,ISNULL(A.CurrentMonth, 0) CurrentMonth
  300. ,ISNULL(B.PreviousMonth, 0) PreviousMonth
  301. FROM (
  302. SELECT count(c.sAgent) CurrentMonth
  303. ,c.sAgentName
  304. FROM #TXN_TABLE c
  305. WHERE ISNULL(c.actAsBranch, '') = 'N'
  306. AND c.tranStatus <> 'Cancel'
  307. AND C.createdDate1 BETWEEN CONVERT(VARCHAR(10), DATEADD(m, DATEDIFF(m, 0, GETDATE()), 0), 121)
  308. AND @toDate
  309. GROUP BY sAgentName
  310. ) A
  311. LEFT JOIN (
  312. SELECT count(p.sAgent) PreviousMonth
  313. ,p.sAgentName
  314. FROM #TXN_TABLE p
  315. WHERE ISNULL(p.actAsBranch, '') = 'N'
  316. AND p.tranStatus <> 'Cancel'
  317. AND p.createdDate1 BETWEEN @StartDatePrevious
  318. AND @EndDatePrevious
  319. GROUP BY sAgentName
  320. ) B ON a.sAgentName = B.sAgentName
  321. ORDER BY CurrentMonth DESC
  322. --KYC status
  323. SELECT [Head] = CASE
  324. WHEN cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED' THEN 'NOT_COMPLETED'
  325. ELSE cm.verificationCode
  326. END
  327. ,[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
  328. FROM customerMaster cm WITH (NOLOCK)
  329. WHERE cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED' --AND DATEDIFF(DAY, cm.createdDate, GETDATE()) <= 7
  330. GROUP BY
  331. CASE
  332. WHEN cm.verificationCode IS NULL OR cm.verificationCode = 'NOT_COMPLETED' THEN 'NOT_COMPLETED'
  333. ELSE cm.verificationCode
  334. END
  335. UNION ALL
  336. SELECT [Head] = verificationCode
  337. ,[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
  338. FROM customerMaster cm WITH (NOLOCK)
  339. WHERE cm.verificationCode = 'PROCESSING' --AND DATEDIFF(DAY, cm.createdDate, GETDATE()) <= 7
  340. GROUP BY verificationCode
  341. UNION ALL
  342. SELECT [Head] = verificationCode
  343. ,[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
  344. FROM customerMaster cm WITH (NOLOCK)
  345. WHERE cm.verificationCode = 'COMPLETED' --AND DATEDIFF(DAY, cm.createdDate, GETDATE()) <= 7
  346. GROUP BY verificationCode
  347. END
  348. END