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.

460 lines
30 KiB

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