1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
MarketOption.php
См. документацию.
1<?php
2
3namespace Bitrix\Rest\Infrastructure\Market;
4
5use Bitrix\Main\ObjectException;
6use Bitrix\Main\Type\Date;
7use Bitrix\Rest\Contract\OptionContract;
8
10{
11 public const TRANSITION_PERIOD_DATE_FORMAT = 'd.m.Y';
12 private const DEFAULT_TRANSITION_PERIOD_END_DATE = '14.03.2025';
13
14 public function __construct(
15 private readonly OptionContract $option,
16 )
17 {}
18
19 public function isNewPoliticsEnabled(): bool
20 {
21 return $this->option->get('isMarketNewPoliticsEnabled', 'N') === 'Y';
22 }
23
24 public function enableNewPolitics(): void
25 {
26 $this->option->set('isMarketNewPoliticsEnabled', 'Y');
27 }
28
29 public function isTransitionPeriodEnabled(): bool
30 {
31 return $this->option->get('isMarketTransitionPeriod', 'N') === 'Y';
32 }
33
34 public function isDiscountAvailable(): bool
35 {
36 return $this->option->get('isMarketDiscountAvailable', 'N') === 'Y';
37 }
38
39 public function getDiscountPercentage(): int
40 {
41 $option = (int)$this->option->get('marketDiscountPercentage', 0);
42
43 if ($option > 0 && $option <= 100)
44 {
45 return $option;
46 }
47
48 return 0;
49 }
50
51 public function getDiscountTermsUrl(): string
52 {
53 return $this->option->get('marketDiscountTermsUrl', '');
54 }
55
57 {
58 $endDateValue = $this->option->get('marketTransitionPeriodEndDate', self::DEFAULT_TRANSITION_PERIOD_END_DATE);
59
60 try
61 {
62 $endDate = new Date((string)$endDateValue, self::TRANSITION_PERIOD_DATE_FORMAT);
63 }
64 catch (ObjectException $e)
65 {
66 $endDate = new Date(self::DEFAULT_TRANSITION_PERIOD_END_DATE, self::TRANSITION_PERIOD_DATE_FORMAT);
67 }
68
69 return $endDate;
70 }
71}
Определения date.php:9
__construct(private readonly OptionContract $option,)
Определения MarketOption.php:14
$option
Определения options.php:1711