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.

146 lines
11 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_SCHEDULAR_PUSH_TXN_IBBL] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --EXEC PROC_SCHEDULAR_PUSH_TXN_IBBL @flag='push-list'
  9. CREATE PROCEDURE [dbo].[PROC_SCHEDULAR_PUSH_TXN_IBBL](
  10. @flag VARCHAR(20)
  11. ,@ControlNo VARCHAR(20) = NULL
  12. ,@TRANID BIGINT = NULL
  13. )
  14. AS
  15. SET NOCOUNT ON
  16. BEGIN
  17. DECLARE @IBBLBANK BIGINT = 566989
  18. IF @flag='push-list'
  19. BEGIN
  20. SELECT TOP 10
  21. amount = rt.pAmt
  22. ,amountSpecified = 1
  23. ,issueDateSpecified = 1
  24. ,beneficiaryAccNo = rt.accountNo
  25. ,beneficiaryAccType = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','MOBILE WALLET') THEN ''
  26. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') = @IBBLBANK THEN (SUBSTRING(rt.accountNo,8,2))
  27. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN ''
  28. WHEN rt.paymentMethod = 'CARD PAYMENT' THEN '71'
  29. ELSE ''
  30. END
  31. ,beneficiaryAddress = trec.address
  32. ,beneficiaryBankCode = CASE WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN
  33. (SELECT TOP 1 agentCode FROM agentmaster(NOLOCK) WHERE agentId = rt.pbank AND isActive='Y' AND agentType='2903' AND agentCountryId='16')
  34. ELSE '42'
  35. END
  36. ,beneficiaryBankName = rt.pBankName
  37. ,beneficiaryBranchCode = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','CARD PAYMENT') THEN '123' --Remittance Card=4
  38. WHEN rt.paymentMethod = 'MOBILE WALLET' THEN '358'
  39. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') = @IBBLBANK THEN (SUBSTRING(rt.accountNo,5,3))
  40. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN ''
  41. ELSE ''
  42. END
  43. ,beneficiaryBranchName = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','CARD PAYMENT') THEN 'FRSD Branch'
  44. WHEN rt.paymentMethod = 'MOBILE WALLET' THEN 'Mobile Banking Br.'
  45. WHEN rt.paymentMethod = 'BANK DEPOSIT' THEN
  46. BM.agentName
  47. ELSE ''
  48. END
  49. ,beneficiaryName = rt.receiverName
  50. ,beneficiaryPhoneNo = trec.mobile
  51. ,beneficiaryRoutingNo = BM.agentCode
  52. ,isoCode = payoutCurr
  53. ,issueDate = rt.approvedDate
  54. ,paymentType = CASE WHEN rt.paymentMethod = 'CASH PAYMENT' THEN '1'
  55. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pBank,'0') = @IBBLBANK THEN '2'
  56. WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pBank,'0') != @IBBLBANK THEN '3'
  57. WHEN rt.paymentMethod = 'CARD PAYMENT' THEN '4'
  58. WHEN rt.paymentMethod = 'MOBILE WALLET' THEN '5'
  59. ELSE '0'
  60. END
  61. ,remittancePurpose = rt.purposeOfRemit
  62. ,remitterAddress = ISNULL(tsen.address,'Korea')
  63. ,remitterName = rt.senderName
  64. ,remitterPhoneNo = tsen.mobile
  65. ,secretKey = dbo.FNADecryptString(rt.controlNo)
  66. ,transReferenceNo = 'GM' + CAST(rt.id AS VARCHAR(50))
  67. ,controlNo
  68. INTO #TEMPLIST
  69. FROM dbo.remitTran(NOLOCK) rt
  70. INNER JOIN dbo.tranSenders(NOLOCK) tsen ON rt.id = tsen.tranId
  71. INNER JOIN dbo.tranReceivers(NOLOCK) trec ON rt.id = trec.tranId
  72. LEFT JOIN agentMaster(NOLOCK) BM ON BM.agentId = RT.pBankBranch
  73. WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid'
  74. AND rt.tranStatus = 'payment' AND rt.pAgent = 566853
  75. AND rt.pCountry = 'Bangladesh'
  76. ORDER BY rt.id DESC
  77. DELETE FROM #TEMPLIST WHERE paymentType in ('2','3') AND LEN(beneficiaryAccNo) < 8
  78. ALTER TABLE #TEMPLIST ADD IsAlreadyProcessed BIT
  79. UPDATE T SET IsAlreadyProcessed = 1 FROM #TEMPLIST T
  80. INNER JOIN (SELECT CONTROLNO FROM Application_Log.DBO.vwTpApilogs(NOLOCK)
  81. WHERE providerName='islamibank' AND methodName='DirectCreditWSMessage'
  82. GROUP BY controlNo HAVING COUNT(1) >= 1 ) V ON V.controlNo = T.secretKey
  83. UPDATE rt SET rt.tranStatus='Hold' FROM remitTran rt (NOLOCK)
  84. INNER JOIN #TEMPLIST T ON T.controlNo = rt.controlNo
  85. WHERE RT.pCountry = 'Bangladesh'
  86. AND RT.payStatus = 'Unpaid' AND RT.tranStatus = 'Payment'
  87. AND RT.pAgent = 566853 AND IsAlreadyProcessed = 1
  88. DELETE FROM #TEMPLIST WHERE IsAlreadyProcessed = 1
  89. ALTER TABLE #TEMPLIST DROP COLUMN controlNo,IsAlreadyProcessed
  90. SELECT * FROM #TEMPLIST
  91. RETURN
  92. END
  93. ELSE IF @flag='mark-post'
  94. BEGIN
  95. UPDATE remitTran SET
  96. payStatus = 'Post'
  97. ,postedBy = 'system'
  98. ,postedDate = GETDATE()
  99. ,postedDateLocal= GETUTCDATE()
  100. ,controlNo2 = Dbo.FNAEncryptString(@ControlNo)
  101. ,ContNo = @ControlNo
  102. WHERE controlNo = dbo.FNAEncryptString(@ControlNo)
  103. AND pAgent = 566853
  104. SELECT '0' ErrorCode,'Update success' Msg, NULL Id
  105. END
  106. ELSE IF @Flag='sync-list'
  107. BEGIN
  108. SELECT TOP 10
  109. id AS TranId
  110. ,dbo.FNADecryptString(controlNo) AS ControlNo
  111. ,'GM' + CAST(id AS VARCHAR(50)) AS ControlNo2
  112. FROM dbo.remitTran(NOLOCK)
  113. WHERE pAgent = 566853
  114. AND payStatus='POST' AND tranStatus= 'PAYMENT'
  115. END
  116. ELSE IF @Flag='mark-paid'
  117. BEGIN
  118. UPDATE remitTran SET
  119. payStatus = 'Paid',
  120. tranStatus = 'Paid',
  121. paidBy = 'system',
  122. paidDate = GETDATE(),
  123. paidDateLocal = GETUTCDATE()
  124. WHERE id = @TRANID AND pAgent = 566853
  125. AND payStatus='POST' AND tranStatus= 'PAYMENT'
  126. END
  127. END
  128. GO