Bitrix-D7  20.5.0
Класс ProviderCreator

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

 addBasketItem (Sale\BasketItemBase $basketItem)
 
 addShipmentItem (Sale\ShipmentItem $shipmentItem)
 
 addShipmentProductData (array $shipmentProductData)
 
 addProductData (array $productData)
 
 addBasketItemBarcodeData (Sale\BasketItem $basketItem, array $barcodeParams)
 
 createItemForShip (Sale\ShipmentItem $shipmentItem, array $needShipList=[])
 
 createItemForReserve (Sale\ShipmentItem $shipmentItem)
 
 createItemForUnreserve (Sale\ShipmentItem $shipmentItem)
 
 getProductData ()
 
 getAvailableQuantity ()
 
 getAvailableQuantityAndPrice ()
 
 setItemsResultAfterTryShip (PoolQuantity $pool, array $productTryShipList)
 
 setItemsResultAfterReserve (Sale\Result $resultAfterReserve)
 
 setItemsResultAfterShip (Sale\Result $resultAfterShip)
 
 createItemsResultAfterDeliver (Sale\Result $resultAfterDeliver)
 
 tryShip ()
 
 isNeedShip ()
 
 checkBarcode ()
 
 reserve ()
 
 ship ()
 
 getBundleItems ()
 
 deliver ()
 
 viewProduct ()
 
 getProductStores ()
 
 recurring ()
 
 createItemsResultAfterRecurring (Sale\Result $resultAfterDeliver)
 

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

static create (array $context)
 

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

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

Методы

◆ addBasketItem()

addBasketItem ( Sale\BasketItemBase  $basketItem)
Аргументы
Sale\BasketItemBase$basketItem

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

34  {
35  $providerName = $basketItem->getProviderName();
36  if (empty($providerName))
37  {
38  $providerName = $basketItem->getCallbackFunction();
39  }
40  $builder = $this->createBuilder($providerName);
41  $builder->addProductByBasketItem($basketItem);
42  }

◆ addBasketItemBarcodeData()

addBasketItemBarcodeData ( Sale\BasketItem  $basketItem,
array  $barcodeParams 
)
Аргументы
Sale\BasketItem$basketItem
array$barcodeParams

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

100  {
101  $providerName = $basketItem->getProviderName();
102  if (empty($providerName))
103  {
104  $providerName = $basketItem->getCallbackFunction();
105  }
106  $builder = $this->createBuilder($providerName);
107  $builder->addBasketItemBarcodeData($barcodeParams);
108  }

◆ addProductData()

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

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

80  {
81  if (empty($productData['PRODUCT_ID']))
82  {
83  throw new Main\ArgumentNullException('PRODUCT_ID');
84  }
85 
86  if (empty($productData['PROVIDER_NAME']))
87  {
88  throw new Main\ArgumentNullException('PROVIDER_NAME');
89  }
90 
91  $builder = $this->createBuilder($productData['PROVIDER_NAME']);
92  $builder->addProductById($productData['PRODUCT_ID']);
93  }

◆ addShipmentItem()

addShipmentItem ( Sale\ShipmentItem  $shipmentItem)
Аргументы
Sale\ShipmentItem$shipmentItem

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

48  {
49  $basketItem = $shipmentItem->getBasketItem();
50  if (!$basketItem)
51  {
52  return;
53  }
54 
55  $providerName = $basketItem->getProviderName();
56  if (empty($providerName))
57  {
58  $providerName = $basketItem->getCallbackFunction();
59  }
60  $builder = $this->createBuilder($providerName);
61 
62  $builder->addProductByShipmentItem($shipmentItem);
63  }

◆ addShipmentProductData()

addShipmentProductData ( array  $shipmentProductData)
Аргументы
array$shipmentProductData

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

69  {
70  $builder = $this->createBuilder($shipmentProductData['PROVIDER_NAME']);
71  $builder->addProductByShipmentProductData($shipmentProductData);
72  }

