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.

465 lines
31 KiB

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