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

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

 delete ()
 Deletes shipment item. Подробнее...
 
 getBasketId ()
 
 getQuantity ()
 
 getStoreId ()
 
 getBarcode ()
 
 getMarkingCode ()
 
 verify ()
 
 save ()
 
 getErrorEntity ($value)
 
 canAutoFixError ($value)
 
 getAutoFixErrorsList ()
 
 tryFixError ($code)
 
 canMarked ()
 
 getMarkField ()
 
- Открытые члены унаследованные от 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 ()
 
 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 getRegistryType ()
 
static getRegistryEntity ()
 
static create (ShipmentItemStoreCollection $collection, BasketItem $basketItem)
 
static loadForShipmentItem ($id)
 
static getList (array $parameters=array())
 
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)
 
 checkCallingContext ()
 
 callEventOnBeforeItemStoreEntitySaved ()
 
 callEventOnItemStoreEntitySaved ()
 
 addErrorMessagesToHistory ($errors)
 
 addChangesToHistory ($name, $oldValue=null, $value=null)
 
 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
- Защищенные члены унаследованные от Entity
 appendField (Field $field)
 
 getCacheDir ()
 

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

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

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

- Поля данных унаследованные от Entity
 $name
 
 $connectionName
 
 $dbTableName
 
 $primary
 
 $autoIncrement
 
 $isUts
 
 $isUtm
 
const DEFAULT_OBJECT_PREFIX = 'EO_'
 
- Защищенные данные унаследованные от CollectableEntity
 $collection
 
 $internalIndex = null
 
 $isClone = false
 
- Защищенные данные унаследованные от Entity
 $className
 
 $module
 
 $uf_id
 
 $fields
 
 $fieldsMap
 
 $u_fields
 
 $code
 
 $references
 
 $isClone = false
 
- Статические защищенные данные унаследованные от Entity
static $instances
 

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

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

Методы

◆ addChangesToHistory()

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

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

476  {
477  if ($this->getId() <= 0)
478  {
479  return;
480  }
481 
482  /** @var ShipmentItem $shipmentItem */
483  $shipmentItem = $this->getCollection()->getShipmentItem();
484 
485  /** @var ShipmentItemCollection $shipmentItemCollection */
486  $shipmentItemCollection = $shipmentItem->getCollection();
487 
488  $shipmentItemCollection->getShipment()->getOrder();
489 
490  $shipment = $shipmentItemCollection->getShipment();
491  if ($shipment->isSystem())
492  {
493  return;
494  }
495 
496  $basketItem = $shipmentItem->getBasketItem();
497 
498  $registry = Registry::getInstance(static::getRegistryType());
499 
500  /** @var OrderHistory $orderHistory */
501  $orderHistory = $registry->getOrderHistoryClassName();
502  $orderHistory::addField(
503  'SHIPMENT_ITEM_STORE',
504  $shipment->getOrder()->getId(),
505  $name,
506  $oldValue,
507  $value,
508  $this->getId(),
509  $this,
510  [
511  'NAME' => $basketItem->getField('NAME'),
512  'PRODUCT_ID' => $basketItem->getField('PRODUCT_ID'),
513  ]
514  );
515  }

◆ addErrorMessagesToHistory()

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

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

442  {
443  $registry = Registry::getInstance(static::getRegistryType());
444 
445  /** @var ShipmentItemStoreCollection $shipmentItemStoreCollection */
446  $shipmentItemStoreCollection = $this->getCollection();
447 
448  /** @var \Bitrix\Crm\Order\ShipmentItemCollection $shipmentItemCollection */
449  $shipmentItemCollection = $shipmentItemStoreCollection->getShipmentItem()->getCollection();
450 
451  $order = $shipmentItemCollection->getShipment()->getOrder();
452 
453  /** @var OrderHistory $orderHistory */
454  $orderHistory = $registry->getOrderHistoryClassName();
455  $orderHistory::addAction(
456  'SHIPMENT',
457  $order->getId(),
458  ($this->getId() > 0) ? 'SHIPMENT_ITEM_STORE_UPDATE_ERROR' : 'SHIPMENT_ITEM_STORE_ADD_ERROR',
459  ($this->getId() > 0) ? $this->getId() : null,
460  $this,
461  [
462  "ERROR" => $errors
463  ]
464  );
465  }

