3namespace Bitrix\Calendar\Core\Event\Properties;
6use Bitrix\Calendar\Core\Base\Date;
7use Bitrix\Calendar\Core\Base\Property;
8use Bitrix\Calendar\Sync\Google\Helper;
15 'monthly' =>
'MONTHLY',
26 private string $frequency;
30 private ?
int $count =
null;
34 private ?
Date $until =
null;
42 private int $interval;
46 private ?
array $byDay = [];
52 public function __construct(
string $frequency,
int $interval = 1)
54 $this->frequency = $frequency;
55 $this->interval = $interval;
65 $fields[
'frequency'] = $this->frequency;
72 if (isset($this->until))
74 $fields[
'until'] = $this->until->format($this->dateFormat);
77 if (isset($this->interval))
79 $fields[
'interval'] = $this->interval;
82 if (isset($this->byDay))
84 $fields[
'byday'] = $this->byDay;
97 $this->until = $until;
98 $this->dateFormat = $dateFormat;
109 $this->
count = $count;
119 $result =
"FREQ={$this->frequency}";
121 if ($this->
count > 0)
123 $result .=
",COUNT={$this->count}";
126 if (isset($this->until))
128 $result .=
",UNTIL={$this->until}";
131 if (isset($this->interval))
133 $result .=
",INTERVAL={$this->interval}";
136 if (isset($this->byDay) && $this->frequency === self::FREQUENCY_WEEKLY)
138 $byDayString = implode(
',',$this->byDay);
139 $result .=
",BYDAY={$byDayString}";
150 $result = [
'FREQ' => $this->frequency];
151 if ($this->
count > 0)
156 if (isset($this->until))
158 $result[
'UNTIL'] = $this->until->toString();
161 if (isset($this->interval))
163 $result [
'INTERVAL'] = $this->interval;
166 if (isset($this->byDay) && $this->frequency === self::FREQUENCY_WEEKLY)
168 $result[
'BYDAY'] = $this->byDay;
180 $this->interval = $interval;
192 $this->byDay = $byDay;
202 return $this->frequency;
226 return $this->interval;
242 return ($this->frequency === self::FREQUENCY_WEEKLY)
259 return $this->until !==
null;
267 if ($this->until ===
null)
272 return $this->until->format(
'd.m.Y') === Helper::END_OF_TIME;
281 $this->frequency = $frequency;
setInterval(int $interval)
setFrequency(string $frequency)
__construct(string $frequency, int $interval=1)
setUntil(Date $until, string $dateFormat=null)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"