Bitrix-D7  20.0.0
Класс BasketItemBase
Граф наследования:BasketItemBase:
CollectableEntity Entity BasketItem

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

 findItemByBasketCode ($basketCode)
 
 findItemById ($id)
 
 getBasketCode ()
 
 delete ()
 
 setField ($name, $value)
 
 setFieldNoDemand ($name, $value)
 
 getField ($name)
 
 getFieldValues ()
 
 setFields (array $fields)
 
 getProviderName ()
 
 getCallbackFunction ()
 
 getProviderEntity ()
 
 getProvider ()
 
 isVatInPrice ()
 
 getVat ()
 
 getInitialPrice ()
 
 getBasePriceWithVat ()
 
 getPriceWithVat ()
 
 getFinalPrice ()
 
 getId ()
 
 getProductId ()
 
 getPrice ()
 
 getBasePrice ()
 
 getDiscountPrice ()
 
 isCustomPrice ()
 
 getCurrency ()
 
 getQuantity ()
 
 getWeight ()
 
 getVatRate ()
 
 getFUserId ()
 
 setOrderId ($id)
 
 isBarcodeMulti ()
 
 canBuy ()
 
 isDelay ()
 
 isSupportedMarkingCode ()
 
 getMarkingCodeGroup ()
 
 getPropertyCollection ()
 
 isExistPropertyCollection ()
 
 setPropertyCollection (BasketPropertiesCollectionBase $propertyCollection)
 
 setPrice ($value, $custom=false)
 
 initFields (array $values)
 
 save ()
 
 getBasket ()
 
 isChanged ()
 
 verify ()
 
 getReservedQuantity ()
 
 isCustom ()
 
 getDefaultPrice ()
 
- Открытые члены унаследованные от CollectableEntity
 setCollection (EntityCollection $collection)
 
 getCollection ()
 
 setInternalIndex ($index)
 
 getInternalIndex ()
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 setMathActionOnly ($value=false)
 
 isMathActionOnly ()
 
 isClone ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
- Открытые члены унаследованные от Entity
 initializeField ($fieldName, $fieldInfo)
 Fields factory. Подробнее...
 
 initialize ($className)
 
 postInitialize ()
 
 getObjectClass ()
 Returns class of Object for current entity. Подробнее...
 
 getObjectClassName ()
 Returns class name of Object for current entity. Подробнее...
 
 getCollectionClass ()
 
 getCollectionClassName ()
 
 createObject ($setDefaultValues=true)
 
 createCollection ()
 
 wakeUpObject ($row)
 
 wakeUpCollection ($rows)
 
 addField ($fieldInfo, $fieldName=null)
 
 getReferencesCountTo ($refEntityName)
 
 getReferencesTo ($refEntityName)
 
 getFields ()
 
 hasField ($name)
 
 getScalarFields ()
 
 getUField ($name)
 
 hasUField ($name)
 
 getName ()
 
 getFullName ()
 
 getNamespace ()
 
 getModule ()
 
 getDataClass ()
 
 getConnection ()
 
 getDBTableName ()
 
 getPrimary ()
 
 getPrimaryArray ()
 
 getAutoIncrement ()
 
 isUts ()
 
 isUtm ()
 
 getUfId ()
 
 setDefaultScope ($query)
 
 getCode ()
 
 getLangCode ()
 
 getTitle ()
 
 __clone ()
 
 compileDbTableStructureDump ()
 
 createDbTable ()
 Creates table according to Fields collection. Подробнее...
 
 readFromCache ($ttl, $cacheId, $countTotal=false)
 Reads data from cache. Подробнее...
 
 writeToCache (Main\DB\Result $result, $cacheId, $countTotal=false)
 
 getCacheTtl ($ttl)
 Returns cache TTL for the entity, possibly limited by the .settings.php: 'cache_flags' => array('value'=> array( "b_group_max_ttl" => 200, "b_group_min_ttl" => 100, )) Maximum is a higher-priority. Подробнее...
 
 cleanCache ()
 Cleans all cache entries for the entity. Подробнее...
 
 enableFullTextIndex ($field, $mode=true)
 Sets a flag indicating full text index support for a field. Подробнее...
 
 fullTextIndexEnabled ($field)
 Returns true if full text index is enabled for a field. Подробнее...
 

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

static getRegistryEntity ()
 
static create (BasketItemCollection $basketItemCollection, $moduleId, $productId, $basketCode=null)
 
static getSettableFields ()
 
static getSettableFieldsMap ()
 
static getCalculatedFields ()
 
static getAvailableFields ()
 
static getCustomizableFields ()
 
static getRoundFields ()
 
static load (BasketItemCollection $basketItemCollection, $data)
 
static getEntityEventName ()
 
- Открытые статические члены унаследованные от Entity
static get ($entityName)
 Returns entity object. Подробнее...
 
static has ($entityName)
 Checks if entity exists. Подробнее...
 
static getInstance ($entityName)
 
static getDefaultObjectClassName ($entityName)
 
static getDefaultCollectionClassName ($entityName)
 
static isExists ($name)
 
static normalizeEntityClass ($entityName)
 
static getEntityClassParts ($class)
 
static camel2snake ($str)
 
static snake2camel ($str)
 
static normalizeName ($entityName)
 
static getInstanceByQuery (Query $query, &$entity_name=null)
 
static compileEntity ($entityName, $fields=null, $parameters=array())
 
static compileObjectClass ($dataClass)
 
static compileCollectionClass ($dataClass)
 
static destroy ($entity)
 

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

 __construct (array $fields=array())
 BasketItemBase constructor. Подробнее...
 
 checkBeforeDelete ()
 
 onBeforeSetFields (array $values)
 
 onFieldModify ($name, $oldValue, $value)
 
 isCalculatedField ($field)
 
 onBeforeSave ()
 
 add ()
 
 update ()
 
 callEventOnBasketItemEntitySaved ()
 
 callEventSaleBasketItemBeforeSaved ($isNewEntity)
 
 callEventSaleBasketItemSaved ($isNewEntity)
 
 addInternal (array $fields)
 
 updateInternal ($primary, array $fields)
 
- Защищенные члены унаследованные от Entity
 appendField (Field $field)
 
 getCacheDir ()
 

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

static generateXmlId ()
 
static getMeaningfulFields ()
 
- Защищенные статические члены унаследованные от Entity
static getInstanceDirect ($className)
 

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

 $propertyCollection
 
 $calculatedFields
 
 $provider
 
 $internalId = null
 
- Защищенные данные унаследованные от CollectableEntity
 $collection
 
 $internalIndex = null
 
 $isClone = false
 
