Получение сделок по средствам связи
Примеры получения сделок в Битрикс24 по номерам телефонов и адресам электронной почты, с различными фильтрами.
Получение сделок по телефонам и почте, находящихся в работе
Этот PHP-код позволяет получить список ID сделок, находящихся в работе, используя фильтрацию по номерам телефонов и адресам электронной почты контактов и компаний, связанных со сделками.
use Bitrix\Crm\DealTable;
$phoneString = "{{Phone}}";
$emailString = "{{E-mail}}";
$phoneNumbers = explode(", ", $phoneString);
$emailAddresses = explode(", ", $emailString);
$arFilter = array(
'LOGIC' => 'OR',
array('CONTACT.PHONE' => $phoneNumbers),
array('COMPANY.PHONE' => $phoneNumbers),
array('CONTACT.EMAIL' => $emailAddresses),
array('COMPANY.EMAIL' => $emailAddresses)
);
$arSelect = array('ID');
$arDeals = DealTable::getList(array(
'order' => array('ID' => 'DESC'),
'filter' => $arFilter,
'select' => $arSelect,
'cache' => array('ttl' => 3600)
))->fetchAll();
$dealIDs = array();
foreach ($arDeals as $deal) {
$dealIDs[] = $deal['ID'];
}
// Проверяем, являются ли сделки открытыми
$filteredDealIDs = array();
foreach ($dealIDs as $dealID) {
$deal = DealTable::getById($dealID)->fetch();
if ($deal['CLOSED'] === 'N') {
$filteredDealIDs[] = $dealID;
}
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("DealIDs", $filteredDealIDs);
Получение сделок по телефонам, почте и направлению, находящихся в работе
Этот PHP-код позволяет получить список ID сделок, находящихся в работе и имеющих определенное направление, используя фильтрацию по номерам телефонов и адресам электронной почты.
use Bitrix\Crm\DealTable;
$phoneString = "{{Phone}}";
$emailString = "{{E-mail}}";
$dealDirection = 13; // Замените 13 на ваше значение CATEGORY_ID направления сделки
$phoneNumbers = explode(", ", $phoneString);
$emailAddresses = explode(", ", $emailString);
$arFilter = array(
'LOGIC' => 'OR',
array('CONTACT.PHONE' => $phoneNumbers),
array('COMPANY.PHONE' => $phoneNumbers),
array('CONTACT.EMAIL' => $emailAddresses),
array('COMPANY.EMAIL' => $emailAddresses)
);
$arSelect = array('ID');
$arDeals = DealTable::getList(array(
'order' => array('ID' => 'DESC'),
'filter' => $arFilter,
'select' => $arSelect,
'cache' => array('ttl' => 3600)
))->fetchAll();
$dealIDs = array();
foreach ($arDeals as $deal) {
$dealIDs[] = $deal['ID'];
}
// Проверяем, являются ли сделки открытыми и имеют указанное направление
$filteredDealIDs = array();
foreach ($dealIDs as $dealID) {
$deal = DealTable::getById($dealID)->fetch();
if ($deal['CLOSED'] === 'N' && $deal['CATEGORY_ID'] == $dealDirection) {
$filteredDealIDs[] = $dealID;
}
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("DealIDs", $filteredDealIDs);
Получение закрытых сделок по телефонам, почте и направлению
Этот PHP-код позволяет получить список ID закрытых сделок, имеющих определенное направление, используя фильтрацию по номерам телефонов и адресам электронной почты.
se Bitrix\Crm\DealTable;
$phoneString = "{{Phone}}";
$emailString = "{{E-mail}}";
$dealDirection = 0; // Замените на ваше значение CATEGORY_ID направления сделки
$phoneNumbers = explode(", ", $phoneString);
$emailAddresses = explode(", ", $emailString);
$arFilter = array(
'LOGIC' => 'OR',
array('CONTACT.PHONE' => $phoneNumbers),
array('COMPANY.PHONE' => $phoneNumbers),
array('CONTACT.EMAIL' => $emailAddresses),
array('COMPANY.EMAIL' => $emailAddresses)
);
$arSelect = array('ID');
$arDeals = DealTable::getList(array(
'order' => array('ID' => 'DESC'),
'filter' => $arFilter,
'select' => $arSelect,
'cache' => array('ttl' => 3600)
))->fetchAll();
$dealIDs = array();
foreach ($arDeals as $deal) {
$dealIDs[] = $deal['ID'];
}
// Проверяем, являются ли сделки открытыми и имеют указанное направление
$filteredDealIDs = array();
foreach ($dealIDs as $dealID) {
$deal = DealTable::getById($dealID)->fetch();
if ($deal['CLOSED'] === 'Y' && $deal['CATEGORY_ID'] == $dealDirection) {
$filteredDealIDs[] = $dealID;
}
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("DealIDs", $filteredDealIDs);
Получение сделок по телефонам и почте
Этот PHP-код позволяет получить список ID сделок, используя фильтрацию по номерам телефонов и адресам электронной почты контактов и компаний, связанных со сделками.
use Bitrix\Crm\DealTable;
$phoneString = "{{Phone}}";
$emailString = "{{E-mail}}";
$phoneNumbers = explode(", ", $phoneString);
$emailAddresses = explode(", ", $emailString);
$arFilter = array(
'LOGIC' => 'OR',
array('CONTACT.PHONE' => $phoneNumbers),
array('COMPANY.PHONE' => $phoneNumbers),
array('CONTACT.EMAIL' => $emailAddresses),
array('COMPANY.EMAIL' => $emailAddresses)
);
$arSelect = array('ID');
$arDeals = DealTable::getList(array(
'order' => array('ID' => 'DESC'),
'filter' => $arFilter,
'select' => $arSelect,
'cache' => array('ttl' => 3600)
))->fetchAll();
$dealIDs = array();
foreach ($arDeals as $deal) {
$dealIDs[] = $deal['ID'];
}
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("DealIDs", $dealIDs);