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.

347 lines
12 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_POWERCALL_NEW] Script Date: 2019-12-18 ���� 10:32:29 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- =============================================
  9. -- Author: <chris>
  10. -- Create date: <2018-10-23>
  11. -- Description: <Proc PowerCall>
  12. -- =============================================
  13. -- EXEC [dbo].[procedure_test] @CUSTOMERID = '40154', @useWalletMoney = 5000
  14. ALTER PROCEDURE [dbo].[PROC_POWERCALL_NEW]
  15. @rowId BIGINT = 0,
  16. @FLAG VARCHAR(50) = NULL,
  17. @customerId BIGINT,
  18. @useWalletMoney MONEY = NULL,
  19. @restoreMoney MONEY = NULL,
  20. @balance MONEY = NULL,
  21. @customerSummary VARCHAR(20) = NULL,
  22. @bankCode VARCHAR(50) = NULL,
  23. @bankAccount VARCHAR(20) = NULL,
  24. @action VARCHAR(10) = NULL,
  25. @actionBy VARCHAR(50) = NULL,
  26. @source CHAR(1) = NULL,
  27. @passWord VARCHAR(50) = NULL,
  28. @customerPassWord VARCHAR (50) = NULL,
  29. @stateMessage VARCHAR(10) = NULL,
  30. @top BIGINT = NULL,
  31. @fromDate DATETIME = NULL,
  32. @toDate DATETIME = NULL,
  33. @commision MONEY = NULL,
  34. @phoneNo VARCHAR(11) = NULL,
  35. @isNomal VARCHAR(1) = NULL
  36. AS
  37. SET NOCOUNT ON;
  38. SET XACT_ABORT ON;
  39. BEGIN TRY
  40. DECLARE @vWalletAccountNo VARCHAR(100)
  41. DECLARE @vSessionId VARCHAR(40)
  42. DECLARE @voucherDate VARCHAR(10)
  43. DECLARE @vComment VARCHAR(500)
  44. DECLARE @bonusPoint MONEY
  45. DECLARE @email VARCHAR(100)
  46. DECLARE @availablePoint MONEY
  47. SET @vSessionId = NEWID()
  48. DECLARE @vAccountType VARCHAR(20)
  49. ,@reqTranAmt MONEY
  50. ,@partialRefundMoney MONEY
  51. DECLARE @vFullName VARCHAR(100)
  52. SELECT @vAccountType=accountType,
  53. @reqTranAmt=ISNULL(reqTranAmt,0)
  54. from KFTC_DOMESTIC_HISTORY(nolock)
  55. where accountType='KFTC-TOPUP'
  56. and transferType='withdraw' and processId=@customerSummary
  57. IF @FLAG = 'checkCharge'
  58. BEGIN
  59. SELECT TOP 1 *
  60. FROM powerCallHistory(nolock)
  61. WHERE customerId=@customerId
  62. ORDER BY rowId desc
  63. RETURN
  64. END
  65. ELSE IF @FLAG = 'checkWallet'
  66. BEGIN
  67. SELECT @balance = dbo.FNAGetCustomerACBal(cm.email)
  68. ,@customerPassWord = cm.customerPassword
  69. ,@actionBy = cm.email
  70. FROM customerMaster cm WITH (NOLOCK)
  71. WHERE customerId=@customerId
  72. AND ISNULL(onlineUser,'N')='Y'
  73. AND ISNULL(islocked,'N')='N'
  74. IF(SELECT dbo.CheckCustomerPerDayAmt(@customerId,@useWalletMoney))=1
  75. BEGIN
  76. EXEC proc_errorHandler 1,'Easy remit Per day limit exceeded.!' ,null
  77. RETURN
  78. END
  79. IF(@customerPassWord = dbo.FNAEncryptString(@passWord))
  80. BEGIN
  81. UPDATE customerMaster
  82. SET invalidAttemptCount = 0
  83. WHERE customerId = @customerId
  84. AND ISNULL(onlineUser, 'N')='Y'
  85. END
  86. ELSE
  87. BEGIN
  88. SELECT '1' AS ErrorCode, 'Invaild PassWord' AS Msg, @customerId AS Id
  89. RETURN
  90. END
  91. IF (ISNULL(@useWalletMoney,0) > @balance)
  92. BEGIN
  93. SELECT '1' AS ErrorCode, 'Request balance is insufficient!' AS Msg, @customerId AS Id
  94. RETURN
  95. END
  96. SET @balance = @balance - @useWalletMoney
  97. UPDATE customerMaster
  98. SET availableBalance = @balance
  99. WHERE customerId = @customerId
  100. INSERT INTO KJ_AUTO_REFUND
  101. ( customerId, bankCode, bankAccountNo, customerSummary, requestAmount,
  102. refundAmount, action, actionDate, actionBy, Balance,
  103. refundType, reqSource)
  104. SELECT @customerId, @bankCode, @bankAccount, @customerSummary, @useWalletMoney,
  105. @useWalletMoney, @action, GETDATE(), @actionBy, @balance,
  106. 'PowerCall', ISNULL(@source,'M')
  107. SET @rowId = @@IDENTITY
  108. SELECT '0' AS ErrorCode, 'checkWallet Success' AS Msg, @rowId AS Id
  109. RETURN
  110. END
  111. /* ���������� ���� �������� */
  112. ELSE IF @FLAG = 'resultWalletMoney'
  113. BEGIN
  114. UPDATE KJ_AUTO_REFUND
  115. SET action = 'SUCCESS'
  116. WHERE customerSummary = @customerSummary
  117. AND customerId = @customerId
  118. AND action = @action
  119. SELECT @vWalletAccountNo = walletAccountNo
  120. ,@bonusPoint = bonusPoint
  121. ,@email = email
  122. ,@vFullName = LEFT(fullName, 10)
  123. FROM customerMaster(nolock)
  124. WHERE customerId = @customerId
  125. /* 10 ����Ʈ ���� ���� */
  126. SET @availablePoint = ISNULL(@bonusPoint,0) + 10
  127. INSERT INTO PointHistory
  128. (
  129. customerId , availablePoint , tranId ,pointType, point ,createdBy ,createdDate
  130. )
  131. SELECT @customerId, @availablePoint , @customerSummary , '3', 10, @email, GETDATE()
  132. IF @vAccountType='KFTC-TOPUP'
  133. BEGIN
  134. UPDATE customerMaster
  135. SET availableBalance = availableBalance- @useWalletMoney
  136. ,bonusPoint = @availablePoint
  137. WHERE customerId = @customerId
  138. END
  139. ELSE --only wallet
  140. BEGIN
  141. UPDATE customerMaster
  142. SET bonusPoint = @availablePoint
  143. WHERE customerId = @customerId
  144. END
  145. -----------------------------------------------------
  146. -- Voucher Data
  147. -----------------------------------------------------
  148. DELETE FROM fastmoneypro_account.dbo.temp_tran
  149. WHERE refrence = @customerSummary
  150. AND field2 = 'Topup'
  151. INSERT INTO fastmoneypro_account.dbo.temp_tran
  152. ( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
  153. field2, sessionid, refrence)
  154. SELECT 'system', @vWalletAccountNo, 'DR', @useWalletMoney, @vWalletAccountNo,
  155. 'Topup', @vSessionId, @customerSummary
  156. UNION ALL
  157. SELECT 'system', '161874309', 'CR', @useWalletMoney-@commision, @vWalletAccountNo,
  158. 'Topup', @vSessionId, @customerSummary
  159. UNION ALL
  160. SELECT 'system', '161874314', 'CR', @commision, @vWalletAccountNo,
  161. 'Topup', @vSessionId, @customerSummary
  162. IF @vAccountType = 'KFTC-TOPUP'
  163. BEGIN
  164. --100241027580 cms account 100241011536 -- kj wallet -- GME auto debit acc no (Payment Gateway CMS AUTODEBIT)
  165. INSERT INTO fastmoneypro_account.dbo.temp_tran
  166. ( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
  167. field2, sessionid, refrence)
  168. SELECT 'system','100241027580', 'DR' , @useWalletMoney, @vWalletAccountNo,
  169. 'TopUp', @vSessionId , @customerSummary
  170. UNION ALL
  171. SELECT 'system','100241011536', 'CR' , @useWalletMoney, @vWalletAccountNo,
  172. 'TopUp', @vSessionId , @customerSummary
  173. SET @vComment = 'Local Auto debit Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  174. END
  175. ELSE SET @vComment = 'Local Wallet Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  176. EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
  177. SELECT @voucherDate = CONVERT(VARCHAR, Getdate(), 101)
  178. --@vComment = 'Local Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  179. EXEC fastmoneypro_account.dbo.[Spa_savetemptrn] @flag='i',
  180. @sessionID= @vSessionId,
  181. @date=@voucherDate,
  182. @narration=@vComment,
  183. @company_id=1,
  184. @v_type='J',
  185. @user='SYSTEM'
  186. END
  187. /* ���������� ���� �κ� ���� */
  188. ELSE IF @FLAG = 'restoreWalletMoney'
  189. BEGIN
  190. UPDATE KJ_AUTO_REFUND
  191. SET action = @action, refundAmount = @useWalletMoney
  192. WHERE customerSummary = @customerSummary
  193. AND customerId = @customerId
  194. AND action = 'REQ'
  195. SELECT @vWalletAccountNo = walletAccountNo
  196. ,@bonusPoint = bonusPoint
  197. ,@email = email
  198. ,@vFullName = LEFT(fullName, 10)
  199. FROM customerMaster(nolock)
  200. WHERE customerId = @customerId
  201. SET @availablePoint = ISNULL(@bonusPoint,0) + 10
  202. INSERT INTO PointHistory
  203. (
  204. customerId , availablePoint , tranId , pointType, point , createdBy , createdDate
  205. )
  206. SELECT @customerId, @availablePoint , @customerSummary , '3', 10, @email, GETDATE()
  207. --PRINT(@restoreMoney)
  208. IF @vAccountType='KFTC-TOPUP'
  209. BEGIN
  210. SET @partialRefundMoney=@reqTranAmt- @restoreMoney
  211. UPDATE customerMaster
  212. SET availableBalance =availableBalance -@partialRefundMoney
  213. ,bonusPoint = @availablePoint
  214. WHERE customerId = @customerId
  215. END
  216. ELSE
  217. BEGIN
  218. UPDATE customerMaster
  219. SET availableBalance = availableBalance + @restoreMoney
  220. , bonusPoint = @availablePoint
  221. WHERE customerId = @customerId
  222. END
  223. -----------------------------------------------------
  224. -- Voucher Data
  225. -----------------------------------------------------
  226. DELETE FROM fastmoneypro_account.dbo.temp_tran
  227. WHERE refrence = @customerSummary
  228. AND field2 = 'Topup'
  229. INSERT INTO fastmoneypro_account.dbo.temp_tran
  230. ( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
  231. field2, sessionid, refrence)
  232. SELECT 'system', @vWalletAccountNo, 'DR', @useWalletMoney, @vWalletAccountNo,
  233. 'Topup', @vSessionId, @customerSummary
  234. UNION ALL
  235. SELECT 'system', '161874309', 'CR', @useWalletMoney-@commision, @vWalletAccountNo,
  236. 'Topup', @vSessionId, @customerSummary
  237. UNION ALL
  238. SELECT 'system', '161874314', 'CR', @commision, @vWalletAccountNo,
  239. 'Topup', @vSessionId, @customerSummary
  240. IF @vAccountType='KFTC-TOPUP'
  241. BEGIN
  242. --100241027580 cms account 100241011536 -- kj wallet -- GME auto debit acc no (Payment Gateway CMS AUTODEBIT)
  243. INSERT INTO fastmoneypro_account.dbo.temp_tran
  244. ( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
  245. field2, sessionid, refrence)
  246. SELECT 'system','100241027580', 'DR' , @useWalletMoney, @vWalletAccountNo,
  247. 'TopUp', @vSessionId , @customerSummary
  248. UNION ALL
  249. SELECT 'system','100241011536', 'CR' , @useWalletMoney, @vWalletAccountNo,
  250. 'TopUp', @vSessionId , @customerSummary
  251. SET @vComment = 'Local Auto debit Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  252. END
  253. ELSE SET @vComment = 'Local Wallet Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  254. EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
  255. SELECT @voucherDate = CONVERT(VARCHAR, Getdate(), 101)
  256. --@vComment = 'Local Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
  257. EXEC fastmoneypro_account.dbo.[Spa_savetemptrn] @flag='i',
  258. @sessionID= @vSessionId,
  259. @date=@voucherDate,
  260. @narration=@vComment,
  261. @company_id=1,
  262. @v_type='J',
  263. @user='SYSTEM'
  264. END
  265. /* ���������� ���� ���� ���� */
  266. ELSE IF @FLAG = 'TOPUP_FAIL'
  267. BEGIN
  268. UPDATE KJ_AUTO_REFUND
  269. SET action = @action
  270. WHERE customerSummary = @customerSummary
  271. AND customerId = @customerId
  272. AND action = 'REQ'
  273. /* ���������� ������ü�� �̹� �������¿� �ݿ��Ǿ����Ƿ�, ȯ�� �ʿ�����*/
  274. IF @vAccountType IS NULL
  275. BEGIN
  276. UPDATE customerMaster
  277. SET availableBalance = availableBalance + @restoreMoney
  278. WHERE customerId = @customerId
  279. END
  280. EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
  281. END
  282. ELSE IF @FLAG = 'UserChargeInfo'
  283. BEGIN
  284. IF ISNULL(@fromDate,'') = '' AND ISNULL(@toDate,'') = ''
  285. BEGIN
  286. SELECT TOP 7 * FROM powercallHistory(NOLOCK)
  287. WHERE customerId = @customerId order by rowId desc
  288. END
  289. ELSE
  290. BEGIN
  291. SELECT TOP 7 * FROM powercallHistory(NOLOCK)
  292. WHERE customerId = @customerId
  293. AND Convert(varchar(10),requestTime,121) BETWEEN @fromDate AND @toDate
  294. order by rowId desc
  295. END
  296. END
  297. END TRY
  298. BEGIN CATCH
  299. IF @@TRANCOUNT <> 0
  300. ROLLBACK TRANSACTION;
  301. DECLARE @errorMessage VARCHAR(MAX);
  302. --SET @errorMessage = ERROR_MESSAGE();
  303. SET @errorMessage = 'Error Occur while requesting.'
  304. EXEC proc_errorHandler 1, @errorMessage, @customerId;
  305. END CATCH;