- Защищенные данные унаследованные от Entity
 $className
 
 $module
 
 $uf_id
 
 $fields
 
 $fieldsMap
 
 $u_fields
 
 $code
 
 $references
 
 $isClone = false
 

Статические защищенные данные

static $idBasket = 0
 
- Статические защищенные данные унаследованные от Entity
static $instances
 

Дополнительные унаследованные члены

- Поля данных унаследованные от Entity
 $name
 
 $connectionName
 
 $dbTableName
 
 $primary
 
 $autoIncrement
 
 $isUts
 
 $isUtm
 
const DEFAULT_OBJECT_PREFIX = 'EO_'
 

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

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

Конструктор(ы)

◆ __construct()

__construct ( array  $fields = array())
protected

BasketItemBase constructor.

Аргументы
array$fields
Исключения
Main

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

245  {
246  $priceFields = ['BASE_PRICE', 'PRICE', 'DISCOUNT_PRICE'];
247 
248  foreach ($priceFields as $code)
249  {
250  if (isset($fields[$code]))
251  {
253  }
254  }
255 
257 
258  $this->calculatedFields = new Internals\Fields();
259 
261  $controller->initialize($this);
262  }

Методы

◆ add()

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

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

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

1384  {
1385  $result = new Result();
1386 
1387  $dateInsert = new Main\Type\DateTime();
1388 
1389  $this->setFieldNoDemand('DATE_INSERT', $dateInsert);
1390  $this->setFieldNoDemand('DATE_UPDATE', $dateInsert);
1391 
1392  $fields = $this->fields->getValues();
1393 
1394  $r = $this->addInternal($fields);
1395  if (!$r->isSuccess())
1396  {
1397  $result->addErrors($r->getErrors());
1398  return $result;
1399  }
1400 
1401  if ($resultData = $r->getData())
1402  {
1403  $result->setData($resultData);
1404  }
1405 
1406  $id = $r->getId();
1407  $this->setFieldNoDemand('ID', $id);
1408  $result->setId($id);
1409 
1410  return $result;
1411  }

◆ addInternal()

addInternal ( array  $fields)
abstractprotected
Аргументы
array$fields
Возвращает
Main\Entity\AddResult

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

◆ callEventOnBasketItemEntitySaved()

callEventOnBasketItemEntitySaved ( )
protected
Возвращает
void

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

1449  {
1450  /** @var array $oldEntityValues */
1451  $oldEntityValues = $this->fields->getOriginalValues();
1452 
1453  if (!empty($oldEntityValues))
1454  {
1455  /** @var Main\Event $event */
1456  $event = new Main\Event(
1457  'sale',
1458  'OnSaleBasketItemEntitySaved',
1459  array(
1460  'ENTITY' => $this,
1461  'VALUES' => $oldEntityValues,
1462  )
1463  );
1464 
1465  $event->send();
1466  }
1467  }

◆ callEventSaleBasketItemBeforeSaved()

callEventSaleBasketItemBeforeSaved (   $isNewEntity)
protected
Аргументы
$isNewEntity
Возвращает
Result

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

1474  {
1475  $result = new Result();
1476 
1477  /** @var array $oldEntityValues */
1478  $oldEntityValues = $this->fields->getOriginalValues();
1479 
1480  /** @var Main\Event $event */
1481  $event = new Main\Event('sale', EventActions::EVENT_ON_BASKET_ITEM_BEFORE_SAVED, array(
1482  'ENTITY' => $this,
1483  'IS_NEW' => $isNewEntity,
1484  'VALUES' => $oldEntityValues,
1485  ));
1486  $event->send();
1487 
1488  if ($event->getResults())
1489  {
1490  /** @var Main\EventResult $eventResult */
1491  foreach($event->getResults() as $eventResult)
1492  {
1493  if($eventResult->getType() == Main\EventResult::ERROR)
1494  {
1495  $errorMsg = new ResultError(
1496  Localization\Loc::getMessage('SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED'),
1497  'SALE_EVENT_ON_BEFORE_BASKET_ITEM_SAVED'
1498  );
1499 
1500  $eventResultData = $eventResult->getParameters();
1501  if ($eventResultData instanceof ResultError)
1502  $errorMsg = $eventResultData;
1503 
1504  $result->addError($errorMsg);
1505  }
1506  }
1507  }
1508 
1509  return $result;
1510  }

◆ callEventSaleBasketItemSaved()

callEventSaleBasketItemSaved (   $isNewEntity)
protected
Аргументы
$isNewEntity
Возвращает
Result

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

1517  {
1518  $result = new Result();
1519 
1520  /** @var array $oldEntityValues */
1521  $oldEntityValues = $this->fields->getOriginalValues();
1522 
1523  /** @var Main\Event $event */
1524  $event = new Main\Event('sale', EventActions::EVENT_ON_BASKET_ITEM_SAVED, array(
1525  'ENTITY' => $this,
1526  'IS_NEW' => $isNewEntity,
1527  'VALUES' => $oldEntityValues,
1528  ));
1529  $event->send();
1530 
1531  if ($event->getResults())
1532  {
1533  /** @var Main\EventResult $eventResult */
1534  foreach($event->getResults() as $eventResult)
1535  {
1536  if($eventResult->getType() == Main\EventResult::ERROR)
1537  {
1538  $errorMsg = new ResultError(
1539  Localization\Loc::getMessage('SALE_EVENT_ON_BASKET_ITEM_SAVED_ERROR'),
1540  'SALE_EVENT_ON_BASKET_ITEM_SAVED_ERROR'
1541  );
1542  $eventResultData = $eventResult->getParameters();
1543 
1544  if ($eventResultData instanceof ResultError)
1545  $errorMsg = $eventResultData;
1546 
1547  $result->addError($errorMsg);
1548  }
1549  }
1550  }
1551 
1552  return $result;
1553  }

◆ canBuy()

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

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

1077  : bool
1078  {
1079  return $this->getField('CAN_BUY') === 'Y';
1080  }

◆ checkBeforeDelete()

checkBeforeDelete ( )
protected
Возвращает
Result

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

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

268  {
269  return new Result();
270  }

◆ create()

static create ( BasketItemCollection  $basketItemCollection,
  $moduleId,
  $productId,
  $basketCode = null 
)
static
Аргументы
BasketItemCollection$basketItemCollection
$moduleId
$productId
null$basketCode
Возвращает
BasketItemBase
Исключения
Main

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

