- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entityrequisite.php
- Класс: Bitrix\Crm\EntityRequisite
- Вызов: EntityRequisite::delete
public function delete($id, $options = array())
{
$requisite = $this->getList([
'filter' => ['=ID' => $id],
'select' => array_merge(['ID'], self::getFileFields()),
'limit' => 1,
])->fetch();
$entityInfo = self::getOwnerEntityById($id);
EntityLink::unregisterByRequisite($id);
RequisiteAddress::deleteByEntityId($id);
$bankDetail = EntityBankDetail::getSingleInstance();
$bankDetail->deleteByEntity(CCrmOwnerType::Requisite, $id);
$result = RequisiteTable::delete($id);
if ($result->isSuccess())
{
foreach (self::getFileFields() as $fileField)
{
if ($requisite[$fileField] > 0)
{
\CFile::Delete($requisite[$fileField]);
}
}
}
if ($result->isSuccess()
&& \CCrmOwnerType::IsDefined($entityInfo['ENTITY_TYPE_ID']) && $entityInfo['ENTITY_ID'] > 0)
{
DuplicateRequisiteCriterion::RegisterByEntity($entityInfo['ENTITY_TYPE_ID'], $entityInfo['ENTITY_ID']);
//region Register volatile duplicate criterion fields
DuplicateVolatileCriterion::register(
$entityInfo['ENTITY_TYPE_ID'],
$entityInfo['ENTITY_ID'],
[FieldCategory::REQUISITE]
);
//endregion Register volatile duplicate criterion fields
}
//region Send event
if ($result->isSuccess())
{
$event = new Main\Event('crm', 'OnAfterRequisiteDelete', array('id' => $id));
$event->send();
}
//endregion Send event
return $result;
}