1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
SkuCollection.php
См. документацию.
1<?php
2
3namespace Bitrix\Catalog\v2\Sku;
4
5use Bitrix\Catalog\v2\BaseCollection;
6use Bitrix\Catalog\v2\BaseEntity;
7use Bitrix\Catalog\v2\IoC\ContainerContract;
8use Bitrix\Catalog\v2\IoC\Dependency;
9
19{
21 protected $container;
23 protected $factory;
24
26 {
27 $this->container = $container;
28 $this->factory = $factory;
29 }
30
31 public function create(): BaseSku
32 {
34 $parent = $this->getParent();
35
36 if ($parent && $parent->isSimple())
37 {
39 $converter = $this->container->get(Dependency::PRODUCT_CONVERTER);
40 $converter->convert($parent, $converter::SKU_PRODUCT);
41 }
42
43 $sku = $this->createEntity();
44 $this->add($sku);
45
46 if (!$sku->hasName() && $parent->hasName())
47 {
48 $sku->setName($parent->getName());
49 }
50
51 return $sku;
52 }
53
54 protected function createEntity(): BaseSku
55 {
57 $parent = $this->getParent();
58
59 if ($parent && $parent->isSimple())
60 {
62 }
63 else
64 {
66 }
67
68 return $this->factory->createEntity($type);
69 }
70
71 protected function getAlreadyLoadedFilter(): array
72 {
73 $filter = parent::getAlreadyLoadedFilter();
74
75 foreach ($this->items as $item)
76 {
77 if (!$item->isNew())
78 {
79 $filter['!ID'][] = $item->getId();
80 }
81 }
82
83 return $filter;
84 }
85
90 public function getFirst(callable $callback = null): ?BaseEntity
91 {
92 return parent::getFirst($callback);
93 }
94}
$type
Определения options.php:106
add(BaseEntity ... $items)
Определения BaseCollection.php:50
getFirst(callable $callback=null)
Определения SkuCollection.php:90
__construct(ContainerContract $container, SkuFactory $factory)
Определения SkuCollection.php:25
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$filter
Определения iblock_catalog_list.php:54