product time changed 2
This commit is contained in:
@@ -640,8 +640,10 @@ class ConfigService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ساعت معامله یک محصول:
|
* ساعت معامله یک محصول:
|
||||||
* - override روشن + بازه معتبر → فقط بازه اختصاصی همان محصول
|
* - اگر سوییچ override محصول روشن باشد → فقط بازه اختصاصی خود محصول حاکم است (سراسری نادیده گرفته میشود).
|
||||||
* - در غیر این صورت → فقط وقتی close_price روشن است، startDay/endDay سراسری
|
* - اگر خاموش باشد → لایهٔ بیرونیِ ساعت کاری محصول (auto_open_at/auto_close_at) همیشه اعمال میشود،
|
||||||
|
* مستقل از اینکه close_price روشن باشد یا نه.
|
||||||
|
* - فقط اگر محصول هیچ بازهٔ معتبری نداشته باشد → فیلتر سراسری close_price + startDay/endDay اعمال میشود.
|
||||||
*/
|
*/
|
||||||
public function isProductWithinTradingHours(Product $product, ?Carbon $now = null): bool
|
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);
|
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)) {
|
if ($this->isClosePriceEnabled() && $this->isOutsideTradingHours($now)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -660,7 +666,10 @@ class ConfigService
|
|||||||
{
|
{
|
||||||
$title = trim((string) ($product->title ?? 'محصول'));
|
$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);
|
$open = $this->formatProductTime($product->auto_open_at);
|
||||||
$close = $this->formatProductTime($product->auto_close_at);
|
$close = $this->formatProductTime($product->auto_close_at);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user