1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
StoreProductRepository.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Catalog\v2\StoreProduct;
4
5
use Bitrix\Catalog\v2\BaseEntity;
6
use Bitrix\Catalog\v2\Sku\BaseSku;
7
use Bitrix\Main\Result;
8
use Bitrix\Catalog;
9
18
19
class
StoreProductRepository
implements
StoreProductRepositoryContract
20
{
22
protected
$factory
;
23
24
public
function
__construct
(
StoreProductFactory
$factory
)
25
{
26
$this->factory =
$factory
;
27
}
28
31
public
function
getEntityById
(
int
$id): ?
BaseEntity
32
{
33
if
($id <= 0)
34
{
35
throw
new \OutOfRangeException($id);
36
}
37
38
$entities = $this->
getEntitiesBy
([
39
'filter'
=> [
40
'=ID'
=> $id,
41
],
42
]);
43
44
return
reset($entities) ?:
null
;
45
}
46
50
public
function
getEntitiesBy
(
$params
):
array
51
{
52
$entities = [];
53
54
foreach
($this->
getList
((
array
)
$params
) as $item)
55
{
56
$entities[] = $this->
createEntity
($item);
57
}
58
59
return
$entities;
60
}
61
62
public
function
getProductId
(
BaseEntity
$entity
): ?int
63
{
64
$id =
null
;
65
66
$parent =
$entity
->getParent();
67
68
if
($parent && !$parent->isNew())
69
{
70
$id = $parent->getId();
71
}
72
73
return
$id;
74
}
75
79
public
function
save
(
BaseEntity
...$entities):
Result
80
{
81
return
new
Result
();
82
}
83
87
public
function
delete
(
BaseEntity
...$entities):
Result
88
{
89
return
new
Result
();
90
}
91
92
public
function
getCollectionByParent
(
BaseSku
$sku):
StoreProductCollection
93
{
94
if
($sku->
isNew
())
95
{
96
return
$this->
createCollection
();
97
}
98
99
$result
= $this->
getByProductId
($sku->
getId
());
100
101
return
$this->
createCollection
(
$result
);
102
}
103
104
protected
function
getByProductId
(
int
$skuId):
array
105
{
106
return
$this->
getList
([
107
'filter'
=> [
108
'=PRODUCT_ID'
=> $skuId,
109
],
110
]);
111
}
112
113
protected
function
getList
(
array
$params
):
array
114
{
115
$rows
=
Catalog\StoreProductTable::getList
(
$params
)->fetchAll();
116
117
return
array_column(
$rows
,
null
,
'STORE_ID'
);
118
}
119
120
protected
function
createEntity
(
array
$fields
= []):
StoreProduct
121
{
122
$entity
= $this->factory->createEntity();
123
124
$entity
->initFields(
$fields
);
125
126
return
$entity
;
127
}
128
129
protected
function
createCollection
(
array
$entityFields = []):
StoreProductCollection
130
{
131
$collection = $this->factory->createCollection();
132
133
foreach
($this->getStoreSettings() as
$settings
)
134
{
135
$fields
= $entityFields[
$settings
[
'ID'
]]
136
?? [
137
'STORE_ID'
=>
$settings
[
'ID'
],
138
];
139
$storeProduct = $this->
createEntity
(
$fields
);
140
$storeProduct->setSettings(
$settings
);
141
$collection->add($storeProduct);
142
}
143
144
return
$collection;
145
}
146
147
protected
function
addInternal
(
array
$fields
):
Result
148
{
149
$result
=
new
Result
();
150
151
$res
=
Catalog\StoreProductTable::add
(
$fields
);
152
if
(
$res
->isSuccess())
153
{
154
$result
->setData([
'ID'
=>
$res
->getId()]);
155
}
156
else
157
{
158
$result
->addErrors(
$res
->getErrors());
159
}
160
161
return
$result
;
162
}
163
164
protected
function
updateInternal
(
int
$id,
array
$fields
):
Result
165
{
166
$result
=
new
Result
();
167
168
$res
=
Catalog\StoreProductTable::update
($id,
$fields
);
169
170
if
(!
$res
->isSuccess())
171
{
172
$result
->addErrors(
$res
->getErrors());
173
}
174
175
return
$result
;
176
}
177
178
protected
function
deleteInternal
(
int
$id):
Result
179
{
180
$result
=
new
Result
();
181
182
$res
=
Catalog\StoreProductTable::delete
($id);
183
184
if
(!
$res
->isSuccess())
185
{
186
$result
->addErrors(
$res
->getErrors());
187
}
188
189
return
$result
;
190
}
191
192
private
function
getStoreSettings():
array
193
{
194
static
$storeSettings =
null
;
195
196
if
($storeSettings ===
null
)
197
{
198
$storeSettings = Catalog\StoreTable::getList([
199
'filter'
=> [
'=ACTIVE'
=>
'Y'
],
200
])->fetchAll();
201
}
202
203
return
$storeSettings;
204
}
205
}
Bitrix\Catalog\v2\BaseEntity
Определения
BaseEntity.php:22
Bitrix\Catalog\v2\BaseEntity\getId
getId()
Определения
BaseEntity.php:173
Bitrix\Catalog\v2\BaseEntity\isNew
isNew()
Определения
BaseEntity.php:168
Bitrix\Catalog\v2\Sku\BaseSku
Определения
BaseSku.php:34
Bitrix\Catalog\v2\StoreProduct\StoreProductCollection
Определения
StoreProductCollection.php:19
Bitrix\Catalog\v2\StoreProduct\StoreProductFactory
Определения
StoreProductFactory.php:16
Bitrix\Catalog\v2\StoreProduct\StoreProduct
Определения
StoreProduct.php:19
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository
Определения
StoreProductRepository.php:20
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\$factory
$factory
Определения
StoreProductRepository.php:22
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getEntitiesBy
getEntitiesBy($params)
Определения
StoreProductRepository.php:50
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getByProductId
getByProductId(int $skuId)
Определения
StoreProductRepository.php:104
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getProductId
getProductId(BaseEntity $entity)
Определения
StoreProductRepository.php:62
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\save
save(BaseEntity ... $entities)
Определения
StoreProductRepository.php:79
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\deleteInternal
deleteInternal(int $id)
Определения
StoreProductRepository.php:178
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getEntityById
getEntityById(int $id)
Определения
StoreProductRepository.php:31
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\addInternal
addInternal(array $fields)
Определения
StoreProductRepository.php:147
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\createEntity
createEntity(array $fields=[])
Определения
StoreProductRepository.php:120
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getList
getList(array $params)
Определения
StoreProductRepository.php:113
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\createCollection
createCollection(array $entityFields=[])
Определения
StoreProductRepository.php:129
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\getCollectionByParent
getCollectionByParent(BaseSku $sku)
Определения
StoreProductRepository.php:92
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\updateInternal
updateInternal(int $id, array $fields)
Определения
StoreProductRepository.php:164
Bitrix\Catalog\v2\StoreProduct\StoreProductRepository\__construct
__construct(StoreProductFactory $factory)
Определения
StoreProductRepository.php:24
Bitrix\Main\ORM\Data\DataManager\getList
static getList(array $parameters=array())
Определения
datamanager.php:431
Bitrix\Main\ORM\Data\DataManager\delete
static delete($primary)
Определения
datamanager.php:1644
Bitrix\Main\ORM\Data\DataManager\add
static add(array $data)
Определения
datamanager.php:877
Bitrix\Main\ORM\Data\DataManager\update
static update($primary, array $data)
Определения
datamanager.php:1256
array
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения
file_new.php:804
$res
$res
Определения
filter_act.php:7
$result
$result
Определения
get_property_values.php:14
$entity
$entity
Определения
group_bizproc_workflow_delete.php:17
Bitrix\Catalog\v2\StoreProduct\StoreProductRepositoryContract
Определения
StoreProductRepositoryContract.php:17
Bitrix\Sale\Discount\Result
Определения
compatibleformat.php:2
$settings
$settings
Определения
product_settings.php:43
$params
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']
Определения
template.php:799
$rows
$rows
Определения
options.php:264
$fields
$fields
Определения
yandex_run.php:501
bitrix
modules
catalog
lib
v2
StoreProduct
StoreProductRepository.php
Создано системой
1.14.0