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.

279 lines
8.7 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_amlSearchByCustomerRpt] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_amlSearchByCustomerRpt]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_amlSearchByCustomerRpt] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE proc [dbo].[proc_amlSearchByCustomerRpt]
  12. @flag VARCHAR(10)
  13. ,@user VARCHAR(30)
  14. -------------------------------------------
  15. ,@sCountry VARCHAR(50) = NULL
  16. ,@rCountry VARCHAR(50) = NULL
  17. ,@sAgent VARCHAR(50) = NULL
  18. ,@rAgent VARCHAR(50) = NULL
  19. ,@sCurr VARCHAR(50) = NULL
  20. ,@rCurr VARCHAR(50) = NULL
  21. ,@rMode VARCHAR(50) = NULL
  22. ,@dateType VARCHAR(50) = NULL
  23. ,@frmDate VARCHAR(50) = NULL
  24. ,@toDate VARCHAR(50) = NULL
  25. -------------------------------------------
  26. ,@searchBy VARCHAR(50) = NULL
  27. ,@saerchType VARCHAR(50) = NULL
  28. ,@searchValue VARCHAR(50) = NULL
  29. -------------------------------------------
  30. ,@pageNumber INT = 1
  31. ,@pageSize INT = 50
  32. ,@isExportFull VARCHAR(1) = NULL
  33. AS
  34. SET NOCOUNT ON
  35. BEGIN TRY
  36. DECLARE @table VARCHAR(MAX),
  37. @sql VARCHAR(MAX) ,
  38. @globalFilter VARCHAR(MAX) = '' ,
  39. @URL VARCHAR(MAX) = '' ,
  40. @reportHead VARCHAR(100) = '' ,
  41. @customerId BIGINT
  42. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(5000))
  43. SET @pageNumber = ISNULL(@pageNumber, 1)
  44. SET @pageSize = ISNULL(@pageSize, 100)
  45. SET @globalFilter = ' AND rt.tranStatus <> ''Cancel'''
  46. IF @sCountry is not null
  47. BEGIN
  48. INSERT @FilterList
  49. SELECT 'Sender Country', @sCountry
  50. SET @globalFilter = @globalFilter + ' AND rt.sCountry = ''' + @sCountry + ''''
  51. END
  52. IF @rCountry is not null
  53. BEGIN
  54. INSERT @FilterList
  55. SELECT 'Receiver Country', @rCountry
  56. SET @globalFilter = @globalFilter + ' AND rt.pCountry = ''' + @rCountry + ''''
  57. END
  58. IF @sAgent IS NOT NULL
  59. BEGIN
  60. INSERT @FilterList
  61. SELECT 'Sender Agent', am.agentName
  62. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sAgent
  63. SET @globalFilter = @globalFilter + ' AND rt.sAgent = ''' + @sAgent + ''''
  64. END
  65. IF @rAgent IS NOT NULL
  66. BEGIN
  67. INSERT @FilterList
  68. SELECT 'Receiver Agent', am.agentName
  69. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @rAgent
  70. SET @globalFilter = @globalFilter + ' AND rt.pAgent = ''' + @rAgent + ''''
  71. END
  72. IF @rMode IS NOT NULL
  73. BEGIN
  74. INSERT @FilterList
  75. SELECT 'Receiving Mode', @rMode
  76. SET @globalFilter = @globalFilter + ' AND rt.paymentMethod = ''' + @rMode + ''''
  77. END
  78. INSERT @FilterList
  79. SELECT 'Date Type',
  80. case when @dateType = 'txnDate' then 'TXN Date'
  81. when @dateType = 'confirmDate' then 'Confirm Date'
  82. when @dateType = 'paidDate' then 'Paid Date' end
  83. IF @dateType = 'txnDate'
  84. BEGIN
  85. INSERT @FilterList
  86. SELECT 'From Date', @frmDate
  87. SET @globalFilter = @globalFilter + ' AND rt.createdDate >= ''' + @frmDate + ''''
  88. INSERT @FilterList
  89. SELECT 'To Date', @toDate
  90. SET @globalFilter = @globalFilter + ' AND rt.createdDate <= ''' + @toDate + ' 23:59:59'''
  91. END
  92. IF @dateType = 'confirmDate'
  93. BEGIN
  94. INSERT @FilterList
  95. SELECT 'From Date', @frmDate
  96. SET @globalFilter = @globalFilter + ' AND rt.approvedDate >= ''' + @frmDate + ''''
  97. INSERT @FilterList
  98. SELECT 'To Date', @toDate
  99. SET @globalFilter = @globalFilter + ' AND rt.approvedDate <= ''' + @toDate + ' 23:59:59'''
  100. END
  101. IF @dateType = 'paidDate'
  102. BEGIN
  103. INSERT @FilterList
  104. SELECT 'From Date', @frmDate
  105. SET @globalFilter = @globalFilter + ' AND rt.paidDate >= ''' + @frmDate + ''''
  106. INSERT @FilterList
  107. SELECT 'To Date', @toDate
  108. SET @globalFilter = @globalFilter + ' AND rt.paidDate <= ''' + @toDate + ' 23:59:59'''
  109. END
  110. IF @flag = 'sbc'
  111. BEGIN
  112. SET @reportHead ='Search By Customer'
  113. IF @searchBy = 'sender'
  114. BEGIN
  115. --GET THE CUSTOMER ID FROM ID NUMBER, TO GET TRANSAACTIONS BY ID NUMBER
  116. SELECT @customerId = customerId
  117. FROM customerMaster (NOLOCK)
  118. WHERE idNumber = @searchValue
  119. END
  120. SET @URL='"Reports.aspx?saerchType='+@saerchType+'&searchValue='+ @searchValue+'&dateType='+@dateType+'&frmDate='+@frmDate
  121. +'&toDate='+@toDate+'&sCountry='+ISNULL(replace(@sCountry,' ','__'),'')
  122. +'&sAgent='+ISNULL(@sAgent,'')+
  123. CASE WHEN @searchBy = 'receiver' THEN +'&recName=''+REPLACE(RT.receiverName,'' '',''__'')+'''
  124. +'&recMobile=''+REPLACE(TR.mobile,'' '',''__'')+''' ELSE ''
  125. END
  126. +'&rMode='+ISNULL(REPLACE(@rMode,' ','__'),'')+'&rCountry='+ISNULL(replace(@rCountry,' ','__'),'')
  127. +'&rAgent='+ISNULL(@rAgent,'')
  128. +'&date=''+RIGHT(CONVERT(VARCHAR, rt.createdDate, 103), 7)+'''
  129. +'&senderName='+ CASE WHEN @searchBy = 'sender' THEN '''+REPLACE(rt.senderName,'' '',''__'')+''' ELSE '''+REPLACE(rt.receiverName,'' '',''__'')+''' END
  130. +'&reportName=amlddlreport&flag=sbc_ddl&searchBy='+@searchBy+'&customerId='+CAST(ISNULL(@customerId, 0) AS VARCHAR)+'"'
  131. SET @table = '
  132. SELECT [TXN Month/Year] =''<span class = "link" onclick =ViewAMLDDLReport('+@URL+');>'' + RIGHT(CONVERT(VARCHAR, rt.createdDate, 103), 7) + ''</span>''
  133. '
  134. IF @searchBy = 'sender'
  135. BEGIN
  136. SET @table = @table +'
  137. ,[Sender ID Number (Name)] = ISNULL(ts.idType, '''') + ''-'' + ISNULL(ts.idNumber, '''') + ISNULL('' ''+rt.senderName,'''')'
  138. END
  139. ELSE
  140. BEGIN
  141. SET @table = @table+'
  142. ,[Receiver Mobile Number (Name)] = ISNULL(tr.mobile, '''') + ISNULL('' ''+rt.receiverName,'''')'
  143. END
  144. SET @table = @table + '
  145. ,[Txn Count] = COUNT(''x'')
  146. ,[Total Amount] = CAST(SUM(rt.tAmt) AS DECIMAL(18, 2))
  147. FROM remitTran rt WITH(NOLOCK)
  148. LEFT JOIN tranSenders ts WITH(NOLOCK) ON rt.id = ts.tranId
  149. LEFT JOIN tranReceivers tr WITH(NOLOCK) ON rt.id = tr.tranId
  150. WHERE 1 = 1 and rt.tranStatus <>''cancel''
  151. '
  152. IF @searchBy = 'receiver'
  153. BEGIN
  154. INSERT @FilterList
  155. SELECT 'Id', CASE WHEN @saerchType = 'rname' THEN 'RECEIVER NAME' WHEN @saerchType = 'rmobile' THEN 'RECEIVER MOBILE' END
  156. INSERT @FilterList
  157. SELECT 'ID Number', @searchValue
  158. IF @saerchType = 'rname'
  159. SET @table = @table + ' AND tr.fullName = ISNULL('''+ @searchValue +''',tr.fullName)'
  160. IF @saerchType = 'rmobile'
  161. SET @table = @table + ' AND tr.mobile LIKE ISNULL(''%'+ @searchValue +''',tr.mobile)'
  162. END
  163. IF @searchBy = 'sender'
  164. BEGIN
  165. INSERT @FilterList
  166. SELECT 'Id','Sender Id'
  167. INSERT @FilterList
  168. SELECT 'ID Number', @searchValue
  169. SET @table = @table + ' AND ts.customerId = ISNULL('''+ CAST(ISNULL(@customerId, 0) AS VARCHAR) +''',ts.customerId)'
  170. END
  171. INSERT @FilterList
  172. SELECT 'Search by', @searchBy
  173. SET @table = @table + @globalFilter + '
  174. GROUP BY RIGHT(CONVERT(VARCHAR, rt.createdDate, 103), 7)'
  175. IF @searchBy = 'sender'
  176. BEGIN
  177. SET @table = @table +'
  178. ,ts.idType
  179. ,ts.idNumber
  180. ,rt.senderName
  181. '
  182. END
  183. IF @searchBy = 'receiver'
  184. BEGIN
  185. SET @table = @table +'
  186. ,rt.receiverName
  187. ,tr.mobile
  188. '
  189. END
  190. IF @isExportFull = 'Y'
  191. BEGIN
  192. SET @sql = '
  193. SELECT [TXN Month/Year]'
  194. IF @searchBy = 'sender'
  195. SET @sql =@sql +',[Sender ID Number (Name)]'
  196. IF @searchBy = 'receiver'
  197. SET @sql =@sql +',Receiver Mobile Number (Name)]'
  198. SET @SQL= @sql + ',[Txn Count],[Total Amount]
  199. FROM (
  200. SELECT
  201. ROW_NUMBER() OVER (ORDER BY [TXN Month/Year]) AS [S.N],*
  202. FROM (' + @table + ') x
  203. ) AS tmp '
  204. PRINT @sql
  205. EXEC (@sql)
  206. END
  207. ELSE
  208. BEGIN
  209. SET @sql = 'SELECT
  210. COUNT(*) AS TXNCOUNT
  211. ,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
  212. ,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
  213. FROM (' + @table + ') x'
  214. PRINT @sql
  215. EXEC (@sql)
  216. SET @sql = '
  217. SELECT [TXN Month/Year]'
  218. IF @searchBy = 'sender'
  219. SET @sql =@sql +',[Sender ID Number (Name)]'
  220. IF @searchBy = 'receiver'
  221. SET @sql =@sql +',[Receiver Mobile Number (Name)]'
  222. SET @SQL= @sql + ',[Txn Count],[Total Amount]
  223. FROM (
  224. SELECT
  225. ROW_NUMBER() OVER (ORDER BY [TXN Month/Year]) AS [S.N],*
  226. FROM (' + @table + ') x
  227. ) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
  228. PRINT @sql
  229. EXEC (@sql)
  230. END
  231. END
  232. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  233. SELECT * FROM @FilterList
  234. SELECT 'AML Reports : '+@reportHead title
  235. END TRY
  236. BEGIN CATCH
  237. IF @@TRANCOUNT > 0
  238. ROLLBACK TRANSACTION
  239. DECLARE @errorMessage VARCHAR(MAX)
  240. SET @errorMessage = ERROR_MESSAGE()
  241. EXEC proc_errorHandler 1, @errorMessage ,NULL
  242. END CATCH
  243. GO