Bitrix-D7 22.2
Загрузка...
Поиск...
Не найдено
Класс PropertyValueBase
+ Граф наследования:PropertyValueBase:

Открытые члены

 needDeleteOnRefresh ()
 
 setField ($name, $value)
 
 save ()
 
 setValueFromPost (array $post)
 
 checkValue ($key, $value)
 
 checkRequiredValue ($key, $value)
 
 getProperty ()
 
 getPropertyObject ()
 
 getValueId ()
 
 getPropertyId ()
 
 getPersonTypeId ()
 
 getGroupId ()
 
 getName ()
 
 getRelations ()
 
 getDescription ()
 
 getType ()
 
 isRequired ()
 
 isUtil ()
 
 setValue ($value)
 
 getViewHtml ()
 
 getEditHtml ()
 
 getValue ()
 
 setCollection (EntityCollection $collection)
 
 getCollection ()
 
 setInternalIndex ($index)
 
 getInternalIndex ()
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 setMathActionOnly ($value=false)
 
 isMathActionOnly ()
 
 isClone ()
 
 fetch (Main\Text\Converter $converter=null)
 

Открытые статические члены

static loadForOrder (OrderBase $order)
 
static getEntityEventName ()
 
static generateXmlId ()
 
static create (EntityPropertyValueCollection $collection, array $property=[])
 
static getAvailableFields ()
 
static update ($id, array $data)
 
static getRegistryType ()
 
static getRegistryEntity ()
 
static getList (array $parameters=[])
 
static loadForEntity (Entity $entity)
 
static getTableEntity ()
 
static getEntity ()
 
static getRow (array $parameters)
 
static clearCache ()
 
static add (array $data)
 
static delete ($id)
 
static setCacheItem ($id, array $row)
 
static getCacheItem ($id, bool $load=false)
 
static clearCacheItem ($id)
 
static getTabletClassName ()
 
static getTabletFieldNames (int $fields=self::FIELDS_MAIN)
 
static getCachedFieldList ()
 
static getCallbackRestEvent ()
 
static clearSettings ()
 

Поля данных

const PREFIX_OLD = 'OLD_'
 
const EVENT_ON_BUILD_CACHED_FIELD_LIST = 'OnBuildCachedFieldList'
 
const FIELDS_MAIN = 0x0001
 
const FIELDS_UF = 0x0002
 
const FIELDS_ALL = self::FIELDS_MAIN|self::FIELDS_UF
 

Защищенные члены

 update ()
 
 callEventOnPropertyValueEntitySaved ()
 
 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
 onFieldModify ($name, $oldValue, $value)
 
 getTablet ()
 

Защищенные статические члены

static getOnSavedEventName ()
 
static getPropertyClassName ()
 
static getEntityType ()
 
static createPropertyValueObject (array $property=null, array $value=[], array $relation=null)
 
static extractPaySystemIdList (Entity $order)
 
static extractDeliveryIdList (Entity $order)
 
static extractTpLandingIdList (Entity $entity)
 
static constructPropertyFilter (Entity $entity)
 
static hasPresetForLanding (Entity $entity)
 
static constructPropertyRelatedEntitiesFilter (Entity $entity)
 
static getRelationRuntimeFields ()
 
static createPropertyValuesObjects (array $properties, array $propertyValues, array $propRelation, array $propertyValuesMap)
 
static getFieldsMap ()
 
static getMeaningfulFields ()
 
static prepareForAdd (ORM\Data\AddResult $result, $id, array &$data)
 
static prepareForUpdate (ORM\Data\UpdateResult $result, $id, array &$data)
 
static deleteNoDemands ($id)
 
static normalize (array &$data)
 
static runAddExternalActions ($id, array $data)
 
static runUpdateExternalActions ($id, array $data)
 
static runDeleteExternalActions ($id)
 
static getDefaultCachedFieldList ()
 
static prepareFloatValue ($value)
 
static prepareIntValue ($value)
 
static prepareStringValue ($value)
 

Защищенные данные

 $property = null
 
 $collection
 
 $internalIndex = null
 
 $isClone = false
 

Подробное описание

См. определение в файле propertyvaluebase.php строка 12

Методы

◆ add()

static add ( array  $data)
staticinherited

Add entity item. Use instead of DataManager method.

Аргументы
array$data
Возвращает
ORM\Data\AddResult

См. определение в файле entity.php строка 150

150 : ORM\Data\AddResult
151 {
152 $result = new ORM\Data\AddResult();
153
154 $entity = static::getEntity();
155
156 static::normalize($data);
157
158 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_BEFORE_ADD))
159 {
160 $event = new Event(
161 $entity,
162 ORM\Data\DataManager::EVENT_ON_BEFORE_ADD,
163 $data
164 );
165 $event->send();
166
167 $event->mergeData($data);
168 if ($event->getErrors($result))
169 return $result;
170 }
171
172 static::prepareForAdd($result, null, $data);
173 if (!$result->isSuccess())
174 return $result;
175 unset($result);
176
177 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_ADD))
178 {
179 $event = new Event(
180 $entity,
181 ORM\Data\DataManager::EVENT_ON_ADD,
182 $data
183 );
184 $event->send();
185 unset($event);
186 }
187
188 $result = $entity->getTablet()->add($data['fields']);
189 $success = $result->isSuccess();
190 if ($success)
191 {
192 $data['fields'] = $result->getData();
193 if ($entity->fieldsCount > 0)
194 $entity->setEntityCacheItem((int)$result->getId(), $result->getData(), false);
195 }
196
197 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_AFTER_ADD))
198 {
199 $event = new Event(
200 $entity,
201 ORM\Data\DataManager::EVENT_ON_AFTER_ADD,
202 [
203 'id' => $result->getId(),
204 'fields' => $data['fields'],
205 'external_fields' => $data['external_fields'],
206 'actions' => $data['actions'],
207 'success' => $success
208 ]
209 );
210 $event->send();
211 unset($event);
212 }
213
214 if ($success && !empty($data['actions']))
215 static::runAddExternalActions($result->getId(), $data);
216
217 unset($success, $entity);
218
219 return $result;
220 }

