Получаем все сделки по Диапазону дат, Направлению, Стадии и разные валюты в разных переменных
Результатом выполнения этого кода будет установка переменных бизнес-процесса с идентификаторами сделок, общей суммой сделок в рублях и долларах, удовлетворяющих заданным критериям фильтрации.
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'];} }
$rootActivity = $this->GetRootActivity();
// Присваиваем переменным в БП (DealIDs, rub, dollar) значения массива с идентификаторами сделок и сумм сделок в разных валютах
$rootActivity->SetVariable("DealIDs", $deals);
$rootActivity->SetVariable("rub", $rub);
$rootActivity->SetVariable("dollar", $dollar);
Cookie-файлы
Настройка cookie-файлов
Детальная информация о целях обработки данных и поставщиках, которые мы используем на наших сайтах
Аналитические Cookie-файлыОтключить все
Технические Cookie-файлы
Другие Cookie-файлы
Мы используем файлы Cookie для улучшения работы, персонализации и повышения удобства пользования нашим сайтом. Продолжая посещать сайт, вы соглашаетесь на использование нами файлов Cookie.Подробнее о нашей политике в отношении Cookie.