107  {
108  $fields = array(
109  "MODULE" => $moduleId,
110  "BASE_PRICE" => 0,
111  "CUSTOM_PRICE" => 'N',
112  "PRODUCT_ID" => $productId,
113  'XML_ID' => static::generateXmlId(),
114  );
115 
116  $basket = $basketItemCollection->getBasket();
117  if ($basket instanceof BasketBase)
118  {
119  $fields['LID'] = $basket->getSiteId();
120  }
121 
122  $basketItem = static::createBasketItemObject($fields);
123 
124  if ($basketCode !== null)
125  {
126  $basketItem->internalId = $basketCode;
127  if (strpos($basketCode, 'n') === 0)
128  {
129  $internalId = intval(substr($basketCode, 1));
130  if ($internalId > static::$idBasket)
131  {
132  static::$idBasket = $internalId;
133  }
134  }
135  }
136 
137  $basketItem->setCollection($basketItemCollection);
138 
139  return $basketItem;
140  }

◆ delete()

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

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

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

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

279  {
280  $result = new Result();
281 
282  $checkResult = $this->checkBeforeDelete();
283  if (!$checkResult->isSuccess())
284  {
285  $result->addErrors($checkResult->getErrors());
286  return $result;
287  }
288 
289  /** @var array $oldEntityValues */
290  $oldEntityValues = $this->fields->getOriginalValues();
291 
292  /** @var Main\Event $event */
293  $event = new Main\Event('sale', "OnBeforeSaleBasketItemEntityDeleted", array(
294  'ENTITY' => $this,
295  'VALUES' => $oldEntityValues,
296  ));
297  $event->send();
298 
299  if ($event->getResults())
300  {
301  /** @var Main\EventResult $eventResult */
302  foreach($event->getResults() as $eventResult)
303  {
304  if($eventResult->getType() == Main\EventResult::ERROR)
305  {
306  $eventResultData = $eventResult->getParameters();
307  if ($eventResultData instanceof ResultError)
308  {
309  $error = $eventResultData;
310  }
311  else
312  {
313  $error = new ResultError(
314  Localization\Loc::getMessage('SALE_EVENT_ON_BEFORE_SALEBASKETITEM_ENTITY_DELETED_ERROR'),
315  'SALE_EVENT_ON_BEFORE_SALEBASKETITEM_ENTITY_DELETED_ERROR'
316  );
317  }
318 
319  $result->addError($error);
320  }
321  }
322 
323  if (!$result->isSuccess())
324  {
325  return $result;
326  }
327  }
328 
329  $this->setFieldNoDemand("QUANTITY", 0);
330 
331  /** @var Result $r */
332  $r = parent::delete();
333  if (!$r->isSuccess())
334  {
335  $result->addErrors($r->getErrors());
336  return $result;
337  }
338 
339  /** @var array $oldEntityValues */
340  $oldEntityValues = $this->fields->getOriginalValues();
341 
342  /** @var Main\Event $event */
343  $event = new Main\Event('sale', "OnSaleBasketItemEntityDeleted", array(
344  'ENTITY' => $this,
345  'VALUES' => $oldEntityValues,
346  ));
347  $event->send();
348 
349  if ($event->getResults())
350  {
351  /** @var Main\EventResult $eventResult */
352  foreach($event->getResults() as $eventResult)
353  {
354  if($eventResult->getType() == Main\EventResult::ERROR)
355  {
356  $eventResultData = $eventResult->getParameters();
357  if ($eventResultData instanceof ResultError)
358  {
359  $error = $eventResultData;
360  }
361  else
362  {
363  $error = new ResultError(
364  Localization\Loc::getMessage('SALE_EVENT_ON_SALEBASKETITEM_ENTITY_DELETED_ERROR'),
365  'SALE_EVENT_ON_SALEBASKETITEM_ENTITY_DELETED_ERROR'
366  );
367  }
368 
369  $result->addError($error);
370  }
371  }
372  }
373 
374  return $result;
375  }

◆ findItemByBasketCode()

findItemByBasketCode (   $basketCode)
Аргументы
$basketCode
Возвращает
BasketItemBase|null
Исключения
Main

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

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

43  {
44  if ((string)$this->getBasketCode() === (string)$basketCode)
45  return $this;
46 
47  return null;
48  }

◆ findItemById()

findItemById (   $id)
Аргументы
$id
Возвращает
BasketItemBase|null
Исключения
Main

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

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

64  {
65  if ($id <= 0)
66  return null;
67 
68  if ((int)$this->getId() === (int)$id)
69  return $this;
70 
71  return null;
72  }

◆ generateXmlId()

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

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

146  {
147  return uniqid('bx_');
148  }

◆ getAvailableFields()

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

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

216  {
217  return static::getSettableFields();
218  }

◆ getBasePrice()

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

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

985  {
986  return (float)$this->getField('BASE_PRICE');
987  }

◆ getBasePriceWithVat()

getBasePriceWithVat ( )
Возвращает
float|int
Исключения
Main

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

894  {
895  $price = $this->getBasePrice();
896 
897  if (!$this->isVatInPrice())
898  {
899  $vatRate = $this->getVatRate();
900  $price += $this->getBasePrice() * $vatRate;
901  }
902 
903  return PriceMaths::roundPrecision($price);
904  }

◆ getBasket()

getBasket ( )
Возвращает
BasketBase

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

1290  {
1291  /** @var BasketItemCollection $collection */
1292  $collection = $this->getCollection();
1293 
1294  return $collection->getBasket();
1295  }

◆ getBasketCode()

getBasketCode ( )
Возвращает
int|null|string
Исключения
Main

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

79  {
80  if ($this->internalId == null)
81  {
82  if ($this->getId() > 0)
83  {
84  $this->internalId = $this->getId();
85  }
86  else
87  {
88  static::$idBasket++;
89  $this->internalId = 'n'.static::$idBasket;
90  }
91  }
92 
93  return $this->internalId;
94  }

◆ getCalculatedFields()

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

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

203  {
204  return array(
205  'DISCOUNT_PRICE_PERCENT',
206  'IGNORE_CALLBACK_FUNC',
207  'DEFAULT_PRICE',
208  'DISCOUNT_LIST'
209  );
210  }

◆ getCallbackFunction()

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

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

571  {
572  $callbackFunction = trim($this->getField('CALLBACK_FUNC'));
573  if (!isset($callbackFunction) || (strval(trim($callbackFunction)) == ""))
574  {
575  return null;
576  }
577 
578  if (!function_exists($callbackFunction))
579  {
580  return null;
581  }
582 
583  return $callbackFunction;
584  }

◆ getCurrency()

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

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

1013  {
1014  return $this->getField('CURRENCY');
1015  }

◆ getCustomizableFields()

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

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

223  : array
224  {
225  return ['PRICE' => 'PRICE'];
226  }

◆ getDefaultPrice()

getDefaultPrice ( )
Уст.:
Возвращает
float
Исключения
Main

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

