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

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

 delete ()
 Deletes shipment item. Подробнее...
 
 getQuantity ()
 
 checkMarkingCodeOnDeducted ()
 
 setQuantity ($quantity)
 
 getReservedQuantity ()
 
 getBasketId ()
 
 getBasketCode ()
 
 getProductId ()
 
 save ()
 
 getBasketItem ()
 
 getShipmentItemStoreCollection ()
 
 onBasketModify ($action, BasketItem $basketItem, $name=null, $oldValue=null, $value=null)
 
 isChanged ()
 
 tryReserve ()
 
 tryUnreserve ()
 
 verify ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
 getErrorEntity ($value)
 
 canAutoFixError ($value)
 
 getAutoFixErrorsList ()
 
 tryFixError ($code)
 
 canMarked ()
 
 getMarkField ()
 
 clearChanged ()
 
 needReserve ()
 
 getNeedReserveQuantity ()
 
- Открытые члены унаследованные от CollectableEntity
 setCollection (EntityCollection $collection)
 
 getCollection ()
 
 setInternalIndex ($index)
 
 getInternalIndex ()
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 setMathActionOnly ($value=false)
 
 isMathActionOnly ()
 
 isClone ()
 
- Открытые члены унаследованные от 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 ()
 
 getField ($name)
 
 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 getAvailableFields ()
 
static create (ShipmentItemCollection $collection, BasketItem $basketItem=null)
 Internal method, use ShipmentItemCollection::createItem() Подробнее...
 
static loadForShipment ($id)
 
static getRegistryType ()
 
static getRegistryEntity ()
 
static getList (array $parameters)
 
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)
 

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

 onFieldModify ($name, $oldValue, $value)
 
 loadBasketItem ()
 
 calculateDelivery ()
 
 addChangesToHistory ($name, $oldValue=null, $value=null)
 
 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
- Защищенные члены унаследованные от Entity
 appendField (Field $field)
 
 getCacheDir ()
 

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

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

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

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

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

static $errors = array()
 
- Статические защищенные данные унаследованные от Entity
static $instances
 

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

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

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

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

Методы

◆ addChangesToHistory()

addChangesToHistory (   $name,
  $oldValue = null,
  $value = null 
)
protected
Аргументы
string$name
null | string$oldValue
null | string$value
Исключения
Main

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

1019  {
1020  if ($this->getId() > 0)
1021  {
1022  /** @var ShipmentItemCollection $shipmentItemCollection */
1023  if (!$shipmentItemCollection = $this->getCollection())
1024  {
1025  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
1026  }
1027 
1028  /** @var Shipment $shipment */
1029  if (!$shipment = $shipmentItemCollection->getShipment())
1030  {
1031  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
1032  }
1033 
1034  if ($shipment->isSystem())
1035  return;
1036 
1037  /** @var ShipmentCollection $shipmentCollection */
1038  if (!$shipmentCollection = $shipment->getCollection())
1039  {
1040  throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
1041  }
1042 
1043  $historyFields = array();
1044 
1045  /** @var BasketItem $basketItem */
1046  if ($basketItem = $this->getBasketItem())
1047  {
1048  $historyFields = array(
1049  'NAME' => $basketItem->getField('NAME'),
1050  'PRODUCT_ID' => $basketItem->getField('PRODUCT_ID'),
1051  );
1052  }
1053 
1054  /** @var Order $order */
1055  if (($order = $shipmentCollection->getOrder()) && $order->getId() > 0)
1056  {
1057  $registry = Registry::getInstance(static::getRegistryType());
1058 
1059  /** @var OrderHistory $orderHistory */
1060  $orderHistory = $registry->getOrderHistoryClassName();
1061  $orderHistory::addField(
1062  'SHIPMENT_ITEM',
1063  $order->getId(),
1064  $name,
1065  $oldValue,
1066  $value,
1067  $this->getId(),
1068  $this,
1069  $historyFields
1070  );
1071  }
1072 
1073 
1074  }
1075  }

◆ addInternal()

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

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

1398  {
1399  return Internals\ShipmentItemTable::add($data);
1400  }

◆ calculateDelivery()

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

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

978  {
979  $result = new Result();
980 
981  /** @var ShipmentItemCollection $collection */
982  $collection = $this->getCollection();
983  /** @var Shipment $shipment */
984  $shipment = $collection->getShipment();
985 
986  /** @var ShipmentCollection $shipmentCollection */
987  $shipmentCollection = $shipment->getCollection();
988 
989  /** @var Order $order */
990  $order = $shipmentCollection->getOrder();
991 
992  if ($order->getId() > 0)
993  {
994  return $result;
995  }
996 
997  $deliveryCalculate = $shipment->calculateDelivery();
998  if (!$deliveryCalculate->isSuccess())
999  {
1000  $result->addErrors($deliveryCalculate->getErrors());
1001  }
1002 
1003  if ($deliveryCalculate->getPrice() > 0)
1004  {
1005  $shipment->setField('BASE_PRICE_DELIVERY', $deliveryCalculate->getPrice());
1006  }
1007 
1008  return $result;
1009  }

◆ canAutoFixError()

canAutoFixError (   $value)
Аргументы
$value
Возвращает
bool

Замещает IEntityMarker.

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

