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.

238 lines
6.2 KiB

1 year ago
  1. SET QUOTED_IDENTIFIER ON
  2. SET ANSI_NULLS ON
  3. GO
  4. --80521168889
  5. CREATE PROC [dbo].[ws_proc_AccountDepositOutStanding] (
  6. @ACCESSCODE VARCHAR(50),
  7. @USERNAME VARCHAR(50),
  8. @PASSWORD VARCHAR(50),
  9. @AGENT_SESSION_ID VARCHAR(150)
  10. )
  11. AS
  12. SET NOCOUNT ON
  13. SET XACT_ABORT ON
  14. BEGIN TRY
  15. DECLARE @errCode INT
  16. DECLARE @autMsg VARCHAR(500)
  17. EXEC ws_proc_checkAuthntication @USERNAME,@PASSWORD,@ACCESSCODE,@errCode OUT, @autMsg OUT
  18. --EXEC ws_proc_checkAuthntication @USERNAME, @PASSWORD, @ACCESSCODE, @errCode OUT
  19. DECLARE @errorTable TABLE (
  20. AGENT_SESSION_ID VARCHAR(150)
  21. ,CONTROLNO INT
  22. ,SENDAGENT INT
  23. ,SENDERNAME VARCHAR(200)
  24. ,SENDERADDRESS VARCHAR(10)
  25. ,SENDER_MOBILE VARCHAR(10)
  26. ,SENDERCITY VARCHAR(10)
  27. ,SENDERCOUNTRY VARCHAR(10)
  28. ,RECEIVERNAME VARCHAR(10)
  29. ,RECEIVERADDRESS varchar(10)
  30. ,RECEIVERPHONE VARCHAR(10)
  31. ,RECEIVERCITY VARCHAR(10)
  32. ,RECEIVERCOUNTRY VARCHAR(10)
  33. ,TRANSFERAMOUNT MONEY
  34. ,SCURRCOSTRATE FLOAT
  35. ,RCURRCOSTRATE FLOAT
  36. ,PAYOUTAMT MONEY
  37. ,PAYOUTCURRENCY VARCHAR(3)
  38. ,PAYMENTTYPE VARCHAR(10)
  39. ,BANKNAME VARCHAR(10)
  40. ,BANKBRANCH VARCHAR(10)
  41. ,BANKACCOUNTNO VARCHAR(10)
  42. ,BANKCODE VARCHAR(10)
  43. ,BANKBRANCHCODE varchar(10)
  44. ,TRNDATE varchar(10)
  45. ,DOWNLOAD_TOKENID INT
  46. ,ISLOCAL VARCHAR(5)
  47. ,TRANID VARCHAR(50)
  48. ,RECEIVERMOBILE VARCHAR(50)
  49. )
  50. INSERT INTO @errorTable(AGENT_SESSION_ID) SELECT @AGENT_SESSION_ID
  51. IF (@errCode = 1)
  52. BEGIN
  53. SELECT
  54. '1002' CODE
  55. ,ISNULL(@autMsg,'Authentication Fail') MESSAGE
  56. ,*
  57. FROM @errorTable
  58. RETURN
  59. END
  60. IF EXISTS(
  61. SELECT 'x' FROM applicationUsers WITH (NOLOCK)
  62. WHERE userName = @USERNAME AND forceChangePwd = 'Y')
  63. BEGIN
  64. SELECT
  65. '1002' CODE
  66. ,'You are required to change your password!' MESSAGE
  67. ,*
  68. FROM @errorTable
  69. RETURN
  70. END
  71. ------------------VALIDATION-------------------------------
  72. IF @AGENT_SESSION_ID IS NULL
  73. BEGIN
  74. SELECT
  75. '1001' CODE
  76. ,'AGENT SESSION ID Field is Required' MESSAGE
  77. ,*
  78. FROM @errorTable
  79. RETURN;
  80. END
  81. DECLARE
  82. @pAgent INT
  83. ,@tranId INT
  84. ,@tranStatus VARCHAR(50)
  85. ,@psAgent INT
  86. ,@pAgentName VARCHAR(200)
  87. -- PICK AGENTID ,COUNTRY FROM USER
  88. SELECT
  89. @pAgent = agentId
  90. FROM applicationUsers WITH(NOLOCK)
  91. WHERE userName = @USERNAME AND ISNULL(isDeleted, 'N') = 'N' AND isActive = 'Y'
  92. SELECT @pAgentName = agentName FROM agentMaster WITH(NOLOCK)
  93. WHERE agentId = @pAgent AND isActive = 'Y' AND ISNULL(isDeleted, 'N') = 'N'
  94. IF @pAgent IS NULL
  95. BEGIN
  96. SELECT '1001' CODE, 'Invalid Agent Code' [Message], * FROM @errorTable
  97. RETURN
  98. END
  99. DECLARE
  100. @msg VARCHAR(100)
  101. ,@lockInMinutes INT
  102. ,@payTokenId BIGINT
  103. /*
  104. SELECT TOP 1
  105. @lockInMinutes = DATEDIFF(MINUTE, lockedDate, GETDATE())
  106. ,@payTokenId = payTokenId
  107. FROM remitTran WITH (NOLOCK)
  108. WHERE pAgent = @pBranch
  109. AND payStatus = 'Unpaid'
  110. AND tranStatus = 'Lock'
  111. AND paymentMethod = 'BANK DEPOSIT'
  112. ORDER BY lockedDate
  113. ---------------------------------------------------------------------
  114. IF @lockInMinutes IS NOT NULL
  115. BEGIN
  116. UPDATE remitTran SET
  117. tranStatus = 'Payment'
  118. ,payTokenId = NULL
  119. WHERE pAgent = @pBranch
  120. AND payStatus = 'Unpaid'
  121. AND tranStatus = 'Lock'
  122. AND DATEDIFF(MINUTE, lockedDate, GETDATE()) >= 1
  123. END
  124. ---------------------------------------------------------------------
  125. */
  126. ---1053 is global bank id ----
  127. DECLARE @controlNoTable TABLE(tranId BIGINT)
  128. INSERT INTO @controlNoTable(tranId)
  129. SELECT TOP 200 id FROM remitTran WITH(NOLOCK)
  130. WHERE pCountry = 'NEPAL' AND payStatus = 'Unpaid' AND tranStatus = 'Payment'
  131. AND paymentMethod = 'Bank Deposit' AND pAgent IS NULL
  132. UNION ALL
  133. SELECT TOP 200 id FROM remitTran WITH(NOLOCK)
  134. WHERE pCountry = 'NEPAL' AND payStatus = 'Unpaid' AND tranStatus = 'Payment'
  135. AND paymentMethod = 'MOBILE WALLET' AND pAgent = @pAgent
  136. --SELECT @pAgent
  137. IF NOT EXISTS(SELECT TOP 1 'X' FROM @controlNoTable)
  138. BEGIN
  139. SELECT '2003' CODE, 'No transaction found to download' [Message], * FROM @errorTable
  140. RETURN
  141. END
  142. SET @payTokenId = LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR) + '00000000000', 10)
  143. --print @pAgentMapCode
  144. UPDATE remitTran SET
  145. payTokenId = @payTokenId
  146. --,pAgentComm = (SELECT amount FROM dbo.FNAGetPayComm
  147. -- (rt.sBranch,(SELECT countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = rt.sCountry),
  148. -- NULL, @psAgent, @pCountryId, null, @pBranch, rt.sAgentCommCurrency
  149. -- ,(select serviceTypeId from servicetypemaster(nolock) where typeTitle = rt.paymentMethod)
  150. -- , rt.cAmt, rt.pAmt, rt.serviceCharge, NULL, NULL
  151. -- ))
  152. --,pAgentCommCurrency =rt.sAgentCommCurrency
  153. ,pAgent = @pAgent
  154. ,pAgentName = @pAgentName
  155. ,lockStatus = 'locked'
  156. ,lockedDate = GETDATE()
  157. ,lockedBy = @USERNAME
  158. FROM remitTran rt(NOLOCK)
  159. INNER JOIN @controlNoTable ct ON rt.id = ct.tranId
  160. SELECT
  161. CODE = 0,
  162. AGENT_SESSION_ID = @AGENT_SESSION_ID,
  163. MESSAGE = 'Success',
  164. CONTROLNO = dbo.FNADecryptString(RT.controlNo),
  165. SENDAGENT = RT.sAgent,
  166. SENDERNAME = UPPER(RT.senderName),
  167. SENDERADDRESS = ISNULL(TS.address,TS.address2),
  168. SENDER_MOBILE = ISNULL(TS.mobile,TS.homePhone),
  169. SENDERCITY = TS.city,
  170. SENDERCOUNTRY = RT.sCountry,
  171. RECEIVERNAME = UPPER(RT.receiverName),
  172. RECEIVERADDRESS = ISNULL(TR.address,TR.address2),
  173. RECEIVERPHONE = ISNULL(TR.homePhone,TR.mobile),
  174. RECEIVERCITY = TR.city,
  175. RECEIVERCOUNTRY = UPPER(RT.pCountry),
  176. TRANSFERAMOUNT = RT.tAmt,
  177. SCURRCOSTRATE = (RT.sCurrCostRate + ISNULL(RT.sCurrHoMargin,0)),
  178. RCURRCOSTRATE = (RT.pCurrCostRate + ISNULL(RT.pCurrHoMargin,0)),
  179. PAYOUTAMT = RT.pAmt,
  180. PAYOUTCURRENCY = RT.payoutCurr,
  181. PAYMENTTYPE = UPPER(RT.paymentMethod),
  182. BANKNAME = RT.pBankName,
  183. BANKBRANCH = RT.pBankBranchName,
  184. BANKACCOUNTNO = RT.accountNo,
  185. BANKCODE = RT.pBank,
  186. BANKBRANCHCODE = AG.extCode,
  187. TRNDATE = RT.approvedDate,
  188. DOWNLOAD_TOKENID = @payTokenId,
  189. RECEIVERMOBILE = TR.mobile,
  190. TRANID = RT.id
  191. FROM remitTran RT WITH (NOLOCK)
  192. LEFT JOIN agentMaster AG WITH (NOLOCK) ON RT.pBankBranch = AG.agentId
  193. INNER JOIN tranSenders TS WITH (NOLOCK) ON RT.id = TS.tranId
  194. INNER JOIN tranReceivers TR WITH (NOLOCK) ON RT.id = TR.tranId
  195. INNER JOIN @controlNoTable cn ON cn.tranId = RT.id
  196. END TRY
  197. BEGIN CATCH
  198. SELECT '9001' CODE, 'Technical Error : ' + ERROR_MESSAGE() MESSAGE
  199. INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
  200. SELECT 'API SP Error','Technical Error : ' + ERROR_MESSAGE() MESSAGE,'ws_proc_AccountDepositOutStanding',@USERNAME, GETDATE()
  201. END CATCH
  202. GO