1663  {
1664  return (float)$this->getField('DEFAULT_PRICE');
1665  }

◆ getDiscountPrice()

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

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

994  {
995  return (float)$this->getField('DISCOUNT_PRICE');
996  }

◆ getEntityEventName()

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

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

1673  {
1674  return 'SaleBasketItem';
1675  }

◆ getField()

getField (   $name)
Аргументы
$name
Возвращает
float|string|null
Исключения
Main

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

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

465  {
466  static $calculatedFields = null;
467 
468  if ($calculatedFields === null)
469  {
470  $calculatedFields = array_fill_keys(static::getCalculatedFields(), true);
471  }
472 
473  if (isset($calculatedFields[$name]))
474  {
475  if (
476  isset($this->calculatedFields[$name])
477  || (is_array($this->calculatedFields) && array_key_exists($name, $this->calculatedFields))
478  )
479  {
480  return $this->calculatedFields->get($name);
481  }
482 
483  return null;
484  }
485 
486  $value = parent::getField($name);
487  if ($name == "BASE_PRICE" && $value === null)
488  {
489  $value = PriceMaths::roundPrecision($this->getField('PRICE') + $this->getField('DISCOUNT_PRICE'));
490  }
491 
492  if ($name === 'CUSTOM_PRICE')
493  {
494  return $this->isMarkedFieldCustom('PRICE') ? 'Y' : 'N';
495  }
496 
497  return $value;
498  }

◆ getFieldValues()

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

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

505  {
506  $fields = parent::getFieldValues();
507 
508  $fields['CUSTOM_PRICE'] = $this->isMarkedFieldCustom('PRICE') ? 'Y' : 'N';
509 
510  return $fields;
511  }

◆ getFinalPrice()

getFinalPrice ( )
Возвращает
float|int
Исключения
Main

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

928  {
929  $price = PriceMaths::roundPrecision($this->getPrice() * $this->getQuantity());
930 
931  if (!$this->isVatInPrice())
932  $price += $this->getVat();
933 
934  return $price;
935  }

◆ getFUserId()

getFUserId ( )
Возвращает
float|null|string
Исключения
Main

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

1049  {
1050  return $this->getField('FUSER_ID');
1051  }

◆ getId()

getId ( )
Возвращает
int|null|string
Исключения
Main

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

958  {
959  return (int)$this->getField('ID');
960  }

◆ getInitialPrice()

getInitialPrice ( )
Возвращает
float|int
Исключения
Main

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

880  {
881  $price = PriceMaths::roundPrecision($this->getPrice() * $this->getQuantity());
882 
883  if ($this->isVatInPrice())
884  $price -= $this->getVat();
885 
886  return $price;
887  }

◆ getMarkingCodeGroup()

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

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

1107  : string
1108  {
1109  return (string)$this->getField('MARKING_CODE_GROUP');
1110  }

◆ getMeaningfulFields()

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

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

232  {
233  return array('QUANTITY', 'PRICE', 'CUSTOM_PRICE');
234  }

◆ getPrice()

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

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

976  {
977  return (float)$this->getField('PRICE');
978  }

◆ getPriceWithVat()

getPriceWithVat ( )
Возвращает
float|int
Исключения
Main

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

911  {
912  $price = $this->getPrice();
913 
914  if (!$this->isVatInPrice())
915  {
916  $vatRate = $this->getVatRate();
917  $price += $this->getPrice() * $vatRate;
918  }
919 
920  return PriceMaths::roundPrecision($price);
921  }

◆ getProductId()

getProductId ( )
Возвращает
float|null|string
Исключения
Main

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

967  {
968  return $this->getField('PRODUCT_ID');
969  }

◆ getPropertyCollection()

getPropertyCollection ( )
Возвращает
BasketPropertiesCollectionBase|null
Исключения
Main

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

1120  {
1121  if ($this->propertyCollection === null)
1122  {
1123  $registry = Registry::getInstance(static::getRegistryType());
1124 
1125  /** @var BasketPropertiesCollectionBase $basketPropertyCollectionClassName */
1126  $basketPropertyCollectionClassName = $registry->getBasketPropertiesCollectionClassName();
1127 
1128  if ($this->getId() > 0)
1129  {
1130  /** @var BasketItemCollection $collection */
1131  $collection = $this->getCollection();
1132  $basketPropertyCollectionClassName::loadByCollection($collection);
1133  }
1134 
1135  if ($this->propertyCollection === null)
1136  {
1137  $this->propertyCollection = $basketPropertyCollectionClassName::load($this);
1138  }
1139  }
1140 
1142  }

◆ getProvider()

getProvider ( )
Возвращает
ProviderBase|null|string
Исключения
Main

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

618  {
619  if ($this->provider !== null)
620  return $this->provider;
621 
622  $module = $this->getField('MODULE');
623  $productProviderName = $this->getField('PRODUCT_PROVIDER_CLASS');
624  if (
625  !isset($module)
626  || !isset($productProviderName)
627  || (strval($productProviderName) == "")
628  )
629  {
630  return null;
631  }
632 
633  $providerName = Internals\Catalog\Provider::getProviderName($module, $productProviderName);
634  if ($providerName !== null)
635  {
636  $this->provider = $providerName;
637  }
638 
639  return $providerName;
640  }

◆ getProviderEntity()

getProviderEntity ( )
Возвращает
bool|mixed|null
Исключения
Main

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

592  {
593  $module = $this->getField('MODULE');
594  $productProviderName = $this->getField('PRODUCT_PROVIDER_CLASS');
595  if (
596  !isset($module)
597  || !isset($productProviderName)
598  || (strval($productProviderName) == "")
599  )
600  {
601  return false;
602  }
603 
604  if (!empty($module) && Main\Loader::includeModule($module))
605  {
606  return Internals\Catalog\Provider::getProviderEntity($productProviderName);
607  }
608 
609  return null;
610  }

◆ getProviderName()

getProviderName ( )
Возвращает
ProviderBase|null
Исключения
Main

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

562  {
563  return $this->getProvider();
564  }

◆ getQuantity()

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

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

1022  {
1023  return (float)$this->getField('QUANTITY');
1024  }

◆ getRegistryEntity()

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

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

54  {
56  }

◆ getReservedQuantity()

getReservedQuantity ( )
abstract
Возвращает
float

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

◆ getRoundFields()

static getRoundFields ( )
static

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

1195  {
1196  return array(
1197  'BASE_PRICE',
1198  'DISCOUNT_PRICE',
1199  'DISCOUNT_PRICE_PERCENT',
1200  );
1201  }

◆ getSettableFields()

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

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

