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.

128 lines
10 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_SCHEDULAR_PUSH_TXN_AGRANI] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[PROC_SCHEDULAR_PUSH_TXN_AGRANI](
  9. @flag VARCHAR(100)
  10. ,@id VARCHAR(100) = NULL
  11. ,@ControlNo VARCHAR(100) = NULL
  12. )AS
  13. BEGIN
  14. DECLARE @pAgent BIGINT = 404526
  15. IF @flag='push-list-Agrani'
  16. BEGIN
  17. SELECT TOP 10
  18. ratevalue = CONVERT(VARCHAR(20),rt.pCurrCostRate)
  19. ,tranno = DBO.FNADecryptString(rt.controlNo)
  20. ,traninfosl = 0
  21. ,trmode = CASE WHEN rt.paymentMethod ='CASH PAYMENT' THEN '5' WHEN rt.paymentMethod='BANK DEPOSIT' THEN '15' WHEN rt.paymentMethod = 'Mobile Wallet' THEN '17' ELSE '05' END
  22. ,purpose = CASE WHEN rt.purposeOfRemit='Business travel' THEN '13'
  23. WHEN rt.purposeOfRemit='Personal travels and tours' THEN '08'
  24. WHEN rt.purposeOfRemit='Educational expenses' THEN '06'
  25. WHEN rt.purposeOfRemit='Medical Expenses' THEN '07'
  26. WHEN rt.purposeOfRemit='Household expenses' THEN ''
  27. WHEN rt.purposeOfRemit='Family maintenance' THEN '02'
  28. WHEN rt.purposeOfRemit='Savings' THEN '01'
  29. WHEN rt.purposeOfRemit='Loan payment / Interest' THEN '01'
  30. WHEN rt.purposeOfRemit='Salary / Commission' THEN '01'
  31. WHEN rt.purposeOfRemit='Utility payment' THEN '01'
  32. WHEN rt.purposeOfRemit='Purchase of land / property' THEN '10'
  33. WHEN rt.purposeOfRemit='Rent' THEN '01'
  34. WHEN rt.purposeOfRemit='Commission' THEN '01' ELSE '01' END
  35. ,remamountdest = rt.pAmt
  36. ,remid = '0'
  37. ,remfname = rt.senderName
  38. ,remaddress1 = ISNULL(tsen.address,'')
  39. ,remcountry = (SELECT countryCode FROM dbo.countryMaster(NOLOCK) WHERE countryName = tsen.country)
  40. ,beneid = '0'
  41. ,benename = rt.receiverName
  42. ,benemname = '' --ISNULL(trec.middleName,'')
  43. ,benelname = '' --trec.lastName1 + ISNULL(' '+trec.lastName2,'')
  44. ,beneaccountno = ISNULL(rt.accountNo,'')
  45. ,benetel = REPLACE(trec.mobile,'+','')
  46. ,branchcode = CASE
  47. WHEN rt.paymentMethod='CASH PAYMENT' THEN '' ELSE
  48. CASE WHEN LEN(am.agentCode) = 8 THEN '0'+am.agentCode ELSE am.agentCode END
  49. END
  50. ,benebeftncode = ''
  51. ,beneaddress = trec.address
  52. ,benecountry = (SELECT countryCode FROM dbo.countryMaster(NOLOCK) WHERE countryName=trec.country)
  53. ,excode = '7095'
  54. ,entereddatetime= FORMAT(rt.approvedDate,'yyyy-MM-ddThh:mm:ss.fff')
  55. ,counttr = '0'
  56. ,rt.controlNo
  57. ,remit_tel=tsen.mobile
  58. INTO #TEMPLIST
  59. FROM dbo.remitTran(NOLOCK) rt
  60. INNER JOIN dbo.tranSenders(NOLOCK) tsen ON tsen.tranId = rt.id
  61. INNER JOIN dbo.tranReceivers(NOLOCK) trec ON trec.tranId = rt.id
  62. LEFT JOIN agentMaster(NOLOCK) am ON am.agentId = rt.pBankBranch
  63. WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid'
  64. AND rt.tranStatus = 'payment' AND rt.pAgent = 404526 --need to change the pAgent acc to the set up for the payoutPartner
  65. AND rt.payoutCurr = 'BDT'
  66. ORDER BY rt.id DESC
  67. ALTER TABLE #TEMPLIST ADD IsAlreadyProcessed BIT
  68. UPDATE T SET IsAlreadyProcessed=1 FROM #TEMPLIST T
  69. INNER JOIN (SELECT CONTROLNO FROM Application_Log.DBO.vwTpApilogs(NOLOCK)
  70. WHERE providerName='Agrani' AND methodName='https://fex.agranibank.org/remapi/gmesigncreate'
  71. GROUP BY controlNo HAVING COUNT(1) >= 1 ) V ON V.controlNo = T.tranno
  72. UPDATE rt SET rt.tranStatus='Hold' FROM remitTran rt (NOLOCK)
  73. INNER JOIN #TEMPLIST T ON T.controlNo = rt.controlNo
  74. WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid'
  75. AND rt.tranStatus = 'payment' AND rt.pAgent = 404526 --need to change the pAgent acc to the set up for the payoutPartner
  76. AND rt.payoutCurr = 'BDT' AND IsAlreadyProcessed=1
  77. UPDATE #TEMPLIST SET trmode = CASE WHEN trmode = '15' THEN
  78. CASE WHEN LEFT(beneaccountno,2)='02' AND LEN(beneaccountno)=13 THEN '16' ELSE '15' END
  79. ELSE trmode END
  80. ALTER TABLE #TEMPLIST DROP COLUMN controlNo,IsAlreadyProcessed
  81. SELECT * FROM #TEMPLIST
  82. RETURN
  83. END
  84. ELSE IF @flag='sync-list-Agrani'
  85. BEGIN
  86. SELECT RT.id AS TranId,DBO.FNADecryptString( RT.controlNo) AS PartnerTxnId --PartnerTxnId used for transationinquiry call which is controlno generated in our side
  87. FROM dbo.remitTran AS RT(NOLOCK)
  88. WHERE RT.pAgent = @pAgent
  89. AND RT.tranStatus='Payment' AND RT.payStatus='Post'
  90. END
  91. ELSE IF @flag='mark-paid-Agrani'
  92. BEGIN
  93. UPDATE remitTran
  94. SET payStatus = 'Paid'
  95. ,tranStatus = 'Paid'
  96. ,paidDate = getdate()
  97. ,paidDateLocal = GETUTCDATE()
  98. ,paidBy = 'Scheduler'
  99. WHERE id = @id AND payStatus = 'Post'
  100. AND tranStatus = 'payment' AND pAgent = @pAgent
  101. SELECT '0' ErrorCode,'Update success' Msg, NULL Id
  102. END
  103. ELSE IF @flag='mark-post-Agrani'
  104. BEGIN
  105. UPDATE remitTran SET
  106. payStatus = 'Post'
  107. ,postedBy = 'system'
  108. ,postedDate = GETDATE()
  109. ,postedDateLocal= GETUTCDATE()
  110. WHERE controlNo = dbo.FNAEncryptString(@id)
  111. AND pAgent = @pAgent
  112. SELECT '0' ErrorCode,'Update success' Msg, NULL Id
  113. END
  114. END
  115. GO