On this page
search
Получение сделок по диапазону дат, направлению, стадии и разным валютам с счетчиком
Пример PHP-кода для получения сделок по диапазону дат, направлению, стадии и разным валютам с подсчетом их количества в Битрикс24.
Этот PHP-код позволяет получить все сделки по диапазону дат, направлению, стадии и разным валютам, а также подсчитать их количество.
use Bitrix\Crm\DealTable;
// CATEGORY_ID - ID напралвения сделок, STAGE_ID - код стадии, >=CLOSEDATE и <=CLOSEDATE - отвечают за диапазон дат ОТ и ДО какой "Даты Завершения" сделки фильтруем, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
'CATEGORY_ID' => 13,
'STAGE_ID' => 'C13:WON',
'>=CLOSEDATE' => "{=Variable:CLOSEDATE_START}",
'<=CLOSEDATE' => "{=Variable:CLOSEDATE_FINISH}"];
$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'];}
}
$count = count($deals);
$rootActivity = $this->GetRootActivity();
// Присваиваем переменным в БП (DealIDs, rub, dollar, count_deal) значения массива с идентификаторами сделок и сумм сделок в разных валютах, также их кол-во
$rootActivity->SetVariable("DealIDs", $deals);
$rootActivity->SetVariable("rub", $rub);
$rootActivity->SetVariable("dollar", $dollar);
$rootActivity->SetVariable("count_deal", $count);