support modify transaction time zone

This commit is contained in:
MaysWind
2021-03-14 02:47:24 +08:00
parent 410660ed7f
commit 8e90f96562
12 changed files with 117 additions and 29 deletions
+7 -3
View File
@@ -417,14 +417,16 @@ const stores = {
}
if (transactions.items && transactions.items.length) {
const currentUtcOffset = utils.getTimezoneOffsetMinutes();
let currentMonthListIndex = -1;
let currentMonthList = null;
for (let i = 0; i < transactions.items.length; i++) {
const item = transactions.items[i];
fillTransactionObject(state, item);
fillTransactionObject(state, item, currentUtcOffset);
const transactionTime = utils.parseDateFromUnixTime(item.time);
const transactionUnixTimeForLocalUsage = utils.getDummyUnixTimeForLocalDisplay(item.time, item.utcOffset, currentUtcOffset);
const transactionTime = utils.parseDateFromUnixTime(transactionUnixTimeForLocalUsage);
const transactionYear = utils.getYear(transactionTime);
const transactionMonth = utils.getMonth(transactionTime);
const transactionYearMonth = utils.getYearAndMonth(transactionTime);
@@ -547,6 +549,8 @@ const stores = {
}
},
[SAVE_TRANSACTION_IN_TRANSACTION_LIST] (state, { transaction, defaultCurrency }) {
const currentUtcOffset = utils.getTimezoneOffsetMinutes();
for (let i = 0; i < state.transactions.length; i++) {
const transactionMonthList = state.transactions[i];
@@ -558,7 +562,7 @@ const stores = {
for (let j = 0; j < transactionMonthList.items.length; j++) {
if (transactionMonthList.items[j].id === transaction.id) {
fillTransactionObject(state, transaction);
fillTransactionObject(state, transaction, currentUtcOffset);
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)) {
+3 -2
View File
@@ -279,12 +279,13 @@ export function hasMoreTransaction(state) {
return state.transactionsNextTimeId > 0;
}
export function fillTransactionObject(state, transaction) {
export function fillTransactionObject(state, transaction, currentUtcOffset) {
if (!transaction) {
return;
}
const transactionTime = utils.parseDateFromUnixTime(transaction.time);
const transactionUnixTimeForLocalUsage = utils.getDummyUnixTimeForLocalDisplay(transaction.time, transaction.utcOffset, currentUtcOffset);
const transactionTime = utils.parseDateFromUnixTime(transactionUnixTimeForLocalUsage);
transaction.day = utils.getDay(transactionTime);
transaction.dayOfWeek = utils.getDayOfWeek(transactionTime);