diff --git a/pkg/models/user.go b/pkg/models/user.go index bbc59f8d..27fe28f1 100644 --- a/pkg/models/user.go +++ b/pkg/models/user.go @@ -263,6 +263,12 @@ func (u *User) CanEditTransactionByTransactionTime(transactionTime int64, utcOff // ToUserBasicInfo returns a user basic view-object according to database model func (u *User) ToUserBasicInfo(avatarProvider core.UserAvatarProviderType, avatarUrl string) *UserBasicInfo { + fiscalYearStart := u.FiscalYearStart + + if fiscalYearStart < core.FISCAL_YEAR_START_MIN || fiscalYearStart > core.FISCAL_YEAR_START_MAX { + fiscalYearStart = core.FISCAL_YEAR_START_DEFAULT + } + return &UserBasicInfo{ Username: u.Username, Email: u.Email, @@ -274,7 +280,7 @@ func (u *User) ToUserBasicInfo(avatarProvider core.UserAvatarProviderType, avata Language: u.Language, DefaultCurrency: u.DefaultCurrency, FirstDayOfWeek: u.FirstDayOfWeek, - FiscalYearStart: u.FiscalYearStart, + FiscalYearStart: fiscalYearStart, LongDateFormat: u.LongDateFormat, ShortDateFormat: u.ShortDateFormat, LongTimeFormat: u.LongTimeFormat, diff --git a/src/stores/user.ts b/src/stores/user.ts index 98eeccbf..eb25ff3d 100644 --- a/src/stores/user.ts +++ b/src/stores/user.ts @@ -4,6 +4,7 @@ import { defineStore } from 'pinia'; import { useSettingsStore } from './setting.ts'; import { WeekDay } from '@/core/datetime.ts'; +import { FiscalYearStart } from '@/core/fiscalyear.ts'; import { type UserBasicInfo, @@ -68,7 +69,7 @@ export const useUserStore = defineStore('user', () => { const currentUserFiscalYearStart = computed(() => { const userInfo = currentUserBasicInfo.value || EMPTY_USER_BASIC_INFO; - return userInfo.fiscalYearStart; + return isNumber(userInfo.fiscalYearStart) && FiscalYearStart.valueOf(userInfo.fiscalYearStart) ? userInfo.fiscalYearStart : EMPTY_USER_BASIC_INFO.fiscalYearStart; }); const currentUserLongDateFormat = computed(() => {