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.

158 lines
5.5 KiB

1 year ago
  1. /**
  2. EXEC INBOUND_PROC_MOBILE @flag='bankAccounts',@customerId = '40154'
  3. */
  4. ALTER PROCEDURE INBOUND_PROC_MOBILE(
  5. @flag VARCHAR(100) = NULL
  6. ,@UserId VARCHAR(100) = NULL
  7. ,@FromDate VARCHAR(10) = NULL
  8. ,@ToDate VARCHAR(10) = NULL
  9. ,@customerId VARCHAR(100) = NULL
  10. ,@tranId VARCHAR(30) = NULL
  11. ,@Id VARCHAR(30) = NULL
  12. ,@accountId VARCHAR(30) = NULL
  13. )AS
  14. BEGIN
  15. IF @FromDate IS NULL OR @ToDate IS NULL
  16. BEGIN
  17. SET @FromDate = '2019-10-01'--FORMAT(GETDATE(),'yyyy-MM-dd')
  18. SET @ToDate = FORMAT(GETDATE(),'yyyy-MM-dd')
  19. END
  20. IF @flag = 'tranHistory'
  21. BEGIN
  22. SELECT
  23. tranDate = FORMAT(irt.approvedDate,'yyyy-MM-dd')
  24. ,senderName = irt.senderName
  25. ,receivedAmount = irt.pAmt
  26. ,bank = kbl.BankName
  27. ,bankCode = kbl.bankCode
  28. ,accountNo = irt.accountNo
  29. ,serviceFee = irt.serviceCharge
  30. ,MobileNo = ''
  31. ,status = CASE WHEN irt.payStatus NOT IN ('PAID','UNPAID','CANCEL') THEN 'PROCESSING' ELSE irt.payStatus END
  32. ,controlNo = dbo.FNADecryptString(irt.controlNo)
  33. ,sendingCountryCode = cm.CountryCode
  34. ,sendingCountryName = cm.countryName
  35. ,receivingCountryCode = cms.CountryCode
  36. ,receivingCountryName = cms.countryName
  37. ,CONVERT(bit,CASE WHEN icl.accountNo IS NOT NULL AND irt.payStatus IN ('PAID','POST','UNPAID') then 1 ELSE 0 END) IsAccountReg
  38. FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt
  39. INNER JOIN dbo.INBOUND_TRAN_RECEIVERS(NOLOCK) itr ON irt.id = itr.tranId
  40. INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId = irt.pBank
  41. INNER JOIN countryMaster(NOLOCK) cm ON cm.countryName = irt.sCountry
  42. INNER JOIN countryMaster(NOLOCK) cms ON cms.countryName = irt.pCountry
  43. LEFT JOIN INBOUND_CUSTOMERBANKLIST(NOLOCK) icl ON icl.accountNo=irt.accountNo AND icl.bankCode = kbl.bankCode AND icl.customerId= @UserId
  44. WHERE irt.approvedDate BETWEEN @FromDate AND @ToDate + ' 23:59:59' AND itr.customerId = @UserId
  45. END
  46. IF @flag = 'tranDetail'
  47. BEGIN
  48. SELECT
  49. tranDate = FORMAT(irt.approvedDate,'yyyy-MM-dd')
  50. ,senderName = irt.senderName
  51. ,receivedAmount = irt.pAmt
  52. ,bank = kbl.BankName
  53. ,bankCode = kbl.bankCode
  54. ,accountNo = irt.accountNo
  55. ,serviceFee = irt.serviceCharge
  56. ,MobileNo = ''
  57. ,status = CASE WHEN irt.payStatus NOT IN ('PAID','UNPAID','CANCEL') THEN 'PROCESSING' ELSE irt.payStatus END
  58. ,controlNo = dbo.FNADecryptString(irt.controlNo)
  59. ,sendingCountryCode = cm.CountryCode
  60. ,sendingCountryName = cm.countryName
  61. ,receivingCountryCode = cms.CountryCode
  62. ,receivingCountryName = cms.countryName
  63. ,CONVERT(bit,CASE WHEN icl.accountNo IS NOT NULL AND irt.payStatus IN ('PAID','POST','UNPAID') then 1 ELSE 0 END) IsAccountReg
  64. FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt
  65. INNER JOIN dbo.INBOUND_TRAN_RECEIVERS(NOLOCK) itr ON irt.id = itr.tranId
  66. INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId = irt.pBank
  67. INNER JOIN countryMaster(NOLOCK) cm ON cm.countryName = irt.sCountry
  68. INNER JOIN countryMaster(NOLOCK) cms ON cms.countryName = irt.pCountry
  69. LEFT JOIN INBOUND_CUSTOMERBANKLIST(NOLOCK) icl ON icl.accountNo=irt.accountNo AND icl.bankCode = kbl.bankCode AND icl.customerId= @UserId
  70. WHERE irt.controlNo = dbo.FNAEncryptString(@tranId) AND itr.customerId = @UserId
  71. END
  72. IF @flag = 'bankAccounts'
  73. BEGIN
  74. DECLARE @bank VARCHAR(100), @account VARCHAR(100)
  75. SELECT
  76. @bank = kbl.bankCode, @account = bankAccountNo
  77. FROM dbo.customerMaster(NOLOCK) cm
  78. INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId=cm.bankName
  79. WHERE customerId = @customerId
  80. IF NOT EXISTS(SELECT 'x' FROM INBOUND_CUSTOMERBANKLIST(NOLOCK) WHERE bankCode= @bank AND accountNo = @account AND customerId = @customerId)
  81. BEGIN
  82. INSERT INTO dbo.INBOUND_CUSTOMERBANKLIST
  83. (
  84. customerId,
  85. customerName,
  86. certNumber,
  87. certLimitCount,
  88. bankCode,
  89. accountNo,
  90. accountName,
  91. isRealNameVerified,
  92. isPennyTest,
  93. action,
  94. createdDate,
  95. createdBy,
  96. reqDate,
  97. certDate
  98. )SELECT customerId,firstName,0,0,kbl.bankCode,bankAccountNo,firstName,1,1,'SUCCESS',GETDATE(),email,GETDATE(),GETDATE()
  99. FROM dbo.customerMaster(NOLOCK) cm
  100. INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId=cm.bankName
  101. WHERE customerId = @customerId
  102. END
  103. SELECT
  104. ibl.rowId AS Id
  105. ,IsPrimary = CASE WHEN ibl.bankCode = @bank AND ibl.accountNo = @account THEN 1 ELSE 0 END
  106. ,kbl.bankCode
  107. ,ibl.AccountNo
  108. ,Bank = kbl.BankName
  109. ,IsPennyTestSuccess = CASE WHEN ibl.action='SUCCESS' THEN 1 ELSE 0 END
  110. FROM dbo.INBOUND_CUSTOMERBANKLIST ibl (NOLOCK) INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON ibl.bankCode = kbl.bankCode
  111. WHERE customerId = @customerId
  112. END
  113. IF @flag = 'deleteAccount'
  114. BEGIN
  115. BEGIN TRAN
  116. INSERT INTO INBOUND_CUSTOMERBANKLIST_HISTORY(
  117. oldRowId,customerId,customerName,certNumber,certLimitCount,bankCode,accountNo,accountName,isRealNameVerified,isPennyTest,action,createdDate,createdBy,reqDate,certDate
  118. ) SELECT
  119. rowId,customerId,customerName,certNumber,certLimitCount,bankCode,accountNo,accountName,isRealNameVerified,isPennyTest,action,createdDate,createdBy,reqDate,certDate
  120. FROM INBOUND_CUSTOMERBANKLIST(NOLOCK) WHERE customerId = @customerId AND rowId = @accountId
  121. DELETE FROM INBOUND_CUSTOMERBANKLIST WHERE customerId = @customerId AND rowId = @accountId
  122. COMMIT TRAN
  123. IF @@TRANCOUNT=0
  124. BEGIN
  125. SELECT '0' Code, 'Account has been removed successfully.' Msg, NULL Id
  126. RETURN
  127. END
  128. ELSE
  129. BEGIN
  130. SELECT '1' Code, 'Failed to remove account.' Msg, NULL Id
  131. RETURN
  132. END
  133. END
  134. END