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

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

 getShipmentCode ()
 
 setDeliveryService (Delivery\Services\Base $service)
 
 needReservation ()
 
 onShipmentItemCollectionModify ($action, ShipmentItem $shipmentItem, $name=null, $oldValue=null, $value=null)
 
 delete ()
 Deletes shipment. Подробнее...
 
 setField ($name, $value)
 Sets new value to specified field of shipment item. Подробнее...
 
 setFieldNoDemand ($name, $value)
 
 save ()
 
 getParentOrderId ()
 
 getOrder ()
 
 getShipmentItemCollection ()
 
 getPrice ()
 
 isCustomPrice ()
 
 getCurrency ()
 
 getDeliveryId ()
 
 getDeliveryName ()
 
 setOrderId ($orderId)
 
 getDelivery ()
 
 isSystem ()
 
 isCanceled ()
 
 isShipped ()
 
 getShippedDate ()
 
 getShippedUserId ()
 
 getUnshipReason ()
 
 isMarked ()
 
 isReserved ()
 
 isAllowDelivery ()
 
 isEmpty ()
 
 getAllowDeliveryDate ()
 
 getAllowDeliveryUserId ()
 
 getCompanyId ()
 
 tryReserve ()
 
 tryUnreserve ()
 
 tryShip ()
 
 tryUnship ()
 
 needShip ()
 
 deliver ()
 
 allowDelivery ()
 
 disallowDelivery ()
 
 onBeforeBasketItemDelete (BasketItem $basketItem)
 
 onBasketModify ($action, BasketItem $basketItem, $name=null, $oldValue=null, $value=null)
 
 getServiceParams ()
 
 setServiceParams (array $serviceParams)
 
 getExtraServices ()
 
 setExtraServices (array $extraServices)
 
 getStoreId ()
 
 setStoreId ($storeId)
 
 getWeight ()
 
 setWeight (float $weight)
 
 calculateDelivery ()
 
 resetData ()
 
 getBasketItemQuantity (BasketItem $basketItem)
 
 isExistBasketItem (BasketItem $basketItem)
 
 verify ()
 
 setAccountNumber ($id)
 
 getBusinessValueProviderInstance ($mapping)
 
 getPersonTypeId ()
 
 createClone (\SplObjectStorage $cloneEntity)
 
 getErrorEntity ($value)
 
 canAutoFixError ($value)
 
 getAutoFixErrorsList ()
 
 tryFixError ($code)
 
 canMarked ()
 
 getMarkField ()
 
 isChanged ()
 
 clearChanged ()
 
 getVatRate ()
 
 getVatSum ()
 
 setBasePriceDelivery ($value, $custom=false)
 
 toArray ()
 
 getParentOrder ()
 
- Открытые члены унаследованные от 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 ()
 
 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 getAvailableFields ()
 
static getCustomizableFields ()
 
static create (ShipmentCollection $collection, Delivery\Services\Base $service=null)
 
static getRegistryType ()
 
static updateReservedFlag (Shipment $shipment)
 
static deleteNoDemand ($orderId)
 
static loadForOrder ($id)
 
static createSystem (ShipmentCollection $collection, Delivery\Services\Base $deliveryService=null)
 
static getList (array $parameters)
 
static fixReserveErrors (Shipment $entity)
 
static fixShipErrors (Shipment $entity)
 
static getUfId ()
 
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=[])
 
 onBeforeSetFields (array $values)
 
 deleteDeliveryRequest ()
 
 checkValueBeforeSet ($name, $value)
 
 setDeliveryRequestMarker ()
 
 onAfterSave ($isNew)
 
 markSystem ()
 
 loadDeliveryService ()
 
 onFieldModify ($name, $oldValue, $value)
 
 syncQuantityAfterModify (BasketItem $basketItem, $value=null, $oldValue=null)
 
 saveExtraServices ()
 
 saveStoreId ()
 
 addChangesToHistory ($name, $oldValue=null, $value=null)
 
 setStatus ($status)
 
 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
- Защищенные члены унаследованные от Entity
 appendField (Field $field)
 
 getCacheDir ()
 

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

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

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

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

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

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

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

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

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

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

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

◆ __construct()

__construct ( array  $fields = [])
protected

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

45  {
46  $priceFields = ['BASE_PRICE_DELIVERY', 'PRICE_DELIVERY', 'DISCOUNT_PRICE'];
47 
48  foreach ($priceFields as $code)
49  {
50  if (isset($fields[$code]))
51  {
53  }
54  }
55 
57  }
static roundPrecision($value)
Definition: pricemaths.php:17
__construct(Base $connector)
Constructor.
Definition: resultview.php:40

Методы

◆ addChangesToHistory()

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

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

2196  {
2197  if ($this->getId() > 0 && !$this->isSystem())
2198  {
2199  $order = $this->getOrder();
2200 
2201  if ($order && $order->getId() > 0)
2202  {
2203  $registry = Registry::getInstance(static::getRegistryType());
2204 
2205  /** @var OrderHistory $orderHistory */
2206  $orderHistory = $registry->getOrderHistoryClassName();
2207  $orderHistory::addField(
2208  'SHIPMENT',
2209  $order->getId(),
2210  $name,
2211  $oldValue,
2212  $value,
2213  $this->getId(),
2214  $this
2215  );
2216  }
2217  }
2218  }

◆ addInternal()

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

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

2731  {
2732  return Internals\ShipmentTable::add($data);
2733  }

◆ allowDelivery()

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

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

1599  {
1600  return $this->setField('ALLOW_DELIVERY', "Y");
1601  }
setField($name, $value)
Sets new value to specified field of shipment item.
Definition: shipment.php:778

◆ calculateDelivery()

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

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

2148  {
2149  if ($this->isSystem())
2150  {
2151  throw new Main\NotSupportedException();
2152  }
2153 
2154  if ($this->getDeliveryId() === 0)
2155  {
2156  return new Delivery\CalculationResult();
2157  }
2158 
2159  return Delivery\Services\Manager::calculateDeliveryPrice($this);
2160  }

◆ canAutoFixError()

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

Замещает IEntityMarker.

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

2488  {
2489  $autoFix = false;
2490  $errorsList = static::getAutoFixErrorsList();
2491  if (is_array($errorsList) && in_array($value, $errorsList))
2492  {
2493  $autoFix = true;
2494  }
2495  else
2496  {
2497  /** @var ShipmentItemCollection $shipmentItemCollection */
2499  {
2500  $autoFix = $shipmentItemCollection->canAutoFixError($value);
2501  }
2502  }
2503 
2504  return $autoFix;
2505  }

◆ canMarked()

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

Замещает IEntityMarker.

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

2630  {
2631  return true;
2632  }

◆ checkValueBeforeSet()

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

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

823  {
824  $result = parent::checkValueBeforeSet($name, $value);
825 
826  if ($name === "DELIVERY_ID")
827  {
828  if (intval($value) > 0 && !Delivery\Services\Manager::isServiceExist($value))
829  {
830  $result->addError(
831  new ResultError(
832  Loc::getMessage('SALE_SHIPMENT_WRONG_DELIVERY_SERVICE'),
833  'SALE_SHIPMENT_WRONG_DELIVERY_SERVICE'
834  )
835  );
836  }
837  }
838  elseif ($name === 'ACCOUNT_NUMBER')
839  {
840  $dbRes = static::getList([
841  'select' => ['ID'],
842  'filter' => ['=ACCOUNT_NUMBER' => $value]
843  ]);
844 
845  if ($dbRes->fetch())
846  {
847  $result->addError(
848  new ResultError(
849  Loc::getMessage('SALE_SHIPMENT_ACCOUNT_NUMBER_EXISTS')
850  )
851  );
852  }
853  }
854 
855  return $result;
856  }
static getMessage($code, $replace=null, $language=null)
Returns translation by message code.
Definition: loc.php:29

