- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/model/vat.php
- Класс: BitrixCatalogModelVat
- Вызов: Vat::prepareForAdd
static function prepareForAdd(ORMDataAddResult $result, $id, array &$data): void
{
$fields = $data['fields'];
parent::prepareForAdd($result, $id, $fields);
if (!$result->isSuccess())
{
return;
}
static $defaultValues = null,
$blackList = null;
if ($defaultValues === null)
{
$defaultValues = [
'ACTIVE' => 'Y',
'SORT' => 100,
'NAME' => null,
'EXCLUDE_VAT' => 'N',
'RATE' => null,
'XML_ID' => null,
];
$blackList = [
'ID' => true
];
}
$fields = array_merge(
$defaultValues,
array_diff_key($fields, $blackList)
);
if ($fields['ACTIVE'] !== 'N')
{
$fields['ACTIVE'] = $defaultValues['ACTIVE'];
}
$fields['SORT'] = static::prepareIntValue($fields['SORT']);
if ($fields['SORT'] === null || $fields['SORT'] <= 0)
{
$fields['SORT'] = $defaultValues['SORT'];
}
$fields['NAME'] = static::prepareStringValue($fields['NAME']);
if ($fields['NAME'] === null)
{
$result->addError(new ORMEntityError(
Loc::getMessage('BX_CATALOG_MODEL_VAT_ERR_WRONG_NAME')
));
}
if ($fields['EXCLUDE_VAT'] !== 'Y')
{
$fields['EXCLUDE_VAT'] = $defaultValues['EXCLUDE_VAT'];
}
if ($fields['EXCLUDE_VAT'] === 'Y')
{
$fields['RATE'] = null;
}
else
{
$fields['RATE'] = static::prepareFloatValue($fields['RATE']);
if ($fields['RATE'] === null || $fields['RATE'] < 0)
{
$result->addError(new ORMEntityError(
Loc::getMessage('BX_CATALOG_MODEL_VAT_ERR_WRONG_RATE')
));
}
}
$fields['XML_ID'] = static::prepareStringValue($fields['XML_ID']);
if ($fields['XML_ID'] !== null)
{
$fields['XML_ID'] = mb_substr($fields['XML_ID'], 0, 255);
}
if ($result->isSuccess())
{
$fields['TIMESTAMP_X'] = new MainTypeDateTime();
$data['fields'] = $fields;
}
unset($fields);
}