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.

482 lines
16 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_amlDropDown] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_amlDropDown]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_amlDropDown] 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_amlDropDown]
  12. @flag VARCHAR(10)
  13. ,@user VARCHAR(30)
  14. ,@sCountry VARCHAR(50) = NULL
  15. ,@rCountry VARCHAR(50) = NULL
  16. ,@sAgent VARCHAR(50) = NULL
  17. ,@rAgent VARCHAR(50) = NULL
  18. ,@sCurr VARCHAR(50) = NULL
  19. ,@rCurr VARCHAR(50) = NULL
  20. ,@rMode VARCHAR(50) = NULL
  21. ,@dateType VARCHAR(50) = NULL
  22. ,@frmDate VARCHAR(50) = NULL
  23. ,@toDate VARCHAR(50) = NULL
  24. ,@sCustomer VARCHAR(200) = NULL
  25. ,@recName VARCHAR(200) = NULL
  26. ,@sIdType VARCHAR(50) = NULL
  27. ,@sIdNo VARCHAR(50) = NULL
  28. ,@searchType VARCHAR(50) = NULL
  29. ,@searchValue VARCHAR(50) = NULL
  30. ,@fromAmt MONEY = NULL
  31. ,@toAmt MONEY = NULL
  32. ,@date VARCHAR(50) = NULL
  33. ,@rptFor VARCHAR(50) = NULL
  34. ,@searchBy VARCHAR(20) = NULL
  35. ,@country VARCHAR(200) = NULL
  36. ,@idType VARCHAR(50) = NULL
  37. ,@idNumber VARCHAR(50) = NULL
  38. ,@company VARCHAR(200) = NULL
  39. ,@senderName VARCHAR(500) = NULL
  40. ,@pageNumber INT = 1
  41. ,@pageSize INT = 50
  42. ,@isExportFull VARCHAR(10) = NULL
  43. ,@customerId BIGINT = NULL
  44. ,@recMobile VARCHAR(25) = NULL
  45. ,@amtType VARCHAR(20) = NULL
  46. AS
  47. SET NOCOUNT ON
  48. BEGIN TRY
  49. DECLARE @table VARCHAR(MAX),@sql VARCHAR(MAX),@globalFilter VARCHAR(MAX) = '',@URL VARCHAR(MAX) = '',@reportHead VARCHAR(100) = '',@localFilter AS VARCHAR(500)
  50. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(5000))
  51. SET @recName = REPLACE(@recName,'__',' ')
  52. SET @company = REPLACE(@company,'__',' ')
  53. SET @country = REPLACE(@country,'__',' ')
  54. SET @rCountry = REPLACE(@rCountry,'__',' ')
  55. SET @senderName = REPLACE(@senderName,'__',' ')
  56. SET @rMode = REPLACE(@rMode,'__',' ')
  57. SET @sCountry = REPLACE(@sCountry,'__',' ')
  58. SET @globalFilter = ' AND rt.tranStatus <> ''Cancel'''
  59. SET @company = REPLACE(@company,'-',NULL)
  60. SET @idType = REPLACE(@idType,'__',' ')
  61. SET @idNumber = REPLACE(@idNumber,'__',' ')
  62. IF @sCountry IS NOT NULL
  63. BEGIN
  64. INSERT @FilterList
  65. SELECT 'Sender Country', @sCountry
  66. SET @globalFilter = @globalFilter + ' AND rt.sCountry = ''' + @sCountry + ''''
  67. END
  68. IF @rCountry IS NOT NULL
  69. BEGIN
  70. INSERT @FilterList
  71. SELECT 'Receiver Country', @rCountry
  72. SET @globalFilter = @globalFilter + ' AND rt.pCountry = ''' + @rCountry + ''''
  73. END
  74. IF @sAgent IS NOT NULL
  75. BEGIN
  76. INSERT @FilterList
  77. SELECT 'Sender Agent', am.agentName
  78. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sAgent
  79. SET @globalFilter = @globalFilter + ' AND rt.sAgent = ''' + @sAgent + ''''
  80. END
  81. IF @rAgent IS NOT NULL
  82. BEGIN
  83. INSERT @FilterList
  84. SELECT 'Receiver Agent', am.agentName
  85. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @rAgent
  86. SET @globalFilter = @globalFilter + ' AND rt.pAgent = ''' + @rAgent + ''''
  87. END
  88. IF @rMode IS NOT NULL
  89. BEGIN
  90. INSERT @FilterList
  91. SELECT 'Receiving Mode', @rMode
  92. SET @globalFilter = @globalFilter + ' AND rt.paymentMethod = ''' + @rMode + ''''
  93. END
  94. INSERT @FilterList
  95. SELECT 'Date Type',
  96. case when @dateType = 'txnDate' then 'TXN Date'
  97. when @dateType = 'confirmDate' then 'Confirm Date'
  98. when @dateType = 'paidDate' then 'Paid Date' end
  99. IF @dateType = 'txnDate'
  100. BEGIN
  101. INSERT @FilterList
  102. SELECT 'From Date', CONVERT(varchar(20), CAST(@frmDate AS DATE),103)
  103. SET @globalFilter = @globalFilter + ' AND rt.createdDate >= ''' + @frmDate + ''''
  104. INSERT @FilterList
  105. SELECT 'To Date', CONVERT(varchar(20),CAST(@toDate AS DATE),103)
  106. SET @globalFilter = @globalFilter + ' AND rt.createdDate <= ''' + @toDate + ' 23:59:59'''
  107. END
  108. IF @dateType = 'confirmDate'
  109. BEGIN
  110. INSERT @FilterList
  111. SELECT 'From Date', CONVERT(varchar(20), CAST(@frmDate AS DATE),103)
  112. SET @globalFilter = @globalFilter + ' AND rt.approvedDate >= ''' + @frmDate + ''''
  113. INSERT @FilterList
  114. SELECT 'To Date', CONVERT(varchar(20),CAST(@toDate AS DATE),103)
  115. SET @globalFilter = @globalFilter + ' AND rt.approvedDate <= ''' + @toDate + ' 23:59:59'''
  116. END
  117. IF @dateType = 'paidDate'
  118. BEGIN
  119. INSERT @FilterList
  120. SELECT 'From Date', CONVERT(varchar(20), CAST(@frmDate AS DATE),103)
  121. SET @globalFilter = @globalFilter + ' AND rt.paidDate >= ''' + @frmDate + ''''
  122. INSERT @FilterList
  123. SELECT 'To Date', CONVERT(varchar(20),CAST(@toDate AS DATE),103)
  124. SET @globalFilter = @globalFilter + ' AND rt.paidDate <= ''' + @toDate + ' 23:59:59'''
  125. END
  126. IF @rptFor = 'Sender'
  127. SET @localFilter = ' LEFT JOIN vwtranSenders TS WITH (NOLOCK) ON RT.id=TS.tranId'
  128. ELSE
  129. SET @localFilter = ' LEFT JOIN vwtranReceivers TS WITH (NOLOCK) ON RT.id=TS.tranId'
  130. SET @table ='
  131. SELECT
  132. [S.N] = ROW_NUMBER() OVER (ORDER BY RT.senderName),
  133. [TXN Date] = RT.createdDate,
  134. [TXN No.] = ''<span class = "link" onclick ="ViewTranDetail('' + CAST(RT.id AS VARCHAR(50)) + '');">'' + CAST(RT.id AS VARCHAR) + ''</span>'',
  135. [Sender Name] = RT.senderName,
  136. [Sender ID] = isnull(ts.idType,'''')+''-''+ isnull(ts.idNumber,''''),
  137. [Receiver Name] = RT.receiverName,
  138. [Receiver ID] = isnull(tr.idType2,tr.idType)+''-''+ isnull(tr.idNumber2,tr.idNumber),
  139. [Receiving_Country] = RT.pCountry,
  140. [Receiving_Branch] = RT.pBranchName,
  141. [Receiving_Currency] = RT.payoutCurr,
  142. [Receiving_Amount] = RT.pAmt,
  143. [Collection_Currency] = RT.collCurr,
  144. [Collection_Amount] = '+CASE WHEN @flag='sbc_ddl' THEN 'RT.tAmt' ELSE 'RT.cAmt' END+',
  145. [Sending_Country] = RT.sCountry,
  146. [Sending_USD Amount] = ('+CASE WHEN @flag='sbc_ddl' THEN 'RT.tAmt' ELSE 'RT.cAmt' END+'/RT.sCurrCostRate),
  147. [Sending_Agent] = RT.sAgentName,
  148. [Sending_Branch] = RT.sBranchName,
  149. [Sending_User] = RT.createdBy
  150. FROM vwremitTran RT WITH (NOLOCK)
  151. LEFT JOIN vwtranSenders TS WITH (NOLOCK) ON RT.id=TS.tranId
  152. LEFT JOIN vwtranReceivers TR WITH (NOLOCK) ON RT.id=TR.tranId
  153. WHERE 1=1 '
  154. IF @flag='ssmt_ddl'
  155. BEGIN
  156. SET @reportHead ='MIS Report Drilldown'
  157. IF @senderName IS NOT NULL
  158. BEGIN
  159. SET @table = @table +' AND RT.senderName='''+@senderName +''''
  160. END
  161. IF @country IS NOT NULL
  162. BEGIN
  163. SET @table = @table +' AND TS.nativecountry='''+@country +''''
  164. END
  165. IF @idType IS NOT NULL
  166. BEGIN
  167. SET @table = @table + ' AND TS.idType='''+@idType +''''
  168. END
  169. IF @idNumber IS NOT NULL
  170. BEGIN
  171. SET @table = @table + ' AND TS.idNumber='''+@idNumber +''''
  172. END
  173. IF @company IS NOT NULL
  174. BEGIN
  175. SET @table = @table + ' AND TS.companyName='''+@company +''''
  176. END
  177. END
  178. IF @flag='sbmt_ddl'
  179. BEGIN
  180. SET @reportHead ='MIS Report Drilldown'
  181. IF @recName IS NOT NULL
  182. SET @table = @table + ' AND RT.receiverName = '''+@recName +''''
  183. IF @country IS NOT NULL
  184. SET @table = @table +' AND RT.pCountry='''+@country+''''
  185. END
  186. IF @flag='sbc_ddl'
  187. BEGIN
  188. IF @searchBy = 'sender' and @searchValue IS NOT NULL
  189. BEGIN
  190. INSERT @FilterList
  191. SELECT 'Sender ID No', @idNumber
  192. SET @table = @table + ' AND ts.customerId=''' + CAST(@customerId AS VARCHAR) + ''''
  193. END
  194. IF @searchBy = 'receiver'
  195. BEGIN
  196. INSERT @FilterList
  197. SELECT 'Receiver ID No', CASE WHEN @searchType = 'rname' THEN 'RECEIVER NAME' WHEN @searchType = 'rmobile' THEN 'RECEIVER MOBILE' END
  198. SET @table = @table + ' AND tr.fullName = ISNULL('''+ @recName +''',tr.fullName)'
  199. SET @table = @table + ' AND TR.mobile LIKE ISNULL(''%'+ @recMobile +''',tr.mobile)'
  200. SET @table = @table + CASE WHEN @searchType = 'rname' THEN ' AND TR.receiverName=''' + @searchValue + '''' WHEN @searchType = 'rmobile' THEN ' AND TR.mobile LIKE ISNULL(''%'+ @searchValue +''',tr.mobile)' END
  201. END
  202. SET @reportHead ='Search By Customer Drilldown'
  203. IF @recName IS NOT NULL
  204. BEGIN
  205. SET @table = @table + CASE WHEN @searchBy ='sender' THEN ' AND rt.senderName='''+@recName +''''
  206. ELSE ' AND rt.receiverName='''+@recName +'''' END
  207. END
  208. if @date is not null
  209. set @table = @table+' AND RIGHT(CONVERT(VARCHAR, rt.createdDate, 103), 7) = '''+@date +''''
  210. IF @idType='normalId'
  211. BEGIN
  212. IF @searchBy = 'sender'
  213. BEGIN
  214. SET @table = @table+' and ts.idNumber='''+isnull(@idNumber,'''')+''' and rt.senderName='''+isnull(@senderName,'''')+''''
  215. END
  216. ELSE
  217. BEGIN
  218. SET @table = @table+' and tr.idNumber='''+isnull(@idNumber,'''')+' and rt.receiverName='''+isnull(@recName,'''')+''''
  219. END
  220. END
  221. END
  222. IF @flag='cr_ddl'
  223. BEGIN
  224. SET @reportHead ='Customer Report Drilldown'
  225. --SET @globalFilter = ' AND RT.payoutCurr=''NPR'''
  226. DECLARE @amtColumnMain VARCHAR(20)
  227. SET @amtColumnMain = CASE WHEN @amtType = 'chkBoxcAmt' THEN 'rt.cAmt' ELSE 'rt.pAmt' END
  228. IF @sCountry is not null
  229. BEGIN
  230. INSERT @FilterList
  231. SELECT 'Sender Country', @sCountry
  232. SET @globalFilter = @globalFilter + ' AND RT.sCountry = ''' + @sCountry + ''''
  233. END
  234. IF @rCountry is not null
  235. BEGIN
  236. INSERT @FilterList
  237. SELECT 'Receiver Country', @rCountry
  238. SET @globalFilter = @globalFilter + ' AND RT.pCountry = ''' + @rCountry + ''''
  239. END
  240. IF @sAgent IS NOT NULL
  241. BEGIN
  242. INSERT @FilterList
  243. SELECT 'Sender Agent', am.agentName
  244. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sAgent
  245. SET @globalFilter = @globalFilter + ' AND RT.sAgent = ''' + @sAgent + ''''
  246. END
  247. IF @rAgent IS NOT NULL
  248. BEGIN
  249. INSERT @FilterList
  250. SELECT 'Receiver Agent', am.agentName
  251. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @rAgent
  252. SET @globalFilter = @globalFilter + ' AND RT.pAgent = ''' + @rAgent + ''''
  253. END
  254. IF @rMode IS NOT NULL
  255. BEGIN
  256. INSERT @FilterList
  257. SELECT 'Receiving Mode', @rMode
  258. SET @globalFilter = @globalFilter + ' AND RT.paymentMethod = ''' + @rMode + ''''
  259. END
  260. INSERT @FilterList
  261. SELECT 'Date Type',
  262. case when @dateType = 'txnDate' then 'TXN Date'
  263. when @dateType = 'confirmDate' then 'Confirm Date'
  264. when @dateType = 'paidDate' then 'Paid Date' end
  265. IF @dateType = 'txnDate'
  266. BEGIN
  267. INSERT @FilterList
  268. SELECT 'From Date', @frmDate
  269. SET @globalFilter = @globalFilter + ' AND RT.createdDate >= ''' + @frmDate + ''''
  270. INSERT @FilterList
  271. SELECT 'To Date', @toDate
  272. SET @globalFilter = @globalFilter + ' AND RT.createdDate <= ''' + @toDate + ' 23:59:59'''
  273. END
  274. IF @dateType = 'confirmDate'
  275. BEGIN
  276. INSERT @FilterList
  277. SELECT 'From Date', @frmDate
  278. SET @globalFilter = @globalFilter + ' AND RT.approvedDate >= ''' + @frmDate + ''''
  279. INSERT @FilterList
  280. SELECT 'To Date', @toDate
  281. SET @globalFilter = @globalFilter + ' AND RT.approvedDate <= ''' + @toDate + ' 23:59:59'''
  282. END
  283. IF @dateType = 'paidDate'
  284. BEGIN
  285. INSERT @FilterList
  286. SELECT 'From Date', @frmDate
  287. SET @globalFilter = @globalFilter + ' AND RT.paidDate >= ''' + @frmDate + ''''
  288. INSERT @FilterList
  289. SELECT 'To Date', @toDate
  290. SET @globalFilter = @globalFilter + ' AND RT.paidDate <= ''' + @toDate + ' 23:59:59'''
  291. END
  292. IF @fromAmt IS NOT NULL AND @toAmt IS NOT NULL
  293. BEGIN
  294. SET @table = @table +' AND ' + @amtColumnMain + ' >= '''+ CAST(@fromAmt AS VARCHAR) +''' AND ' + @amtColumnMain + ' <= '''+ CAST(@toAmt AS VARCHAR) +''''
  295. END
  296. IF @idType is not NULL
  297. BEGIN
  298. SET @table = @table +' AND ts.idType='''+@idType+''''
  299. END
  300. IF @idNumber is not null
  301. BEGIN
  302. SET @table = @table +' AND ts.idNumber='''+@idNumber+''''
  303. END
  304. IF @recName is not null
  305. BEGIN
  306. SET @table = @table +' AND rt.senderName='''+@recName+''''
  307. END
  308. END
  309. IF @flag='cd_ddl'
  310. BEGIN
  311. SET @reportHead ='Customer Daily Report Drilldown'
  312. --SET @globalFilter = ' AND RT.payoutCurr=''NPR'''
  313. SET @amtColumnMain = 'rt.cAmt'
  314. IF @sCountry is not null
  315. BEGIN
  316. INSERT @FilterList
  317. SELECT 'Sender Country', @sCountry
  318. SET @globalFilter = @globalFilter + ' AND RT.sCountry = ''' + @sCountry + ''''
  319. END
  320. IF @rCountry is not null
  321. BEGIN
  322. INSERT @FilterList
  323. SELECT 'Receiver Country', @rCountry
  324. SET @globalFilter = @globalFilter + ' AND RT.pCountry = ''' + @rCountry + ''''
  325. END
  326. IF @sAgent IS NOT NULL
  327. BEGIN
  328. INSERT @FilterList
  329. SELECT 'Sender Agent', am.agentName
  330. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sAgent
  331. SET @globalFilter = @globalFilter + ' AND RT.sAgent = ''' + @sAgent + ''''
  332. END
  333. IF @rAgent IS NOT NULL
  334. BEGIN
  335. INSERT @FilterList
  336. SELECT 'Receiver Agent', am.agentName
  337. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @rAgent
  338. SET @globalFilter = @globalFilter + ' AND RT.pAgent = ''' + @rAgent + ''''
  339. END
  340. IF @rMode IS NOT NULL
  341. BEGIN
  342. INSERT @FilterList
  343. SELECT 'Receiving Mode', @rMode
  344. SET @globalFilter = @globalFilter + ' AND RT.paymentMethod = ''' + @rMode + ''''
  345. END
  346. INSERT @FilterList
  347. SELECT 'Date Type',
  348. case when @dateType = 'txnDate' then 'TXN Date'
  349. when @dateType = 'confirmDate' then 'Confirm Date'
  350. when @dateType = 'paidDate' then 'Paid Date' end
  351. IF @dateType = 'txnDate'
  352. BEGIN
  353. INSERT @FilterList
  354. SELECT 'From Date', @frmDate
  355. SET @globalFilter = @globalFilter + ' AND RT.createdDate >= ''' + @frmDate + ''''
  356. INSERT @FilterList
  357. SELECT 'To Date', @toDate
  358. SET @globalFilter = @globalFilter + ' AND RT.createdDate <= ''' + @toDate + ' 23:59:59'''
  359. END
  360. IF @dateType = 'confirmDate'
  361. BEGIN
  362. INSERT @FilterList
  363. SELECT 'From Date', @frmDate
  364. SET @globalFilter = @globalFilter + ' AND RT.approvedDate >= ''' + @frmDate + ''''
  365. INSERT @FilterList
  366. SELECT 'To Date', @toDate
  367. SET @globalFilter = @globalFilter + ' AND RT.approvedDate <= ''' + @toDate + ' 23:59:59'''
  368. END
  369. IF @dateType = 'paidDate'
  370. BEGIN
  371. INSERT @FilterList
  372. SELECT 'From Date', @frmDate
  373. SET @globalFilter = @globalFilter + ' AND RT.paidDate >= ''' + @frmDate + ''''
  374. INSERT @FilterList
  375. SELECT 'To Date', @toDate
  376. SET @globalFilter = @globalFilter + ' AND RT.paidDate <= ''' + @toDate + ' 23:59:59'''
  377. END
  378. IF @fromAmt IS NOT NULL AND @toAmt IS NOT NULL
  379. BEGIN
  380. SET @table = @table +' AND ' + @amtColumnMain + ' >= '''+ CAST(@fromAmt AS VARCHAR) +''' AND ' + @amtColumnMain + ' <= '''+ CAST(@toAmt AS VARCHAR) +''''
  381. END
  382. IF @idType is not NULL
  383. BEGIN
  384. SET @table = @table +' AND ts.idType='''+@idType+''''
  385. END
  386. IF @idNumber is not null
  387. BEGIN
  388. SET @table = @table +' AND ts.idNumber='''+@idNumber+''''
  389. END
  390. IF @recName is not null
  391. BEGIN
  392. SET @table = @table +' AND rt.senderName='''+@recName+''''
  393. END
  394. END
  395. IF @flag='tc_ddl'
  396. BEGIN
  397. SET @reportHead ='Top Customer Drilldown'
  398. IF @recName IS NOT NULL
  399. BEGIN
  400. SET @table = @table + CASE WHEN @rptFor = 'Sender' THEN ' AND rt.senderName='''+@recName +'''' ELSE ' AND rt.receiverName='''+@recName +'''' END
  401. END
  402. IF @country IS NOT NULL
  403. BEGIN
  404. SET @table = @table + CASE WHEN @rptFor = 'Sender' THEN ' AND TS.nativeCountry='''+@country +'''' ELSE ' AND TR.nativeCountry='''+@country +'''' END
  405. END
  406. IF @idType IS NOT NULL
  407. BEGIN
  408. SET @table = @table + CASE WHEN @rptFor = 'Sender' THEN ' AND TS.idType='''+@idType +'''' ELSE ' AND TR.idType='''+@idType +'''' END
  409. END
  410. IF @idNumber IS NOT NULL
  411. BEGIN
  412. SET @table = @table + CASE WHEN @rptFor = 'Sender' THEN ' AND TS.idNumber='''+@idNumber +'''' ELSE ' AND TR.idNumber='''+@idNumber +'''' END
  413. END
  414. IF @company IS NOT NULL
  415. BEGIN
  416. SET @table = @table + CASE WHEN @rptFor = 'Sender' THEN ' AND TS.companyName='''+@company +'''' ELSE ' AND TR.companyName='''+@company +'''' END
  417. END
  418. END
  419. SET @table = @table + @globalFilter
  420. PRINT @table
  421. EXEC(@table)
  422. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  423. SELECT * FROM @FilterList
  424. SELECT 'AML Reports : '+@reportHead title
  425. END TRY
  426. BEGIN CATCH
  427. IF @@TRANCOUNT > 0
  428. ROLLBACK TRANSACTION
  429. DECLARE @errorMessage VARCHAR(MAX)
  430. SET @errorMessage = ERROR_MESSAGE()
  431. EXEC proc_errorHandler 1, @errorMessage ,NULL
  432. END CATCH
  433. GO