◆ addInternal()

addInternal ( array  $data)
protectedinherited
Аргументы
array$data
Возвращает
Main\Entity\AddResult
Исключения

Exception

См. определение в файле entitypropertyvalue.php строка 832

833 {
834 return OrderPropsValueTable::add($data);
835 }

◆ callEventOnPropertyValueEntitySaved()

callEventOnPropertyValueEntitySaved ( )
protectedinherited
Возвращает
void

См. определение в файле entitypropertyvalue.php строка 632

632 : void
633 {
634 $event = new Main\Event(
635 'sale',
636 static::getOnSavedEventName(),
637 [
638 'ENTITY' => $this,
639 'VALUES' => $this->fields->getOriginalValues(),
640 ]
641 );
642
643 $event->send();
644 }

◆ checkRequiredValue()

checkRequiredValue (   $key,
  $value 
)
inherited
Аргументы
$key
$value
Возвращает
Result
Исключения
Main

SystemException

См. определение в файле entitypropertyvalue.php строка 697

698 {
699 $result = new Result();
700
701 $res = $this->property->checkRequiredValue($value);
702 if (!$res->isSuccess())
703 {
704 $errors = $res->getErrors();
705 foreach ($errors as $error)
706 {
707 $result->addError(new ResultError($error->getMessage(), "PROPERTIES[$key]"));
708 $result->addError(new ResultWarning($error->getMessage(), "PROPERTIES[$key]"));
709 }
710 }
711
712 return $result;
713 }

◆ checkValue()

checkValue (   $key,
  $value 
)
inherited
Аргументы
$key
$value
Возвращает
Result
Исключения
Main

SystemException

См. определение в файле entitypropertyvalue.php строка 672

673 {
674 $result = new Result();
675
676 $res = $this->property->checkValue($value);
677 if (!$res->isSuccess())
678 {
679 $errors = $res->getErrors();
680 foreach ($errors as $error)
681 {
682 $result->addError(new ResultError($error->getMessage(), "PROPERTIES[$key]"));
683 $result->addError(new ResultWarning($error->getMessage(), "PROPERTIES[$key]"));
684 }
685 }
686
687 return $result;
688 }

◆ clearCache()

static clearCache ( )
staticinherited

Clear all cache for entity.

Возвращает
void

См. определение в файле entity.php строка 139

139 : void
140 {
141 static::getEntity()->clearEntityCache();
142 }

◆ clearCacheItem()

static clearCacheItem (   $id)
staticinherited

Clear item cache. Do not use without good reason.

Аргументы
int$id
Возвращает
void @noinspection PhpUnused

См. определение в файле entity.php строка 411

411 : void
412 {
413 $id = (int)$id;
414 if ($id <= 0)
415 return;
416 static::getEntity()->clearEntityCacheItem($id);
417 }

◆ clearSettings()

static clearSettings ( )
staticinherited

Переопределяется в Price.

См. определение в файле entity.php строка 970

970: void {}

◆ clearStartField()

clearStartField ( )
inherited
Возвращает
bool

См. определение в файле collectableentity.php строка 104

105 {
106 $parent = $this->getCollection();
107 if ($parent == null)
108 return false;
109
110 return $parent->clearStartField();
111 }

◆ constructPropertyFilter()

static constructPropertyFilter ( Entity  $entity)
staticprotectedinherited

См. определение в файле entitypropertyvalue.php строка 177

177 : array
178 {
179 $filter = [
180 '=ENTITY_TYPE' => static::getEntityType()
181 ];
182
183 if ($entity->getPersonTypeId() > 0)
184 {
185 $filter['=PERSON_TYPE_ID'] = $entity->getPersonTypeId();
186 }
187
188 $subFilter = [
189 'LOGIC' => 'OR',
190 static::constructPropertyRelatedEntitiesFilter($entity)
191 ];
192
193 if ($entity->getId() > 0)
194 {
195 $dbRes = static::getList([
196 'select' => ['ORDER_PROPS_ID'],
197 'filter' => [
198 '=ENTITY_ID' => $entity->getId(),
199 '=ENTITY_TYPE' => static::getEntityType()
200 ]
201 ]);
202
203 while ($row = $dbRes->fetch())
204 {
205 $subFilter['@ID'][] = $row['ORDER_PROPS_ID'];
206 }
207 }
208
209 $filter[] = $subFilter;
210
211 return $filter;
212 }

◆ constructPropertyRelatedEntitiesFilter()

static constructPropertyRelatedEntitiesFilter ( Entity  $entity)
staticprotectedinherited
Аргументы
Entity$entity
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 238

238 : array
239 {
240 $result = [];
241
242 $psFilter = ['=RELATION_PS.ENTITY_ID' => null];
243
244 if ($paySystemList = static::extractPaySystemIdList($entity))
245 {
246 $psFilter['LOGIC'] = 'OR';
247 $psFilter['@RELATION_PS.ENTITY_ID'] = $paySystemList;
248 }
249
250 $result[] = $psFilter;
251 $dlvFilter = ['=RELATION_DLV.ENTITY_ID' => null];
252
253 if ($deliveryList = static::extractDeliveryIdList($entity))
254 {
255 $dlvFilter['LOGIC'] = 'OR';
256 $dlvFilter['@RELATION_DLV.ENTITY_ID'] = $deliveryList;
257 }
258
259 $result[] = $dlvFilter;
260
261 if (self::hasPresetForLanding($entity))
262 {
263 $result[] = [
264 'LOGIC' => 'OR',
265 '!RELATION_PS.ENTITY_ID' => null,
266 '!RELATION_DLV.ENTITY_ID' => null,
267 ];
268
269 $result = [
270 'LOGIC' => 'OR',
271 '@RELATION_TP_LANDING.ENTITY_ID' => static::extractTpLandingIdList($entity),
272 $result,
273 ];
274 }
275 else
276 {
277 $result = [
278 '=RELATION_TP_LANDING.ENTITY_ID' => null,
279 $result,
280 ];
281 }
282
283 return $result;
284 }

