getUsersFilter($usersArr, $_POST['user_id'], $_POST['users_admin']); $usersPlan = $usersId; foreach($usersId as $userId){ $arrIdUser[] = "who_work = $userId"; } $period = 'all'; $whereTasks = ""; $period = $_POST['period']; $onDate = null; $offDate = null; if(isset($_POST['onDate']) && !empty($_POST['onDate'])){ $_SESSION['on_date'] = date('d.m.Y', strtotime($_POST['onDate'])); $onDate = $_POST['onDate']; } if(isset($_POST['offDate']) && !empty($_POST['offDate'])){ $_SESSION['off_date'] = date('d.m.Y', strtotime($_POST['offDate'])); $offDate = $_POST['offDate']; } $mounthArrray = ["", "Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ]; $treplace = array ( "Январь" => "января", "Февраль" => "февраля", "Март" => "марта", "Апрель" => "апреля", "Май" => "мая", "Июнь" => "июня", "Июль" => "июля", "Август" => "августа", "Сентябрь" => "сентября", "Октябрь" => "октября", "Ноябрь" => "ноября", "Декабрь" => "декабря"); $dates = getPeriod($period, $onDate, $offDate); $totalDays = $dates['totalDays']; $firstDay = date('d', strtotime($dates['dateStart'])); $lastDay = date('d', strtotime($dates['dateEnd'])); $nameMonth = $treplace[$mounthArrray[(int)date('m')]]; $firstNameMonth = $treplace[$mounthArrray[(int)date('m', strtotime($dates['dateStart']))]]; $lastNameMonth = $treplace[$mounthArrray[(int)date('m', strtotime($dates['dateEnd']))]]; $datetime1 = new DateTime($dates['dateStart']); $datetime2 = new DateTime(date('Y-m-d')); $difference = $datetime1->diff($datetime2); $diffDays = $difference->days; $procentDays = (int)(($diffDays/$totalDays) * 100); $readPeriod = $dates['readPeriod']; $months = $dates['months']; $years = $dates['years']; $date_between = $dates['between']; $whereTasks = $dates['whereTasks']; $monthsyears = $dates['monthsyears']; $bd_usl_date = ' AND date_add '.$date_between; if(isset($_POST['charts_type'])){ $typesArr = json_decode(html_entity_decode($_POST['charts_type']), ENT_QUOTES); if(!empty($typesArr)){ $typeArr = array(); foreach($typesArr as $typeCl){ $typeArr[] = "work_type like '%"{$typeCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$typeArr).")"; } $_SESSION['filter_client_type'] = $_POST['charts_type']; } else { unset($_SESSION['filter_client_type']); } if(isset($_POST['charts_activities']) && !empty($_POST['charts_activities']) && $_POST['charts_activities'] != 'null'){ $activitiesArr = json_decode(html_entity_decode($_POST['charts_activities']), ENT_QUOTES); $activitieArr = array(); foreach($activitiesArr as $activitieCl){ $activitieArr[] = "`activities` like '%"{$activitieCl}"%'"; } if(!empty($activitieArr)){ $bd_usl_req .= " AND (".implode(" OR ",$activitieArr).")"; } $_SESSION['filter_activities'] = $_POST['charts_activities']; } else { unset($_SESSION['filter_activities']); } if (isset($_POST['charts_activities']) && !empty($_POST['charts_activities']) && $_POST['charts_activities'] != 'null') { $activitiesArr = json_decode(html_entity_decode($_POST['charts_activities']), ENT_QUOTES); $bd_usl_cl .= " AND `id` IN ( SELECT client_id FROM clients_activities WHERE activity_id IN (" . implode(", ", $activitiesArr) . ") )"; $_SESSION['filter_activities'] = $_POST['charts_activities']; } else { unset($_SESSION['filter_activities']); } if(isset($_POST['charts_objects_type'])){ $typesArr = json_decode(html_entity_decode($_POST['charts_objects_type']), ENT_QUOTES); if(!empty($typesArr)){ $typeArr = array(); foreach($typesArr as $typeCl){ $typeArr[] = "`type` like '%"{$typeCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$typeArr).")"; } $_SESSION['filter_client_objects_type'] = $_POST['charts_objects_type']; } else { unset($_SESSION['filter_client_objects_type']); } if (isset($_POST['priority1']) || isset($_POST['priority2']) || isset($_POST['priority3']) || isset($_POST['priority4'])) { $p_sql .= " AND ("; for ($i = 1; $i <= 4; $i++) { if ($_POST['priority']) { $p_sql .= 'priority =' .$i. ' or '; } else { unset($_SESSION['priority'. $i]); } } $p_sql = substr($p_sql, 0, -4); $p_sql .= ")"; $bd_usl .= $p_sql; } if(isset($_POST['charts_rol'])){ $rolesArr = json_decode(html_entity_decode($_POST['charts_rol']), ENT_QUOTES); if(!empty($rolesArr)){ $sroleArr = array(); foreach($rolesArr as $roleCl){ $roleArr[] = "`role` like '%"{$roleCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$roleArr).")"; } $_SESSION['filter_client_rol'] = $_POST['charts_rol']; } else { unset($_SESSION['filter_client_rol']); } if (isset($_POST['source'])) { $sourcesArr = json_decode(html_entity_decode($_POST['source']), ENT_QUOTES); $sourceArr = array(); if (!empty($sourcesArr)) { foreach ($sourcesArr as $sourceCl) { if ($sourceCl == 0) { $sourceArr[] = "`source` is null"; $sourceArr[] = "`source` = ''"; $sourceArr[] = "`source` = 'null'"; } else { $sourceArr[] = "`source` = '{$sourceCl}'"; } } $bd_usl .= " AND (" . implode(" OR ", $sourceArr) . ")"; $_SESSION['filter_source'] = $_POST['source']; } else { unset($_SESSION['filter_source']); } } else { unset($_SESSION['filter_source']); } $filter_partners = null; if (isset($_POST['partner'])) { $filter_partners = json_decode(html_entity_decode($_POST['partner']), ENT_QUOTES); $_SESSION['filter_partner'] = $_POST['partner']; } if ($filter_partners) { $employees_ids = []; $partners = new Partners(); foreach($filter_partners as $employee) { if (preg_match('/all_(\d+)/', $employee, $matches)) { if ($id = intval($matches[1])) { $employees = $partners->getEmployeesId($id, false, true); $employees = array_unique($employees); foreach($employees as $employee) { $employees_ids[] = "`employee_id` = '{$employee}'"; } } } else { if ($employee == 0) { $employees_ids[] = "`employee_id` IS NULL"; $employees_ids[] = "`employee_id` = ''"; $employees_ids[] = "`employee_id` = 'NULL'"; } else { $employees_ids[] = "`employee_id` = '{$employee}'"; } } } $bd_usl .= " AND (" . implode(" OR ", $employees_ids) . ")"; } else { unset($_SESSION['filter_partner']); } $bd_usl2 = ''; if(isset($_POST['funnel'])){ $funnelArr = json_decode(html_entity_decode($_POST['funnel']), ENT_QUOTES); if(!empty($funnelArr)){ $bd_usl .= " AND funnel_id in (".implode(', ',$funnelArr).")"; $bd_usl2 .= " AND funnel_id in (".implode(', ',$funnelArr).")"; } } $bd_usl_managers = " AND (".implode(" OR ",$arrIdUser).")"; foreach ($usersId as $us) { if($bd_doers != ''){ $bd_doers .= ' or '; } $bd_doers .= "`doers` like '%"".$us."":1%'"; } $bd_usl .= " AND cancel=0"; $gmtmsk = get_time_zone_user(); $time_zone = ''; if($gmtmsk >= 0){ $time_zone = '+'.$gmtmsk.' hour'; } else { $time_zone = '-'.$gmtmsk.' hour'; } $this_datetime = ($time_zone == '') ? date("Y-m-d H:i:s") : date("Y-m-d H:i:s", strtotime($time_zone)); if(isset($_POST['clients']) && $_POST['clients'] == 1){ $sql = "SELECT `id` FROM clients WHERE 1 $bd_usl_managers $bd_usl $bd_usl_cl and deleted <> 1 and confirm = 1"; //echo $sql."\n"; $q = mysql_query($sql); $row = mysql_num_rows($q); $result['count'] = (int)$row; } else if (isset($_POST['events_old']) && $_POST['events_old'] == 1){ $sql = "SELECT `id` FROM clients WHERE 1 $bd_usl_managers $bd_usl $bd_usl_cl and deleted <> 1"; $sql .= " UNION "; $sql .= "SELECT `id` FROM clients WHERE 1 $bd_usl $bd_usl_cl and deleted <> 1 and (".$bd_doers.")"; //echo $sql; $q = mysql_query($sql); $row = mysql_num_rows($q); $whereEv = ''; $tempEv = array(); //$tempEv[] = 0; if($row > 0){ while($r = mysql_fetch_assoc($q)){ $tempEv[] = $r['id']; } $whereEv = ' AND client_id in ('.implode(', ', $tempEv).') '; } // считаем события клиентов $sql = "SELECT count(id) FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and cancel=0 and calendar_view = 0". " and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".$this_datetime."'"; /*if($_SESSION['id'] == 13934){ echo $sql; }*/ //echo $sql; $rez = mysql_query($sql); $clientEventCount = mysql_result($rez,0); // суммарное количество событий по объектам и пользователям $result['events_old'] = intval($clientEventCount); } else if (isset($_POST['events']) && $_POST['events'] == 1) { $sql = "SELECT `id` FROM clients WHERE 1 $bd_usl_managers $bd_usl $bd_usl_cl and deleted <> 1 AND cancel=0"; $sql .= " UNION "; $sql .= "SELECT `id` FROM clients WHERE 1 $bd_usl $bd_usl_cl and deleted <> 1 and (".$bd_doers.") AND cancel=0"; // echo $sql; $q = mysql_query($sql); $row = mysql_num_rows($q); $whereEv = ''; $tempEv = array(); //$tempEv[] = 0; if($row > 0){ while($r = mysql_fetch_assoc($q)){ $tempEv[] = $r['id']; } $whereEv = ' AND client_id in ('.implode(', ', $tempEv).') '; } // считаем события объектов $sql = "SELECT count(id) FROM user_object_events WHERE object_id != 0 and user_id in (". implode(', ', $usersId).") and calendar_view = 0 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".$this_datetime."'"; $rez = mysql_query($sql); $objectEventCount = mysql_result($rez,0); // считаем события клиентов $sql = "SELECT count(id) FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and cancel=0 and calendar_view = 0 and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".$this_datetime."'"; // echo $sql; $rez = mysql_query($sql); $clientEventCount = mysql_result($rez,0); $result['events'] = intval($clientEventCount); } else if (isset($_POST['expired_stages_clients']) && $_POST['expired_stages_clients'] == 1){ //Посроченные этапы $agency_id = (int)$_POST['agency_id']; $expiredStagesClients = 0; $stepIds = array(); $stepDays = array(); $funnelIds = array(); if($agency_id > 0){ //Этапы $sql_f = "SELECT id FROM `funnel` WHERE agency_id=$agency_id AND deleted = 0"; $q_f = mysql_query($sql_f); while($r_f = mysql_fetch_assoc($q_f)){ $funnelIds[] = (int)$r_f['id']; } $sql_st = "SELECT id, days_step FROM funnel_steps WHERE funnel_id in (".implode(',', $funnelIds).")"; $q_st = mysql_query($sql_st); while($r_st = mysql_fetch_assoc($q_st)){ $stepDays[(int)$r_st['id']] = $r_st['days_step']; } $sql = "SELECT id, step_id, date_add, (SELECT date_update FROM clients_funnel_step WHERE client_id=clients.id) as date_update FROM clients WHERE cancel=0 AND funnel_id > 0 AND deleted = 0 AND confirm <> 0 AND who_work in (".implode(',', $usersId).") AND step_id > 0 $bd_usl $bd_usl_cl"; $q = mysql_query($sql); while($r = mysql_fetch_assoc($q)){ if($stepDays[(int)$r['step_id']] > 0){ $days_step = $stepDays[(int)$r['step_id']]; if(!empty($r['date_update'])){ $lostDate = $r['date_update']; $interval = date_diff(new DateTime(), new DateTime($lostDate))->days; if($interval > $days_step){ $expiredStagesClients++; } } else { $lostDate = $r['date_add']; $interval = date_diff(new DateTime(), new DateTime($lostDate))->days; if($interval > $days_step){ $expiredStagesClients++; } } } } } $result['expired_stages_clients'] = $expiredStagesClients; } else if (isset($_POST['expired_stages_requisitions']) && $_POST['expired_stages_requisitions'] == 1){ //Посроченные этапы $agency_id = (int)$_POST['agency_id']; $expiredStagesRequisitions = 0; $stepIds = array(); $stepDays = array(); $funnelIds = array(); if($agency_id > 0){ //Этапы $sql_f = "SELECT id FROM `funnel` WHERE agency_id=$agency_id AND deleted = 0"; $q_f = mysql_query($sql_f); while($r_f = mysql_fetch_assoc($q_f)){ $funnelIds[] = (int)$r_f['id']; } $sql_st = "SELECT id, days_step FROM funnel_steps WHERE funnel_id in (".implode(',', $funnelIds).")"; $q_st = mysql_query($sql_st); while($r_st = mysql_fetch_assoc($q_st)){ $stepDays[(int)$r_st['id']] = $r_st['days_step']; } $sql = "SELECT id, step_id, created_at, (SELECT date_update FROM clients_funnel_step WHERE req_id=requisitions.id) as date_update FROM requisitions WHERE cancel=0 AND funnel_id > 0 AND deleted = 0 AND confirm = 1 AND who_work in (".implode(',', $usersId).") AND step_id > 0 $bd_usl $bd_usl_req"; $q = mysql_query($sql); while($r = mysql_fetch_assoc($q)){ if($stepDays[(int)$r['step_id']] > 0){ $days_step = $stepDays[(int)$r['step_id']]; if(!empty($r['date_update'])){ $lostDate = $r['date_update']; $interval = date_diff(new DateTime(), new DateTime($lostDate))->days; if($interval > $days_step){ $expiredStagesRequisitions++; } } else { $lostDate = $r['created_at']; $interval = date_diff(new DateTime(), new DateTime($lostDate))->days; if($interval > $days_step){ $expiredStagesRequisitions++; } } } } } $result['expired_stages_requisitions'] = $expiredStagesRequisitions; } else { $bd_usl_del = " AND (if((SELECT count(*) FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1)>0, " . "(SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1) $date_between, " . "clients.date_add $date_between))"; $sql = "SELECT id FROM clients WHERE confirm=10 $bd_usl_managers $bd_usl $bd_usl_cl $bd_usl_del and deleted=1 AND cancel=0"; $q = mysql_query($sql); $row = mysql_num_rows($q); $successfulClients = (int)$row; $result['successful_clients'] = $successfulClients; $sql = "SELECT id FROM clients WHERE confirm!=10 $bd_usl_managers $bd_usl $bd_usl_cl $bd_usl_del and deleted=1 AND cancel=0"; $q = mysql_query($sql); $row = mysql_num_rows($q); $closedClients = (int)$row; $result['closed_clients'] = $closedClients; $bd_usl_del = " AND (if((SELECT count(*) FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1)>0, " . "(SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1) $date_between, " . "requisitions.created_at $date_between))"; $sql = "SELECT id FROM requisitions WHERE cancel=0 and confirm!=10 AND who_work in (".implode(',', $usersId).") and deleted=1 and created_at " . $bd_usl . $bd_usl_req . $bd_usl_del; //echo $sql; $q = mysql_query($sql); $row = mysql_num_rows($q); $closedRequisitions = (int)$row; $result['closed_requisitions'] = $closedRequisitions; $sql = "SELECT id FROM requisitions WHERE cancel=0 and confirm=10 AND who_work in (".implode(',', $usersId).") and deleted=1 and created_at " . $bd_usl . $bd_usl_req . $bd_usl_del; $q = mysql_query($sql); $row = mysql_num_rows($q); $successfulRequisitions = (int)$row; $result['successful_requisitions'] = $successfulRequisitions; $sql = "SELECT count(id) FROM requisitions WHERE deleted=0 and confirm=1 AND cancel=0 and who_work in (".implode(',',$usersId).") $bd_usl $bd_usl_req"; $q = mysql_query($sql); $row = mysql_result($q,0); $requisitions = (int)$row; $result['requisitions'] = $requisitions; $sql = "SELECT id FROM requisitions WHERE cancel=0 and who_work in (".implode(',',$usersId).") $bd_usl $bd_usl_req"; $sql .= " UNION "; $sql .= "SELECT `id` FROM requisitions WHERE 1 $bd_usl $bd_usl_req and deleted <> 1 and cancel=0 and (".$bd_doers.")"; //echo $sql; $q = mysql_query($sql); $whereReqArr = array(); $wereReq = ''; $openTasksRequisitions = 0; $expiredTasksRequisitions = 0; while($r = mysql_fetch_assoc($q)){ $whereReqArr[] = $r['id']; } if(!empty($whereReqArr)){ $wereReq = " AND req_id in (".implode(',',$whereReqArr).")"; $sql = "SELECT count(id) FROM user_client_events WHERE client_id=0 and user_id in (". implode(', ', $usersId).") and cancel=0 and calendar_view = 0 and schedule_date is not null $whereTasks $wereReq and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".$this_datetime."'"; $q = mysql_query($sql); $row = mysql_result($q,0); $openTasksRequisitions = (int)$row; $sql = "SELECT count(id) FROM user_client_events WHERE client_id=0 and user_id in (". implode(', ', $usersId).") and cancel=0 and calendar_view = 0 and schedule_date is not null $whereTasks $wereReq and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".$this_datetime."'"; $q = mysql_query($sql); $row = mysql_result($q,0); $expiredTasksRequisitions = (int)$row; } $result['open_tasks_requisitions'] = $openTasksRequisitions; $result['expired_tasks_requisitions'] = $expiredTasksRequisitions; $sql = "SELECT id FROM objects WHERE id_add_user in (".implode(',', $usersId).") and archive=0 LIMIT 1000000 OPTION max_matches=1000000"; $q = $db_sphinx->query($sql); $row = $db_sphinx->num_rows($q); $objects = (int)$row; $result['objects'] = $objects; $sql = "SELECT count(id) FROM user_object_events WHERE object_id != 0 and user_id in (". implode(', ', $usersId).") and calendar_view = 0". " and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".$this_datetime."'"; $q = mysql_query($sql); $row = mysql_result($q, 0); $expiredTasksObjects = (int)$row; $result['expired_tasks_objects'] = $expiredTasksObjects; $sql = "SELECT count(id) FROM user_object_events WHERE object_id != 0 and user_id in (". implode(', ', $usersId).") and calendar_view = 0". " and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".$this_datetime."'"; $q = mysql_query($sql); $row = mysql_result($q, 0); $openTasksObjects = (int)$row; $result['open_tasks_objects'] = $openTasksObjects; //ищем то, что не публикуется $arr_pac = array(); $sql_pac = "select object_id from advertising_package_object_publish where active = 1"; $q_pac = mysql_query($sql_pac); while($r_pac = mysql_fetch_row($q_pac)){ $arr_pac[] = $r_pac[0]; } $s_3 = ' AND add_to_yandex_feed=0 AND add_to_zipal=0 AND add_to_avito_feed=0 AND add_to_cian_feed=0 AND add_to_domclick_feed=0 AND add_to_emls_feed=0 AND add_to_bn_feed=0 '; if (!empty($arr_pac)) $s_3 .= ' AND id NOT IN ('.implode(',', $arr_pac).') '; //список ИД, которые нигде не опубликованы, но в рекламе $idsNotPublish = array(); $sqlIdsNotPublish = "SELECT id FROM objects WHERE id_add_user in (".implode(',', $usersId).") $s_3 LIMIT 1000000 OPTION max_matches=1000000"; $qIdsNotPublish = $db_sphinx->query($sqlIdsNotPublish, true); while ($obj = $db_sphinx->fetch_assoc($qIdsNotPublish)) { $idsNotPublish[] = $obj['id']; } //выбираем все в рекламе, но за исключением тех, которые нигде не публикуются $sql = "SELECT id FROM objects WHERE id_add_user in (".implode(',', $usersId).") and (use_in_advert = 1) "; if(!empty($idsNotPublish)){ $sql .= "and id NOT IN (".implode(',', $idsNotPublish).")"; } $sql .= " LIMIT 1000000 OPTION max_matches=1000000"; $q = $db_sphinx->query($sql, true); $row = $db_sphinx->num_rows($q); $objectsAdvert = (int)$row; $result['objects_advert'] = $objectsAdvert; //} $sql_plan = "SELECT sum(`summa`) as summa FROM `sales_plan` WHERE `user_id` in (". implode(', ', $usersPlan) .") AND `month` in (". implode(', ', $months) .") AND `year` in (". implode(', ', $years) .")"; if(!empty($monthsyears)){ $sql_plan = "SELECT sum(`summa`) as summa FROM `sales_plan` WHERE `user_id` in (". implode(', ', $usersPlan) .") AND CONCAT(month,'-', year) in ('". implode('\', \'', $monthsyears) ."')"; } //echo $sql_plan; $q_plan = mysql_query($sql_plan); $summa_total = mysql_result($q_plan,0); $sql = "SELECT sum(summa) as summa FROM clients WHERE 1 AND who_work in (".implode(',', $usersId).") and deleted = 1 AND cancel=0 and confirm = 10 and " . "(SELECT `date_update` FROM `events_clients` WHERE `client_id` = clients.id AND `event` = 'delete' order by id desc limit 1) $date_between"; //echo $sql; $q = mysql_query($sql); $summa_done = mysql_result($q,0); $sql = "SELECT sum(summa) as summa FROM requisitions WHERE cancel=0 and confirm=10 AND who_work in (".implode(',', $usersId).") and deleted=1 " . $bd_usl_del; $q = mysql_query($sql); $summa_done_req = mysql_result($q,0); $procentDay = 0; $summa_done = (int)$summa_done + (int)$summa_done_req; $summa_diff = $summa_total - $summa_done; $procent_done = (int)(($summa_done/$summa_total)*100); if($summa_total == 0){ $procent_done = 100; $summa_diff = 0; } if($procent_done > 0){ $procentDay = $procent_done; if($procent_done > 100){ $procentDay = 100; } } $summaDiffText = '
' . number_format($summa_diff, 0, ',', ' ') . 'p
'; if($summa_diff < 0){ $summaDiffText = '
+ ' . number_format($summa_diff*(-1), 0, ',', ' ') . 'p
'; } $html = '
Цель '.number_format($summa_total, 0, ',', ' ').'p
Период '.$readPeriod.'
'.$procent_done.'%
Сегодня '.date('d').' '. $nameMonth .'
'; for($i=0; $i < $totalDays; $i++){ $html .= '
'; } $html .= '
'.$firstDay.' '.$firstNameMonth.'
'.$lastDay.' '.$lastNameMonth.'
Выполнено
' . number_format($summa_done, 0, ',', ' ') . 'p
Осталось
' . $summaDiffText . '
Процент выполнения
'.$procent_done.'%
'; $result['html'] = $html; } echo json_encode($result); } if(isset($_POST['stats'])){ require_once($_SERVER['DOCUMENT_ROOT']."/config.php"); $cl = new Clients(); $itogResult = array(); $usersArr = json_decode($_POST['responsible'], true); /* if(empty($usersArr)){ $usersArr = $_POST['user_id']; }*/ $bd_usl_managers = ''; $bd_usl = ''; $bd_doers = ''; $bd_usl_cl = ''; $bd_usl_req = ''; $arrIdUser = array(); $userIds = array(); $usersPlan = array(); $usersId = $cl -> getUsersFilter($usersArr, $_POST['user_id'], $_POST['users_admin']); $usersPlan = $usersId; $req_type = []; $req_type2 = []; foreach($usersId as $userId){ $arrIdUser[] = "who_work = $userId"; $userIds[] = $userId; } $agency_id = 0; if(isset($_POST['agency_id'])){ $agency_id = (int)$_POST['agency_id']; } $period = 'all'; $whereTasks = ""; if($_POST['period']){ $period = $_POST['period']; $dates = getPeriod($period,$_POST['onDate'],$_POST['offDate']); $date_between = $dates['between']; $whereTasks = $dates['whereTasks']; } if(isset($_POST['charts_type'])){ $typesArr = json_decode(html_entity_decode($_POST['charts_type']), ENT_QUOTES); if(!empty($typesArr)){ $typeArr = array(); foreach($typesArr as $typeCl){ $typeArr[] = "work_type like '%"{$typeCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$typeArr).")"; } } if(isset($_POST['charts_activities']) && !empty($_POST['charts_activities']) && $_POST['charts_activities'] != 'null'){ $activitiesArr = json_decode(html_entity_decode($_POST['charts_activities']), ENT_QUOTES); $activitieArr = array(); foreach($activitiesArr as $activitieCl){ $activitieArr[] = "`activities` like '%"{$activitieCl}"%'"; } if(!empty($activitieArr)){ $bd_usl_req .= " AND (".implode(" OR ",$activitieArr).")"; } $_SESSION['filter_activities'] = $_POST['charts_activities']; } else { unset($_SESSION['filter_activities']); } if (isset($_POST['charts_activities']) && !empty($_POST['charts_activities']) && $_POST['charts_activities'] != 'null') { $activitiesArr = json_decode(html_entity_decode($_POST['charts_activities']), ENT_QUOTES); $bd_usl_cl .= " AND `id` IN ( SELECT client_id FROM clients_activities WHERE activity_id IN (" . implode(", ", $activitiesArr) . ") )"; $_SESSION['filter_activities'] = $_POST['charts_activities']; } else { unset($_SESSION['filter_activities']); } if(isset($_POST['charts_objects_type'])){ $typesArr = json_decode(html_entity_decode($_POST['charts_objects_type']), ENT_QUOTES); if(!empty($typesArr)){ $typeArr = array(); foreach($typesArr as $typeCl){ $typeArr[] = "`type` like '%"{$typeCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$typeArr).")"; } } if(isset($_POST['charts_rol'])){ $rolesArr = json_decode(html_entity_decode($_POST['charts_rol']), ENT_QUOTES); if(!empty($rolesArr)){ $roleArr = array(); foreach($rolesArr as $roleCl){ $roleArr[] = "`role` like '%"{$roleCl}"%'"; } $bd_usl .= " AND (".implode(" OR ",$roleArr).")"; } } $sourceArr = array(); if(isset($_POST['source'])){ $sourcesArr = json_decode(html_entity_decode($_POST['source']), ENT_QUOTES); if(!empty($sourcesArr )){ foreach($sourcesArr as $sourceCl){ if($_POST['client_req'] == 1){ if($sourceCl == 0){ $sourceArr[] = "`r`.`source` is null"; $sourceArr[] = "`r`.`source` = ''"; $sourceArr[] = "`r`.`source` = 'null'"; } else { $sourceArr[] = "`r`.`source` = '{$sourceCl}'"; } } else { if($sourceCl == 0){ $sourceArr[] = "`c`.`source` is null"; $sourceArr[] = "`c`.`source` = ''"; $sourceArr[] = "`c`.`source` = 'null'"; } else { $sourceArr[] = "`c`.`source` = '{$sourceCl}'"; } } } $bd_usl .= " AND (".implode(" OR ",$sourceArr).")"; $_SESSION['filter_source'] = $_POST['source']; } else { unset($_SESSION['filter_source']); } } else { unset($_SESSION['filter_source']); } $filter_partners = null; if ($_POST['partner']) { $filter_partners = json_decode(html_entity_decode($_POST['partner']), ENT_QUOTES); $_SESSION['filter_partner'] = $_POST['partner']; } if ($filter_partners) { $employees_ids = []; $partners = new Partners(); foreach($filter_partners as $employee) { if (preg_match('/all_(\d+)/', $employee, $matches)) { if ($id = intval($matches[1])) { $e_list = $partners->getEmployeesId($id, false); $e_list = array_unique($e_list); foreach($e_list as $empl) { $employees_ids[] = "`c`.`employee_id` = '{$empl}'"; } } } else { if ($employee == 0) { $employees_ids[] = "`c`.`employee_id` IS NULL"; $employees_ids[] = "`c`.`employee_id` = ''"; $employees_ids[] = "`c`.`employee_id` = 'NULL'"; } else { $employees_ids[] = "`c`.`employee_id` = '{$employee}'"; } } } $bd_usl .= " AND (" . implode(" OR ", $employees_ids) . ")"; } else { unset($_SESSION['filter_partner']); } $funnel_step = false; //Работа с воронками if(isset($_POST['funnel'])){ $funnelArr = json_decode(html_entity_decode($_POST['funnel']), ENT_QUOTES); $name_c_r = "клиенты"; if($_POST['client_req'] == 1){ $name_c_r = "заявки"; } if(!empty($funnelArr)){ if(count($funnelArr) == 1){ $funnel_step = array(); $funnel_id = $funnelArr[0]; $bd_usl .= " AND funnel_id = ".$funnel_id; if($funnel_id == 0){ $funnel_step = array('titles' => array( 'new' => "Новые ".$name_c_r, 'work' => "В работе", 'offer' => "Презентация", 'deal' => "Сделка", 'showing' => "Показ", 'reservation' => "Бронь", 'meet' => "Подаем на ипотеку", 'end' => "Закрытые ".$name_c_r, 'end_sdelka' => "Успешные" )); } else { $sql_f = "SELECT id, name FROM `funnel_steps` WHERE funnel_id = ".$funnel_id; $q_f = mysql_query($sql_f); $titles = array(); while($r_f = mysql_fetch_assoc($q_f)){ $titles['step_'.$r_f['id']] = $r_f['name']; } $titles['end'] = "Закрытые ".$name_c_r; $titles['end_sdelka'] = "Успешные"; $funnel_step = array('titles' => $titles); } } else { $bd_usl .= " AND c.funnel_id in (".implode(', ', $funnelArr).")"; } } } $bd_usl .= " AND cancel=0"; $bd_usl_managers = " AND (".implode(" OR ",$arrIdUser).")"; $sql = "SELECT c.id, c.id_agent, c.stage, c.summa, c.work_type, c.role, c.step_id, c.deleted, c.confirm, c.employee_id, c.date_add, a.source, p.name as p_name, e.name as e_name, e.position as e_position, c.source as num_source, c.who_work FROM clients as c LEFT JOIN advertising_sources as a on c.source = a.id LEFT JOIN partners_employees as e on c.employee_id = e.id LEFT JOIN partners as p on e.partner_id = p.id WHERE 1 $bd_usl_managers $bd_usl $bd_usl_cl and c.date_add $date_between order by c.date_add"; //echo $sql; if($_POST['client_req'] == 1){ $sql_t = "SELECT * FROM requisitions_type WHERE agency_id = 0 and del = 0 order by order_number, id"; if($agency_id > 0){ $sql_t = "SELECT * FROM requisitions_type WHERE (agency_id = {$agency_id} || agency_id = 0) and del = 0 order by order_number, id"; } $q_t = mysql_query($sql_t); $req_type[] = array('bullet'=>'round', 'balloonText'=>'[[title]]:[[value]]', 'id'=>'clientsQuantity', 'title'=>'Все', 'valueField'=> 'quantity'); $req_type2[] = array('bullet'=>'round', 'balloonText'=>'[[title]]:[[value]]', 'id'=>'clientsAddQuantity', 'title'=>'Все', 'valueField'=> 'quantity'); $req_sale = array(); $req_type_menedger_sdelka = array(); $reqs = array(); while($r_t = mysql_fetch_assoc($q_t)){ $temp_req['bullet'] = "round"; $temp_req["balloonText"] = "[[title]]:[[value]]"; $temp_req['id']= 'reqs'.$r_t['id']; $temp_req['title'] = $r_t['name']; $temp_req['valueField'] = 'quantity'.$r_t['id']; $temp_req2['bullet'] = "round"; $temp_req2["balloonText"] = "[[title]]:[[value]]"; $temp_req2['id']= 'reqs2'.$r_t['id']; $temp_req2['title'] = $r_t['name']; $temp_req2['valueField'] = 'quantity'.$r_t['id']; $temp_men['balloonText'] = "[[title]] у [[category]]:[[value]]"; $temp_men["fillAlphas"] = 1; $temp_men['id']= 'saleId'.$r_t['id']; $temp_men['type'] = "column"; $temp_men['title'] = $r_t['name']; $temp_men['valueField'] = 'sale'.$r_t['id']; $temp_men2['balloonText'] = "[[title]] у [[category]]:[[value]]"; $temp_men2["fillAlphas"] = 1; $temp_men2['id']= 'saleSdelkaId'.$r_t['id']; $temp_men2['type'] = "column"; $temp_men2['title'] = $r_t['name']; $temp_men2['valueField'] = 'sale'.$r_t['id']; $req_sale['sale'.$r_t['id']] = 0; $req_type[] = $temp_req; $req_type2[] = $temp_req2; $req_type_menedger[] = $temp_men; $req_type_menedger_sdelka[] = $temp_men2; $work_types_req[$r_t['id']] =array(); $work_types_req_add[$r_t['id']] =array(); $reqs[] = $r_t; } $sql = "SELECT r.id, r.user_id, r.stage, r.summa, r.step_id, r.type_id, r.deleted, r.confirm, r.created_at as date_add, a.source, r.source as num_source, r.who_work FROM requisitions as r LEFT JOIN advertising_sources as a on r.source = a.id WHERE 1 AND ( r.who_work in (".implode(',',$userIds).") OR r.user_id in (".implode(',',$userIds).")) $bd_usl $bd_usl_req and r.created_at $date_between order by r.created_at"; if(isset($_POST['date_close']) && $_POST['date_close'] > 0){ $sql = "SELECT r.id, r.user_id, r.stage, r.summa, r.step_id, r.type_id, r.deleted, r.confirm, r.created_at as date_add, a.source, r.source as num_source, r.who_work FROM requisitions as r LEFT JOIN advertising_sources as a on r.source = a.id WHERE 1 AND ( r.who_work in (".implode(',',$userIds).") OR r.user_id in (".implode(',',$userIds).")) $bd_usl $bd_usl_req and (SELECT date_update FROM `events_clients` WHERE req_id=r.id and event='delete' order by id desc limit 1) $date_between order by r.created_at"; } /*if($_SESSION['id'] == 13154){ echo $sql; }*/ } // $itogResult['sql'] = $sql; $q = mysql_query($sql); $sources = array(); $employees = array(); $conversion = 0; $conversions = array(); $dateCon = array(); $sdelok = 0; $summaSdelok = 0; $clients = array(); $clientsAdd = array(); $work_types_rentQuantity = array(); $work_types_buyQuantity = array(); $work_types_NBQuantity = array(); $work_types_add = array(); $work_types_rentQuantity_add = array(); $work_types_buyQuantity_add = array(); $work_types_NBQuantity_add = array(); $totalClients = mysql_num_rows($q); $manager = array(); $managerSdelka = array(); if($funnel_step){ //var_dump($funnel_step['titles']); foreach ($funnel_step['titles'] as $key => $step) { //var_dump($key); $result[$key] = 0; } } $totalWork = 0; $userId = $_SESSION['id']; while($r = mysql_fetch_assoc($q)){ if(!isset($result['work'])) $result['work'] = 0; if(!isset($result['new'])) $result['new'] = 0; if(!isset($result['offer'])) $result['offer'] = 0; if(!isset($result['showing'])) $result['showing'] = 0; if(!isset($result['reservation'])) $result['reservation'] = 0; if(!isset($result['meet'])) $result['meet'] = 0; if(!isset($result['deal'])) $result['deal'] = 0; if(!isset($result['end'])) $result['end'] = 0; if(!isset($result['end_sdelka'])) $result['end_sdelka'] = 0; // if($r['confirm'] != '0'){ if(!isset($dateCon[date('Y-m', strtotime($r['date_add']))])) $dateCon[date('Y-m', strtotime($r['date_add']))] = 0; $dateCon[date('Y-m', strtotime($r['date_add']))]++; if(!$_POST['client_req']){ if($r['id_agent'] == $userId){ if(!isset($work_types_add[date('Y-m', strtotime($r['date_add']))])) $work_types_add[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_add[date('Y-m', strtotime($r['date_add']))]++; } $work_type = json_decode(html_entity_decode($r['work_type']), true); if(in_array("Аренда", $work_type)){ if(!isset($work_types_rentQuantity[date('Y-m', strtotime($r['date_add']))])) $work_types_rentQuantity[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_rentQuantity[date('Y-m', strtotime($r['date_add']))]++; if($r['id_agent'] == $userId){ if(!isset($work_types_rentQuantity_add[date('Y-m', strtotime($r['date_add']))])) $work_types_rentQuantity_add[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_rentQuantity_add[date('Y-m', strtotime($r['date_add']))]++; } } if(in_array("Вторичка", $work_type)){ if(!isset($work_types_buyQuantity[date('Y-m', strtotime($r['date_add']))])) $work_types_buyQuantity[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_buyQuantity[date('Y-m', strtotime($r['date_add']))]++; if($r['id_agent'] == $userId){ if(!isset($work_types_buyQuantity_add[date('Y-m', strtotime($r['date_add']))])) $work_types_buyQuantity_add[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_buyQuantity_add[date('Y-m', strtotime($r['date_add']))]++; } } if(in_array("Новостройки", $work_type)){ if(!isset($work_types_NBQuantity[date('Y-m', strtotime($r['date_add']))])) $work_types_NBQuantity[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_NBQuantity[date('Y-m', strtotime($r['date_add']))]++; if($r['id_agent'] == $userId){ if(!isset($work_types_NBQuantity_add[date('Y-m', strtotime($r['date_add']))])) $work_types_NBQuantity_add[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_NBQuantity_add[date('Y-m', strtotime($r['date_add']))]++; } } } else if($_POST['client_req'] == 1){ if(in_array($r['user_id'],$usersId)){ if(!isset($work_types_add[date('Y-m', strtotime($r['date_add']))])) $work_types_add[date('Y-m', strtotime($r['date_add']))] = 0; $work_types_add[date('Y-m', strtotime($r['date_add']))]++; } foreach($reqs as $type){ //echo $type['id']."\n"; if($r['type_id'] == $type['id']){ if($r['confirm'] != 0){ if(!isset($work_types_req[$type['id']][date('Y-m', strtotime($r['date_add']))])) $work_types_req[$type['id']][date('Y-m', strtotime($r['date_add']))] = 0; $work_types_req[$type['id']][date('Y-m', strtotime($r['date_add']))]++; } if(in_array($r['user_id'],$usersId)){ if(!isset($work_types_req_add[$type['id']][date('Y-m', strtotime($r['date_add']))])) $work_types_req_add[$type['id']][date('Y-m', strtotime($r['date_add']))] = 0; $work_types_req_add[$type['id']][date('Y-m', strtotime($r['date_add']))]++; } } } //var_dump($work_types_req_add); } if($r['who_work'] > 0){ if(!$_POST['client_req']){ if(!isset($manager[$r['who_work']])) $manager[$r['who_work']] == array('rent' => 0, 'buy' => 0, 'sale' => 0); if(!isset($managerSdelka[$r['who_work']])) $managerSdelka[$r['who_work']] == array('rent' => 0, 'buy' => 0, 'sale' => 0); $roles = json_decode(html_entity_decode($r['role']), true); if(in_array('Арендатор', $roles) || in_array('Арендодатель', $roles)){ $manager[$r['who_work']]['rent']++; if($r['deleted'] == '1' && $r['confirm'] == '10'){ $managerSdelka[$r['who_work']]['rent']++; } } if(empty($roles) || in_array('Покупатель', $roles)){ $manager[$r['who_work']]['buy']++; if($r['deleted'] == '1' && $r['confirm'] == '10'){ $managerSdelka[$r['who_work']]['buy']++; } } if(in_array('Продавец', $roles)){ $manager[$r['who_work']]['sale']++; if($r['deleted'] == '1' && $r['confirm'] == '10'){ $managerSdelka[$r['who_work']]['sale']++; } } } else if($_POST['client_req'] == 1){ if(!isset($manager[$r['who_work']])) $manager[$r['who_work']] == $req_sale; if(!isset($managerSdelka[$r['who_work']])) $managerSdelka[$r['who_work']] == $req_sale; foreach($reqs as $type){ if(!isset($manager[$r['who_work']]['sale'.$type['id']])) $manager[$r['who_work']]['sale'.$type['id']] = 0; if(!isset($managerSdelka[$r['who_work']]['sale'.$type['id']])) $managerSdelka[$r['who_work']]['sale'.$type['id']] = 0; if($r['type_id'] == $type['id']){ $manager[$r['who_work']]['sale'.$type['id']]++; if($r['deleted'] == '1' && $r['confirm'] == '10'){ $managerSdelka[$r['who_work']]['sale'.$type['id']]++; } } } } } // } if($r['deleted'] != '1' ){ $totalWork++; if($funnel_step && $funnel_id != 0){ $result['step_'.$r['step_id']]++; } else { if($r['stage'] == '2') $result['work']++; if($r['stage'] == '1') $result['new']++; if($r['stage'] == '3') $result['offer']++; if($r['stage'] == '4') $result['showing']++; if($r['stage'] == '5') $result['reservation']++; if($r['stage'] == '6') $result['meet']++; if($r['stage'] == '7') $result['deal']++; } } else if($r['deleted'] == '1'){ if($r['confirm'] == '10'){ $sdelok++; $summaSdelok += $r['summa']; $result['end_sdelka']++; } else { $result['end']++; } } if($totalClients > 0){ $conversion = round(($sdelok/($totalWork + $result['end']))*100, 2); } if (isset($_SESSION['filter_source']) || (!isset($_SESSION['filter_source']) && !isset($_SESSION['filter_partner']))) { if(!empty($r['source'])) { if(!isset($sources[$r['source']])) $sources[$r['source']] = 0; $sources[$r['source']]++; } else if ($r['num_source'] == 10000){ if(!isset($sources['Объекты нашей компании'])) $sources['Объекты нашей компании'] = 0; $sources['Объекты нашей компании']++; } else if (!isset($_SESSION['filter_partner'])) { if(!isset($sources['Источник не выбран'])) $sources['Источник не выбран'] = 0; $sources['Источник не выбран']++; } } if (isset($_SESSION['filter_partner']) || (!isset($_SESSION['filter_source']) && !isset($_SESSION['filter_partner']))) { $partner_name = ( (($r['p_name']) ? $r['p_name'] . ' (' : '') . ($r['e_name'] . (isset($r['e_position']) ? ', ' . mb_strtolower($r['e_position']) : '')) . (($r['p_name']) ? ')' : '') ); if(!empty($partner_name)) { if (!isset($employees[$partner_name])) $employees[$partner_name] = 0; $employees[$partner_name]++; }/* else if (!isset($_SESSION['filter_source'])) { if (!isset($employees['Партнёр не выбран'])) $employees['Партнёр не выбран'] = 0; $employees['Партнёр не выбран']++; }*/ } } $summa_done=array(); $deletes = array(); $sql_c = "SELECT count(id) as total, DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `client_id` = c.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') as date FROM clients as c WHERE 1 $bd_usl_managers $bd_usl and deleted = 1 and confirm = 10 group by 2"; if($_POST['client_req']){ $sql_c = "SELECT count(id) as total, DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `req_id` = r.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') as date FROM requisitions as r WHERE 1 $bd_usl_managers $bd_usl and deleted = 1 and confirm = 10 group by 2"; } //echo $sql_c; $q_c = mysql_query($sql_c); while($r_c = mysql_fetch_assoc($q_c)){ if(!empty($r_c['date'])){ //if() $summa_done[$r_c['date']] = (int)$r_c['total']; } } $sql_c = "SELECT count(id) as total, DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `client_id` = c.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m')as date FROM clients as c WHERE 1 $bd_usl_managers $bd_usl and deleted = 1 and confirm <> 10 group by 2"; if($_POST['client_req']){ $sql_c = "SELECT count(id) as total, DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `req_id` = r.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') as date FROM requisitions as r WHERE 1 $bd_usl_managers $bd_usl and deleted = 1 and confirm <> 10 group by 2"; } $q_c = mysql_query($sql_c); while($r_c = mysql_fetch_assoc($q_c)){ if(!empty($r_c['date'])){ $deletes[$r_c['date']] = (int)$r_c['total']; } } $managerEvents = array(); //события $sql_e = "SELECT count(id) as total, type, user_id FROM user_client_events WHERE calendar_view > 0 and schedule_date is not null and client_id > 0 and user_id in (". implode(', ', $usersId).") $whereTasks group by type, user_id"; if($_POST['client_req']){ $sql_e = "SELECT count(id) as total, type, user_id FROM user_client_events WHERE calendar_view > 0 and schedule_date is not null and req_id > 0 and user_id in (". implode(', ', $usersId).") $whereTasks group by type, user_id"; } $q_e = mysql_query($sql_e); while($r_e = mysql_fetch_assoc($q_e)){ if(!isset($managerEvents[$r_e['user_id']])) $managerEvents[$r_e['user_id']] = array('calls' => 0, 'showings' => 0, 'meetings' => 0, 'deals' => 0, 'reservations' => 0); if($r_e['type'] == 'call'){ $managerEvents[$r_e['user_id']]['calls'] += (int)$r_e['total']; } if($r_e['type'] == 'show'){ $managerEvents[$r_e['user_id']]['showings'] += (int)$r_e['total']; } if($r_e['type'] == 'meet'){ $managerEvents[$r_e['user_id']]['meetings'] += (int)$r_e['total']; } if($r_e['type'] == 'deal'){ $managerEvents[$r_e['user_id']]['deals'] += (int)$r_e['total']; } if($r_e['type'] == 'reserv'){ $managerEvents[$r_e['user_id']]['reservations'] += (int)$r_e['total']; } } $sql_e = "SELECT count(id) as total, type, user_id FROM user_object_events WHERE calendar_view > 0 and schedule_date is not null and user_id in (". implode(', ', $usersId).") $whereTasks group by type, user_id"; if($_POST['client_req']){ $sql_e = "SELECT count(id) as total, type, user_id FROM user_object_events WHERE calendar_view > 0 and schedule_date is not null and req_id > 0 and user_id in (". implode(', ', $usersId).") $whereTasks group by type, user_id"; } $q_e = mysql_query($sql_e); while($r_e = mysql_fetch_assoc($q_e)){ if(!isset($managerEvents[$r_e['user_id']])) $managerEvents[$r_e['user_id']] = array('calls' => 0, 'showings' => 0, 'meetings' => 0, 'deals' => 0, 'reservations' => 0); if($r_e['type'] == 'call'){ $managerEvents[$r_e['user_id']]['calls'] += (int)$r_e['total']; } if($r_e['type'] == 'show'){ $managerEvents[$r_e['user_id']]['showings'] += (int)$r_e['total']; } if($r_e['type'] == 'meet'){ $managerEvents[$r_e['user_id']]['meetings'] += (int)$r_e['total']; } if($r_e['type'] == 'deal'){ $managerEvents[$r_e['user_id']]['deals'] += (int)$r_e['total']; } if($r_e['type'] == 'reserv'){ $managerEvents[$r_e['user_id']]['reservations'] += (int)$r_e['total']; } } foreach($dateCon as $date => $val){ $clientsVal = 0; $clientValRentQuantity = 0; $clientValBuyQuantity = 0; $clientValBuyNBQuantity = 0; $temparr = array(); $temparr['date'] = $date; $temparr['conversion'] = 0; if($_POST['client_req'] == 1){ foreach($reqs as $type){ //var_dump($work_types_req[$type['id']][$date]); $tempArrClirnts['quantity'.$type['id']] = 0; } } $clientsVal += $val; if(isset($summa_done[$date]) && $val > 0){ $temparr['conversion'] = round(((int)$summa_done[$date]/$val)*100, 2); $clientsVal = $clientsVal;// - $summa_done[$date]; } else { $temparr['conversion'] = 0; } $tempArrClirnts['date'] = $date; if(isset($deletes[$date])){ $clientsVal = $clientsVal; } $tempArrClirnts['quantity'] = $clientsVal; /* $sql_c = "SELECT count(id) as total FROM clients as c WHERE 1 $bd_usl_managers and deleted = 1 and work_type like '%"Аренда"%' " . "DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `client_id` = c.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') = '$date'"; $q = mysql_query($sql_c); $deletes = (int)mysql_result($q,0); */ $clientValRentQuantity += $work_types_rentQuantity[$date]; if(!$_POST['client_req']){ $tempArrClirnts['rentQuantity'] = $clientValRentQuantity; /* $sql_c = "SELECT count(id) as total FROM clients as c WHERE 1 $bd_usl_managers and deleted = 1 and work_type like '%"Вторичка"%' " . "DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `client_id` = c.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') = '$date'"; $q = mysql_query($sql_c); $deletes = (int)mysql_result($q,0);*/ $clientValBuyQuantity += $work_types_buyQuantity[$date]; $tempArrClirnts['buyQuantity'] = $clientValBuyQuantity; /* $sql_c = "SELECT count(id) as total FROM clients as c WHERE 1 $bd_usl_managers and deleted = 1 and work_type like '%"Новостройки"%' " . "DATE_FORMAT ((SELECT `date_update` FROM `events_clients` WHERE `client_id` = c.id AND `event` = 'delete' order by id desc limit 1), '%Y-%m') = '$date'"; $q = mysql_query($sql_c); $deletes = (int)mysql_result($q,0); */ $clientValBuyNBQuantity += $work_types_NBQuantity[$date]; $tempArrClirnts['NBQuantity'] = $clientValBuyNBQuantity; } else if($_POST['client_req'] == 1){ foreach($reqs as $type){ //var_dump($work_types_req[$type['id']][$date]); $tempArrClirnts['quantity'.$type['id']] += (int)$work_types_req[$type['id']][$date]; } } $clientAddTemp['date'] = $date; $clientAddTemp['quantity'] = (int)$work_types_add[$date]; if(!$_POST['client_req']){ $clientAddTemp['rentQuantity'] = (int)$work_types_rentQuantity_add[$date]; $clientAddTemp['buyQuantity'] = (int)$work_types_buyQuantity_add[$date]; $clientAddTemp['NBQuantity'] = (int)$work_types_NBQuantity_add[$date]; } else if($_POST['client_req'] == 1){ foreach($reqs as $type){ $clientAddTemp['quantity'.$type['id']] = (int)$work_types_req_add[$type['id']][$date]; } } $clientsAdd[] = $clientAddTemp; $clients[] = $tempArrClirnts; $conversions[] = $temparr; } //По менеджерам $managersClients = array(); $managersClientsSdelka = array(); $managersEvents = array(); $sql_u = "SELECT `id`, `first_name`, `last_name`, `middle_name` FROM `users`"; $q_u = mysql_query($sql_u); //var_dump($manager); while($r_u = mysql_fetch_assoc($q_u)){ if(isset($manager[$r_u['id']])){ $mc = $manager[$r_u['id']]; $mc['category'] = trim($r_u['last_name'] . ' ' . $r_u['first_name'] . ' ' . $r_u['middle_name']); $managersClients[] = $mc; } if(isset($managerSdelka[$r_u['id']])){ $ms = $managerSdelka[$r_u['id']]; $ms['category'] = trim($r_u['last_name'] . ' ' . $r_u['first_name'] . ' ' . $r_u['middle_name']); $managersClientsSdelka[] = $ms; } if(isset($managerEvents[$r_u['id']])){ $me = $managerEvents[$r_u['id']]; $me['category'] = trim($r_u['last_name'] . ' ' . $r_u['first_name'] . ' ' . $r_u['middle_name']); $managersEvents[] = $me; } } //$result['work'] = (int)$row; //array_multisort($result, SORT_DESC); ksort($sources); ksort($employees); $itogResult['Funnel'] = $result; $itogResult['Sources'] = $sources; $itogResult['Partners'] = $employees; $itogResult['conversion'] = $conversion; $itogResult['summa_sdelok'] = $summaSdelok; $itogResult['conversions'] = $conversions; $itogResult['clients'] = $clients; $itogResult['clientsAdd'] = $clientsAdd; $itogResult['managersClients'] = $managersClients; $itogResult['managersClientsSdelka'] = $managersClientsSdelka; $itogResult['managersEvents'] = $managersEvents; $itogResult['funnel_step'] = $funnel_step; $itogResult['req_type'] = $req_type; $itogResult['req_type2'] = $req_type2; $itogResult['req_type_menedger'] = $req_type_menedger; $itogResult['req_type_menedger_sdelka'] = $req_type_menedger_sdelka; echo json_encode($itogResult, JSON_UNESCAPED_UNICODE); } if(isset($_POST['getSelectClients'])){ require_once($_SERVER['DOCUMENT_ROOT']."/config_ajax.php"); $cl = new Clients(); $usersArr = json_decode($_POST['responsible'], true); $bd_usl_managers = ''; $usersId = $cl -> getUsersFilter($usersArr, $_POST['user_id'], $_POST['users_admin']); foreach($usersId as $userId){ $arrIdUser[] = "who_work = $userId"; } $bd_usl_managers = " AND (".implode(" OR ",$arrIdUser).")"; $sql = "SELECT `id`, `fio`, `email`, `phone` FROM clients WHERE 1 $bd_usl_managers and deleted <> 1 and confirm = 1 AND cancel = 0"; $q = mysql_query($sql); ?> 0, (SELECT u.user_logo FROM users as u WHERE u.id = e.from_id), (SELECT u.user_logo FROM users as u WHERE u.id = e.user_id)) as user_logo," . "If(e.from_id <> 0, (SELECT u.fio FROM users as u WHERE u.id = e.from_id), (SELECT u.fio FROM users as u WHERE u.id = e.user_id)) as user_fio" . " FROM user_client_events as e WHERE e.id = {$id}"; $rez = mysql_query($sql); $event = mysql_fetch_assoc($rez); $class_ev = " is__right"; $from_id = $event['user_id']; if(!empty($event['from_id'])) $from_id = $event['from_id']; if($_SESSION['id'] == $from_id){ $class_ev = " is__left"; } $classMes = ''; $mainMes = $event['comment']; $title = 'Примечание'; if ($event['type'] == 'call') { $classMes = 'call'; $title = 'Звонок'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Позвонить ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'meet') { $classMes = 'meeting'; $title = 'Встреча'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Встреча будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'show') { $classMes = 'showing'; $title = 'Показ'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Показ будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'deal') { $classMes = 'deal'; $title = 'Сделка'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Сделка будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'even') { $classMes = 'even'; $title = $event['name']; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Мероприятие состоится ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } ?>
Сумма сделки: p
Адрес:
Комментарий:
0, (SELECT u.user_logo FROM users as u WHERE u.id = e.from_id), (SELECT u.user_logo FROM users as u WHERE u.id = e.user_id)) as user_logo," . "If(e.from_id <> 0, (SELECT u.fio FROM users as u WHERE u.id = e.from_id), (SELECT u.fio FROM users as u WHERE u.id = e.user_id)) as user_fio" . " FROM user_client_events as e WHERE e.id = {$id}"; $rez = mysql_query($sql); $event = mysql_fetch_assoc($rez); $class_ev = " is__right"; $from_id = $event['user_id']; if(!empty($event['from_id'])) $from_id = $event['from_id']; if($_SESSION['id'] == $from_id){ $class_ev = " is__left"; } $classMes = ''; $mainMes = $event['comment']; $title = 'Примечание'; if ($event['type'] == 'call') { $classMes = 'call'; $title = 'Звонок'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Позвонить "; if( $event['tracking'] == 1){ $mainMes .= "c ".date('d.m.Y H:i', strtotime($event['schedule_date_to']))."
по ".date('d.m.Y H:i', strtotime($event['schedule_date'])); } else { $mainMes .= $d." ".getRusMonth($m)." ".$y." в ".date("H:i", strtotime($event['schedule_date'])); } //$mainMes = "Позвонить ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'meet') { $classMes = 'meeting'; $title = 'Встреча'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Встреча будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'show') { $classMes = 'showing'; $title = 'Показ'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Показ будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'deal') { $classMes = 'deal'; $title = 'Сделка'; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Сделка будет ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } if ($event['type'] == 'even') { $classMes = 'even'; $title = $event['name']; $date = date("d.m.Y", strtotime($event['schedule_date'])); list($d, $m, $y) = explode(".", $date); $mainMes = "Мероприятие состоится ".$d." ".getRusMonth($m)." ".$y." в ".date('H:i', strtotime($event['schedule_date'])); } ?>
Сумма сделки: p
Адрес:
Комментарий: