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

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

 getShipmentCode ()
 
 setDeliveryService (Delivery\Services\Base $service)
 
 needReservation ()
 
 onShipmentItemCollectionModify ($action, ShipmentItem $shipmentItem, $name=null, $oldValue=null, $value=null)
 
 delete ()
 
 setField ($name, $value)
 
 setFieldNoDemand ($name, $value)
 
 getParentOrderId ()
 
 getOrder ()
 
 getPrice ()
 
 isCustomPrice ()
 
 getCurrency ()
 
 getDeliveryId ()
 
 getDeliveryName ()
 
 setOrderId ($orderId)
 
 getDelivery ()
 
 isSystem ()
 
 isCanceled ()
 
 isShipped ()
 
 getShippedDate ()
 
 getShippedUserId ()
 
 getUnshipReason ()
 
 isMarked ()
 
 isAllowDelivery ()
 
 isEmpty ()
 
 getAllowDeliveryDate ()
 
 getAllowDeliveryUserId ()
 
 getCompanyId ()
 
 tryReserve ()
 
 tryUnreserve ()
 
 tryUnship ()
 
 needShip ()
 
 deliver ()
 
 allowDelivery ()
 
 disallowDelivery ()
 
 onBeforeBasketItemDelete (BasketItem $basketItem)
 
 getServiceParams ()
 
 setServiceParams (array $serviceParams)
 
 getExtraServices ()
 
 setExtraServices (array $extraServices)
 
 getExtraServicesObjects ()
 
 getStoreId ()
 
 setStoreId ($storeId)
 
 getWeight ()
 
 setWeight (float $weight)
 
 calculateDelivery ()
 
 resetData ()
 
 getBusinessValueProviderInstance ($mapping)
 
 getPersonTypeId ()
 
 getAutoFixErrorsList ()
 
 tryFixError ($code)
 
 canMarked ()
 
 getMarkField ()
 
 isChanged ()
 
 getVatRate ()
 
 getVatSum ()
 
 setBasePriceDelivery ($value, $custom=false)
 
 toArray ()
 
 getPropertyCollection ()
 
 getParentOrder ()
 
 setCollection (EntityCollection $collection)
 
 getCollection ()
 
 setInternalIndex ($index)
 
 getInternalIndex ()
 
 isStartField ($isMeaningfulField=false)
 
 clearStartField ()
 
 hasMeaningfulField ()
 
 doFinalAction ($hasMeaningfulField=false)
 
 setMathActionOnly ($value=false)
 
 isMathActionOnly ()
 
 isClone ()
 
 fetch (Main\Text\Converter $converter=null)
 
 getErrorEntity ($value)
 
 canAutoFixError ($value)
 

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

static getRegistryEntity ()
 
static getAvailableFields ()
 
static getCustomizableFields ()
 
static getRegistryType ()
 
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 ()
 
static getEntity ()
 
static getRow (array $parameters)
 
static clearCache ()
 
static add (array $data)
 
static update ($id, array $data)
 
static delete ($id)
 
static setCacheItem ($id, array $row)
 
static getCacheItem ($id, bool $load=false)
 
static clearCacheItem ($id)
 
static getTabletClassName ()
 
static getTabletFieldNames (int $fields=self::FIELDS_MAIN)
 
static getCachedFieldList ()
 
static getCallbackRestEvent ()
 
static clearSettings ()
 

Поля данных

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

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

 __construct (array $fields=[])
 
 onBeforeSetFields (array $values)
 
 deleteDeliveryRequest ()
 
 checkValueBeforeSet ($name, $value)
 
 setDeliveryRequestMarker ()
 
 onAfterSave ($isNew)
 
 markSystem ()
 
 loadDeliveryService ()
 
 saveExtraServices ()
 
 saveStoreId ()
 
 addInternal (array $data)
 
 updateInternal ($primary, array $data)
 
 onFieldModify ($name, $oldValue, $value)
 
 getTablet ()
 

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

static getMeaningfulFields ()
 
static generateXmlId ()
 
static getParametersForLoad ($id)
 
static getFixMethod ($code)
 
static getAutoFixRules ()
 
static deleteInternal ($primary)
 
static getFieldsMap ()
 
static prepareForAdd (ORM\Data\AddResult $result, $id, array &$data)
 
static prepareForUpdate (ORM\Data\UpdateResult $result, $id, array &$data)
 