◆ addInternal()

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

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

598  {
599  return Internals\ShipmentItemStoreTable::add($data);
600  }

◆ callEventOnBeforeItemStoreEntitySaved()

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

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

411  {
412  /** @var Main\Entity\Event $event */
413  $event = new Main\Event('sale', 'OnBeforeSaleShipmentItemStoreEntitySaved', [
414  'ENTITY' => $this,
415  'VALUES' => $this->fields->getOriginalValues()
416  ]);
417 
418  $event->send();
419  }

◆ callEventOnItemStoreEntitySaved()

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

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

425  {
426  /** @var Main\Event $event */
427  $event = new Main\Event('sale', 'OnSaleShipmentItemStoreEntitySaved', [
428  'ENTITY' => $this,
429  'VALUES' => $this->fields->getOriginalValues(),
430  ]);
431 
432  $event->send();
433  }

◆ canAutoFixError()

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

Замещает IEntityMarker.

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

554  {
555  $errorsList = static::getAutoFixErrorsList();
556  return (is_array($errorsList) && in_array($value, $errorsList));
557  }

◆ canMarked()

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

Замещает IEntityMarker.

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

581  {
582  return false;
583  }

◆ checkCallingContext()

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

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

319  {
320  /** @var ShipmentItemStoreCollection $itemStoreCollection */
321  $itemStoreCollection = $this->getCollection();
322 
323  /** @var ShipmentItemCollection $itemCollection */
324  $itemCollection = $itemStoreCollection->getShipmentItem()->getCollection();
325 
326  /** @var ShipmentCollection $shipmentCollection */
327  $shipmentCollection = $itemCollection->getShipment()->getCollection();
328 
329  if (!$shipmentCollection->getOrder()->isSaveRunning())
330  {
331  trigger_error("Incorrect call to the save process. Use method save() on \Bitrix\Sale\Order entity", E_USER_WARNING);
332  }
333  }

◆ create()

static create ( ShipmentItemStoreCollection  $collection,
BasketItem  $basketItem 
)
static
Аргументы
ShipmentItemStoreCollection$collection
BasketItem$basketItem
Возвращает
mixed
Исключения
Main

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

71  {
72  $shipmentItemStore = static::createShipmentItemStoreObject();
73  $shipmentItemStore->setCollection($collection);
74 
75  $shipmentItem = $collection->getShipmentItem();
76  if ($shipmentItem)
77  {
78  $fields = array(
79  'ORDER_DELIVERY_BASKET_ID' => $collection->getShipmentItem()->getId(),
80  'BASKET_ID' => $shipmentItem->getBasketItem()->getId(),
81  );
82 
83  $shipmentItemStore->setFieldsNoDemand($fields);
84  }
85 
86  return $shipmentItemStore;
87 
88  }

◆ delete()

delete ( )

Deletes shipment item.

Исключения
Main

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

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

