Use default currency for top-level 'Trading' account

Also add missing transaction.Rollback() calls on early returns in
GetAccountTransactions()
This commit is contained in:
Aaron Lindsay 2017-09-21 21:00:30 -04:00
parent d0d6ea3a78
commit e38c49a556
2 changed files with 9 additions and 2 deletions

View File

@ -189,10 +189,15 @@ func GetTradingAccount(transaction *gorp.Transaction, userid int64, securityid i
var tradingAccount Account
var account Account
user, err := GetUserTx(transaction, userid)
if err != nil {
return nil, err
}
tradingAccount.UserId = userid
tradingAccount.Type = Trading
tradingAccount.Name = "Trading"
tradingAccount.SecurityId = 840 /*USD*/ //FIXME SecurityId shouldn't matter for top-level trading account, but maybe we should grab the user's default
tradingAccount.SecurityId = user.DefaultCurrency
tradingAccount.ParentAccountId = -1
// Find/create the top-level trading account

View File

@ -834,11 +834,13 @@ func GetAccountTransactions(user *User, accountid int64, sort string, page uint6
}
atl.TotalTransactions = count
security, err := GetSecurity(atl.Account.SecurityId, user.UserId)
security, err := GetSecurityTx(transaction, atl.Account.SecurityId, user.UserId)
if err != nil {
transaction.Rollback()
return nil, err
}
if security == nil {
transaction.Rollback()
return nil, errors.New("Security not found")
}