Коллеги, может быть кто-то сможет помочь советом?
В CRM, в карточках лидов и сделок есть фильтр "Дела". В нем можно использовать вариант фильтрации "Нет дел".
Каким образом можно реализовать аналогогичную выборку в PHP (для использования внутри бизнес процесса)?
Например мы знаем ID ответственного за сделку и нам нужно получить кол-во активных сделок этого ответственного без дел (или даже id таких сделок).
С помощью CCrmDeal::GetListEx получаем все активные сделки юзера. Далее с помощью CCrmActivity::GetList можно получить дела, связанные с этими сделками и, с учетом статуса, обработать их.
Что-то в таком духе:
На выходе имеем $deal_free, равную кол-ву сделок, у которых нет незавершенных дел.
Однако штатный фильтр "Дела" явно учитывает не только активити, но и другие элементы, связанные со сделкой. Например задачи. Если со сделкой связана активная задача, то эта сделка не попадет в выдачу при штатной фильтрации "Нет дел". При этом CCrmActivity задачи не учитывает (что логично), и вышенаписанный скрипт зачтет такую сделку в список "нет дел".
Собственно вопрос, есть ли какой либо относительно простой метод получить в PHP выдачу сущностей аналогичную штатному фильтру "Дела" - "Нет дел"?
Ну и дополнительно, а что собстенно этот фильтр учитывает в принципе? Что-то кроме задач и дел туда может попасть?
В CRM, в карточках лидов и сделок есть фильтр "Дела". В нем можно использовать вариант фильтрации "Нет дел".
Каким образом можно реализовать аналогогичную выборку в PHP (для использования внутри бизнес процесса)?
Например мы знаем ID ответственного за сделку и нам нужно получить кол-во активных сделок этого ответственного без дел (или даже id таких сделок).
С помощью CCrmDeal::GetListEx получаем все активные сделки юзера. Далее с помощью CCrmActivity::GetList можно получить дела, связанные с этими сделками и, с учетом статуса, обработать их.
Что-то в таком духе:
Код |
---|
$deal_free = 0; $deal = CCrmDeal::GetListEx(array(), array('ASSIGNED_BY_ID'=>$user_id,'CLOSED'=>'N'), false, false, array()); while ($ar = $deal->Fetch()) { if ($ar['CATEGORY_ID'] == '6' or $ar['CATEGORY_ID'] == '7') { $deal_free_bool = 0; $deal_activity = CCrmActivity::GetList(array(), array('OWNER_ID'=>$ar['ID'], 'STATUS'=>1), false, false, array()); while ($ar_deal = $deal_activity->Fetch()) { $deal_free_bool = 1; } if ($deal_free_bool != 1) { $deal_free = $deal_free+1; } } } |
Однако штатный фильтр "Дела" явно учитывает не только активити, но и другие элементы, связанные со сделкой. Например задачи. Если со сделкой связана активная задача, то эта сделка не попадет в выдачу при штатной фильтрации "Нет дел". При этом CCrmActivity задачи не учитывает (что логично), и вышенаписанный скрипт зачтет такую сделку в список "нет дел".
Собственно вопрос, есть ли какой либо относительно простой метод получить в PHP выдачу сущностей аналогичную штатному фильтру "Дела" - "Нет дел"?
Ну и дополнительно, а что собстенно этот фильтр учитывает в принципе? Что-то кроме задач и дел туда может попасть?