1291  {
1292  $autoFix = false;
1293  $errorsList = static::getAutoFixErrorsList();
1294  if (is_array($errorsList) && in_array($value, $errorsList))
1295  {
1296  $autoFix = true;
1297  }
1298  else
1299  {
1300  /** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
1302  {
1303  $autoFix = $shipmentItemStoreCollection->canAutoFixError($value);
1304  }
1305  }
1306 
1307  return $autoFix;
1308  }

◆ canMarked()

canMarked ( )

Замещает IEntityMarker.

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

1329  {
1330  return false;
1331  }

◆ checkMarkingCodeOnDeducted()

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

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

442  {
443  $result = new Result();
444 
445  if (!$this->getBasketItem()->isSupportedMarkingCode())
446  {
447  return $result;
448  }
449 
450  if ($this->getShipmentItemStoreCollection()->count() < $this->getQuantity())
451  {
452  return $result->addError(
453  new Main\Error(
455  'SALE_SHIPMENT_ITEM_MARKING_CODE_LESS_ITEM_QUANTITY',
456  ['#PRODUCT_NAME#' => $this->getBasketItem()->getField('NAME')])
457  )
458  );
459  }
460 
461  /** @var ShipmentItemStore $itemStore */
462  foreach ($this->getShipmentItemStoreCollection() as $itemStore)
463  {
464  if ($itemStore->getMarkingCode() === '')
465  {
466  return $result->addError(
467  new Main\Error(
469  'SALE_SHIPMENT_ITEM_MARKING_CODE_LESS_ITEM_QUANTITY',
470  ['#PRODUCT_NAME#' => $this->getBasketItem()->getField('NAME')])
471  )
472  );
473  }
474  }
475 
476  return $result;
477  }

◆ clearChanged()

clearChanged ( )

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

1342  {
1343  parent::clearChanged();
1344 
1346  {
1347  foreach ($shipmentItemStoreCollection as $shipmentItemStore)
1348  {
1349  $shipmentItemStore->clearChanged();
1350  }
1351  }
1352  }

◆ create()

static create ( ShipmentItemCollection  $collection,
BasketItem  $basketItem = null 
)
static

Internal method, use ShipmentItemCollection::createItem()

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

50  {
51  $fields = [
52  'XML_ID' => static::generateXmlId()
53  ];
54 
55  if ($basketItem !== null && $basketItem->getId() > 0)
56  {
57  $fields["BASKET_ID"] = $basketItem->getId();
58  }
59 
60  $shipmentItem = static::createShipmentItemObject();
61  $shipmentItem->setFieldsNoDemand($fields);
62  $shipmentItem->setCollection($collection);
63 
64  if ($basketItem !== null)
65  {
66  $shipmentItem->basketItem = $basketItem;
67  }
68 
69  return $shipmentItem;
70  }

◆ createClone()

createClone ( \SplObjectStorage  $cloneEntity)

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

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