168  {
169  $result = array(
170  "NAME", "LID", "SORT", "PRODUCT_ID", "PRODUCT_PRICE_ID", "PRICE_TYPE_ID",
171  "CATALOG_XML_ID", "PRODUCT_XML_ID", "DETAIL_PAGE_URL",
172  "BASE_PRICE", "PRICE", "DISCOUNT_PRICE", "CURRENCY", "CUSTOM_PRICE",
173  "QUANTITY", "WEIGHT", "DIMENSIONS", "MEASURE_CODE", "MEASURE_NAME",
174  "DELAY", "CAN_BUY", "NOTES", "VAT_RATE", "VAT_INCLUDED", "BARCODE_MULTI",
175  "SUBSCRIBE", "PRODUCT_PROVIDER_CLASS", "CALLBACK_FUNC", "ORDER_CALLBACK_FUNC",
176  "CANCEL_CALLBACK_FUNC", "PAY_CALLBACK_FUNC", "TYPE", "SET_PARENT_ID",
177  "DISCOUNT_NAME", "DISCOUNT_VALUE", "DISCOUNT_COUPON", "RECOMMENDATION", "XML_ID",
178  "MARKING_CODE_GROUP"
179  );
180 
181  return array_merge($result, static::getCalculatedFields());
182  }

◆ getSettableFieldsMap()

static getSettableFieldsMap ( )
static
Возвращает
array|null

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

188  {
189  static $fieldsMap = null;
190 
191  if ($fieldsMap === null)
192  {
193  $fieldsMap = array_fill_keys(static::getSettableFields(), true);
194  }
195 
196  return $fieldsMap;
197  }

◆ getVat()

getVat ( )
Возвращает
float|int
Исключения
Main

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

862  {
863  $vatRate = $this->getVatRate();
864  if ($vatRate == 0)
865  return 0;
866 
867  if ($this->isVatInPrice())
868  $vat = PriceMaths::roundPrecision(($this->getPrice() * $this->getQuantity() * $vatRate / ($vatRate + 1)));
869  else
870  $vat = PriceMaths::roundPrecision(($this->getPrice() * $this->getQuantity() * $vatRate));
871 
872  return $vat;
873  }

◆ getVatRate()

getVatRate ( )
Возвращает
float|null|string
Исключения
Main

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

1040  {
1041  return $this->getField('VAT_RATE');
1042  }

◆ getWeight()

getWeight ( )
Возвращает
float|null|string
Исключения
Main

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

1031  {
1032  return $this->getField('WEIGHT');
1033  }

◆ initFields()

initFields ( array  $values)
Аргументы
array$values
Исключения
Main

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

1208  {
1209  if (!isset($values['BASE_PRICE']) || doubleval($values['BASE_PRICE']) == 0)
1210  $values['BASE_PRICE'] = $values['PRICE'] + $values['DISCOUNT_PRICE'];
1211 
1212  parent::initFields($values);
1213  }

◆ isBarcodeMulti()

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

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

1068  {
1069  return $this->getField('BARCODE_MULTI') === "Y";
1070  }

◆ isCalculatedField()

isCalculatedField (   $field)
protected
Аргументы
string$fieldField name.
Возвращает
bool

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

942  {
943  static $calculateFields = null;
944 
945  if ($calculateFields === null)
946  {
947  $calculateFields = array_fill_keys(static::getCalculatedFields(), true);
948  }
949 
950  return isset($calculateFields[$field]);
951  }

◆ isChanged()

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

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

1574  {
1575  $isChanged = parent::isChanged();
1576  if ($isChanged === false)
1577  {
1579  $isChanged = $propertyCollection->isChanged();
1580  }
1581 
1582  return $isChanged;
1583  }

◆ isCustom()

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

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

1647  {
1648  $moduleId = trim($this->getField('MODULE'));
1649  $providerClassName = trim($this->getField('PRODUCT_PROVIDER_CLASS'));
1650  $callback = trim($this->getField('CALLBACK_FUNC'));
1651 
1652  return (empty($moduleId) && empty($providerClassName) && empty($callback));
1653  }

◆ isCustomPrice()

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

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

1003  {
1004  return $this->isMarkedFieldCustom('PRICE');
1005  }

◆ isDelay()

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

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

1087  : bool
1088  {
1089  return $this->getField('DELAY') === 'Y';
1090  }

◆ isExistPropertyCollection()

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

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

1148  {
1149  return $this->propertyCollection !== null;
1150  }

◆ isSupportedMarkingCode()

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

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

1097  : bool
1098  {
1099  return $this->getMarkingCodeGroup() !== '';
1100  }

◆ isVatInPrice()

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

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

853  {
854  return $this->getField('VAT_INCLUDED') === 'Y';
855  }

◆ load()

static load ( BasketItemCollection  $basketItemCollection,
  $data 
)
static
Аргументы
BasketItemCollection$basketItemCollection
$data
Возвращает
mixed
Исключения
Main

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

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

1593  {
1594  $basketItem = static::createBasketItemObject($data);
1595  $basketItem->setCollection($basketItemCollection);
1596 
1597  return $basketItem;
1598  }

◆ onBeforeSave()

onBeforeSave ( )
protected
Исключения
Main

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

1341  {
1342  /** @var BasketItemCollection $collection */
1343  $collection = $this->getCollection();
1344 
1345  /** @var BasketBase $basket */
1346  if (!$basket = $collection->getBasket())
1347  {
1348  throw new Main\ObjectNotFoundException('Entity "Basket" not found');
1349  }
1350 
1351  /** @var BasketBase $basket */
1352  $basket = $collection->getBasket();
1353 
1354  if ($this->getField('ORDER_ID') <= 0)
1355  {
1356  $orderId = (int)$collection->getOrderId();
1357  if ($orderId > 0)
1358  {
1359  $this->setFieldNoDemand('ORDER_ID', $orderId);
1360  }
1361  }
1362 
1363  if ($this->getId() <= 0)
1364  {
1365  if ($this->getField('FUSER_ID') <= 0)
1366  {
1367  $fUserId = (int)$basket->getFUserId(true);
1368  if ($fUserId <= 0)
1369  throw new Main\ArgumentNullException('FUSER_ID');
1370 
1371  $this->setFieldNoDemand('FUSER_ID', $fUserId);
1372  }
1373  }
1374 
1375  $this->setFieldNoDemand('CUSTOM_PRICE', $this->isMarkedFieldCustom('PRICE') ? 'Y' : 'N');
1376  }

◆ onBeforeSetFields()

onBeforeSetFields ( array  $values)
protected
Аргументы
array$values
Возвращает
array

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

