diff --git a/src/store/index.js b/src/store/index.js index c77fc179..69f6950d 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -549,13 +549,14 @@ const stores = { }, [SAVE_TRANSACTION_IN_TRANSACTION_LIST] (state, { transaction, defaultCurrency }) { const currentUtcOffset = utils.getTimezoneOffsetMinutes(); + const transactionTime = utils.parseDateFromUnixTime(transaction.time, transaction.utcOffset, currentUtcOffset); + const transactionYear = utils.getYear(transactionTime); + const transactionMonth = utils.getMonth(transactionTime); for (let i = 0; i < state.transactions.length; i++) { const transactionMonthList = state.transactions[i]; - if (!transactionMonthList.items || - transactionMonthList.items[0].time < transaction.time || - transactionMonthList.items[transactionMonthList.items.length - 1].time > transaction.time) { + if (!transactionMonthList.items) { continue; } @@ -563,6 +564,13 @@ const stores = { if (transactionMonthList.items[j].id === transaction.id) { fillTransactionObject(state, transaction, currentUtcOffset); + if (transactionYear !== transactionMonthList.year || + transactionMonth !== transactionMonthList.month || + transaction.day !== transactionMonthList.items[j].day) { + state.transactionListStateInvalid = true; + return; + } + if ((state.transactionsFilter.categoryId && state.transactionsFilter.categoryId !== '0' && state.transactionsFilter.categoryId !== transaction.categoryId) || (state.transactionsFilter.accountId && state.transactionsFilter.accountId !== '0' && state.transactionsFilter.accountId !== transaction.sourceAccountId && state.transactionsFilter.accountId !== transaction.destinationAccountId)) { transactionMonthList.items.splice(j, 1);