1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
eventoption.php
См. документацию.
1<?php
2
3namespace Bitrix\Calendar\Core\Mappers;
4
5use Bitrix\Calendar\Core;
6use Bitrix\Calendar\Core\Base\EntityInterface;
7use Bitrix\Calendar\Core\Builders\EventOption\EventOptionBuilderFromObject;
8use Bitrix\Calendar\OpenEvents\Internals\OpenEventOptionTable;
9use Bitrix\Main\ORM\Query\Result;
10
11final class EventOption extends Mapper
12{
13 protected function getEntityClass(): string
14 {
15 return Core\eventoption\EventOption::class;
16 }
17
19 {
20 $params['select'] = $params['select'] ?? ["*"];
21
23 }
24
25 protected function getOneEntityByFilter(array $filter): ?object
26 {
27 $eventData = OpenEventOptionTable::query()
28 ->setFilter($filter)
29 ->setSelect(['*'])
30 ->fetchObject();
31
32 if ($eventData)
33 {
34 return $this->convertToObject($eventData);
35 }
36
37 return null;
38 }
39
40 protected function convertToObject($objectEO): ?EntityInterface
41 {
42 return (new EventOptionBuilderFromObject($objectEO))->build();
43 }
44
45 protected function getEntityName(): string
46 {
47 return 'event_option';
48 }
49
50 protected function createEntity($entity, array $params = []): ?EntityInterface
51 {
52 $arrayEntity = $this->entityToArray($entity);
53 $result = OpenEventOptionTable::add($arrayEntity);
54
55 if ($result->isSuccess())
56 {
57 $entity->setId($result->getId());
58
59 return $entity;
60 }
61
62 throw new Core\Base\BaseException('Error of create event option');
63 }
64
68 protected function updateEntity($entity, array $params = [
69 'updateAttendeesCounter' => false,
71 {
72 $arrayEntity = $this->entityToArray($entity);
73
74 if ($params['updateAttendeesCounter'] ?? null)
75 {
76 $arrayEntity['ATTENDEES_COUNT'] = $entity->getAttendeesCount();
77 }
78
80 $entity->getId(),
81 $arrayEntity
82 );
83
84 if ($result->isSuccess())
85 {
86 return $entity;
87 }
88
89 throw new Core\Base\BaseException('Error of update event option');
90 }
91
93 {
94 throw new Core\Base\BaseException('Delete of event option not implemented');
95 }
96
97 private function entityToArray($entity): array
98 {
99 return [
100 'EVENT_ID' => $entity->getEventId(),
101 'CATEGORY_ID' => $entity->getCategoryId(),
102 'THREAD_ID' => $entity->getThreadId(),
103 'OPTIONS' => json_encode($entity->getOptions()),
104 ];
105 }
106}
updateEntity($entity, array $params=['updateAttendeesCounter'=> false,])
Определения eventoption.php:68
getOneEntityByFilter(array $filter)
Определения eventoption.php:25
createEntity($entity, array $params=[])
Определения eventoption.php:50
getDataManagerResult(array $params)
Определения eventoption.php:18
deleteEntity(EntityInterface $entity, array $params)
Определения eventoption.php:92
static getList(array $parameters=array())
Определения datamanager.php:431
static add(array $data)
Определения datamanager.php:877
static update($primary, array $data)
Определения datamanager.php:1256
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$result
Определения get_property_values.php:14
$entity
$filter
Определения iblock_catalog_list.php:54
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения template.php:799