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.

389 lines
22 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_ApCashExpressTXN] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. EXEC proc_ApCashExpressTXN @flag = 'details', @user = 'bajrashali_b1', @tranId = '1', @controlNo = '91191505349'
  10. */
  11. CREATE proc [dbo].[proc_ApCashExpressTXN] (
  12. @flag VARCHAR(50)
  13. ,@rowId BIGINT = NULL
  14. ,@controlNo VARCHAR(20) = NULL
  15. ,@agentId VARCHAR(10) = NULL
  16. ,@agentRequestId VARCHAR(30) = NULL
  17. ,@beneAddress VARCHAR(200) = NULL
  18. ,@beneBankAccountNumber VARCHAR(30) = NULL
  19. ,@beneBankBranchCode VARCHAR(20) = NULL
  20. ,@beneBankBranchName VARCHAR(100) = NULL
  21. ,@beneBankCode VARCHAR(30) = NULL
  22. ,@beneBankName VARCHAR(100) = NULL
  23. ,@beneIdNo VARCHAR(20) = NULL
  24. ,@beneName VARCHAR(200) = NULL
  25. ,@rFirstName VARCHAR(50) = NULL
  26. ,@rMiddleName VARCHAR(50) = NULL
  27. ,@rLastName1 VARCHAR(50) = NULL
  28. ,@rLastName2 VARCHAR(50) = NULL
  29. ,@benePhone VARCHAR(100) = NULL
  30. ,@custAddress VARCHAR(500) = NULL
  31. ,@custIdDate VARCHAR(50) = NULL
  32. ,@custIdNo VARCHAR(20) = NULL
  33. ,@custIdType VARCHAR(20) = NULL
  34. ,@custName VARCHAR(200) = NULL
  35. ,@sFirstName VARCHAR(50) = NULL
  36. ,@sMiddleName VARCHAR(50) = NULL
  37. ,@sLastName1 VARCHAR(50) = NULL
  38. ,@sLastName2 VARCHAR(50) = NULL
  39. ,@custNationality VARCHAR(100) = NULL
  40. ,@custPhone VARCHAR(30) = NULL
  41. ,@description VARCHAR(500) = NULL
  42. ,@destinationAmount VARCHAR(10) = NULL
  43. ,@destinationCurrency VARCHAR(5) = NULL
  44. ,@gitNo VARCHAR(15) = NULL
  45. ,@paymentMode VARCHAR(30) = NULL
  46. ,@purpose VARCHAR(100) = NULL
  47. ,@responseCode VARCHAR(10) = NULL
  48. ,@settlementCurrency VARCHAR(5) = NULL
  49. ,@status VARCHAR(100) = NULL
  50. ,@pBranch INT = NULL
  51. ,@user VARCHAR(50) = NULL
  52. ,@rIdType VARCHAR(50) = NULL
  53. ,@rIdNo VARCHAR(30) = NULL
  54. ,@rPlaceOfIssue VARCHAR(200) = NULL
  55. ,@rIssuedDate DATETIME = NULL
  56. ,@rValidDate DATETIME = NULL
  57. ,@sortBy VARCHAR(50) = NULL
  58. ,@sortOrder VARCHAR(5) = NULL
  59. ,@pageSize INT = NULL
  60. ,@pageNumber INT = NULL
  61. )
  62. AS
  63. DECLARE
  64. @select_field_list VARCHAR(MAX)
  65. ,@extra_field_list VARCHAR(MAX)
  66. ,@table VARCHAR(MAX)
  67. ,@sql_filter VARCHAR(MAX)
  68. SET NOCOUNT ON
  69. SET XACT_ABORT ON
  70. SELECT @pageSize = 1000, @pageNumber = 1
  71. DECLARE
  72. @tranId BIGINT
  73. ,@sBranch INT
  74. ,@sBranchName VARCHAR(100)
  75. ,@sAgent INT
  76. ,@sAgentName VARCHAR(100)
  77. ,@sSuperAgent INT
  78. ,@sSuperAgentName VARCHAR(100)
  79. ,@pSuperAgent INT
  80. ,@pSuperAgentName VARCHAR(100)
  81. ,@pAgent INT
  82. ,@pAgentName VARCHAR(100)
  83. ,@pBranchName VARCHAR(100)
  84. ,@pCountry VARCHAR(100)
  85. ,@pState VARCHAR(100)
  86. ,@pDistrict VARCHAR(100)
  87. ,@pLocation INT
  88. ,@deliveryMethod VARCHAR(100)
  89. ,@cAmt MONEY
  90. ,@pAmt MONEY
  91. ,@serviceCharge MONEY
  92. ,@pAgentComm MONEY
  93. ,@pAgentCommCurrency VARCHAR(3)
  94. ,@pSuperAgentComm MONEY
  95. ,@pSuperAgentCommCurrency VARCHAR(3)
  96. ,@pHubComm MONEY
  97. ,@pHubCommCurrency VARCHAR(3)
  98. ,@collMode INT
  99. ,@sendingCustType INT
  100. ,@receivingCurrency INT
  101. ,@senderId INT
  102. ,@payoutMethod INT
  103. ,@agentType INT
  104. ,@actAsBranchFlag CHAR(1)
  105. ,@tokenId BIGINT
  106. ,@controlNoEncrypted VARCHAR(20)
  107. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  108. IF @flag = 'temp'
  109. BEGIN
  110. INSERT INTO ApCashExpressTXN (
  111. controlNo
  112. ,agentId
  113. ,agentRequestId
  114. ,beneAddress
  115. ,beneBankAccountNumber
  116. ,beneBankBranchCode
  117. ,beneBankBranchName
  118. ,beneBankCode
  119. ,beneBankName
  120. ,beneIdNo
  121. ,beneName
  122. ,benePhone
  123. ,custAddress
  124. ,custIdDate
  125. ,custIdNo
  126. ,custIdType
  127. ,custName
  128. ,custNationality
  129. ,custPhone
  130. ,[description]
  131. ,destinationAmount
  132. ,destinationCurrency
  133. ,gitNo
  134. ,paymentMode
  135. ,purpose
  136. ,responseCode
  137. ,settlementCurrency
  138. ,[status]
  139. ,fetchUser
  140. ,fetchDate
  141. )
  142. SELECT
  143. @controlNo
  144. ,@agentId
  145. ,@agentRequestId
  146. ,@beneAddress
  147. ,@beneBankAccountNumber
  148. ,@beneBankBranchCode
  149. ,@beneBankBranchName
  150. ,@beneBankCode
  151. ,@beneBankName
  152. ,@beneIdNo
  153. ,@beneName
  154. ,@benePhone
  155. ,@custAddress
  156. ,@custIdDate
  157. ,@custIdNo
  158. ,CASE WHEN @custIdType = '1' THEN 'Passport'
  159. WHEN @custIdType = '2' THEN 'Driving License'
  160. WHEN @custIdType = '3' THEN 'Work Permit'
  161. WHEN @custIdType = '4' THEN 'National ID'
  162. WHEN @custIdType = '5' THEN 'Civil ID'
  163. WHEN @custIdType = '6' THEN 'Election ID'
  164. WHEN @custIdType = '7' THEN 'Ration Card'
  165. WHEN @custIdType = '8' THEN 'Health Card'
  166. WHEN @custIdType = '99' THEN 'Others'
  167. END
  168. ,@custName
  169. ,@custNationality
  170. ,@custPhone
  171. ,@description
  172. ,@destinationAmount
  173. ,@destinationCurrency
  174. ,@gitNo
  175. ,CASE WHEN @paymentMode = '1' THEN 'Cash Payment'
  176. WHEN @paymentMode = '2' THEN 'Bank Deposit' END
  177. ,@purpose
  178. ,@responseCode
  179. ,@settlementCurrency
  180. ,@status
  181. ,@user
  182. ,GETDATE()
  183. SET @rowId = SCOPE_IDENTITY()
  184. SELECT * FROM ApCashExpressTXN WHERE sno = @rowId
  185. END
  186. ELSE IF @flag = 'pay'
  187. BEGIN
  188. SELECT
  189. @custName = custName
  190. ,@custAddress = custAddress
  191. ,@custNationality = custNationality
  192. ,@custPhone = custPhone
  193. ,@custIdType = custIdType
  194. ,@custIdNo = custIdNo
  195. ,@custIdDate = custIdDate
  196. ,@beneName = beneName
  197. ,@beneAddress = beneAddress
  198. ,@benePhone = benePhone
  199. ,@beneBankAccountNumber = beneBankAccountNumber
  200. ,@beneBankBranchCode = beneBankBranchCode
  201. ,@beneBankBranchName = beneBankBranchName
  202. ,@beneBankCode = beneBankCode
  203. ,@beneBankName = beneBankName
  204. ,@beneIdNo = beneIdNo
  205. ,@destinationAmount = destinationAmount
  206. ,@destinationCurrency = destinationCurrency
  207. ,@paymentMode = paymentMode
  208. ,@purpose = purpose
  209. ,@settlementCurrency = settlementCurrency
  210. FROM ApCashExpressTXN WHERE sno = @rowId
  211. --1. Find Sending Agent Details-------------------------------------------------------------------------
  212. SELECT @sBranch = agentId, @agentType = agentType FROM agentMaster WITH(NOLOCK) WHERE agentCode = 'CASHEXPRESS' AND ISNULL(isDeleted, 'N') <> 'Y' AND ISNULL(isActive, 'N') = 'Y'
  213. IF @agentType = 2903
  214. BEGIN
  215. SET @sAgent = @sBranch
  216. END
  217. ELSE
  218. BEGIN
  219. SELECT @sAgent = parentId, @sBranchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @sBranch
  220. END
  221. SELECT @sSuperAgent = parentId, @sAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @sAgent
  222. SELECT @sSuperAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @sSuperAgent
  223. --End of Find Sending Agent Details----------------------------------------------------------------------
  224. --2. Find Payout Agent Details---------------------------------------------------------------------------
  225. IF @pBranch IS NULL
  226. SELECT @pBranch = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
  227. SELECT
  228. @pCountry = agentCountry
  229. ,@pState = agentState
  230. ,@pDistrict = agentDistrict
  231. ,@pLocation = agentLocation
  232. FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
  233. --Payout
  234. SELECT @agentType = agentType, @pbranchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
  235. --Check for branch or agent acting as branch
  236. IF @agentType = 2903 --Agent
  237. BEGIN
  238. SET @pAgent = @pBranch
  239. END
  240. ELSE
  241. BEGIN
  242. SELECT @pAgent = parentId, @pBranchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
  243. END
  244. SELECT @pSuperAgent = parentId, @pAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
  245. SELECT @pSuperAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pSuperAgent
  246. --End of Find Payout Agent Details--------------------------------------------------------------------------------
  247. --3. Find Settling Agent-------------------------------------------------------------------------------------------
  248. DECLARE @settlingAgent INT = NULL
  249. SELECT @settlingAgent = agentId FROM agentMaster WHERE agentId = @pBranch AND isSettlingAgent = 'Y'
  250. IF @settlingAgent IS NULL
  251. SELECT @settlingAgent = agentId FROM agentMaster WHERE agentId = @pAgent AND isSettlingAgent = 'Y'
  252. IF @settlingAgent IS NULL
  253. SELECT @settlingAgent = agentId FROM agentMaster WHERE agentId = @pSuperAgent AND isSettlingAgent = 'Y'
  254. --End of Find Settling Agent--------------------------------------------------------------------------------------
  255. --4. Commission Calculation Start
  256. SET @payoutMethod = 'Cash Payment'
  257. DECLARE @pCountryId INT = NULL
  258. SELECT @pCountryId = countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = @pCountry
  259. SELECT @pAgentComm = 0
  260. SELECT @pAgentCommCurrency = 'NPR'
  261. --Commission Calculation End
  262. BEGIN TRANSACTION
  263. BEGIN
  264. --Transaction Insert
  265. INSERT INTO remitTran(
  266. controlNo
  267. ,pAgentComm
  268. ,pAgentCommCurrency
  269. ,pSuperAgentComm
  270. ,pSuperAgentCommCurrency
  271. ,pHubComm
  272. ,pHubCommCurrency
  273. ,sBranch
  274. ,sBranchName
  275. ,sAgent
  276. ,sAgentName
  277. ,sSuperAgent
  278. ,sSuperAgentName
  279. ,pBranch
  280. ,pBranchName
  281. ,pAgent
  282. ,pAgentName
  283. ,pSuperAgent
  284. ,pSuperAgentName
  285. ,pCountry
  286. ,pState
  287. ,pDistrict
  288. ,pLocation
  289. ,tAmt
  290. ,collCurr
  291. ,pAmt
  292. ,payoutCurr
  293. ,paymentMethod
  294. ,tranStatus
  295. ,payStatus
  296. ,createdBy
  297. ,createdDate
  298. ,approvedBy
  299. ,approvedDate
  300. ,paidDate
  301. ,paidDateLocal
  302. ,paidBy
  303. )
  304. SELECT
  305. @controlNoEncrypted
  306. ,@pAgentComm
  307. ,@pAgentCommCurrency
  308. ,@pSuperAgentComm
  309. ,@pSuperAgentCommCurrency
  310. ,@pHubComm
  311. ,@pHubCommCurrency
  312. ,@sBranch
  313. ,@sBranchName
  314. ,@sAgent
  315. ,@sAgentName
  316. ,@sSuperAgent
  317. ,@sSuperAgentName
  318. ,@pBranch
  319. ,@pBranchName
  320. ,@pAgent
  321. ,@pAgentName
  322. ,@pSuperAgent
  323. ,@pSuperAgentName
  324. ,@pCountry
  325. ,@pState
  326. ,@pDistrict
  327. ,@pLocation
  328. ,NULL
  329. ,NULL
  330. ,@destinationAmount
  331. ,@destinationCurrency
  332. ,@paymentMode
  333. ,'Paid'
  334. ,'Paid'
  335. ,'system'
  336. ,NULL
  337. ,NULL
  338. ,NULL
  339. ,GETDATE()
  340. ,dbo.FNADateFormatTZ(GETDATE(), @user)
  341. ,@user
  342. SET @tranId = SCOPE_IDENTITY()
  343. --Sender Insert
  344. INSERT INTO tranSenders(
  345. tranId, firstName, middleName, lastName1, lastName2, address, mobile
  346. )
  347. SELECT
  348. @tranId,@sFirstName,@sMiddleName,@sLastName1,@sLastName2,@custAddress,@custPhone
  349. --Receiver Insert
  350. INSERT INTO tranReceivers(
  351. tranId, firstName, middleName, lastName1, lastName2, address, mobile
  352. , idType, idNumber, idPlaceOfIssue, issuedDate, validDate
  353. )
  354. SELECT
  355. @tranId,@rFirstName,@rMiddleName,@rLastName1,@rLastName2,@beneAddress,@benePhone
  356. ,@rIdType,@rIdNo,@rPlaceOfIssue,@rIssuedDate,@rValidDate
  357. END
  358. --A/C Master
  359. EXEC proc_updatePayTopUpLimit @settlingAgent, @destinationAmount
  360. IF @@TRANCOUNT > 0
  361. COMMIT TRANSACTION
  362. EXEC [proc_errorHandler] 0, 'Transaction paid successfully', @tranId
  363. END
  364. GO