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.

431 lines
27 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_TRANSACTION_REPORT] Script Date: 3/4/2024 6:36:34 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. AS
  30. --------------------------------------
  31. -- #509 - Add transactionType column
  32. -- #19331 - Change for transaction report
  33. -- selected tranType in @rptType = 's'
  34. --------------------------------------
  35. SET NOCOUNT ON;
  36. SET CONCAT_NULL_YIELDS_NULL OFF;
  37. BEGIN
  38. DECLARE @FilterList TABLE (
  39. head VARCHAR(50)
  40. ,value VARCHAR(5000)
  41. )
  42. DECLARE @SQL VARCHAR(MAX)
  43. ,@usertype VARCHAR(5)
  44. ,@depositTypeText VARCHAR(50)
  45. ,@pAgentFilter VARCHAR(100)
  46. ,@depositTypeFilter VARCHAR(100)
  47. IF @sBranch IS NOT NULL
  48. INSERT INTO @FilterList
  49. SELECT 'Branch Name'
  50. ,agentName
  51. FROM agentMaster WITH (NOLOCK)
  52. WHERE agentId = @sBranch
  53. IF @searchByValue IS NOT NULL
  54. AND @searchBy IS NOT NULL
  55. BEGIN
  56. INSERT INTO @FilterList
  57. SELECT CASE @searchBy
  58. WHEN 'cid'
  59. THEN 'Customer ID'
  60. WHEN 'sName'
  61. THEN 'Sender Name'
  62. WHEN 'rName'
  63. THEN 'Receiver Name'
  64. WHEN 'icn'
  65. THEN 'Control No'
  66. END
  67. ,@searchByValue
  68. END
  69. SET @paymentType = CASE
  70. WHEN @paymentType = '1'
  71. THEN 'CASH PAYMENT'
  72. WHEN @paymentType = '2'
  73. THEN 'BANK DEPOSIT'
  74. WHEN @paymentType IS NULL
  75. THEN ''
  76. ELSE @paymentType
  77. END
  78. --ISNULL(@paymentType,'')
  79. --SELECT @depositTypeText = detailTitle
  80. --FROM staticDataValue
  81. --WHERE typeID = '8109'
  82. -- AND detailDesc = @depositType
  83. -- PRINT @depositTypeText
  84. --SET @depositType = @depositTypeText
  85. SELECT @usertype = usertype
  86. FROM applicationusers
  87. WHERE username = @user
  88. IF @rptType = 's'
  89. BEGIN
  90. DECLARE @sql1 VARCHAR(max)
  91. ,@sql2 VARCHAR(max)
  92. DECLARE @TotalCount INT
  93. SET @sql1 = '
  94. SELECT
  95. [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') +
  96. '''=''A'' THEN ''<a href="../SearchTxnReport/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>''
  97. ELSE ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>'' END
  98. ,[Serial No] = RT.id
  99. ,[TRUST_PAYMENT_ID] = RT.transactionreference
  100. ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile''
  101. WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online''
  102. WHEN RT.tranType = ''I'' THEN ''CR Panel''
  103. ELSE RT.tranType END
  104. ,[DATE_SEND] =CONVERT(VARCHAR,RT.createdDate,111)
  105. ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111)
  106. --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID)
  107. ,[MEMBERSHIPID] = ''<a href="/Remit/Administration/CustomerSetup/CustomerDetails.aspx?customerId=''+ CAST(CM.CUSTOMERID AS VARCHAR) + ''">'' + ISNULL(TS.membershipId, CM.MEMBERSHIPID) +''</a>''
  108. -- ''</a>''
  109. ,[PAYOUT_PARTNER] = RT.pAgentName
  110. ,[SENDER_NAME] = senderName
  111. ,[SENDER_MOBILE] = ''"''+ TS.MOBILE
  112. ,[RECEIVER_NAME]= receiverName
  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. FROM REMITTRANTEMP RT(NOLOCK)
  143. LEFT JOIN TRANSENDERSTEMP TS (NOLOCK) ON TS.TRANID = RT.ID
  144. LEFT JOIN CUSTOMERMASTER CM (NOLOCK) ON CM.CUSTOMERID = TS.CUSTOMERID
  145. WHERE 1=1 AND RT.PAYSTATUS<>''REJECT'''
  146. SET @sql2 = '
  147. SELECT
  148. [IME_NO] = ''"''+ CASE WHEN ''' + ISNULL(@usertype, '') +
  149. ''' = ''A'' THEN ''<a href="../SearchTxnReport/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>''
  150. ELSE ''<a href="/Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=N&tranId=''+CAST(RT.ID AS VARCHAR)+''">''+DBO.FNADECRYPTSTRING(CONTROLNO)+''</a>'' END
  151. ,[Serial No] = RT.holdtranid
  152. ,[TRUST_PAYMENT_ID] = RT.transactionreference
  153. ,[TXN_CHANNEL] = CASE WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''M'') THEN ''Mobile''
  154. WHEN (RT.tranType = ''M'' AND RT.isOnlineTxn = ''O'') THEN ''Web Online''
  155. WHEN RT.tranType = ''I'' THEN ''CR Panel''
  156. ELSE RT.tranType END
  157. ,[DATE_SEND] =CONVERT(VARCHAR,RT.approvedDate,111)
  158. ,[DATE_PAID] = CONVERT(VARCHAR,RT.paidDate,111)
  159. --,[MEMBERSHIPID] = ISNULL(TS.membershipId, CM.MEMBERSHIPID)
  160. ,[MEMBERSHIPID] = ''<a href="/Remit/Administration/CustomerSetup/CustomerDetails.aspx?customerId='' +CAST(CM.CUSTOMERID AS VARCHAR) + ''">'' +ISNULL(TS.membershipId, CM.MEMBERSHIPID) + ''</a>''
  161. -- +CAST(CM.CUSTOMERID AS VARCHAR) +
  162. -- ''>''
  163. -- + ISNULL(TS.membershipId, CM.MEMBERSHIPID) +
  164. -- ''</a>''
  165. ,[PAYOUT_PARTNER] = RT.pAgentName
  166. ,[SENDER_NAME] = senderName
  167. ,[SENDER_MOBILE] = ''"''+ TS.MOBILE
  168. ,[RECEIVER_NAME]= receiverName
  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. SET @SQL =
  257. '
  258. SELECT
  259. [IME_NO],
  260. [Serial No],
  261. [TRUST_PAYMENT_ID],
  262. [TXN_CHANNEL],
  263. [DATE_SEND],
  264. [DATE_PAID],
  265. [MEMBERSHIPID],
  266. [PAYOUT_PARTNER],
  267. [SENDER_NAME],
  268. [SENDER_MOBILE],
  269. [RECEIVER_NAME],
  270. [PAYMENT_TYPE],
  271. [DEPOSIT_TYPE],
  272. [COLL_AMT],
  273. [COLL_CURR],
  274. [SC_FEE],
  275. [REWARD_P],
  276. [TRANSFER_AMT],
  277. [PAYOUT_CURR],
  278. [EX_RATE],
  279. [RATE_MARGIN],
  280. [COST_RATE],
  281. [USD_AMT],
  282. [RECEIVED_AMT],
  283. [RECEIVED_CURR],
  284. [APPROVED_BY],
  285. [TRANSTATUS],
  286. [PAYSTATUS],
  287. [CREATED_DATE],
  288. COUNT(*) OVER() AS TotalCount
  289. FROM (
  290. SELECT
  291. [IME_NO],
  292. [Serial No],
  293. [TRUST_PAYMENT_ID],
  294. [TXN_CHANNEL],
  295. [DATE_SEND],
  296. [DATE_PAID],
  297. [MEMBERSHIPID],
  298. [PAYOUT_PARTNER],
  299. [SENDER_NAME],
  300. [SENDER_MOBILE],
  301. [RECEIVER_NAME],
  302. [PAYMENT_TYPE],
  303. [DEPOSIT_TYPE],
  304. [COLL_AMT],
  305. [COLL_CURR],
  306. [SC_FEE],
  307. [REWARD_P],
  308. [TRANSFER_AMT],
  309. [PAYOUT_CURR],
  310. [EX_RATE],
  311. [RATE_MARGIN],
  312. [COST_RATE],
  313. [USD_AMT],
  314. [RECEIVED_AMT],
  315. [RECEIVED_CURR],
  316. [APPROVED_BY],
  317. [TRANSTATUS],
  318. [PAYSTATUS],
  319. [CREATED_DATE]
  320. FROM (
  321. '
  322. + @sql1 + ' UNION ALL ' + @sql2 + '
  323. ) xyz
  324. ) Result '
  325. IF @searchByValue IS NOT NULL
  326. AND @searchBy IS NOT NULL
  327. BEGIN
  328. IF @searchBy = 'sName'
  329. SET @SQL = @SQL + 'AND SENDER_NAME like ''%' + @searchByValue + '%'''
  330. IF @searchBy = 'rName'
  331. SET @SQL = @SQL + 'AND RECEIVER_NAME like ''%' + @searchByValue + '%'''
  332. IF @searchBy = 'cid'
  333. SET @SQL = @SQL + 'AND CUSTOMER_ID = ''' + @searchByValue + ''''
  334. IF @searchBy = 'cAmt'
  335. SET @SQL = @SQL + 'AND COLL_AMT = ''' + @searchByValue + ''''
  336. IF @searchBy = 'icn'
  337. SET @SQL = @SQL + 'AND CONTROL_NO = ''' + @searchByValue + ''''
  338. END
  339. SET @SQL = @SQL + 'order by Result.[CREATED_DATE] desc'
  340. PRINT (@SQL)
  341. EXEC (@SQL)
  342. EXEC proc_errorHandler '0'
  343. ,'Report has been prepared successfully.'
  344. ,NULL
  345. SELECT *
  346. ,NULL
  347. FROM @FilterList
  348. SELECT 'TXN Report' title
  349. END
  350. IF @flag = 'summary'
  351. BEGIN
  352. SET @sql = 'SELECT
  353. pAgent = pAgent
  354. ,pAgentName = pAgentName
  355. ,txnCount = COUNT(*)
  356. ,amt = SUM(ISNULL(pAmt,0))
  357. FROM REMITTRANTEMP rt WITH(NOLOCK)
  358. WHERE 1=1'
  359. SET @sql = @sql + '
  360. AND rt.paymentMethod = ''Bank Deposit''
  361. AND rt.tranStatus = ''Payment''
  362. AND rt.payStatus = ''Unpaid''
  363. AND rt.tranType = ''I''
  364. --AND rt.sAgent not IN (''16106'',''16106'') --to prevent remitly agent only
  365. AND tmp.tranStatus = ''Invalid''
  366. GROUP BY rt.pAgent, rt.pAgentName'
  367. PRINT (@sql)
  368. EXEC (@sql)
  369. SET @sql = 'SELECT
  370. pAgent = rt.pBank
  371. ,pAgentName = rt.pBankName
  372. ,txnCount = COUNT(*)
  373. ,amt = SUM(ISNULL(rt.pAmt,0))
  374. FROM remitTran rt WITH(NOLOCK)
  375. INNER JOIN agentMaster am on rt.pBank=am.agentId
  376. INNER JOIN InvalidBankDepositTxn tmp (NOLOCK) ON rt.id = tmp.tranId
  377. WHERE 1=1
  378. AND (am.agentGrp =''4301'' OR am.agentGrp IS NULL)
  379. AND (am.agentType=''2903'' OR am.agentType=''2905'')
  380. '
  381. SET @sql = @sql + '
  382. AND rt.paymentMethod = ''Bank Deposit''
  383. AND rt.tranStatus = ''Payment''
  384. AND rt.payStatus = ''Unpaid''
  385. AND rt.tranType = ''D''
  386. AND tmp.tranStatus = ''Invalid''
  387. GROUP BY rt.pBank, rt.pBankName'
  388. PRINT (@sql)
  389. EXEC (@sql)
  390. RETURN
  391. END
  392. END