Получение сделок по контакту
Примеры получения сделок в Битрикс24, связанных с определенным контактом, с различными фильтрами и параметрами.
Получение всех сделок по контакту со счетчиком
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом, с учетом направления и стадии, а также подсчитать их количество.
use Bitrix\Crm\DealTable;
// CONTACT_ID - ID Контакта, CATEGORY_ID - ID напралвения сделок, STAGE_ID - код стадии, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CONTACT_ID' => "{{ID}}",
'CATEGORY_ID' => 13,
'STAGE_ID' => 'C13:WON'];
$arSelect =[
'ID'
];
$arDeals = DealTable::getList([
'order' =>['ID' => 'DESC'],
'filter' => $arFilter,
'select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$deals =[];
foreach ($arDeals as $deal){$deals[]= $deal['ID'];}
$count = count($deals);
$rootActivity = $this->GetRootActivity();
// Присваиваем переменным в БП (DealIDs, TotalAmount) значения массива с идентификаторами сделок и их кол-ва
$rootActivity->SetVariable("DealIDs", $deals);
$rootActivity->SetVariable("count_deal", $count);
Получение всех сделок по контакту, направлению, стадии и разные валюты в разных переменных
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом, с учетом направления и стадии, а также суммы сделок в разных валютах.
use Bitrix\Crm\DealTable;
// CONTACT_ID - ID Контакта, CATEGORY_ID - ID напралвения сделок, STAGE_ID - код стадии, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CONTACT_ID' => "{{ID}}",
'CATEGORY_ID' => 13,
'STAGE_ID' => 'C13:WON'];
$arSelect =[
'ID',
'OPPORTUNITY',
'CURRENCY_ID'];
$arDeals = DealTable::getList([
'order' =>['ID' => 'DESC'],
'filter' => $arFilter,
'select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$deals =[];
$rub = 0;
$dollar = 0;
foreach ($arDeals as $deal){
$deals[]= $deal['ID'];
if ($deal['CURRENCY_ID']== 'RUB'){
$rub += $deal['OPPORTUNITY'];}elseif ($deal['CURRENCY_ID']== 'USD'){
$dollar += $deal['OPPORTUNITY'];}
}
$rootActivity = $this->GetRootActivity();
// Присваиваем переменным в БП (DealIDs, rub, dollar) значения массива с идентификаторами сделок и сумм сделок в разных валютах
$rootActivity->SetVariable("DealIDs", $deals);
$rootActivity->SetVariable("rub", $rub);
$rootActivity->SetVariable("dollar", $dollar);
Получение всех сделок по контакту, направлению, стадии с суммами по сделкам, если они все в одной валюте
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом, с учетом направления и стадии, а также общую сумму сделок, если они все в одной валюте.
use Bitrix\Crm\DealTable;
// CONTACT_ID - ID Контакта, CATEGORY_ID - ID напралвения сделок, STAGE_ID - код стадии, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CONTACT_ID' => "{{ID}}",
'CATEGORY_ID' => 13,
'STAGE_ID' => 'C13:WON'
];
$arSelect =[
'ID',
'OPPORTUNITY'
];
$arDeals = DealTable::getList(['order' =>['ID' => 'DESC'],
'filter' => $arFilter,
'select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$deals =[];
$total = 0;
foreach ($arDeals as $deal){
$deals[]= $deal['ID'];
$total += $deal['OPPORTUNITY'];}
$rootActivity = $this->GetRootActivity();
// Присваиваем переменным в БП (DealIDs, TotalAmount) значения массива с идентификаторами сделок и общей суммы сделок
$rootActivity->SetVariable("DealIDs", $deals);
$rootActivity->SetVariable("TotalAmount", $total);
Получение всех сделок по контакту, направлению, стадии сделки
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом, с учетом направления и стадии.
use Bitrix\Crm\DealTable;
// CONTACT_ID - ID Контакта, CATEGORY_ID - ID напралвения сделок, STAGE_ID - код стадии, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CONTACT_ID' => "{{ID}}",
'CATEGORY_ID' => 13,
'STAGE_ID' => 'C13:WON'];
$arSelect =['ID'];
$arDeals = DealTable::getList(['order' =>['ID' => 'DESC'],
'filter' => $arFilter,
'select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$deals =[];
foreach ($arDeals as $deal){$deals[]= $deal['ID'];}$rootActivity = $this->GetRootActivity();
// Присваиваем переменной в БП "DealIDs" значение массива с идентификаторами успешных сделок по направлению с ID 13
$rootActivity->SetVariable("DealIDs", $deals);
Получение всех сделок по контакту, направлению
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом, с учетом направления.
use Bitrix\Crm\DealTable;
// CONTACT_ID - ID Контакта, CATEGORY_ID - ID напралвения сделок, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CONTACT_ID' => "{{ID}}",
'CATEGORY_ID' => 13,
$arSelect =['ID'];
$arDeals = DealTable::getList(['order' =>['ID' => 'DESC'],
'filter' => $arFilter,
'select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$deals =[];
foreach ($arDeals as $deal){$deals[]= $deal['ID'];}$rootActivity = $this->GetRootActivity();
// Присваиваем переменной в БП "DealIDs" значение массива с идентификаторами успешных сделок по направлению с ID 13
$rootActivity->SetVariable("DealIDs", $deals);
Получение всех сделок по контакту
Этот PHP-код позволяет получить список ID сделок, связанных с определенным контактом.
use Bitrix\Crm\ContactTable;
$arSelect =['ID'];
$arContacts = ContactTable::getList(['select' => $arSelect,
'cache' =>['ttl' => 3600]
])->fetchAll();
$contactIDs =[];
foreach ($arContacts as $contact){$contactIDs[]= $contact['ID'];}
$rootActivity = $this->GetRootActivity(); // Получаем корневую активность бизнес-процесса
$rootActivity->SetVariable("ContactIDs", $contactIDs); // Присваиваем переменной ContactIDs значение массива с идентификаторами контактов