1217  {
1218  if ($this->isClone() && $cloneEntity->contains($this))
1219  {
1220  return $cloneEntity[$this];
1221  }
1222 
1223  /** @var ShipmentItem $shipmentItemClone */
1224  $shipmentItemClone = parent::createClone($cloneEntity);
1225 
1226  /** @var BasketItem $basketItem */
1227  if ($basketItem = $this->getBasketItem())
1228  {
1229  if (!$cloneEntity->contains($basketItem))
1230  {
1231  $cloneEntity[$basketItem] = $basketItem->createClone($cloneEntity);
1232  }
1233 
1234  if ($cloneEntity->contains($basketItem))
1235  {
1236  $shipmentItemClone->basketItem = $cloneEntity[$basketItem];
1237  }
1238  }
1239 
1240  /** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
1242  {
1243  if (!$cloneEntity->contains($shipmentItemStoreCollection))
1244  {
1245  $cloneEntity[$shipmentItemStoreCollection] = $shipmentItemStoreCollection->createClone($cloneEntity);
1246  }
1247 
1248  if ($cloneEntity->contains($shipmentItemStoreCollection))
1249  {
1250  $shipmentItemClone->shipmentItemStoreCollection = $cloneEntity[$shipmentItemStoreCollection];
1251  }
1252  }
1253 
1254  return $shipmentItemClone;
1255  }

◆ delete()

delete ( )

Deletes shipment item.

Исключения
Main

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

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

88  {
89  $result = new Result();
90  /** @var ShipmentItemCollection $shipmentItemCollection */
91  if (!$shipmentItemCollection = $this->getCollection())
92  {
93  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
94  }
95 
96  /** @var Shipment $shipment */
97  if (!$shipment = $shipmentItemCollection->getShipment())
98  {
99  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
100  }
101 
102  /** @var array $oldEntityValues */
103  $oldEntityValues = $this->fields->getOriginalValues();
104 
105  /** @var Main\Event $event */
106  $event = new Main\Event('sale', "OnBeforeSaleShipmentItemEntityDeleted", array(
107  'ENTITY' => $this,
108  'VALUES' => $oldEntityValues,
109  ));
110  $event->send();
111 
112  if ($event->getResults())
113  {
114  /** @var Main\EventResult $eventResult */
115  foreach($event->getResults() as $eventResult)
116  {
117  if($eventResult->getType() == Main\EventResult::ERROR)
118  {
119  $errorMsg = new ResultError(
120  Loc::getMessage('SALE_EVENT_ON_BEFORE_SALESHIPMENTITEM_ENTITY_DELETED_ERROR'),
121  'SALE_EVENT_ON_BEFORE_SALESHIPMENTITEM_ENTITY_DELETED_ERROR'
122  );
123  if ($eventResultData = $eventResult->getParameters())
124  {
125  if (isset($eventResultData) && $eventResultData instanceof ResultError)
126  {
127  /** @var ResultError $errorMsg */
128  $errorMsg = $eventResultData;
129  }
130  }
131 
132  $result->addError($errorMsg);
133  }
134  }
135 
136  if (!$result->isSuccess())
137  {
138  return $result;
139  }
140  }
141 
142 
143  if (!$shipment->isSystem())
144  {
145  if ($shipment->isShipped())
146  {
147  /** @var BasketItem $basketItem */
148  if (!$basketItem = $this->getBasketItem())
149  {
150  throw new Main\ObjectNotFoundException('Entity "BasketItem" not found');
151  }
152 
153  $result->addError(new ResultError(Loc::getMessage(
154  'SALE_SHIPMENT_ITEM_SHIPMENT_ALREADY_SHIPPED_CANNOT_DELETE',
155  array(
156  '#PRODUCT_NAME#' => $basketItem->getField('NAME')
157  )), 'SALE_SHIPMENT_ITEM_SHIPMENT_ALREADY_SHIPPED_CANNOT_DELETE'));
158 
159  return $result;
160  }
161 
162  $r = $this->setField("QUANTITY", 0);
163 
164  if (!$r->isSuccess())
165  {
166  $result->addErrors($r->getErrors());
167  return $result;
168  }
169  }
170  elseif ($shipment->isSystem() && $this->getQuantity() > 0)
171  {
172  throw new \ErrorException('System shipment not empty');
173  }
174 
175  $r = parent::delete();
176  if (!$r->isSuccess())
177  {
178  $result->addErrors($r->getErrors());
179  }
180 
181 
182  /** @var array $oldEntityValues */
183  $oldEntityValues = $this->fields->getOriginalValues();
184 
185  /** @var Main\Event $event */
186  $event = new Main\Event('sale', "OnSaleShipmentItemEntityDeleted", array(
187  'ENTITY' => $this,
188  'VALUES' => $oldEntityValues,
189  ));
190  $event->send();
191 
192  if ($event->getResults())
193  {
194  /** @var Main\EventResult $eventResult */
195  foreach($event->getResults() as $eventResult)
196  {
197  if($eventResult->getType() == Main\EventResult::ERROR)
198  {
199  $errorMsg = new ResultError(
200  Loc::getMessage('SALE_EVENT_ON_SALESHIPMENTITEM_ENTITY_DELETED_ERROR'),
201  'SALE_EVENT_ON_SALESHIPMENTITEM_ENTITY_DELETED_ERROR'
202  );
203  $eventResultData = $eventResult->getParameters();
204  if (isset($eventResultData) && $eventResultData instanceof ResultError)
205  {
206  /** @var ResultError $errorMsg */
207  $errorMsg = $eventResultData;
208  }
209 
210  $result->addError($errorMsg);
211  }
212  }
213 
214  if (!$result->isSuccess())
215  {
216  return $result;
217  }
218  }
219 
220  return $result;
221  }

◆ generateXmlId()

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

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

76  {
77  return uniqid('bx_');
78  }

◆ getAutoFixErrorsList()

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

Замещает IEntityMarker.

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

1314  {
1315  return array();
1316  }

◆ getAvailableFields()

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

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

27  {
28  return array("QUANTITY", "RESERVED_QUANTITY", "XML_ID");
29  }

◆ getBasketCode()

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

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

516  {
517  if ($basketItem = $this->getBasketItem())
518  {
519  return $basketItem->getBasketCode();
520  }
521 
522  return null;
523  }

◆ getBasketId()

getBasketId ( )
Возвращает
int

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

507  {
508  return $this->getField('BASKET_ID');
509  }

◆ getBasketItem()

getBasketItem ( )
Возвращает
BasketItem

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

923  {
924  if ($this->basketItem == null)
925  {
926  $this->basketItem = $this->loadBasketItem();
927  }
928 
929  return $this->basketItem;
930  }

◆ getEntityEventName()

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

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

1426  {
1427  return 'SaleShipmentItem';
1428  }

◆ getErrorEntity()

getErrorEntity (   $value)
Аргументы
$value
Возвращает
string

Замещает IEntityMarker.

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