◆ clearChanged()

clearChanged ( )

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

2662  {
2663  parent::clearChanged();
2664 
2666  {
2667  /** @var ShipmentItem $shipmentItem */
2668  foreach ($shipmentItemCollection as $shipmentItem)
2669  {
2670  $shipmentItem->clearChanged();
2671  }
2672  }
2673  }

◆ create()

static create ( ShipmentCollection  $collection,
Delivery\Services\Base  $service = null 
)
static
Аргументы
ShipmentCollection$collection
Delivery\Services\Base | null$service
Возвращает
mixed
Исключения
Main

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

199  {
201  $fields = [
202  'DATE_INSERT' => new Main\Type\DateTime(),
203  'DELIVERY_ID' => $emptyService['ID'],
204  'DELIVERY_NAME' => $emptyService['NAME'],
205  'ALLOW_DELIVERY' => 'N',
206  'DEDUCTED' => 'N',
207  'CUSTOM_PRICE_DELIVERY' => 'N',
208  'MARKED' => 'N',
209  'CANCELED' => 'N',
210  'SYSTEM' => 'N',
211  'XML_ID' => static::generateXmlId(),
212  'RESERVED' => 'N'
213  ];
214 
215  $registry = Registry::getInstance(static::getRegistryType());
216 
217  /** @var DeliveryStatus $deliveryStatusClassName */
218  $deliveryStatusClassName = $registry->getDeliveryStatusClassName();
219  $fields['STATUS_ID'] = $deliveryStatusClassName::getInitialStatus();
220 
221  $shipment = static::createShipmentObject();
222  $shipment->setFieldsNoDemand($fields);
223  $shipment->setCollection($collection);
224 
225  if ($service !== null)
226  {
227  $shipment->setDeliveryService($service);
228  }
229 
230  return $shipment;
231  }

◆ createClone()

createClone ( \SplObjectStorage  $cloneEntity)

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

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

2376  {
2377  if ($this->isClone() && $cloneEntity->contains($this))
2378  {
2379  return $cloneEntity[$this];
2380  }
2381 
2382  /** @var Shipment $shipmentClone */
2383  $shipmentClone = parent::createClone($cloneEntity);
2384 
2385  /** @var ShipmentItemCollection $shipmentItemCollection */
2387  {
2388  if (!$cloneEntity->contains($shipmentItemCollection))
2389  {
2390  $cloneEntity[$shipmentItemCollection] = $shipmentItemCollection->createClone($cloneEntity);
2391  }
2392 
2393  if ($cloneEntity->contains($shipmentItemCollection))
2394  {
2395  $shipmentClone->shipmentItemCollection = $cloneEntity[$shipmentItemCollection];
2396  }
2397  }
2398 
2399  /** @var Delivery\Services\Base $service */
2400  if ($service = $this->getDelivery())
2401  {
2402  if (!$cloneEntity->contains($service))
2403  {
2404  $cloneEntity[$service] = $service->createClone($cloneEntity);
2405  }
2406 
2407  if ($cloneEntity->contains($service))
2408  {
2409  $shipmentClone->service = $cloneEntity[$service];
2410  }
2411  }
2412 
2413  return $shipmentClone;
2414  }

◆ createSystem()

static createSystem ( ShipmentCollection  $collection,
Delivery\Services\Base  $deliveryService = null 
)
static

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

1248  {
1249  $shipment = static::create($collection, $deliveryService);
1250  $shipment->markSystem();
1251 
1252  if ($deliveryService === null)
1253  {
1254  $shipment->setFieldNoDemand('DELIVERY_ID', Delivery\Services\Manager::getEmptyDeliveryServiceId());
1255  }
1256 
1257  return $shipment;
1258  }

◆ delete()

delete ( )

Deletes shipment.

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

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

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

735  {
736  if ($this->isShipped())
737  {
738  $result = new Result();
739  return $result->addError(
740  new ResultError(
741  Loc::getMessage('SALE_SHIPMENT_EXIST_SHIPPED'),
742  'SALE_SHIPMENT_EXIST_SHIPPED'
743  )
744  );
745  }
746 
747  if (!$this->isSystem())
748  {
749  $this->setField('BASE_PRICE_DELIVERY', 0);
750  $this->disallowDelivery();
751  }
752 
753  $this->deleteDeliveryRequest();
754 
755  $this->getShipmentItemCollection()->clearCollection();
756 
757  return parent::delete();
758  }

◆ deleteDeliveryRequest()

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

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

764  {
765  Requests\Manager::onBeforeShipmentDelete($this);
766  }

◆ deleteInternal()

static deleteInternal (   $primary)
staticprotected
Аргументы
$primary
Возвращает
Entity\DeleteResult
Исключения
Main

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

2753  {
2754  return Internals\ShipmentTable::deleteWithItems($primary);
2755  }

◆ deleteNoDemand()

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

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

697  {
698  $result = new Result();
699 
700  $shipmentDataList = static::getList(
701  [
702  "filter" => ["=ORDER_ID" => $orderId],
703  "select" => ["ID"]
704  ]
705  );
706 
707  while ($shipment = $shipmentDataList->fetch())
708  {
709  $r = static::deleteInternal($shipment['ID']);
710  if ($r -> isSuccess())
711  {
713  }
714  else
715  {
716  $result->addErrors($r->getErrors());
717  }
718  }
719 
720  return $result;
721  }

◆ deliver()

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

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

1538  {
1539  $order = $this->getParentOrder();
1540  if (!$order)
1541  {
1542  throw new Main\ObjectNotFoundException('Entity "Order" not found');
1543  }
1544 
1545  $result = new Result();
1546 
1547  $context = array(
1548  'USER_ID' => $order->getUserId(),
1549  'SITE_ID' => $order->getSiteId(),
1550  );
1551 
1552  $creator = Internals\ProviderCreator::create($context);
1553 
1555 
1556  /** @var ShipmentItemCollection $shipmentItemCollection */
1558  {
1559  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
1560  }
1561 
1562  /** @var ShipmentItem $shipmentItem */
1563  foreach ($shipmentItemCollection as $shipmentItem)
1564  {
1565  $creator->addShipmentItem($shipmentItem);
1566  }
1567 
1568  $r = $creator->deliver();
1569  if ($r->isSuccess())
1570  {
1571  $r = $creator->createItemsResultAfterDeliver($r);
1572  if ($r->isSuccess())
1573  {
1574  $data = $r->getData();
1575  if (array_key_exists('RESULT_AFTER_DELIVER_LIST', $data))
1576  {
1577  $resultList = $data['RESULT_AFTER_DELIVER_LIST'];
1578  }
1579  }
1580  }
1581  else
1582  {
1583  $result->addErrors($r->getErrors());
1584  }
1585 
1586  if (!empty($resultList) && is_array($resultList))
1587  {
1588  Recurring::repeat($order, $resultList);
1589  }
1590 
1591  return $result;
1592  }
static repeat(Order $order, array $resultList)
Definition: recurring.php:26

◆ disallowDelivery()

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

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

1608  {
1609  return $this->setField('ALLOW_DELIVERY', "N");
1610  }

◆ fixReserveErrors()

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

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

2560  {
2561  $result = new Result();
2562 
2563  $r = $entity->tryReserve();
2564  if (!$r->isSuccess())
2565  {
2566  $result->addErrors($r->getErrors());
2567  }
2568  elseif ($r->hasWarnings())
2569  {
2570  $result->addWarnings($r->getWarnings());
2571  }
2572 
2573  return $result;
2574  }