static deleteNoDemands ($id)
 
static normalize (array &$data)
 
static runAddExternalActions ($id, array $data)
 
static runUpdateExternalActions ($id, array $data)
 
static runDeleteExternalActions ($id)
 
static getDefaultCachedFieldList ()
 
static prepareFloatValue ($value)
 
static prepareIntValue ($value)
 
static prepareStringValue ($value)
 

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

 $shipmentItemCollection
 
 $service = null
 
 $extraServices = null
 
 $storeId = null
 
 $internalId = 0
 
 $propertyCollection
 
 $isNew = true
 
 $collection
 
 $internalIndex = null
 
 $isClone = false
 

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

static $idShipment = 0
 

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

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

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

◆ __construct()

__construct ( array  $fields = [])
protected

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

52 {
53 $priceFields = ['BASE_PRICE_DELIVERY', 'PRICE_DELIVERY', 'DISCOUNT_PRICE'];
54
55 foreach ($priceFields as $code)
56 {
57 if (isset($fields[$code]))
58 {
59 $fields[$code] = PriceMaths::roundPrecision($fields[$code]);
60 }
61 }
62
63 parent::__construct($fields);
64 }
static roundPrecision($value)
Definition: pricemaths.php:17

Методы

◆ add()

static add ( array  $data)
staticinherited

Add entity item. Use instead of DataManager method.

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

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

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

◆ addInternal()

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

Exception

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

2760 {
2761 return Internals\ShipmentTable::add($data);
2762 }

◆ allowDelivery()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

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

1591 {
1592 return $this->setField('ALLOW_DELIVERY', "Y");
1593 }
setField($name, $value)
Definition: shipment.php:786

◆ calculateDelivery()

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

NotSupportedException

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

2177 {
2178 if ($this->isSystem())
2179 {
2180 throw new Main\NotSupportedException();
2181 }
2182
2183 if ($this->getDeliveryId() === 0)
2184 {
2185 return new Delivery\CalculationResult();
2186 }
2187
2188 return Delivery\Services\Manager::calculateDeliveryPrice($this);
2189 }

◆ canAutoFixError()

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

Замещается в Payment и ShipmentItemStore.

◆ canMarked()

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

Замещает IEntityMarker.

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

2659 {
2660 return true;
2661 }

◆ checkValueBeforeSet()

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

ArgumentException

Исключения
Main

SystemException

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

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

◆ clearCache()

static clearCache ( )
staticinherited

Clear all cache for entity.

Возвращает
void

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

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

◆ clearCacheItem()

static clearCacheItem (   $id)
staticinherited

Clear item cache. Do not use without good reason.

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

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

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

◆ clearSettings()

static clearSettings ( )
staticinherited

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

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

970: void {}

◆ clearStartField()

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

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

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

◆ createSystem()

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

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

1274 {
1275 $shipment = static::create($collection, $deliveryService);
1276 $shipment->markSystem();
1277
1278 if ($deliveryService === null)
1279 {
1280 $shipment->setFieldNoDemand('DELIVERY_ID', Delivery\Services\Manager::getEmptyDeliveryServiceId());
1281 }
1282
1283 return $shipment;
1284 }

◆ delete() [1/2]

static delete (   $id)
staticinherited

Delete entity item. Use instead of DataManager method.

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

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

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

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

◆ delete() [2/2]

delete ( )

Deletes shipment

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

ArgumentException

Исключения
Main

ArgumentNullException

Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения
Main

ObjectNotFoundException

Исключения

Exception

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

736 {
737 if ($this->isShipped())
738 {
739 $result = new Result();
740 return $result->addError(
741 new ResultError(
742 Loc::getMessage('SALE_SHIPMENT_EXIST_SHIPPED'),
743 'SALE_SHIPMENT_EXIST_SHIPPED'
744 )
745 );
746 }
747
748 if (!$this->isSystem())
749 {
750 $this->setField('BASE_PRICE_DELIVERY', 0);
751
752 if ($this->getFields()->isMarkedCustom('PRICE_DELIVERY'))
753 {
754 $this->setField('PRICE_DELIVERY', 0);
755 }
756
757 $this->disallowDelivery();
758 }
759
760 $this->getPropertyCollection()->deleteNoDemand($this->getId());
761 $this->deleteDeliveryRequest();
762
763 $this->getShipmentItemCollection()->clearCollection();
764
765 return parent::delete();
766 }

