code refactor

This commit is contained in:
MaysWind
2020-11-29 14:26:26 +08:00
parent b18951ce2a
commit 0e5b6555f3
4 changed files with 35 additions and 13 deletions
+24
View File
@@ -15,6 +15,26 @@ const (
ACCOUNT_CATEGORY_INVESTMENT AccountCategory = 7
)
var AssetAccountCategory = map[AccountCategory]bool{
ACCOUNT_CATEGORY_CASH: true,
ACCOUNT_CATEGORY_DEBIT_CARD: true,
ACCOUNT_CATEGORY_CREDIT_CARD: false,
ACCOUNT_CATEGORY_VIRTUAL: true,
ACCOUNT_CATEGORY_DEBT: false,
ACCOUNT_CATEGORY_RECEIVABLES: true,
ACCOUNT_CATEGORY_INVESTMENT: true,
}
var LiabilityAccountCategory = map[AccountCategory]bool{
ACCOUNT_CATEGORY_CASH: false,
ACCOUNT_CATEGORY_DEBIT_CARD: false,
ACCOUNT_CATEGORY_CREDIT_CARD: true,
ACCOUNT_CATEGORY_VIRTUAL: false,
ACCOUNT_CATEGORY_DEBT: true,
ACCOUNT_CATEGORY_RECEIVABLES: false,
ACCOUNT_CATEGORY_INVESTMENT: false,
}
type AccountType byte
const (
@@ -98,6 +118,8 @@ type AccountInfoResponse struct {
Balance int64 `json:"balance"`
Comment string `json:"comment"`
DisplayOrder int `json:"displayOrder"`
IsAsset bool `json:"isAsset,omitempty"`
IsLiability bool `json:"isLiability,omitempty"`
Hidden bool `json:"hidden"`
SubAccounts AccountInfoResponseSlice `json:"subAccounts,omitempty"`
}
@@ -115,6 +137,8 @@ func (a *Account) ToAccountInfoResponse() *AccountInfoResponse {
Balance: a.Balance,
Comment: a.Comment,
DisplayOrder: a.DisplayOrder,
IsAsset: AssetAccountCategory[a.Category],
IsLiability: LiabilityAccountCategory[a.Category],
Hidden: a.Hidden,
}
}
-7
View File
@@ -2,43 +2,36 @@ const allAccountCategories = [
{
id: 1,
name: 'Cash',
isAsset: true,
defaultAccountIconId: '1'
},
{
id: 2,
name: 'Debit Card',
isAsset: true,
defaultAccountIconId: '100'
},
{
id: 3,
name: 'Credit Card',
isLiability: true,
defaultAccountIconId: '100'
},
{
id: 4,
name: 'Virtual Account',
isAsset: true,
defaultAccountIconId: '500'
},
{
id: 5,
name: 'Debt Account',
isLiability: true,
defaultAccountIconId: '600'
},
{
id: 6,
name: 'Receivables',
isAsset: true,
defaultAccountIconId: '700'
},
{
id: 7,
name: 'Investment Account',
isAsset: true,
defaultAccountIconId: '800'
}
];
+8 -3
View File
@@ -106,21 +106,21 @@ function getAccountByAccountId(categorizedAccounts, accountId) {
return null;
}
function getAllFilteredAccountsBalance(categorizedAccounts, accountCategoryFilter) {
function getAllFilteredAccountsBalance(categorizedAccounts, accountFilter) {
const allAccountCategories = accountConstants.allCategories;
const ret = [];
for (let categoryIdx = 0; categoryIdx < allAccountCategories.length; categoryIdx++) {
const accountCategory = allAccountCategories[categoryIdx];
if (!accountCategoryFilter(accountCategory) || !categorizedAccounts[accountCategory.id]) {
if (!categorizedAccounts[accountCategory.id]) {
continue;
}
for (let accountIdx = 0; accountIdx < categorizedAccounts[accountCategory.id].length; accountIdx++) {
const account = categorizedAccounts[accountCategory.id][accountIdx];
if (account.hidden) {
if (account.hidden || !accountFilter(account)) {
continue;
}
@@ -132,6 +132,11 @@ function getAllFilteredAccountsBalance(categorizedAccounts, accountCategoryFilte
} else if (account.type === accountConstants.allAccountTypes.MultiSubAccounts) {
for (let subAccountIdx = 0; subAccountIdx < account.subAccounts.length; subAccountIdx++) {
const subAccount = account.subAccounts[subAccountIdx];
if (subAccount.hidden || !accountFilter(subAccount)) {
continue;
}
ret.push({
balance: subAccount.balance,
currency: subAccount.currency
+3 -3
View File
@@ -243,7 +243,7 @@ export default {
return '***';
}
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, category => category.isAsset);
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, account => account.isAsset);
let totalAssets = 0;
let hasUnCalculatedAmount = false;
@@ -273,7 +273,7 @@ export default {
return '***';
}
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, category => category.isLiability);
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, account => account.isLiability);
let totalLiabilities = 0;
let hasUnCalculatedAmount = false;
@@ -404,7 +404,7 @@ export default {
return '***';
}
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, category => category.id === accountCategory.id);
const accountsBalance = this.$utilities.getAllFilteredAccountsBalance(this.accounts, account => account.category === accountCategory.id);
let totalBalance = 0;
let hasUnCalculatedAmount = false;