◆ fixShipErrors()

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

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

2583  {
2584  $result = new Result();
2585 
2586  $r = $entity->setField('DEDUCTED', 'Y');
2587  if (!$r->isSuccess())
2588  {
2589  if (!$r->isSuccess())
2590  {
2591  $result->addErrors($r->getErrors());
2592  }
2593  }
2594 
2595  $r = $entity->tryShip();
2596  if (!$r->isSuccess())
2597  {
2598  if (!$r->isSuccess())
2599  {
2600  $result->addErrors($r->getErrors());
2601  }
2602  }
2603 
2604  return $result;
2605  }

◆ generateXmlId()

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

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

237  {
238  return uniqid('bx_');
239  }

◆ getAllowDeliveryDate()

getAllowDeliveryDate ( )
Возвращает
Main\Type\DateTime

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

1422  {
1423  return $this->getField('DATE_ALLOW_DELIVERY');
1424  }

◆ getAllowDeliveryUserId()

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

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

1430  {
1431  return (int)$this->getField('EMP_ALLOW_DELIVERY_ID');
1432  }

◆ getAutoFixErrorsList()

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

Замещает IEntityMarker.

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

2511  {
2512  return array_keys(static::getAutoFixRules());
2513  }

◆ getAutoFixRules()

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

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

2611  {
2612  return [
2613  'PROVIDER_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2614  'SALE_PROVIDER_RESERVE_SHIPMENT_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2615  'PROVIDER_UNRESERVE_SHIPMENT_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2616  'SALE_PROVIDER_RESERVE_SHIPMENT_ITEM_QUANTITY_NOT_ENOUGH' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2617 
2618  'SALE_PROVIDER_SHIPMENT_SHIPPED_LESS_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2619  'SALE_PROVIDER_SHIPMENT_SHIPPED_MORE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2620  'DDCT_DEDUCTION_QUANTITY_STORE_ERROR' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2621  'SALE_PROVIDER_SHIPMENT_QUANTITY_NOT_ENOUGH' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2622  'DDCT_DEDUCTION_QUANTITY_ERROR' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2623  ];
2624  }

◆ getAvailableFields()

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

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

83  {
84  return [
85  "STATUS_ID",
86  "BASE_PRICE_DELIVERY",
87  "PRICE_DELIVERY",
88  "EXPECTED_PRICE_DELIVERY",
89  "ALLOW_DELIVERY",
90  "DATE_ALLOW_DELIVERY",
91  "EMP_ALLOW_DELIVERY_ID",
92  "DEDUCTED",
93  "DATE_DEDUCTED",
94  "EMP_DEDUCTED_ID",
95  "REASON_UNDO_DEDUCTED",
96  "DELIVERY_ID",
97  "DELIVERY_DOC_NUM",
98  "DELIVERY_DOC_DATE",
99  "TRACKING_NUMBER",
100  "XML_ID",
101  "PARAMS",
102  "DELIVERY_NAME",
103  "COMPANY_ID",
104  "MARKED",
105  "WEIGHT",
106  "DATE_MARKED",
107  "EMP_MARKED_ID",
108  "REASON_MARKED",
109  "CANCELED",
110  "DATE_CANCELED",
111  "EMP_CANCELED_ID",
112  "RESPONSIBLE_ID",
113  "DATE_RESPONSIBLE_ID",
114  "EMP_RESPONSIBLE_ID",
115  "COMMENTS",
116  "CURRENCY",
117  "CUSTOM_PRICE_DELIVERY",
118  "UPDATED_1C",
119  "EXTERNAL_DELIVERY",
120  "VERSION_1C","ID_1C",
121  "TRACKING_STATUS",
122  "TRACKING_LAST_CHECK",
123  "TRACKING_DESCRIPTION",
124  "ACCOUNT_NUMBER",
125  'DISCOUNT_PRICE'
126  ];
127  }

◆ getBasketItemQuantity()

getBasketItemQuantity ( BasketItem  $basketItem)
Аргументы
BasketItem$basketItem
Возвращает
float|int
Исключения
Main

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

2182  {
2183  /** @var ShipmentItemCollection $shipmentItemCollection */
2185 
2186  return $shipmentItemCollection->getBasketItemQuantity($basketItem);
2187  }

◆ getBusinessValueProviderInstance()

getBusinessValueProviderInstance (   $mapping)
Аргументы
$mapping
Возвращает
Shipment|null|string

Замещает IBusinessValueProvider.

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

2318  {
2319  $providerInstance = null;
2320 
2321  if (is_array($mapping))
2322  {
2323  switch ($mapping['PROVIDER_KEY'])
2324  {
2325  case 'SHIPMENT': $providerInstance = $this; break;
2326  case 'COMPANY' : $providerInstance = $this->getField('COMPANY_ID'); break;
2327  default:
2328  $order = $this->getOrder();
2329  if ($order)
2330  {
2331  $providerInstance = $order->getBusinessValueProviderInstance($mapping);
2332  }
2333  }
2334  }
2335 
2336  return $providerInstance;
2337  }

◆ getCompanyId()

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

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

1438  {
1439  return (int)$this->getField('COMPANY_ID');
1440  }

◆ getCurrency()

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

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

1281  {
1282  return (string)$this->getField('CURRENCY');
1283  }

◆ getCustomizableFields()

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

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

132  : array
133  {
134  return ['PRICE_DELIVERY' => 'PRICE_DELIVERY', 'WEIGHT' => 'WEIGHT'];
135  }

◆ getDelivery()

getDelivery ( )
Возвращает
Delivery\Services\Base
Исключения
Main

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

1315  {
1316  if ($this->service === null)
1317  {
1318  $this->service = $this->loadDeliveryService();
1319  }
1320 
1321  return $this->service;
1322  }

◆ getDeliveryId()

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

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

1289  {
1290  return (int)$this->getField('DELIVERY_ID');
1291  }

◆ getDeliveryName()

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

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

1297  {
1298  return (string)$this->getField('DELIVERY_NAME');
1299  }

◆ getEntityEventName()

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

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

2806  {
2807  return 'SaleShipment';
2808  }

◆ getErrorEntity()

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

Замещает IEntityMarker.

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

2463  {
2464  $className = null;
2465  $errorsList = static::getAutoFixErrorsList();
2466  if (is_array($errorsList) && in_array($value, $errorsList))
2467  {
2468  $className = static::getClassName();
2469  }
2470  else
2471  {
2472  /** @var ShipmentItemCollection $shipmentItemCollection */
2474  {
2475  $className = $shipmentItemCollection->getErrorEntity($value);
2476  }
2477  }
2478 
2479  return $className;
2480  }

◆ getExtraServices()

getExtraServices ( )
Возвращает
null

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

2063  {
2064  if($this->extraServices === null)
2065  {
2066  $this->setExtraServices(
2067  Delivery\ExtraServices\Manager::getValuesForShipment(
2068  $this->getId(),
2069  $this->getDeliveryId()
2070  )
2071  );
2072  }
2073 
2074  return $this->extraServices;
2075  }
setExtraServices(array $extraServices)
Definition: shipment.php:2080

◆ getFieldsMap()

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

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

2761  {
2763  }
static getMap()
Returns entity map definition.

◆ getFixMethod()

static getFixMethod (   $code)
staticprotected
Аргументы
$code
Возвращает
mixed|null

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

2543  {
2544  $codeList = static::getAutoFixRules();
2545 
2546  if (!empty($codeList[$code]))
2547  {
2548  return $codeList[$code];
2549  }
2550  return null;
2551  }

◆ getList()

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

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

