...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/tracking/entity.php
- Класс: Bitrix\Crm\Tracking\Entity
- Вызов: Entity::checkAttrWindow
static function checkAttrWindow($entityTypeId, $entityId, $fields) { if (!in_array($entityTypeId, [\CCrmOwnerType::Deal, \CCrmOwnerType::Lead], true)) { return; } // only clean entities, not tracing if (!empty($fields['UTM_SOURCE'])) { return; } // check option in settings if (!Settings::isAttrWindowOffline()) { return; } if (!empty($fields['CONTACT_ID'])) { $queryEntityTypeId = \CCrmOwnerType::Contact; $queryEntityId = $fields['CONTACT_ID']; } elseif (!empty($fields['COMPANY_ID'])) { $queryEntityTypeId = \CCrmOwnerType::Company; $queryEntityId = $fields['COMPANY_ID']; } else { return; } // fetch last trace with source ID $row = Tracking\Internals\TraceTable::getTraceByEntity($queryEntityTypeId, $queryEntityId); if (!$row || !$row['SOURCE_ID']) { return; } if (!($row['DATE_CREATE'] instanceof DateTime)) { return; } // check attribution window $row['DATE_CREATE']->add(Settings::getAttrWindow() . ' day'); if ($row['DATE_CREATE']->getTimestamp() < time()) { return; } $traceId = Trace::create()->setSource($row['SOURCE_ID'])->save(); Trace::appendEntity($traceId, $entityTypeId, $entityId); }