1264  {
1265  static $className = null;
1266  $errorsList = static::getAutoFixErrorsList();
1267  if (is_array($errorsList) && in_array($value, $errorsList))
1268  {
1269  if ($className === null)
1270  $className = static::getClassName();
1271  }
1272  else
1273  {
1274  /** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
1276  {
1277  $className = $shipmentItemStoreCollection->getErrorEntity($value);
1278  }
1279  }
1280 
1281  return $className;
1282  }

◆ getFieldsMap()

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

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

1416  {
1418  }

◆ getList()

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

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

1199  {
1200  return Internals\ShipmentItemTable::getList($parameters);
1201  }

◆ getMarkField()

getMarkField ( )

Замещает IEntityMarker.

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

1334  {
1335  return null;
1336  }

◆ getMeaningfulFields()

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

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

35  {
36  return array('QUANTITY');
37  }

◆ getNeedReserveQuantity()

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

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

1383  {
1384  if (!$this->needReserve())
1385  return 0;
1386 
1387  $changedFields = $this->fields->getChangedValues();
1388  $originalFields = $this->fields->getOriginalValues();
1389 
1390  return $changedFields['RESERVED_QUANTITY'] - $originalFields['RESERVED_QUANTITY'];
1391  }

◆ getProductId()

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

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

530  {
531  $basketItem = $this->getBasketItem();
532  if ($basketItem)
533  {
534  return $basketItem->getProductId();
535  }
536 
537  return null;
538  }

◆ getQuantity()

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

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

227  {
228  return (float)$this->getField('QUANTITY');
229  }

◆ getRegistryEntity()

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

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

876  {
878  }

◆ getRegistryType()

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

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

868  {
870  }

◆ getReservedQuantity()

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

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

499  {
500  return floatval($this->getField('RESERVED_QUANTITY'));
501  }

◆ getShipmentItemStoreCollection()

getShipmentItemStoreCollection ( )
Возвращает
ShipmentItemStoreCollection

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

936  {
937  if (empty($this->shipmentItemStoreCollection))
938  {
939  $registry = Registry::getInstance(static::getRegistryType());
940 
941  /** @var ShipmentItemStoreCollection $itemStoreCollectionClassName */
942  $itemStoreCollectionClassName = $registry->getShipmentItemStoreCollectionClassName();
943  $this->shipmentItemStoreCollection = $itemStoreCollectionClassName::load($this);
944  }
946  }

◆ isChanged()

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

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

1082  {
1083  if (parent::isChanged())
1084  {
1085  return true;
1086  }
1087 
1088  /** @var ShipmentItemStoreCollection $shipmentItemCollection */
1090  {
1091  if ($shipmentItemStoreCollection->isChanged())
1092  {
1093  return true;
1094  }
1095  }
1096 
1097  return false;
1098  }

◆ loadBasketItem()

loadBasketItem ( )
protected
Возвращает
Internals\CollectableEntity|bool
Исключения
Main

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

885  {
886  /** @var ShipmentItemCollection $collection */
887  $collection = $this->getCollection();
888 
889  /** @var Shipment $shipment */
890  if (!$shipment = $collection->getShipment())
891  {
892  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
893  }
894 
895  /** @var ShipmentCollection $shipmentCollection */
896  if (!$shipmentCollection = $shipment->getCollection())
897  {
898  throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
899  }
900 
901  /** @var Order $order */
902  if (!$order = $shipmentCollection->getOrder())
903  {
904  throw new Main\ObjectNotFoundException('Entity "Order" not found');
905  }
906 
907  /** @var Basket $basket */
908  if (!$basket = $order->getBasket())
909  {
910  throw new Main\ObjectNotFoundException('Entity "Basket" not found');
911  }
912 
913  // [performance]
914  // new ShipmentItem binds BasketItem on initialization
915  // here we find BasketItem for already saved ShipmentItem (his ID is equal to CODE)
916  return $basket->getItemByBasketCode($this->getBasketId());
917  }

◆ loadForShipment()

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

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

833  {
834  if (intval($id) <= 0)
835  throw new Main\ArgumentNullException("id");
836 
837  $items = array();
838 
839  $itemDataList = static::getList(
840  array(
841  'filter' => array('ORDER_DELIVERY_ID' => $id),
842  'order' => array('DATE_INSERT' => 'ASC', 'ID' => 'ASC')
843  )
844  );
845 
846  while ($itemData = $itemDataList->fetch())
847  $items[] = static::createShipmentItemObject($itemData);
848 
849  return $items;
850  }

◆ needReserve()

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

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

1359  {
1360  $changedFields = $this->fields->getChangedValues();
1361 
1362  /** @var ShipmentItemCollection $shipmentItemCollection */
1363  $shipmentItemCollection = $this->getCollection();
1364  if (!$shipmentItemCollection)
1365  {
1366  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
1367  }
1368 
1369  /** @var Shipment $shipment */
1370  $shipment = $shipmentItemCollection->getShipment();
1371  if (!$shipment)
1372  {
1373  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
1374  }
1375 
1376  return array_key_exists('RESERVED_QUANTITY', $changedFields) || $shipment->getField('RESERVED') == 'Y';
1377  }

◆ onBasketModify()

onBasketModify (   $action,
BasketItem  $basketItem,
  $name = null,
  $oldValue = null,
  $value = null 
)
Аргументы
$action
BasketItem$basketItem
null$name
null$oldValue
null$value
Возвращает
Result
Исключения
Main

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

962  {
963  $result = new Result();
964 
965  if ($action === EventActions::ADD)
966  {
967  $this->setFieldNoDemand('QUANTITY', $basketItem->getQuantity());
968  }
969 
970  return $result;
971  }

◆ onFieldModify()

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

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

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