◆ create()

static create ( EntityPropertyValueCollection  $collection,
array  $property = [] 
)
staticinherited
Аргументы
EntityPropertyValueCollection$collection
array$property
Возвращает
mixed
Исключения
Main

ArgumentException

Исключения
Main

NotImplementedException

См. определение в файле entitypropertyvalue.php строка 453

454 {
455 $propertyValue = static::createPropertyValueObject($property);
456 $propertyValue->setCollection($collection);
457 return $propertyValue;
458 }

◆ createPropertyValueObject()

static createPropertyValueObject ( array  $property = null,
array  $value = [],
array  $relation = null 
)
staticprotected
Аргументы
array | null$property
array$value
array | null$relation
Возвращает
EntityPropertyValue

Переопределяет метод предка EntityPropertyValue.

См. определение в файле propertyvaluebase.php строка 56

60 : EntityPropertyValue
61 {
62 $registry = Registry::getInstance(static::getRegistryType());
63 $propertyValueClassName = $registry->getPropertyValueClassName();
64 return new $propertyValueClassName($property, $value, $relation);
65 }
static getInstance($type)
Definition: registry.php:183

◆ createPropertyValuesObjects()

static createPropertyValuesObjects ( array  $properties,
array  $propertyValues,
array  $propRelation,
array  $propertyValuesMap 
)
staticprotectedinherited
Аргументы
array$properties
array$propertyValues
array$propRelation
array$propertyValuesMap
Возвращает
array
Исключения
Main

ArgumentException

Исключения
Main

NotImplementedException

См. определение в файле entitypropertyvalue.php строка 328

332 : array
333 {
334 $result = [];
335
336 foreach ($properties as $property)
337 {
338 $id = $property['ID'];
339
340 if (isset($propertyValuesMap[$id]))
341 {
342 $fields = $propertyValues[$propertyValuesMap[$id]];
343 unset($propertyValues[$propertyValuesMap[$id]]);
344 unset($propertyValuesMap[$id]);
345 }
346 else
347 {
348 if ($property['ACTIVE'] === 'N')
349 {
350 continue;
351 }
352
353 $fields = [];
354 }
355
356 $result[$id] = static::createPropertyValueObject($property, $fields, $propRelation[$id]);
357 }
358
359 foreach ($propertyValues as $propertyValue)
360 {
361 $result[$propertyValue['ORDER_PROPS_ID']] = static::createPropertyValueObject(null, $propertyValue);
362 }
363
364 return $result;
365 }

◆ delete()

static delete (   $id)
staticinherited

Delete entity item. Use instead of DataManager method.

Аргументы
int$id
Возвращает
ORM\Data\DeleteResult

Переопределяется в Product.

См. определение в файле entity.php строка 317

317 : ORM\Data\DeleteResult
318 {
319 $result = new ORM\Data\DeleteResult();
320
321 $entity = static::getEntity();
322
323 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_BEFORE_DELETE))
324 {
325 $event = new Event(
326 $entity,
327 ORM\Data\DataManager::EVENT_ON_BEFORE_DELETE,
328 ['id' => $id]
329 );
330 $event->send();
331
332 if ($event->getErrors($result))
333 return $result;
334 }
335
336 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_DELETE))
337 {
338 $event = new Event(
339 $entity,
340 ORM\Data\DataManager::EVENT_ON_DELETE,
341 ['id' => $id]
342 );
343 $event->send();
344 unset($event);
345 }
346
347 if ($entity->fieldsCount > 0 && !isset($entity->cache[$id]))
348 $entity->loadEntityCacheItem($id);
349
350 $result = $entity->getTablet()->delete($id);
351 $success = $result->isSuccess();
352 if ($success)
353 $entity->expireEntityCacheItem((int)$id);
354
355 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_AFTER_DELETE))
356 {
357 $event = new Event(
358 $entity,
359 ORM\Data\DataManager::EVENT_ON_AFTER_DELETE,
360 ['id' => $id, 'success' => $success]
361 );
362 $event->send();
363 unset($event);
364 }
365
366 if ($success)
367 static::runDeleteExternalActions($id);
368
369 unset($success, $entity);
370
371 return $result;
372 }

◆ deleteNoDemands()

static deleteNoDemands (   $id)
staticprotectedinherited

Delete entity item without entity events (tablet events only).

Аргументы
int$id
Возвращает
ORM\Data\DeleteResult
Исключения
Main

ObjectNotFoundException

См. определение в файле entity.php строка 534

534 : ORM\Data\DeleteResult
535 {
536 $entity = static::getEntity();
537
538 if ($entity->fieldsCount > 0 && !isset($entity->cache[$id]))
539 $entity->loadEntityCacheItem($id);
540
541 $result = $entity->getTablet()->delete($id);
542 if ($result->isSuccess())
543 {
544 if ($entity->fieldsCount > 0)
545 $entity->expireEntityCacheItem((int)$id);
546 static::runDeleteExternalActions($id);
547 }
548
549 unset($entity);
550
551 return $result;
552 }

