- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/Factory/SmartDocument.php
- Класс: Bitrix\Crm\Service\Factory\SmartDocument
- Вызов: SmartDocument::getDeleteOperation
public function getDeleteOperation(Item $item, Context $context = null): Operation\Delete
{
$operation = parent::getDeleteOperation($item, $context);
$operation->addAction(
Operation::ACTION_BEFORE_SAVE,
new class extends Operation\Action {
public function process(Item $item): Result
{
$result = new Result();
if (\Bitrix\Crm\Settings\Crm::isDocumentSigningEnabled())
{
$document = Document::resolveByEntity('SMART', $item->getId());
if ($document && !$document->canBeChanged())
{
$result->addError(new \Bitrix\Main\Error(
Loc::getMessage('CRM_TYPE_SMART_DOCUMENT_DELETE_DENIED'),
'SIGN_ERROR_DENIED'
));
}
}
return $result;
}
}
);
$operation->addAction(
Operation::ACTION_AFTER_SAVE,
new class extends Operation\Action {
public function process(Item $item): Result
{
if (\Bitrix\Crm\Settings\Crm::isDocumentSigningEnabled())
{
$itemOld = \Bitrix\Crm\Service\Operation\Action::getItemBeforeSave();
if ($itemOld)
{
$document = Document::resolveByEntity('SMART', $itemOld->getId());
if ($document)
{
$document->unlink();
}
}
}
return new Result();
}
}
);
return $operation;
}