auto set transaction type in transaction adding page according to the category id

This commit is contained in:
MaysWind
2022-07-24 17:56:49 +08:00
parent d3ddcf4c20
commit 73b554aa48
2 changed files with 40 additions and 0 deletions
+28
View File
@@ -4,6 +4,8 @@ import uaParser from 'ua-parser-js';
import dateTimeConstants from '../consts/datetime.js';
import accountConstants from '../consts/account.js';
import categoryConstants from '../consts/category.js';
import transactionConstants from '../consts/transaction.js';
import settings from './settings.js';
function isFunction(val) {
@@ -559,6 +561,30 @@ function parseUserAgent(ua) {
};
}
function transactionTypeToCategroyType(transactionType) {
if (transactionType === transactionConstants.allTransactionTypes.Income) {
return categoryConstants.allCategoryTypes.Income;
} else if (transactionType === transactionConstants.allTransactionTypes.Expense) {
return categoryConstants.allCategoryTypes.Expense;
} else if (transactionType === transactionConstants.allTransactionTypes.Transfer) {
return categoryConstants.allCategoryTypes.Transfer;
} else {
return null;
}
}
function categroyTypeToTransactionType(categoryType) {
if (categoryType === categoryConstants.allCategoryTypes.Income) {
return transactionConstants.allTransactionTypes.Income;
} else if (categoryType === categoryConstants.allCategoryTypes.Expense) {
return transactionConstants.allTransactionTypes.Expense;
} else if (categoryType === categoryConstants.allCategoryTypes.Transfer) {
return transactionConstants.allTransactionTypes.Transfer;
} else {
return null;
}
}
function getCategoryInfo(categoryId) {
for (let i = 0; i < accountConstants.allCategories.length; i++) {
if (accountConstants.allCategories[i].id === categoryId) {
@@ -700,6 +726,8 @@ export default {
stringToArrayBuffer,
generateRandomString,
parseUserAgent,
transactionTypeToCategroyType,
categroyTypeToTransactionType,
getCategoryInfo,
getCategorizedAccounts,
getAllFilteredAccountsBalance,
+12
View File
@@ -458,6 +458,9 @@ export default {
allCategories() {
return this.$store.state.allTransactionCategories;
},
allCategoriesMap() {
return this.$store.state.allTransactionCategoriesMap;
},
allTags() {
return this.$store.state.allTransactionTags;
},
@@ -601,6 +604,15 @@ export default {
return;
}
if ((!query.type || query.type === '0') && query.categoryId && query.categoryId !== '0' && self.allCategoriesMap[query.categoryId]) {
const category = self.allCategoriesMap[query.categoryId];
const type = self.$utilities.categroyTypeToTransactionType(category.type);
if (self.$utilities.isNumber(type)) {
self.transaction.type = type;
}
}
if (self.allCategories[self.$constants.category.allCategoryTypes.Expense] &&
self.allCategories[self.$constants.category.allCategoryTypes.Expense].length) {
if (query.categoryId && query.categoryId !== '0' && self.isCategoryIdAvailable(self.allCategories[self.$constants.category.allCategoryTypes.Expense], query.categoryId)) {