518  {
519  $priorityFields = [
520  'CURRENCY', 'CUSTOM_PRICE', 'VAT_RATE', 'VAT_INCLUDED',
521  'PRODUCT_PROVIDER_CLASS', 'SUBSCRIBE', 'TYPE', 'LID', 'FUSER_ID'
522  ];
523 
524  $priorityValues = [];
525  foreach ($priorityFields as $field)
526  {
527  if (isset($values[$field]))
528  {
529  $priorityValues[$field] = $values[$field];
530  }
531  }
532 
533  return $priorityValues + $values;
534  }

◆ onFieldModify()

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

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

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

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

656  {
657  $result = new Result();
658 
659  if ($name == "QUANTITY")
660  {
661  if ($value == 0)
662  {
663  $result->addError(new Main\Error(
664  Localization\Loc::getMessage(
665  'SALE_BASKET_ITEM_ERR_QUANTITY_ZERO',
666  ['#PRODUCT_NAME#' => $this->getField('NAME')]
667  )
668  ));
669  return $result;
670  }
671 
672  $value = (float)$value;
673  $oldValue = (float)$oldValue;
674  $deltaQuantity = $value - $oldValue;
675 
676  /** @var Basket $basket */
677  $basket = $this->getCollection();
678  $context = $basket->getContext();
679 
680  /** @var Result $r */
682  if (!$r->isSuccess())
683  {
684  $result->addErrors($r->getErrors());
685  $result->setData($r->getData());
686 
687  return $result;
688  }
689 
690  $providerData = $r->getData();
691 
692  if ($this->getField('SUBSCRIBE') !== 'Y')
693  {
694  if (array_key_exists('AVAILABLE_QUANTITY', $providerData) && $providerData['AVAILABLE_QUANTITY'] > 0)
695  {
696  $availableQuantity = $providerData['AVAILABLE_QUANTITY'];
697  }
698  else
699  {
700  $result->addError(
701  new ResultError(
702  Localization\Loc::getMessage(
703  'SALE_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY',
704  array('#PRODUCT_NAME#' => $this->getField('NAME'))
705  ),
706  'SALE_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY'
707  )
708  );
709 
710  return $result;
711  }
712  }
713  else
714  {
715  $availableQuantity = $value;
716  }
717 
718  if (!empty($providerData['PRICE_DATA']))
719  {
720  if (isset($providerData['PRICE_DATA']['CUSTOM_PRICE']))
721  {
722  $this->markFieldCustom('PRICE');
723  }
724  }
725 
726  if ($value != 0
727  && (($deltaQuantity > 0) && (roundEx($availableQuantity, SALE_VALUE_PRECISION) < roundEx($value, SALE_VALUE_PRECISION)) // plus
728  || ($deltaQuantity < 0) && (roundEx($availableQuantity, SALE_VALUE_PRECISION) > roundEx($value, SALE_VALUE_PRECISION)))
729  ) // minus
730  {
731  if ($deltaQuantity > 0)
732  {
733  $mess = Localization\Loc::getMessage(
734  'SALE_BASKET_AVAILABLE_FOR_PURCHASE_QUANTITY',
735  array(
736  '#PRODUCT_NAME#' => $this->getField('NAME'),
737  '#AVAILABLE_QUANTITY#' => $availableQuantity
738  )
739  );
740  }
741  else
742  {
743  $mess = Localization\Loc::getMessage(
744  'SALE_BASKET_AVAILABLE_FOR_DECREASE_QUANTITY',
745  array(
746  '#PRODUCT_NAME#' => $this->getField('NAME'),
747  '#AVAILABLE_QUANTITY#' => $availableQuantity
748  )
749  );
750  }
751 
752  $result->addError(new ResultError($mess, "SALE_BASKET_AVAILABLE_QUANTITY"));
753  $result->setData(array("AVAILABLE_QUANTITY" => $availableQuantity, "REQUIRED_QUANTITY" => $deltaQuantity));
754 
755  return $result;
756  }
757 
758  /** @var BasketItemCollection $collection */
759  $collection = $this->getCollection();
760 
761  /** @var BasketBase $basket */
762  $basket = $collection->getBasket();
763 
764  if ((!$basket->getOrder() || $basket->getOrderId() == 0) && !($collection instanceof BundleCollection))
765  {
766  if (!$this->isMarkedFieldCustom('PRICE') && $value > 0)
767  {
768  $r = $basket->refresh(RefreshFactory::createSingle($this->getBasketCode()));
769  if (!$r->isSuccess())
770  {
771  $result->addErrors($r->getErrors());
772  return $result;
773  }
774  }
775  }
776 
777  if (!$this->isMarkedFieldCustom('PRICE'))
778  {
779 
780  $providerName = $this->getProviderName();
781  if (strval($providerName) == '')
782  {
783  $providerName = $this->getCallbackFunction();
784  }
785 
786 
787  if (!empty($providerData['PRICE_DATA']))
788  {
789  if (isset($providerData['PRICE_DATA']['PRICE']))
790  {
791  $this->setField('PRICE', $providerData['PRICE_DATA']['PRICE']);
792  }
793 
794  if (isset($providerData['PRICE_DATA']['BASE_PRICE']))
795  {
796  $this->setField('BASE_PRICE', $providerData['PRICE_DATA']['BASE_PRICE']);
797  }
798 
799  if (isset($providerData['PRICE_DATA']['DISCOUNT_PRICE']))
800  {
801  $this->setField('DISCOUNT_PRICE', $providerData['PRICE_DATA']['DISCOUNT_PRICE']);
802  }
803  }
804  elseif ($providerName && !$this->isCustom())
805  {
806  $result->addError(
807  new ResultError(
808  Localization\Loc::getMessage(
809  'SALE_BASKET_ITEM_WRONG_PRICE',
810  array('#PRODUCT_NAME#' => $this->getField('NAME'))
811  ),
812  'SALE_BASKET_ITEM_WRONG_PRICE'
813  )
814  );
815 
816  return $result;
817  }
818  }
819  }
820 
821  $r = parent::onFieldModify($name, $oldValue, $value);
822  if ($r->isSuccess())
823  {
824  if ($r->hasWarnings())
825  {
826  $result->addWarnings($r->getWarnings());
827  }
828 
829  if (($name === 'BASE_PRICE') || ($name === 'DISCOUNT_PRICE'))
830  {
831  if (!$this->isCustomPrice())
832  {
833  $price = $this->getField('BASE_PRICE') - $this->getField('DISCOUNT_PRICE');
834  $r = $this->setField('PRICE', $price);
835  if (!$r->isSuccess())
836  $result->addErrors($r->getErrors());
837  }
838  }
839  }
840  else
841  {
842  $result->addErrors($r->getErrors());
843  }
844 
845  return $result;
846  }

◆ save()