243  {
244  $result = new Result();
245 
246  /** @var ShipmentItemCollection $shipmentItemCollection */
247  if (!$shipmentItemCollection = $this->getCollection())
248  {
249  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
250  }
251 
252  /** @var Shipment $shipment */
253  if (!$shipment = $shipmentItemCollection->getShipment())
254  {
255  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
256  }
257 
258  /** @var ShipmentCollection $shipmentCollection */
259  if (!$shipmentCollection = $shipment->getCollection())
260  {
261  throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
262  }
263 
264  /** @var Order $order */
265  if (!$order = $shipmentCollection->getOrder())
266  {
267  throw new Main\ObjectNotFoundException('Entity "Order" not found');
268  }
269 
270  if ($shipment->isShipped())
271  {
272  $result = new Result();
273  $result->addError(new ResultError(Loc::getMessage('SALE_SHIPMENT_ITEM_SHIPMENT_ALREADY_SHIPPED_CANNOT_EDIT'), 'SALE_SHIPMENT_ITEM_SHIPMENT_ALREADY_SHIPPED_CANNOT_EDIT'));
274  return $result;
275  }
276 
277  if ($name == "QUANTITY")
278  {
279  /** @var BasketItem $basketItem */
280  if (!$basketItem = $this->getBasketItem())
281  {
282  if ($value != 0)
283  {
284  throw new Main\ObjectNotFoundException('Entity "BasketItem" not found');
285  }
286 
287  }
288 
289 
290  $deltaQuantity = $value - $oldValue;
291 
292  if ($basketItem && $deltaQuantity > 0)
293  {
294 
295  /** @var ShipmentCollection $shipmentCollection */
296  if (!$shipmentCollection = $shipment->getCollection())
297  {
298  throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
299  }
300 
301  /** @var Shipment $systemShipment */
302  if (!$systemShipment = $shipmentCollection->getSystemShipment())
303  {
304  throw new Main\ObjectNotFoundException('Entity "System Shipment" not found');
305  }
306 
307  $systemBasketItemQuantity = $systemShipment->getBasketItemQuantity($basketItem);
308  if ($systemBasketItemQuantity < abs($deltaQuantity))
309  {
310  $errorBasketCode = $basketItem->getBasketCode();
311 
312  if ($basketItem->isBundleChild())
313  {
314  /** @var BasketItem $parentBasketItem */
315  if (!($parentBasketItem = $basketItem->getParentBasketItem()))
316  {
317  throw new Main\ObjectNotFoundException('Entity "Parent Basket Item" not found');
318  }
319 
320  $errorBasketCode = $parentBasketItem->getBasketCode();
321  }
322 
323  if (isset(static::$errors[$errorBasketCode][$basketItem->getField('ORDER_DELIVERY_BASKET_ID')]['STORE_QUANTITY_LARGER_ALLOWED']))
324  {
325  static::$errors[$errorBasketCode][$basketItem->getField('ORDER_DELIVERY_BASKET_ID')]['STORE_QUANTITY_LARGER_ALLOWED'] += $basketItem->getQuantity();
326  }
327  else
328  {
329  $result->addError(
330  new ResultError(
332  'SALE_SHIPMENT_ITEM_LESS_AVAILABLE_QUANTITY',
333  array(
334  '#PRODUCT_NAME#' => $basketItem->getField('NAME'),
335  )
336  ), 'SALE_SHIPMENT_ITEM_LESS_AVAILABLE_QUANTITY'
337  )
338  );
339 
340  static::$errors[$errorBasketCode][$basketItem->getField('ORDER_DELIVERY_BASKET_ID')]['STORE_QUANTITY_LARGER_ALLOWED'] = $basketItem->getQuantity();
341  }
342 
343  return $result;
344  }
345  }
346 
347 
348  if ($basketItem)
349  {
350  if (!$this->isMathActionOnly())
351  {
352  $r = $this->calculateDelivery();
353  if (!$r->isSuccess())
354  {
355  $result->addErrors($r->getErrors());
356  }
357  }
358  }
359 
360  /** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
362  {
363  throw new Main\ObjectNotFoundException('Entity "ShipmentItemStoreCollection" not found');
364  }
365 
366 
367 
368  if ($value == 0)
369  {
370  $basketItemName = Loc::getMessage("SALE_SHIPMENT_ITEM_BASKET_WRONG_BASKET_ITEM");
371  $basketItemProductId = '1';
372 
373  if ($basketItem)
374  {
375  $basketItemName = $basketItem->getField('NAME');
376  $basketItemProductId = $basketItem->getProductId();
377  }
378 
379  $registry = Registry::getInstance(static::getRegistryType());
380 
381  /** @var OrderHistory $orderHistory */
382  $orderHistory = $registry->getOrderHistoryClassName();
383  $orderHistory::addAction(
384  'SHIPMENT',
385  $order->getId(),
386  'SHIPMENT_ITEM_BASKET_REMOVED',
387  $shipment->getId(),
388  null,
389  array(
390  'NAME' => $basketItemName,
391  'PRODUCT_ID' => $basketItemProductId,
392  )
393  );
394 
395  /** @var ShipmentItemStore $shipmentItemStore */
396  foreach ($shipmentItemStoreCollection as $shipmentItemStore)
397  {
398  $shipmentItemStore->delete();
399  }
400 
401  }
402  elseif (!$basketItem->isBundleParent())
403  {
404  // check barcodes
405  $r = $shipmentItemStoreCollection->onShipmentItemModify(EventActions::UPDATE, $this, $name, $oldValue, $value);
406  if (!$r->isSuccess())
407  {
408  $result->addErrors($r->getErrors());
409  return $result;
410  }
411 
412  $barcodeQuantity = $shipmentItemStoreCollection->getQuantityByBasketCode($basketItem->getBasketCode());
413  if ($barcodeQuantity > $value)
414  {
415  $result->addError(
416  new ResultError(
417  Loc::getMessage('SALE_SHIPMENT_ITEM_BARCODE_MORE_ITEM_QUANTITY'),
418  'BARCODE_MORE_ITEM_QUANTITY'
419  )
420  );
421 
422  return $result;
423  }
424  }
425 
426  if (!$basketItem)
427  {
428  return $result;
429  }
430  }
431 
432 
433  return parent::onFieldModify($name, $oldValue, $value);
434  }