2361  {
2362  return Internals\ShipmentTable::getList($parameters);
2363  }

◆ getMarkField()

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

Замещает IEntityMarker.

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

2638  {
2639  return 'MARKED';
2640  }

◆ getMeaningfulFields()

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

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

170  {
171  return array('BASE_PRICE_DELIVERY', 'DELIVERY_ID');
172  }

◆ getOrder()

getOrder ( )
Возвращает
Order|null

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

1205  {
1206  return $this->getCollection()->getOrder();
1207  }

◆ getParentOrder()

getParentOrder ( )
Уст.:
Use getOrder instead
Возвращает
Order|null

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

2830  {
2831  return $this->getOrder();
2832  }

◆ getParentOrderId()

getParentOrderId ( )
Возвращает
bool|int

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

1191  {
1192  $order = $this->getParentOrder();
1193  if (!$order)
1194  {
1195  return false;
1196  }
1197 
1198  return $order->getId();
1199  }

◆ getPersonTypeId()

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

Замещает IBusinessValueProvider.

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

2343  {
2344  $order = $this->getOrder();
2345  if ($order)
2346  {
2347  return $order->getPersonTypeId();
2348  }
2349 
2350  return null;
2351  }

◆ getPrice()

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

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

1264  {
1265  return (float)$this->getField('PRICE_DELIVERY');
1266  }

◆ getRegistryEntity()

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

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

40  {
42  }

◆ getRegistryType()

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

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

258  {
260  }

◆ getServiceParams()

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

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

2043  {
2044  $params = $this->getField('PARAMS');
2045  return isset($params["SERVICE_PARAMS"]) ? $params["SERVICE_PARAMS"] : array();
2046  }

◆ getShipmentCode()

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

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

63  {
64  if ($this->internalId === 0)
65  {
66  if ($this->getId() > 0)
67  {
68  $this->internalId = $this->getId();
69  }
70  else
71  {
72  static::$idShipment++;
73  $this->internalId = static::$idShipment;
74  }
75  }
76  return $this->internalId;
77  }

◆ getShipmentItemCollection()

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

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

1216  {
1217  if (empty($this->shipmentItemCollection))
1218  {
1219  $registry = Registry::getInstance(static::getRegistryType());
1220 
1221  /** @var ShipmentItemCollection $itemCollectionClassName */
1222  $itemCollectionClassName = $registry->getShipmentItemCollectionClassName();
1223  $this->shipmentItemCollection = $itemCollectionClassName::load($this);
1224  }
1225 
1227  }

◆ getShippedDate()

getShippedDate ( )
Возвращает
Main\Type\DateTime

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

1366  {
1367  return $this->getField('DATE_DEDUCTED');
1368  }

◆ getShippedUserId()

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

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

1374  {
1375  return $this->getField('EMP_DEDUCTED_ID');
1376  }

◆ getStoreId()

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

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

2097  {
2098  if($this->storeId === null)
2099  {
2100  $this->setStoreId(
2101  Delivery\ExtraServices\Manager::getStoreIdForShipment(
2102  $this->getId(),
2103  $this->getDeliveryId()
2104  ));
2105  }
2106 
2107  return $this->storeId;
2108  }
setStoreId($storeId)
Definition: shipment.php:2113

◆ getUfId()

static getUfId ( )
static
Возвращает
null

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

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

2769  {
2770  return Internals\ShipmentTable::getUfId();
2771  }

◆ getUnshipReason()

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

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

1382  {
1383  return (string)$this->getField('REASON_UNDO_DEDUCTED');
1384  }

◆ getVatRate()

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

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

2684  {
2685  $vatRate = 0;
2686 
2687  $service = $this->getDelivery();
2688  if ($service)
2689  {
2690  if (!Main\Loader::includeModule('catalog'))
2691  {
2692  return $vatRate;
2693  }
2694 
2695  $vatId = $service->getVatId();
2696  if ($vatId <= 0)
2697  {
2698  return $vatRate;
2699  }
2700 
2701  $dbRes = VatTable::getById($vatId);
2702  $vatInfo = $dbRes->fetch();
2703  if ($vatInfo)
2704  {
2705  $vatRate = $vatInfo['RATE'] / 100;
2706  }
2707  }
2708 
2709  return $vatRate;
2710  }
static includeModule($moduleName)
Includes a module by its name.

◆ getVatSum()

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

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

2718  {
2719  $vatRate = $this->getVatRate();
2720  $price = $this->getPrice() * $vatRate / (1 + $vatRate);
2721 
2722  return PriceMaths::roundPrecision($price);
2723  }

◆ getWeight()

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

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

2129  : float
2130  {
2131  return (float)$this->getField('WEIGHT');
2132  }

◆ isAllowDelivery()

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

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

1406  {
1407  return $this->getField('ALLOW_DELIVERY') === "Y";
1408  }

◆ isCanceled()

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

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

1350  {
1351  return $this->getField('CANCELED') === 'Y';
1352  }

◆ isChanged()

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

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

2649  {
2650  if (parent::isChanged())
2651  {
2652  return true;
2653  }
2654 
2655  return $this->getShipmentItemCollection()->isChanged();
2656  }

◆ isCustomPrice()

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

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

1273  {
1274  return $this->isMarkedFieldCustom('PRICE_DELIVERY');
1275  }

◆ isEmpty()

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

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

1414  {
1415  return $this->getShipmentItemCollection()->isEmpty();
1416  }

◆ isExistBasketItem()

isExistBasketItem ( BasketItem  $basketItem)
Аргументы
BasketItem$basketItem
Возвращает
bool
Исключения
Main

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

2227  {
2228  /** @var ShipmentItemCollection $shipmentItemCollection */
2230  {
2231  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
2232  }
2233 
2234  return $shipmentItemCollection->isExistBasketItem($basketItem);
2235  }

◆ isMarked()

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

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

1390  {
1391  return $this->getField('MARKED') === "Y";
1392  }

◆ isReserved()

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

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

1398  {
1399  return $this->getField('RESERVED') === "Y";
1400  }

◆ isShipped()

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

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

1358  {
1359  return $this->getField('DEDUCTED') === 'Y';
1360  }

◆ isSystem()

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

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

1344  {
1345  return $this->getField('SYSTEM') === 'Y';
1346  }

◆ loadDeliveryService()

loadDeliveryService ( )
protected
Возвращает
Delivery\Services\Base
Исключения
Main

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

1330  {
1331  if ($deliveryId = $this->getDeliveryId())
1332  {
1333  return Delivery\Services\Manager::getObjectById($deliveryId);
1334  }
1335 
1336  return null;
1337  }

◆ loadForOrder()

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

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

901  {
902  if (intval($id) <= 0)
903  {
904  throw new Main\ArgumentNullException("id");
905  }
906 
907  $shipments = [];
908 
909  $shipmentDataList = static::getList([
910  'filter' => [
911  'ORDER_ID' => $id
912  ],
913  'order' => [
914  'SYSTEM' => 'ASC',
915  'DATE_INSERT' => 'ASC',
916  'ID' => 'ASC'
917  ]
918  ]);
919  while ($shipmentData = $shipmentDataList->fetch())
920  {
921  $shipments[] = static::createShipmentObject($shipmentData);
922  }
923 
924 
925  return $shipments;
926  }

◆ markSystem()

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

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

1234  {
1235  $this->setFieldNoDemand("SYSTEM", 'Y');
1236  }
setFieldNoDemand($name, $value)
Definition: shipment.php:867

◆ needReservation()

needReservation ( )

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