◆ doFinalAction()

doFinalAction (   $hasMeaningfulField = false)
inherited

См. определение в файле collectableentity.php строка 125

126 {
127 $parent = $this->getCollection();
128 if ($parent == null)
129 {
130 return false;
131 }
132
133 return $parent->doFinalAction($hasMeaningfulField);
134 }

◆ extractDeliveryIdList()

static extractDeliveryIdList ( Entity  $order)
staticprotected
Аргументы
Entity$order
Возвращает
array

Переопределяет метод предка EntityPropertyValue.

Переопределяется в PropertyValue.

См. определение в файле propertyvaluebase.php строка 80

81 {
82 return [(int)$order->getField('DELIVERY_ID')];
83 }

◆ extractPaySystemIdList()

static extractPaySystemIdList ( Entity  $order)
staticprotected
Аргументы
Entity$order
Возвращает
array

Переопределяет метод предка EntityPropertyValue.

Переопределяется в PropertyValue.

См. определение в файле propertyvaluebase.php строка 71

72 {
73 return [$order->getField('PAY_SYSTEM_ID')];
74 }

◆ extractTpLandingIdList()

static extractTpLandingIdList ( Entity  $entity)
staticprotectedinherited

Переопределяется в ShipmentPropertyValue и PropertyValue.

См. определение в файле entitypropertyvalue.php строка 62

62 : array
63 {
64 return [];
65 }

◆ fetch()

fetch ( Main\Text\Converter  $converter = null)
inherited

Entity fetch. Work with entity change cache.

Аргументы
Main\Text\Converter | null$converter
Возвращает
array|false

См. определение в файле entity.php строка 112

113 {
114 if ($this->result === null)
115 return false;
116 $row = $this->result->fetch($converter);
117 if (!$row)
118 {
119 $this->result = null;
120 $this->fetchCutMask = [];
121 return false;
122 }
123 if (empty($this->fields))
124 return $row;
125 if (!isset($row['ID']))
126 return $row;
127
128 $this->setEntityCacheItem((int)$row['ID'], $row, true);
129 if (!empty($this->fetchCutMask))
130 $row = array_diff_key($row, $this->fetchCutMask);
131 return $row;
132 }

◆ generateXmlId()

static generateXmlId ( )
staticinherited
Возвращает
string

См. определение в файле entitypropertyvalue.php строка 441

441 : string
442 {
443 return uniqid('bx_');
444 }

◆ getAvailableFields()

static getAvailableFields ( )
staticinherited
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 463

464 {
465 return ['VALUE'];
466 }

◆ getCachedFieldList()

static getCachedFieldList ( )
staticinherited

Returns fields list in cache.

Возвращает
array

См. определение в файле entity.php строка 465

465 : array
466 {
467 $entity = static::getEntity();
468 return $entity->fields;
469 }

◆ getCacheItem()

static getCacheItem (   $id,
bool  $load = false 
)
staticinherited

Returns item cache.

Аргументы
int$id
bool$load
Возвращает
array|null

См. определение в файле entity.php строка 396

396 : ?array
397 {
398 $id = (int)$id;
399 if ($id <= 0)
400 return null;
401 return static::getEntity()->getEntityCacheItem($id, $load);
402 }

◆ getCallbackRestEvent()

static getCallbackRestEvent ( )
staticinherited

См. определение в файле entity.php строка 822

822 : array
823 {
824 return [Main\Rest\Event::class, 'processItemEvent'];
825 }

◆ getCollection()

getCollection ( )
inherited
Возвращает
EntityCollection

См. определение в файле collectableentity.php строка 46

47 {
48 return $this->collection;
49 }

◆ getDefaultCachedFieldList()

static getDefaultCachedFieldList ( )
staticprotectedinherited

Returns entity default fields list for caching.

Возвращает
array

Переопределяется в Price, Product и Vat.

См. определение в файле entity.php строка 616

616 : array
617 {
618 return [];
619 }

◆ getDescription()

getDescription ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 782

783 {
784 return $this->property->getDescription();
785 }

◆ getEditHtml()

getEditHtml ( )
inherited
Возвращает
string
Исключения
Main

SystemException

См. определение в файле entitypropertyvalue.php строка 883

884 {
885 return $this->property->getEditHtml($this->getFieldValues());
886 }

◆ getEntity()

static getEntity ( )
staticinherited

Returns entity class.

Возвращает
Entity

См. определение в файле entity.php строка 56

56 : Entity
57 {
58 $className = get_called_class();
59 if (empty(self::$entity[$className]))
60 {
61 $entity = new static;
62 self::$entity[$className] = $entity;
63 }
64
65 return self::$entity[$className];
66 }

◆ getEntityEventName()

static getEntityEventName ( )
static
Возвращает
null|string

См. определение в файле propertyvaluebase.php строка 137

138 {
139 return 'SalePropertyValue';
140 }

◆ getEntityType()

static getEntityType ( )
staticprotected
Возвращает
string \Bitrix\Sale\Registry::ENTITY_ORDER

Переопределяет метод предка EntityPropertyValue.

См. определение в файле propertyvaluebase.php строка 35

35 : string
36 {
37 return \Bitrix\Sale\Registry::ENTITY_ORDER;
38 }

◆ getFieldsMap()

static getFieldsMap ( )
staticprotectedinherited
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 370

371 {
372 return OrderPropsValueTable::getMap();
373 }

◆ getGroupId()

getGroupId ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 758

759 {
760 return $this->property->getGroupId();
761 }

◆ getInternalIndex()

getInternalIndex ( )
inherited
Возвращает
null|int

См. определение в файле collectableentity.php строка 83

◆ getList()