◆ deleteDeliveryRequest()

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

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

772 {
773 Requests\Manager::onBeforeShipmentDelete($this);
774 }

◆ deleteInternal()

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

ArgumentException

Исключения
Main

ArgumentNullException

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

2782 {
2783 return Internals\ShipmentTable::deleteWithItems($primary);
2784 }

◆ deleteNoDemand()

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

ArgumentException

См. определение в файле 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 $res = static::deleteInternal($shipment['ID']);
710
711 if ($res -> isSuccess())
712 {
713 Internals\ShipmentExtraServiceTable::deleteByShipmentId($shipment['ID']);
714 }
715 else
716 {
717 $result->addErrors($res->getErrors());
718 }
719 }
720
721 return $result;
722 }

◆ deleteNoDemands()

static deleteNoDemands (   $id)
staticprotectedinherited

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

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

ObjectNotFoundException

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

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

◆ deliver()

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

ObjectNotFoundException

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

1575 {
1576 $result = Internals\Catalog\Provider::deliver($this);
1577 if ($result->isSuccess())
1578 {
1579 Recurring::repeat($this->getOrder(), $result->getData());
1580 }
1581
1582 return $result;
1583 }
static repeat(Order $order, array $resultList)
Definition: recurring.php:26

◆ disallowDelivery()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

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

1601 {
1602 return $this->setField('ALLOW_DELIVERY', "N");
1603 }

◆ doFinalAction()

doFinalAction (   $hasMeaningfulField = false)
inherited

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

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

◆ fetch()

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

Entity fetch. Work with entity change cache.

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

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

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

◆ fixReserveErrors()

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

ObjectNotFoundException

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

2589 {
2590 $result = new Result();
2591
2592 $r = $entity->tryReserve();
2593 if (!$r->isSuccess())
2594 {
2595 $result->addErrors($r->getErrors());
2596 }
2597 elseif ($r->hasWarnings())
2598 {
2599 $result->addWarnings($r->getWarnings());
2600 }
2601
2602 return $result;
2603 }

◆ fixShipErrors()

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

ObjectNotFoundException

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

2612 {
2613 $result = new Result();
2614
2615 $r = $entity->setField('DEDUCTED', 'Y');
2616 if (!$r->isSuccess())
2617 {
2618 if (!$r->isSuccess())
2619 {
2620 $result->addErrors($r->getErrors());
2621 }
2622 }
2623
2624 $r = $entity->tryShip();
2625 if (!$r->isSuccess())
2626 {
2627 if (!$r->isSuccess())
2628 {
2629 $result->addErrors($r->getErrors());
2630 }
2631 }
2632
2633 return $result;
2634 }

◆ generateXmlId()

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

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

243 {
244 return uniqid('bx_');
245 }

◆ getAllowDeliveryDate()

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

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

1460 {
1461 return $this->getField('DATE_ALLOW_DELIVERY');
1462 }

◆ getAllowDeliveryUserId()

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

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

1468 {
1469 return (int)$this->getField('EMP_ALLOW_DELIVERY_ID');
1470 }

◆ getAutoFixErrorsList()

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

Замещает IEntityMarker.

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

2540 {
2541 return array_keys(static::getAutoFixRules());
2542 }

◆ getAutoFixRules()

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

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

2640 {
2641 return [
2642 'PROVIDER_BASKET_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2643 'SALE_PROVIDER_RESERVE_SHIPMENT_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2644 'PROVIDER_UNRESERVE_SHIPMENT_ITEM_WRONG_AVAILABLE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2645 'SALE_PROVIDER_RESERVE_SHIPMENT_ITEM_QUANTITY_NOT_ENOUGH' => ['\Bitrix\Sale\Shipment', "fixReserveErrors"],
2646
2647 'SALE_PROVIDER_SHIPMENT_SHIPPED_LESS_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2648 'SALE_PROVIDER_SHIPMENT_SHIPPED_MORE_QUANTITY' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2649 'DDCT_DEDUCTION_QUANTITY_STORE_ERROR' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2650 'SALE_PROVIDER_SHIPMENT_QUANTITY_NOT_ENOUGH' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2651 'DDCT_DEDUCTION_QUANTITY_ERROR' => ['\Bitrix\Sale\Shipment', "fixShipErrors"],
2652 ];
2653 }

◆ getAvailableFields()

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

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

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

