1648 lines
73 KiB
PHP
1648 lines
73 KiB
PHP
<?php
|
||
|
||
if(isset($_POST['dashboard']))
|
||
{
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
$cl = new Clients();
|
||
$usersArr = json_decode($_POST['responsible'], true);
|
||
$_SESSION['filter_emp'] = $_POST['responsible'];
|
||
$bd_usl_managers = '';
|
||
$bd_usl = '';
|
||
$bd_usl_req = '';
|
||
$bd_usl_cl = '';
|
||
$bd_usl_date = '';
|
||
$p_sql = '';
|
||
$arrIdUser = array();
|
||
$post = clearInputData($_POST);
|
||
$usersPlan = array();
|
||
/* if(empty($usersArr)){
|
||
$usersArr = $_POST['user_id'];
|
||
}*/
|
||
$usersId = $cl -> 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 = '<div class="target__result-item-total">' . number_format($summa_diff, 0, ',', ' ') . '<span class="rub">p</span></div>';
|
||
if($summa_diff < 0){
|
||
$summaDiffText = '<div class="target__result-item-total"> + ' . number_format($summa_diff*(-1), 0, ',', ' ') . '<span class="rub">p</span></div>';
|
||
}
|
||
|
||
$html = '<div class="target-row">
|
||
<div class="target">
|
||
<span class="target-title">Цель</span>
|
||
<span class="target-total">'.number_format($summa_total, 0, ',', ' ').'<span class="rub">p</span></span>
|
||
</div>
|
||
<div class="target">
|
||
<span class="target-title">Период</span>
|
||
<span class="target-month">
|
||
<span class="">'.$readPeriod.'</span>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
<div class="target-row target-row-progress">
|
||
<div class="target__progress">
|
||
<!-- width - процент выполнения -->
|
||
<div class="target__progress-line" style="width: '.$procentDay.'%;"></div>
|
||
|
||
<div class="target__progress-total">'.$procent_done.'%</div>
|
||
<div class="target__progress-now" style="left: '.$procentDays.'%;">
|
||
<div class="progress-baloon">
|
||
<span class="progress-baloon-day">Сегодня</span>
|
||
<span class="progress-baloon-date" data-role="today">'.date('d').' '. $nameMonth .'</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="target__month-scale target-month'.$totalDays.'">';
|
||
for($i=0; $i < $totalDays; $i++){
|
||
$html .= '<div class="target__month-scale-item"></div>';
|
||
}
|
||
|
||
$html .= '
|
||
<div class="target__month-scale-item-first">'.$firstDay.' '.$firstNameMonth.'</div>
|
||
<div class="target__month-scale-item-last">'.$lastDay.' '.$lastNameMonth.'</div>
|
||
</div>
|
||
</div>
|
||
<div class="target-row target-results">
|
||
<div class="target__result result-now">
|
||
<div class="target__result-item">
|
||
<div class="target__result-item-title">Выполнено</div>
|
||
<div class="target__result-item-total">' . number_format($summa_done, 0, ',', ' ') . '<span class="rub">p</span></div>
|
||
</div>
|
||
</div>
|
||
<div class="target__result">
|
||
<div class="target__result-item">
|
||
<div class="target__result-item-title">Осталось</div>
|
||
|
||
' . $summaDiffText . '
|
||
</div>
|
||
</div>
|
||
<div class="target__result">
|
||
<div class="target__result-item">
|
||
<div class="target__result-item-title">Процент выполнения</div>
|
||
<div class="target__result-item-total">'.$procent_done.'%</div>
|
||
</div>
|
||
</div>
|
||
</div> ';
|
||
$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);
|
||
?>
|
||
<select class="ms-big-add-client" multiple="">
|
||
<?php
|
||
|
||
while($r = mysql_fetch_assoc($q)){
|
||
// Маскируем контактные данные клиента, если у пользователя включено скрытие
|
||
mask_client_contacts_inplace($r);
|
||
$fio_phone = $r['phone'].' '.$r['fio'];
|
||
if(!empty($r['email'])){
|
||
$fio_phone .= ' ('.$r['email'].')';
|
||
}
|
||
?>
|
||
<option value="<?=$r['id']?>"><?=$fio_phone?></option>
|
||
<?php
|
||
}
|
||
?>
|
||
</select>
|
||
<?php
|
||
}
|
||
|
||
if(isset($_POST['event_id'])){
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
// $cl = new Clients();
|
||
$id = (int)$_POST['event_id'];
|
||
$sql = "SELECT e.id, e.comment, e.create_date, e.type, e.name, e.user_id, e.schedule_date, e.address, e.sum, e.from_id, e.calendar_view, "
|
||
. "If(e.from_id <> 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']));
|
||
}
|
||
?>
|
||
<div class="chat-block is__right">
|
||
<div class="chat-author">
|
||
<div class="pic">
|
||
<?php
|
||
if(empty($event['user_logo'])){
|
||
?>
|
||
<img src="/images/user-pic.svg"/>
|
||
<?php
|
||
} else {
|
||
?>
|
||
<img src="/photos/agency/<?=$event['user_logo']?>">
|
||
<?php
|
||
}
|
||
?>
|
||
<div class="fio_user" title="<?=$event['user_fio']?>"><?=$event['user_fio']?></div>
|
||
</div>
|
||
</div>
|
||
<div class="chat-message <?=$classMes?>">
|
||
<?php
|
||
if($event['type'] != 'comment') {
|
||
|
||
?>
|
||
<div class="chat-complete">
|
||
<div class="complete-button" data-id="<?=$event['id']?>">
|
||
<input type="checkbox" class=""/>
|
||
<div class="complete-action-button<?=($event['calendar_view'] == 1) ? ' active' : ''?>" id="groupAB__<?=$event['id']?>" title="Выполнено">
|
||
<span class="check-button-box"></span>
|
||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="512px" height="512px">
|
||
<g>
|
||
<g>
|
||
<path d="M505.943,79.594c-8.077-8.077-21.172-8.077-29.249,0L167.755,388.532L35.306,256.083c-8.076-8.077-21.172-8.077-29.248,0 c-8.077,8.077-8.077,21.172,0,29.249l147.074,147.074c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.625-6.059 l323.562-323.562C514.019,100.767,514.019,87.672,505.943,79.594z" fill="#388e3c"/>
|
||
</g>
|
||
</g>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<?php
|
||
}
|
||
?>
|
||
<div class="chat-content">
|
||
<div class="head"><span><?=$title?></span></div>
|
||
<div class="message"><?=$mainMes?></div>
|
||
<?php
|
||
if ($event['sum']) { ?>
|
||
<div class="message">Сумма сделки: <?=$event['sum']?><span class="rub">p</span></div>
|
||
<?php }
|
||
if ($event['address']) { ?>
|
||
<div class="message">Адрес: <?=$event['address']?></div>
|
||
<?php }
|
||
if(!empty($event['comment'])) {
|
||
?>
|
||
<div class="message">Комментарий: <?=$event['comment']?></div>
|
||
<?php
|
||
}
|
||
?>
|
||
<span class="time"><?=date("H:i", strtotime($event['create_date']))?></span>
|
||
<?php
|
||
|
||
if((int)$event['from_id'] == (int)$_SESSION['id']){
|
||
|
||
?>
|
||
<div class="message" style="margin-top: 10px;">
|
||
<a href="javascript:{};" class="no-border" onclick="editEvent('<?=$event['id']?>', '<?=$event['type']?>')" title="Редактировать">
|
||
<span class="simple-button settings"><i class="jw-action-icon-settings"></i></span>
|
||
</a>
|
||
<a href="javascript:{};" class="no-border" onclick="deleteEvent('<?=$event['id']?>')" title="Удалить">
|
||
<span class="simple-button delete"><i class="jw-action-icon-delete"></i></span>
|
||
</a>
|
||
</div>
|
||
<?php } ?>
|
||
</div>
|
||
</div>
|
||
<div class="clear"></div>
|
||
</div>
|
||
<?php
|
||
}
|
||
|
||
if(isset($_POST['update_event_id'])){
|
||
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
|
||
$cl = new Clients();
|
||
$id = (int)$_POST['update_event_id'];
|
||
$sql = "SELECT e.id, e.comment, e.create_date, e.type, e.name, e.user_id, e.schedule_date, e.address, e.sum, e.from_id, e.calendar_view, e.schedule_date_to, e.tracking, "
|
||
. "If(e.from_id <> 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']))." <br>по ".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']));
|
||
}
|
||
?>
|
||
|
||
<div class="head"><span><?=$title?></span></div>
|
||
<div class="message"><?=$mainMes?></div>
|
||
<?php
|
||
if ($event['sum']) { ?>
|
||
<div class="message">Сумма сделки: <?=$event['sum']?><span class="rub">p</span></div>
|
||
<?php }
|
||
if ($event['address']) { ?>
|
||
<div class="message">Адрес: <?=$event['address']?></div>
|
||
<?php }
|
||
if(!empty($event['comment'])) {
|
||
?>
|
||
<div class="message">Комментарий: <?=$event['comment']?></div>
|
||
<?php
|
||
}
|
||
?>
|
||
<span class="time"><?=date("H:i", strtotime($event['create_date']))?></span>
|
||
<?php if($_SESSION['id'] == $event['from_id']){ ?>
|
||
<div class="message" style="margin-top: 10px;">
|
||
|
||
<a href="javascript:{};" class="no-border" onclick="editEvent('<?=$event['id']?>', '<?=$event['type']?>')" title="Редактировать">
|
||
<span class="simple-button settings"><i class="jw-action-icon-settings"></i></span>
|
||
</a>
|
||
<a href="javascript:{};" class="no-border" onclick="deleteEvent('<?=$event['id']?>')" title="Удалить">
|
||
<span class="simple-button delete"><i class="jw-action-icon-delete"></i></span>
|
||
</a>
|
||
</div>
|
||
<?php }
|
||
|
||
}
|