$rootActivity = $this->GetRootActivity();
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS', true);
define('CHK_EVENT', true);
define('NO_AGENT_CHECK', true);
define('PUBLIC_AJAX_MODE', true);
define('STATISTIC_SKIP_ACTIVITY_CHECK', true);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
if(!CModule::IncludeModule('crm')) die('error');
$dealID = '{=Document:ID}';
//потенциальный
$dbRes = CCrmCompany::GetList(array('TITLE' => 'ASC'), array(), ['TITLE', 'UF_CRM_1545220215027']);
while ($arRes = $dbRes->Fetch()) {
$arCompanies[$arRes['ID']] = $arRes;
}
$dbRes = CCrmDeal::GetList(array('TITLE' => 'ASC'), array("ID" => $dealID), ['ID', 'COMPANY_ID', 'STAGE_ID', 'DATE_CREATE']);
while ($arRes = $dbRes->Fetch()) {
$arCompaniesInDeals[$arRes['ID']] = $arRes['COMPANY_ID'];
$arDeals[$arRes['ID']] = $arRes;
}
// print_r($arCompaniesInDeals);
// die();
//потенциальный
/*foreach( $arCompanies as $k=>$company ){
if( !in_array($k, $arCompaniesInDeals) ){
$POT[] = $k;
if( $company['UF_CRM_1545220215027'] == 263 ) continue;
$arFields = [
'UF_CRM_1545220215027' => 263 //потенциальный
];
$CCrmCompany = new CCrmCompany( $bNeedCheckPermission );
$bUpdateResult = $CCrmCompany->Update($k, $arFields);
}
}*/
// print_r($POT);
//текущий или постоянный
$deal_success_status = [
'Успешно реализован',
'Сделка успешна',
'WON',
'C1:WON',
'C2:WON',
'C3:WON',
];
$deal_fail_status = [
'Договор не заключен',
'Нет Потребности',
'Не проходит по бюджету и срокам',
'Не актуально сейчас',
'Клиент не выходит на связь',
'Другое',
'Сделка провалена',
'Поддержка прекращена',
'Анализ причины провала',
'C3:APOLOGY',
'C3:LOSE',
'C2:LOSE',
'C1:LOSE',
'C1:1',
'C1:2',
'C1:3',
'C1:4',
'C1:5',
'LOSE',
];
$res = CCrmEvent::GetList(array(), array(
"ENTITY_TYPE"=>"DEAL",
"ENTITY_FIELD"=>"STAGE_ID",
"EVENT_TYPE"=>"1",
"ENTITY_ID"=>$dealID,
), []);
while($arEvent = $res->Fetch()){
$arChanges[$arEvent['ENTITY_ID']] = $arEvent;
}
foreach( $arChanges as $arEvent ){
if( in_array($arEvent['EVENT_TEXT_2'], $deal_success_status) ) $arSuccess[$arEvent['ENTITY_ID']] = $arEvent['DATE_CREATE'];
if( in_array($arEvent['EVENT_TEXT_2'], $deal_fail_status) ) $arFail[$arEvent['ENTITY_ID']] = $arEvent['DATE_CREATE'];
}
foreach( $arDeals as $id=>$deal ){
if( in_array($deal['STAGE_ID'], $deal_success_status) && !array_key_exists($id, $arSuccess) ) $arSuccess[$id] = $deal['DATE_CREATE'];
if( in_array($deal['STAGE_ID'], $deal_fail_status) && !array_key_exists($id, $arFail) ) $arFail[$id] = $deal['DATE_CREATE'];
}
foreach( $arSuccess as $deal=>$date ){
if( strtotime($date) < strtotime( date('d.m.').(intval(date('Y')-1)) ) ){
$arSuccess_before[$deal] = $date;
} else {
$arSuccess_after[$deal] = $date;
}
}
// print_r($arSuccess_before);
// echo "333";
// print_r($arFail);
// print_r($arCompaniesInDeals);
// die();
foreach( $arCompaniesInDeals as $deal=>$company ){
if( array_key_exists($deal, $arSuccess_after) ){
$arCompanies_deals[$company]['after_success'][] = $deal;
} elseif( array_key_exists($deal, $arSuccess_before) ) {
$arCompanies_deals[$company]['before_success'][] = $deal;
} else {
if( array_key_exists($deal, $arFail) ){
$arCompanies_deals[$company]['fail'][] = $deal;
} else {
$arCompanies_deals[$company]['inwork'][] = $deal;
}
}
}
// print_r($arCompanies_deals);
// print_r($arFail);
// die();
$CCrmCompany = new CCrmCompany( $bNeedCheckPermission );
foreach( $arCompanies_deals as $company=>$data ){
if( !$company ) continue;
if( count($data) == 1 && count($data['fail']) > 0 ){
$FAIL[] = $company;
$arFields = [
'UF_CRM_1545220215027' => 268 //отказ
];
$bUpdateResult = $CCrmCompany->Update($company, $arFields);
continue;
}
if( count($data['after_success']) >= 2 ){
$POSTOYANNII[] = $company;
$arFields = [
'UF_CRM_1545220215027' => 266 //потенциальный
];
$bUpdateResult = $CCrmCompany->Update($company, $arFields);
continue;
}
if( count($data['before_success']) > 0 && count($data['after_success']) == 0 && count($data['inwork']) == 0 ){
$BIVSHII[] = $company;
$arFields = [
'UF_CRM_1545220215027' => 267 //потенциальный
];
$bUpdateResult = $CCrmCompany->Update($company, $arFields);
continue;
}
if( count($data['after_success']) == 0 && count($data['inwork']) > 0 ){
$PRODAZHA[] = $company;
$arFields = [
'UF_CRM_1545220215027' => 264 //потенциальный
];
$bUpdateResult = $CCrmCompany->Update($company, $arFields);
continue;
}
if( count($data['after_success']) == 1 ){
$ACCOUNTING[] = $company;
$arFields = [
'UF_CRM_1545220215027' => 265 //потенциальный
];
$bUpdateResult = $CCrmCompany->Update($company, $arFields);
continue;
}
}