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.

433 lines
29 KiB

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