137 lines
3.2 KiB
Transact-SQL
137 lines
3.2 KiB
Transact-SQL
|
|
|
|
|
|
/****** Object: StoredProcedure [dbo].[USP_TRN_AccountActivities_AddNewActivity] Script Date: 7/11/2014 5:40:02 PM ******/
|
|
CREATE PROCEDURE [dbo].[TRN_AccountTransactions_Add]
|
|
--@HttpRequestInfo nvarchar(max) ,
|
|
@UserId bigint,
|
|
@AccountId bigint,
|
|
@AccountTransactionTypeId smallint,
|
|
@Amount Decimal(22,8),
|
|
@AmountUSD Decimal(18,2),
|
|
@CurrentBalance Decimal(22,8),
|
|
@CurrentBonusBalance Decimal(22,8),
|
|
@ExternalReferenceId varchar(66),
|
|
@OperatorId int,
|
|
@Comment nvarchar(1000) ,
|
|
@WalletAddress varchar(42),
|
|
@PendingId Bigint = null,
|
|
@KnokId bigint = null,
|
|
@TransId bigint OUTPUT
|
|
AS
|
|
|
|
|
|
SET NOCOUNT ON
|
|
DECLARE @TranStarted BIT,
|
|
@Symbol varchar(30),
|
|
@AccountTransactionDate datetime,
|
|
@RC int
|
|
|
|
SET @TranStarted = 0
|
|
IF( @@TRANCOUNT = 0 )
|
|
BEGIN
|
|
BEGIN TRANSACTION
|
|
SET @TranStarted = 1
|
|
END
|
|
ELSE
|
|
SET @TranStarted = 0
|
|
|
|
BEGIN TRY
|
|
|
|
-- select @Balance Balance
|
|
|
|
select @Symbol= Symbol
|
|
from Accounts
|
|
where AccountId=@AccountId
|
|
|
|
/*
|
|
IF @AmountUSD IS NULL
|
|
BEGIN
|
|
select @AmountUSD=@Amount*Rate
|
|
from [Knoks_Rates]..CurrentPrices
|
|
where base=@Symbol
|
|
and NonBase='USD'
|
|
END
|
|
*/
|
|
|
|
|
|
|
|
set @AccountTransactionDate=getdate()
|
|
|
|
|
|
INSERT INTO [dbo].[AccountTransactions]
|
|
([AccountId]
|
|
,[UserId]
|
|
,[AccountTransactionDate]
|
|
,[AccountTransactionTypeId]
|
|
,[Symbol]
|
|
,[Amount]
|
|
,[AmountUSD]
|
|
,[ExternalReferenceId]
|
|
,[Comment]
|
|
,[Origin]
|
|
,[CurrentBalance]
|
|
,[CurrentBonusBalance]
|
|
,[OperatorId]
|
|
,[WalletAddress]
|
|
,[PendingId]
|
|
,[KnokId])
|
|
VALUES(@AccountId,
|
|
@UserId,
|
|
@AccountTransactionDate,
|
|
@AccountTransactionTypeId,
|
|
@Symbol,
|
|
@Amount,
|
|
@AmountUSD,
|
|
@ExternalReferenceId,
|
|
@Comment,
|
|
SUSER_SNAME(),
|
|
@CurrentBalance,
|
|
@CurrentBonusBalance,
|
|
@OperatorId,
|
|
@WalletAddress,
|
|
@PendingId,
|
|
@KnokId)
|
|
|
|
SET @TransId =SCOPE_IDENTITY()
|
|
|
|
---SELECT @UserSequenceID = NEXT VALUE FOR dbo.UserSequence
|
|
/*
|
|
UPDATE dbo.UserState
|
|
SET FirstDepositDate = case @AccountTransactionTypeId
|
|
When 1 then COALESCE(FirstDepositDate,@AccountTransactionDate)
|
|
Else FirstDepositDate
|
|
end,
|
|
--FirstTradingDate = case When @AccountTransactionTypeId >2 then COALESCE(FirstTradingDate,@AccountActivityDate)
|
|
--Else FirstTradingDate
|
|
--end,
|
|
LastModifyDate = @AccountTransactionDate,
|
|
LastModifyOrigin = SUSER_SNAME(),
|
|
LastModifyOperatorId=@OperatorId
|
|
WHERE UserId = @UserId;
|
|
*/
|
|
|
|
UPDATE dbo.Accounts
|
|
SET CurrentBalance = @CurrentBalance,
|
|
CurrentBonusBalance = @CurrentBonusBalance,
|
|
LastModifyDate = GetDate(),
|
|
LastModifyOrigin = SUSER_SNAME(),
|
|
LastModifyOperatorId=@OperatorId
|
|
WHERE AccountId = @AccountId;
|
|
|
|
IF( @TranStarted = 1 )
|
|
COMMIT TRANSACTION
|
|
|
|
RETURN 0
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF( @TranStarted = 1 )
|
|
ROLLBACK TRANSACTION
|
|
|
|
EXEC [USP_LogError]
|
|
EXEC [USP_RethrowError]
|
|
|
|
IF @RC = 0
|
|
SET @RC = 1
|
|
RETURN @RC
|
|
END CATCH |