static getList ( array  $parameters = [])
staticinherited
Аргументы
array$parameters
Возвращает
Main\DB\Result|Main\ORM\Query\Result
Исключения
Main

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

Переопределяет метод предка Entity.

См. определение в файле entitypropertyvalue.php строка 855

856 {
857 return OrderPropsValueTable::getList($parameters);
858 }

◆ getMeaningfulFields()

static getMeaningfulFields ( )
staticprotectedinherited
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 471

472 {
473 return [];
474 }

◆ getName()

getName ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 766

767 {
768 return $this->property->getName();
769 }

◆ getOnSavedEventName()

static getOnSavedEventName ( )
staticprotected

Returns OnSaved event name

Возвращает
string

Переопределяет метод предка EntityPropertyValue.

См. определение в файле propertyvaluebase.php строка 18

18 : string
19 {
20 return 'OnSalePropertyValueEntitySaved';
21 }

◆ getPersonTypeId()

getPersonTypeId ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 750

751 {
752 return $this->property->getPersonTypeId();
753 }

◆ getProperty()

getProperty ( )
inherited
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 718

718 : array
719 {
720 return $this->property->getFields();
721 }

◆ getPropertyClassName()

static getPropertyClassName ( )
staticprotected
Возвращает
string Property class name.

Переопределяет метод предка EntityPropertyValue.

См. определение в файле propertyvaluebase.php строка 26

26 : string
27 {
28 $registry = Registry::getInstance(static::getRegistryType());
29 return $registry->getPropertyClassName();
30 }

◆ getPropertyId()

getPropertyId ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 742

743 {
744 return $this->property->getId();
745 }

◆ getPropertyObject()

getPropertyObject ( )
inherited
Возвращает
EntityProperty|null

См. определение в файле entitypropertyvalue.php строка 726

726 : ?EntityProperty
727 {
728 return $this->property;
729 }

◆ getRegistryEntity()

static getRegistryEntity ( )
staticinherited
Возвращает
string

См. определение в файле entitypropertyvalue.php строка 822

822 : string
823 {
825 }
const ENTITY_PROPERTY_VALUE
Definition: registry.php:27

◆ getRegistryType()

static getRegistryType ( )
staticinherited
Возвращает
string

См. определение в файле entitypropertyvalue.php строка 814

815 {
817 }
const REGISTRY_TYPE_ORDER
Definition: registry.php:16

◆ getRelationRuntimeFields()

static getRelationRuntimeFields ( )
staticprotectedinherited

См. определение в файле entitypropertyvalue.php строка 286

286 : array
287 {
288 return [
289 new ReferenceField(
290 'RELATION_PS',
291 '\Bitrix\Sale\Internals\OrderPropsRelation',
292 [
293 '=this.ID' => 'ref.PROPERTY_ID',
294 'ref.ENTITY_TYPE' => new SqlExpression('?', 'P')
295 ],
296 'left_join'
297 ),
298 new ReferenceField(
299 'RELATION_DLV',
300 '\Bitrix\Sale\Internals\OrderPropsRelation',
301 [
302 '=this.ID' => 'ref.PROPERTY_ID',
303 'ref.ENTITY_TYPE' => new SqlExpression('?', 'D')
304 ],
305 'left_join'
306 ),
307 new Main\Entity\ReferenceField(
308 'RELATION_TP_LANDING',
309 '\Bitrix\Sale\Internals\OrderPropsRelation',
310 [
311 '=this.ID' => 'ref.PROPERTY_ID',
312 'ref.ENTITY_TYPE' => new Main\DB\SqlExpression('?', 'L')
313 ],
314 'left_join'
315 )
316 ];
317 }

◆ getRelations()

getRelations ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 774

775 {
776 return $this->property->getRelations();
777 }

◆ getRow()

static getRow ( array  $parameters)
staticinherited

Entity getRow with change cache. Wrapper for entity getList.

Аргументы
array$parameters
Возвращает
array|null
Исключения
Main

ArgumentException

Исключения
Main

ObjectNotFoundException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

См. определение в файле entity.php строка 97

97 : ?array
98 {
99 $parameters['limit'] = 1;
100 $result = static::getList($parameters);
101 $row = $result->fetch();
102
103 return (is_array($row) ? $row : null);
104 }

◆ getTableEntity()

static getTableEntity ( )
staticinherited

См. определение в файле entitypropertyvalue.php строка 927

928 {
929 return \Bitrix\Sale\Internals\OrderPropsValueTable::getEntity();
930 }

◆ getTablet()

getTablet ( )
protectedinherited

Returns entity table object.

Возвращает
ORM\Data\DataManager
Исключения
Main

ObjectNotFoundException

См. определение в файле entity.php строка 477

477 : ORM\Data\DataManager
478 {
479 if (!($this->tablet instanceof ORM\Data\DataManager))
480 throw new Main\ObjectNotFoundException(sprintf(
481 'Tablet not found in entity `%s`',
482 get_class($this)
483 ));
484 return $this->tablet;
485 }

◆ getTabletClassName()

static getTabletClassName ( )
staticinherited

Returns entity tablet name.

Возвращает
string

Переопределяется в Price, Product и Vat.

См. определение в файле entity.php строка 424

424 : string
425 {
426 return '';
427 }

◆ getTabletFieldNames()

static getTabletFieldNames ( int  $fields = self::FIELDS_MAIN)
staticinherited

Returns list of tablet field names, include user fields.

Аргументы
int$fields
Возвращает
array

См. определение в файле entity.php строка 435

