1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
basketproperties.php
См. документацию.
1<?php
2
3namespace Bitrix\Sale\Rest\Entity;
4
5use Bitrix\Main\Error;
6use Bitrix\Sale\Rest\Attributes;
7use Bitrix\Sale\Result;
8
9class BasketProperties extends Base
10{
11 public function getFields()
12 {
13 return [
14 'ID' => [
15 'TYPE' => self::TYPE_INT,
16 'ATTRIBUTES' => [
18 ],
19 ],
20 'BASKET_ID' => [
21 'TYPE' => self::TYPE_INT,
22 'ATTRIBUTES' => [
25 ],
26 ],
27 'NAME' => [
28 'TYPE' => self::TYPE_STRING,
29 'ATTRIBUTES' => [
31 ],
32 ],
33 'VALUE' => [
34 'TYPE' => self::TYPE_STRING,
35 'ATTRIBUTES' => [
37 ],
38 ],
39 'CODE' => [
40 'TYPE' => self::TYPE_STRING,
41 'ATTRIBUTES' => [
43 ],
44 ],
45 'SORT' => [
46 'TYPE' => self::TYPE_INT,
47 ],
48 'XML_ID' => [
49 'TYPE' => self::TYPE_STRING,
50 ],
51 ];
52 }
53
54 public function internalizeFieldsModify($fields, $fieldsInfo=[])
55 {
56 $result = [];
57
58 $fieldsInfo = empty($fieldsInfo) ? $this->getFields() : $fieldsInfo;
59 $listFieldsInfoAdd = $this->getListFieldInfo(
60 $fieldsInfo,
61 [
62 'filter' => [
63 'ignoredAttributes' => [
66 ],
67 ],
68 ]
69 );
70 $listFieldsInfoUpdate = $this->getListFieldInfo(
71 $fieldsInfo,
72 [
73 'filter' => [
74 'ignoredAttributes' => [
78 ],
79 'skipFields' => [
80 'ID',
81 ],
82 ],
83 ]
84 );
85
86 foreach ($fields['BASKET_ITEM']['PROPERTIES'] as $k => $item)
87 {
88 $result['BASKET_ITEM']['PROPERTIES'][$k] = $this->internalizeFields(
89 $item,
90 $this->isNewItem($item) ? $listFieldsInfoAdd : $listFieldsInfoUpdate
91 );
92 }
93
94 return $result;
95 }
96
97 public function checkFieldsModify($fields)
98 {
99 $result = new Result();
100
101 $emptyFields = [];
102
103 if (!isset($fields['BASKET_ITEM']['ID']))
104 {
105 $emptyFields[] = '[basketItem][id]';
106 }
107 if (!isset($fields['BASKET_ITEM']['PROPERTIES']) || !is_array($fields['BASKET_ITEM']['PROPERTIES']))
108 {
109 $emptyFields[] = '[basketItem][properties][]';
110 }
111
112 if (!empty($emptyFields))
113 {
114 $result->addError(new Error(implode(', ', $emptyFields)));
115 }
116 else
117 {
118 $result = parent::checkFieldsModify($fields);
119 }
120
121 return $result;
122 }
123
125 {
126 $result = new Result();
127
128 $listFieldsInfoAdd = $this->getListFieldInfo(
129 $this->getFields(),
130 [
131 'filter' => [
132 'ignoredAttributes' => [
135 ],
136 ],
137 ]
138 );
139 $listFieldsInfoUpdate = $this->getListFieldInfo(
140 $this->getFields(),
141 [
142 'filter' => [
143 'ignoredAttributes' => [
147 ],
148 ],
149 ]
150 );
151
152 foreach ($fields['BASKET_ITEM']['PROPERTIES'] as $k => $item)
153 {
154 $required = $this->checkRequiredFields(
155 $item,
156 $this->isNewItem($item) ? $listFieldsInfoAdd : $listFieldsInfoUpdate
157 );
158 if (!$required->isSuccess())
159 {
160 $result->addError(new Error(
161 '[properties][' . $k . '] - '
162 . implode(', ', $required->getErrorMessages())
163 . '.'
164 ));
165 }
166 }
167
168 return $result;
169 }
170}
Определения error.php:15
const Hidden
Определения attributes.php:8
const Required
Определения attributes.php:11
const ReadOnly
Определения attributes.php:9
const Immutable
Определения attributes.php:10
getListFieldInfo(array $fieldsInfo, $params=[])
Определения base.php:62
internalizeFields($fields, array $fieldsInfo)
Определения base.php:296
checkRequiredFields($fields, array $fieldsInfo, $params=[])
Определения base.php:736
isNewItem($fields)
Определения base.php:95
internalizeFieldsModify($fields, $fieldsInfo=[])
Определения basketproperties.php:54
$result
Определения get_property_values.php:14
$k
Определения template_pdf.php:567
$fields
Определения yandex_run.php:501