◆ save()

save ( )

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

551  {
552  $this->checkCallingContext();
553 
554  $result = new Result();
555 
556  $id = $this->getId();
557  $fields = $this->fields->getValues();
558 
559  /** @var ShipmentItemCollection $shipmentItemCollection */
560  if (!$shipmentItemCollection = $this->getCollection())
561  {
562  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
563  }
564 
565  /** @var Shipment $shipment */
566  if (!$shipment = $shipmentItemCollection->getShipment())
567  {
568  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
569  }
570 
571  /** @var ShipmentCollection $shipmentCollection */
572  if (!$shipmentCollection = $shipment->getCollection())
573  {
574  throw new Main\ObjectNotFoundException('Entity "ShipmentCollection" not found');
575  }
576 
577  /** @var Order $order */
578  if (!$order = $shipmentCollection->getOrder())
579  {
580  throw new Main\ObjectNotFoundException('Entity "Order" not found');
581  }
582 
583 
584  if ($this->isChanged())
585  {
586  /** @var Main\Entity\Event $event */
587  $event = new Main\Event('sale', 'OnBeforeSaleShipmentItemEntitySaved', array(
588  'ENTITY' => $this,
589  'VALUES' => $this->fields->getOriginalValues()
590  ));
591  $event->send();
592  }
593 
594 
595  if ($id > 0)
596  {
597  $fields = $this->fields->getChangedValues();
598 
599  if (!empty($fields) && is_array($fields))
600  {
601  /** @var ShipmentItemCollection $shipmentItemCollection */
602  if (!$shipmentItemCollection = $this->getCollection())
603  {
604  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
605  }
606 
607  /** @var Shipment $shipment */
608  if (!$shipment = $shipmentItemCollection->getShipment())
609  {
610  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
611  }
612 
613  if (!$shipment->isSystem())
614  {
615  if (isset($fields["QUANTITY"]) && (floatval($fields["QUANTITY"]) == 0))
616  return $result;
617  }
618 
619  $r = $this->updateInternal($id, $fields);
620  if (!$r->isSuccess())
621  {
622  $registry = Registry::getInstance(static::getRegistryType());
623 
624  /** @var OrderHistory $orderHistory */
625  $orderHistory = $registry->getOrderHistoryClassName();
626  $orderHistory::addAction(
627  'SHIPMENT',
628  $order->getId(),
629  'SHIPMENT_ITEM_UPDATE_ERROR',
630  $id,
631  $this,
632  array("ERROR" => $r->getErrorMessages())
633  );
634 
635  $result->addErrors($r->getErrors());
636  return $result;
637  }
638 
639  if ($resultData = $r->getData())
640  $result->setData($resultData);
641  }
642 
643  if ($order && $order->getId() > 0)
644  {
645  $registry = Registry::getInstance(static::getRegistryType());
646 
647  /** @var OrderHistory $orderHistory */
648  $orderHistory = $registry->getOrderHistoryClassName();
649  $orderHistory::collectEntityFields('SHIPMENT_ITEM_STORE', $order->getId(), $id);
650  }
651  }
652  else
653  {
654  $fields['ORDER_DELIVERY_ID'] = $this->getParentShipmentId();
655  $this->setFieldNoDemand('ORDER_DELIVERY_ID', $fields['ORDER_DELIVERY_ID']);
656 
657  $fields['DATE_INSERT'] = new Main\Type\DateTime();
658  $this->setFieldNoDemand('DATE_INSERT', $fields['DATE_INSERT']);
659 
660  $fields["BASKET_ID"] = $this->basketItem->getId();
661  $this->setFieldNoDemand('BASKET_ID', $fields['BASKET_ID']);
662 
663  if (intval($fields['BASKET_ID']) <= 0)
664  {
665 
666  $error = Loc::getMessage(
667  'SALE_SHIPMENT_ITEM_BASKET_ITEM_ID_EMPTY',
668  array(
669  '#PRODUCT_NAME#' => $this->basketItem->getField('NAME')
670  )
671  );
672 
673  $registry = Registry::getInstance(static::getRegistryType());
674 
675  /** @var OrderHistory $orderHistory */
676  $orderHistory = $registry->getOrderHistoryClassName();
677  $orderHistory::addAction(
678  'SHIPMENT',
679  $order->getId(),
680  'SHIPMENT_ITEM_BASKET_ITEM_EMPTY_ERROR',
681  null,
682  $this,
683  array(
684  "ERROR" => $error
685  )
686  );
687 
688  $result->addError(new ResultError($error, 'SALE_SHIPMENT_ITEM_BASKET_ITEM_ID_EMPTY'));
689 
690  return $result;
691  }
692 
693  if (!isset($fields["QUANTITY"]) || (floatval($fields["QUANTITY"]) == 0))
694  return $result;
695 
696  if (!isset($fields['RESERVED_QUANTITY']))
697  {
698  $fields['RESERVED_QUANTITY'] = $this->getReservedQuantity() === null ? 0 : $this->getReservedQuantity();
699  $this->setFieldNoDemand('RESERVED_QUANTITY', $fields['RESERVED_QUANTITY']);
700  }
701 
702  $r = $this->addInternal($fields);
703  if (!$r->isSuccess())
704  {
705  $registry = Registry::getInstance(static::getRegistryType());
706 
707  /** @var OrderHistory $orderHistory */
708  $orderHistory = $registry->getOrderHistoryClassName();
709  $orderHistory::addAction(
710  'SHIPMENT',
711  $order->getId(),
712  'SHIPMENT_ITEM_ADD_ERROR',
713  null,
714  $this,
715  array("ERROR" => $r->getErrorMessages())
716  );
717 
718  $result->addErrors($r->getErrors());
719  return $result;
720  }
721 
722  if ($resultData = $r->getData())
723  $result->setData($resultData);
724 
725  $id = $r->getId();
726  $this->setFieldNoDemand('ID', $id);
727 
728  if (!$shipment->isSystem())
729  {
730  $registry = Registry::getInstance(static::getRegistryType());
731 
732  /** @var OrderHistory $orderHistory */
733  $orderHistory = $registry->getOrderHistoryClassName();
734  $orderHistory::addAction(
735  'SHIPMENT',
736  $order->getId(),
737  'SHIPMENT_ITEM_BASKET_ADDED',
738  $shipment->getId(),
739  $this->basketItem,
740  array(
741  'QUANTITY' => $this->getQuantity(),
742  )
743  );
744  }
745  }
746 
747  if ($id > 0)
748  {
749  $result->setId($id);
750  }
751 
752  if ($this->isChanged())
753  {
754  /** @var Main\Event $event */
755  $event = new Main\Event('sale', 'OnSaleShipmentItemEntitySaved', array(
756  'ENTITY' => $this,
757  'VALUES' => $this->fields->getOriginalValues(),
758  ));
759  $event->send();
760  }
761 
763  $r = $shipmentItemStoreCollection->save();
764  if (!$r->isSuccess())
765  {
766  $result->addErrors($r->getErrors());
767  }
768 
769  if ($result->isSuccess())
770  {
771  $registry = Registry::getInstance(static::getRegistryType());
772 
773  /** @var OrderHistory $orderHistory */
774  $orderHistory = $registry->getOrderHistoryClassName();
775  $orderHistory::collectEntityFields('SHIPMENT_ITEM', $order->getId(), $id);
776  }
777 
778  return $result;
779  }

