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"; $arrIdAgent[] = "id_agent = $userId"; } $period = 'all'; $whereTasks = ""; $bd_period = ''; $bd_do_period = ''; if(isset($_POST['period'])){ $period = $_POST['period']; } $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']; $monthsyears = $dates['monthsyears']; $array_menedgers = array(); $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); $res = array(); while($r_users = mysql_fetch_assoc($q_users)){ $users[$r_users['id']] = $r_users; } $plan = array(); $year = $dates['years'][0]; $sql_plan = "SELECT * FROM `sales_plan` where user_id in (". implode(', ', $usersId).") and year = '{$year}'"; if(!empty($monthsyears)){ $sql_plan = "SELECT * FROM `sales_plan` where user_id in (". implode(', ', $usersId).") AND CONCAT(month,'-', year) in ('". implode('\', \'', $monthsyears) ."')"; } //echo $sql_plan; $q_plan = mysql_query($sql_plan); while($r_plan = mysql_fetch_assoc($q_plan)){ $plan[$r_plan['user_id']][] = $r_plan; } //var_dump($plan); $plan_real = array(); $sql = "SELECT sum(summa) as summa, count(*) as total, who_work, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1), '%m') as m, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1), '%Y') as y FROM requisitions WHERE cancel=0 and confirm=10 AND who_work in (".implode(',', $usersId).") and deleted=1 AND ((SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1) $date_between)>0 group by who_work, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1), '%m'), DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE req_id=requisitions.id and event='delete' order by id desc limit 1), '%Y') UNION ALL SELECT sum(summa) as summa, count(*) as total, who_work, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1), '%m') as m, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1), '%Y') as y FROM clients WHERE cancel=0 and confirm=10 AND who_work in (".implode(',', $usersId).") and deleted=1 AND ((SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1) $date_between)>0 group by who_work, DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1), '%m'), DATE_FORMAT((SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' order by id desc limit 1), '%Y')"; //echo $sql; $q = mysql_query($sql); while($r = mysql_fetch_assoc($q)){ $plan_real[] = $r; } //var_dump($plan_real); $deposits = array(); $sql_d = "SELECT sum(deposit) as deposit, count(*) as total, user_id, DATE_FORMAT(created_at, '%m') as m, DATE_FORMAT(created_at, '%Y') as y FROM deposits_clients_req WHERE user_id in (".implode(',', $usersId).") AND created_at {$date_between} group by user_id, DATE_FORMAT(created_at, '%m'), DATE_FORMAT(created_at, '%Y')"; $q_d = mysql_query($sql_d); while($r_d = mysql_fetch_assoc($q_d)){ $deposits[$r_d['user_id']] = $r_d; } $pid=0; foreach($usersId as $key => $id){ $arrTemp = array(); //$usersArrM = array(); $mstr = $users[$id];//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']; //$arrTemp['usersIdm'] = $usersId; } 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'; // $usersArrM[] = 'all_'.$id; //$usersIdm = $cl -> getUsersFilter($usersArrM); //$arrTemp['usersIdm'] = $usersIdm; } else { $arrTemp['post'] = 'agent'; //$arrTemp['usersIdm'][] = $id; } } else if($mstr['manager']){ $master = "Менеджер " . trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']); $arrTemp['post'] = 'manager'; $usersArrM[] = 'all_'.$id; //$usersIdm = $cl -> getUsersFilter($usersArrM); //$arrTemp['usersIdm'] = $usersIdm; } else { $master = "Агент " . trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']); $arrTemp['post'] = 'agent'; //$arrTemp['usersIdm'][] = $id; } $arrTemp['id_manager'] = $mstr['id_manager']; $arrTemp['id'] = $id; $arrTemp['fio'] = $master; $arrTemp['summa_commission'] = 0; $arrTemp['deals_quantity'] = 0; $arrTemp['real_summa_commission'] = 0; $arrTemp['real_deals_quantity'] = 0; $arrTemp['pid'] = 0; if(in_array((int)$mstr['id_manager'], $usersId)){ $arrTemp['pid'] = (int)$mstr['id_manager']; } $arrTemp['real_pr'] = 0; $arrTemp['makings'] = 0; $arrTemp['makings_total'] = 0; foreach($dates['months'] as $month){ $arrTemp['summa_commission_'.$month] = 0; $arrTemp['deals_quantity_'.$month] = 0; $arrTemp['real_summa_commission_'.$month] = 0; $arrTemp['real_deals_quantity_'.$month] = 0; $arrTemp['real_pr_'.$month] = 0; $arrTemp['makings_'.$month] = 0; $arrTemp['makings_total_'.$month] = 0; } foreach ($plan as $user_id => $pl) { foreach($pl as $val){ //if(in_array($user_id, $arrTemp['usersIdm'])){ if($user_id == $id){ $arrTemp['summa_commission'] += (int)$val['summa']; $arrTemp['deals_quantity'] += (int)$val['quantity']; foreach($dates['months'] as $month){ if($month == (int)$val['month'] && $dates['years'][0] == $val['year']){ $arrTemp['summa_commission_'.$month] += (int)$val['summa']; $arrTemp['deals_quantity_'.$month] += (int)$val['quantity']; } } } } } foreach ($plan_real as $val) { // if(in_array($user_id, $arrTemp['usersIdm'])){ if($id == (int)$val['who_work']){ if($dates['years'][0] == $val['y']){ $arrTemp['real_summa_commission'] += $val['summa']; $arrTemp['real_deals_quantity'] += $val['total']; } foreach($dates['months'] as $month){ if($month == (int)$val['m'] && $dates['years'][0] == $val['y']){ $arrTemp['real_summa_commission_'.$month] += $val['summa']; $arrTemp['real_deals_quantity_'.$month] += $val['total']; } } } } foreach($deposits as $user_id => $val){ if($user_id == $id){ if($dates['years'][0] == $val['y']){ $arrTemp['makings'] += $val['deposit']; $arrTemp['makings_total'] += $val['total']; } foreach($dates['months'] as $month){ if($month == (int)$val['m'] && $dates['years'][0] == $val['y']){ $arrTemp['makings_'.$month] += $val['deposit']; $arrTemp['makings_total_'.$month] += $val['total']; } } } } if($arrTemp['real_summa_commission'] > 0 && $arrTemp['summa_commission'] == 0) { $arrTemp['real_pr'] = '100%'; } else if ($arrTemp['real_summa_commission'] > 0 && $arrTemp['summa_commission'] > 0) { $arrTemp['real_pr'] = (int)($arrTemp['real_summa_commission']/$arrTemp['summa_commission']*100) .'%'; } else { $arrTemp['real_pr'] = '0%'; } foreach($dates['months'] as $month){ if($arrTemp['real_summa_commission_'.$month] > 0 && $arrTemp['summa_commission_'.$month] == 0) { $arrTemp['real_pr_'.$month] = '100%'; } else if ($arrTemp['real_summa_commission_'.$month] > 0 && $arrTemp['summa_commission_'.$month] > 0) { $arrTemp['real_pr_'.$month] = (int)($arrTemp['real_summa_commission_'.$month]/$arrTemp['summa_commission_'.$month]*100) .'%'; } else { $arrTemp['real_pr_'.$month] = '0%'; } } $arrTemp['summa_commission'] = number_format($arrTemp['summa_commission'],0 , '.', ' '); //$arrTemp['deals_quantity'] = ''.$arrTemp['deals_quantity'].''; $arrTemp['real_summa_commission'] = number_format($arrTemp['real_summa_commission'],0 , '.', ' '); //$arrTemp['real_deals_quantity'] = ''.''.$arrTemp['deals_quantity'].''; $arrTemp['makings'] = number_format($arrTemp['makings'],0 , '.', ' '); // $arrTemp['makings_total'] = ''.$arrTemp['makings_total'].''; foreach($dates['months'] as $month){ $arrTemp['summa_commission_'.$month] = number_format($arrTemp['summa_commission_'.$month],0 , '.', ' '); //$arrTemp['deals_quantity_'.$month] = ''.$arrTemp['deals_quantity_'.$month].''; $arrTemp['real_summa_commission_'.$month] = number_format($arrTemp['real_summa_commission_'.$month],0 , '.', ' '); // $arrTemp['real_deals_quantity_'.$month] = ''.$arrTemp['real_deals_quantity_'.$month].''; $arrTemp['makings_'.$month] = number_format($arrTemp['makings_'.$month],0 , '.', ' '); //$arrTemp['makings_total_'.$month] = ''.$arrTemp['makings_total_'.$month].''; } $rows[$id] = $arrTemp; $res[] = $arrTemp; } $result = array( 'total' => count($usersId), 'rows' => $res, ); /*$time = microtime(true) - $start; file_put_contents(__DIR__.'/log.txt', 'Время выполнения скрипта: '.round($time, 4).' сек.');*/ echo json_encode($result);