45 $fields =
$data[
'fields'];
46 parent::prepareForAdd($result, $id, $fields);
47 if (!$result->isSuccess())
71 $fields = array_merge(
73 array_diff_key($fields, $blackList)
76 if ($fields[
'ACTIVE'] !==
'N')
81 $fields[
'SORT'] = static::prepareIntValue($fields[
'SORT']);
82 if ($fields[
'SORT'] ===
null || $fields[
'SORT'] <= 0)
87 $fields[
'NAME'] = static::prepareStringValue($fields[
'NAME']);
88 if ($fields[
'NAME'] ===
null)
91 Loc::getMessage(
'BX_CATALOG_MODEL_VAT_ERR_WRONG_NAME')
95 if ($fields[
'EXCLUDE_VAT'] !==
'Y')
99 if ($fields[
'EXCLUDE_VAT'] ===
'Y')
101 $fields[
'RATE'] =
null;
105 $fields[
'RATE'] = static::prepareFloatValue($fields[
'RATE']);
106 if ($fields[
'RATE'] ===
null || $fields[
'RATE'] < 0)
109 Loc::getMessage(
'BX_CATALOG_MODEL_VAT_ERR_WRONG_RATE')
114 $fields[
'XML_ID'] = static::prepareStringValue($fields[
'XML_ID']);
115 if ($fields[
'XML_ID'] !==
null)
117 $fields[
'XML_ID'] = mb_substr($fields[
'XML_ID'], 0, 255);
120 if ($result->isSuccess())
123 $data[
'fields'] = $fields;
142 Loc::getMessage(
'BX_CATALOG_MODEL_VAT_ERR_WRONG_VAT_ID')
147 $fields =
$data[
'fields'];
148 parent::prepareForUpdate($result, $id, $fields);
149 if (!$result->isSuccess())
158 $fields = array_diff_key($fields, $blackList);
160 if (array_key_exists(
'ACTIVE', $fields))
163 $fields[
'ACTIVE'] !==
'Y'
164 && $fields[
'ACTIVE'] !==
'N'
167 unset($fields[
'ACTIVE']);
171 if (array_key_exists(
'NAME', $fields))
173 $value = static::prepareStringValue($fields[
'NAME']);
177 Loc::getMessage(
'BX_CATALOG_MODEL_VAT_ERR_WRONG_NAME')
182 if (array_key_exists(
'SORT', $fields))
184 $fields[
'SORT'] = static::prepareIntValue($fields[
'SORT']);
185 if ($fields[
'SORT'] ===
null || $fields[
'SORT'] <= 0)
187 unset($fields[
'SORT']);
191 if (array_key_exists(
'EXCLUDE_VAT', $fields))
194 $fields[
'EXCLUDE_VAT'] !==
'Y'
195 && $fields[
'EXCLUDE_VAT'] !==
'N'
198 unset($fields[
'EXCLUDE_VAT']);
203 if (array_key_exists(
'RATE', $fields))
206 if (isset($fields[
'EXCLUDE_VAT']))
208 $excludeVat = $fields[
'EXCLUDE_VAT'];
212 $cache = static::getCacheItem($id,
true);
215 $excludeVat = $cache[
'EXCLUDE_VAT'];
220 if ($excludeVat ===
'Y')
222 $fields[
'RATE'] =
null;
226 $fields[
'RATE'] = static::prepareFloatValue($fields[
'RATE']);
227 if ($fields[
'RATE'] ===
null || $fields[
'RATE'] < 0)
230 Loc::getMessage(
'BX_CATALOG_MODEL_VAT_ERR_WRONG_RATE')
239 isset($fields[
'EXCLUDE_VAT'])
240 && $fields[
'EXCLUDE_VAT'] ===
'Y'
243 $fields[
'RATE'] =
null;
247 if (array_key_exists(
'XML_ID', $fields))
249 $fields[
'XML_ID'] = static::prepareStringValue($fields[
'XML_ID']);
250 if ($fields[
'XML_ID'] !==
null)
252 $fields[
'XML_ID'] = mb_substr($fields[
'XML_ID'], 0, 255);
256 if ($result->isSuccess())
259 $data[
'fields'] = $fields;