119  {
120  $result = new Result();
121 
122  /** @var array $oldEntityValues */
123  $oldEntityValues = $this->fields->getOriginalValues();
124 
125  /** @var Main\Event $event */
126  $event = new Main\Event('sale', "OnBeforeSaleShipmentItemStoreEntityDeleted", [
127  'ENTITY' => $this,
128  'VALUES' => $oldEntityValues,
129  ]);
130  $event->send();
131 
132  if ($event->getResults())
133  {
134  /** @var Main\EventResult $eventResult */
135  foreach ($event->getResults() as $eventResult)
136  {
137  if ($eventResult->getType() == Main\EventResult::ERROR)
138  {
139  $errorMsg = new ResultError(
140  Loc::getMessage('SALE_EVENT_ON_BEFORE_SALESHIPMENTITEMSTORE_ENTITY_DELETED_ERROR'),
141  'SALE_EVENT_ON_BEFORE_SALESHIPMENTITEMSTORE_ENTITY_DELETED_ERROR'
142  );
143  if ($eventResultData = $eventResult->getParameters())
144  {
145  if (isset($eventResultData) && $eventResultData instanceof ResultError)
146  {
147  /** @var ResultError $errorMsg */
148  $errorMsg = $eventResultData;
149  }
150  }
151 
152  $result->addError($errorMsg);
153  }
154  }
155 
156  if (!$result->isSuccess())
157  {
158  return $result;
159  }
160  }
161 
162  $r = parent::delete();
163  if (!$r->isSuccess())
164  {
165  $result->addErrors($r->getErrors());
166  }
167 
168  /** @var Main\Event $event */
169  $event = new Main\Event('sale', "OnSaleShipmentItemStoreEntityDeleted", array(
170  'ENTITY' => $this,
171  'VALUES' => $this->fields->getOriginalValues(),
172  ));
173  $event->send();
174 
175  if ($event->getResults())
176  {
177  /** @var Main\EventResult $eventResult */
178  foreach ($event->getResults() as $eventResult)
179  {
180  if ($eventResult->getType() == Main\EventResult::ERROR)
181  {
182  $errorMsg = new ResultError(
183  Loc::getMessage('SALE_EVENT_ON_SALESHIPMENTITEMSTORE_ENTITY_DELETED_ERROR'),
184  'SALE_EVENT_ON_SALESHIPMENTITEMSTORE_ENTITY_DELETED_ERROR'
185  );
186  if ($eventResultData = $eventResult->getParameters())
187  {
188  if (isset($eventResultData) && $eventResultData instanceof ResultError)
189  {
190  /** @var ResultError $errorMsg */
191  $errorMsg = $eventResultData;
192  }
193  }
194 
195  $result->addError($errorMsg);
196  }
197  }
198 
199  if (!$result->isSuccess())
200  {
201  return $result;
202  }
203  }
204 
205  return $result;
206  }
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29

◆ getAutoFixErrorsList()

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

Замещает IEntityMarker.

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

563  {
564  return array();
565  }

◆ getAvailableFields()

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

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

22  {
23  return array("ORDER_DELIVERY_BASKET_ID", "STORE_ID", "QUANTITY", "BARCODE", 'BASKET_ID', 'MARKING_CODE');
24  }

◆ getBarcode()

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

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

235  : string
236  {
237  return (string)$this->getField('BARCODE');
238  }

◆ getBasketId()

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

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

211  : int
212  {
213  return (int)$this->getField('BASKET_ID');
214  }

◆ getEntityEventName()

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

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

626  {
627  return 'SaleShipmentItemStore';
628  }

◆ getErrorEntity()

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

Замещает IEntityMarker.

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

535  {
536  static $className = null;
537  $errorsList = static::getAutoFixErrorsList();
538  if (is_array($errorsList) && in_array($value, $errorsList))
539  {
540  if ($className === null)
541  {
542  $className = static::getClassName();
543  }
544  }
545  return $className;
546  }

◆ getFieldsMap()

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

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

616  {
618  }
static getMap()
Returns entity map definition.

◆ getList()

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

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

525  {
526  return Sale\Internals\ShipmentItemStoreTable::getList($parameters);
527  }

◆ getMarkField()

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

Замещает IEntityMarker.

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

589  {
590  return null;
591  }

◆ getMarkingCode()

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

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

243  : string
244  {
245  return (string)$this->getField('MARKING_CODE');
246  }

◆ getMeaningfulFields()

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

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

30  {
31  return array();
32  }

◆ getQuantity()

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

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

219  : float
220  {
221  return (float)$this->getField('QUANTITY');
222  }

◆ getRegistryEntity()

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

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

59  {
61  }

◆ getRegistryType()

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

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

51  {
53  }

◆ getStoreId()

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

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

227  : int
228  {
229  return (int)$this->getField('STORE_ID');
230  }

