Получение сделок по телефонам и почте, находящихся в работе

Этот 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);