save ( )

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

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

1224  {
1225  $this->checkCallingContext();
1226 
1227  $result = new Result();
1228 
1229  $id = (int)$this->getId();
1230  $isNew = $id === 0;
1231 
1232  $this->onBeforeSave();
1233 
1234  $r = $this->callEventSaleBasketItemBeforeSaved($isNew);
1235  if (!$r->isSuccess())
1236  {
1237  return $r;
1238  }
1239 
1240  if (!$this->isChanged())
1241  {
1242  return $result;
1243  }
1244 
1245  if ($id > 0)
1246  {
1247  $r = $this->update();
1248  }
1249  else
1250  {
1251  $r = $this->add();
1252  if ($r->getId() > 0)
1253  {
1254  $id = $r->getId();
1255  }
1256  }
1257 
1258  if (!$r->isSuccess())
1259  {
1260  return $r;
1261  }
1262 
1263  if ($id > 0)
1264  {
1265  $result->setId($id);
1266 
1268  $controller->save($this);
1269  }
1270 
1271  $r = $this->callEventSaleBasketItemSaved($isNew);
1272  if (!$r->isSuccess())
1273  {
1274  return $r;
1275  }
1276 
1277  $r = $this->saveProperties();
1278  if (!$r->isSuccess())
1279  $result->addErrors($r->getErrors());
1280 
1282 
1283  return $result;
1284  }

◆ setField()

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

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

385  {
386  $priceFields = array(
387  'BASE_PRICE' => 'BASE_PRICE',
388  'PRICE' => 'PRICE',
389  'DISCOUNT_PRICE' => 'DISCOUNT_PRICE',
390  );
391  if (isset($priceFields[$name]))
392  {
393  $value = PriceMaths::roundPrecision($value);
394  }
395 
396  if ($this->isCalculatedField($name))
397  {
398  $this->calculatedFields->set($name, $value);
399  return new Result();
400  }
401 
402  if ($name === 'CUSTOM_PRICE')
403  {
404  if ($value == 'Y')
405  {
406  $this->markFieldCustom('PRICE');
407  }
408  else
409  {
410  $this->unmarkFieldCustom('PRICE');
411  }
412  }
413 
414  return parent::setField($name, $value);
415  }

◆ setFieldNoDemand()

setFieldNoDemand (   $name,
  $value 
)

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

426  {
427  $priceFields = array(
428  'BASE_PRICE' => 'BASE_PRICE',
429  'PRICE' => 'PRICE',
430  'DISCOUNT_PRICE' => 'DISCOUNT_PRICE',
431  );
432  if (isset($priceFields[$name]))
433  {
434  $value = PriceMaths::roundPrecision($value);
435  }
436 
437  if ($this->isCalculatedField($name))
438  {
439  $this->calculatedFields->set($name, $value);
440  return;
441  }
442 
443  if ($name === 'CUSTOM_PRICE')
444  {
445  if ($value === 'Y')
446  {
447  $this->markFieldCustom('PRICE');
448  }
449  else
450  {
451  $this->unmarkFieldCustom('PRICE');
452  }
453  }
454 
455  parent::setFieldNoDemand($name, $value);
456  }

◆ setFields()

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

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

544  {
545  foreach ($fields as $name => $value)
546  {
547  if ($this->isCalculatedField($name))
548  {
549  $this->calculatedFields[$name] = $value;
550  unset($fields[$name]);
551  }
552  }
553 
554  return parent::setFields($fields);
555  }

◆ setOrderId()

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

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

1059  {
1060  $this->setField('ORDER_ID', (int)$id);
1061  }

◆ setPrice()

setPrice (   $value,
  $custom = false 
)
Аргументы
$value
bool$custom
Возвращает
Result
Исключения
Main

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

1169  {
1170  $result = new Result();
1171 
1172  if ($custom)
1173  {
1174  $this->markFieldCustom('PRICE');
1175  }
1176  else
1177  {
1178  $this->unmarkFieldCustom('PRICE');
1179  }
1180 
1181  $r = $this->setField('PRICE', $value);
1182  if (!$r->isSuccess())
1183  {
1184  $result->addErrors($r->getErrors());
1185  }
1186 
1187  return $result;
1188  }

◆ setPropertyCollection()

setPropertyCollection ( BasketPropertiesCollectionBase  $propertyCollection)

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

1157  {
1158  $this->propertyCollection = $propertyCollection;
1159  }

◆ update()

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

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

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

1420  {
1421  $result = new Result();
1422 
1423  $this->setFieldNoDemand('DATE_UPDATE', new Main\Type\DateTime());
1424 
1425  $fields = $this->fields->getChangedValues();
1426 
1427  if (!empty($fields))
1428  {
1429  $r = $this->updateInternal($this->getId(), $fields);
1430  if (!$r->isSuccess())
1431  {
1432  $result->addErrors($r->getErrors());
1433  return $result;
1434  }
1435 
1436  if ($resultData = $r->getData())
1437  {
1438  $result->setData($resultData);
1439  }
1440  }
1441 
1442  return $result;
1443  }

◆ updateInternal()

updateInternal (   $primary,
array  $fields 
)
abstractprotected
Аргументы
$primary
array$fields
Возвращает
Main\Entity\UpdateResult

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

◆ verify()

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

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

1607  {
1608  $result = new Result();
1609 
1610  if ((float)$this->getField('QUANTITY') <= 0)
1611  {
1612  $result->addError(new Main\Error(
1613  Localization\Loc::getMessage('SALE_BASKET_ITEM_ERR_QUANTITY_ZERO')
1614  ));
1615  }
1616 
1617  if (!$this->getField('CURRENCY'))
1618  {
1619  $result->addError(new Main\Error(
1620  Localization\Loc::getMessage('SALE_BASKET_ITEM_ERR_CURRENCY_EMPTY')
1621  ));
1622  }
1623 
1624  if ($basketPropertyCollection = $this->getPropertyCollection())
1625  {
1626  $r = $basketPropertyCollection->verify();
1627  if (!$r->isSuccess())
1628  {
1629  $result->addErrors($r->getErrors());
1630  }
1631  }
1632 
1633  return $result;
1634  }

Поля

◆ $calculatedFields

$calculatedFields
protected

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

◆ $idBasket

$idBasket = 0
staticprotected

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

◆ $internalId

$internalId = null
protected

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

◆ $propertyCollection

BasketPropertiesCollectionBase $propertyCollection
protected

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

◆ $provider

$provider
protected

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