270  {
272 
273  if ($condition === Configuration::RESERVE_ON_CREATE)
274  {
275  return true;
276  }
277 
278  if ($condition === Configuration::RESERVE_ON_PAY
279  || $condition === Configuration::RESERVE_ON_FULL_PAY)
280  {
281  $order = $this->getOrder();
282  if ($condition === Configuration::RESERVE_ON_FULL_PAY)
283  {
284  return $order->isPaid();
285  }
286 
287  /** @var PaymentCollection $paymentCollection */
288  if (!$paymentCollection = $order->getPaymentCollection())
289  {
290  throw new Main\ObjectNotFoundException('Entity "PaymentCollection" not found');
291  }
292 
293  return $paymentCollection->hasPaidPayment();
294  }
295 
296  if ($this->isSystem())
297  {
298  return false;
299  }
300 
301  return (($condition === Configuration::RESERVE_ON_ALLOW_DELIVERY) && $this->isAllowDelivery()
302  || ($condition === Configuration::RESERVE_ON_SHIP) && $this->isShipped());
303  }
static getProductReservationCondition()
Returns current reservation condition.

◆ needShip()

needShip ( )

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

1516  {
1517  if ($this->fields->isChanged('DEDUCTED'))
1518  {
1519  if ($this->getField('DEDUCTED') === "Y")
1520  {
1521  return true;
1522  }
1523  elseif ($this->getField('DEDUCTED') === "N" && $this->getId() != 0)
1524  {
1525  return false;
1526  }
1527  }
1528 
1529  return null;
1530  }

◆ onAfterSave()

onAfterSave (   $isNew)
protected
Аргументы
$isNew
Возвращает
void

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

1183  {
1184  return;
1185  }

◆ onBasketModify()

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

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

1656  {
1657  $result = new Result();
1658 
1659  if ($action === EventActions::ADD)
1660  {
1661  if (!$this->isSystem())
1662  {
1663  return $result;
1664  }
1665 
1666  return $this->getShipmentItemCollection()->onBasketModify($action, $basketItem, $name, $oldValue, $value);
1667  }
1668  elseif ($action === EventActions::UPDATE)
1669  {
1670  if ($name === "QUANTITY")
1671  {
1672  if ($this->isSystem())
1673  {
1674  return $this->syncQuantityAfterModify($basketItem, $value, $oldValue);
1675  }
1676 
1677  /** @var ShipmentItemCollection $shipmentItemCollection */
1679 
1680  $r = $shipmentItemCollection->onBasketModify($action, $basketItem, $name, $oldValue, $value);
1681 
1682  if (
1683  $r->isSuccess()
1684  && !$this->isCustomPrice()
1685  )
1686  {
1687  /** @var Delivery\CalculationResult $deliveryCalculate */
1688  $deliveryCalculate = $this->calculateDelivery();
1689  if ($deliveryCalculate->isSuccess())
1690  {
1691  $this->setField('BASE_PRICE_DELIVERY', $deliveryCalculate->getPrice());
1692  }
1693  else
1694  {
1695  $result->addWarnings($deliveryCalculate->getErrors());
1696  }
1697  }
1698  }
1699  elseif ($name === 'WEIGHT')
1700  {
1701  if (!$this->isMarkedFieldCustom('WEIGHT'))
1702  {
1703  if ($this->getShipmentItemCollection()->isExistBasketItem($basketItem))
1704  {
1705  $this->setField('WEIGHT', $this->getShipmentItemCollection()->getWeight());
1706  }
1707  }
1708  }
1709  elseif ($name === 'PRICE')
1710  {
1711  if (!$this->isMarkedFieldCustom('BASE_PRICE_DELIVERY'))
1712  {
1713  if ($this->getShipmentItemCollection()->isExistBasketItem($basketItem))
1714  {
1715  $r = $this->calculateDelivery();
1716  if ($r->isSuccess())
1717  {
1718  $this->setField('BASE_PRICE_DELIVERY', $r->getPrice());
1719  }
1720  else
1721  {
1722  $result->addErrors($r->getErrors());
1723  }
1724  }
1725  }
1726  }
1727  }
1728 
1729  return $result;
1730  }
syncQuantityAfterModify(BasketItem $basketItem, $value=null, $oldValue=null)
Definition: shipment.php:1937
isExistBasketItem(BasketItem $basketItem)
Definition: shipment.php:2226

◆ onBeforeBasketItemDelete()

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

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

1623  {
1624  $result = new Result();
1625 
1627  $r = $shipmentItemCollection->onBeforeBasketItemDelete($basketItem);
1628  if (!$r->isSuccess())
1629  {
1630  return $result->addErrors($r->getErrors());
1631  }
1632 
1633  if ($this->isSystem())
1634  {
1635  return $this->syncQuantityAfterModify($basketItem);
1636  }
1637 
1638  return $result;
1639  }

◆ onBeforeSetFields()

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

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

142  {
143  if (isset($values['DEDUCTED']))
144  {
145  if ($this->getField('DEDUCTED') === 'Y')
146  {
147  if ($values['DEDUCTED'] === 'N')
148  {
149  $values = ['DEDUCTED' => $values['DEDUCTED']] + $values;
150  }
151  }
152  else
153  {
154  if ($values['DEDUCTED'] === 'Y')
155  {
156  // move to the end of array
157  unset($values['DEDUCTED']);
158  $values['DEDUCTED'] = 'Y';
159  }
160  }
161  }
162 
163  return $values;
164  }

◆ onFieldModify()

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

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

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

