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.

252 lines
8.3 KiB

11 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[mobile_proc_TranHistory] Script Date: 11/8/2023 8:03:55 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --Exec [mobile_proc_TranHistory] @flag='tran-history-v2', @userId='kamal@imelondon.co.uk'
  9. /****** Object: StoredProcedure [dbo].[mobile_proc_paidTranHistory] Script Date: 9/6/2018 11:41:36 AM ******/
  10. ALTER PROCEDURE [dbo].[mobile_proc_TranHistory] (@flag VARCHAR(50) = NULL
  11. , @customerId INT = NULL
  12. , @userId VARCHAR(100) = NULL
  13. , @fromDate VARCHAR(50) = NULL
  14. , @toDate VARCHAR(50) = NULL
  15. , @pageSize VARCHAR(50) = 25 --NULL -- add default 5
  16. , @pageNumber VARCHAR(50) = NULL
  17. , @sortBy VARCHAR(50) = NULL
  18. , @sortOrder VARCHAR(50) = NULL)
  19. AS
  20. --#101 mobile changes
  21. -- #710 - Change Paystatus to Transtatus in Transaction Report
  22. -- 713 Show Pending Txn in Transaction Report with Status *PENDING*
  23. -- Direct cancellation for PENDING Status
  24. -- #808 changes for reject transaction
  25. -- #10903 - tran report not showing
  26. -- #12605 - pagination for transaction history
  27. SET NOCOUNT ON;
  28. SET XACT_ABORT ON;
  29. BEGIN TRY
  30. DECLARE @email VARCHAR(100)
  31. ,@mobile VARCHAR(25)
  32. --,@customerId BIGINT
  33. ,@sql VARCHAR(MAX)
  34. ,@table VARCHAR(MAX)
  35. ,@select_field_list VARCHAR(MAX) = ''
  36. ,@extra_field_list VARCHAR(MAX) = ''
  37. ,@sql_filter VARCHAR(MAX) = ''
  38. BEGIN
  39. IF @flag = 'tran-history'
  40. BEGIN
  41. IF EXISTS (
  42. SELECT TOP 1 1
  43. FROM customerMaster(NOLOCK)
  44. WHERE customerId = @customerId
  45. )
  46. BEGIN
  47. SELECT @email = cm.email
  48. ,@mobile = cm.mobile
  49. FROM dbo.customerMaster(NOLOCK) cm
  50. WHERE cm.customerId = @userId
  51. END
  52. ELSE
  53. BEGIN
  54. SELECT @email = cm.email
  55. ,@mobile = cm.mobile
  56. ,@customerId = cm.customerId
  57. FROM dbo.customerMaster(NOLOCK) cm
  58. WHERE cm.username = @userId
  59. OR cm.email = @userId
  60. END
  61. IF @fromDate IS NULL
  62. AND @toDate IS NULL
  63. SET @sql = 'SELECT TOP 7 * FROM (';
  64. ELSE
  65. SET @sql = 'SELECT * FROM (';
  66. -- END
  67. SET @sql = @sql +
  68. 'SELECT
  69. errorCode = ''0''
  70. ,ReceiverName=ReceiverName
  71. ,userId = ReceiverName
  72. ,tranId = rt.id
  73. ,controlNo = dbo.FNADecryptString(rt.controlNo)
  74. ,collAmount = Cast(rt.cAmt as decimal)
  75. ,TranAmount = Cast(rt.tAmt as decimal)
  76. ,collCurr = rt.collCurr
  77. ,payoutAmt = rt.pAmt
  78. ,pCurr = rt.payoutCurr
  79. ,payStatus = CASE WHEN rt.tranStatus=''Cancel'' then ''CANCELLED''
  80. WHEN rt.tranStatus=''Payment'' AND rt.payStatus=''Unpaid'' AND rt.paymentMethod=''Bank Deposit'' THEN ''PENDING''
  81. WHEN rt.tranStatus=''Payment'' AND rt.payStatus=''Unpaid'' AND rt.paymentMethod=''Cash Payment'' THEN ''READY TO COLLECT''
  82. WHEN rt.tranStatus=''Payment'' AND rt.payStatus=''Post'' AND rt.paymentMethod=''Cash Payment'' THEN ''READY TO COLLECT''
  83. WHEN rt.tranStatus=''Payment'' AND rt.payStatus=''Post'' AND rt.paymentMethod=''Bank Deposit'' THEN ''PROCESSING''
  84. else UPPER(rt.tranStatus) end
  85. ,payoutMode = rt.paymentMethod
  86. ,sendDate = CONVERT(varchar(10), rt.createdDate, 120)
  87. ,paidDate = CONVERT(varchar(10), rt.paidDate, 120)
  88. ,PayoutAgent = rt.pBankName
  89. ,PayoutCountry = rt.pcountry
  90. ,DisplayActions = CASE WHEN rt.tranStatus=''Payment'' THEN ''CANCEL''+'',''+''AMEND'' ELSE '''' END
  91. FROM dbo.remitTran(NOLOCK) rt
  92. INNER JOIN dbo.tranSenders s(NOLOCK) on s.tranid = rt.id
  93. WHERE s.customerId='''
  94. + CAST((ISNULL(@customerId,@userId)) AS VARCHAR) + ''''
  95. IF ISNULL(@fromDate, '') <> ''
  96. AND ISNULL(@toDate, '') <> ''
  97. BEGIN
  98. SET @sql = @sql + ' AND rt.createdDate BETWEEN ''' + @fromDate + ''' AND ''' + @toDate + ' 23:59:59'''
  99. END
  100. SET @sql = @sql + ')x ORDER BY x.sendDate desc'
  101. PRINT @userId
  102. PRINT(@sql)
  103. EXEC (@sql)
  104. END
  105. ELSE IF @flag = 'tran-history-v2'
  106. BEGIN
  107. IF EXISTS (SELECT TOP 1
  108. 1
  109. FROM customerMaster(NOLOCK)
  110. WHERE customerId = @customerId)
  111. BEGIN
  112. SELECT
  113. @email = cm.email
  114. ,@mobile = cm.mobile
  115. FROM dbo.customerMaster(NOLOCK) cm
  116. WHERE cm.customerId = @userId
  117. END
  118. ELSE
  119. BEGIN
  120. SELECT
  121. @email = cm.email
  122. ,@mobile = cm.mobile
  123. ,@customerId = cm.customerId
  124. FROM dbo.customerMaster(NOLOCK) cm
  125. WHERE cm.username = @userId
  126. OR cm.email = @userId
  127. END
  128. --IF @fromDate IS NULL
  129. -- AND @toDate IS NULL
  130. -- SET @table = 'SELECT TOP 7 * FROM (';
  131. --ELSE
  132. -- SET @table = 'SELECT * FROM (';
  133. -- END
  134. SET @sortBy = 'createdDate'
  135. SET @sortOrder = 'DESC'
  136. SET @table =
  137. '( SELECT
  138. errorCode = ''0''
  139. ,userId = ReceiverName
  140. ,tranId = rtt.id
  141. ,controlNo = ''''
  142. ,collAmount = Cast(rtt.cAmt as decimal)
  143. ,collCurr = rtt.collCurr
  144. ,payoutAmt = rtt.pAmt
  145. ,pCurr = rtt.payoutCurr
  146. ,payStatus = CASE WHEN rtt.tranStatus=''Reject'' then ''DECLINED''
  147. WHEN rtt.tranStatus=''Cancel'' then ''CANCELLED''
  148. WHEN depositType =''ONLINE'' AND rtt.verifiedDate IS NULL THEN ''PENDING''
  149. WHEN depositType =''DEBIT_CARD'' AND rtt.verifiedDate IS NOT NULL THEN ''PROCESSING''
  150. else UPPER(payStatus) end
  151. ,payoutMode = rtt.paymentMethod
  152. ,sendDate = CONVERT(varchar(10), rtt.createdDate, 120)
  153. ,paidDate = CONVERT(varchar(10), rtt.paidDate, 120)
  154. ,PayoutAgent = rtt.pBankName
  155. ,rtt.createdDate
  156. ,DisplayActions = CASE WHEN rtt.tranStatus=''Reject'' THEN '''' WHEN rtt.verifiedDate IS NULL THEN '''' WHEN rtt.approvedDate IS NOT NULL THEN ''CANCEL''+'',''+''AMEND'' ELSE '''' END
  157. FROM dbo.remitTranTemp(NOLOCK) rtt
  158. INNER JOIN dbo.tranSendersTemp ts(NOLOCK) on ts.tranid = rtt.id
  159. WHERE ts.customerId=''' + CAST(@customerId AS VARCHAR) + ''''
  160. IF ISNULL(@fromDate, '') <> ''
  161. AND ISNULL(@toDate, '') <> ''
  162. BEGIN
  163. SET @table = @table + ' AND rtt.createdDate BETWEEN ''' + @fromDate + ''' AND ''' + @toDate + ' 23:59:59'''
  164. END
  165. SET @table = @table + ' UNION ALL ';
  166. SET @table = @table + 'SELECT
  167. errorCode = ''0''
  168. ,userId = ReceiverName
  169. ,tranId = rt.id
  170. ,controlNo = dbo.FNADecryptString(rt.controlNo)
  171. ,collAmount = Cast(rt.cAmt as decimal)
  172. ,collCurr = rt.collCurr
  173. ,payoutAmt = rt.pAmt
  174. ,pCurr = rt.payoutCurr
  175. ,payStatus = CASE WHEN rt.tranStatus=''Reject'' then ''DECLINED''
  176. WHEN rt.tranStatus=''Cancel'' then ''CANCELLED''
  177. WHEN rt.tranStatus=''paid'' then ''PAID''
  178. WHEN depositType = ''ONLINE'' AND rt.verifiedDate IS NULL THEN ''PENDING''
  179. WHEN depositType in(''ONLINE'',''DEBIT_CARD'') AND rt.verifiedDate IS NOT NULL THEN ''PROCESSING''
  180. else UPPER(payStatus) end
  181. ,payoutMode = rt.paymentMethod
  182. ,sendDate = CONVERT(varchar(10), rt.createdDate, 120)
  183. ,paidDate = CONVERT(varchar(10), rt.paidDate, 120)
  184. ,PayoutAgent = rt.pBankName
  185. ,rt.createdDate
  186. ,DisplayActions = CASE WHEN rt.tranStatus=''Cancel'' THEN ''''
  187. WHEN rt.tranStatus=''paid'' THEN ''''
  188. WHEN rt.approvedDate IS NOT NULL THEN ''CANCEL''+'',''+''AMEND''
  189. ELSE '''' END
  190. FROM dbo.remitTran(NOLOCK) rt
  191. INNER JOIN dbo.tranSenders s(NOLOCK) on s.tranid = rt.id
  192. WHERE s.customerId=''' + CAST(@customerId AS VARCHAR) + ''''
  193. IF ISNULL(@fromDate, '') <> ''
  194. AND ISNULL(@toDate, '') <> ''
  195. BEGIN
  196. SET @table = @table + ' AND rt.createdDate BETWEEN ''' + @fromDate + ''' AND ''' + @toDate + ' 23:59:59'''
  197. END
  198. SET @table = @table + ')x'
  199. SET @sql_filter = ''
  200. SET @select_field_list = 'errorCode,userId,tranId,controlNo,collAmount,collCurr,payoutAmt,pCurr,payStatus,payoutMode,
  201. sendDate, paidDate, PayoutAgent, DisplayActions'
  202. --PRINT (@table)
  203. EXEC dbo.proc_paging @table
  204. ,@sql_filter
  205. ,@select_field_list
  206. ,@extra_field_list
  207. ,@sortBy
  208. ,@sortOrder
  209. ,@pageSize
  210. ,@pageNumber
  211. RETURN
  212. END
  213. END
  214. END TRY
  215. BEGIN CATCH
  216. IF @@trancount > 0
  217. ROLLBACK TRANSACTION
  218. DECLARE @errorMessage VARCHAR(MAX)
  219. SET @errorMessage = ERROR_MESSAGE();
  220. SELECT
  221. '1' ErrorCode
  222. ,@errorMessage Msg
  223. ,NULL ID
  224. END CATCH
  225. GO