mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-21 18:24:26 +08:00
fix the result of detecting whether a transaction has been modified is wrong when no default account is set
This commit is contained in:
@@ -453,7 +453,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): boolean {
|
function isTransactionDraftModified(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): boolean {
|
||||||
if (!transaction) {
|
if (!transaction) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -466,7 +466,7 @@ export const useTransactionsStore = defineStore('transactions', () => {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && transaction.sourceAccountId !== initAccountId) {
|
if (transaction.sourceAccountId && transaction.sourceAccountId !== '0' && transaction.sourceAccountId !== userStore.currentUserDefaultAccountId && ((userStore.currentUserDefaultAccountId !== '' && userStore.currentUserDefaultAccountId !== '0') || transaction.sourceAccountId !== firstVisibleAccountId) && transaction.sourceAccountId !== initAccountId) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -517,14 +517,14 @@ export const useTransactionsStore = defineStore('transactions', () => {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string): void {
|
function saveTransactionDraft(transaction?: Transaction, initAmount?: number, initCategoryId?: string, initAccountId?: string, initTagIds?: string, firstVisibleAccountId?: string): void {
|
||||||
if (settingsStore.appSettings.autoSaveTransactionDraft !== 'enabled' && settingsStore.appSettings.autoSaveTransactionDraft !== 'confirmation') {
|
if (settingsStore.appSettings.autoSaveTransactionDraft !== 'enabled' && settingsStore.appSettings.autoSaveTransactionDraft !== 'confirmation') {
|
||||||
clearTransactionDraft();
|
clearTransactionDraft();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transaction) {
|
if (transaction) {
|
||||||
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds)) {
|
if (!isTransactionDraftModified(transaction, initAmount, initCategoryId, initAccountId, initTagIds, firstVisibleAccountId)) {
|
||||||
clearTransactionDraft();
|
clearTransactionDraft();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ export function useTransactionEditPageBase(type: TransactionEditPageType, initMo
|
|||||||
const allCategoriesMap = computed<Record<string, TransactionCategory>>(() => transactionCategoriesStore.allTransactionCategoriesMap);
|
const allCategoriesMap = computed<Record<string, TransactionCategory>>(() => transactionCategoriesStore.allTransactionCategoriesMap);
|
||||||
const allTags = computed<TransactionTag[]>(() => transactionTagsStore.allTransactionTags);
|
const allTags = computed<TransactionTag[]>(() => transactionTagsStore.allTransactionTags);
|
||||||
const allTagsMap = computed<Record<string, TransactionTag>>(() => transactionTagsStore.allTransactionTagsMap);
|
const allTagsMap = computed<Record<string, TransactionTag>>(() => transactionTagsStore.allTransactionTagsMap);
|
||||||
|
const firstVisibleAccountId = computed<string | undefined>(() => allVisibleAccounts.value && allVisibleAccounts.value[0] ? allVisibleAccounts.value[0].id : undefined);
|
||||||
|
|
||||||
const hasAvailableExpenseCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableExpenseCategories);
|
const hasAvailableExpenseCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableExpenseCategories);
|
||||||
const hasAvailableIncomeCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableIncomeCategories);
|
const hasAvailableIncomeCategories = computed<boolean>(() => transactionCategoriesStore.hasAvailableIncomeCategories);
|
||||||
@@ -436,6 +437,7 @@ export function useTransactionEditPageBase(type: TransactionEditPageType, initMo
|
|||||||
allCategoriesMap,
|
allCategoriesMap,
|
||||||
allTags,
|
allTags,
|
||||||
allTagsMap,
|
allTagsMap,
|
||||||
|
firstVisibleAccountId,
|
||||||
hasAvailableExpenseCategories,
|
hasAvailableExpenseCategories,
|
||||||
hasAvailableIncomeCategories,
|
hasAvailableIncomeCategories,
|
||||||
hasAvailableTransferCategories,
|
hasAvailableTransferCategories,
|
||||||
|
|||||||
@@ -617,6 +617,7 @@ const {
|
|||||||
allCategoriesMap,
|
allCategoriesMap,
|
||||||
allTags,
|
allTags,
|
||||||
allTagsMap,
|
allTagsMap,
|
||||||
|
firstVisibleAccountId,
|
||||||
hasAvailableExpenseCategories,
|
hasAvailableExpenseCategories,
|
||||||
hasAvailableIncomeCategories,
|
hasAvailableIncomeCategories,
|
||||||
hasAvailableTransferCategories,
|
hasAvailableTransferCategories,
|
||||||
@@ -702,7 +703,7 @@ const isAllFilteredTagHidden = computed<boolean>(() => {
|
|||||||
|
|
||||||
const isTransactionModified = computed<boolean>(() => {
|
const isTransactionModified = computed<boolean>(() => {
|
||||||
if (mode.value === TransactionEditPageMode.Add) {
|
if (mode.value === TransactionEditPageMode.Add) {
|
||||||
return transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
|
return transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
|
||||||
} else if (mode.value === TransactionEditPageMode.Edit) {
|
} else if (mode.value === TransactionEditPageMode.Edit) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -1061,9 +1062,9 @@ function cancel(): void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
|
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
|
||||||
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value)) {
|
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value)) {
|
||||||
confirmDialog.value?.open('Do you want to save this transaction draft?').then(() => {
|
confirmDialog.value?.open('Do you want to save this transaction draft?').then(() => {
|
||||||
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
|
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
|
||||||
doClose();
|
doClose();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
transactionsStore.clearTransactionDraft();
|
transactionsStore.clearTransactionDraft();
|
||||||
@@ -1074,7 +1075,7 @@ function cancel(): void {
|
|||||||
doClose();
|
doClose();
|
||||||
}
|
}
|
||||||
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
|
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
|
||||||
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value);
|
transactionsStore.saveTransactionDraft(transaction.value, initAmount.value, initCategoryId.value, initAccountId.value, initTagIds.value, firstVisibleAccountId.value);
|
||||||
doClose();
|
doClose();
|
||||||
} else {
|
} else {
|
||||||
doClose();
|
doClose();
|
||||||
|
|||||||
@@ -567,6 +567,7 @@ const {
|
|||||||
allCategoriesMap,
|
allCategoriesMap,
|
||||||
allTags,
|
allTags,
|
||||||
allTagsMap,
|
allTagsMap,
|
||||||
|
firstVisibleAccountId,
|
||||||
hasAvailableExpenseCategories,
|
hasAvailableExpenseCategories,
|
||||||
hasAvailableIncomeCategories,
|
hasAvailableIncomeCategories,
|
||||||
hasAvailableTransferCategories,
|
hasAvailableTransferCategories,
|
||||||
@@ -1235,9 +1236,9 @@ function onPageBeforeOut(): void {
|
|||||||
const initAmount: number | undefined = query['amount'] ? parseInt(query['amount']) : undefined;
|
const initAmount: number | undefined = query['amount'] ? parseInt(query['amount']) : undefined;
|
||||||
|
|
||||||
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
|
if (settingsStore.appSettings.autoSaveTransactionDraft === 'confirmation') {
|
||||||
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'])) {
|
if (transactionsStore.isTransactionDraftModified(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value)) {
|
||||||
showConfirm('Do you want to save this transaction draft?', () => {
|
showConfirm('Do you want to save this transaction draft?', () => {
|
||||||
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds']);
|
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value);
|
||||||
}, () => {
|
}, () => {
|
||||||
transactionsStore.clearTransactionDraft();
|
transactionsStore.clearTransactionDraft();
|
||||||
});
|
});
|
||||||
@@ -1245,7 +1246,7 @@ function onPageBeforeOut(): void {
|
|||||||
transactionsStore.clearTransactionDraft();
|
transactionsStore.clearTransactionDraft();
|
||||||
}
|
}
|
||||||
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
|
} else if (settingsStore.appSettings.autoSaveTransactionDraft === 'enabled') {
|
||||||
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds']);
|
transactionsStore.saveTransactionDraft(transaction.value, initAmount, query['categoryId'], query['accountId'], query['tagIds'], firstVisibleAccountId.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user