◆ getBusinessValueProviderInstance()

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

Замещает IBusinessValueProvider.

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

2347 {
2348 $providerInstance = null;
2349
2350 if (is_array($mapping))
2351 {
2352 switch ($mapping['PROVIDER_KEY'])
2353 {
2354 case 'SHIPMENT': $providerInstance = $this; break;
2355 case 'COMPANY' : $providerInstance = $this->getField('COMPANY_ID'); break;
2356 default:
2357 $order = $this->getOrder();
2358 if ($order)
2359 {
2360 $providerInstance = $order->getBusinessValueProviderInstance($mapping);
2361 }
2362 }
2363 }
2364
2365 return $providerInstance;
2366 }

◆ getCachedFieldList()

static getCachedFieldList ( )
staticinherited

Returns fields list in cache.

Возвращает
array

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

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

◆ getCacheItem()

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

Returns item cache.

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

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

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

◆ getCallbackRestEvent()

static getCallbackRestEvent ( )
staticinherited

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

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

◆ getCollection()

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

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

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

◆ getCompanyId()

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

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

1476 {
1477 return (int)$this->getField('COMPANY_ID');
1478 }

◆ getCurrency()

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

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

1307 {
1308 return (string)$this->getField('CURRENCY');
1309 }

◆ getCustomizableFields()

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

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

138 : array
139 {
140 return ['PRICE_DELIVERY' => 'PRICE_DELIVERY', 'WEIGHT' => 'WEIGHT'];
141 }

◆ getDefaultCachedFieldList()

static getDefaultCachedFieldList ( )
staticprotectedinherited

Returns entity default fields list for caching.

Возвращает
array

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

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

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

◆ getDelivery()

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

ArgumentNullException

Исключения
Main

SystemException

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

1341 {
1342 if ($this->service === null)
1343 {
1344 $this->service = $this->loadDeliveryService();
1345 }
1346
1347 return $this->service;
1348 }

◆ getDeliveryId()

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

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

1315 {
1316 return (int)$this->getField('DELIVERY_ID');
1317 }

◆ getDeliveryName()

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

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

1323 {
1324 return (string)$this->getField('DELIVERY_NAME');
1325 }

◆ getEntity()

static getEntity ( )
staticinherited

Returns entity class.

Возвращает
Entity

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

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

◆ getEntityEventName()

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

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

2835 {
2836 return 'SaleShipment';
2837 }

◆ getErrorEntity()

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

Замещается в Payment и ShipmentItemStore.

◆ getExtraServices()

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

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

2080 {
2081 if($this->extraServices === null)
2082 {
2083 $this->setExtraServices(
2084 Delivery\ExtraServices\Manager::getValuesForShipment(
2085 $this->getId(),
2086 $this->getDeliveryId()
2087 )
2088 );
2089 }
2090
2091 return $this->extraServices;
2092 }
setExtraServices(array $extraServices)
Definition: shipment.php:2097

◆ getExtraServicesObjects()

getExtraServicesObjects ( )
Возвращает
Delivery\ExtraServices\Base[]

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

2106 {
2107 return Delivery\ExtraServices\Manager::getObjectsForShipment(
2108 $this->getId(),
2109 $this->getDeliveryId(),
2110 $this->getCurrency()
2111 );
2112 }

◆ getFieldsMap()

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

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

2790 {
2791 return Internals\ShipmentTable::getMap();
2792 }

◆ getFixMethod()

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

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

2572 {
2573 $codeList = static::getAutoFixRules();
2574
2575 if (!empty($codeList[$code]))
2576 {
2577 return $codeList[$code];
2578 }
2579 return null;
2580 }

◆ getInternalIndex()

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

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

◆ getList()

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

ArgumentException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

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

2390 {
2391 return Internals\ShipmentTable::getList($parameters);
2392 }

◆ getMarkField()

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

Замещает IEntityMarker.

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

2667 {
2668 return 'MARKED';
2669 }

◆ getMeaningfulFields()

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

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

176 {
177 return array('BASE_PRICE_DELIVERY', 'DELIVERY_ID');
178 }

◆ getOrder()

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

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

1231 {
1232 return $this->getCollection()->getOrder();
1233 }

◆ getParametersForLoad()

static getParametersForLoad (   $id)
staticprotected

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

