fix bug
This commit is contained in:
+47
-3
@@ -7,6 +7,14 @@ export interface StoreTradingHours {
|
||||
closePriceEnabled: boolean
|
||||
}
|
||||
|
||||
export interface EffectiveTradingHours {
|
||||
start: string
|
||||
end: string
|
||||
enforced: boolean
|
||||
}
|
||||
|
||||
let productTradingHours: { start: string; end: string } | null = null
|
||||
|
||||
function parseTimeToSeconds(time: string): number {
|
||||
const parts = time.trim().split(':').map(Number)
|
||||
const [hours = 0, minutes = 0, seconds = 0] = parts
|
||||
@@ -24,6 +32,12 @@ export function formatTradingTimeDisplay(time: string): string {
|
||||
return time
|
||||
}
|
||||
|
||||
export function setProductTradingHours(start?: string | null, end?: string | null) {
|
||||
if (start && end) {
|
||||
productTradingHours = { start, end }
|
||||
}
|
||||
}
|
||||
|
||||
export function getStoreTradingHours(): StoreTradingHours {
|
||||
const settings = useSettingsStore()
|
||||
const closeRaw = settings.getSettingByKey('close_price')
|
||||
@@ -39,9 +53,34 @@ export function getStoreTradingHours(): StoreTradingHours {
|
||||
}
|
||||
}
|
||||
|
||||
export function getEffectiveTradingHours(): EffectiveTradingHours {
|
||||
const settings = getStoreTradingHours()
|
||||
if (settings.closePriceEnabled) {
|
||||
return {
|
||||
start: settings.start,
|
||||
end: settings.end,
|
||||
enforced: true,
|
||||
}
|
||||
}
|
||||
|
||||
if (productTradingHours?.start && productTradingHours?.end) {
|
||||
return {
|
||||
start: productTradingHours.start,
|
||||
end: productTradingHours.end,
|
||||
enforced: true,
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
start: settings.start,
|
||||
end: settings.end,
|
||||
enforced: false,
|
||||
}
|
||||
}
|
||||
|
||||
export function isStoreClosedBySchedule(now = new Date()): boolean {
|
||||
const { start, end, closePriceEnabled } = getStoreTradingHours()
|
||||
if (!closePriceEnabled) {
|
||||
const { start, end, enforced } = getEffectiveTradingHours()
|
||||
if (!enforced) {
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -60,4 +99,9 @@ export function isStoreClosed(): boolean {
|
||||
return isStoreClosedBySchedule()
|
||||
}
|
||||
|
||||
export const STORE_CLOSED_MESSAGE = 'فروشگاه در حال حاضر بسته است.'
|
||||
export function getStoreClosedMessage(): string {
|
||||
const { start, end } = getEffectiveTradingHours()
|
||||
const open = formatTradingTimeDisplay(start)
|
||||
const close = formatTradingTimeDisplay(end)
|
||||
return `فروشگاه در حال حاضر بسته است. ساعت کاری از ${open} تا ${close} میباشد.`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user