1744  {
1745  global $USER;
1746 
1747  $result = new Result();
1748 
1749  if ($name === "MARKED")
1750  {
1751  if ($oldValue != "Y")
1752  {
1753  $this->setField('DATE_MARKED', new Main\Type\DateTime());
1754 
1755  if (is_object($USER))
1756  {
1757  $this->setField('EMP_MARKED_ID', $USER->GetID());
1758  }
1759  }
1760  elseif ($value === "N")
1761  {
1762  $this->setField('REASON_MARKED', '');
1763  }
1764  }
1765  elseif ($name === "ALLOW_DELIVERY")
1766  {
1767  $this->setField('DATE_ALLOW_DELIVERY', new Main\Type\DateTime());
1768 
1769  if (is_object($USER))
1770  {
1771  $this->setField('EMP_ALLOW_DELIVERY_ID', $USER->GetID());
1772  }
1773 
1774  if ($oldValue === 'N')
1775  {
1776  $shipmentStatus = Main\Config\Option::get('sale', 'shipment_status_on_allow_delivery', '');
1777 
1778  $registry = Registry::getInstance(static::getRegistryType());
1779  /** @var DeliveryStatus $deliveryStatus */
1780  $deliveryStatusClassName = $registry->getDeliveryStatusClassName();
1781 
1782  if (strval($shipmentStatus) != '' && $this->getField('STATUS_ID') != $deliveryStatusClassName::getFinalStatus())
1783  {
1784  $r = $this->setStatus($shipmentStatus);
1785  if (!$r->isSuccess())
1786  {
1787  $result->addErrors($r->getErrors());
1788  }
1789  }
1790  }
1791 
1793  's'.$this->getInternalIndex(),
1795  [
1796  'ENTITY' => $this,
1797  'VALUES' => $this->fields->getOriginalValues()
1798  ]
1799  );
1800  }
1801  elseif ($name === "DEDUCTED")
1802  {
1803  $this->setField('DATE_DEDUCTED', new Main\Type\DateTime());
1804 
1805  if (is_object($USER))
1806  {
1807  $this->setField('EMP_DEDUCTED_ID', $USER->GetID());
1808  }
1809 
1810  if ($oldValue === 'N')
1811  {
1812  $shipmentStatus = Main\Config\Option::get('sale', 'shipment_status_on_shipped', '');
1813 
1814  $registry = Registry::getInstance(static::getRegistryType());
1815  /** @var DeliveryStatus $deliveryStatus */
1816  $deliveryStatusClassName = $registry->getDeliveryStatusClassName();
1817 
1818  if (strval($shipmentStatus) != '' && $this->getField('STATUS_ID') != $deliveryStatusClassName::getFinalStatus())
1819  {
1820  $r = $this->setStatus($shipmentStatus);
1821  if (!$r->isSuccess())
1822  {
1823  $result->addErrors($r->getErrors());
1824  }
1825  }
1826  }
1827 
1828  if ($value === 'Y')
1829  {
1830  /** @var ShipmentItem $shipmentItem */
1831  foreach ($this->getShipmentItemCollection() as $shipmentItem)
1832  {
1833  $r = $shipmentItem->checkMarkingCodeOnDeducted();
1834  if (!$r->isSuccess())
1835  {
1836  $result->addErrors($r->getErrors());
1837  }
1838  }
1839  }
1840 
1842  's'.$this->getInternalIndex(),
1844  [
1845  'ENTITY' => $this,
1846  'VALUES' => $this->fields->getOriginalValues()
1847  ]
1848  );
1849 
1850  Cashbox\Internals\Pool::addDoc($this->getOrder()->getInternalId(), $this);
1851  }
1852  elseif ($name === "STATUS_ID")
1853  {
1854  $event = new Main\Event(
1855  'sale',
1857  [
1858  'ENTITY' => $this,
1859  'VALUE' => $value,
1860  'OLD_VALUE' => $oldValue,
1861  ]
1862  );
1863  $event->send();
1864 
1866  's'.$this->getInternalIndex(),
1868  [
1869  'ENTITY' => $this,
1870  'VALUE' => $value,
1871  'OLD_VALUE' => $oldValue,
1872  ]
1873  );
1874 
1876  's'.$this->getInternalIndex(),
1878  [
1879  'ENTITY' => $this,
1880  'VALUE' => $value,
1881  'OLD_VALUE' => $oldValue,
1882  ]
1883  );
1884  }
1885  elseif ($name === 'RESPONSIBLE_ID')
1886  {
1887  $this->setField('DATE_RESPONSIBLE_ID', new Main\Type\DateTime());
1888  }
1889  elseif ($name === 'TRACKING_NUMBER')
1890  {
1891  if ($value)
1892  {
1894  's'.$this->getInternalIndex(),
1896  [
1897  'ENTITY' => $this,
1898  'VALUES' => $this->getFields()->getOriginalValues(),
1899  ]
1900  );
1901  }
1902  }
1903 
1904 
1905  $r = parent::onFieldModify($name, $oldValue, $value);
1906  if (!$r->isSuccess())
1907  {
1908  $result->addErrors($r->getErrors());
1909  }
1910 
1911  if ($r->hasWarnings())
1912  {
1913  $result->addWarnings($r->getWarnings());
1914  }
1915 
1916  if (($resultData = $r->getData()) && !empty($resultData))
1917  {
1918  $result->addData($resultData);
1919  }
1920 
1921  return $result;
1922  }
static get($moduleId, $name, $default="", $siteId=false)
Returns a value of an option.
const EVENT_ON_BEFORE_SHIPMENT_STATUS_CHANGE
const EVENT_ON_SHIPMENT_TRACKING_NUMBER_CHANGE
const EVENT_ON_SHIPMENT_STATUS_CHANGE_SEND_MAIL
static addEvent(Order $order, $type, $event)
Definition: eventspool.php:24

◆ onShipmentItemCollectionModify()

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

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

636  {
637  if ($action != EventActions::UPDATE)
638  {
639  return new Result();
640  }
641 
642  if ($this->isSystem()
643  && $name != 'RESERVED_QUANTITY'
644  )
645  {
646  throw new Main\NotSupportedException(Loc::getMessage('SALE_SHIPMENT_SYSTEM_SHIPMENT_CHANGE'));
647  }
648 
649  if ($name === "QUANTITY")
650  {
651  $result = $this->transferItem2SystemShipment($shipmentItem, $oldValue - $value);
652 
653  if (!$this->isMarkedFieldCustom('WEIGHT'))
654  {
655  $this->setField(
656  'WEIGHT',
658  );
659  }
660 
661  return $result;
662  }
663  elseif ($name === 'RESERVED_QUANTITY')
664  {
665  $order = $this->getParentOrder();
666  if ($order &&
667  !Internals\ActionEntity::isTypeExists(
668  $order->getInternalId(),
670  )
671  )
672  {
674  $order->getInternalId(),
676  [
677  'METHOD' => 'Bitrix\Sale\ShipmentCollection::updateReservedFlag',
678  'PARAMS' => [$this->getCollection()]
679  ]
680  );
681  }
682  }
683 
684  return new Result();
685  }
static add($code, $type, $value)
Definition: poolbase.php:51
static isTypeExists($code, $type)
Definition: poolbase.php:76

◆ resetData()

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

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

2167  {
2168  if (!$this->isCustomPrice())
2169  {
2170  $this->setField('BASE_PRICE_DELIVERY', 0);
2171  }
2172  }

◆ save()

save ( )

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

939  {
940  $this->checkCallingContext();
941 
942  $result = new Result();
943 
944  $id = $this->getId();
945  $isNew = ($this->getId() === 0);
946 
947  $this->callEventOnBeforeEntitySaved();
948 
949  if ($id > 0)
950  {
951  $r = $this->update();
952  }
953  else
954  {
955  $r = $this->add();
956 
957  if ($r->getId() > 0)
958  {
959  $id = $r->getId();
960  }
961  }
962 
963  if (!$r->isSuccess())
964  {
965  $result->addErrors($r->getErrors());
966  return $result;
967  }
968 
969  if ($id > 0)
970  {
971  $result->setId($id);
972 
974  $controller->save($this);
975  }
976 
977  if (!$this->isSystem())
978  {
979  $this->saveExtraServices();
980  $this->saveStoreId();
981  }
982 
983  $this->callEventOnEntitySaved();
984 
985  $this->callDelayedEvents();
986 
988  $r = $shipmentItemCollection->save();
989  if (!$r->isSuccess())
990  {
991  $result->addErrors($r->getErrors());
992  return $result;
993  }
994 
995  if (!$this->isSystem())
996  {
997  $registry = Registry::getInstance(static::getRegistryType());
998 
999  /** @var OrderHistory $orderHistory */
1000  $orderHistory = $registry->getOrderHistoryClassName();
1001  $orderHistory::collectEntityFields('SHIPMENT', $this->getParentOrderId(), $id);
1002  }
1003 
1004  $this->onAfterSave($isNew);
1005 
1006  return $result;
1007  }

◆ saveExtraServices()

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

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

2089  {
2090  return Delivery\ExtraServices\Manager::saveValuesForShipment($this->getId(), $this->getExtraServices());
2091  }

◆ saveStoreId()

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

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

2122  {
2123  return Delivery\ExtraServices\Manager::saveStoreIdForShipment($this->getId(), $this->getDeliveryId(), $this->getStoreId());
2124  }

◆ setAccountNumber()

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

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