◆ setQuantity()

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

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

488  {
489  if (!is_numeric($quantity))
490  throw new Main\ArgumentTypeException("quantity");
491 
492  return $this->setField('QUANTITY', (float)$quantity);
493  }

◆ tryFixError()

tryFixError (   $code)
Аргументы
$code
Возвращает
Result

Замещает IEntityMarker.

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

1324  {
1325  return new Result();
1326  }

◆ tryReserve()

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

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

1106  {
1108  }

◆ tryUnreserve()

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

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

1116  {
1118  }

◆ updateInternal()

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

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

1408  {
1409  return Internals\ShipmentItemTable::update($primary, $data);
1410  }

◆ verify()

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

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

1126  {
1127  $result = new Result();
1128 
1129  /** @var ShipmentItemCollection $shipmentItemCollection */
1130  if (!$shipmentItemCollection = $this->getCollection())
1131  {
1132  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
1133  }
1134 
1135  /** @var Shipment $shipment */
1136  if (!$shipment = $shipmentItemCollection->getShipment())
1137  {
1138  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
1139  }
1140 
1141  if (!$basketItem = $this->getBasketItem())
1142  {
1143  $result->addError(
1144  new ResultError(
1146  'SALE_SHIPMENT_ITEM_BASKET_ITEM_NOT_FOUND',
1147  array(
1148  '#BASKET_ITEM_ID#' => $this->getBasketId(),
1149  '#SHIPMENT_ID#' => $shipment->getId(),
1150  '#SHIPMENT_ITEM_ID#' => $this->getId(),
1151  )
1152  ), 'SALE_SHIPMENT_ITEM_BASKET_ITEM_NOT_FOUND'
1153  )
1154  );
1155 
1156  return $result;
1157  }
1158 
1159  if ($this->getQuantity() <= 0)
1160  {
1161  $result->addError(
1162  new ResultError(
1164  'SALE_SHIPMENT_ITEM_ERR_QUANTITY_EMPTY',
1165  array(
1166  '#BASKET_ITEM_NAME#' => $this->getBasketItem()->getField('NAME'),
1167  )
1168  ), 'SALE_SHIPMENT_ITEM_ERR_QUANTITY_EMPTY'
1169  )
1170  );
1171 
1172  return $result;
1173  }
1174 
1175  /** @var ShipmentItemStoreCollection $shipmentItemCollection */
1177  {
1178  /** @var ShipmentItemStore $shipmentItemStore */
1179  foreach ($shipmentItemStoreCollection as $shipmentItemStore)
1180  {
1181  $r = $shipmentItemStore->verify();
1182  if (!$r->isSuccess())
1183  {
1184  $result->addErrors($r->getErrors());
1185  }
1186  }
1187  }
1188 
1189  return $result;
1190  }