927 : array
928 {
929 return [
930 'filter' => [
931 'ORDER_ID' => $id
932 ],
933 'order' => [
934 'SYSTEM' => 'ASC',
935 'DATE_INSERT' => 'ASC',
936 'ID' => 'ASC'
937 ]
938 ];
939 }

◆ getParentOrder()

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

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

2878 {
2879 return $this->getOrder();
2880 }

◆ getParentOrderId()

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

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

1217 {
1218 $order = $this->getParentOrder();
1219 if (!$order)
1220 {
1221 return false;
1222 }
1223
1224 return $order->getId();
1225 }

◆ getPersonTypeId()

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

Замещает IBusinessValueProvider.

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

2372 {
2373 $order = $this->getOrder();
2374 if ($order)
2375 {
2376 return $order->getPersonTypeId();
2377 }
2378
2379 return null;
2380 }

◆ getPrice()

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

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

1290 {
1291 return (float)$this->getField('PRICE_DELIVERY');
1292 }

◆ getPropertyCollection()

getPropertyCollection ( )

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

2853 : ShipmentPropertyValueCollection
2854 {
2855 if(empty($this->propertyCollection))
2856 {
2857 $this->propertyCollection = $this->loadPropertyCollection();
2858 }
2859
2861 }

◆ getRegistryEntity()

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

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

47 {
49 }

◆ getRegistryType()

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

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

264 {
266 }
const REGISTRY_TYPE_ORDER
Definition: registry.php:16

◆ getRow()

static getRow ( array  $parameters)
staticinherited

Entity getRow with change cache. Wrapper for entity getList.

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

ArgumentException

Исключения
Main

ObjectNotFoundException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

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

◆ getServiceParams()

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

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

2060 {
2061 $params = $this->getField('PARAMS');
2062 return isset($params["SERVICE_PARAMS"]) ? $params["SERVICE_PARAMS"] : array();
2063 }

◆ getShipmentCode()

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

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

70 {
71 if ($this->internalId === 0)
72 {
73 if ($this->getId() > 0)
74 {
75 $this->internalId = $this->getId();
76 }
77 else
78 {
79 static::$idShipment++;
80 $this->internalId = static::$idShipment;
81 }
82 }
83 return $this->internalId;
84 }

◆ getShippedDate()

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

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

1392 {
1393 return $this->getField('DATE_DEDUCTED');
1394 }

◆ getShippedUserId()

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

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

1400 {
1401 return $this->getField('EMP_DEDUCTED_ID');
1402 }

◆ getStoreId()

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

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

2126 {
2127 if($this->storeId === null)
2128 {
2129 $this->setStoreId(
2130 Delivery\ExtraServices\Manager::getStoreIdForShipment(
2131 $this->getId(),
2132 $this->getDeliveryId()
2133 ));
2134 }
2135
2136 return $this->storeId;
2137 }
setStoreId($storeId)
Definition: shipment.php:2142

◆ getTablet()

getTablet ( )
protectedinherited

Returns entity table object.

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

ObjectNotFoundException

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

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

◆ getTabletClassName()

static getTabletClassName ( )
staticinherited

Returns entity tablet name.

Возвращает
string

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

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

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

◆ getTabletFieldNames()

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

Returns list of tablet field names, include user fields.

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

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

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

◆ getUfId()

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

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

2798 {
2799 return Internals\ShipmentTable::getUfId();
2800 }

◆ getUnshipReason()

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

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

1408 {
1409 return (string)$this->getField('REASON_UNDO_DEDUCTED');
1410 }

◆ getVatRate()

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

ArgumentException

Исключения
Main

ArgumentNullException

Исключения
Main

LoaderException

Исключения
Main

ObjectPropertyException

Исключения
Main

SystemException

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

2713 {
2714 $vatRate = 0;
2715
2716 $service = $this->getDelivery();
2717 if ($service)
2718 {
2719 if (!Main\Loader::includeModule('catalog'))
2720 {
2721 return $vatRate;
2722 }
2723
2724 $vatId = $service->getVatId();
2725 if ($vatId <= 0)
2726 {
2727 return $vatRate;
2728 }
2729
2730 $dbRes = VatTable::getById($vatId);
2731 $vatInfo = $dbRes->fetch();
2732 if ($vatInfo)
2733 {
2734 $vatRate = $vatInfo['RATE'] / 100;
2735 }
2736 }
2737
2738 return $vatRate;
2739 }

◆ getVatSum()

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

ArgumentNullException

