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.

204 lines
16 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[INBOUND_PROC_AMEND_TRANSACTION] Script Date: 9/27/2019 1:30:13 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROC [dbo].[INBOUND_PROC_AMEND_TRANSACTION](
  9. @flag VARCHAR(20)
  10. ,@agentCode VARCHAR(20) = NULL
  11. ,@userName VARCHAR(20) = NULL
  12. ,@controlNo VARCHAR(50) = NULL
  13. ,@partnerTranNo VARCHAR(50) = NULL
  14. ,@TranId VARCHAR(50) = NULL
  15. --,@SenderFirstName VARCHAR(100)= NULL
  16. --,@SenderMiddleName VARCHAR(100)= NULL
  17. --,@SenderLastName VARCHAR(100)= NULL
  18. --,@SenderIdType VARCHAR(100)= NULL
  19. --,@SenderIdNumber VARCHAR(100)= NULL
  20. ,@ReceiverFirstName VARCHAR(100)= NULL
  21. ,@ReceiverMiddleName VARCHAR(100)= NULL
  22. ,@ReceiverLastName VARCHAR(100)= NULL
  23. ,@ReceiverMobile VARCHAR(100)= NULL
  24. ,@Bank VARCHAR(100)= NULL
  25. ,@AccountNo VARCHAR(100)= NULL
  26. ,@ProcessIdentifier VARCHAR(100) = NULL
  27. )AS
  28. BEGIN TRY
  29. IF @flag='amend-transaction'
  30. BEGIN
  31. DECLARE @agentId BIGINT
  32. SELECT @agentId=agentId FROM dbo.agentMaster(NOLOCK) WHERE agentCode=@agentCode
  33. SELECT @controlNo = dbo.FNAEncryptString(@controlNo), @partnerTranNo = dbo.FNAEncryptString(@partnerTranNo)
  34. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt WHERE irt.id = @TranId AND irt.controlNo = @controlNo AND irt.sAgent=@agentId and irt.controlNo2 = @partnerTranNo)
  35. BEGIN
  36. SELECT 'IB1045' ErrorCode, 'Wrong Control No/Transaction No./Partner Tranaction No' Msg, NULL Id
  37. RETURN
  38. END
  39. IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt WHERE irt.id = @TranId AND irt.sAgent=@agentId AND irt.payStatus= 'UNPAID' AND irt.tranStatus='PAYMENT')
  40. BEGIN
  41. SELECT '1' ErrorCode, 'Transaction is under process, cannot modify the transaction. ' Msg, NULL Id
  42. RETURN
  43. END
  44. IF NOT EXISTS(SELECT 'x' FROM dbo.KoreanBankList(NOLOCK) WHERE bankCode=@Bank)
  45. BEGIN
  46. SELECT 'IBST0013' ErrorCode, dbo.GetMessage('en','IBST0013') Msg, @Bank Id
  47. RETURN
  48. END
  49. --IF NOT EXISTS(SELECT 'x' FROM staticDataValue(NOLOCK) WHERE typeID = 1300 AND valueId=@SenderIdType)
  50. --BEGIN
  51. -- SELECT 'IBST0014' ErrorCode, dbo.GetMessage('en','IBST0014') Msg, @SenderIdType Id
  52. -- RETURN
  53. --END
  54. --DECLARE @oldSenderFirstName VARCHAR(100),@oldSenderMiddleName VARCHAR(100),@oldSenderLastName VARCHAR(100),@oldSenderIdType VARCHAR(100)
  55. -- ,@oldSenderIdNumber VARCHAR(100),
  56. DECLARE @oldReceiverFirstName VARCHAR(100),@oldReceiverMiddleName VARCHAR(100),@oldReceiverLastName VARCHAR(100)
  57. ,@oldReceiverMobile VARCHAR(100),@oldBank VARCHAR(100),@oldBankName VARCHAR(100),@oldAccountNo VARCHAR(100),@oldSenderIdTypeText VARCHAR(100)
  58. ,@newSenderIdTypeText VARCHAR(100),@newpBankName VARCHAR(100)
  59. --SELECT @newSenderIdTypeText=detailTitle FROM dbo.staticDataValue(NOLOCK) WHERE valueId=@SenderIdType
  60. SELECT @newpBankName=BankName FROM dbo.KoreanBankList(NOLOCK) WHERE bankCode=@Bank
  61. SELECT
  62. -- @oldSenderFirstName = ts.firstName
  63. --,@oldSenderMiddleName = ts.middleName
  64. --,@oldSenderLastName = ts.lastName
  65. --,@oldSenderIdType = ts.idType
  66. --,@oldSenderIdTypeText = ISNULL(sdv.detailTitle,ts.idType)
  67. --(SELECT detailTitle FROM dbo.staticDataValue(NOLOCK) WHERE valueId=ts.idType)
  68. --,@oldSenderIdNumber = ts.idNumber
  69. @oldReceiverFirstName = tr.firstName
  70. ,@oldReceiverMiddleName = tr.middleName
  71. ,@oldReceiverLastName = tr.lastName
  72. ,@oldReceiverMobile = tr.mobile
  73. ,@oldBank = rt.pBank
  74. ,@oldBankName = rt.pBankName
  75. ,@oldAccountNo = tr.accountNo
  76. FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) rt
  77. INNER JOIN dbo.INBOUND_TRAN_SENDERS(NOLOCK) ts ON rt.id=ts.tranId
  78. INNER JOIN dbo.INBOUND_TRAN_RECEIVERS(NOLOCK) tr ON rt.id=tr.tranId
  79. LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON ts.idType=CAST(sdv.valueId AS VARCHAR)
  80. WHERE rt.id=@TranId
  81. --DECLARE @oldSenderName VARCHAR(100),@newSenderName varchar(100),
  82. DECLARE @oldReceiverName VARCHAR(100), @newReceiverName VARCHAR(100)
  83. --SET @oldSenderName=@oldSenderFirstName+ISNULL(' '+@oldSenderMiddleName,'')+ISNULL(' '+@oldSenderLastName,'')
  84. --SET @newSenderName=@SenderFirstName+ISNULL(' '+@SenderMiddleName,'')+ISNULL(' '+@SenderLastName,'')
  85. SET @oldReceiverName=@oldReceiverFirstName+ISNULL(' '+@oldReceiverMiddleName,'')+ISNULL(' '+@oldReceiverLastName,'')
  86. SET @newReceiverName=@ReceiverFirstName+ISNULL(' '+@ReceiverMiddleName,'')+ISNULL(' '+@ReceiverLastName,'')
  87. DECLARE @tempTable TABLE(Field VARCHAR(30),oldValue VARCHAR(100),newValue VARCHAR(100), ticket VARCHAR(100))
  88. INSERT INTO @tempTable(
  89. Field,oldValue,newValue,ticket
  90. )SELECT x.Field,ISNULL(x.oldValue,''),ISNULL(x.newValue,''),x.tick FROM (
  91. --SELECT 'Sender Name' AS Field,@oldSenderName AS oldValue,@newSenderName AS newValue,'Sender Name:'+@oldSenderName+' = '+'Sender Name:'+@newSenderName AS tick
  92. --UNION ALL
  93. SELECT 'Receiver Name' AS Field,@oldReceiverName AS oldValue,@newReceiverName AS newValue,'Receiver Name:'+@oldReceiverName+' = '+'Receiver Name:'+@newReceiverName AS tick
  94. UNION ALL
  95. --SELECT 'Sender IdType' AS Field,@oldSenderIdType AS oldValue,@SenderIdType AS newValue,'Sender IdType:'+@oldSenderIdTypeText+' = '+'Sender IdType:'+@newSenderIdTypeText
  96. --UNION ALL
  97. --SELECT 'Sender IdNumber' AS Field,@oldSenderIdNumber AS oldValue,@SenderIdNumber AS newValue,'Sender IdNumber:'+@oldSenderIdNumber+' = '+'Sender IdNumber:'+@SenderIdNumber
  98. --UNION ALL
  99. SELECT 'Receiver Mobile' AS Field,@oldReceiverMobile AS oldValue,@ReceiverMobile AS newValue,'Receiver Mobile:'+@oldReceiverMobile+' = '+'Receiver Mobile:'+@ReceiverMobile
  100. UNION ALL
  101. SELECT 'Receiver Bank' AS Field,@oldBank AS oldValue,@Bank AS newValue,'Receiver Bank:'+@oldBankName+' = '+'Receiver Bank:'+@newpBankName
  102. UNION ALL
  103. SELECT 'Receiver AccountNo' AS Field,@oldAccountNo AS oldValue,@AccountNo AS newValue,'Receiver AccountNo:'+@oldAccountNo+' = '+'Receiver Bank:'+@AccountNo
  104. )x
  105. Declare @message Varchar(MAX);
  106. SELECT @message = COALESCE(@message + ', ' + ticket, ticket)
  107. From @tempTable WHERE oldValue<>newValue
  108. IF @message IS NULL
  109. BEGIN
  110. SELECT '0' ErrorCode,'Transaction Amend success.' Msg, @TranId Id, GETDATE() AS TranDate
  111. RETURN
  112. END
  113. BEGIN TRAN
  114. UPDATE dbo.INBOUND_REMIT_TRAN SET
  115. --senderName=@newSenderName
  116. receiverName=@newReceiverName
  117. ,pBank=@Bank
  118. ,pBankName=@newpBankName
  119. ,accountNo=@AccountNo
  120. WHERE id=@TranId
  121. --UPDATE dbo.INBOUND_TRAN_SENDERS SET
  122. -- firstName=@SenderFirstName
  123. -- ,middleName=@SenderMiddleName
  124. -- ,lastName=@SenderLastName
  125. -- ,fullName=@newSenderName
  126. -- ,idType=@SenderIdType
  127. -- ,idNumber=@SenderIdNumber
  128. --WHERE tranId=@TranId
  129. UPDATE dbo.INBOUND_TRAN_RECEIVERS SET
  130. firstName=@ReceiverFirstName
  131. ,middleName=@ReceiverMiddleName
  132. ,lastName=@ReceiverLastName
  133. ,fullName=@newReceiverName
  134. ,mobile=@ReceiverMobile
  135. ,accountNo=@AccountNo
  136. WHERE tranId=@TranId
  137. INSERT INTO dbo.INBOUND_TROUBLE_TICKET(
  138. tranId,controlNo,[message],msgType,[status],createdBy,createdDate
  139. )SELECT
  140. @TranId,@controlNo,@message,'M','Modified',@userName,GETDATE()
  141. ----## Deactivate the process identifier
  142. UPDATE ai SET ai.isActive = 0 FROM dbo.INBOUND_APIUSER_IDENTIFIER ai WHERE identifier = @ProcessIdentifier AND username = @userName
  143. COMMIT TRAN
  144. IF @@TRANCOUNT=0
  145. BEGIN
  146. SELECT '0' ErrorCode,'Transaction Amend success.' Msg, @TranId Id, GETDATE() AS TranDate
  147. RETURN
  148. END
  149. ELSE
  150. BEGIN
  151. SELECT '1' ErrorCode,'Transaction Amend failed.' Msg, @TranId Id, NULL AS TranDate
  152. RETURN
  153. END
  154. END
  155. END TRY
  156. BEGIN CATCH
  157. IF @@ERROR>0
  158. ROLLBACK TRAN
  159. SELECT '999' ErrorCode, ERROR_MESSAGE() Msg, NULL Id, NULL TranDate
  160. RETURN
  161. END CATCH
  162. GO