checkPermissions();
//Закрытие
$denial_work = array();
$sql_d = "SELECT * FROM denial_work WHERE (agency_id = 0 or agency_id={$user->agencyId})";
if($user->agencyId == 19895){
$sql_d = "SELECT * FROM denial_work WHERE agency_id = {$user->agencyId} AND del = 0";
}
$q_d = mysql_query($sql_d);
while($r_d = mysql_fetch_assoc($q_d)){
$denial_work[] = $r_d['id'];
}
$denial_work[] = 0;
$sql_advg = "SELECT * FROM `advertising_sources_groups` WHERE `user_id` = '".$user->id."' or `manager_id` = '".$user->id."'";
if($user->id_manager){
$sql_advg .= " or `manager_id` = '".$user->id_manager."' or `user_id` = '".$user->id_manager."'";
}
if($user -> agencyId || $_SESSION['users_admin']){
$sql_advg .= " or `user_id` in (select id from users where id={$user->agencyId} or id_manager={$user->agencyId} or id_manager in
(select id from users where id_manager={$user->agencyId} or id_manager in
(select id from users where id_manager={$user->agencyId})))";
}
$sql_advg .= " order by id";
$q_advg = mysql_query($sql_advg);
while($r_advg = mysql_fetch_assoc($q_advg)){
$arrGroups[(int)$r_advg['id']] = $r_advg;
$groupId = (int)$r_advg['id'];
}
$groupId++;
$arrGroups[$groupId] = array('id'=>$groupId, 'name'=>'Без группы');
foreach($arrGroups as $idGroup => $group){
$res[$idGroup]['id'] = $idGroup;
$res[$idGroup]['source'] = $group['name'];
$res[$idGroup]['pid'] = 0;
$res[$idGroup]['calls_all'] = 0;
$res[$idGroup]['work'] = 0;
foreach($denial_work as $denial){
$res[$idGroup]['closest_'.$denial] = 0;
}
$res[$idGroup]['closest_all'] = 0;
$res[$idGroup]['expenditure'] = 0;
$res[$idGroup]['sdelka'] = 0;
$res[$idGroup]['summa'] = 0;
$res[$idGroup]['cost'] = 0;
$res[$idGroup]['cost_transaction'] = 0;
$res[$idGroup]['sources'] = 0;
}
//Список источников
$sourceId = 10001;
$arrSource = array();
$sql_adv = "SELECT * FROM `advertising_sources` WHERE (`user_id` = '".$user->id."' or `manager_id` = '".$user->id."'";
if($user->id_manager){
$sql_adv .= " or `manager_id` = '".$user->id_manager."' or `user_id` = '".$user->id_manager."'";
}
if($user -> agencyId || $_SESSION['users_admin']){
$sql_adv .= " or `manager_id` = '".$user -> agencyId."' or `user_id` = '".$user -> agencyId."'";
}
$sql_adv .= ")";
$sql_adv .= ' order by id';
$q_adv = mysql_query($sql_adv);
while($r_adv = mysql_fetch_assoc($q_adv)){
if((int)$r_adv['group_id'] == 0){
$r_adv['group_id'] = $groupId;
}
$arrSource[(int)$r_adv['id']] = $r_adv;
$sourceId = (int)$r_adv['id'];
}
$sourceId++;
$arrSource[10000] = array('id'=>10000, 'source'=>'Объекты нашей компании', 'group_id'=>$groupId);
$arrSource[$sourceId] = array('id'=>$sourceId, 'source'=>'Источник не выбран', 'group_id'=>$groupId);
//var_dump($arrSource);
foreach($arrSource as $idSource => $source){
$res[$idSource]['id'] = $idSource;
$res[$idSource]['source'] = $source['source'];
$res[$idSource]['pid'] = (int)$source['group_id'];
$res[$idSource]['calls_all'] = 0;
$res[$idSource]['work'] = 0;
foreach($denial_work as $denial){
$res[$idSource]['closest_'.$denial] = 0;
}
$res[$idSource]['closest_all'] = 0;
$res[$idSource]['expenditure'] = 0;
$res[$idSource]['sdelka'] = 0;
$res[$idSource]['summa'] = 0;
$res[$idSource]['cost'] = 0;
$res[$idSource]['cost_transaction'] = 0;
$res[$idSource]['sources'] = -1;
}
$cl = new Clients();
$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']);
$bd_usl_managers = '';
$bd_usl = ' AND cancel=0';
$arrIdUser = array();
$arrIdAgent = array();
foreach($usersId as $userId){
$arrIdUser[] = "who_work = $userId";
$arrIdAgent[] = "id_agent = $userId";
}
$period = 'all';
$whereTasks = "";
$bd_period = '';
$bd_do_period = '';
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'];
if($_POST['period'] != 'all'){
$days = date('Y-m-d', strtotime($arrPeriod[$_POST['period']]));
$bd_period .= " AND `date_add` > '{$days}'";
$bd_do_period .= " AND `date_add` < '{$days}'";
}
//$whereTasks = " and DATE(create_date) > '{$days}'";
//$_SESSION['client_period'] = $_POST['period'];
}
}
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($_POST['charts_activities'] && $_POST['charts_activities'] != "null"){
$activitiesArr = json_decode(html_entity_decode($_POST['charts_activities']), ENT_QUOTES);
//var_dump($activitiesArr);
$activitieArr = array();
foreach($activitiesArr as $activitieCl){
$activitieArr[] = "`activities` like '%"{$activitieCl}"%'";
}
if(!empty($activitieArr)){
$bd_usl .= " AND (".implode(" OR ",$activitieArr).")";
}
}
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).")";
}
}
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).")";
}
}
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);
}
}
$bd_usl_managers = " AND (".implode(" OR ",$arrIdUser).")";
$onDate = null;
$offDate = null;
if(isset($_POST['onDate'])){
$onDate = $_POST['onDate'];
}
if(isset($_POST['offDate'])){
$offDate = $_POST['offDate'];
}
$dates = getPeriod($period, $onDate, $offDate);
$date_between = $dates['between'];
//$whereTasks = $dates['whereTasks'];
$table = 'clients';
$date_add = 'date_add';
$script = 'clients.php';
if(isset($_POST['client_req']) && $_POST['client_req'] == 1){
$table = 'requisitions';
$date_add = 'created_at';
$script = 'requisitions.php';
}
$sql = "SELECT `source`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and $date_add $date_between group by `source`";
//echo $sql;
/* $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 and c.date_add $date_between order by c.date_add";*/
//echo $sql;
$q = mysql_query($sql);
while($r = mysql_fetch_assoc($q)){
$source_id = $sourceId;
$group_id = $groupId;
if($r['total'] > 0){
if(!empty($r['source'])){
$source_id = (int)$r['source'];
$sql_s = "SELECT id, source, group_id FROM advertising_sources WHERE id = $source_id";
$q_s = mysql_query($sql_s);
$r_s = mysql_fetch_assoc($q_s);
if(!empty($r_s['group_id'])){
$group_id = (int)$r_s['group_id'];
}
}
$res[$group_id]['calls_all'] += (int)$r['total'];
$res[$source_id]['calls_all'] += (int)$r['total'];
$res[$source_id]['sources'] = $source_id;
if($res[$source_id]['source'] == 'Источник не выбран'){
$res[$source_id]['sources'] = -1;
}
if($res[$group_id]['sources'] != 0){
$res[$group_id]['sources'] .= ",".$res[$source_id]['sources'];
} else {
$res[$group_id]['sources'] = $res[$source_id]['sources'];
}
}
}
$sql = "SELECT `source`, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and deleted=0 and $date_add $date_between group by `source`";
$q = mysql_query($sql);
while($r = mysql_fetch_assoc($q)){
$source_id = $sourceId;
$group_id = $groupId;
if($r['total'] > 0){
if(!empty($r['source'])){
$source_id = (int)$r['source'];
$sql_s = "SELECT id, source, group_id FROM advertising_sources WHERE id = $source_id";
$q_s = mysql_query($sql_s);
$r_s = mysql_fetch_assoc($q_s);
if(!empty($r_s['group_id'])){
$group_id = (int)$r_s['group_id'];
}
}
$res[$group_id]['work'] += (int)$r['total'];
$res[$source_id]['work'] += (int)$r['total'];
}
}
$sql = "SELECT `source`, denial, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and deleted=1 and confirm != 10 and $date_add $date_between group by `source`, denial";
$q = mysql_query($sql);
while($r = mysql_fetch_assoc($q)){
$source_id = $sourceId;
$group_id = $groupId;
if($r['total'] > 0){
if(!empty($r['source'])){
$source_id = (int)$r['source'];
$sql_s = "SELECT id, source, group_id FROM advertising_sources WHERE id = $source_id";
$q_s = mysql_query($sql_s);
$r_s = mysql_fetch_assoc($q_s);
if(!empty($r_s['group_id'])){
$group_id = (int)$r_s['group_id'];
}
}
foreach($denial_work as $denial){
if($denial == (int)$r['denial']){
$res[$group_id]['closest_'.$denial] += (int)$r['total'];
$res[$source_id]['closest_'.$denial] += (int)$r['total'];
}
}
$res[$group_id]['closest_all'] += (int)$r['total'];
$res[$source_id]['closest_all'] += (int)$r['total'];
}
}
$sql = "SELECT `source`, sum(summa) as summa, count(*) as total FROM $table WHERE 1 $bd_usl_managers $bd_usl and deleted=1 and confirm = 10 and $date_add $date_between group by `source`";
$q = mysql_query($sql);
while($r = mysql_fetch_assoc($q)){
$source_id = $sourceId;
$group_id = $groupId;
if($r['total'] > 0){
if(!empty($r['source'])){
$source_id = (int)$r['source'];
$sql_s = "SELECT id, source, group_id FROM advertising_sources WHERE id = $source_id";
$q_s = mysql_query($sql_s);
$r_s = mysql_fetch_assoc($q_s);
if(!empty($r_s['group_id'])){
$group_id = (int)$r_s['group_id'];
}
}
$res[$group_id]['summa'] += (int)$r['summa'];
$res[$source_id]['summa'] += (int)$r['summa'];
$res[$group_id]['sdelka'] += (int)$r['total'];
$res[$source_id]['sdelka'] += (int)$r['total'];
}
}
if($post['responsible']){
} else {
unset($_SESSION['filter_emp']);
}
$responsible = '';
if(!empty($usersArr)){
$responsible = implode(',', $usersArr);
}
$row = array();
foreach($res as $rw){
if($rw['calls_all'] > 0){
$isParent = (bool)$rw['pid'] == 0;
$sources = $rw['sources'];
$calls_all = $rw['calls_all'];
$rw['calls_all'] = "$calls_all";
$work = $rw['work'];
$rw['work'] = "$work";
$expenditure = $rw['expenditure'];
$rw['expenditure'] = "$expenditure";
$sdelka_summa = $rw['sdelka'].'/'.number_format($rw['summa'],0 , '.', ' ');
$rw['transaction'] = "$sdelka_summa";
$sdelka_calls_all = round($rw['sdelka']/$rw['calls_all']*100, 2);
$rw['conversion'] = "$sdelka_calls_all%";
$closestAll_callsAll = round($rw['closest_all']/$rw['calls_all']*100, 2);
$rw['conversion_closes'] = "$closestAll_callsAll%";
$rw['summa'] = number_format($rw['summa'],0 , '.', ' ');
foreach($denial_work as $denial){
$tempC = $rw['closest_'.$denial];
$rw['closest_'.$denial] = "$tempC";
}
$tempC = $rw['closest_all'];
$rw['closest_all'] = "$tempC";
$row[] = $rw;
}
}
$result = array(
'rows' => $row,
'total' => count($row),
'totalNotFiltered' => count($row)
);
foreach ($row as $key => $r) {
if (!isset($r['id'])) {
unset($row[$key]);
}
}
echo json_encode($row, JSON_UNESCAPED_UNICODE);