◆ checkBarcode()

checkBarcode ( )
Возвращает
Sale\Result

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

328  {
329  return $this->callBuilderMethod('checkBarcode', 'BARCODE_CHECK_LIST');
330  }

◆ create()

static create ( array  $context)
static
Аргументы
array$context
Возвращает
static

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

23  {
24  $creator = new static();
25  $creator->context = $context;
26 
27  return $creator;
28  }

◆ createItemForReserve()

createItemForReserve ( Sale\ShipmentItem  $shipmentItem)
Аргументы
Sale\ShipmentItem$shipmentItem
Возвращает
array
Исключения
Main

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

167  {
168  return $this->createMapForReserve($shipmentItem);
169  }

◆ createItemForShip()

createItemForShip ( Sale\ShipmentItem  $shipmentItem,
array  $needShipList = [] 
)
Аргументы
Sale\ShipmentItem$shipmentItem
array$needShipList
Возвращает
array
Исключения
Main

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

117  {
118  $basketItem = $shipmentItem->getBasketItem();
119 
120  /** @var Sale\ShipmentItemCollection $shipmentItemCollection */
121  $shipmentItemCollection = $shipmentItem->getCollection();
122 
123  if (!$shipmentItemCollection)
124  {
125  throw new Main\ObjectNotFoundException('Entity "ShipmentItemCollection" not found');
126  }
127 
128  $shipment = $shipmentItemCollection->getShipment();
129  if (!$shipment)
130  {
131  throw new Main\ObjectNotFoundException('Entity "Shipment" not found');
132  }
133 
134  $quantity = floatval($shipmentItem->getQuantity());
135 
136  if ($shipment->needShip() == Sale\Internals\Catalog\Provider::SALE_TRANSFER_PROVIDER_SHIPMENT_NEED_SHIP)
137  {
138  if ($quantity > 0)
139  {
140  $quantity *= -1;
141  }
142  }
143 
144  $providerName = $basketItem->getProviderName();
145  $providerName = static::clearProviderName($providerName);
146  if (empty($needShipList[$providerName]) && $shipmentItem->getReservedQuantity() > 0)
147  {
148  $quantity = 0;
149  }
150 
151  return array(
152  'PROVIDER_NAME' => $basketItem->getProviderName(),
153  'SHIPMENT_ITEM' => $shipmentItem,
154  'QUANTITY' => $quantity,
155  'RESERVED_QUANTITY' => $shipmentItem->getReservedQuantity(),
156  'NEED_RESERVE' => $shipmentItem->needReserve(),
157  );
158  }
Class RestHandler \Handlers\PaySystem.

◆ createItemForUnreserve()

createItemForUnreserve ( Sale\ShipmentItem  $shipmentItem)
Аргументы
Sale\ShipmentItem$shipmentItem
Возвращает
array
Исключения
Main

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

178  {
179  return $this->createMapForReserve($shipmentItem, false);
180  }

◆ createItemsResultAfterDeliver()

createItemsResultAfterDeliver ( Sale\Result  $resultAfterDeliver)
Аргументы
Sale\Result$resultAfterDeliver
Возвращает
Sale\Result

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

302  {
303  return $this->callBuilderMethod('createItemsResultAfterDeliver', 'RESULT_AFTER_DELIVER_LIST', $resultAfterDeliver);
304  }

◆ createItemsResultAfterRecurring()

createItemsResultAfterRecurring ( Sale\Result  $resultAfterDeliver)
Аргументы
Sale\Result$resultAfterDeliver
Возвращает
Sale\Result

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

394  {
395  return $this->callBuilderMethod('createItemsResultAfterDeliver', 'RESULT_AFTER_DELIVER_LIST', $resultAfterDeliver);
396  }

◆ deliver()

deliver ( )
Возвращает
Sale\Result

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

360  {
361  return $this->callBuilderMethod('deliver', 'DELIVER_PRODUCTS_LIST');
362  }

