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.

758 lines
57 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_rbaReport] 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 PROC [dbo].[proc_rbaReport]
  9. @user VARCHAR(50) = NULL ,
  10. @reportFor VARCHAR(50) = NULL ,
  11. @sCountry VARCHAR(100) = NULL ,
  12. @sAgent INT = NULL ,
  13. @sBranch INT = NULL ,
  14. @sNativeCountry VARCHAR(100) = NULL ,
  15. @sIDNumber VARCHAR(100) = NULL ,
  16. @fDate VARCHAR(10) = NULL ,
  17. @tDate VARCHAR(10) = NULL ,
  18. @fRBA MONEY = NULL ,
  19. @tRBA MONEY = NULL ,
  20. @slabGroup MONEY = NULL ,
  21. @reportType VARCHAR(50) = NULL ,
  22. @rCountry VARCHAR(100) = NULL ,
  23. @nonnativetxn VARCHAR(1) = NULL ,
  24. @fTXNAmount MONEY = NULL ,
  25. @tTXNAmount MONEY = NULL ,
  26. @fTXNCount INT = NULL ,
  27. @tTXNCount INT = NULL ,
  28. @fBnfCountryCount INT = NULL ,
  29. @tBnfCountryCount INT = NULL ,
  30. @fBnfCount INT = NULL ,
  31. @tBnfCount INT = NULL ,
  32. @fOutletCount INT = NULL ,
  33. @tOutletCount INT = NULL ,
  34. @pagesize VARCHAR(10) = NULL ,
  35. @pageNumber VARCHAR(10) = NULL
  36. AS
  37. DECLARE @nativecountryid INT ,
  38. @customerid INT ,
  39. @SQL VARCHAR(MAX)
  40. DECLARE @LOWrFrom MONEY ,
  41. @LOWrTo MONEY ,
  42. @MEDIUMrFrom MONEY ,
  43. @MEDIUMrTo MONEY ,
  44. @HIGHrFrom MONEY ,
  45. @HIGHrTo MONEY
  46. DECLARE @constString VARCHAR(MAX)
  47. SELECT @LOWrFrom = rFrom ,
  48. @LOWrTo = rTo
  49. FROM RBAScoreMaster
  50. WHERE TYPE = 'LOW'
  51. SELECT @MEDIUMrFrom = rFrom ,
  52. @MEDIUMrTo = rTo
  53. FROM RBAScoreMaster
  54. WHERE TYPE = 'MEDIUM'
  55. SELECT @HIGHrFrom = rFrom ,
  56. @HIGHrTo = rTo
  57. FROM RBAScoreMaster
  58. WHERE TYPE = 'HIGH'
  59. SELECT @nativecountryid = countryid
  60. FROM countrymaster
  61. WHERE countryname = @sNativeCountry
  62. SELECT @customerid = customerid
  63. FROM customeridentity
  64. WHERE idnumber = @sIDNumber
  65. SET @reportFor = REPLACE(@reportFor, '_', ' ')
  66. SET @reportType = REPLACE(@reportType, '_', ' ')
  67. IF @reportFor = 'TXN RBA-V2'
  68. BEGIN
  69. IF @reportType = 'Summary Report-Agent'
  70. BEGIN
  71. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTA1') IS NOT NULL
  72. DROP TABLE ##TEMPRBAREPORTA1
  73. SET @SQl = '
  74. SELECT
  75. sagentname,
  76. LOW = SUM(CASE WHEN ts.RBA > 0.00 AND ts.RBA <= 40.00 THEN 1 ELSE 0 END ),
  77. MEDIUM = SUM(CASE WHEN ts.RBA > 40.00 AND ts.RBA <= 50.00 THEN 1 ELSE 0 END ),
  78. HIGH = SUM(CASE WHEN ts.RBA > 50.00 AND ts.RBA <= 99.99 THEN 1 ELSE 0 END ),
  79. VERYHIGH = SUM(CASE WHEN ts.RBA > 99.99 THEN 1 ELSE 0 END ),
  80. TOTAL = SUM(1)
  81. INTO ##TEMPRBAREPORTA1
  82. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  83. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  84. AND sCountry=''' + @sCountry + '''
  85. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate+ ' 23:59:59:998'''
  86. END
  87. IF @reportType = 'Summary Report-Branch'
  88. BEGIN
  89. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTB1') IS NOT NULL
  90. DROP TABLE ##TEMPRBAREPORTB1
  91. SET @SQl = '
  92. SELECT
  93. sagentname,
  94. sbranchname,
  95. LOW = SUM(CASE WHEN ts.RBA > 0.00 AND ts.RBA <= 40.00 THEN 1 ELSE 0 END ),
  96. MEDIUM = SUM(CASE WHEN ts.RBA > 40.00 AND ts.RBA <= 50.00 THEN 1 ELSE 0 END ),
  97. HIGH = SUM(CASE WHEN ts.RBA > 50.00 AND ts.RBA <= 99.99 THEN 1 ELSE 0 END ),
  98. VERYHIGH = SUM(CASE WHEN ts.RBA > 99.99 THEN 1 ELSE 0 END ),
  99. TOTAL = SUM(1)
  100. INTO ##TEMPRBAREPORTB1
  101. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  102. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  103. AND sCountry=''' + @sCountry + '''
  104. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate+ ' 23:59:59:998'''
  105. END
  106. IF @reportType = 'Summary Report-Monthly'
  107. BEGIN
  108. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTS1') IS NOT NULL
  109. DROP TABLE ##TEMPRBAREPORTS1
  110. SET @SQl = '
  111. SELECT
  112. MONTH = CONVERT(VARCHAR(7),R.approvedDate, 102),
  113. LOW = SUM(CASE WHEN ts.RBA > 0.00 AND ts.RBA <= 40.00 THEN 1 ELSE 0 END ),
  114. MEDIUM = SUM(CASE WHEN ts.RBA > 40.00 AND ts.RBA <= 50.00 THEN 1 ELSE 0 END ),
  115. HIGH = SUM(CASE WHEN ts.RBA > 50.00 AND ts.RBA <= 99.99 THEN 1 ELSE 0 END ),
  116. VERYHIGH = SUM(CASE WHEN ts.RBA > 99.99 THEN 1 ELSE 0 END ),
  117. TOTAL = SUM(1)
  118. INTO ##TEMPRBAREPORTS1
  119. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  120. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  121. AND sCountry=''' + @sCountry + '''
  122. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate+ ' 23:59:59:998'''
  123. END
  124. IF @sAgent IS NOT NULL
  125. SET @SQl = @SQl + ' AND sagent= ' + CAST(@sAgent AS VARCHAR)
  126. IF @sbranch IS NOT NULL
  127. SET @SQl = @SQl + ' AND sbranch= ' + CAST(@sbranch AS VARCHAR)
  128. IF @sNativeCountry IS NOT NULL
  129. SET @SQl = @SQl + ' AND ts.NativeCountry= '''
  130. + CAST(@sNativeCountry AS VARCHAR) + ''''
  131. IF @sIDNumber IS NOT NULL
  132. SET @SQl = @SQl + ' AND ts.idnumber= '''
  133. + CAST(@sIDNumber AS VARCHAR) + ''''
  134. IF @fRBA IS NOT NULL AND @tRBA IS NOT NULL
  135. SET @SQl = @SQl + ' AND ts.RBA BETWEEN '
  136. + CAST(@fRBA AS VARCHAR) + ' AND '
  137. + CAST(@tRBA AS VARCHAR) + ''
  138. IF @rCountry IS NOT NULL
  139. SET @SQl = @SQl + ' AND pcountry= '''
  140. + CAST(@rCountry AS VARCHAR) + ''''
  141. IF @fTXNAmount IS NOT NULL
  142. AND @TTXNAmount IS NOT NULL
  143. SET @SQl = @SQl + ' AND camt BETWEEN '
  144. + CAST(@fTXNAmount AS VARCHAR) + ' AND '
  145. + CAST(@TTXNAmount AS VARCHAR) + ''
  146. IF @nonnativetxn IS NOT NULL
  147. BEGIN
  148. IF @nonnativetxn = 'Y'
  149. BEGIN
  150. SET @SQl = @SQl
  151. + ' AND R.PCOUNTRY=ISNULL(TS.NATIVECOUNTRY,R.PCOUNTRY) '
  152. END
  153. IF @nonnativetxn = 'N'
  154. BEGIN
  155. SET @SQl = @SQl
  156. + ' AND R.PCOUNTRY<>ISNULL(TS.NATIVECOUNTRY,R.PCOUNTRY) '
  157. END
  158. END
  159. IF @reportType = 'Summary Report-Agent'
  160. BEGIN
  161. SET @SQl = @SQl
  162. + 'GROUP BY sagentname ORDER BY sagentname '
  163. END
  164. IF @reportType = 'Summary Report-Branch'
  165. BEGIN
  166. SET @SQl = @SQl
  167. + 'GROUP BY sagentname,sbranchname ORDER BY sagentname,sbranchname'
  168. END
  169. IF @reportType = 'Summary Report-Monthly'
  170. BEGIN
  171. SET @SQl = @SQl
  172. + 'GROUP BY CONVERT(VARCHAR(7),R.approvedDate, 102) ORDER BY CONVERT(VARCHAR(7),R.approvedDate, 102) '
  173. END
  174. PRINT ( @SQL )
  175. EXEC (@SQL)
  176. IF @reportType = 'Summary Report-Agent'
  177. BEGIN
  178. SELECT [SN] = ROW_NUMBER()OVER(order BY sAgentName),
  179. [Sending Agent] = sagentname ,
  180. [LOW_TXN] = LOW,
  181. [LOW_%] = CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 ,
  182. [MEDIUM_TXN] = MEDIUM,
  183. [MEDIUM_%] = CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  184. [HIGH_TXN] = HIGH,
  185. [HIGH_%] = CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  186. [VERY HIGH_TXN] = VERYHIGH ,
  187. [VERY HIGH_%] = CAST(VERYHIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  188. [TOTAL TXN] = TOTAL
  189. FROM ##TEMPRBAREPORTA1
  190. END
  191. IF @reportType = 'Summary Report-Branch'
  192. BEGIN
  193. SELECT
  194. [SN] = ROW_NUMBER()OVER(order BY sAgentName, sbranchname),
  195. [Sending Agent] = sagentname ,
  196. [Sending Branch] = sbranchname ,
  197. [LOW_TXN] = LOW,
  198. [LOW_%] = CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 ,
  199. [MEDIUM_TXN] = MEDIUM,
  200. [MEDIUM_%] = CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  201. [HIGH_TXN] = HIGH,
  202. [HIGH_%] = CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  203. [VERY HIGH_TXN] = VERYHIGH ,
  204. [VERY HIGH_%] = CAST(VERYHIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  205. [TOTAL TXN] = TOTAL
  206. FROM ##TEMPRBAREPORTB1
  207. END
  208. IF @reportType = 'Summary Report-Monthly'
  209. BEGIN
  210. SELECT
  211. [SN] = ROW_NUMBER()OVER(order BY [MONTH]),
  212. [MONTH],
  213. [LOW_TXN] = LOW,
  214. [LOW_%] = CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 ,
  215. [MEDIUM_TXN] = MEDIUM,
  216. [MEDIUM_%] = CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  217. [HIGH_TXN] = HIGH,
  218. [HIGH_%] = CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  219. [VERY HIGH_TXN] = VERYHIGH ,
  220. [VERY HIGH_%] = CAST(VERYHIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100,
  221. [TOTAL TXN] = TOTAL
  222. FROM ##TEMPRBAREPORTS1
  223. END
  224. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  225. SELECT 'From Date ' head ,
  226. CONVERT(VARCHAR(10), @fDate, 101) VALUE
  227. UNION ALL
  228. SELECT 'To Date ' head ,
  229. CONVERT(VARCHAR(10), @tDate, 101) value
  230. UNION ALL
  231. SELECT 'Sending Country ' head ,
  232. @sCountry value
  233. UNION ALL
  234. SELECT 'Sending Agent ' head ,
  235. ( SELECT agentName
  236. FROM agentmaster WITH ( NOLOCK )
  237. WHERE agentId = @sAgent
  238. ) VALUE
  239. UNION ALL
  240. SELECT 'Sending Branch ' head ,
  241. ( SELECT agentName
  242. FROM agentmaster WITH ( NOLOCK )
  243. WHERE agentId = @sBranch
  244. ) VALUE
  245. UNION ALL
  246. SELECT 'Report Type ' head ,
  247. value = @reportType
  248. SELECT 'RBA TXN Report' title
  249. RETURN;
  250. END
  251. IF @reportFor = 'TXN RBA'
  252. BEGIN
  253. IF @reportType = 'Detail Report'
  254. BEGIN
  255. DECLARE @txnRBALink VARCHAR(5000),@cusRBALink VARCHAR(5000)
  256. SET @constString = '<a href="#" onclick="OpenInNewWindow(''''/SwiftSystem/Reports/Reports.aspx?reportName=rbareport&reportFor=TXN RBA&rptType=Detail Report&fromDate=' + @fDate + '&toDate=' + @tDate + '&sCountry=' + @sCountry
  257. SET @txnRBALink = '<a href="#" onclick="OpenInNewWindow(''''/Remit/RiskBaseAnalysis/txnRBACalcDetails.aspx?'
  258. SET @cusRBALink='<a href="#" onclick="OpenInNewWindow(''''/Remit/RiskBaseAnalysis/cusRBACalcDetails.aspx?'
  259. SET @SQl = '
  260. SELECT
  261. [Sending Agent] = sagentname
  262. ,[Sending Branch] = sbranchname
  263. ,[Confirmed Date] = r.approveddate
  264. ,ICN = dbo.decryptdb(CONTROLNO)
  265. ,[Sender Name] = SenderName
  266. ,[Id Number] = ts.IDNumber
  267. ,[Date Of Birth] = ts.DOB
  268. ,[Occupation] = ts.Occupation
  269. ,[Native Country] = ts.NativeCountry
  270. ,[Receiver Name] = ReceiverName
  271. ,[Receiver Country] = pCountry
  272. ,[Payment Type] = paymentMethod
  273. ,[TXN Amount] = cAmt
  274. ,[TXN RBA] = ''' + @txnRBALink + 'tranId='' + CAST(r.id AS VARCHAR) + ''&customerId=''+ CAST(ts.customerId AS VARCHAR)+''&dt=''+ LEFT(CONVERT(VARCHAR,r.createdDate,102), 7) +'''''')">'' + CONVERT(VARCHAR, ts.RBA, 2) + ''</a>''
  275. ,[Customer RBA] = ''' + @cusRBALink + 'tranId='' + CAST(r.id AS VARCHAR) + ''&customerId=''+ CAST(ts.customerId AS VARCHAR)+''&dt=''+ LEFT(CONVERT(VARCHAR,r.createdDate,102), 7) +'''''')">'' + CONVERT(VARCHAR, c.RBA, 2) + ''</a>''
  276. ,txnRBA = ts.RBA
  277. ,customerRBA = c.RBA
  278. FROM remittran r WITH (NOLOCK)
  279. INNER JOIN transenders ts WITH (NOLOCK) ON r.ID = ts.TRANID
  280. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId = c.CustomerId
  281. AND sCountry = ''' + @sCountry + '''
  282. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate
  283. + ' 23:59:59:998'''
  284. END
  285. IF @reportType = 'Summary Report-Agent'
  286. BEGIN
  287. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTA') IS NOT NULL
  288. DROP TABLE ##TEMPRBAREPORTA
  289. SET @SQl = '
  290. SELECT
  291. sagentname
  292. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@LOWrFrom AS VARCHAR)
  293. + ' AND ' + CAST(@LOWrTo AS VARCHAR)
  294. + ' THEN 1 ELSE 0 END ) AS LOW
  295. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@MEDIUMrFrom AS VARCHAR)
  296. + ' AND ' + CAST(@MEDIUMrTo AS VARCHAR)
  297. + ' THEN 1 ELSE 0 END ) AS MEDIUM
  298. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@HIGHrFrom AS VARCHAR)
  299. + ' AND ' + CAST(@HIGHrTo AS VARCHAR)
  300. + ' THEN 1 ELSE 0 END ) AS HIGH
  301. ,SUM(1) TOTAL INTO ##TEMPRBAREPORTA
  302. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  303. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  304. AND sCountry=''' + @sCountry + '''
  305. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate
  306. + ' 23:59:59:998'''
  307. END
  308. IF @reportType = 'Summary Report-Branch'
  309. BEGIN
  310. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTB') IS NOT NULL
  311. DROP TABLE ##TEMPRBAREPORTB
  312. SET @SQl = 'SELECT sagentname,sbranchname
  313. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@LOWrFrom AS VARCHAR)
  314. + ' AND ' + CAST(@LOWrTo AS VARCHAR)
  315. + ' THEN 1 ELSE 0 END ) AS LOW
  316. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@MEDIUMrFrom AS VARCHAR)
  317. + ' AND ' + CAST(@MEDIUMrTo AS VARCHAR)
  318. + ' THEN 1 ELSE 0 END ) AS MEDIUM
  319. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@HIGHrFrom AS VARCHAR)
  320. + ' AND ' + CAST(@HIGHrTo AS VARCHAR)
  321. + ' THEN 1 ELSE 0 END ) AS HIGH
  322. ,SUM(1) TOTAL INTO ##TEMPRBAREPORTB
  323. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  324. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  325. AND sCountry=''' + @sCountry + '''
  326. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate
  327. + ' 23:59:59:998'''
  328. END
  329. IF @reportType = 'Summary Report-Monthly'
  330. BEGIN
  331. IF OBJECT_ID(N'tempdb..##TEMPRBAREPORTS') IS NOT NULL
  332. DROP TABLE ##TEMPRBAREPORTS
  333. SET @SQl = 'SELECT CONVERT(VARCHAR(7),R.approvedDate, 102) MONTH
  334. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@LOWrFrom AS VARCHAR)
  335. + ' AND ' + CAST(@LOWrTo AS VARCHAR)
  336. + ' THEN 1 ELSE 0 END ) AS LOW
  337. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@MEDIUMrFrom AS VARCHAR)
  338. + ' AND ' + CAST(@MEDIUMrTo AS VARCHAR)
  339. + ' THEN 1 ELSE 0 END ) AS MEDIUM
  340. ,SUM(CASE WHEN ts.RBA BETWEEN ' + CAST(@HIGHrFrom AS VARCHAR)
  341. + ' AND ' + CAST(@HIGHrTo AS VARCHAR)
  342. + ' THEN 1 ELSE 0 END ) AS HIGH
  343. ,SUM(1) TOTAL INTO ##TEMPRBAREPORTS
  344. FROM remittran r WITH (NOLOCK) INNER JOIN transenders ts WITH (NOLOCK) ON r.ID=ts.TRANID
  345. INNER JOIN customers c WITH (NOLOCK) ON ts.CustomerId=c.CustomerId
  346. AND sCountry=''' + @sCountry + '''
  347. AND r.approvedDate BETWEEN ''' + @fDate + ''' AND ''' + @tDate
  348. + ' 23:59:59:998'''
  349. END
  350. IF @sAgent IS NOT NULL
  351. SET @SQl = @SQl + ' AND sagent= ' + CAST(@sAgent AS VARCHAR)
  352. IF @sbranch IS NOT NULL
  353. SET @SQl = @SQl + ' AND sbranch= ' + CAST(@sbranch AS VARCHAR)
  354. IF @sNativeCountry IS NOT NULL
  355. SET @SQl = @SQl + ' AND ts.NativeCountry= '''
  356. + CAST(@sNativeCountry AS VARCHAR) + ''''
  357. IF @sIDNumber IS NOT NULL
  358. SET @SQl = @SQl + ' AND ts.idnumber= '''
  359. + CAST(@sIDNumber AS VARCHAR) + ''''
  360. IF @fRBA IS NOT NULL
  361. AND @tRBA IS NOT NULL
  362. SET @SQl = @SQl + ' AND ts.RBA BETWEEN '
  363. + CAST(@fRBA AS VARCHAR) + ' AND '
  364. + CAST(@tRBA AS VARCHAR) + ''
  365. IF @rCountry IS NOT NULL
  366. SET @SQl = @SQl + ' AND pcountry= '''
  367. + CAST(@rCountry AS VARCHAR) + ''''
  368. IF @fTXNAmount IS NOT NULL
  369. AND @TTXNAmount IS NOT NULL
  370. SET @SQl = @SQl + ' AND camt BETWEEN '
  371. + CAST(@fTXNAmount AS VARCHAR) + ' AND '
  372. + CAST(@TTXNAmount AS VARCHAR) + ''
  373. IF @nonnativetxn IS NOT NULL
  374. BEGIN
  375. IF @nonnativetxn = 'Y'
  376. BEGIN
  377. SET @SQl = @SQl
  378. + ' AND R.PCOUNTRY=ISNULL(TS.NATIVECOUNTRY,R.PCOUNTRY) '
  379. END
  380. IF @nonnativetxn = 'N'
  381. BEGIN
  382. SET @SQl = @SQl
  383. + ' AND R.PCOUNTRY<>ISNULL(TS.NATIVECOUNTRY,R.PCOUNTRY) '
  384. END
  385. END
  386. IF @reportType = 'Summary Report-Agent'
  387. BEGIN
  388. SET @SQl = @SQl
  389. + 'GROUP BY sagentname ORDER BY sagentname '
  390. END
  391. IF @reportType = 'Summary Report-Branch'
  392. BEGIN
  393. SET @SQl = @SQl
  394. + 'GROUP BY sagentname,sbranchname ORDER BY sagentname,sbranchname'
  395. END
  396. IF @reportType = 'Summary Report-Monthly'
  397. BEGIN
  398. SET @SQl = @SQl
  399. + 'GROUP BY CONVERT(VARCHAR(7),R.approvedDate, 102) ORDER BY CONVERT(VARCHAR(7),R.approvedDate, 102) '
  400. END
  401. IF @reportType = 'Detail Report'
  402. BEGIN
  403. DECLARE @SQL1 VARCHAR(MAX)
  404. SET @SQL1='
  405. SELECT COUNT(''X'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM ('+ @SQL +') AS tmp;
  406. SELECT * FROM
  407. (
  408. SELECT ROW_NUMBER() OVER (ORDER BY txnRBA DESC) AS [S.N.],
  409. [Sending Agent]
  410. ,[Sending Branch]
  411. ,[Confirmed Date]
  412. ,ICN
  413. ,[Sender Name]
  414. ,[Id Number]
  415. ,[Date Of Birth]
  416. ,[Occupation]
  417. ,[Native Country]
  418. ,[Receiver Name]
  419. ,[Receiver Country]
  420. ,[Payment Type]
  421. ,[TXN Amount]
  422. ,[TXN RBA]
  423. ,[Customer RBA]
  424. FROM
  425. (
  426. '+ @SQL +'
  427. ) AS aa
  428. ) AS tmp WHERE 1 = 1 AND tmp.[S.N.] BETWEEN (('+@pageNumber+' - 1) '+@pageSize+' + 1) AND '+@pageNumber+' '+@pageSize+''
  429. PRINT (@SQL1)
  430. EXEC (@SQL1)
  431. END
  432. ELSE
  433. BEGIN
  434. PRINT ( @SQL )
  435. EXEC (@SQL)
  436. END
  437. IF @reportType = 'Summary Report-Agent'
  438. BEGIN
  439. SELECT [Sending Agent] = sagentname ,
  440. LOW ,
  441. CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 [LOW %] ,
  442. MEDIUM ,
  443. CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100 [MEDIUM %] ,
  444. HIGH ,
  445. CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100 [HIGH %] ,
  446. TOTAL
  447. FROM ##TEMPRBAREPORTA
  448. END
  449. IF @reportType = 'Summary Report-Branch'
  450. BEGIN
  451. SELECT [Sending Agent] = sagentname ,
  452. [Sending Branch] = sbranchname ,
  453. LOW ,
  454. CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 [LOW %] ,
  455. MEDIUM ,
  456. CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100 [MEDIUM %] ,
  457. HIGH ,
  458. CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100 [HIGH %] ,
  459. TOTAL
  460. FROM ##TEMPRBAREPORTB
  461. END
  462. IF @reportType = 'Summary Report-Monthly'
  463. BEGIN
  464. SELECT MONTH ,
  465. LOW ,
  466. CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100 [LOW %] ,
  467. MEDIUM ,
  468. CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100 [MEDIUM %] ,
  469. HIGH ,
  470. CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100 [HIGH %] ,
  471. TOTAL
  472. FROM ##TEMPRBAREPORTS
  473. END
  474. END
  475. IF @reportFor NOT IN ('TXN RBA','TXN RBA-V2')
  476. BEGIN
  477. DECLARE @PERIODICRBA VARCHAR(20)
  478. IF @reportfor = 'TXN Average RBA'
  479. SET @PERIODICRBA = 'TXNRBA'
  480. IF @reportfor = 'TXN Periodic RBA'
  481. SET @PERIODICRBA = 'TXNRBA'
  482. IF @reportfor = 'Final RBA'
  483. SET @PERIODICRBA = 'FINALRBA'
  484. IF @reportType = 'Detail Report'
  485. BEGIN
  486. SET @constString = '<a href="#" onclick="OpenInNewWindow(''''/SwiftSystem/Reports/Reports.aspx?reportName=rbareport&reportFor=TXN RBA&rptType=Detail Report&fromDate=' + @fDate + '&toDate=' + @tDate + '&sCountry=' + @sCountry
  487. SET @txnRBALink = '<a href="#" onclick="OpenInNewWindow(''''/Remit/RiskBaseAnalysis/txnRBACalcDetails.aspx?'
  488. SET @cusRBALink='<a href="#" onclick="OpenInNewWindow(''''/Remit/RiskBaseAnalysis/cusRBACalcDetails.aspx?'
  489. SET @SQl = '
  490. SELECT
  491. [Date] = DT
  492. ,[Customer Name] = fullName
  493. ,[Native Country] = countryName
  494. ,[Id Type] = X.detailtitle
  495. ,[Id Number] = idNumber
  496. ,[Date of Birth] = CONVERT(DATE,DOB ,101)
  497. ,[Occupation] = O.DETAILTITLE
  498. ,[Txn Amount] = txnamount
  499. ,[Txn Count] = ''' + @constString + '&sIdNumber='' + c.idNumber + '''''')">'' + CAST(txncount AS VARCHAR) + ''</a>''
  500. ,[Outlets used] = outletsused
  501. ,[Beneficiary Country Count] = bnfcountrycount
  502. ,[Beneficiary Count] = bnfcount
  503. ,[Txn RBA] = txnrba
  504. ,[Customer RBA] = p.rba
  505. ,[Final RBA] = ''' + @cusRBALink + 'customerId=''+ CAST(C.customerId AS VARCHAR)+''&dt=''+ P.dt +'''''')">'' + CONVERT(VARCHAR, finalrba, 2) + ''</a>''
  506. ,finalRBA = finalrba
  507. FROM PERIODICRBA P WITH (NOLOCK)
  508. INNER JOIN CUSTOMERS C WITH (NOLOCK) ON C.CUSTOMERID = P.CUSTOMERID
  509. INNER JOIN (
  510. SELECT valueid,detailtitle
  511. FROM STATICDATAvalue WITH(NOLOCK)
  512. WHERE typeid = 1300 and isactive = ''Y''
  513. ) X ON C.IDTYPE = X.VALUEID
  514. INNER JOIN OCCUPATIONMASTER O WITH (NOLOCK) ON ISNULL(C.OCCUPATION,1) = O.OCCUPATIONID
  515. LEFT JOIN COUNTRYMASTER CM WITH (NOLOCK) ON C.NATIVECOUNTRY=CM.COUNTRYID
  516. WHERE REPLACE(DT,''.'',''-'') + ''-01'' BETWEEN ''' + @fDate
  517. + ''' AND ''' + @tDate + ' 23:59:59:998'''
  518. END
  519. IF @reportType = 'Summary Report-Monthly'
  520. BEGIN
  521. IF OBJECT_ID(N'tempdb..##TEMPRBAFINAL') IS NOT NULL
  522. DROP TABLE ##TEMPRBAFINAL
  523. SET @SQl = '
  524. SELECT DT
  525. ,SUM(CASE WHEN ' + @PERIODICRBA + ' BETWEEN '
  526. + CAST(@LOWrFrom AS VARCHAR) + ' AND '
  527. + CAST(@LOWrTo AS VARCHAR)
  528. + ' THEN 1 ELSE 0 END ) AS LOW
  529. ,SUM(CASE WHEN ' + @PERIODICRBA + ' BETWEEN '
  530. + CAST(@MEDIUMrFrom AS VARCHAR) + ' AND '
  531. + CAST(@MEDIUMrTo AS VARCHAR)
  532. + ' THEN 1 ELSE 0 END ) AS MEDIUM
  533. ,SUM(CASE WHEN ' + @PERIODICRBA + ' BETWEEN '
  534. + CAST(@HIGHrFrom AS VARCHAR) + ' AND '
  535. + CAST(@HIGHrTo AS VARCHAR)
  536. + ' THEN 1 ELSE 0 END ) AS HIGH
  537. ,SUM(1) TOTAL INTO ##TEMPRBAFINAL
  538. FROM PERIODICRBA P WITH (NOLOCK) INNER JOIN CUSTOMERS C WITH (NOLOCK) ON C.CUSTOMERID=P.CUSTOMERID
  539. WHERE REPLACE(DT,''.'',''-'')+''-01'' BETWEEN ''' + @fDate
  540. + ''' AND ''' + @tDate + ' 23:59:59:998'''
  541. END
  542. IF @sNativeCountry IS NOT NULL
  543. SET @SQl = @SQl + ' AND c.NativeCountry= '''
  544. + CAST(@nativecountryid AS VARCHAR) + ''''
  545. IF @sIDNumber IS NOT NULL
  546. SET @SQl = @SQl + ' AND p.customerid= '''
  547. + CAST(@customerid AS VARCHAR) + ''''
  548. IF @fRBA IS NOT NULL
  549. AND @tRBA IS NOT NULL
  550. SET @SQl = @SQl + ' AND ' + @PERIODICRBA + ' BETWEEN '
  551. + CAST(@fRBA AS VARCHAR) + ' AND '
  552. + CAST(@tRBA AS VARCHAR) + ''
  553. IF @fTXNAmount IS NOT NULL
  554. AND @TTXNAmount IS NOT NULL
  555. SET @SQl = @SQl + ' AND TXNAMOUNT BETWEEN '
  556. + CAST(@fTXNAmount AS VARCHAR) + ' AND '
  557. + CAST(@TTXNAmount AS VARCHAR) + ''
  558. IF @fTXNCount IS NOT NULL
  559. AND @TTXNCount IS NOT NULL
  560. SET @SQl = @SQl + ' AND TXNCOUNT BETWEEN '
  561. + CAST(@fTXNCount AS VARCHAR) + ' AND '
  562. + CAST(@TTXNCount AS VARCHAR) + ''
  563. IF @fBnfCountryCount IS NOT NULL
  564. AND @TBnfCountryCount IS NOT NULL
  565. SET @SQl = @SQl + ' AND BNFCOUNTRYCOUNT BETWEEN '
  566. + CAST(@fBnfCountryCount AS VARCHAR) + ' AND '
  567. + CAST(@TBnfCountryCount AS VARCHAR) + ''
  568. IF @fBnfCount IS NOT NULL
  569. AND @tBnfCount IS NOT NULL
  570. SET @SQl = @SQl + ' AND BNFCOUNT BETWEEN '
  571. + CAST(@fBnfCount AS VARCHAR) + ' AND '
  572. + CAST(@tBnfCount AS VARCHAR) + ''
  573. IF @fOutletCount IS NOT NULL
  574. AND @tOutletCount IS NOT NULL
  575. SET @SQl = @SQl + ' AND OUTLETSUSED BETWEEN '
  576. + CAST(@fOutletCount AS VARCHAR) + ' AND '
  577. + CAST(@tOutletCount AS VARCHAR) + ''
  578. IF @nonnativetxn IS NOT NULL
  579. BEGIN
  580. IF @nonnativetxn = 'Y'
  581. BEGIN
  582. SET @SQl = @SQl
  583. + ' AND ISNULL(nonnativetxn,''N'')=''Y'' '
  584. END
  585. IF @nonnativetxn = 'N'
  586. BEGIN
  587. SET @SQl = @SQl
  588. + ' AND ISNULL(nonnativetxn,''N'')=''N'' '
  589. END
  590. END
  591. IF @reportType = 'Summary Report-Monthly'
  592. BEGIN
  593. SET @SQL = @SQL + ' GROUP BY DT ORDER BY DT'
  594. END
  595. IF @reportType = 'Detail Report'
  596. BEGIN
  597. SET @SQL1='
  598. SELECT COUNT(''X'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM ('+ @SQL +') AS tmp;
  599. SELECT * FROM
  600. (
  601. SELECT ROW_NUMBER() OVER (ORDER BY [finalRBA] DESC) AS [S.N.],
  602. [Date]
  603. ,[Customer Name]
  604. ,[Native Country]
  605. ,[Id Type]
  606. ,[Id Number]
  607. ,[Date of Birth]
  608. ,[Occupation]
  609. ,[Txn Amount]
  610. ,[Txn Count]
  611. ,[Outlets used]
  612. ,[Beneficiary Country Count]
  613. ,[Beneficiary Count]
  614. ,[Txn RBA]
  615. ,[Customer RBA]
  616. ,[Final RBA]
  617. FROM
  618. (
  619. '+ @SQL +'
  620. ) AS aa
  621. ) AS tmp WHERE 1 = 1 AND tmp.[S.N.] BETWEEN (('+@pageNumber+' - 1) '+@pageSize+' + 1) AND '+@pageNumber+' '+@pageSize+''
  622. PRINT (@SQL1)
  623. EXEC (@SQL1)
  624. END
  625. ELSE
  626. BEGIN
  627. PRINT ( @SQL )
  628. EXEC (@SQL)
  629. END
  630. IF @reportType = 'Summary Report-Monthly'
  631. BEGIN
  632. SET @constString = '<a href="#" onclick="OpenInNewWindow(''/SwiftSystem/Reports/Reports.aspx?reportName=rbaReport&rptType=Detail Report&reportFor=' + @reportFor + '&sCountry=' + @sCountry
  633. SELECT
  634. [Date] = DT
  635. ,LOW = @constString + '&fromDate=' + REPLACE(DT, '.', '-') + '-01' + '&toDate=' + CONVERT(VARCHAR,DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, CAST(REPLACE(DT, '.', '-') + '-01' AS DATETIME)) + 1, 0)),120) + '&rbaRangeFrom=0&rbaRangeTo=40'')">' + CAST(LOW AS VARCHAR) + '</a>'
  636. ,[LOW %] = CAST(LOW AS MONEY) / CAST(TOTAL AS MONEY) * 100
  637. ,MEDIUM = @constString + '&fromDate=' + REPLACE(DT, '.', '-') + '-01' + '&toDate=' + CONVERT(VARCHAR,DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, CAST(REPLACE(DT, '.', '-') + '-01' AS DATETIME)) + 1, 0)),120) + '&rbaRangeFrom=40&rbaRangeTo=50'')">' + CAST(MEDIUM AS VARCHAR) + '</a>'
  638. ,[MEDIUM %] = CAST(MEDIUM AS MONEY) / CAST(TOTAL AS MONEY) * 100
  639. ,HIGH = @constString + '&fromDate=' + REPLACE(DT, '.', '-') + '-01' + '&toDate=' + CONVERT(VARCHAR,DATEADD(s, -1, DATEADD(mm, DATEDIFF(m, 0, CAST(REPLACE(DT, '.', '-') + '-01' AS DATETIME)) + 1, 0)),120) + '&rbaRangeFrom=50&rbaRangeTo=100'')">' + CAST(HIGH AS VARCHAR) + '</a>'
  640. ,[HIGH %] = CAST(HIGH AS MONEY) / CAST(TOTAL AS MONEY) * 100
  641. ,TOTAL
  642. FROM ##TEMPRBAFINAL
  643. END
  644. END
  645. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  646. SELECT 'From Date ' head ,
  647. CONVERT(VARCHAR(10), @fDate, 101) VALUE
  648. UNION ALL
  649. SELECT 'To Date ' head ,
  650. CONVERT(VARCHAR(10), @tDate, 101) value
  651. UNION ALL
  652. SELECT 'Report For ' head,
  653. @reportFor value
  654. UNION ALL
  655. SELECT 'Sending Country ' head ,
  656. @sCountry value
  657. UNION ALL
  658. SELECT 'Sending Agent ' head ,
  659. ( SELECT agentName
  660. FROM agentmaster WITH ( NOLOCK )
  661. WHERE agentId = @sAgent
  662. ) VALUE
  663. UNION ALL
  664. SELECT 'Sending Branch ' head ,
  665. ( SELECT agentName
  666. FROM agentmaster WITH ( NOLOCK )
  667. WHERE agentId = @sBranch
  668. ) VALUE
  669. UNION ALL
  670. SELECT 'Report Type ' head ,
  671. value = @reportType
  672. SELECT 'Risk Based Assessment Report' title
  673. GO