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.

450 lines
29 KiB

  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_TRANSACTION_REPORT] Script Date: 3/7/2024 6:09:36 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROC [dbo].[PROC_TRANSACTION_REPORT] @flag VARCHAR(10) = NULL
  9. ,@user VARCHAR(30) = NULL
  10. ,@pCountry VARCHAR(100) = NULL
  11. ,@pAgent VARCHAR(40) = NULL
  12. ,@pBranch VARCHAR(40) = NULL
  13. ,@sBranch VARCHAR(40) = NULL
  14. ,@depositType VARCHAR(40) = NULL
  15. ,@searchBy VARCHAR(40) = NULL
  16. ,@searchByValue VARCHAR(40) = NULL
  17. ,@orderBy VARCHAR(40) = NULL
  18. ,@status VARCHAR(40) = NULL
  19. ,@paymentType VARCHAR(40) = NULL
  20. ,@dateField VARCHAR(50) = NULL
  21. ,@dateFrom VARCHAR(20) = NULL
  22. ,@dateTo VARCHAR(20) = NULL
  23. ,@transType VARCHAR(40) = NULL
  24. ,@displayTranNo CHAR(1) = NULL
  25. ,@pageNumber INT = NULL
  26. ,@pageSize INT = NULL
  27. ,@rptType CHAR(1) = NULL
  28. ,@transactionFrom CHAR(1) = NULL
  29. ,@postCode VARCHAR(200) = NULL
  30. ,@promoCode VARCHAR(100) = NULL
  31. AS
  32. --------------------------------------
  33. -- #509 - Add transactionType column
  34. -- #19331 - Change for transaction report
  35. -- selected tranType in @rptType = 's'
  36. -- #25999 added postcode filter in @rptType = 's'
  37. --------------------------------------
  38. SET NOCOUNT ON;
  39. SET CONCAT_NULL_YIELDS_NULL OFF;
  40. BEGIN
  41. DECLARE @FilterList TABLE (
  42. head VARCHAR(50)
  43. ,value VARCHAR(5000)
  44. )
  45. DECLARE @SQL VARCHAR(MAX)
  46. ,@usertype VARCHAR(5)
  47. ,@depositTypeText VARCHAR(50)
  48. ,@pAgentFilter VARCHAR(100)
  49. ,@depositTypeFilter VARCHAR(100)
  50. IF @sBranch IS NOT NULL
  51. INSERT INTO @FilterList
  52. SELECT 'Branch Name'
  53. ,agentName
  54. FROM agentMaster WITH (NOLOCK)
  55. WHERE agentId = @sBranch
  56. IF @searchByValue IS NOT NULL
  57. AND @searchBy IS NOT NULL
  58. BEGIN
  59. INSERT INTO @FilterList
  60. SELECT CASE @searchBy
  61. WHEN 'cid'
  62. THEN 'Customer ID'
  63. WHEN 'sName'
  64. THEN 'Sender Name'
  65. WHEN 'rName'
  66. THEN 'Receiver Name'
  67. WHEN 'icn'
  68. THEN 'Control No'
  69. END
  70. ,@searchByValue
  71. END
  72. SET @paymentType = CASE
  73. WHEN @paymentType = '1'
  74. THEN 'CASH PAYMENT'
  75. WHEN @paymentType = '2'
  76. THEN 'BANK DEPOSIT'
  77. WHEN @paymentType IS NULL
  78. THEN ''
  79. ELSE @paymentType
  80. END
  81. --ISNULL(@paymentType,'')
  82. --SELECT @depositTypeText = detailTitle FROM staticDataValue WHERE typeID = '8109' and detailDesc = @depositType
  83. --SET @depositType = @depositTypeText
  84. SELECT @usertype = usertype
  85. FROM applicationusers
  86. WHERE username = @user
  87. IF @rptType = 's'
  88. BEGIN
  89. DECLARE @sql1 VARCHAR(max)
  90. ,@sql2 VARCHAR(max)
  91. DECLARE @TotalCount INT
  92. SET @sql1 = '
  93. SELECT
  94. [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') +
  95. '''=''A'' THEN ''<a href="../SearchTxnReport/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>''
  96. ELSE ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>'' END
  97. ,[Serial No] = RT.id
  98. ,[TRUST_PAYMENT_ID] = RT.transactionreference
  99. ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile''
  100. WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online''
  101. WHEN RT.tranType = ''I'' THEN ''CR Panel''
  102. ELSE RT.tranType END
  103. ,[DATE_SEND] =CONVERT(VARCHAR,RT.createdDate,111)
  104. ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111)
  105. --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID)
  106. ,[MEMBERSHIPID] = ''<a href="/Remit/Administration/CustomerSetup/CustomerDetails.aspx?customerId=''+ CAST(CM.CUSTOMERID AS VARCHAR) + ''">'' + ISNULL(TS.membershipId, CM.MEMBERSHIPID) +''</a>''
  107. -- ''</a>''
  108. ,[PAYOUT_PARTNER] = RT.pAgentName
  109. ,[SENDER_NAME] = senderName
  110. ,[SENDER_MOBILE] = ''"''+ TS.MOBILE
  111. ,[RECEIVER_NAME]= receiverName
  112. ,[POST_CODE] = TS.zipCode
  113. ,[EX_RATE] = Cast(Round(customerRate,2,1) as decimal(18,2))
  114. ,[PAYMENT_TYPE] = paymentMethod
  115. ,[DEPOSIT_TYPE] = RT.depositType
  116. ,[COLL_AMT] = Cast(Round(cAmt,2,1) as decimal(18,2))
  117. ,[COLL_CURR] = collCurr
  118. ,[REWARD_P] = RT.rewardPoints
  119. ,[RATE_MARGIN] = RT.customerPremium
  120. ,[TRANSFER_AMT] = Cast(Round(tAmt,2,1) as decimal(18,2))
  121. ,[PAYOUT_CURR] = payoutCurr
  122. ,[SEND_CURR] = collCurr
  123. ,[SC_FEE] = serviceCharge
  124. ,[CHARGE_CURR] = collCurr
  125. ,[RECEIVED_AMT] = Cast(Round(pAmt,2,1) as decimal(18,2))
  126. ,[RECEIVED_CURR]= payoutCurr
  127. ,[APPROVED_BY] = rt.approvedBy
  128. ,TRANSTATUS = transtatus
  129. ,PAYSTATUS = CASE
  130. WHEN RT.PAYSTATUS = ''Paid'' THEN ''PAID''
  131. WHEN RT.PAYSTATUS = ''Post'' THEN ''POST''
  132. WHEN RT.PAYSTATUS = ''Cancel'' THEN ''CANCEL''
  133. ELSE RT.PAYSTATUS
  134. END
  135. ,[CREATED_DATE] = rt.createddate
  136. ,RT.sBranch
  137. ,[USD_AMT] = CASE
  138. WHEN pDateCostRate IS NOT NULL AND pDateCostRate <> 0 THEN Cast(Round(pAmt / pDateCostRate,2,1) as decimal(18,2))
  139. ELSE 0
  140. END
  141. ,[COST_RATE]=pDateCostRate
  142. ,[PROMO_TYPE] = RT.rewardType
  143. FROM REMITTRANTEMP RT(NOLOCK)
  144. LEFT JOIN TRANSENDERSTEMP TS (NOLOCK) ON TS.TRANID = RT.ID
  145. LEFT JOIN CUSTOMERMASTER CM (NOLOCK) ON CM.CUSTOMERID = TS.CUSTOMERID
  146. WHERE 1=1 AND RT.PAYSTATUS<>''REJECT'''
  147. SET @sql2 = '
  148. SELECT
  149. [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') +
  150. ''' = ''A'' THEN ''<a href="../SearchTxnReport/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>''
  151. ELSE ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>'' END
  152. ,[Serial No] = RT.holdtranid
  153. ,[TRUST_PAYMENT_ID] = RT.transactionreference
  154. ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile''
  155. WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online''
  156. WHEN RT.tranType = ''I'' THEN ''CR Panel''
  157. ELSE RT.tranType END
  158. ,[DATE_SEND] =CONVERT(VARCHAR,RT.approvedDate,111)
  159. ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111)
  160. --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID)
  161. ,[MEMBERSHIPID] = ''<a href="/Remit/Administration/CustomerSetup/CustomerDetails.aspx?customerId='' +CAST(CM.CUSTOMERID AS VARCHAR) + ''">'' +ISNULL(TS.membershipId, CM.MEMBERSHIPID) + ''</a>''
  162. -- +CAST(CM.CUSTOMERID AS VARCHAR) +
  163. -- ''>''
  164. -- + ISNULL(TS.membershipId, CM.MEMBERSHIPID) +
  165. -- ''</a>''
  166. ,[PAYOUT_PARTNER] = RT.pAgentName
  167. ,[SENDER_NAME] = senderName
  168. ,[SENDER_MOBILE] = ''"''+ TS.MOBILE
  169. ,[RECEIVER_NAME]= receiverName
  170. ,[POST_CODE] = TS.zipCode
  171. ,[EX_RATE] = Cast(Round(customerRate,2,1) as decimal(18,2))
  172. ,[PAYMENT_TYPE] = paymentMethod
  173. ,[DEPOSIT_TYPE] = RT.depositType
  174. ,[COLL_AMT] = Cast(Round(cAmt,2,1) as decimal(18,2))
  175. ,[COLL_CURR] = collCurr
  176. ,[REWARD_P] = RT.rewardPoints
  177. ,[RATE_MARGIN] = RT.customerPremium
  178. ,[TRANSFER_AMT] = Cast(Round(tAmt,2,1) as decimal(18,2))
  179. ,[PAYOUT_CURR] = payoutCurr
  180. ,[SEND_CURR] = collCurr
  181. ,[SC_FEE] = serviceCharge
  182. ,[CHARGE_CURR] = collCurr
  183. ,[RECEIVED_AMT] = Cast(Round(pAmt,2,1) as decimal(18,2))
  184. ,[RECEIVED_CURR]= payoutCurr
  185. ,[APPROVED_BY] = rt.approvedBy
  186. ,TRANSTATUS = transtatus
  187. ,PAYSTATUS = CASE
  188. WHEN RT.PAYSTATUS = ''Paid'' THEN ''PAID''
  189. WHEN RT.PAYSTATUS = ''Post'' THEN ''POST''
  190. WHEN RT.PAYSTATUS = ''Cancel'' THEN ''CANCEL''
  191. ELSE RT.PAYSTATUS
  192. END
  193. ,[CREATED_DATE] = rt.createddate
  194. ,RT.sBranch
  195. ,[USD_AMT] = CASE
  196. WHEN pDateCostRate IS NOT NULL AND pDateCostRate <> 0 THEN Cast(Round(pAmt / pDateCostRate,2,1) as decimal(18,2))
  197. ELSE 0
  198. END
  199. ,[COST_RATE]=pDateCostRate
  200. ,[PROMO_TYPE] = RT.rewardType
  201. FROM REMITTRAN RT(NOLOCK)
  202. LEFT JOIN TRANSENDERS TS (NOLOCK) ON TS.TRANID = RT.ID
  203. LEFT JOIN CUSTOMERMASTER CM (NOLOCK) ON CM.CUSTOMERID = TS.CUSTOMERID
  204. where 1=1 '
  205. IF isnull(@dateFrom, '') <> ''
  206. AND isnull(@dateTo, '') <> ''
  207. BEGIN
  208. SET @sql1 = @sql1 + ' and rt.createddate BETWEEN ''' + @dateFrom + ''' AND ''' + @dateTo + ' 23:59:59'''
  209. SET @sql2 = @sql2 + ' and rt.createddate BETWEEN ''' + @dateFrom + ''' AND ''' + @dateTo + ' 23:59:59'''
  210. END
  211. IF isnull(@transactionFrom, '') <> ''
  212. BEGIN
  213. IF (@transactionFrom = 'I')
  214. BEGIN
  215. SET @sql1 = @sql1 + ' and tranType = ''' + @transactionFrom + ''''
  216. SET @sql2 = @sql2 + ' and tranType = ''' + @transactionFrom + ''''
  217. END
  218. ELSE
  219. BEGIN
  220. SET @sql1 = @sql1 + ' and isOnlineTxn = ''' + @transactionFrom + ''''
  221. SET @sql2 = @sql2 + ' and isOnlineTxn = ''' + @transactionFrom + ''''
  222. END
  223. END
  224. IF isnull(@paymentType, '') <> ''
  225. BEGIN
  226. SET @sql1 = @sql1 + ' and paymentMethod = ''' + @paymentType + ''''
  227. SET @sql2 = @sql2 + ' and paymentMethod =''' + @paymentType + ''''
  228. END
  229. IF isnull(@depositType, '') <> ''
  230. BEGIN
  231. SET @sql1 = @sql1 + ' and depositType =''' + @depositType + ''''
  232. SET @sql2 = @sql2 + ' and depositType = ''' + @depositType + ''''
  233. END
  234. IF isnull(@pCountry, '') <> ''
  235. BEGIN
  236. SET @sql1 = @sql1 + ' and pCountry = ''' + @pCountry + ''''
  237. SET @sql2 = @sql2 + ' and pCountry = ''' + @pCountry + ''''
  238. END
  239. IF isnull(@status, '') <> ''
  240. BEGIN
  241. SET @sql1 = @sql1 + ' and payStatus = ''' + @status + ''''
  242. SET @sql2 = @sql2 + ' and payStatus = ''' + @status + ''''
  243. END
  244. IF isnull(@transType, '') <> ''
  245. BEGIN
  246. SET @sql1 = @sql1 + ' and transtatus = ''' + @transType + ''''
  247. SET @sql2 = @sql2 + ' and transtatus = ''' + @transType + ''''
  248. END
  249. IF isnull(@sBranch, '') <> ''
  250. BEGIN
  251. SET @sql1 = @sql1 + ' and sBranch = ''' + @sBranch + ''''
  252. SET @sql2 = @sql2 + ' and sBranch = ''' + @sBranch + ''''
  253. END
  254. IF isnull(@pAgent, '') <> ''
  255. BEGIN
  256. SET @sql1 = @sql1 + ' and pAgent = ''' + @pAgent + ''''
  257. SET @sql2 = @sql2 + ' and pAgent = ''' + @pAgent + ''''
  258. END
  259. IF ISNULL(@postCode, '') <> ''
  260. BEGIN
  261. SET @sql1 = @sql1 + ' AND LEFT(TS.zipCode, 3) = LEFT(''' + @postCode + ''', 3)'
  262. SET @sql2 = @sql2 + ' AND LEFT(TS.zipCode, 3) = LEFT(''' + @postCode + ''', 3)'
  263. END
  264. IF isnull(@promoCode, '') <> ''
  265. BEGIN
  266. SET @sql1 = @sql1 + ' and rewardType = ''' + @promoCode + ''''
  267. SET @sql2 = @sql2 + ' and rewardType = ''' + @promoCode + ''''
  268. END
  269. SET @SQL =
  270. '
  271. SELECT
  272. [IME_NO],
  273. [Serial No],
  274. [TRUST_PAYMENT_ID],
  275. [TXN_CHANNEL],
  276. [DATE_SEND],
  277. [DATE_PAID],
  278. [MEMBERSHIPID],
  279. [PAYOUT_PARTNER],
  280. [SENDER_NAME],
  281. [SENDER_MOBILE],
  282. [RECEIVER_NAME],
  283. [POST_CODE],
  284. [PAYMENT_TYPE],
  285. [DEPOSIT_TYPE],
  286. [COLL_AMT],
  287. [COLL_CURR],
  288. [SC_FEE],
  289. [REWARD_P],
  290. [TRANSFER_AMT],
  291. [PAYOUT_CURR],
  292. [EX_RATE],
  293. [RATE_MARGIN],
  294. [COST_RATE],
  295. [USD_AMT],
  296. [RECEIVED_AMT],
  297. [RECEIVED_CURR],
  298. [APPROVED_BY],
  299. [TRANSTATUS],
  300. [PAYSTATUS],
  301. [CREATED_DATE],
  302. [PROMO_TYPE],
  303. COUNT(*) OVER() AS TotalCount
  304. FROM (
  305. SELECT
  306. [IME_NO],
  307. [Serial No],
  308. [TRUST_PAYMENT_ID],
  309. [TXN_CHANNEL],
  310. [DATE_SEND],
  311. [DATE_PAID],
  312. [MEMBERSHIPID],
  313. [PAYOUT_PARTNER],
  314. [SENDER_NAME],
  315. [SENDER_MOBILE],
  316. [RECEIVER_NAME],
  317. [POST_CODE],
  318. [PAYMENT_TYPE],
  319. [DEPOSIT_TYPE],
  320. [COLL_AMT],
  321. [COLL_CURR],
  322. [SC_FEE],
  323. [REWARD_P],
  324. [TRANSFER_AMT],
  325. [PAYOUT_CURR],
  326. [EX_RATE],
  327. [RATE_MARGIN],
  328. [COST_RATE],
  329. [USD_AMT],
  330. [RECEIVED_AMT],
  331. [RECEIVED_CURR],
  332. [APPROVED_BY],
  333. [TRANSTATUS],
  334. [PAYSTATUS],
  335. [CREATED_DATE],
  336. [PROMO_TYPE]
  337. FROM (
  338. '
  339. + @sql1 + ' UNION ALL ' + @sql2 + '
  340. ) xyz
  341. ) Result '
  342. IF @searchByValue IS NOT NULL
  343. AND @searchBy IS NOT NULL
  344. BEGIN
  345. IF @searchBy = 'sName'
  346. SET @SQL = @SQL + 'AND SENDER_NAME like ''%' + @searchByValue + '%'''
  347. IF @searchBy = 'rName'
  348. SET @SQL = @SQL + 'AND RECEIVER_NAME like ''%' + @searchByValue + '%'''
  349. IF @searchBy = 'cid'
  350. SET @SQL = @SQL + 'AND CUSTOMER_ID = ''' + @searchByValue + ''''
  351. IF @searchBy = 'cAmt'
  352. SET @SQL = @SQL + 'AND COLL_AMT = ''' + @searchByValue + ''''
  353. IF @searchBy = 'icn'
  354. SET @SQL = @SQL + 'AND CONTROL_NO = ''' + @searchByValue + ''''
  355. END
  356. SET @SQL = @SQL + 'order by Result.[CREATED_DATE] desc'
  357. PRINT (@SQL)
  358. EXEC (@SQL)
  359. EXEC proc_errorHandler '0'
  360. ,'Report has been prepared successfully.'
  361. ,NULL
  362. SELECT *
  363. ,NULL
  364. FROM @FilterList
  365. SELECT 'TXN Report' title
  366. END
  367. IF @flag = 'summary'
  368. BEGIN
  369. SET @sql = 'SELECT
  370. pAgent = pAgent
  371. ,pAgentName = pAgentName
  372. ,txnCount = COUNT(*)
  373. ,amt = SUM(ISNULL(pAmt,0))
  374. FROM REMITTRANTEMP rt WITH(NOLOCK)
  375. WHERE 1=1'
  376. SET @sql = @sql + '
  377. AND rt.paymentMethod = ''Bank Deposit''
  378. AND rt.tranStatus = ''Payment''
  379. AND rt.payStatus = ''Unpaid''
  380. AND rt.tranType = ''I''
  381. --AND rt.sAgent not IN (''16106'',''16106'') --to prevent remitly agent only
  382. AND tmp.tranStatus = ''Invalid''
  383. GROUP BY rt.pAgent, rt.pAgentName'
  384. PRINT (@sql)
  385. EXEC (@sql)
  386. SET @sql = 'SELECT
  387. pAgent = rt.pBank
  388. ,pAgentName = rt.pBankName
  389. ,txnCount = COUNT(*)
  390. ,amt = SUM(ISNULL(rt.pAmt,0))
  391. FROM remitTran rt WITH(NOLOCK)
  392. INNER JOIN agentMaster am on rt.pBank=am.agentId
  393. INNER JOIN InvalidBankDepositTxn tmp (NOLOCK) ON rt.id = tmp.tranId
  394. WHERE 1=1
  395. AND (am.agentGrp =''4301'' OR am.agentGrp IS NULL)
  396. AND (am.agentType=''2903'' OR am.agentType=''2905'')
  397. '
  398. SET @sql = @sql + '
  399. AND rt.paymentMethod = ''Bank Deposit''
  400. AND rt.tranStatus = ''Payment''
  401. AND rt.payStatus = ''Unpaid''
  402. AND rt.tranType = ''D''
  403. AND tmp.tranStatus = ''Invalid''
  404. GROUP BY rt.pBank, rt.pBankName'
  405. PRINT (@sql)
  406. EXEC (@sql)
  407. RETURN
  408. END
  409. END