◆ getAvailableQuantity()

getAvailableQuantity ( )
Возвращает
Sale\Result

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

234  {
235  return $this->callBuilderMethod('getAvailableQuantity', 'AVAILABLE_QUANTITY_LIST');
236  }

◆ getAvailableQuantityAndPrice()

getAvailableQuantityAndPrice ( )
Возвращает
Sale\Result

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

242  {
243  return $this->callBuilderMethod('getAvailableQuantityAndPrice', 'PRODUCT_DATA_LIST');
244  }

◆ getBundleItems()

getBundleItems ( )
Возвращает
Sale\Result

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

352  {
353  return $this->callBuilderMethod('getBundleItems', 'BUNDLE_LIST');
354  }

◆ getProductData()

getProductData ( )
Возвращает
Sale\Result

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

226  {
227  return $this->callBuilderMethod('getProductData', 'PRODUCT_DATA_LIST');
228  }

◆ getProductStores()

getProductStores ( )
Возвращает
Sale\Result

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

376  {
377  return $this->callBuilderMethod('getProductStores', 'PRODUCT_STORES_LIST');
378  }

◆ isNeedShip()

isNeedShip ( )
Возвращает
Sale\Result

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

319  {
320  return $this->callBuilderMethod('isNeedShip', 'IS_NEED_SHIP');
321  }

◆ recurring()

recurring ( )
Возвращает
Sale\Result

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

384  {
385  return $this->callBuilderMethod('recurring', 'RECURRING_PRODUCTS_LIST');
386  }

◆ reserve()

reserve ( )
Возвращает
Sale\Result

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

336  {
337  return $this->callBuilderMethod('reserve', 'RESERVED_PRODUCTS_LIST');
338  }

◆ setItemsResultAfterReserve()

setItemsResultAfterReserve ( Sale\Result  $resultAfterReserve)
Аргументы
Sale\Result$resultAfterReserve
Возвращает
Sale\Result

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

282  {
283  return $this->callBuilderMethod('setItemsResultAfterReserve', 'RESULT_AFTER_RESERVE_LIST', $resultAfterReserve);
284  }

◆ setItemsResultAfterShip()

setItemsResultAfterShip ( Sale\Result  $resultAfterShip)
Аргументы
Sale\Result$resultAfterShip
Возвращает
Sale\Result

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

292  {
293  return $this->callBuilderMethod('setItemsResultAfterShip', 'RESULT_AFTER_SHIP_LIST', $resultAfterShip);
294  }

◆ setItemsResultAfterTryShip()

setItemsResultAfterTryShip ( PoolQuantity  $pool,
array  $productTryShipList 
)
Аргументы
PoolQuantity$pool
array$productTryShipList
Возвращает
Sale\Result

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

253  {
254  $result = new Sale\Result();
255 
256  /** @var ProviderBuilderBase $builder */
257  foreach ($this->pool as $builder)
258  {
259  $providerName = $builder->getProviderName();
260 
261  if (!$productTryShipList[$providerName])
262  {
263  continue;
264  }
265 
266  $r = $builder->setItemsResultAfterTryShip($pool, $productTryShipList[$providerName]);
267  if (!$r->isSuccess())
268  {
269  $result->addErrors($r->getErrors());
270  }
271  }
272 
273  return $result;
274  }

◆ ship()

ship ( )
Возвращает
Sale\Result

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

344  {
345  return $this->callBuilderMethod('ship', 'SHIPPED_PRODUCTS_LIST');
346  }

◆ tryShip()

tryShip ( )
Возвращает
Sale\Result

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

311  {
312  return $this->callBuilderMethod('tryShip', 'TRY_SHIP_PRODUCTS_LIST');
313  }

◆ viewProduct()

viewProduct ( )
Возвращает
Sale\Result

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

368  {
369  return $this->callBuilderMethod('viewProduct', 'VIEW_PRODUCTS_LIST');
370  }

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