2282  {
2283  $result = new Result();
2284  $accountNumber = null;
2285  $id = intval($id);
2286  if ($id <= 0)
2287  {
2288  $result->addError(new ResultError(Loc::getMessage('SALE_PAYMENT_GENERATE_ACCOUNT_NUMBER_ORDER_NUMBER_WRONG_ID'), 'SALE_PAYMENT_GENERATE_ACCOUNT_NUMBER_ORDER_NUMBER_WRONG_ID'));
2289  return $result;
2290  }
2291 
2293 
2294  try
2295  {
2296  /** @var \Bitrix\Sale\Result $r */
2297  $r = static::updateInternal($id, array("ACCOUNT_NUMBER" => $value));
2298  $res = $r->isSuccess(true);
2299  }
2300  catch (Main\DB\SqlQueryException $exception)
2301  {
2302  $res = false;
2303  }
2304 
2305  if ($res)
2306  {
2307  $this->setFieldNoDemand('ACCOUNT_NUMBER', $value);
2308  }
2309 
2310  return $result;
2311  }
static generateForShipment(CollectableEntity $item)

◆ setBasePriceDelivery()

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

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

2783  {
2784  $result = new Result();
2785 
2786  if ($custom === true)
2787  {
2788  $this->markFieldCustom('PRICE_DELIVERY');
2789  }
2790 
2791  $r = $this->setField('BASE_PRICE_DELIVERY', $value);
2792  if (!$r->isSuccess())
2793  {
2794  $result->addErrors($r->getErrors());
2795  }
2796 
2797  return $result;
2798  }

◆ setDeliveryRequestMarker()

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

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

1117  {
1118  $order = $this->getParentOrder();
1119 
1120  Requests\Manager::onBeforeShipmentSave($order, $this);
1121  }

◆ setDeliveryService()

setDeliveryService ( Delivery\Services\Base  $service)
Аргументы
Delivery\Services\Base$service
Исключения
Main

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

181  {
182  $this->service = $service;
183 
184  $result = $this->setField("DELIVERY_ID", $service->getId());
185  if ($result->isSuccess())
186  {
187  $this->setField("DELIVERY_NAME", $service->getName());
188  }
189  }

◆ setExtraServices()

setExtraServices ( array  $extraServices)
Аргументы
array$extraServices

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

2081  {
2082  $this->extraServices = $extraServices;
2083  }

◆ setField()

setField (   $name,
  $value 
)

Sets new value to specified field of shipment item.

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

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

779  {
780  if ($this->isSystem())
781  {
782  throw new Main\NotSupportedException();
783  }
784 
785  if ($name === "REASON_MARKED" && mb_strlen($value) > 255)
786  {
787  $value = mb_substr($value, 0, 255);
788  }
789 
790  $priceFields = [
791  'BASE_PRICE_DELIVERY' => 'BASE_PRICE_DELIVERY',
792  'PRICE_DELIVERY' => 'PRICE_DELIVERY',
793  'DISCOUNT_PRICE' => 'DISCOUNT_PRICE',
794  ];
795  if (isset($priceFields[$name]))
796  {
797  $value = PriceMaths::roundPrecision($value);
798  }
799 
800  if ($name === 'CUSTOM_PRICE_DELIVERY')
801  {
802  if ($value === 'Y')
803  {
804  $this->markFieldCustom('PRICE_DELIVERY');
805  }
806  else
807  {
808  $this->unmarkFieldCustom('PRICE_DELIVERY');
809  }
810  }
811 
812  return parent::setField($name, $value);
813  }

◆ setFieldNoDemand()

setFieldNoDemand (   $name,
  $value 
)

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

868  {
869  $priceFields = [
870  'BASE_PRICE_DELIVERY' => 'BASE_PRICE_DELIVERY',
871  'PRICE_DELIVERY' => 'PRICE_DELIVERY',
872  'DISCOUNT_PRICE' => 'DISCOUNT_PRICE',
873  ];
874  if (isset($priceFields[$name]))
875  {
876  $value = PriceMaths::roundPrecision($value);
877  }
878 
879  if ($name === 'CUSTOM_PRICE_DELIVERY')
880  {
881  if ($value === 'Y')
882  {
883  $this->markFieldCustom('PRICE_DELIVERY');
884  }
885  else
886  {
887  $this->unmarkFieldCustom('PRICE_DELIVERY');
888  }
889  }
890 
891  parent::setFieldNoDemand($name, $value);
892  }

◆ setOrderId()

setOrderId (   $orderId)
Аргументы
$orderId

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

1305  {
1306  $this->setField('ORDER_ID', $orderId);
1307  }

◆ setServiceParams()

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

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

2053  {
2054  $params = $this->getField('PARAMS');
2055  $params["SERVICE_PARAMS"] = $serviceParams;
2056  $this->setField("PARAMS", $params);
2057  }

◆ setStatus()

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

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

2425  {
2426  global $USER;
2427 
2428  $result = new Result();
2429 
2430  $registry = Registry::getInstance(static::getRegistryType());
2431  /** @var DeliveryStatus $deliveryStatus */
2432  $deliveryStatusClassName = $registry->getDeliveryStatusClassName();
2433 
2434  if (is_object($USER) && $USER->isAuthorized())
2435  {
2436  $statusesList = $deliveryStatusClassName::getAllowedUserStatuses($USER->getID(), $this->getField('STATUS_ID'));
2437  }
2438  else
2439  {
2440  $statusesList = $deliveryStatusClassName::getAllStatuses();
2441  }
2442 
2443  if($this->getField('STATUS_ID') != $status && array_key_exists($status, $statusesList))
2444  {
2445  /** @var Result $r */
2446  $r = $this->setField('STATUS_ID', $status);
2447  if (!$r->isSuccess())
2448  {
2449  $result->addErrors($r->getErrors());
2450  return $result;
2451  }
2452  }
2453 
2454  return $result;
2455  }

◆ setStoreId()

setStoreId (   $storeId)
Аргументы
$storeId

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

2114  {
2115  $this->storeId = (int)$storeId;
2116  }

◆ setWeight()

setWeight ( float  $weight)
Аргументы
float$weight
Возвращает
string|null

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

2139  {
2140  return $this->setField('WEIGHT', $weight);
2141  }

◆ syncQuantityAfterModify()

syncQuantityAfterModify ( BasketItem  $basketItem,
  $value = null,
  $oldValue = null 
)
protected

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

1938  {
1939  $result = new Result();
1940 
1941  /** @var ShipmentItemCollection $shipmentItemCollection */
1943  {
1944  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
1945  }
1946 
1947  $shipmentItem = $shipmentItemCollection->getItemByBasketCode($basketItem->getBasketCode());
1948 
1949  if ($value === 0)
1950  {
1951  if ($shipmentItem !== null)
1952  {
1953  $shipmentItem->setFieldNoDemand('QUANTITY', 0);
1954  }
1955 
1956  return $result;
1957  }
1958 
1959  if ($shipmentItem === null)
1960  {
1961  $shipmentItem = $shipmentItemCollection->createItem($basketItem);
1962  }
1963 
1964  $deltaQuantity = $value - $oldValue;
1965 
1966 
1967  /** @var Basket $basket */
1968  $basket = $basketItem->getCollection();
1969  if (!$basket)
1970  {
1971  throw new Main\ObjectNotFoundException('Entity "Basket" not found');
1972  }
1973 
1974  /** @var Order $order */
1975  $order = $basket->getOrder();
1976  if (!$order)
1977  {
1978  throw new Main\ObjectNotFoundException('Entity "Order" not found');
1979  }
1980 
1981  $context = [
1982  'USER_ID' => $order->getUserId(),
1983  'SITE_ID' => $order->getSiteId(),
1984  'CURRENCY' => $order->getCurrency(),
1985  ];
1986 
1987  if ($deltaQuantity > 0) // plus
1988  {
1989  $shipmentItem->setFieldNoDemand(
1990  "QUANTITY",
1991  $shipmentItem->getField("QUANTITY") + $deltaQuantity
1992  );
1993 
1994  if ($this->needReservation())
1995  {
1996  /** @var Result $tryReserveResult */
1997  Internals\Catalog\Provider::tryReserveShipmentItem($shipmentItem, $context);
1998  }
1999  }
2000  else // minus
2001  {
2002  if (floatval($shipmentItem->getField("QUANTITY")) <= 0)
2003  {
2004  return new Result();
2005  }
2006 
2007  if ($value != 0 && roundEx($shipmentItem->getField("QUANTITY"), SALE_VALUE_PRECISION) < roundEx(-$deltaQuantity, SALE_VALUE_PRECISION))
2008  {
2009  $result->addError(
2010  new ResultError(
2011  str_replace(
2012  array("#NAME#", "#QUANTITY#", "#DELTA_QUANTITY#"),
2013  array($basketItem->getField("NAME"), $shipmentItem->getField("QUANTITY"), abs($deltaQuantity)),
2014  Loc::getMessage('SALE_SHIPMENT_SYSTEM_QUANTITY_ERROR')
2015  ),
2016  'SALE_SHIPMENT_SYSTEM_QUANTITY_ERROR'
2017  )
2018  );
2019  return $result;
2020  }
2021 
2022  if ($value > 0)
2023  {
2024  $shipmentItem->setFieldNoDemand(
2025  "QUANTITY",
2026  $shipmentItem->getField("QUANTITY") + $deltaQuantity
2027  );
2028  if ($this->needReservation())
2029  {
2030  Internals\Catalog\Provider::tryReserveShipmentItem($shipmentItem, $context);
2031  }
2032  }
2033 
2034  }
2035 
2036  return $result;
2037  }
static tryReserveShipmentItem(Sale\ShipmentItem $shipmentItem, array $context=array())