435 : array
436 {
437 $result = [];
438 $entity = static::getEntity();
439 if ($fields & self::FIELDS_MAIN)
440 {
441 $result = array_keys($entity->tabletFields);
442 }
443 if ($fields & self::FIELDS_UF)
444 {
445 $list = array_keys($entity->tabletUserFields);
446 if (!empty($list))
447 {
448 $result = (empty($result)
449 ? $list
450 : array_merge($result, $list)
451 );
452 }
453 unset($list);
454 }
455
456 unset($entity);
457 return $result;
458 }

◆ getType()

getType ( )
inherited
Возвращает
mixed

См. определение в файле entitypropertyvalue.php строка 790

791 {
792 return $this->property->getType();
793 }

◆ getValue()

getValue ( )
inherited
Возвращает
null|string|array

См. определение в файле entitypropertyvalue.php строка 891

892 {
893 return $this->getField("VALUE");
894 }

◆ getValueId()

getValueId ( )
inherited
Возвращает
null|string

См. определение в файле entitypropertyvalue.php строка 734

734 : ?string
735 {
736 return $this->getField('ID');
737 }

◆ getViewHtml()

getViewHtml ( )
inherited
Возвращает
string
Исключения
Main

SystemException

См. определение в файле entitypropertyvalue.php строка 874

875 {
876 return $this->property->getViewHtml($this->getValue());
877 }

◆ hasMeaningfulField()

hasMeaningfulField ( )
inherited
Возвращает
bool

См. определение в файле collectableentity.php строка 116

117 {
118 $parent = $this->getCollection();
119 if ($parent == null)
120 return false;
121
122 return $parent->hasMeaningfulField();
123 }

◆ hasPresetForLanding()

static hasPresetForLanding ( Entity  $entity)
staticprotectedinherited

См. определение в файле entitypropertyvalue.php строка 214

214 : bool
215 {
216 $tpLandingList = static::extractTpLandingIdList($entity);
217
218 if ($tpLandingList)
219 {
220 $dbRes = Internals\OrderPropsRelationTable::getList([
221 'filter' => [
222 '@ENTITY_ID' => $tpLandingList,
223 '=ENTITY_TYPE' => 'L'
224 ],
225 'limit' => 1
226 ]);
227
228 return (bool)$dbRes->fetch();
229 }
230
231 return false;
232 }

◆ isClone()

isClone ( )
inherited
Возвращает
bool

См. определение в файле collectableentity.php строка 166

◆ isMathActionOnly()

isMathActionOnly ( )
inherited
Возвращает
bool

См. определение в файле collectableentity.php строка 154

155 {
156 $parent = $this->getCollection();
157 if ($parent == null)
158 return false;
159
160 return $parent->isMathActionOnly();
161 }

◆ isRequired()

isRequired ( )
inherited
Возвращает
bool

См. определение в файле entitypropertyvalue.php строка 798

799 {
800 return $this->property->isRequired();
801 }

◆ isStartField()

isStartField (   $isMeaningfulField = false)
inherited
Аргументы
bool$isMeaningfulField
Возвращает
bool

См. определение в файле collectableentity.php строка 92

93 {
94 $parent = $this->getCollection();
95 if ($parent == null)
96 return false;
97
98 return $parent->isStartField($isMeaningfulField);
99 }

◆ isUtil()

isUtil ( )
inherited
Возвращает
bool

См. определение в файле entitypropertyvalue.php строка 806

807 {
808 return $this->property->isUtil();
809 }

◆ loadForEntity()

static loadForEntity ( Entity  $entity)
staticinherited
Аргументы
Entity$entity
Возвращает
array

См. определение в файле entitypropertyvalue.php строка 921

921 : array
922 {
923 [$properties, $propertyValues, $propRelation, $propertyValuesMap] = static::loadFromDb($entity);
924 return static::createPropertyValuesObjects($properties, $propertyValues, $propRelation, $propertyValuesMap);
925 }

◆ loadForOrder()

static loadForOrder ( OrderBase  $order)
static
Аргументы
OrderBase$order
Возвращает
array

См. определение в файле propertyvaluebase.php строка 45

45 : array
46 {
47 return static::loadForEntity($order);
48 }

◆ needDeleteOnRefresh()

needDeleteOnRefresh ( )
inherited
Возвращает
bool

См. определение в файле entitypropertyvalue.php строка 170

170 : bool
171 {
172 $property = $this->getPropertyObject();
173
174 return $property ? !empty($property->getRelations()) : false;
175 }

◆ normalize()

static normalize ( array &  $data)
staticprotectedinherited

Normalize data before prepare. Convert fields list into complex structure.

Аргументы
array&$data
Возвращает
void

См. определение в файле entity.php строка 560

560 : void
561 {
562 $result = [
563 'fields' => [],
564 'external_fields' => [],
565 'actions' => []
566 ];
567
568 if (isset($data['fields']) && is_array($data['fields']))
569 {
570 $result['fields'] = $data['fields'];
571 if (isset($data['external_fields']) && is_array($data['external_fields']))
572 $result['external_fields'] = $data['external_fields'];
573 if (isset($data['actions']) && is_array($data['actions']))
574 $result['actions'] = $data['actions'];
575 }
576 else
577 {
578 $result['fields'] = $data;
579 }
580
581 $data = $result;
582 unset($result);
583 }

◆ onFieldModify()

onFieldModify (   $name,
  $oldValue,
  $value 
)
protectedinherited
Аргументы
string$name
mixed$oldValue
mixed$value
Возвращает
Result

Переопределяется в PayableBasketItem, PayableShipmentItem, ReserveQuantity и TradeBindingEntity.

См. определение в файле collectableentity.php строка 29

30 {
31 $collection = $this->getCollection();
32 return $collection->onItemModify($this, $name, $oldValue, $value);
33 }

◆ prepareFloatValue()

static prepareFloatValue (   $value)
staticprotectedinherited

См. определение в файле entity.php строка 974

