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.

115 lines
8.1 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_SCHEDULAR_PUSH_TXN_BNI] 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 PROCEDURE [dbo].[PROC_SCHEDULAR_PUSH_TXN_BNI](
  9. @flag VARCHAR(100) = NULL
  10. ,@id VARCHAR(100)= NULL
  11. )
  12. AS
  13. SET NOCOUNT ON
  14. BEGIN
  15. IF @flag='push-list-bni'
  16. BEGIN
  17. SELECT TOP 20
  18. refNumber = dbo.FNADecryptString(RT.controlNo)
  19. ,serviceType = CASE WHEN RT.pBank = 393369 THEN 'BNI' --##PT. BANK NEGARA INDONESIA (PERSERO),TBK
  20. WHEN RT.pBank <> 393369 AND RT.pAmt BETWEEN 0 AND 500000000 THEN 'INTERBANK'
  21. --WHEN RT.pBank <> 393369 AND RT.pAmt BETWEEN 25000000 AND 500000000 THEN 'CLR'
  22. WHEN RT.pBank <> 393369 AND RT.pAmt > 500000000 THEN 'RTGS'
  23. END
  24. ,trxDate = FORMAT(RT.approvedDate,'yyyy-MM-ddTHH:mm:ss')
  25. ,currency = RT.payoutCurr
  26. ,amount = RT.pAmt
  27. ,orderingName = RT.senderName
  28. ,orderingAddress1 = LEFT(TS.ADDRESS,50)
  29. ,orderingAddress2 = TS.ADDRESS2
  30. ,orderingPhoneNumber = TS.mobile
  31. ,beneficiaryAccount = RT.accountNo
  32. ,beneficiaryName = RT.receiverName
  33. ,beneficiaryAddress1 = TR.ADDRESS
  34. ,beneficiaryAddress2 = TR.ADDRESS2
  35. ,beneficiaryPhoneNumber = TR.mobile
  36. ,acctWithInstcode = 'A'
  37. ,acctWithInstName = CASE WHEN RT.pBank = 393369 THEN AM.routingCode + 'XXX' --##PT. BANK NEGARA INDONESIA (PERSERO),TBK
  38. WHEN RT.pBank <> 393369 AND RT.pAmt BETWEEN 0 AND 500000000 THEN AM.agentCode
  39. ----WHEN RT.pBank <> 393369 AND RT.pAmt BETWEEN 25000000 AND 500000000 THEN AM.routingCode
  40. WHEN RT.pBank <> 393369 AND RT.pAmt > 500000000 THEN AM.routingCode
  41. END
  42. ,acctWithInstAddress1 = ''
  43. ,acctWithInstAddress2 = ''
  44. ,acctWithInstAddress3 = ''
  45. ,detailPayment1 = ''
  46. ,detailPayment2 = ''
  47. ,detailCharges = 'OUR'
  48. ,RT.ID
  49. ,RT.controlNo
  50. INTO #TEMPLIST
  51. FROM dbo.remitTran AS [RT] (NOLOCK)
  52. INNER JOIN tranSenders AS [TS] (NOLOCK) ON TS.TRANID = RT.ID
  53. INNER JOIN tranReceivers AS [TR] (NOLOCK) ON TR.TRANID = RT.ID
  54. INNER JOIN agentMaster AS [AM] (NOLOCK) ON AM.agentId = RT.pBank
  55. WHERE RT.pCountry = 'Indonesia'
  56. AND RT.payStatus = 'Unpaid' AND RT.tranStatus = 'Payment'
  57. AND RT.pAgent = 392227
  58. --and 1=2
  59. --and controlNo=dbo.FNAEncryptString('80553080423')
  60. ORDER BY RT.ID desc
  61. ALTER TABLE #TEMPLIST ADD IsAlreadyProcessed BIT
  62. UPDATE T SET IsAlreadyProcessed=1 FROM #TEMPLIST T
  63. INNER JOIN (SELECT CONTROLNO FROM Application_Log.DBO.vwTpApilogs(NOLOCK)
  64. WHERE providerName='BNI' AND methodName='processPO'
  65. GROUP BY controlNo HAVING COUNT(1) >= 1 ) V ON V.controlNo = T.refNumber
  66. UPDATE rt SET rt.tranStatus='Hold' FROM remitTran rt (NOLOCK)
  67. INNER JOIN #TEMPLIST T ON T.controlNo = rt.controlNo
  68. WHERE RT.pCountry = 'Indonesia'
  69. AND RT.payStatus = 'Unpaid' AND RT.tranStatus = 'Payment'
  70. AND RT.pAgent = 392227 AND IsAlreadyProcessed=1
  71. DELETE FROM #TEMPLIST WHERE IsAlreadyProcessed = 1
  72. ALTER TABLE #TEMPLIST DROP COLUMN controlNo,IsAlreadyProcessed
  73. SELECT * FROM #TEMPLIST
  74. END
  75. ELSE IF @flag='sync-list-Bni'
  76. BEGIN
  77. --SELECT TOP 1 '1234' AS TranId,'1234' AS refNumber,GETDATE() AS trxDate FROM dbo.remitTran AS RT(NOLOCK)
  78. SELECT
  79. refNumber = dbo.FNADecryptString(RT.controlNo)
  80. ,trxDate = FORMAT(RT.approvedDate,'yyyy-MM-dd-THH:mm:ss')
  81. FROM dbo.remitTran AS RT(NOLOCK)
  82. WHERE RT.pCountry = 'Indonesia'
  83. AND RT.payStatus = 'Post'
  84. AND RT.tranStatus = 'Payment'
  85. AND RT.pAgent = 392227
  86. END
  87. ELSE IF @flag='mark-paid-bni'
  88. BEGIN
  89. UPDATE remitTran SET
  90. payStatus = 'Paid'
  91. ,tranStatus = 'Paid'
  92. ,paidBy = 'system'
  93. ,paidDate = GETDATE()
  94. ,paidDateLocal = GETUTCDATE()
  95. WHERE Id=@id and pAgent = 392227 and payStatus = 'Post' AND tranStatus = 'Payment'
  96. END
  97. ELSE IF @flag='mark-post-bni'
  98. BEGIN
  99. UPDATE remitTran SET
  100. payStatus = 'Post'
  101. ,postedBy = 'Scheduler'
  102. ,postedDate = GETDATE()
  103. ,postedDateLocal= GETUTCDATE()
  104. WHERE Id = @id and pAgent = 392227 and payStatus = 'Unpaid' AND tranStatus = 'Payment'
  105. END
  106. END
  107. GO