Поля

◆ $basketItem

$basketItem
protected

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

◆ $errors

$errors = array()
staticprotected

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

◆ $shipmentItemStoreCollection

$shipmentItemStoreCollection
protected

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


Объявления и описания членов класса находятся в файле:
Bitrix\Main\Localization\Loc\getMessage
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29
Bitrix\Sale\Internals\Catalog\Provider\tryUnreserveShipmentItem
static tryUnreserveShipmentItem(Sale\ShipmentItem $shipmentItem)
Definition: sale/lib/internals/catalog/provider.php:656
Bitrix\Main\ORM\Entity\$className
$className
Definition: main/lib/orm/entity.php:28
Bitrix\Sale\EventActions\ADD
const ADD
Definition: eventactions.php:8
Bitrix\Sale\ShipmentItem\addInternal
addInternal(array $data)
Definition: shipmentitem.php:1397
Bitrix\Sale\Registry\REGISTRY_TYPE_ORDER
const REGISTRY_TYPE_ORDER
Definition: sale/lib/registry.php:16
Bitrix\Main\ORM\Entity\$fields
$fields
Definition: main/lib/orm/entity.php:44
Bitrix\Sale\Internals\CollectableEntity\getCollection
getCollection()
Definition: collectableentity.php:46
Bitrix\Main\ORM\Entity\$primary
$primary
Definition: main/lib/orm/entity.php:35
Bitrix\Sale\ShipmentItem\$basketItem
$basketItem
Definition: shipmentitem.php:15
Bitrix\Sale\ShipmentItem\$shipmentItemStoreCollection
$shipmentItemStoreCollection
Definition: shipmentitem.php:18
Bitrix\Sale\Internals\CollectableEntity\isClone
isClone()
Definition: collectableentity.php:166
Bitrix\Main\ORM\Entity\getField
getField($name)
Definition: main/lib/orm/entity.php:537
Bitrix\Sale\Registry\getInstance
static getInstance($type)
Definition: sale/lib/registry.php:161
Bitrix\Sale\EventActions\UPDATE
const UPDATE
Definition: eventactions.php:9
Bitrix\Sale\Internals\Catalog\Provider\tryReserveShipmentItem
static tryReserveShipmentItem(Sale\ShipmentItem $shipmentItem, array $context=array())
Definition: sale/lib/internals/catalog/provider.php:489
Bitrix\Sale\ShipmentItem\isChanged
isChanged()
Definition: shipmentitem.php:1081
Bitrix\Sale\ShipmentItem\getShipmentItemStoreCollection
getShipmentItemStoreCollection()
Definition: shipmentitem.php:935
Bitrix\Sale\ShipmentItem\calculateDelivery
calculateDelivery()
Definition: shipmentitem.php:977
Bitrix\Sale\Registry\ENTITY_SHIPMENT_ITEM
const ENTITY_SHIPMENT_ITEM
Definition: sale/lib/registry.php:31
Bitrix\Sale\ShipmentItem\getQuantity
getQuantity()
Definition: shipmentitem.php:226
Bitrix\Main\EventResult\ERROR
const ERROR
Definition: main/lib/eventresult.php:8
Bitrix\Sale\ShipmentItem\getBasketItem
getBasketItem()
Definition: shipmentitem.php:922
Bitrix\Sale\Internals\CollectableEntity\isMathActionOnly
isMathActionOnly()
Definition: collectableentity.php:154
Bitrix\Sale\ShipmentItem\updateInternal
updateInternal($primary, array $data)
Definition: shipmentitem.php:1407
Bitrix\Sale\Internals\ShipmentItemTable\getMap
static getMap()
Returns entity map definition.
Definition: internals/shipmentitem.php:84
Bitrix\Sale\Internals\CollectableEntity\$collection
$collection
Definition: collectableentity.php:16
Bitrix\Sale\ShipmentItem\getReservedQuantity
getReservedQuantity()
Definition: shipmentitem.php:498
Bitrix\Sale\ShipmentItem\getBasketId
getBasketId()
Definition: shipmentitem.php:506
Bitrix\Sale\ShipmentItem\needReserve
needReserve()
Definition: shipmentitem.php:1358
Bitrix\Main\ORM\Entity\$name
$name
Definition: main/lib/orm/entity.php:32
Bitrix\Sale\ShipmentItem\loadBasketItem
loadBasketItem()
Definition: shipmentitem.php:884