From b0dacc2423ada2ab9c78cd272bb80e97f2e3536f Mon Sep 17 00:00:00 2001 From: mohammad sedighi Date: Mon, 29 Jun 2026 02:11:36 +0330 Subject: [PATCH] fix price --- app/Services/ConfigService.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/Services/ConfigService.php b/app/Services/ConfigService.php index c1a3a05..9f92196 100644 --- a/app/Services/ConfigService.php +++ b/app/Services/ConfigService.php @@ -599,8 +599,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 { @@ -608,6 +610,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; } @@ -619,7 +625,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);