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.

359 lines
24 KiB

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