Исключения
Main

LoaderException

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

2747 {
2748 $vatRate = $this->getVatRate();
2749 $price = $this->getPrice() * $vatRate / (1 + $vatRate);
2750
2751 return PriceMaths::roundPrecision($price);
2752 }

◆ getWeight()

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

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

2158 : float
2159 {
2160 return (float)$this->getField('WEIGHT');
2161 }

◆ hasMeaningfulField()

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

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

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

◆ isAllowDelivery()

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

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

1444 {
1445 return $this->getField('ALLOW_DELIVERY') === "Y";
1446 }

◆ isCanceled()

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

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

1376 {
1377 return $this->getField('CANCELED') === 'Y';
1378 }

◆ isChanged()

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

ArgumentException

Исключения
Main

ArgumentNullException

Исключения
Main

ObjectNotFoundException

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

2678 {
2679 if (parent::isChanged())
2680 {
2681 return true;
2682 }
2683
2684 return $this->getShipmentItemCollection()->isChanged();
2685 }

◆ isClone()

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

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

◆ isCustomPrice()

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

ArgumentOutOfRangeException

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

1299 {
1300 return $this->isMarkedFieldCustom('PRICE_DELIVERY');
1301 }

◆ isEmpty()

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

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

1452 {
1453 return $this->getShipmentItemCollection()->isEmpty();
1454 }

◆ isMarked()

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

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

1416 {
1417 return $this->getField('MARKED') === "Y";
1418 }

◆ isMathActionOnly()

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

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

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

◆ isShipped()

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

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

1384 {
1385 return $this->getField('DEDUCTED') === 'Y';
1386 }

◆ isStartField()

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

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

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

◆ isSystem()

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

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

1370 {
1371 return $this->getField('SYSTEM') === 'Y';
1372 }

◆ loadDeliveryService()

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

ArgumentNullException

Исключения
Main

SystemException

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

1356 {
1357 if ($deliveryId = $this->getDeliveryId())
1358 {
1359 return Delivery\Services\Manager::getObjectById($deliveryId);
1360 }
1361
1362 return null;
1363 }

◆ loadForOrder()

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

ArgumentException

Исключения
Main

ArgumentNullException

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

909 {
910 if (intval($id) <= 0)
911 {
912 throw new Main\ArgumentNullException("id");
913 }
914
915 $shipments = [];
916
917 $shipmentDataList = static::getList(static::getParametersForLoad($id));
918 while ($shipmentData = $shipmentDataList->fetch())
919 {
920 $shipments[] = static::createShipmentObject($shipmentData);
921 }
922
923
924 return $shipments;
925 }

◆ markSystem()

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

ArgumentNullException

Исключения
Main

ArgumentOutOfRangeException

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

1260 {
1261 $this->setFieldNoDemand("SYSTEM", 'Y');
1262 }
setFieldNoDemand($name, $value)
Definition: shipment.php:875

◆ needReservation()

needReservation ( )

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

276 {
278
279 if ($condition === ReserveCondition::ON_CREATE)
280 {
281 return true;
282 }
283
284 if ($condition === ReserveCondition::ON_PAY
285 || $condition === ReserveCondition::ON_FULL_PAY)
286 {
287 $order = $this->getOrder();
288 if ($condition === ReserveCondition::ON_FULL_PAY)
289 {
290 return $order->isPaid();
291 }
292
293 return $order->getPaymentCollection()->hasPaidPayment();
294 }
295
296 if ($this->isSystem())
297 {
298 return false;
299 }
300
301 return
302 (
303 $condition === ReserveCondition::ON_ALLOW_DELIVERY
304 && $this->isAllowDelivery()
305 )
306 || (
307 $condition === ReserveCondition::ON_SHIP
308 && $this->isShipped()
309 )
310 ;
311 }
static getProductReservationCondition()

◆ needShip()

needShip ( )

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

1554 {
1555 if ($this->fields->isChanged('DEDUCTED'))
1556 {
1557 if ($this->getField('DEDUCTED') === "Y")
1558 {
1559 return true;
1560 }
1561 elseif ($this->getField('DEDUCTED') === "N" && $this->getId() != 0)
1562 {
1563 return false;
1564 }
1565 }
1566
1567 return null;
1568 }

◆ normalize()

static normalize ( array &  $data)
staticprotectedinherited

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

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

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

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

◆ onAfterSave()

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

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