◆ toArray()

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

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

2815  : array
2816  {
2817  $result = parent::toArray();
2818 
2819  $result['ITEMS'] = $this->getShipmentItemCollection()->toArray();
2820 
2821  return $result;
2822  }

◆ tryFixError()

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

Замещает IEntityMarker.

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

2521  {
2522  $result = new Result();
2523 
2524  $method = static::getFixMethod($code);
2525  $r = call_user_func_array($method, array($this));
2526  if (!$r->isSuccess())
2527  {
2528  $result->addErrors($r->getErrors());
2529  }
2530  elseif ($r->hasWarnings())
2531  {
2532  $result->addWarnings($r->getWarnings());
2533  }
2534 
2535  return $result;
2536  }

◆ tryReserve()

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

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

1449  {
1451  }
static tryReserveShipment(Sale\Shipment $shipment, array $context=array())

◆ tryShip()

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

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

1469  {
1470  $result = new Result();
1471 
1472  /** @var Result $r */
1474  if ($r->isSuccess())
1475  {
1476  $resultList = $r->getData();
1477 
1478  if (!empty($resultList) && is_array($resultList))
1479  {
1480  /** @var Result $resultDat */
1481  foreach ($resultList as $resultDat)
1482  {
1483  if (!$resultDat->isSuccess())
1484  {
1485  $result->addErrors( $resultDat->getErrors() );
1486  }
1487  }
1488  }
1489  }
1490  else
1491  {
1492  $result->addErrors( $r->getErrors() );
1493  }
1494 
1495  if ($r->hasWarnings())
1496  {
1497  $result->addWarnings( $r->getWarnings() );
1498  }
1499  return $result;
1500  }
static tryShipShipment(Sale\Shipment $shipment, array $context=array())

◆ tryUnreserve()

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

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

1459  {
1461  }

◆ tryUnship()

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

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

1508  {
1509  return $this->tryShip();
1510  }

◆ updateInternal()

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

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

2742  {
2743  return Internals\ShipmentTable::update($primary, $data);
2744  }

◆ updateReservedFlag()

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

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

545  {
546  $shipmentReserved = true;
547 
548  $shipmentItemList = $shipment->getShipmentItemCollection()->getShippableItems();
549 
550  if ($shipmentItemList->count() === 0)
551  {
552  $shipmentReserved = false;
553  }
554 
555  /** @var ShipmentItem $shipmentItem */
556  foreach ($shipmentItemList as $shipmentItem)
557  {
558  if ($shipmentItem->getQuantity() - $shipmentItem->getReservedQuantity())
559  {
560  $shipmentReserved = false;
561  break;
562  }
563  }
564 
565  $shipmentReservedValue = $shipmentReserved ? "Y" : "N";
566  $currentValue = $shipment->getField('RESERVED');
567  if ($shipment->getField('RESERVED') != $shipmentReservedValue)
568  {
569  $eventManager = Main\EventManager::getInstance();
570  $eventsList = $eventManager->findEventHandlers('sale', EventActions::EVENT_ON_BEFORE_SHIPMENT_RESERVE);
571  if (!empty($eventsList))
572  {
573  /** @var Main\Entity\Event $event */
574  $event = new Main\Event('sale', EventActions::EVENT_ON_BEFORE_SHIPMENT_RESERVE, [
575  'ENTITY' => $shipment,
576  'VALUE' => $shipmentReservedValue,
577  ]);
578 
579  $event->send();
580 
581  if ($event->getResults())
582  {
583  $result = new Result();
584  /** @var Main\EventResult $eventResult */
585  foreach($event->getResults() as $eventResult)
586  {
587  if($eventResult->getType() === Main\EventResult::ERROR)
588  {
589  $errorMsg = new ResultError(Main\Localization\Loc::getMessage('SALE_EVENT_ON_BEFORE_SHIPMENT_RESERVE_ERROR'), 'SALE_EVENT_ON_BEFORE_SHIPMENT_RESERVE_ERROR');
590 
591  $eventResultData = $eventResult->getParameters();
592  if ($eventResultData)
593  {
594  if (isset($eventResultData) && $eventResultData instanceof ResultError)
595  {
596  /** @var ResultError $errorMsg */
597  $errorMsg = $eventResultData;
598  }
599  }
600 
601  $result->addError($errorMsg);
602 
603  }
604  }
605 
606  if (!$result->isSuccess())
607  {
608  return $result;
609  }
610  }
611  }
612 
613  $shipment->setFieldNoDemand('RESERVED', $shipmentReserved ? "Y" : "N");
614 
616  'ENTITY' => $shipment,
617  'VALUE' => $shipmentReservedValue,
618  'OLD_VALUE' => $currentValue,
619  ]);
620  }
621 
622  return new Result();
623  }

◆ verify()

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

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

2244  {
2245  $result = new Result();
2246 
2247  if ($this->getDeliveryId() <= 0)
2248  {
2249  $result->addError(
2250  new ResultError(
2251  Loc::getMessage("SALE_SHIPMENT_DELIVERY_SERVICE_EMPTY"),
2252  'SALE_SHIPMENT_DELIVERY_SERVICE_EMPTY'
2253  )
2254  );
2255  }
2256 
2257  /** @var ShipmentItemCollection $shipmentItemCollection */
2259  {
2260  /** @var ShipmentItem $shipmentItem */
2261  foreach ($shipmentItemCollection as $shipmentItem)
2262  {
2263  $r = $shipmentItem->verify();
2264  if (!$r->isSuccess())
2265  {
2266  $result->addErrors($r->getErrors());
2267  }
2268  }
2269  }
2270 
2271  return $result;
2272  }

Поля

◆ $extraServices

$extraServices = null
protected

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

◆ $idShipment

$idShipment = 0
staticprotected

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

◆ $internalId

$internalId = 0
protected

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

◆ $service

$service = null
protected

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

◆ $shipmentItemCollection

$shipmentItemCollection
protected

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

◆ $storeId

$storeId = null
protected

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


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