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.

304 lines
19 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_fraudAnalysisTxn] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE procEDURE [dbo].[proc_fraudAnalysisTxn](
  9. @flag VARCHAR(100)
  10. ,@fromDate VARCHAR(30)=NULL
  11. ,@toDate VARCHAR(30)=NULL
  12. ,@count VARCHAR(30)=NULL
  13. ,@sCountry VARCHAR(30)=NULL
  14. ,@rCountry VARCHAR(30)=NULL
  15. ,@reportBy VARCHAR(30)=NULL
  16. ,@operator VARCHAR(30)=NULL
  17. ,@User varchar(50)=NULL
  18. ,@userName varchar(50) = null
  19. ,@agent VARCHAR(30)=NULL
  20. ,@agentUser VARCHAR(50)=NULL
  21. )AS
  22. SET NOCOUNT ON
  23. ------------------- START ######## SAME USER DIFF IP SUMMARY
  24. --DECLARE @fromDate varchar(20)= '2014-2-22', @toDate varchar(20)='2014-2-22 23:59', @User varchar(50)
  25. DECLARE @sql VARCHAR(MAX)
  26. if @flag ='Same User Vs Multiple IP'
  27. BEGIN
  28. -- ############## SAME USER DIFF IP
  29. SET @sql='SELECT sAgentName, createdBy
  30. ,IpUsed = ''<a href="reports.aspx?reportName=10122200_txn&reportByTxn=detail&rCountry='+ISNULL(@rCountry,'')+'&sCountry='+ISNULL(@sCountry,'')+'&fromTxnDate='+@fromDate+'&toTxnDate='+@toDate+'&UserName=''+CreatedBy+''">''+CAST(count(*) AS VARCHAR)+''</a>''
  31. FROM
  32. (
  33. SELECT
  34. distinct sAgentName, createdBy, LEFT(ipAddress,6) ipAddress,sCountry
  35. from remitTran T WITH (NOLOCK), tranSenders S WITH (NOLOCK)
  36. where T.id = S.tranId
  37. AND createdDate between '''+ @fromDate +''' AND '''+ @toDate + ' 23:59:59''
  38. AND S.ipAddress is not null
  39. )A WHERE 1=1 '
  40. IF @sCountry IS NOT NULL
  41. SET @sql = @sql +' AND sCountry=''' + @sCountry + ''''
  42. --IF @rCountry IS NOT NULL
  43. -- SET @sql = @sql +' AND pCountry=''' + @rCountry + ''''
  44. SET @sql = @sql +
  45. 'GROUP BY createdBy,sAgentName
  46. HAVING COUNT(*) '+@operator +@count
  47. -- AND sCountry=''' + @sCountry + '''' +
  48. --' AND pCountry=''' + @rCountry + '''' +
  49. print @sql
  50. EXEC(@sql)
  51. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  52. SELECT 'rCountry' head,@rCountry VALUE
  53. UNION ALL
  54. SELECT 'From Date' head,@fromDate VALUE
  55. UNION ALL
  56. SELECT 'TO Date' head,@toDate VALUE
  57. SELECT 'Fraud Transaction Reporting - Summary'+(@flag) title
  58. END
  59. if @flag ='Same User Vs Multiple Certificate'
  60. BEGIN
  61. -- ############## SAME USER DIFF Certificate
  62. SET @sql='
  63. SELECT sAgentName, createdBy
  64. ,DcUsed = ''<a href="reports.aspx?reportName=10122200_txn&reportByTxn=detail&rCountry='+ISNULL(@rCountry,'')+'&sCountry='+ISNULL(@sCountry,'')+'&fromTxnDate='+@fromDate+'&toTxnDate='+@toDate+'&UserName=''+CreatedBy+''">''+CAST(count(*) AS VARCHAR)+''</a>''
  65. FROM
  66. (
  67. SELECT
  68. distinct sAgentName, createdBy, S.dcInfo,sCountry
  69. from remitTran T WITH (NOLOCK), tranSenders S WITH (NOLOCK)
  70. where T.id = S.tranId
  71. AND createdDate between '''+ @fromDate +''' AND '''+ @toDate + ' 23:59:59''
  72. AND S.ipAddress is not null
  73. )A where 1=1 '
  74. IF @sCountry IS NOT NULL
  75. SET @sql = @sql +' AND sCountry=''' + @sCountry + ''''
  76. --IF @rCountry IS NOT NULL
  77. -- SET @sql = @sql +' AND pCountry=''' + @rCountry + ''''
  78. SET @sql = @sql +
  79. 'GROUP BY createdBy,sAgentName
  80. HAVING COUNT(*) '+@operator +@count
  81. --print @sql
  82. EXEC(@sql)
  83. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  84. SELECT 'rCountry' head,@rCountry VALUE
  85. UNION ALL
  86. SELECT 'From Date' head,@fromDate VALUE
  87. UNION ALL
  88. SELECT 'TO Date' head,@toDate VALUE
  89. SELECT 'Fraud Transaction Reporting - Summary'+(@flag) title
  90. END
  91. if @flag ='OffHour'
  92. BEGIN
  93. -- ############## Off Hour Txn Report
  94. SET @sql='
  95. SELECT sAgentName, createdBy
  96. ,[OffHour Txn] = ''<a href="reports.aspx?reportName=10122200_txn&reportByTxn=detailOffHrs&rCountry='+ISNULL(@rCountry,'')+'&sCountry='+ISNULL(@sCountry,'')+'&fromTxnDate='+@fromDate+'&toTxnDate='+@toDate+'&UserName=''+CreatedBy+''">''+CAST(SUM(CNT) AS VARCHAR)+''</a>''
  97. FROM
  98. (
  99. SELECT
  100. sAgentName, createdBy,sCountry,COUNT(*) CNT
  101. from remitTran T WITH (NOLOCK), tranSenders S WITH (NOLOCK)
  102. where T.id = S.tranId
  103. AND createdDate between '''+ @fromDate +''' AND '''+ @toDate + ' 23:59:59''
  104. AND (CAST(createdDate AS TIME) > ''23:00:00'' OR CAST(createdDate AS TIME) < ''08:00:00'')
  105. AND S.ipAddress is not null
  106. GROUP BY sAgentName, createdBy,sCountry
  107. )A where 1=1 '
  108. IF @sCountry IS NOT NULL
  109. SET @sql = @sql +' AND sCountry=''' + @sCountry + ''''
  110. --IF @rCountry IS NOT NULL
  111. -- SET @sql = @sql +' AND pCountry=''' + @rCountry + ''''
  112. SET @sql = @sql +
  113. 'GROUP BY createdBy,sAgentName
  114. HAVING SUM(CNT) '+@operator +@count
  115. --print @sql
  116. EXEC(@sql)
  117. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  118. SELECT 'rCountry' head,@rCountry VALUE
  119. UNION ALL
  120. SELECT 'From Date' head,@fromDate VALUE
  121. UNION ALL
  122. SELECT 'TO Date' head,@toDate VALUE
  123. SELECT 'Fraud Transaction Reporting - Summary'+(@flag) title
  124. END
  125. -->>Same day User Created and Txn Generate
  126. if @flag ='samedayuserTXN'
  127. BEGIN
  128. SET @sql='
  129. SELECT sAgentName [Sending Agent], createdBy [Created By]
  130. ,[Same day Txn] = ''<a href="reports.aspx?reportName=10122200_txn&reportByTxn=detailsamedayuserTXN&sCountry='+ISNULL(@sCountry,'')+'&fromTxnDate='+@fromDate+'&toTxnDate='+@toDate+'&UserName=''+CreatedBy+''">''+CAST(SUM(CNT) AS VARCHAR)+''</a>''
  131. FROM
  132. (
  133. SELECT
  134. sAgentName , t.createdBy ,sCountry ,COUNT(*) CNT
  135. from remitTran T WITH (NOLOCK)
  136. inner join tranSenders S WITH (NOLOCK) on T.id = S.tranId
  137. inner join applicationusers u with(nolock) on u.username=t.createdby and cast(t.createdDate as date)=cast(u.createdDate as date)
  138. where t.createdDate between '''+ @fromDate +''' AND '''+ @toDate + ' 23:59:59''
  139. ----and u.createdDate between '''+ @fromDate +''' AND '''+ @toDate + ' 23:59:59''
  140. AND S.ipAddress is not null
  141. GROUP BY sAgentName, t.createdBy,sCountry
  142. )A where 1=1 '
  143. IF @sCountry IS NOT NULL
  144. SET @sql = @sql +' AND sCountry=''' + @sCountry + ''''
  145. --IF @rCountry IS NOT NULL
  146. -- SET @sql = @sql +' AND pCountry=''' + @rCountry + ''''
  147. SET @sql = @sql +
  148. 'GROUP BY createdBy,sAgentName
  149. HAVING SUM(CNT) '+@operator +@count
  150. print @sql
  151. EXEC(@sql)
  152. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  153. SELECT 'rCountry' head,@rCountry VALUE
  154. UNION ALL
  155. SELECT 'From Date' head,@fromDate VALUE
  156. UNION ALL
  157. SELECT 'TO Date' head,@toDate VALUE
  158. SELECT 'Fraud Transaction Reporting - Summary'+(@flag) title
  159. END
  160. if @flag ='detail'
  161. BEGIN
  162. -- ############## SAME USER DETAIL IP And DC info
  163. SELECT
  164. TOP 500
  165. [Tran No] = '<span class = "link" onclick ="ViewTranDetail(' +
  166. CAST(T.id AS VARCHAR(50)) + ');">' + CAST(T.id AS VARCHAR(50)) + '</span>'
  167. ,sAgentName, sBranchName
  168. ,createdBy, ipAddress, dcInfo, cAmt, createdDate
  169. ,pCountry
  170. FROM remitTran T WITH (NOLOCK)
  171. INNER JOIN tranSenders S WITH (NOLOCK) ON T.id = S.tranId
  172. WHERE createdDate between @fromDate AND @toDate+' 23:59:59'
  173. AND createdBy = @userName
  174. AND T.sCountry = ISNULL(@SCOUNTRY,T.sCountry)
  175. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  176. SELECT 'rCountry' head,@rCountry VALUE
  177. UNION ALL
  178. SELECT 'From Date' head,@fromDate VALUE
  179. UNION ALL
  180. SELECT 'TO Date' head,@toDate VALUE
  181. SELECT 'Fraud Transaction Reporting - Detail' title
  182. END
  183. if @flag ='detailOffHrs'
  184. BEGIN
  185. -- ############## SAME USER DETAIL IP And DC info
  186. SELECT
  187. TOP 500
  188. [Tran No] = '<span class = "link" onclick ="ViewTranDetail(' +
  189. CAST(T.id AS VARCHAR(50)) + ');">' + CAST(T.id AS VARCHAR(50)) + '</span>'
  190. ,sAgentName, sBranchName
  191. ,createdBy, ipAddress, dcInfo, cAmt, createdDate
  192. ,pCountry
  193. FROM remitTran T WITH (NOLOCK)
  194. INNER JOIN tranSenders S WITH (NOLOCK) ON T.id = S.tranId
  195. WHERE createdDate between @fromDate AND @toDate+' 23:59:59'
  196. AND createdBy = @userName
  197. AND T.sCountry = ISNULL(@SCOUNTRY,T.sCountry)
  198. AND (CAST(createdDate AS TIME) > '23:00:00' OR CAST(createdDate AS TIME) < '08:00:00')
  199. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  200. SELECT 'rCountry' head,@rCountry VALUE
  201. UNION ALL
  202. SELECT 'From Date' head,@fromDate VALUE
  203. UNION ALL
  204. SELECT 'TO Date' head,@toDate VALUE
  205. SELECT 'Fraud Transaction Reporting - Detail' title
  206. END
  207. if @flag ='detailsamedayuserTXN'
  208. BEGIN
  209. -- ############## SAME USER DETAIL IP And DC info
  210. ----SELECT TOP 5 sAgent,sAgentName,sBranch,sBranchName FROM remitTran
  211. SELECT
  212. TOP 500
  213. [Tran No] = '<span class = "link" onclick ="ViewTranDetail(' +
  214. CAST(T.id AS VARCHAR(50)) + ');">' + CAST(T.id AS VARCHAR(50)) + '</span>'
  215. ,sAgentName [Agent Name] , sBranchName [Branch Name]
  216. ,t.createdBy [Created by], ipAddress [Ip Address], dcInfo [Dc Info], cAmt [C.Amount],u.createdDate 'User Created Date', t.createdDate 'Txn Date'
  217. ,pCountry [Receiving Country]
  218. FROM remitTran T WITH (NOLOCK)
  219. INNER JOIN tranSenders S WITH (NOLOCK) ON T.id = S.tranId
  220. inner join applicationusers u with(nolock) on u.username=t.createdby and cast(t.createdDate as date)=cast(u.createdDate as date)
  221. WHERE t.createdDate between @fromDate AND @toDate+' 23:59:59'
  222. --and u.createdDate between @fromDate AND @toDate+' 23:59:59'
  223. AND t.createdBy = @userName
  224. AND T.sCountry = ISNULL(@SCOUNTRY,T.sCountry)
  225. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  226. SELECT 'Sending Country' head,@sCountry VALUE
  227. UNION ALL
  228. SELECT 'From Date' head,@fromDate VALUE
  229. UNION ALL
  230. SELECT 'TO Date' head,@toDate VALUE
  231. SELECT 'Fraud Transaction Reporting - Same Day User Created and Txn Generated Detail' title
  232. RETURN
  233. END
  234. GO