1209 {
1210 return;
1211 }

◆ onBeforeBasketItemDelete()

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

ArgumentException

Исключения
Main

ArgumentNullException

Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения
Main

ObjectNotFoundException

Исключения
Main

SystemException

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

1616 {
1617 $result = new Result();
1618
1619 $shipmentItemCollection = $this->getShipmentItemCollection();
1620 $r = $shipmentItemCollection->onBeforeBasketItemDelete($basketItem);
1621 if (!$r->isSuccess())
1622 {
1623 return $result->addErrors($r->getErrors());
1624 }
1625
1626 if ($this->isSystem())
1627 {
1628 return $this->syncQuantityAfterModify($basketItem);
1629 }
1630
1631 return $result;
1632 }

◆ onBeforeSetFields()

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

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

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

◆ onFieldModify()

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

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

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

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

◆ onShipmentItemCollectionModify()

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

NotSupportedException

Исключения
Main

SystemException

См. определение в файле 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',
657 $this->getShipmentItemCollection()->getWeight()
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 {
673 Internals\ActionEntity::add(
674 $order->getInternalId(),
676 [
677 'METHOD' => 'Bitrix\Sale\ShipmentCollection::updateReservedFlag',
678 'PARAMS' => [$this->getCollection()]
679 ]
680 );
681 }
682 }
683
684 return new Result();
685 }

◆ prepareFloatValue()

static prepareFloatValue (   $value)
staticprotectedinherited

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

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

◆ prepareForAdd()

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

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

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

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

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

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

◆ prepareForUpdate()

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

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

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

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

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

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

◆ prepareIntValue()

static prepareIntValue (   $value)
staticprotectedinherited

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

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

◆ prepareStringValue()

static prepareStringValue (   $value)
staticprotectedinherited

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

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

◆ resetData()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

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

2196 {
2197 if (!$this->isCustomPrice())
2198 {
2199 $this->setField('BASE_PRICE_DELIVERY', 0);
2200 }
2201 }

◆ runAddExternalActions()

static runAddExternalActions (   $id,
array  $data 
)
staticprotectedinherited

Run core automation after add entity item.

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

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

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

592: void {}

◆ runDeleteExternalActions()

static runDeleteExternalActions (   $id)
staticprotectedinherited

Run core automation after delete entity item.

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

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

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

609: void {}

◆ runUpdateExternalActions()

static runUpdateExternalActions (   $id,
array  $data 
)
staticprotectedinherited

Run core automation after update entity item.

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

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

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

601: void {}

◆ saveExtraServices()

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

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

2118 {
2119 return Delivery\ExtraServices\Manager::saveValuesForShipment($this->getId(), $this->getExtraServices());
2120 }

◆ saveStoreId()

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

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

2151 {
2152 return Delivery\ExtraServices\Manager::saveStoreIdForShipment($this->getId(), $this->getDeliveryId(), $this->getStoreId());
2153 }

◆ setBasePriceDelivery()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения

Exception

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

2812 {
2813 $result = new Result();
2814
2815 if ($custom === true)
2816 {
2817 $this->markFieldCustom('PRICE_DELIVERY');
2818 }
2819
2820 $r = $this->setField('BASE_PRICE_DELIVERY', $value);
2821 if (!$r->isSuccess())
2822 {
2823 $result->addErrors($r->getErrors());
2824 }
2825
2826 return $result;
2827 }

◆ setCacheItem()

static setCacheItem (   $id,
array  $row 
)
staticinherited

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

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

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

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

◆ setCollection()

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

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

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

◆ setDeliveryRequestMarker()

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

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

1142 {
1143 $order = $this->getParentOrder();
1144
1145 Requests\Manager::onBeforeShipmentSave($order, $this);
1146 }

◆ setDeliveryService()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения

Exception

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

187 {
188 $this->service = $service;
189
190 $result = $this->setField("DELIVERY_ID", $service->getId());
191 if ($result->isSuccess())
192 {
193 $this->setField("DELIVERY_NAME", $service->getName());
194 }
195 }

◆ setExtraServices()

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

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

2098 {
2099 $this->extraServices = $extraServices;
2100 }

◆ setField()

setField (   $name,
  $value 
)

Sets new value to specified field of shipment item

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения

Exception

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

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

◆ setFieldNoDemand()

setFieldNoDemand (   $name,
  $value 
)

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