Объявления и описания членов класса находятся в файле:
Bitrix\Main\Localization\Loc\getMessage
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29
Bitrix\Sale\BasketItemBase\$propertyCollection
$propertyCollection
Definition: basketitembase.php:24
Bitrix\Sale\Internals\CustomFieldsController\getInstance
static getInstance()
Definition: customfieldscontroller.php:25
Bitrix\Sale\BasketItemBase\updateInternal
updateInternal($primary, array $fields)
Bitrix\Sale\BasketItemBase\getId
getId()
Definition: basketitembase.php:957
Bitrix\Sale\BasketItemBase\checkBeforeDelete
checkBeforeDelete()
Definition: basketitembase.php:267
Bitrix\Sale\BasketItemBase\getQuantity
getQuantity()
Definition: basketitembase.php:1021
Bitrix\Sale\BasketItemBase\onBeforeSave
onBeforeSave()
Definition: basketitembase.php:1340
Bitrix\Sale\BasketItemBase\isCustom
isCustom()
Definition: basketitembase.php:1646
Bitrix\Main\ORM\Entity\$module
$module
Definition: main/lib/orm/entity.php:31
Bitrix\Sale\Registry\ENTITY_BASKET_ITEM
const ENTITY_BASKET_ITEM
Definition: sale/lib/registry.php:28
Bitrix\Sale\BasketItemBase\setField
setField($name, $value)
Definition: basketitembase.php:384
Bitrix\Main\ORM\Entity\$fields
$fields
Definition: main/lib/orm/entity.php:44
Bitrix\Sale\Internals\CollectableEntity\getCollection
getCollection()
Definition: collectableentity.php:46
Bitrix\Sale\EventActions\EVENT_ON_BASKET_ITEM_SAVED
const EVENT_ON_BASKET_ITEM_SAVED
Definition: eventactions.php:28
Bitrix\Sale\BasketItemBase\setFieldNoDemand
setFieldNoDemand($name, $value)
Definition: basketitembase.php:425
Bitrix\Main\ORM\Entity\$fieldsMap
$fieldsMap
Definition: main/lib/orm/entity.php:46
Bitrix\Sale\BasketItemBase\$provider
$provider
Definition: basketitembase.php:30
Bitrix\Sale\BasketItemBase\getProviderName
getProviderName()
Definition: basketitembase.php:561
Bitrix\Sale\Basket\RefreshFactory\createSingle
static createSingle($basketItemCode)
Definition: refreshfactory.php:26
Bitrix\Sale\BasketItemBase\update
update()
Definition: basketitembase.php:1419
Bitrix\Sale\BasketItemBase\callEventOnBasketItemEntitySaved
callEventOnBasketItemEntitySaved()
Definition: basketitembase.php:1448
Bitrix\Main\Type
Definition: main/lib/type/collection.php:2
Bitrix\Sale\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\EventActions\EVENT_ON_BASKET_ITEM_BEFORE_SAVED
const EVENT_ON_BASKET_ITEM_BEFORE_SAVED
Definition: eventactions.php:27
Bitrix\Sale\BasketItemBase\callEventSaleBasketItemSaved
callEventSaleBasketItemSaved($isNewEntity)
Definition: basketitembase.php:1516
Bitrix\Sale\BasketItemBase\getProvider
getProvider()
Definition: basketitembase.php:617
Bitrix\Sale\BasketItemBase\getCallbackFunction
getCallbackFunction()
Definition: basketitembase.php:570
Bitrix\Sale\BasketItemBase\getField
getField($name)
Definition: basketitembase.php:464
Bitrix\Sale\BasketItemBase\getBasketCode
getBasketCode()
Definition: basketitembase.php:78
Bitrix\Sale\BasketItemBase\isCalculatedField
isCalculatedField($field)
Definition: basketitembase.php:941
Bitrix\Sale\Internals\Catalog\Provider\getProviderName
static getProviderName($module, $name)
Definition: sale/lib/internals/catalog/provider.php:1569
Bitrix\Sale\Internals\Catalog\Provider\getProviderEntity
static getProviderEntity($name)
Definition: sale/lib/internals/catalog/provider.php:1602
Bitrix\Sender\Connector\__construct
__construct(Base $connector)
Constructor.
Definition: resultview.php:40
Bitrix\Main\EventResult\ERROR
const ERROR
Definition: main/lib/eventresult.php:8
Bitrix\Sale\BasketItemBase\isCustomPrice
isCustomPrice()
Definition: basketitembase.php:1002
Bitrix\Sale\BasketItemBase\callEventSaleBasketItemBeforeSaved
callEventSaleBasketItemBeforeSaved($isNewEntity)
Definition: basketitembase.php:1473
Bitrix\Sale\BasketItemBase\getPropertyCollection
getPropertyCollection()
Definition: basketitembase.php:1119
Bitrix\Sale\BasketItemBase\getVat
getVat()
Definition: basketitembase.php:861
Bitrix\Sale\BasketItemBase\getMarkingCodeGroup
getMarkingCodeGroup()
Definition: basketitembase.php:1107
Bitrix\Main\ORM\Entity\$code
$code
Definition: main/lib/orm/entity.php:52
Bitrix\Sale\BasketItemBase\isVatInPrice
isVatInPrice()
Definition: basketitembase.php:852
Bitrix\Sale\BasketItemBase\add
add()
Definition: basketitembase.php:1383
Bitrix\Sale\BasketItemBase\getBasePrice
getBasePrice()
Definition: basketitembase.php:984
Bitrix\Sale\BasketItemBase\$internalId
$internalId
Definition: basketitembase.php:33
Bitrix\Sale\BasketItemBase\isChanged
isChanged()
Definition: basketitembase.php:1573
Bitrix\Sale\Internals\Catalog\Provider\getAvailableQuantityAndPriceByBasketItem
static getAvailableQuantityAndPriceByBasketItem(Sale\BasketItemBase $basketItem, array $context=array())
Definition: sale/lib/internals/catalog/provider.php:230
Bitrix\Sale\BasketItemBase\addInternal
addInternal(array $fields)
Bitrix\Sale\BasketItemBase\getPrice
getPrice()
Definition: basketitembase.php:975
Bitrix\Sale\Internals\CollectableEntity\$collection
$collection
Definition: collectableentity.php:16
Bitrix\Sale\BasketItemBase\getVatRate
getVatRate()
Definition: basketitembase.php:1039
Bitrix\Sale\BasketItemBase\$calculatedFields
$calculatedFields
Definition: basketitembase.php:27
Bitrix\Sale\PriceMaths\roundPrecision
static roundPrecision($value)
Definition: pricemaths.php:17
Bitrix\Main\Loader\includeModule
static includeModule($moduleName)
Includes module by its name.
Definition: main/lib/loader.php:70
Bitrix\Main\ORM\Entity\$name
$name
Definition: main/lib/orm/entity.php:32