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.

528 lines
20 KiB

1 year ago
  1. SET QUOTED_IDENTIFIER ON
  2. SET ANSI_NULLS ON
  3. GO
  4. ALTER PROCEDURE [dbo].[INBOUND_PROC_DO_TRANSACTION](
  5. @Flag VARCHAR(30) = NULL
  6. ,@SenderFirstName VARCHAR(100)= NULL
  7. ,@SenderMiddleName VARCHAR(100)= NULL
  8. ,@SenderLastName VARCHAR(100)= NULL
  9. ,@SenderNativeCountry VARCHAR(100)= NULL
  10. ,@SenderCity VARCHAR(100)= NULL
  11. ,@SenderAddress VARCHAR(100)= NULL
  12. ,@SenderIdType VARCHAR(100)= NULL
  13. ,@SenderIdNumber VARCHAR(100)= NULL
  14. ,@SenderMobile VARCHAR(100)= NULL
  15. ,@SenderEmail VARCHAR(100)= NULL
  16. ,@SenderTransferReason VARCHAR(100)= NULL
  17. ,@SenderFundSource VARCHAR(100)= NULL
  18. ,@ReceiverFirstName VARCHAR(100)= NULL
  19. ,@ReceiverMiddleName VARCHAR(100)= NULL
  20. ,@ReceiverLastName VARCHAR(100)= NULL
  21. ,@ReceiverNativeCountry VARCHAR(100)= NULL
  22. ,@ReceiverCity VARCHAR(100)= NULL
  23. ,@ReceiverAddress VARCHAR(100)= NULL
  24. ,@ReceiverIdType VARCHAR(100)= NULL
  25. ,@ReceiverIdNumber VARCHAR(100)= NULL
  26. ,@ReceiverMobile VARCHAR(100)= NULL
  27. ,@ReceiverEmail VARCHAR(100)= NULL
  28. ,@Bank VARCHAR(100)= NULL
  29. ,@AccountNo VARCHAR(100)= NULL
  30. ,@Relation VARCHAR(100)= NULL
  31. ,@ForexSessionId VARCHAR(100)= NULL
  32. ,@PartnerTranNo VARCHAR(100)= NULL
  33. ,@PaymentMethod VARCHAR(100)= NULL
  34. ,@SendingAmount VARCHAR(100)= NULL
  35. ,@SendingCurrency VARCHAR(100)= NULL
  36. ,@SendingCountry VARCHAR(100)= NULL
  37. ,@ReceivingAmount VARCHAR(100)= NULL
  38. ,@ReceivingCurrency VARCHAR(100)= NULL
  39. ,@ReceivingCountry VARCHAR(100)= NULL
  40. ,@ExRate VARCHAR(100)= NULL
  41. ,@UsdAmount VARCHAR(100)= NULL
  42. ,@ControlNo VARCHAR(20) = NULL
  43. ,@UserName VARCHAR(20) = NULL
  44. ,@AgentCode VARCHAR(20) = NULL
  45. ,@ProcessIdentifier VARCHAR(100)= NULL
  46. )AS
  47. BEGIN TRY
  48. DECLARE @pCurrCostRate Money,@pCurrHoMargin MONEY, @pCostRate MONEY, @tempReceivingAmt MONEY, @EncryptedControlNo VARCHAR(100)
  49. , @SenderName VARCHAR(100), @ReceiverName VARCHAR(100), @ServiceCharge MONEY,@sCountryId INT, @pCountryId INT=118
  50. ,@sCountry VARCHAR(100), @pCountry VARCHAR(100),@pBank VARCHAR(10),@pBankName VARCHAR(100), @agentbalance MONEY=0.0
  51. ,@settleAmt MONEY=2.5, @settleCurr VARCHAR(3), @tranId BIGINT,@id BIGINT,@sSettelingAgent BIGINT
  52. IF @Flag='doTran'
  53. BEGIN
  54. SELECT @sCountryId=countryId,@sCountry=countryName FROM dbo.countryMaster(NOLOCK) WHERE countryCode=@SendingCountry
  55. SELECT @pCountryId=countryId,@pCountry=countryName FROM dbo.countryMaster(NOLOCK) WHERE countryCode=@ReceivingCountry
  56. SELECT @PaymentMethod= serviceTypeId FROM dbo.serviceTypeMaster(NOLOCK) WHERE serviceCode = @PaymentMethod
  57. SELECT @pBank=rowId,@pBankName=BankName FROM dbo.KoreanBankList(NOLOCK) WHERE bankCode=@Bank
  58. DECLARE @sCurrCostRate FLOAT ,
  59. @pAgentComm MONEY ,
  60. @pAgentCommCurrency VARCHAR(3)
  61. DECLARE
  62. @sAgent INT = NULL
  63. ,@sAgentName VARCHAR(100) = NULL
  64. ,@sSuperAgent INT = NULL
  65. ,@sSuperAgentName VARCHAR(100) = NULL
  66. ,@pAgent INT = NULL
  67. ,@pAgentName VARCHAR(100) = NULL
  68. ,@pSuperAgent INT = NULL
  69. ,@pSuperAgentName VARCHAR(100) = NULL
  70. SELECT @sAgent=agentId FROM dbo.applicationUsers(NOLOCK) WHERE userName=@UserName
  71. SET @SenderName = @SenderFirstName + ISNULL(' ' + @SenderMiddleName, '') + ISNULL( ' ' + @SenderLastName, '')
  72. SET @ReceiverName = @ReceiverFirstName + ISNULL(' ' + @ReceiverMiddleName, '') + ISNULL(' ' + @ReceiverLastName, '')
  73. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_EXRATE_CALC_HISTORY(NOLOCK) WHERE forexSessionId=@ForexSessionId AND ISNULL(isExpired,0) = 0)
  74. BEGIN
  75. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0001') Msg, @ForexSessionId Id
  76. RETURN
  77. END
  78. IF NOT EXISTS(SELECT 'x' FROM dbo.KoreanBankList(NOLOCK) WHERE bankCode=@Bank)
  79. BEGIN
  80. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0013') Msg, @Bank Id
  81. RETURN
  82. END
  83. IF NOT EXISTS(SELECT 'x' FROM staticDataValue(NOLOCK) WHERE typeID = 1300 AND valueId=@SenderIdType)
  84. BEGIN
  85. SELECT 'IBST0014' ErrorCode, dbo.GetMessage('en','IBST0014') Msg, @SenderIdType Id
  86. RETURN
  87. END
  88. SELECT
  89. @pCurrCostRate = pCurrCostRate
  90. ,@pCurrHoMargin = pCurrHoMargin
  91. FROM dbo.INBOUND_EXRATE_CALC_HISTORY(NOLOCK) WHERE forexSessionId=@ForexSessionId
  92. SET @pCostRate = ISNULL(@pCurrCostRate,0)-ISNULL(@pCurrHoMargin,0)
  93. IF(@pCostRate)<>@ExRate
  94. BEGIN
  95. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0002') Msg, @ForexSessionId Id
  96. RETURN
  97. END
  98. SET @tempReceivingAmt=@UsdAmount*@pCostRate
  99. IF(@tempReceivingAmt<>@ReceivingAmount)
  100. BEGIN
  101. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0003') Msg, @ForexSessionId Id
  102. RETURN
  103. END
  104. --Get sending agent detail
  105. SELECT
  106. @sAgent = sAgent
  107. ,@sAgentName = sAgentName
  108. ,@sSuperAgent = sSuperAgent
  109. ,@sSuperAgentName = sSuperAgentName
  110. FROM dbo.FNAGetBranchFullDetails(@sAgent)
  111. IF @pAgent IS NULL
  112. SET @pAgent=2080
  113. --Get Receiving agent detail
  114. SELECT @pSuperAgent = sSuperAgent,@pSuperAgentName = sSuperAgentName,
  115. @pAgent = sAgent,@pAgentName = sAgentName
  116. FROM dbo.FNAGetBranchFullDetails(@pAgent)
  117. IF EXISTS(SELECT 'x' FROM dbo.INBOUND_VIEW_REMIT_TRAN(NOLOCK) WHERE controlNo2=dbo.FNAEncryptString(@PartnerTranNo) AND sSuperAgent=@sSuperAgent)
  118. BEGIN
  119. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0012') Msg, NULL Id
  120. RETURN
  121. END
  122. SELECT @ControlNo='80' + LEFT(CAST(ABS(CHECKSUM(NEWID())) AS VARCHAR(10)) + '000000000', 9)
  123. SET @EncryptedControlNo=dbo.FNAEncryptString(@ControlNo)
  124. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_PIN_QUEUE(NOLOCK) WHERE pin=@EncryptedControlNo)
  125. BEGIN
  126. INSERT INTO dbo.INBOUND_PIN_QUEUE(pin)SELECT @EncryptedControlNo
  127. END
  128. --Later get this from setting
  129. DECLARE @chargeCurrency VARCHAR(3)
  130. SELECT @chargeCurrency='USD'
  131. --SELECT @sCountryId,@sSuperAgent,@sAgent,@pCountryId,@pSuperAgent,@pAgent,@PaymentMethod,@UsdAmount,'USD'
  132. SELECT @ServiceCharge = dbo.FNA_INBOUND_GET_SERVICE_CAHARGE(@sCountryId,@sSuperAgent,@sAgent,@pCountryId,@pSuperAgent,@pAgent,@PaymentMethod,@UsdAmount,'USD')
  133. IF @ServiceCharge IS NULL
  134. BEGIN
  135. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0011') Msg, NULL Id
  136. RETURN
  137. END
  138. --Calculate settlement amount
  139. SET @settleAmt=@UsdAmount+@serviceCharge
  140. SET @settleCurr='USD'
  141. SET @pAgentComm=0.0
  142. SET @pAgentCommCurrency='KRW'
  143. PRINT 'fsadfa'
  144. SELECT @sSettelingAgent=agentId FROM dbo.agentMaster(NOLOCK) WHERE parentId=@sSuperAgent AND ISNULL(isSettlingAgent,'N')='Y'
  145. AND ISNULL(isApiPartner,0)=1 AND ISNULL(isActive,'N')='Y' AND ISNULL(isDeleted,'N')='N'
  146. PRINT 'afpple'
  147. SELECT @agentbalance=dbo.FNAGetAvailableBalance(@sSettelingAgent)
  148. IF(@agentbalance<@settleAmt)
  149. BEGIN
  150. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0004') Msg, NULL Id
  151. RETURN
  152. END
  153. DECLARE @receiverOfacRes VARCHAR(MAX), @ofacRes VARCHAR(MAX), @ofacReason VARCHAR(200)
  154. EXEC proc_ofacTracker @flag = 't', @name = @senderName, @Result = @ofacRes OUTPUT
  155. EXEC proc_ofacTracker @flag = 't', @name = @ReceiverName, @Result = @receiverOfacRes OUTPUT
  156. DECLARE @result VARCHAR(MAX)
  157. IF ISNULL(@ofacRes, '') <> ''
  158. BEGIN
  159. SET @ofacReason = 'Matched by sender name'
  160. END
  161. IF ISNULL(@receiverOfacRes, '') <> ''
  162. BEGIN
  163. --SET @ofacRes = @receiverOfacRes
  164. SET @ofacReason = 'Matched by receiver name'
  165. END
  166. IF ISNULL(@ofacRes, '') <> '' AND ISNULL(@receiverOfacRes, '') <> ''
  167. BEGIN
  168. SET @ofacReason = 'Matched by both sender name and receiver name'
  169. END
  170. PRINT @ofacReason
  171. PRINT @ofacRes
  172. DECLARE
  173. @complianceRuleId VARCHAR(20) = NULL
  174. ,@complienceMessage varchar(1000) =NULL
  175. ,@shortMsg varchar(100) =NULL
  176. ,@complienceErrorCode TINYINT = NULL
  177. ,@complianceId BIGINT = NULL
  178. EXEC INBOUND_PROC_COMPLIANCE_RULE_DETAIL
  179. @flag = 'core'
  180. ,@IdNumber = @SenderIdNumber
  181. ,@IdType = @SenderIdType
  182. ,@receiverName = @ReceiverName
  183. ,@UsdAmount = @UsdAmount
  184. ,@sCountryId = @sCountryId
  185. ,@receiverMobile = @ReceiverMobile
  186. ,@deliveryMethod = @PaymentMethod
  187. ,@message = @complienceMessage OUTPUT
  188. ,@shortMessage = @shortMsg OUTPUT
  189. ,@errCode = @complienceErrorCode OUTPUT
  190. ,@ruleId = @complianceRuleId OUTPUT
  191. DECLARE @tempTranStatus VARCHAR(100)='HOLD'
  192. IF(@complienceErrorCode <> 0)
  193. BEGIN
  194. IF(@complienceErrorCode = 1)
  195. BEGIN
  196. SET @tempTranStatus='BLOCK'
  197. END
  198. ELSE IF(@complienceErrorCode = 2)
  199. BEGIN
  200. SET @tempTranStatus='COMPLIANCE HOLD'
  201. END
  202. INSERT INTO dbo.INBOUND_COMPLIANCE_LOG(senderName, senderCountry, senderIdType, senderIdNumber, senderMobile, receiverName
  203. , receiverCountry,payOutAmt,complianceId,complianceReason,complainceDetailMessage,createdBy,createdDate,logType)
  204. SELECT @senderName, @sCountry, @SenderIdType, @SenderIdNumber, @SenderMobile, @receiverName
  205. , @pCountry, @UsdAmount, @complianceRuleId, @shortMsg, @complienceMessage, @UserName, GETDATE(),'core-limit'
  206. SET @complianceId=@@IDENTITY
  207. END
  208. IF @complienceErrorCode = 1
  209. BEGIN
  210. EXEC proc_errorHandler 1, @shortMsg, NULL
  211. RETURN;
  212. END;
  213. IF((ISNULL(@ofacRes, '') <> '' OR ISNULL(@receiverOfacRes, '') <> ''))
  214. BEGIN
  215. IF ISNULL(@ofacRes, '') <> ''
  216. INSERT INBOUND_TRAN_OFAC(TranId, blackListId, reason, flag)
  217. SELECT @tranId, @ofacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@ofacRes)
  218. IF ISNULL(@receiverOfacRes, '') <> ''
  219. INSERT INBOUND_TRAN_OFAC(TranId, blackListId, reason, flag)
  220. SELECT @tranId, @receiverOfacRes, @ofacReason, dbo.FNAGetOFAC_Flag(@receiverOfacRes)
  221. SET @tempTranStatus='OFAC HOLD'
  222. IF @complienceErrorCode='2'
  223. SET @tempTranStatus='COMPLIANCE/OFAC HOLD'
  224. END
  225. BEGIN TRAN
  226. SET @sCurrCostRate = 1
  227. INSERT INTO dbo.INBOUND_REMIT_TRAN_TEMP
  228. (
  229. controlNo,sCurrCostRate,pCurrCostRate,pCurrHoMargin,serviceCharge,chargeCurrency,pAgentComm,pAgentCommCurrency,
  230. sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,pCountry,pSuperAgent,pSuperAgentName,
  231. pAgent,pAgentName,paymentMethod,pBank,pBankName,accountNo,UsdAmount,SettlementAmt,SettlementCurrency,collCurr,tAmt,
  232. pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,
  233. createdDate,createdDateLocal,createdBy,controlNo2,senderName,receiverName
  234. )SELECT
  235. @EncryptedControlNo,@sCurrCostRate,@pCurrCostRate,@pCurrHoMargin,@serviceCharge,@chargeCurrency,@pAgentComm,@pAgentCommCurrency,
  236. @sCountry,@sSuperAgent,@sSuperAgentName,@sAgent,@sAgentName,@pCountry,@pSuperAgent,@pSuperAgentName,
  237. @pAgent,@pAgentName,@paymentMethod,@pBank,@pBankName,@accountNo,@UsdAmount,@settleAmt,@settleCurr,@SendingCurrency,@SendingAmount,
  238. @ReceivingAmount,@ReceivingCurrency,@Relation,@SenderTransferReason,@SenderFundSource,@tempTranStatus,'UNPAID',
  239. GETDATE(),GETUTCDATE(),@UserName,dbo.FNAEncryptString(@PartnerTranNo),@SenderName,@ReceiverName
  240. SET @tranId=@@IDENTITY
  241. INSERT INTO dbo.INBOUND_TRAN_RECEIVERS_TEMP
  242. (
  243. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  244. ,email,mobile,nativeCountry
  245. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,relationId,accountNo,notifySms
  246. )SELECT
  247. @tranId,NULL,@ReceiverFirstName,@ReceiverMiddleName,@ReceiverLastName,@ReceiverName,@ReceiverAddress,@ReceiverCity
  248. ,@ReceiverEmail,@ReceiverMobile,@ReceiverNativeCountry
  249. ,NULL,NULL,@ReceiverIdType,@ReceiverIdNumber,NULL,NULL,NULL,@Relation,@AccountNo,0
  250. INSERT INTO dbo.INBOUND_TRAN_SENDERS_TEMP
  251. (
  252. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  253. ,email,mobile,nativeCountry
  254. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
  255. )SELECT @tranId,NULL,@SenderFirstName,@SenderMiddleName,@SenderLastName,@SenderName,@SenderAddress,@SenderCity
  256. ,@SenderEmail,@SenderMobile,@SenderNativeCountry
  257. ,NULL,NULL,@SenderIdType,@SenderIdNumber,NULL,NULL,NULL
  258. UPDATE dbo.INBOUND_EXRATE_CALC_HISTORY SET controlNo = @ControlNo, isExpired = 1 WHERE forexSessionId = @ForexSessionId
  259. UPDATE dbo.INBOUND_COMPLIANCE_LOG SET holdTranId=@tranId WHERE complianceId=@complianceId
  260. COMMIT TRAN
  261. IF @@TRANCOUNT=0
  262. BEGIN
  263. SELECT '0' ErrorCode, dbo.GetMessage('en','IBST0005') Msg, @tranId Id, @ControlNo ControlNo
  264. RETURN
  265. END
  266. ELSE
  267. BEGIN
  268. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0006') Msg, @tranId Id, @ControlNo ControlNo
  269. RETURN
  270. END
  271. END
  272. IF @Flag='commitTran'
  273. BEGIN
  274. IF EXISTS(SELECT 'x' FROM INBOUND_REMIT_TRAN irt(NOLOCK) WHERE irt.controlNo = dbo.FNAEncryptString(@ControlNo) AND irt.controlNo2 = dbo.FNAEncryptString(@PartnerTranNo))
  275. BEGIN
  276. EXEC dbo.proc_errorHandler '1', 'Transaction has already been committed.', NULL
  277. RETURN
  278. END
  279. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN_TEMP irt(NOLOCK) WHERE irt.controlNo = dbo.FNAEncryptString(@ControlNo) AND irt.controlNo2 = dbo.FNAEncryptString(@PartnerTranNo))
  280. BEGIN
  281. EXEC dbo.proc_errorHandler '1', 'Wrong ControlNo/ PartnerTranNo', NULL
  282. RETURN
  283. END
  284. SELECT
  285. @tranId = id
  286. ,@sAgent = sSuperAgent
  287. ,@settleAmt = SettlementAmt
  288. FROM dbo.INBOUND_REMIT_TRAN_TEMP(NOLOCK)
  289. WHERE controlNo = dbo.FNAEncryptString(@ControlNo)
  290. AND controlNo2 = dbo.FNAEncryptString(@PartnerTranNo)
  291. SELECT @sSettelingAgent=agentId FROM dbo.agentMaster(NOLOCK) WHERE parentId=@sAgent AND ISNULL(isSettlingAgent,'N')='Y'
  292. AND ISNULL(isApiPartner,0)=1 AND ISNULL(isActive,'N')='Y' AND ISNULL(isDeleted,'N')='N'
  293. SELECT @agentbalance=dbo.FNAGetAvailableBalance(@sSettelingAgent)
  294. IF(@agentbalance<@settleAmt)
  295. BEGIN
  296. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0004') Msg, NULL Id
  297. RETURN
  298. END
  299. BEGIN TRAN
  300. INSERT INTO dbo.INBOUND_REMIT_TRAN(
  301. controlNo,sCurrCostRate,pCurrCostRate,pCurrHoMargin,serviceCharge,chargeCurrency,pAgentComm,pAgentCommCurrency,
  302. sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,pCountry,pSuperAgent,pSuperAgentName,
  303. pAgent,pAgentName,paymentMethod,pBank,pBankName,accountNo,UsdAmount,SettlementAmt,SettlementCurrency,collCurr,tAmt,
  304. pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,
  305. createdDate,createdDateLocal,createdBy,controlNo2,senderName,receiverName,approvedDate,approvedDateLocal,approvedBy,holdTranId
  306. )SELECT
  307. controlNo,sCurrCostRate,pCurrCostRate,pCurrHoMargin,serviceCharge,chargeCurrency,pAgentComm,pAgentCommCurrency,
  308. sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,pCountry,pSuperAgent,pSuperAgentName,
  309. pAgent,pAgentName,paymentMethod,pBank,pBankName,accountNo,UsdAmount,SettlementAmt,SettlementCurrency,collCurr,tAmt,
  310. pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,CASE WHEN tranStatus='HOLD' THEN 'PAYMENT' ELSE tranStatus END,'UNPAID',
  311. createdDate,createdDateLocal,createdBy,controlNo2,senderName,receiverName,GETDATE(),GETUTCDATE(),@UserName,@tranId
  312. FROM dbo.INBOUND_REMIT_TRAN_TEMP(NOLOCK) WHERE id=@tranId
  313. SET @id=@@IDENTITY
  314. INSERT INTO dbo.INBOUND_TRAN_RECEIVERS
  315. (
  316. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  317. ,email,mobile,nativeCountry
  318. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,relationId,accountNo,notifySms
  319. )SELECT @id,customerId,firstName,middleName,lastName,fullName,address,city
  320. ,email,mobile,nativeCountry
  321. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,relationId,accountNo,notifySms
  322. FROM dbo.INBOUND_TRAN_RECEIVERS_TEMP(NOLOCK) WHERE tranId=@tranId
  323. INSERT INTO dbo.INBOUND_TRAN_SENDERS
  324. (
  325. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  326. ,email,mobile,nativeCountry
  327. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
  328. )SELECT @id,customerId,firstName,middleName,lastName,fullName,address,city
  329. ,email,mobile,nativeCountry
  330. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
  331. FROM dbo.INBOUND_TRAN_SENDERS_TEMP(NOLOCK) WHERE tranId=@tranId
  332. UPDATE dbo.creditLimit SET availableBalance=(availableBalance-@settleAmt) WHERE agentId=@sSettelingAgent
  333. ----## Deactivate the process identifier
  334. UPDATE ai SET ai.isActive = 0 FROM dbo.INBOUND_APIUSER_IDENTIFIER ai WHERE ai.identifier = @ProcessIdentifier AND ai.username = @UserName
  335. PRINT @tranId
  336. DELETE FROM dbo.INBOUND_TRAN_SENDERS_TEMP WHERE tranId=@tranId
  337. DELETE FROM dbo.INBOUND_TRAN_RECEIVERS_TEMP Where tranId=@tranId
  338. DELETE FROM dbo.INBOUND_REMIT_TRAN_TEMP Where id=@tranId
  339. COMMIT TRAN
  340. IF @@TRANCOUNT=0
  341. BEGIN
  342. SELECT '0' ErrorCode, dbo.GetMessage('en','IBST0007') Msg, @id Id, @ControlNo ControlNo, FORMAT(GETDATE(),'yyyy-MM-dd') AS TranDate
  343. RETURN
  344. END
  345. ELSE
  346. BEGIN
  347. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0008') Msg, @id Id, @ControlNo ControlNo , NULL AS TranDate
  348. RETURN
  349. END
  350. END
  351. IF @Flag='rejectTran'
  352. BEGIN
  353. IF EXISTS(SELECT 'x' FROM dbo.INBOUND_REJECT_TRAN irt(NOLOCK) WHERE irt.controlNo = dbo.FNAEncryptString(@ControlNo) AND irt.controlNo2 = dbo.FNAEncryptString(@PartnerTranNo))
  354. BEGIN
  355. EXEC dbo.proc_errorHandler '1', 'Transaction has already been rejected.', NULL
  356. RETURN
  357. END
  358. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN_TEMP irt(NOLOCK) WHERE irt.controlNo = dbo.FNAEncryptString(@ControlNo) AND irt.controlNo2 = dbo.FNAEncryptString(@PartnerTranNo))
  359. BEGIN
  360. EXEC dbo.proc_errorHandler '1', 'Wrong ControlNo/ PartnerTranNo', NULL
  361. RETURN
  362. END
  363. SELECT
  364. @tranId = id
  365. ,@sAgent = sAgent
  366. ,@settleAmt = SettlementAmt
  367. FROM dbo.INBOUND_REMIT_TRAN_TEMP(NOLOCK)
  368. WHERE controlNo = dbo.FNAEncryptString(@ControlNo)
  369. AND controlNo2 = dbo.FNAEncryptString(@PartnerTranNo)
  370. BEGIN TRAN
  371. INSERT INTO dbo.INBOUND_REJECT_TRAN(
  372. controlNo,sCurrCostRate,pCurrCostRate,pCurrHoMargin,serviceCharge,chargeCurrency,pAgentComm,pAgentCommCurrency,
  373. sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,pCountry,pSuperAgent,pSuperAgentName,
  374. pAgent,pAgentName,paymentMethod,pBank,pBankName,accountNo,UsdAmount,SettlementAmt,SettlementCurrency,collCurr,tAmt,
  375. pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,
  376. createdDate,createdDateLocal,createdBy,controlNo2,senderName,receiverName,rejectDate,rejectDateLocal,rejectBy
  377. )SELECT
  378. controlNo,sCurrCostRate,pCurrCostRate,pCurrHoMargin,serviceCharge,chargeCurrency,pAgentComm,pAgentCommCurrency,
  379. sCountry,sSuperAgent,sSuperAgentName,sAgent,sAgentName,pCountry,pSuperAgent,pSuperAgentName,
  380. pAgent,pAgentName,paymentMethod,pBank,pBankName,accountNo,UsdAmount,SettlementAmt,SettlementCurrency,collCurr,tAmt,
  381. pAmt,payoutCurr,relWithSender,purposeOfRemit,sourceOfFund,tranStatus,payStatus,
  382. createdDate,createdDateLocal,createdBy,controlNo2,senderName,receiverName,GETDATE(),GETUTCDATE(),@UserName
  383. FROM dbo.INBOUND_REMIT_TRAN_TEMP(NOLOCK) WHERE id=@tranId
  384. SET @id=@@IDENTITY
  385. INSERT INTO dbo.INBOUND_REJECT_TRAN_RECEIVERS(
  386. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  387. ,email,mobile,nativeCountry
  388. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,relationId,accountNo,notifySms
  389. )SELECT @id,customerId,firstName,middleName,lastName,fullName,address,city
  390. ,email,mobile,nativeCountry
  391. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate,relationId,accountNo,notifySms
  392. FROM dbo.INBOUND_TRAN_RECEIVERS_TEMP(NOLOCK) WHERE tranId=@tranId
  393. INSERT INTO dbo.INBOUND_REJECT_TRAN_SENDERS
  394. (
  395. tranId,customerId,firstName,middleName,lastName,fullName,address,city
  396. ,email,mobile,nativeCountry
  397. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
  398. )SELECT @id,customerId,firstName,middleName,lastName,fullName,address,city
  399. ,email,mobile,nativeCountry
  400. ,dob,occupation,idType,idNumber,idPlaceOfIssue,issuedDate,validDate
  401. FROM dbo.INBOUND_TRAN_SENDERS_TEMP(NOLOCK) WHERE tranId=@tranId
  402. DELETE FROM dbo.INBOUND_TRAN_SENDERS_TEMP WHERE tranId=@tranId
  403. DELETE FROM dbo.INBOUND_TRAN_RECEIVERS_TEMP Where tranId=@tranId
  404. DELETE FROM dbo.INBOUND_REMIT_TRAN_TEMP Where id=@tranId
  405. ----## Deactivate the process identifier
  406. UPDATE ai SET ai.isActive = 0 FROM dbo.INBOUND_APIUSER_IDENTIFIER ai WHERE ai.identifier = @ProcessIdentifier AND ai.username = @UserName
  407. COMMIT TRAN
  408. IF @@TRANCOUNT=0
  409. BEGIN
  410. SELECT '0' ErrorCode, dbo.GetMessage('en','IBST0009') Msg, NULL Id, @ControlNo ControlNo, FORMAT(GETDATE(),'yyyy-MM-dd') AS TranDate
  411. RETURN
  412. END
  413. ELSE
  414. BEGIN
  415. SELECT '1' ErrorCode, dbo.GetMessage('en','IBST0010') Msg, NULL Id, @ControlNo ControlNo , NULL AS TranDate
  416. RETURN
  417. END
  418. END
  419. END TRY
  420. BEGIN CATCH
  421. IF @@TRANCOUNT>0
  422. ROLLBACK TRAN
  423. SELECT '999' ErrorCode, ERROR_MESSAGE() Msg,NULL Id, NULL ControlNo , NULL AS TranDate
  424. RETURN
  425. END CATCH
  426. GO