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.

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