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.

82 lines
6.8 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[remoteSP_tranModify] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[remoteSP_tranModify]
  9. AS
  10. SET XACT_ABORT ON
  11. BEGIN
  12. BEGIN TRANSACTION
  13. IF EXISTS(SELECT TOP 1 'X' FROM rs_remitTranModify WITH(NOLOCK))
  14. BEGIN
  15. SELECT rtm.* INTO #tempData FROM rs_remitTranModify rtm WITH(NOLOCK)
  16. INNER JOIN FastMoneyPro_remit.dbo.remitTran rt WITH(NOLOCK) ON rtm.controlNo = rt.controlNo
  17. UPDATE remitTran SET
  18. senderName = CASE WHEN rs.modifyField = 'senderName' THEN rs.newValue ELSE SenderName END
  19. ,receiverName = CASE WHEN rs.modifyField = 'receiverName' THEN rs.newValue ELSE ReceiverName END
  20. ,accountNo = CASE WHEN rs.modifyField = 'accountNo' THEN rs.newValue ELSE accountNo END
  21. ,pBankBranchName = CASE WHEN rs.modifyField = 'branchname' THEN rs.newValue ELSE pBankBranchName END
  22. FROM remitTran rt
  23. INNER JOIN #tempData rs ON rt.controlNo = rs.controlNo
  24. IF EXISTS(SELECT 'X' FROM #tempData WHERE modifyField IN ('senderName','sAddress'))
  25. BEGIN
  26. UPDATE tranSenders SET
  27. firstName = (SELECT firstName FROM dbo.FNASplitName(rs.newValue))
  28. ,middleName = (SELECT middleName FROM dbo.FNASplitName(rs.newValue))
  29. ,lastName1 = (SELECT lastName1 FROM dbo.FNASplitName(rs.newValue))
  30. ,lastName2 = (SELECT lastName2 FROM dbo.FNASplitName(rs.newValue))
  31. ,fullName = rs.newValue
  32. FROM tranSenders sen
  33. INNER JOIN remitTran rt ON sen.tranId = rt.id
  34. INNER JOIN #tempData rs ON rt.controlNo = rs.controlNo
  35. WHERE modifyField IN ('senderName')
  36. UPDATE tranSenders SET
  37. address = CASE WHEN rs.modifyField = 'sAddress' THEN rs.newValue ELSE address END
  38. FROM tranSenders sen
  39. INNER JOIN remitTran rt ON sen.tranId = rt.id
  40. INNER JOIN #tempData rs ON rt.controlNo = rs.controlNo
  41. WHERE modifyField IN ('sAddress')
  42. END
  43. IF EXISTS(SELECT 'X' FROM #tempData WHERE modifyField IN ('receiverName','rAddress','rIdType','rIdNo','rContactNo'))
  44. BEGIN
  45. UPDATE tranReceivers SET
  46. firstName = (SELECT firstName FROM dbo.FNASplitName(rs.newValue))
  47. ,middleName = (SELECT middleName FROM dbo.FNASplitName(rs.newValue))
  48. ,lastName1 = (SELECT lastName1 FROM dbo.FNASplitName(rs.newValue))
  49. ,lastName2 = (SELECT lastName2 FROM dbo.FNASplitName(rs.newValue))
  50. ,fullName = rs.newValue
  51. FROM tranReceivers rec
  52. INNER JOIN remitTran rt ON rec.tranId = rt.id
  53. INNER JOIN #tempData rs ON rt.controlNo = rs.controlNo
  54. WHERE modifyField IN ('receiverName')
  55. UPDATE tranReceivers SET
  56. address = CASE WHEN rs.modifyField = 'rAddress' THEN rs.newValue ELSE address END
  57. ,idType = CASE WHEN rs.modifyField = 'rIdType' THEN rs.newValue ELSE idType END
  58. ,idNumber = CASE WHEN rs.modifyField = 'rIdNo' THEN rs.newValue ELSE idNumber END
  59. ,homePhone = CASE WHEN rs.modifyField = 'rContactNo' THEN rs.newValue ELSE homePhone END
  60. FROM tranReceivers rec
  61. INNER JOIN remitTran rt ON rec.tranId = rt.id
  62. INNER JOIN #tempData rs ON rt.controlNo = rs.controlNo
  63. WHERE modifyField IN ('rAddress','rIdType','rIdNo','rContactNo')
  64. END
  65. DELETE FROM rs_remitTranModify
  66. FROM rs_remitTranModify rs
  67. INNER JOIN #tempData t ON rs.id = t.id
  68. DROP TABLE #tempData
  69. END
  70. COMMIT TRANSACTION
  71. END
  72. GO