974 : ?float
975 {
976 if ($value === null)
977 {
978 return null;
979 }
980
981 $result = null;
982 if (is_string($value))
983 {
984 if ($value !== '' && is_numeric($value))
985 {
986 $value = (float)$value;
987 if (is_finite($value))
988 {
989 $result = $value;
990 }
991 }
992 }
993 else
994 {
995 if (is_int($value))
996 {
997 $value = (float)$value;
998 }
999 if (
1000 is_float($value) && is_finite($value)
1001 )
1002 {
1003 $result = $value;
1004 }
1005 }
1006
1007 return $result;
1008 }

◆ prepareForAdd()

static prepareForAdd ( ORM\Data\AddResult  $result,
  $id,
array &  $data 
)
staticprotectedinherited

Check and modify fields before add entity item. Need for entity automation.

Аргументы
ORM\Data\AddResult$result
int | null$id
array&$data
Возвращает
void

Переопределяется в Price, Product и Vat.

См. определение в файле entity.php строка 495

495 : void
496 {
497 $data = static::getEntity()->checkTabletWhiteList($data);
498 if (empty($data))
499 {
500 $result->addError(new ORM\EntityError(sprintf(
501 'Empty data for add in entity `%s`',
502 get_called_class()
503 )));
504 }
505 }

◆ prepareForUpdate()

static prepareForUpdate ( ORM\Data\UpdateResult  $result,
  $id,
array &  $data 
)
staticprotectedinherited

Check and modify fields before update entity item. Need for entity automation.

Аргументы
ORM\Data\UpdateResult$result
int$id
array&$data
Возвращает
void

Переопределяется в Price, Product и Vat.

См. определение в файле entity.php строка 515

515 : void
516 {
517 $data = static::getEntity()->checkTabletWhiteList($data);
518 if (empty($data))
519 {
520 $result->addError(new ORM\EntityError(sprintf(
521 'Empty data for update in entity `%s`',
522 get_called_class()
523 )));
524 }
525 }

◆ prepareIntValue()

static prepareIntValue (   $value)
staticprotectedinherited

См. определение в файле entity.php строка 1010

1010 : ?int
1011 {
1012 if ($value === null)
1013 {
1014 return null;
1015 }
1016
1017 $result = null;
1018 if (is_string($value))
1019 {
1020 if ($value !== '' && is_numeric($value))
1021 {
1022 $result = (int)$value;
1023 }
1024 }
1025 elseif (is_int($value))
1026 {
1027 $result = $value;
1028 }
1029
1030 return $result;
1031 }

◆ prepareStringValue()

static prepareStringValue (   $value)
staticprotectedinherited

См. определение в файле entity.php строка 1033

1033 : ?string
1034 {
1035 if (is_string($value))
1036 {
1037 return trim($value) ?: null;
1038 }
1039
1040 return null;
1041 }

◆ runAddExternalActions()

static runAddExternalActions (   $id,
array  $data 
)
staticprotectedinherited

Run core automation after add entity item.

Аргументы
int$id
array$data
Возвращает
void

Переопределяется в Price и Product.

См. определение в файле entity.php строка 592

592: void {}

◆ runDeleteExternalActions()

static runDeleteExternalActions (   $id)
staticprotectedinherited

Run core automation after delete entity item.

Аргументы
int$id
Возвращает
void

Переопределяется в Price и Product.

См. определение в файле entity.php строка 609

609: void {}

◆ runUpdateExternalActions()

static runUpdateExternalActions (   $id,
array  $data 
)
staticprotectedinherited

Run core automation after update entity item.

Аргументы
int$id
array$data
Возвращает
void

Переопределяется в Price и Product.

См. определение в файле entity.php строка 601

601: void {}

◆ save()

save ( )
inherited

См. определение в файле entitypropertyvalue.php строка 506

506 : Result
507 {
508 $this->checkCallingContext();
509
510 $result = new Result();
511
512 if (!$this->isChanged())
513 {
514 return $result;
515 }
516
517 if ($this->getId() > 0)
518 {
519 $res = $this->update();
520 }
521 else
522 {
523 $res = $this->add();
524 }
525
526 if (!$res->isSuccess())
527 {
528 $result->addErrors($res->getErrors());
529 }
530
532
533 return $result;
534 }
static add(array $data)
Definition: entity.php:150

◆ setCacheItem()

static setCacheItem (   $id,
array  $row 
)
staticinherited

Fill item cache data. Do not use without good reason.

Аргументы
int$id
array$row
Возвращает
void

См. определение в файле entity.php строка 381

381 : void
382 {
383 $id = (int)$id;
384 if ($id <= 0 || empty($row))
385 return;
386 static::getEntity()->setEntityCacheItem($id, $row, false);
387 }

◆ setCollection()

setCollection ( EntityCollection  $collection)
inherited
Аргументы
EntityCollection$collection

См. определение в файле collectableentity.php строка 38

39 {
40 $this->collection = $collection;
41 }

◆ setField()

setField (   $name,
  $value 
)
inherited
Аргументы
$name
$value
Возвращает
Result
Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotImplementedException

Исключения

Exception

См. определение в файле entitypropertyvalue.php строка 484

485 {
486 $result = new Result();
487
488 $value = $this->property->normalizeValue($value);
489
490 $res = parent::setField($name, $value);
491 if (!$res->isSuccess())
492 {
493 $result->addErrors($res->getErrors());
494 }
495
496 return $result;
497 }

◆ setInternalIndex()

setInternalIndex (   $index)
inherited

См. определение в файле collectableentity.php строка 75

76 {
77 $this->internalIndex = $index;
78 }

◆ setMathActionOnly()

setMathActionOnly (   $value = false)
inherited
Аргументы
bool | false$value
Возвращает
bool

