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.

148 lines
14 KiB

1 year ago
  1. ----------------------------------------------------------------------------------
  2. -- Procedure ID : PROC_KFTC_DOMESTIC_TRAN_HISTORY
  3. -- Procedure Name : Domestic Remittance \ Lt
  4. -- Dev Date : 2019.09.17
  5. -- Developer : t
  6. -- Desc :
  7. ----------------------------------------------------------------------------------
  8. ALTER PROC [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY]
  9. (
  10. @flag VARCHAR(20),
  11. @customerId VARCHAR(20),
  12. @fromDate VARCHAR(50) = NULL,
  13. @toDate VARCHAR(50) = NULL,
  14. @bankCode VARCHAR(5) = NULL,
  15. @accountNumber VARCHAR(50) = NULL,
  16. @userId VARCHAR(50) = NULL,
  17. @tranId VARCHAR(50) = NULL
  18. )
  19. AS
  20. DECLARE @sql VARCHAR(MAX)
  21. SET NOCOUNT ON
  22. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  23. ----------------------------------------------------------------------------------
  24. -- Procedure Start
  25. -- exec [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY] @flag = 'RECENTLIST', @customerId = '40154'
  26. -- exec [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY] @flag = 'RECENTLIST', @customerId = '40154',@fromDate = '2019-08-25' ,@toDate = '2019-09-25'
  27. -- exec [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY] @flag = 'domestictranhis', @customerId = 'temp',@userId = 'maxkim@gmeremit.com'
  28. -- exec [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY] @flag = 'domestictranhis', @customerId = '40154',@fromDate = '2019-08-25' ,@toDate = '2019-09-25'
  29. -- exec [dbo].[PROC_KFTC_DOMESTIC_TRAN_HISTORY] @flag = 'domestictranhis', @customerId = 'temp',@tranId = '20190919144446711'
  30. -- EXEC PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag='domestictranhis', @customerId='temp', @tranId='20190919144446711'
  31. ----------------------------------------------------------------------------------
  32. BEGIN
  33. IF @flag = 'RECENTLIST' --Ĭ ,
  34. BEGIN
  35. /* t Ĭ $ Jij] <Ĭļ \tǴ̠>| lt \<\ ͜*/
  36. SET @sql='SELECT B.CUSTOMERID,B.REQACCOUNTNUM RECIPIENT_ACCOUNT,B.REQACCOUNTHOLDERNAME RECIPIENT_NAME,B.ROWID,B.BANKCODE,B.BANKNAME
  37. FROM (
  38. SELECT A.CUSTOMERID,A.REQACCOUNTNUM,A.REQACCOUNTHOLDERNAME,A.ROWID,A.BANKCODE,A.BANKNAME,A.TRAN_DATE,rank() over(partition by A.CUSTOMERID order by A.TRAN_DATE desc) as Rank
  39. FROM (
  40. SELECT HIS.CUSTOMERID,HIS.REQACCOUNTNUM,HIS.REQACCOUNTHOLDERNAME,KFTCBANK.ROWID,KFTCBANK.BANKCODE,KFTCBANK.BANKNAME,MAX(HIS.REQTRANSFERDTIME) TRAN_DATE
  41. FROM KFTC_DOMESTIC_HISTORY HIS
  42. INNER JOIN ( SELECT rowId, bankCode, bankName
  43. FROM KoreanBankList(nolock)
  44. WHERE IsActive=''1'' AND (bankCode < ''040'' OR bankCode >''080'' ) ) KFTCBANK ON HIS.REQBANKCODESTD = KFTCBANK.bankCode
  45. WHERE HIS.transferType = ''deposit''
  46. AND HIS.CUSTOMERID = ' + @customerId
  47. IF ISNULL(@fromDate,'') <> '' AND ISNULL(@toDate,'') <> ''
  48. BEGIN
  49. SET @sql=@sql+' AND Convert(varchar(10),reqTransferDtime,121) BETWEEN ''' +@fromDate+ ''' AND ''' +@toDate+ ''''
  50. END
  51. SET @sql=@sql+' GROUP BY HIS.CUSTOMERID,HIS.REQACCOUNTNUM,HIS.REQACCOUNTHOLDERNAME,KFTCBANK.ROWID,KFTCBANK.BANKCODE,KFTCBANK.BANKNAME
  52. ) A
  53. ) B'
  54. IF ISNULL(@fromDate,'') = '' AND ISNULL(@toDate,'') = '' -- t t \ 5t̹ ͜
  55. BEGIN
  56. SET @sql=@sql+' WHERE B.Rank <= 5'
  57. END
  58. SET @sql=@sql+' ORDER BY B.Rank'
  59. -- PRINT(@sql)
  60. EXEC(@sql)
  61. END
  62. ELSE IF @flag = 'RecipientMobileNo' --ĬX 8
  63. BEGIN
  64. DECLARE @reqMobileNo VARCHAR(20)
  65. SET @reqMobileNo = (
  66. SELECT TOP 1 HIS.reqMobileNo
  67. FROM KFTC_DOMESTIC_HISTORY HIS
  68. WHERE HIS.transferType = 'deposit'
  69. AND HIS.customerId = @customerId
  70. AND HIS.reqBankCodeStd = @bankCode
  71. AND HIS.reqAccountNum = @accountNumber
  72. ORDER BY HIS.reqTransferDtime DESC
  73. )
  74. SELECT '0' errorCode,@customerId customerId,@reqMobileNo Id
  75. END
  76. ELSE IF @flag='domestictranhis'
  77. BEGIN
  78. IF @customerId = 'temp'
  79. BEGIN
  80. SELECT @customerId = customerId
  81. FROM dbo.customerMaster(NOLOCK) cm
  82. WHERE cm.mobile=@userId OR cm.email=@userId
  83. END
  84. SET @sql=
  85. 'SELECT_FIRST withdraw.customerId,withdraw.processId,CONVERT(VARCHAR(10),withdraw.reqTransferDtime,121) tran_date
  86. ,withdraw.reqBankCodeStd sendBandCode,WKFTCBANK.bankName sendBankName,withdraw.reqAccountNum sendAccountNum
  87. ,deposit.reqBankCodeStd recipientBandCode,DKFTCBANK.bankName recipientBankName,deposit.reqAccountNum recipientAccountNum,deposit.reqAccountHolderName recipientName,deposit.reqMobileNo recipientPhone
  88. ,convert(varchar,deposit.reqAmt) sendAmount,convert(varchar,withdraw.serviceFee) serviceFee
  89. ,case when deposit.resRspCode = ''A0000'' then ''SUCCESS'' else ''FAIL'' end depositStatus
  90. FROM
  91. (
  92. SELECT customerId,processId,reqTransferDtime,reqBankCodeStd,reqAccountNum,resRspCode,reqMobileNo,serviceFee
  93. FROM KFTC_DOMESTIC_HISTORY
  94. WHERE transferType = ''withdraw''
  95. AND resRspCode = ''A0000'''
  96. +' AND customerId = '+ @customerId
  97. +' ) withdraw
  98. INNER JOIN (
  99. SELECT customerId,processId,reqBankCodeStd,reqAccountNum,reqAccountHolderName,reqAmt,reqMobileNo,resRspCode
  100. FROM KFTC_DOMESTIC_HISTORY
  101. WHERE transferType = ''deposit''
  102. AND resRspCode = ''A0000'''
  103. +' AND customerId = '+ @customerId
  104. +' ) deposit ON withdraw.customerId = deposit.customerId AND withdraw.processId = deposit.processId
  105. LEFT OUTER JOIN (
  106. SELECT rowId, bankCode, bankName
  107. FROM KoreanBankList(nolock)
  108. WHERE IsActive=''1'' AND (bankCode < ''040'' OR bankCode >''080'' ) ) WKFTCBANK ON withdraw.reqBankCodeStd = WKFTCBANK.bankCode
  109. LEFT OUTER JOIN (
  110. SELECT rowId, bankCode, bankName
  111. FROM KoreanBankList(nolock)
  112. WHERE IsActive=''1'' AND (bankCode < ''040'' OR bankCode >''080'' ) ) DKFTCBANK ON deposit.reqBankCodeStd = DKFTCBANK.bankCode'
  113. IF ISNULL(@tranId,'') <> '' --@tranId ǔ Ɣ 1t̹ ͜
  114. BEGIN
  115. SET @sql=REPLACE(REPLACE(@sql,'AND customerId = temp',''),'SELECT_FIRST','SELECT') + ' WHERE withdraw.processId = '''+@tranId+''''
  116. END
  117. ELSE IF ISNULL(@fromDate,'') <> '' AND ISNULL(@toDate,'') <> '' -- t t ȴ̔͜
  118. BEGIN
  119. SET @sql=REPLACE(@sql,'SELECT_FIRST','SELECT') + ' AND CONVERT(VARCHAR(10),withdraw.reqTransferDtime,121) BETWEEN '''+@fromDate+''' AND '''+ @toDate +' 23:59:59'''
  120. END
  121. ELSE --P t \ 7t̹ ͜
  122. BEGIN
  123. SET @sql = REPLACE(@sql,'SELECT_FIRST','SELECT TOP 7 ')
  124. END
  125. SET @sql=@sql+ ' ORDER BY withdraw.reqTransferDtime DESC'
  126. PRINT(@sql)
  127. EXEC(@sql)
  128. END
  129. END
  130. ----------------------------------------------------------------------------------
  131. -- Procedure End
  132. ----------------------------------------------------------------------------------
  133. SET TRANSACTION ISOLATION LEVEL READ COMMITTED
  134. SET NOCOUNT OFF