◆ loadForShipmentItem()

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

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

257  {
258  if ((int)$id <= 0)
259  {
260  throw new Main\ArgumentNullException("id");
261  }
262 
263  $items = [];
264 
265  $itemDataList = static::getList([
266  'filter' => ['=ORDER_DELIVERY_BASKET_ID' => $id],
267  'order' => ['DATE_CREATE' => 'ASC', 'ID' => 'ASC']
268  ]);
269 
270  while ($itemData = $itemDataList->fetch())
271  {
272  $items[] = static::createShipmentItemStoreObject($itemData);
273  }
274 
275  return $items;
276  }

◆ onFieldModify()

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

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

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

99  {
100  global $USER;
101 
102  if (is_object($USER) && $USER->isAuthorized())
103  {
104  $this->setFieldNoDemand('MODIFIED_BY', $USER->GetID());
105  }
106 
107  $this->setFieldNoDemand('DATE_MODIFY', new Main\Type\DateTime());
108 
109  return parent::onFieldModify($name, $oldValue, $value);
110  }

◆ save()

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

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

344  {
345  $result = new Result();
346 
347  $this->checkCallingContext();
348 
349  if (!$this->isChanged() || $this->getQuantity() === 0)
350  {
351  return $result;
352  }
353 
355 
356  $id = $this->getId();
357 
358  if ($id > 0)
359  {
360  $r = $this->updateInternal($id, $this->getFields()->getChangedValues());
361  }
362  else
363  {
364  /** @var ShipmentItemStoreCollection $itemStoreCollection */
365  $itemStoreCollection = $this->getCollection();
366 
367  if (!$this->getField("ORDER_DELIVERY_BASKET_ID"))
368  {
369  $this->setFieldNoDemand('ORDER_DELIVERY_BASKET_ID', $itemStoreCollection->getShipmentItem()->getId());
370  }
371 
372  if (!$this->getField("BASKET_ID"))
373  {
374  $this->setFieldNoDemand('BASKET_ID', $itemStoreCollection->getShipmentItem()->getBasketItem()->getId());
375  }
376 
377  $this->setFieldNoDemand('DATE_CREATE', new Main\Type\DateTime());
378 
379  $r = $this->addInternal($this->getFields()->getValues());
380  if ($r->isSuccess())
381  {
382  $id = $r->getId();
383 
384  $this->setFieldNoDemand('ID', $id);
385  }
386  }
387 
388  if (!$r->isSuccess())
389  {
390  $this->addErrorMessagesToHistory($r->getErrorMessages());
391 
392  $result->addErrors($r->getErrors());
393 
394  return $result;
395  }
396 
397  if ($id > 0)
398  {
399  $result->setId($id);
400  }
401 
403 
404  return $result;
405  }
updateInternal($primary, array $data)

◆ tryFixError()

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

Замещает IEntityMarker.

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

573  {
574  return new Result();
575  }

◆ updateInternal()

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

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

608  {
609  return Internals\ShipmentItemStoreTable::update($primary, $data);
610  }

◆ verify()

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

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

284  {
285  $result = new Result();
286 
287  if ($this->getBarcode() === "")
288  {
289  /** @var ShipmentItemStoreCollection $itemStoreCollection */
290  $itemStoreCollection = $this->getCollection();
291 
292  /** @var BasketItem $itemCollection */
293  $basketItem = $itemStoreCollection->getShipmentItem()->getBasketItem();
294 
295  if ($basketItem->isBarcodeMulti())
296  {
297  $result->addError(
298  new ResultError(
300  'SHIPMENT_ITEM_STORE_BARCODE_MULTI_EMPTY',
301  [
302  '#PRODUCT_NAME#' => $basketItem->getField('NAME'),
303  '#STORE_ID#' => $this->getStoreId(),
304  ]
305  ),
306  'SHIPMENT_ITEM_STORE_BARCODE_MULTI_EMPTY'
307  )
308  );
309  }
310  }
311 
312  return $result;
313  }

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