См. определение в файле collectableentity.php строка 140

141 {
142 $parent = $this->getCollection();
143 if ($parent == null)
144 {
145 return false;
146 }
147
148 return $parent->setMathActionOnly($value);
149 }

◆ setValue()

setValue (   $value)
inherited
Аргументы
$value
Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotImplementedException

См. определение в файле entitypropertyvalue.php строка 865

866 {
867 $this->setField('VALUE', $value);
868 }

◆ setValueFromPost()

setValueFromPost ( array  $post)
inherited
Аргументы
array$post
Возвращает
Result
Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotImplementedException

См. определение в файле entitypropertyvalue.php строка 652

652 : Result
653 {
654 $result = new Result();
655
656 $key = ($this->getField('ORDER_PROPS_ID')) ?: "n".$this->getInternalIndex();
657
658 if (is_array($post['PROPERTIES']) && array_key_exists($key, $post['PROPERTIES']))
659 {
660 $this->setValue($post['PROPERTIES'][$key]);
661 }
662
663 return $result;
664 }

◆ update() [1/2]

static update (   $id,
array  $data 
)
staticinherited

Update entity item. Use instead of DataManager method.

Аргументы
int$id
array$data
Возвращает
ORM\Data\UpdateResult

См. определение в файле entity.php строка 229

229 : ORM\Data\UpdateResult
230 {
231 $result = new ORM\Data\UpdateResult();
232
233 $entity = static::getEntity();
234
235 static::normalize($data);
236
237 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_BEFORE_UPDATE))
238 {
239 $event = new Event(
240 $entity,
241 ORM\Data\DataManager::EVENT_ON_BEFORE_UPDATE,
242 [
243 'id' => $id,
244 'fields' => $data['fields'],
245 'external_fields' => $data['external_fields'],
246 'actions' => $data['actions']
247 ]
248 );
249 $event->send();
250
251 $event->mergeData($data);
252 if ($event->getErrors($result))
253 return $result;
254 }
255
256 static::prepareForUpdate($result, $id, $data);
257 if (!$result->isSuccess())
258 return $result;
259 unset($result);
260
261 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_UPDATE))
262 {
263 $event = new Event(
264 $entity,
265 ORM\Data\DataManager::EVENT_ON_UPDATE,
266 [
267 'id' => $id,
268 'fields' => $data['fields'],
269 'external_fields' => $data['external_fields'],
270 'actions' => $data['actions']
271 ]
272 );
273 $event->send();
274 unset($event);
275 }
276
277 $result = $entity->getTablet()->update($id, $data['fields']);
278 $success = $result->isSuccess();
279 if ($success)
280 {
281 $data['fields'] = $result->getData();
282 if ($entity->fieldsCount > 0)
283 $entity->modifyEntityCacheItem($id, $data['fields']);
284 }
285
286 if (Event::existEventHandlers($entity, ORM\Data\DataManager::EVENT_ON_AFTER_UPDATE))
287 {
288 $event = new Event(
289 $entity,
290 ORM\Data\DataManager::EVENT_ON_AFTER_UPDATE,
291 [
292 'id' => $id,
293 'fields' => $data['fields'],
294 'external_fields' => $data['external_fields'],
295 'actions' => $data['actions'],
296 'success' => $success
297 ]
298 );
299 $event->send();
300 unset($event);
301 }
302
303 if ($success && !empty($data['actions']))
304 static::runUpdateExternalActions($id, $data);
305
306 unset($success, $entity);
307
308 return $result;
309 }

◆ update() [2/2]

update ( )
protectedinherited
Возвращает
Result
Исключения
Main

NotImplementedException|Main\ArgumentOutOfRangeException

См. определение в файле entitypropertyvalue.php строка 572

573 {
574 $result = new Result();
575
576 $value = $this->property->getPreparedValueForSave($this);
577 $res = $this->updateInternal($this->getId(), ['VALUE' => $value]);
578
579 if ($res->isSuccess())
580 {
581 $result->setId($res->getId());
582 }
583 else
584 {
585 $result->addErrors($res->getErrors());
586 }
587
588 return $result;
589 }
updateInternal($primary, array $data)

◆ updateInternal()

updateInternal (   $primary,
array  $data 
)
protectedinherited
Аргументы
$primary
array$data
Возвращает
Main\Entity\UpdateResult
Исключения

Exception

См. определение в файле entitypropertyvalue.php строка 843

844 {
845 return OrderPropsValueTable::update($primary, $data);
846 }

Поля

◆ $collection

$collection
protectedinherited

См. определение в файле collectableentity.php строка 16

◆ $internalIndex

$internalIndex = null
protectedinherited

См. определение в файле collectableentity.php строка 18

◆ $isClone

$isClone = false
protectedinherited

См. определение в файле collectableentity.php строка 20

◆ $property

EntityProperty null $property = null
protectedinherited

См. определение в файле entitypropertyvalue.php строка 20

◆ EVENT_ON_BUILD_CACHED_FIELD_LIST

const EVENT_ON_BUILD_CACHED_FIELD_LIST = 'OnBuildCachedFieldList'
inherited

См. определение в файле entity.php строка 15

◆ FIELDS_ALL

const FIELDS_ALL = self::FIELDS_MAIN|self::FIELDS_UF
inherited

См. определение в файле entity.php строка 19

◆ FIELDS_MAIN

const FIELDS_MAIN = 0x0001
inherited

См. определение в файле entity.php строка 17

◆ FIELDS_UF

const FIELDS_UF = 0x0002
inherited

См. определение в файле entity.php строка 18

◆ PREFIX_OLD

const PREFIX_OLD = 'OLD_'
inherited

См. определение в файле entity.php строка 13


Объявления и описания членов класса находятся в файле: