- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/entityproperty.php
- Класс: BitrixSaleEntityProperty
- Вызов: EntityProperty::getPreparedValueForSave
public function getPreparedValueForSave(EntityPropertyValue $propertyValue)
{
$value = $propertyValue->getField('VALUE');
if ($this->getType() == 'FILE')
{
$value = InputFile::asMultiple($value);
foreach ($value as $i => $file)
{
if (InputFile::isDeletedSingle($file))
{
unset($value[$i]);
}
else
{
if (InputFile::isUploadedSingle($file))
{
$fileId = CFile::SaveFile(array('MODULE_ID' => 'sale') + $file, 'sale/order/properties');
if (is_numeric($fileId))
{
$file = $fileId;
}
}
$value[$i] = InputFile::loadInfoSingle($file);
}
}
$property = $this->getFields();
$propertyValue->setField('VALUE', $value);
$value = InputFile::getValue($property, $value);
$originalFields = $propertyValue->getFields()->getOriginalValues();
foreach (
array_diff(
InputFile::asMultiple(InputFile::getValue($property, $originalFields['VALUE'])),
InputFile::asMultiple($value),
InputFile::asMultiple(InputFile::getValue($property, $property['DEFAULT_VALUE']))
)
as $fileId
)
{
CFile::Delete($fileId);
}
}
elseif ($this->getType() === 'ADDRESS' && MainLoader::includeModule('location'))
{
if (!is_array($value))
{
return null;
}
$address = Address::fromArray($value);
$result = $address->save();
if (!$result->isSuccess())
{
return null;
}
return (int)$result->getId();
}
return $value;
}