881 lines
36 KiB
PHP
881 lines
36 KiB
PHP
<?php
|
|
$start = microtime(true);
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
|
|
|
$cl = new Clients();
|
|
$funnelId = 'all';
|
|
|
|
$isReq = false;
|
|
if(isset($_POST['client_req']) && $_POST['client_req'] == 1){
|
|
$isReq = true;
|
|
}
|
|
|
|
$usersArr = json_decode($_POST['responsible'], true);
|
|
//file_put_contents(__DIR__.'/log.txt', date('H:i:s'));
|
|
$usersId = $cl -> getUsersFilter($usersArr, $_POST['user_id'], $_POST['users_admin']);
|
|
//var_dump($usersId);
|
|
$rows = $row = $row_obj = $row_add = $row_do = $row_pr = array();
|
|
//file_put_contents(__DIR__.'/log.txt', var_dump($_POST));
|
|
//var_dump($_POST);
|
|
//$_SESSION['filter_emp'] = $_POST['responsible'];
|
|
$bd_usl_managers = '';
|
|
$bd_usl = '';
|
|
$arrIdUser = array();
|
|
$arrIdAgent = array();
|
|
foreach($usersId as $userId){
|
|
$arrIdUser[] = "who_work = $userId";
|
|
if($isReq){
|
|
$arrIdAgent[] = "user_id = $userId";
|
|
} else {
|
|
$arrIdAgent[] = "id_agent = $userId";
|
|
}
|
|
|
|
}
|
|
$table = 'clients';
|
|
$date_add = 'date_add';
|
|
$period = 'all';
|
|
$whereTasks = "";
|
|
$bd_piriod = '';
|
|
$bd_do_period = '';
|
|
$agentId = 'id_agent';
|
|
|
|
if(isset($_POST['period'])){
|
|
//$_SESSION['client_period'] = $_POST['period'];
|
|
$period = $_POST['period'];
|
|
if($period == 'dates'){
|
|
// $_SESSION['client_period'] = 'period';
|
|
/* $onDate = date('Y-m-d 00:00:00', strtotime($_POST['onDate']));
|
|
if(empty($onDate)) $onDate = '1970-01-01 00:00:00';
|
|
|
|
if(!empty($_POST['offDate'])) {
|
|
$offDate = date('Y-m-d 23:59:59', strtotime($_POST['offDate']));
|
|
} else {
|
|
$offDate = date('Y-m-d 23:59:59');
|
|
}
|
|
$bd_piriod .= " AND `date_add` between '{$onDate}' AND '{$offDate}'";
|
|
$bd_do_period .= " AND `date_add` < '{$onDate}'";*/
|
|
$_SESSION['on_date'] = $_POST['onDate'];
|
|
$_SESSION['off_date'] = $_POST['offDate'];
|
|
} else {
|
|
unset($_SESSION['on_date']);
|
|
unset($_SESSION['off_date']);
|
|
/* $arrPeriod = ['today' => '-0 day', 'week' => '-6 day', 'month' => '-30 day', 'quarter' => '-120 day', 'year' => '-365'];
|
|
$days = date('Y-m-d', strtotime($arrPeriod[$_POST['period']]));
|
|
$bd_piriod .= " AND `date_add` > '{$days}'";
|
|
$bd_do_period .= " AND `date_add` < '{$days}'";
|
|
//$whereTasks = " and DATE(create_date) > '{$days}'";*/
|
|
//$_SESSION['client_period'] = $_POST['period'];
|
|
}
|
|
} else {
|
|
//unset($_SESSION['client_period']);
|
|
}
|
|
//echo $period;
|
|
|
|
|
|
|
|
if($isReq){
|
|
$table = 'requisitions';
|
|
$date_add = 'created_at';
|
|
$agentId = 'user_id as id_agent';
|
|
|
|
$period = 'all';
|
|
$whereTasks = "";
|
|
|
|
if($_POST['period']){
|
|
$period = $_POST['period'];
|
|
}
|
|
$dates = getPeriod($period,$_POST['onDate'],$_POST['offDate']);
|
|
$date_between = $dates['between'];
|
|
$whereTasks = $dates['whereTasks'];
|
|
|
|
$bd_piriod = " AND created_at ".$date_between;
|
|
$bd_do_period = " AND created_at < '".$dates['dateStart']."'";
|
|
} else{
|
|
$dates = getPeriod($period,$_POST['onDate'],$_POST['offDate']);
|
|
$date_between = $dates['between'];
|
|
$whereTasks = $dates['whereTasks'];
|
|
|
|
$bd_piriod = " AND date_add ".$date_between;
|
|
$bd_do_period = " AND date_add < '".$dates['dateStart']."'";
|
|
}
|
|
|
|
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($_POST['charts_activities']){
|
|
$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 .= " AND (".implode(" OR ",$activitieArr).")";
|
|
}
|
|
$_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['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 ($_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[] = "`employee_id` = '{$empl}'";
|
|
}
|
|
}
|
|
} 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']);
|
|
}
|
|
|
|
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).")";
|
|
$funnelId = implode(', ',$funnelArr);
|
|
}
|
|
}
|
|
/* $role = 'role_1';
|
|
if(isset($_POST['role'])){
|
|
$role = $_POST['role'];
|
|
}
|
|
|
|
if($role == 'role_1'){
|
|
$bd_usl .= " AND (`role` like '%"Покупатель"%' OR `role` like '%"Арендатор"%')";
|
|
}
|
|
|
|
if($role == 'role_2'){
|
|
$bd_usl .= " AND (`role` like '%"Продавец"%' OR `role` like '%"Арендодатель"%')";
|
|
}*/
|
|
|
|
|
|
$bd_usl .= " AND cancel=0";
|
|
|
|
|
|
$row = array();
|
|
|
|
$bd_usl_managers = " AND (".implode(" OR ",$arrIdUser).")";
|
|
$sql = "SELECT `who_work`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl $bd_piriod group by `who_work`";
|
|
//echo $sql;
|
|
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row[$r['who_work']] = $r['total'];
|
|
}
|
|
|
|
|
|
$sql = "SELECT `who_work`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl $bd_do_period group by `who_work`";
|
|
//echo $sql;
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_do[$r['who_work']] = $r['total'];
|
|
}
|
|
|
|
$bd_usl_agent = " AND (".implode(" OR ",$arrIdAgent).")";
|
|
$sql = "SELECT $agentId, count(*) as total FROM $table WHERE 1 $bd_usl_agent $bd_usl $bd_piriod group by `id_agent`";
|
|
//echo $sql;
|
|
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_add[$r['id_agent']] = $r['total'];
|
|
}
|
|
|
|
if(!$isReq){
|
|
$sql = "SELECT `who_work`, count(*) as total FROM clients WHERE 1 $bd_usl_managers $bd_usl $bd_piriod and of_objects > 0 group by `who_work`";
|
|
//echo $sql;
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_obj[$r['who_work']] = $r['total'];
|
|
}
|
|
}
|
|
|
|
$sql = "SELECT `who_work`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl $bd_piriod and deleted = 0 group by `who_work`";
|
|
|
|
//echo $sql;
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_left[$r['who_work']] = $r['total'];
|
|
}
|
|
$row_del = array();
|
|
$row_del_all = array();
|
|
$sql = "SELECT `who_work`, `denial`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl $bd_piriod and deleted <> 0 and confirm <> 10 group by `who_work`, `denial`";
|
|
//echo $sql;
|
|
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_del[$r['who_work']][$r['denial']] = $r['total'];
|
|
if(!isset($row_del_all[$r['who_work']])) $row_del_all[$r['who_work']] = 0;
|
|
$row_del_all[$r['who_work']] += $r['total'];
|
|
}
|
|
|
|
$agencyId = User::getUserAgencyID();
|
|
$sql_denial = "SELECT * FROM denial_work WHERE (agency_id = 0 or agency_id={$agencyId})";
|
|
if($agencyId == 19895){
|
|
$sql_denial = "SELECT * FROM denial_work WHERE agency_id = {$agencyId} AND del = 0";
|
|
}
|
|
$q_denial = mysql_query($sql_denial);
|
|
$list_denial = array();
|
|
$list_denial[] = 0;
|
|
while($r_denial = mysql_fetch_assoc($q_denial)){
|
|
$list_denial[] = $r_denial['id'];
|
|
}
|
|
|
|
|
|
$sql = "SELECT `id` FROM $table WHERE 1 $bd_usl_managers $bd_usl ";
|
|
|
|
|
|
$q = mysql_query($sql);
|
|
$ro = mysql_num_rows($q);
|
|
|
|
$whereEv = '';
|
|
$tempEv = array();
|
|
if(!$isReq){
|
|
$tempEv[] = 0;
|
|
}
|
|
if($ro > 0){
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$tempEv[] = $r['id'];
|
|
}
|
|
$whereEv = ' AND client_id in ('.implode(', ', $tempEv).') AND req_id = 0';
|
|
$whereEvPr = ' AND id_client in ('.implode(', ', $tempEv).')';
|
|
|
|
if($isReq){
|
|
$whereEv = ' AND req_id in ('.implode(', ', $tempEv).') AND client_id = 0';
|
|
}
|
|
|
|
$sql = "SELECT `who_work`, sum(summa) as summa, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and deleted = 1 and confirm = 10 and ";
|
|
if($isReq){
|
|
$sql .= "(SELECT `date_update` FROM `events_clients` WHERE `req_id` = requisitions.id AND `event` = 'delete' order by id desc limit 1) $date_between group by `who_work`" ;
|
|
|
|
} else {
|
|
$sql .= "(SELECT `date_update` FROM `events_clients` WHERE `client_id` = clients.id AND `event` = 'delete' order by id desc limit 1) $date_between group by `who_work`" ;
|
|
}
|
|
|
|
|
|
$q = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($q)){
|
|
$row_summa[$r['who_work']] = $r['summa'];
|
|
$row_sdelka[$r['who_work']] = $r['total'];
|
|
}
|
|
|
|
|
|
|
|
// считаем события объектов
|
|
/*$sql = "SELECT count(id) as total, user_id FROM user_object_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE(schedule_date) >= '".date("Y-m-d 00:00:00")."' and DATE(schedule_date) <= '".date("Y-m-d H:i:s")."' group by user_id";
|
|
$rez = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task_old[$r['user_id']] = $r['total'];
|
|
}*/
|
|
|
|
|
|
// считаем события клиентов
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0
|
|
and cancel=0 and megafon=0 and mango=0 and telphin=0 and beeline=0 and mts=0 and tele2=0 and allo=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') < '".date("Y-m-d H:i:s")."' group by user_id";
|
|
|
|
$agencyId = User::getUserAgencyID();
|
|
if($agency_id == 7384){
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0 and cancel=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') < '".date("Y-m-d H:i:s")."' group by user_id";
|
|
|
|
}
|
|
// echo $sql;
|
|
$rez = mysql_query($sql);
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task_old[$r['user_id']] = $r['total'];
|
|
}
|
|
|
|
//echo $sql;
|
|
|
|
|
|
|
|
// считаем события объектов
|
|
/* $sql = "SELECT count(id) as total, user_id FROM user_object_events WHERE user_id in (". implode(', ', $usersId).")
|
|
and schedule_date is not null $whereTasks and DATE(schedule_date) > '".date("Y-m-d H:i:s")."' group by user_id";
|
|
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task_obj[$r['user_id']] = $r['total'];
|
|
};*/
|
|
|
|
// считаем события клиентов
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0
|
|
and cancel=0 and megafon=0 and mango=0 and telphin=0 and beeline=0 and mts=0 and tele2=0 and allo=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".date("Y-m-d H:i:s")."' group by user_id";
|
|
|
|
if($agency_id == 7384){
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0
|
|
and cancel=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".date("Y-m-d H:i:s")."' group by user_id";
|
|
}
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task[$r['user_id']] = $r['total'];
|
|
}
|
|
|
|
// считаем события объектов
|
|
/*$sql = "SELECT count(id) as total, user_id FROM user_object_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 0
|
|
and schedule_date is not null $whereTasks and DATE(schedule_date) < '".date("Y-m-d 00:00:00")."' group by user_id";
|
|
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task_slung_obj[$r['user_id']] = $r['total'];
|
|
};*/
|
|
|
|
// считаем события клиентов
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 1
|
|
and cancel=0 and megafon=0 and mango=0 and telphin=0 and beeline=0 and mts=0 and tele2=0 and allo=0
|
|
and schedule_date is not null $whereTasks $whereEv group by user_id";
|
|
|
|
if($agencyId == 7384){
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and calendar_view = 1 and cancel=0
|
|
and schedule_date is not null $whereTasks $whereEv group by user_id";
|
|
|
|
}
|
|
//echo $sql;
|
|
$work_sql = $sql;
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_task_slung[$r['user_id']] = $r['total'];
|
|
}
|
|
|
|
//Встречи
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and `type` = 'meet' and calendar_view = 1
|
|
and cancel=0 and megafon=0 and mango=0 and telphin=0 and beeline=0 and mts=0 and tele2=0 and allo=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".date("Y-m-d H:i:s")."' group by user_id";
|
|
if($agencyId == 7384){
|
|
$sql = "SELECT count(id) as total, user_id FROM user_client_events WHERE user_id in (". implode(', ', $usersId).") and `type` = 'meet' and calendar_view = 1 and cancel=0
|
|
and schedule_date is not null $whereTasks $whereEv and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".date("Y-m-d H:i:s")."' group by user_id";
|
|
|
|
}
|
|
|
|
//echo $sql;
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_meet[$r['user_id']] = $r['total'];
|
|
}
|
|
|
|
if(!$isReq){
|
|
//Презентации
|
|
$sql = "SELECT count(id) as total, id_agent FROM sended_pdf WHERE id_agent in (". implode(', ', $usersId).") and
|
|
date_send $date_between $whereEvPr group by id_agent";
|
|
// echo $sql;
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_pr[$r['id_agent']] = $r['total'];
|
|
}
|
|
|
|
|
|
$sql = "SELECT count(id) as total, id_agent FROM sended_pdf_newbuildings WHERE id_agent in (". implode(', ', $usersId).") and
|
|
date_send $date_between $whereEvPr group by id_agent";
|
|
// echo $sql;
|
|
$rez = mysql_query($sql);
|
|
|
|
while($r = mysql_fetch_assoc($rez)){
|
|
$row_pr_new[$r['id_agent']] = $r['total'];
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$departmentClass = new Department;
|
|
$departments = $departmentClass->getDepartments();
|
|
//var_dump($departments);
|
|
|
|
$users = array();
|
|
$sql_users = "SELECT id, agency, manager, agency_name, first_name, last_name, middle_name, id_manager, role_id FROM users WHERE id in (". implode(', ', $usersId).")";
|
|
$q_users = mysql_query($sql_users);
|
|
while($r_users = mysql_fetch_assoc($q_users)){
|
|
$users[$r_users['id']] = $r_users;
|
|
}
|
|
|
|
|
|
$array_menedgers = array();
|
|
foreach($usersId as $key => $id){
|
|
$mstr = $users[$id];
|
|
$arrTemp = array();
|
|
//$mstr = mysql_fetch_assoc(mysql_query("SELECT agency, manager, agency_name, first_name, last_name, middle_name, id_manager FROM users WHERE id=".$id));
|
|
if($mstr['agency']){
|
|
$master = "Агентство ". trim($mstr['agency_name']) ." (". trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']).")";
|
|
$arrTemp['post'] = 'agency';
|
|
$arrTemp['agency_name'] = $mstr['agency_name'];
|
|
}
|
|
else if($mstr['role_id'] > 0 && isset($departments[$mstr['role_id']])){
|
|
$master = trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']).' ('.$departments[$mstr['role_id']]['role_name'].' '.$departments[$mstr['role_id']]['dep_name'].')';
|
|
if($mstr['manager']){
|
|
$arrTemp['post'] = 'manager';
|
|
} else {
|
|
$arrTemp['post'] = 'agent';
|
|
}
|
|
|
|
}
|
|
else if($mstr['manager']){
|
|
$master = "Менеджер " . trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']);
|
|
$arrTemp['post'] = 'manager';
|
|
|
|
}
|
|
else {
|
|
$master = "Агент " . trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']);
|
|
$arrTemp['post'] = 'agent';
|
|
}
|
|
$arrTemp['id_manager'] = $mstr['id_manager'];
|
|
$arrTemp['id'] = $id;
|
|
$arrTemp['fio'] = $master;
|
|
$arrTemp['first_name'] = $mstr['first_name'];
|
|
$arrTemp['last_name'] = $mstr['last_name'];
|
|
$arrTemp['middle_name'] = $mstr['middle_name'];
|
|
$arrTemp['work'] = 0;
|
|
$arrTemp['work_do'] = 0;
|
|
if(isset($row[$id])) {
|
|
$arrTemp['work'] = $row[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work'] = $row[$id];
|
|
}
|
|
|
|
}
|
|
|
|
if(isset($row_do[$id])) {
|
|
$arrTemp['work_do'] = $row_do[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work_do'] = $row_do[$id];
|
|
}
|
|
}
|
|
|
|
$arrTemp['work_add'] = 0;
|
|
if(isset($row_add[$id])) {
|
|
$arrTemp['work_add'] = $row_add[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work_add'] = $row_add[$id];
|
|
}
|
|
}
|
|
|
|
$arrTemp['work_left'] = 0;
|
|
if(isset($row_left[$id])) {
|
|
$arrTemp['work_left'] = $row_left[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work_left'] = $row_left[$id];
|
|
}
|
|
}
|
|
|
|
foreach($list_denial as $denial){
|
|
$arrTemp['denial_'.$denial] = 0;
|
|
if(isset($row_del[$id][$denial])){
|
|
$arrTemp['denial_'.$denial] = $row_del[$id][$denial];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['denial_'.$denial] = $row_del[$id][$denial];
|
|
}
|
|
}
|
|
}
|
|
|
|
$arrTemp['work_del_all'] = 0;
|
|
if(isset($row_del_all[$id])) {
|
|
$arrTemp['work_del_all'] = $row_del_all[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work_del_all'] = $row_del_all[$id];
|
|
}
|
|
}
|
|
|
|
$arrTemp['objects'] = 0;
|
|
|
|
if(isset($row_obj[$id])) {
|
|
$arrTemp['objects'] = $row_obj[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['objects'] = $row_obj[$id];
|
|
}
|
|
}
|
|
|
|
$arrTemp['summa'] = 0;
|
|
if(isset($row_summa[$id])) {
|
|
$arrTemp['summa'] = $row_summa[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['summa'] = $row_summa[$id];
|
|
}
|
|
}
|
|
|
|
$arrTemp['sdelka'] = 0;
|
|
if(isset($row_sdelka[$id])) {
|
|
$arrTemp['sdelka'] = $row_sdelka[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['sdelka'] = $row_sdelka[$id];
|
|
}
|
|
}
|
|
$arrTemp['task_new'] = 0;
|
|
if(isset($row_task[$id])) {
|
|
$arrTemp['task_new'] = $row_task[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['task_new'] = $row_task[$id];
|
|
}
|
|
}
|
|
|
|
/*if(isset($row_task_obj[$id])) {
|
|
$arrTemp['task_new'] = $row_task_obj[$id];
|
|
|
|
}*/
|
|
|
|
$arrTemp['task_old'] = 0;
|
|
if(isset($row_task_old[$id])) {
|
|
$arrTemp['task_old'] += $row_task_old[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['task_old'] = $row_task_old[$id];
|
|
}
|
|
}
|
|
/*if(isset($row_task_old_obj[$id])) {
|
|
$arrTemp['task_old'] += $row_task_old_obj[$id];
|
|
|
|
}*/
|
|
|
|
$arrTemp['task_slung'] = 0;
|
|
if(isset($row_task_slung[$id])) {
|
|
$arrTemp['task_slung'] += $row_task_slung[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['task_slung'] = $row_task_slung[$id];
|
|
}
|
|
}
|
|
/*if(isset($row_task_slung_obj[$id])) {
|
|
$arrTemp['task_slung'] += $row_task_slung_obj[$id];
|
|
|
|
}*/
|
|
|
|
$arrTemp['presintation'] = 0;
|
|
if(isset($row_pr[$id])) {
|
|
$arrTemp['presintation'] = $row_pr[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['presintation'] = $row_pr[$id];
|
|
}
|
|
}
|
|
if(isset($row_pr_new[$id])) {
|
|
$arrTemp['presintation'] += (int)$row_pr_new[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['presintation'] += $row_pr_new[$id];
|
|
}
|
|
}
|
|
|
|
|
|
$arrTemp['meet'] = 0;
|
|
if(isset($row_meet[$id])) {
|
|
$arrTemp['meet'] = $row_meet[$id];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['meet'] = $row_meet[$id];
|
|
}
|
|
}
|
|
|
|
/*$sql_user = "SELECT id FROM `users` WHERE id=".$id." or id_manager=".$id." or id_manager in (select id from users where id_manager=".$id.")";
|
|
|
|
$q_user = mysql_query($sql_user);
|
|
$doers = '';
|
|
while($r_user = mysql_fetch_assoc($q_user)){
|
|
if($doers == '') $doers = '(';
|
|
else $doers .= ' or ';
|
|
$doers .= "doers like '%"".$r_user['id'].""%'";
|
|
}
|
|
if($doers != '') $doers .= ')';
|
|
|
|
$work_sql = $doers;
|
|
|
|
$sql_doers = "SELECT count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and $date_add $date_between and doer_clients > 0 and $doers";
|
|
echo $sql_doers."\n";*/
|
|
|
|
$q_doers = mysql_query($sql_doers);
|
|
$r_doers = mysql_fetch_assoc($q_doers);
|
|
|
|
$arrTemp['work_droup'] = 0;
|
|
//if(isset($row_droup[$id])) {
|
|
$arrTemp['work_droup'] = $r_doers['total'];
|
|
if($arrTemp['post'] == 'manager'){
|
|
$array_menedgers[$id]['work_droup'] = $r_doers['total'];
|
|
}
|
|
//}
|
|
|
|
|
|
// if(isset($rows[$mstr['id_manager']])){
|
|
// // echo $rows[$mstr['id_manager']]['id'];
|
|
|
|
// $rows[$mstr['id_manager']]['objects'] = (int)$rows[$mstr['id_manager']]['objects'] + (int)$row_obj[$id];
|
|
// $rows[$mstr['id_manager']]['work'] = (int)$rows[$mstr['id_manager']]['work'] + (int)$row[$id];
|
|
// $rows[$mstr['id_manager']]['work_do'] = (int)$rows[$mstr['id_manager']]['work_do'] + (int)$row_do[$id];
|
|
// $rows[$mstr['id_manager']]['work_add'] = (int)$rows[$mstr['id_manager']]['work_add'] + (int)$row_add[$id];
|
|
// $rows[$mstr['id_manager']]['work_left'] = (int)$rows[$mstr['id_manager']]['work_left'] + (int)$row_left[$id];
|
|
// //$rows[$mstr['id_manager']]['work_droup'] = (int)$rows[$mstr['id_manager']]['work_droup'] + (int)$r_doers['total'];
|
|
// $rows[$mstr['id_manager']]['summa'] = (int)$rows[$mstr['id_manager']]['summa'] + (int)$row_summa[$id];
|
|
// $rows[$mstr['id_manager']]['sdelka'] = (int)$rows[$mstr['id_manager']]['sdelka'] + (int)$row_sdelka[$id];
|
|
// $rows[$mstr['id_manager']]['task_new'] = (int)$rows[$mstr['id_manager']]['task_new'] + (int)$arrTemp['task_new'];
|
|
// $rows[$mstr['id_manager']]['task_old'] = (int)$rows[$mstr['id_manager']]['task_old'] + (int)$arrTemp['task_old'];
|
|
// $rows[$mstr['id_manager']]['task_slung'] = (int)$rows[$mstr['id_manager']]['task_slung'] + (int)$arrTemp['task_slung'];
|
|
// $rows[$mstr['id_manager']]['presintation'] = (int)$rows[$mstr['id_manager']]['presintation'] + (int)$arrTemp['presintation'];
|
|
// $rows[$mstr['id_manager']]['meet'] = (int)$rows[$mstr['id_manager']]['meet'] + $row_meet[$id];
|
|
// $rows[$mstr['id_manager']]['work_del_all'] = (int)$rows[$mstr['id_manager']]['work_del_all'] + $row_del_all[$id];
|
|
// foreach($list_denial as $denial){
|
|
// if(isset($row_del[$id][$denial])){
|
|
// $rows[$mstr['id_manager']]['denial_'.$denial] = (int)$rows[$mstr['id_manager']]['denial_'.$denial] + $row_del[$id][$denial];
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
$rows[$id] = $arrTemp;
|
|
}
|
|
//file_put_contents(__DIR__.'/log.txt', file_get_contents(__DIR__.'/log.txt').'\r\n'.date('H:i:s'));
|
|
//var_dump($rows);
|
|
$res = array();
|
|
//print_r($rows);
|
|
// foreach ($rows as $key => $row ){
|
|
// if(isset($rows[$row['id_manager']]) && $row['post'] == 'manager'){
|
|
// // echo $rows[$mstr['id_manager']]['id'];
|
|
// $rows[$row['id_manager']]['work'] = (int)$rows[$row['id_manager']]['work'] + (int)$row['work']-(int)$array_menedgers[$row['id']]['work'];
|
|
// /*if(isset($array_menedgers[$row['id_manager']]['work'])){
|
|
// $rows[$row['id_manager']]['work'] = (int)$rows[$row['id_manager']]['work'] -
|
|
// }*/
|
|
// $rows[$row['id_manager']]['work_do'] = (int)$rows[$row['id_manager']]['work_do'] + (int)$row['work_do']-(int)$array_menedgers[$row['id']]['work_do'] ;
|
|
// $rows[$row['id_manager']]['work_add'] = (int)$rows[$row['id_manager']]['work_add'] + (int)$row['work_add']-(int)$array_menedgers[$row['id']]['work_add'];
|
|
// $rows[$row['id_manager']]['work_left'] = (int)$rows[$row['id_manager']]['work_left'] + (int)$row['work_left']-(int)$array_menedgers[$row['id']]['work_left'];
|
|
// //$rows[$row['id_manager']]['work_droup'] = (int)$rows[$row['id_manager']]['work_droup'] + (int)$row['work_droup']-(int)$array_menedgers[$row['id']]['work_droup'];
|
|
// $rows[$row['id_manager']]['objects'] = (int)$rows[$row['id_manager']]['objects'] + (int)$row['objects']-(int)$array_menedgers[$row['id']]['objects'];
|
|
// $rows[$row['id_manager']]['summa'] = (int)$rows[$row['id_manager']]['summa'] + (int)$row['summa']-(int)$array_menedgers[$row['id']]['summa'];
|
|
// $rows[$row['id_manager']]['sdelka'] = (int)$rows[$row['id_manager']]['sdelka'] + (int)$row['sdelka']-(int)$array_menedgers[$row['id']]['sdelka'];
|
|
// $rows[$row['id_manager']]['task_new'] = (int)$rows[$row['id_manager']]['task_new'] + (int)$row['task_new']-(int)$array_menedgers[$row['id']]['task_new'];
|
|
// $rows[$row['id_manager']]['task_old'] = (int)$rows[$row['id_manager']]['task_old'] + (int)$row['task_old']-(int)$array_menedgers[$row['id']]['task_old'];
|
|
// $rows[$row['id_manager']]['task_slung'] = (int)$rows[$row['id_manager']]['task_slung'] + (int)$row['task_slung']-(int)$array_menedgers[$row['id']]['task_slung'];
|
|
// $rows[$row['id_manager']]['presintation'] = (int)$rows[$row['id_manager']]['presintation'] + (int)$row['presintation']-(int)$array_menedgers[$row['id']]['presintation'];
|
|
// $rows[$row['id_manager']]['work_del_all'] = (int)$rows[$row['id_manager']]['work_del_all'] + (int)$row['work_del_all']-(int)$array_menedgers[$row['id']]['work_del_all'];
|
|
// foreach($list_denial as $denial){
|
|
|
|
// $rows[$row['id_manager']]['denial_'.$denial] = (int)$rows[$row['id_manager']]['denial_'.$denial] + (int)$row['denial_'.$denial] - (int)$array_menedgers[$row['id']]['denial_'.$denial];
|
|
|
|
// }
|
|
|
|
// $rows[$row['id_manager']]['conversion'] = (int)$rows[$row['id_manager']]['conversion'] + (int)$row['conversion'];
|
|
// }
|
|
// $res[] = $row;
|
|
// }
|
|
|
|
$responsible = '';
|
|
if(!empty($usersArr)){
|
|
$responsible = implode(',', $usersArr);
|
|
}
|
|
$url = 'clients';
|
|
$type_calendar = 'client';
|
|
if($isReq){
|
|
$url = 'requisitions';
|
|
$type_calendar = 'req';
|
|
}
|
|
foreach ($rows as $row )
|
|
{
|
|
$id = $row['id'];
|
|
$conversion = round($row['sdelka']/$row['work']*100, 2) . "%";
|
|
$conversion_del = round($row['work_del_all']/$row['work']*100, 2) . "%";
|
|
|
|
$row['conversion'] = $conversion;
|
|
$row['conversion_del'] = $conversion_del;
|
|
$work_temp = $row['work'];
|
|
|
|
$row['work'] = "<a data-val=\"$work_temp\" href=\"/$url.php?filter_stage=filter_work_all&emp=$id&resetFilter=1&period=$period&funnelId=$funnelId&filter_emp=['I_$id']";
|
|
if($responsible != ''){
|
|
$row['work'] .= "&responsible=$responsible";
|
|
}
|
|
$row['work'] .= "\" target=\"_blank\">$work_temp</a>";
|
|
|
|
$workDo_temp = $row['work_do'];
|
|
$row['work_do'] = "<a data-val=\"$workDo_temp\" href=\"/$url.php?filter_stage=filter_work_all_do&emp=$id&resetFilter=1&period=$period&funnelId=$funnelId&filter_emp=['I_$id']";
|
|
if($responsible != ''){
|
|
$row['work_do'] .= "&responsible=$responsible";
|
|
}
|
|
$row['work_do'] .= "\" target=\"_blank\">$workDo_temp</a>";
|
|
|
|
$workAdd_temp = $row['work_add'];
|
|
$row['work_add'] = "<a data-val=\"$workAdd_temp\" href=\"/$url.php?filter_stage=filter_work_add&emp=$id&resetFilter=1&period=$period&funnelId=$funnelId&filter_emp=['I_$id']";
|
|
if($responsible != ''){
|
|
$row['work_add'] .= "&responsible=$responsible";
|
|
}
|
|
$row['work_add'] .= "\" target=\"_blank\">$workAdd_temp</a>";
|
|
|
|
$workLeft_temp = $row['work_left'];
|
|
$row['work_left'] = "<a data-val=\"$workLeft_temp\" href=\"/$url.php?filter_stage=filter_stage_work&emp=$id&resetFilter=1&period=$period&funnelId=$funnelId&filter_emp=['I_$id']";
|
|
if($responsible != ''){
|
|
$row['work_left'] .= "&responsible=$responsible";
|
|
}
|
|
$row['work_left'] .= "\" target=\"_blank\">$workLeft_temp</a>";
|
|
|
|
$workDroup_temp = $row['work_droup'] ?: 0;
|
|
$row['work_droup'] = "<a data-val=\"$workDroup_temp\" href=\"/$url.php?filter_stage=filter_work_all&emp=$id&resetFilter=1&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['work_droup'] .= "&responsible=$responsible";
|
|
}
|
|
$row['work_droup'] .= "&isPartner=1\"\" target=\"_blank\">$workDroup_temp</a>";
|
|
|
|
foreach($list_denial as $denial){
|
|
$tempC = $row['denial_'.$denial];
|
|
$row['denial_'.$denial] = "<a data-val=\"$tempC\" href=\"/$url.php?filter_stage=filter_stage_close&resetFilter=1&emp=$id&period=$period&denial=$denial&date_closer=11&funnelId=$funnelId&filter_emp=['I_$id']";
|
|
if($responsible != ''){
|
|
$row['denial_'.$denial] .= "&responsible=$responsible";
|
|
}
|
|
$row['denial_'.$denial] .= "\" target=\"_blank\">$tempC</a>";
|
|
|
|
}
|
|
|
|
$workObjects_temp = $row['objects'];
|
|
$row['objects'] = "<a data-val=\"$workObjects_temp\" href=\"/$url.php?filter_stage=filter_work_all&emp=$id&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['objects'] .= "&responsible=$responsible";
|
|
}
|
|
$row['objects'] .= "&objects=1\"\" target=\"_blank\">$workObjects_temp</a>";
|
|
|
|
$temp_summa = $row['summa'];
|
|
$sdelka_temp_summa = $row['sdelka'] . '/' . number_format($temp_summa,0 , '.', ' ');
|
|
$row['summa'] = "<a data-val=\"$sdelka_temp_summa\" href=\"/$url.php?filter_stage=filter_stage_hit&emp=$id&period=$period&funnelId=$funnelId\" target=\"_blank\">$sdelka_temp_summa</a>";
|
|
|
|
$workTask_temp = (int)$row['task_new'] + (int)$row['task_old'] + (int)$row['task_slung'];
|
|
$row['task'] = "<a data-val=\"$workTask_temp\" href=\"/charts.php?tasks=all_tasks&type_calendar=$type_calendar&emp=$id&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['task'] .= "&responsible=$responsible";
|
|
}
|
|
$row['task'] .= "\" target=\"_blank\">$workTask_temp</a>";
|
|
|
|
$workTaskNew_temp = (int)$row['task_new'];
|
|
$row['task_new'] = "<a data-val=\"$workTaskNew_temp\" href=\"/charts.php?tasks=open_tasks&type_calendar=$type_calendar&emp=$id&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['task_new'] .= '&responsible='.$responsible;
|
|
}
|
|
$row['task_new'] .= "\" target=\"_blank\">$workTaskNew_temp</a>";
|
|
|
|
$workTaskOld_temp = (int)$row['task_old'];
|
|
$row['task_old'] = "<a data-val=\"$workTaskOld_temp\" href=\"/charts.php?tasks=overdue_tasks&type_calendar=$type_calendar&emp=$id&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['task_old'] .= "&responsible=$responsible";
|
|
}
|
|
$row['task_old'] .= "\" target=\"_blank\">$workTaskOld_temp</a>";
|
|
|
|
$workTaskSlung_temp = (int)$row['task_slung'];
|
|
$row['task_slung'] = "<a data-val=\"$workTaskSlung_temp\" href=\"/charts.php?tasks=completed_tasks&type_calendar=$type_calendar&emp=$id&period=$period&funnelId=$funnelId";
|
|
if($responsible != ''){
|
|
$row['task_slung'] .= "&responsible=$responsible";
|
|
}
|
|
$row['task_slung'] .= "\" target=\"_blank\">$workTaskSlung_temp</a>";
|
|
|
|
$row['avtocheck'] = 0;
|
|
$res[] = $row;
|
|
}
|
|
|
|
$result = array('current' => 1,
|
|
'rowCount'=> 10,
|
|
'rows' => $res,
|
|
'total' => count($usersId),
|
|
//'sql' => $work_sql,
|
|
'array' => $array_menedgers
|
|
);
|
|
/*$time = microtime(true) - $start;
|
|
file_put_contents(__DIR__.'/log.txt', 'Время выполнения скрипта: '.round($time, 4).' сек.');*/
|
|
echo json_encode($result);
|
|
/*{
|
|
"current": 1,
|
|
"rowCount": 10,
|
|
"rows": [
|
|
{
|
|
"id": 19,
|
|
"sender": "123@test.de",
|
|
"": "2014-05-30T22:15:00"
|
|
},
|
|
{
|
|
"id": 14,
|
|
"sender": "123@test.de",
|
|
"received": "2014-05-30T20:15:00"
|
|
},
|
|
...
|
|
],
|
|
"total": 1123
|
|
}*/
|