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.

439 lines
28 KiB

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