876 {
877 $priceFields = [
878 'BASE_PRICE_DELIVERY' => 'BASE_PRICE_DELIVERY',
879 'PRICE_DELIVERY' => 'PRICE_DELIVERY',
880 'DISCOUNT_PRICE' => 'DISCOUNT_PRICE',
881 ];
882 if (isset($priceFields[$name]))
883 {
884 $value = PriceMaths::roundPrecision($value);
885 }
886
887 if ($name === 'CUSTOM_PRICE_DELIVERY')
888 {
889 if ($value === 'Y')
890 {
891 $this->markFieldCustom('PRICE_DELIVERY');
892 }
893 else
894 {
895 $this->unmarkFieldCustom('PRICE_DELIVERY');
896 }
897 }
898
899 parent::setFieldNoDemand($name, $value);
900 }

◆ setInternalIndex()

setInternalIndex (   $index)
inherited

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

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

◆ setMathActionOnly()

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

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

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

◆ setOrderId()

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

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

1331 {
1332 $this->setField('ORDER_ID', $orderId);
1333 }

◆ setServiceParams()

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

NotSupportedException

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

2070 {
2071 $params = $this->getField('PARAMS');
2072 $params["SERVICE_PARAMS"] = $serviceParams;
2073 $this->setField("PARAMS", $params);
2074 }

◆ setStoreId()

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

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

2143 {
2144 $this->storeId = (int)$storeId;
2145 }

◆ setWeight()

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

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

2168 {
2169 return $this->setField('WEIGHT', $weight);
2170 }

◆ toArray()

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

ArgumentException

Исключения
Main

SystemException

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

2844 : array
2845 {
2846 $result = parent::toArray();
2847
2848 $result['ITEMS'] = $this->getShipmentItemCollection()->toArray();
2849
2850 return $result;
2851 }

◆ tryFixError()

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

Замещает IEntityMarker.

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

2550 {
2551 $result = new Result();
2552
2553 $method = static::getFixMethod($code);
2554 $r = call_user_func_array($method, array($this));
2555 if (!$r->isSuccess())
2556 {
2557 $result->addErrors($r->getErrors());
2558 }
2559 elseif ($r->hasWarnings())
2560 {
2561 $result->addWarnings($r->getWarnings());
2562 }
2563
2564 return $result;
2565 }

◆ tryReserve()

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

ArgumentException

Исключения
Main

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения

Exception

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

1487 {
1488 return Internals\Catalog\Provider::tryReserveShipment($this);
1489 }

◆ tryUnreserve()

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

ArgumentOutOfRangeException

Исключения
Main

NotSupportedException

Исключения

Exception

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

1497 {
1498 return Internals\Catalog\Provider::tryUnreserveShipment($this);
1499 }

◆ tryUnship()

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

NotSupportedException

Исключения
Main

ObjectNotFoundException

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

1546 {
1547 return $this->tryShip();
1548 }

◆ update()

static update (   $id,
array  $data 
)
staticinherited

Update entity item. Use instead of DataManager method.

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

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

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

◆ updateInternal()

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

Exception

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

2771 {
2772 return Internals\ShipmentTable::update($primary, $data);
2773 }

Поля

◆ $collection

$collection
protectedinherited

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

◆ $extraServices

$extraServices = null
protected

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

◆ $idShipment

$idShipment = 0
staticprotected

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

◆ $internalId

$internalId = 0
protected

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

◆ $internalIndex

$internalIndex = null
protectedinherited

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

◆ $isClone

$isClone = false
protectedinherited

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

◆ $isNew

bool $isNew = true
protected

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

◆ $propertyCollection

ShipmentPropertyValueCollection $propertyCollection
protected

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

◆ $service

$service = null
protected

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

◆ $shipmentItemCollection

ShipmentItemCollection $shipmentItemCollection
protected

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

◆ $storeId

$storeId = null
protected

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

◆ EVENT_ON_BUILD_CACHED_FIELD_LIST

const EVENT_ON_BUILD_CACHED_FIELD_LIST = 'OnBuildCachedFieldList'
inherited

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

◆ FIELDS_ALL

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

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

◆ FIELDS_MAIN

const FIELDS_MAIN = 0x0001
inherited

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

◆ FIELDS_UF

const FIELDS_UF = 0x0002
inherited

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

◆ PREFIX_OLD

const PREFIX_OLD = 'OLD_'
inherited

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


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