product time changed 2

This commit is contained in:
2026-07-02 20:48:49 +03:30
parent 552d9b07af
commit 5a568f971d
+12 -3
View File
@@ -640,8 +640,10 @@ class ConfigService
/**
* ساعت معامله یک محصول:
* - override روشن + بازه معتبر → فقط بازه اختصاصی همان محصول
* - در غیر این صورت → فقط وقتی close_price روشن است، startDay/endDay سراسری
* - اگر سوییچ override محصول روشن باشد → فقط بازه اختصاصی خود محصول حاکم است (سراسری نادیده گرفته می‌شود).
* - اگر خاموش باشد → لایهٔ بیرونیِ ساعت کاری محصول (auto_open_at/auto_close_at) همیشه اعمال می‌شود،
* مستقل از اینکه close_price روشن باشد یا نه.
* - فقط اگر محصول هیچ بازهٔ معتبری نداشته باشد → فیلتر سراسری close_price + startDay/endDay اعمال می‌شود.
*/
public function isProductWithinTradingHours(Product $product, ?Carbon $now = null): bool
{
@@ -649,6 +651,10 @@ class ConfigService
return $this->isWithinTimeWindow($product->auto_open_at, $product->auto_close_at, $now);
}
if ($this->hasProductTradingWindow($product->auto_open_at, $product->auto_close_at)) {
return $this->isWithinTimeWindow($product->auto_open_at, $product->auto_close_at, $now);
}
if ($this->isClosePriceEnabled() && $this->isOutsideTradingHours($now)) {
return false;
}
@@ -660,7 +666,10 @@ class ConfigService
{
$title = trim((string) ($product->title ?? 'محصول'));
if ($this->productOverridesTradingHours($product)) {
if (
$this->productOverridesTradingHours($product)
|| $this->hasProductTradingWindow($product->auto_open_at, $product->auto_close_at)
) {
$open = $this->formatProductTime($product->auto_open_at);
$close = $this->formatProductTime($product->auto_close_at);