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.

113 lines
4.5 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_payQueue] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_payQueue] (
  9. @flag VARCHAR(50)
  10. ,@routeId VARCHAR(50) = NULL
  11. ,@xml XML = NULL
  12. ,@processId VARCHAR(50) = NULL
  13. )
  14. AS
  15. BEGIN TRY
  16. IF @flag = 's'
  17. BEGIN
  18. DECLARE @recordSize INT = 10
  19. DECLARE @qSize INT
  20. SELECT
  21. @qSize = COUNT(*)
  22. FROM payQueue
  23. WHERE routeId = @routeId
  24. DECLARE @txnList TABLE(
  25. controlNo VARCHAR(50)
  26. ,paidBy VARCHAR(30)
  27. ,paidLocation VARCHAR(100)
  28. ,paidDate DATETIME
  29. ,paidDateUSDRate VARCHAR(50)
  30. ,paidBeneficiaryIDtype VARCHAR(50)
  31. ,paidBeneficiaryIDNumber VARCHAR(50)
  32. ,rAgentID VARCHAR(50)
  33. ,rBankBranch VARCHAR(300)
  34. )
  35. INSERT @txnList
  36. SELECT TOP (@recordSize)
  37. controlNo
  38. ,paidBy
  39. ,paidLocation
  40. ,paidDate
  41. ,paidDateUSDRate
  42. ,paidBeneficiaryIDtype
  43. ,paidBeneficiaryIDNumber
  44. ,rAgentID
  45. ,rBankBranch
  46. FROM payQueue WITH(NOLOCK)
  47. WHERE routeId = @routeId
  48. UPDATE p SET
  49. processId = @processId
  50. ,qStatus = 'Processing'
  51. FROM payQueue p
  52. INNER JOIN @txnList tl ON p.controlNo = tl.controlNo
  53. SELECT
  54. *
  55. FROM @txnList
  56. SELECT 'N' ReProcess
  57. RETURN
  58. END
  59. IF @flag = 'rlist'
  60. BEGIN
  61. SELECT
  62. NEWID() Pid
  63. ,routeId
  64. FROM payQueue WHERE routeId <> @routeId
  65. GROUP BY routeId
  66. RETURN
  67. END
  68. IF @flag = 'syn'
  69. BEGIN
  70. SELECT
  71. controlNo = p.value('@controlNo','VARCHAR(50)')
  72. INTO #syn
  73. FROM @xml.nodes('/root/row') AS tmp(p)
  74. BEGIN TRANSACTION
  75. INSERT payQueueHistory(controlNo, routeId, processId, qStatus, completedAt)
  76. SELECT
  77. s.controlNo, routeId, @processId,'Success',GETDATE()
  78. FROM payQueue p
  79. INNER JOIN #syn s ON p.controlNo = s.controlNo
  80. DELETE p
  81. FROM payQueue p
  82. INNER JOIN #syn s ON p.controlNo = s.controlNo
  83. IF @@TRANCOUNT>0
  84. COMMIT TRANSACTION
  85. SELECT 0 errorCode, 'Processd sync logs successfully.' Msg, @processId Id
  86. RETURN
  87. END
  88. END TRY
  89. BEGIN CATCH
  90. IF @@TRANCOUNT>0
  91. ROLLBACK TRANSACTION
  92. SELECT 1 errorCode, ERROR_MESSAGE() Msg, NULL Id
  93. SELECT 1 errorCode, ERROR_MESSAGE() Msg, NULL Id
  94. END CATCH
  95. GO