

Права на отчеты
#1
Отправлено 26 Июнь 2013 - 12:52
Установленна КБ Версия: 1.9.8 ревизия 9053 локальная.
Создал группу "Старшие менеджеры" настроил права, всё нормально, таблицы и формы отображаются и редактируются как надо.
Но вот отчеты по продажам, по событиям выводятся не как у администраторов по всем менеджерам, а только отчет по текущему пользователю.
Отсюда вопрос, как группе "Старшие менеджеры" предоставить доступ у отчетам по всем менеджерам (как у администраторов)?
Спасибо!
#2
Отправлено 26 Июнь 2013 - 14:04
#3
Отправлено 26 Июнь 2013 - 14:26
#4
Отправлено 26 Июнь 2013 - 15:09
#5
Отправлено 26 Июнь 2013 - 15:11
if ($_REQUEST['date1']) $date1 = date("d.m.Y",strtotime(form_eng_time($_REQUEST['date1']))); else $date1 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-7,date("Y"))); if ($_REQUEST['date2']) $date2 = date("d.m.Y",strtotime(form_eng_time($_REQUEST['date2']))); else $date2 = date("d.m.Y"); $date1_fet = form_eng_time($date1.' 00:00:00'); $date2_fet = form_eng_time($date2.' 23:59:59'); if ($_REQUEST['_type'] || $_REQUEST['_manager'] || $_REQUEST['_dates']) { reset_filters(62); if ($_REQUEST['_dates']) set_filter(724, "period", $date1." 00:00:00", $date2." 23:59:59"); if ($_REQUEST['_manager']) set_filter(727, "=", intval($_REQUEST['_manager'])); if ($_REQUEST['_type']) set_filter(773, "=", form_input($_REQUEST['_type'])); header("Location: ".$config["site_root"]."/fields.php?table=62"); } if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']!=1) $manager = $user['id']; $result = sql_select_field(FIELDS_TABLE,"`type_value`","`id`='773'"); $row = sql_fetch_assoc($result); $types = explode("\r\n", $row['type_value']); $h_pos = array(); $data_date = array(); $list_id_manager = ''; $sums_total = 0; if (!$manager) { $data_total = array(); $data_total['Имя'] = 'Всего'; } if ($manager) $sqlCond = "`user`.`id`='".$manager."'"; else $sqlCond = "(`group`.`id`=1 or `group`.`id`=2 or `group`.`pid`=1 or `group`.`pid`=2) AND `user`.`group_id`=`group`.`id` AND `user`.`arc`=0"; $result = sql_query("SELECT `user`.`id`, `user`.`fio` FROM `".USERS_TABLE."` AS `user`, `".GROUPS_TABLE."` AS `group` WHERE $sqlCond"); while ($row = sql_fetch_assoc($result)) { $id_manager = $row['id']; $name_manager = $row['fio']; $list_id_manager .= $id_manager.','; $sums[$id_manager] = 0; $data_m[$id_manager]['Имя'] = $name_manager; for ($i = 0; $i < count($types); $i++) { $subresult = sql_select_field("`".DATA_TABLE."62`","COUNT(*) AS `cnt`","`status`='0' and `f724`>='",$date1_fet,"' AND `f724`<='",$date2_fet,"' AND `f727`='$id_manager' AND `f773`='",$types[$i],"' AND `status`='0'"); $subrow = sql_fetch_assoc($subresult); $data_m[$id_manager][$types[$i]] = $subrow['cnt']; if (!$manager) $data_total[$types[$i]] += $subrow['cnt']; $sums[$id_manager] += $subrow['cnt']; if (!$manager) $sums_total += $subrow['cnt']; if (!in_array($types[$i], $h_pos)) $h_pos[] = $types[$i]; } $data_m[$id_manager]['Всего'] = "$sums[$id_manager]"; if (!in_array('Всего', $h_pos)) $h_pos[] = 'Всего'; } if (!$manager) $data_total['Всего'] = "$sums_total"; if ($user['group_id']==1) $sel_manager = "<option value=''>Все</option>\r\n"; $result = sql_query("SELECT DISTINCT `user`.`id`, `user`.`fio` FROM `".USERS_TABLE."` AS `user`, `".GROUPS_TABLE."` AS `group` WHERE `user`.`arc`=0 AND `user`.`group_id`!='777'"); while ($row = sql_fetch_assoc($result)) $sel_manager.= "<option value='".$row['id']."'".(($row['id']==$manager)?" selected":"").">".$row['fio']."</option>\r\n"; $result = sql_select_field("`".SCHEMES_TABLE."`","`color3`","`active`='1'"); $row = sql_fetch_assoc($result); // для графика $date1_fet=date('d.m',strtotime($date1_fet)).".".(date('Y',strtotime($date1_fet))-2); $list_id_manager = substr($list_id_manager,0,-1); $tCn=0; $y_min = 0; $y_max = 0; foreach($types as $val) { $full=0; $subresult = sql_select_field("`".DATA_TABLE."62`"," COUNT(*) AS `cnt`, DATE_FORMAT(`f724`,'%Y-%m-%d') AS `date_act`, `f773` AS `action`","`status`='0' and `f724`>='",$date1_fet,"' AND `f724`<='",$date2_fet,"' AND `f773` LIKE '",$val,"' AND `status`='0' GROUP BY `action`, `date_act` ORDER BY `date_act`"); while ($row = sql_fetch_assoc($subresult)) { $full+=$row['cnt']; $data_date [$row['action']] [$row['date_act']] = $full; } if(!$data_date [$row['action']])$tCn--; $tCn++; } if($tCn==0)$data_date [$types[0]][date('Y-m-d',strtotime($date1))] = 0; $types2 = $types; $d1 = substr(form_eng_time($date1),0,10); $d2 = substr(form_eng_time(date('d.m.Y',strtotime($date2)+24*60*60)),0,10); $date_cur = $d1; $data_for_gr = array(); // заполняем данными и удаляем промежуточные нули //$y_max = 0; foreach($types2 as $val) { $data_for_gr[$val] = array(); if ($data_date[$val]) { foreach($data_date[$val] as $k=>$v) { //$data_for_gr[$val][date('Y-m-d',strtotime($k)-24*60*60)] = 0; //$data_for_gr[$val][date('Y-m-d',strtotime($k)+24*60*60)] = 0; } foreach($data_date[$val] as $k=>$v) { $data_for_gr[$val][$k] = $v; if ($y_max < $v) $y_max = $v; } ksort($data_for_gr[$val]); } } //$y_max++; if($y_max>0)$y_max=$y_max+($y_max*0.1); elseif($y_min>0)$y_max=$y_max+($y_min*0.1); else $y_max=$y_max-($y_min*0.1); if($y_max < 4) $y_max = 4; // заполняем серии $is_graph = false; $graph_data = array(); foreach($types2 as $val) { if ($data_for_gr[$val]) { $is_graph = true or $is_graph; } $graph_data[] = $data_for_gr[$val]; } $d1 = substr(form_eng_time($date1),0,10); $d2 = substr(form_eng_time($date2),0,10); $graph_settings = array('type_graph' => 'LineDate' ,'div_id' => 'chart1' ,'series_names' => "'".implode("','",$types2)."'" ,'x_max' => $d2 ,'x_min' => $d1 ,'y_max' => $y_max ,'zoom' => true ); $graph = draw_graph($graph_data, $graph_settings); $is_graph=false; if ($_REQUEST['xsl'] == 1) { $xsl = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>\r\n"; $xsl .= "<table>\r\n"; $xsl .= "<tr><td><h1>Холодные звонки</h1></td></tr>\r\n"; $xsl .= "<tr><td><h3>Период с: $date1 по $date2</h3></td></tr>\r\n"; $xsl .= "</table>"; $xsl .= "<table>\r\n<tr><td width=\"100\"> </td>\r\n"; foreach ($h_pos AS $s_pos) $xsl .= "<td width=\"100\" style=\"text-align: center\" align=\"center\"><b>$s_pos</b></td>\r\n"; $xsl .= "</tr>\r\n"; $pos = 1; foreach ($data_m AS $m_id => $m_data) { $xsl .= "<tr>"; foreach ($m_data AS $value) { if ($pos % 2) $xsl .= "<td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">$value</td>\r\n"; else $xsl .= "<td style=\"text-align: center\" align=\"center\">$value</td>\r\n"; } $xsl .= "</tr>\r\n"; $pos += 1; } $xsl .= "</table></body></html>"; $name = 'perfomance_report.xls'; header("Content-type: application/vnd.ms-excel; charset=utf-8"); header("Content-Disposition: attachment; filename=".$name); echo $xsl; exit; } else { if ($user['group_id'] == 1) $smarty->assign("adm_rules", 1); $smarty->assign("color3", $row['color3']); $smarty->assign("date1", $date1); $smarty->assign("date2", $date2); $smarty->assign("data", $data_m); if (!$manager) $smarty->assign("data_total", $data_total); $smarty->assign("graph", $graph); $smarty->assign("is_graph", $is_graph); $smarty->assign("h_pos", $h_pos); $smarty->assign("manager", $manager); $smarty->assign("sel_manager", $sel_manager); $smarty->assign("user_group", $user['group_id']); }
#6
Отправлено 26 Июнь 2013 - 15:15
if ($user['group_id'] == 1) $smarty->assign("adm_rules", 1);
#7
Отправлено 26 Июнь 2013 - 15:48
if ($_REQUEST['date1']) $date1 = date("d.m.Y",strtotime(form_eng_time($_REQUEST['date1']))); else $date1 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-7,date("Y"))); if ($_REQUEST['date2']) $date2 = date("d.m.Y",strtotime(form_eng_time($_REQUEST['date2']))); else $date2 = date("d.m.Y"); $date1_fet = form_eng_time($date1.' 00:00:00'); $date2_fet = form_eng_time($date2.' 23:59:59'); if ($_REQUEST['_type'] || $_REQUEST['_manager'] || $_REQUEST['_dates']) { reset_filters(62); if ($_REQUEST['_dates']) set_filter(724, "period", $date1." 00:00:00", $date2." 23:59:59"); if ($_REQUEST['_manager']) set_filter(727, "=", intval($_REQUEST['_manager'])); if ($_REQUEST['_type']) set_filter(773, "=", form_input($_REQUEST['_type'])); header("Location: ".$config["site_root"]."/fields.php?table=62"); } if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']==2) $manager = $user['id']; $result = sql_select_field(FIELDS_TABLE,"`type_value`","`id`='773'"); $row = sql_fetch_assoc($result); $types = explode("\r\n", $row['type_value']); $h_pos = array(); $data_date = array(); $list_id_manager = ''; $sums_total = 0; if (!$manager) { $data_total = array(); $data_total['Имя'] = 'Всего'; } if ($manager) $sqlCond = "`user`.`id`='".$manager."'"; else $sqlCond = "`user`.`group_id`=`group`.`id` AND `user`.`arc`=0"; $result = sql_query("SELECT `user`.`id`, `user`.`fio` FROM `".USERS_TABLE."` AS `user`, `".GROUPS_TABLE."` AS `group` WHERE $sqlCond"); while ($row = sql_fetch_assoc($result)) { $id_manager = $row['id']; $name_manager = $row['fio']; $list_id_manager .= $id_manager.','; $sums[$id_manager] = 0; $data_m[$id_manager]['Имя'] = $name_manager; for ($i = 0; $i < count($types); $i++) { $subresult = sql_select_field("`".DATA_TABLE."62`","COUNT(*) AS `cnt`","`status`='0' and `f724`>='",$date1_fet,"' AND `f724`<='",$date2_fet,"' AND `f727`='$id_manager' AND `f773`='",$types[$i],"' AND `status`='0'"); $subrow = sql_fetch_assoc($subresult); $data_m[$id_manager][$types[$i]] = $subrow['cnt']; if (!$manager) $data_total[$types[$i]] += $subrow['cnt']; $sums[$id_manager] += $subrow['cnt']; if (!$manager) $sums_total += $subrow['cnt']; if (!in_array($types[$i], $h_pos)) $h_pos[] = $types[$i]; } $data_m[$id_manager]['Всего'] = "$sums[$id_manager]"; if (!in_array('Всего', $h_pos)) $h_pos[] = 'Всего'; } if (!$manager) $data_total['Всего'] = "$sums_total"; if ($user['group_id']==1) $sel_manager = "<option value=''>Все</option>\r\n"; $result = sql_query("SELECT DISTINCT `user`.`id`, `user`.`fio` FROM `".USERS_TABLE."` AS `user`, `".GROUPS_TABLE."` AS `group` WHERE `user`.`arc`=0 AND `user`.`group_id`!='777'"); while ($row = sql_fetch_assoc($result)) $sel_manager.= "<option value='".$row['id']."'".(($row['id']==$manager)?" selected":"").">".$row['fio']."</option>\r\n"; $result = sql_select_field("`".SCHEMES_TABLE."`","`color3`","`active`='1'"); $row = sql_fetch_assoc($result); // для графика $date1_fet=date('d.m',strtotime($date1_fet)).".".(date('Y',strtotime($date1_fet))-2); $list_id_manager = substr($list_id_manager,0,-1); $tCn=0; $y_min = 0; $y_max = 0; foreach($types as $val) { $full=0; $subresult = sql_select_field("`".DATA_TABLE."62`"," COUNT(*) AS `cnt`, DATE_FORMAT(`f724`,'%Y-%m-%d') AS `date_act`, `f773` AS `action`","`status`='0' and `f724`>='",$date1_fet,"' AND `f724`<='",$date2_fet,"' AND `f773` LIKE '",$val,"' AND `status`='0' GROUP BY `action`, `date_act` ORDER BY `date_act`"); while ($row = sql_fetch_assoc($subresult)) { $full+=$row['cnt']; $data_date [$row['action']] [$row['date_act']] = $full; } if(!$data_date [$row['action']])$tCn--; $tCn++; } if($tCn==0)$data_date [$types[0]][date('Y-m-d',strtotime($date1))] = 0; $types2 = $types; $d1 = substr(form_eng_time($date1),0,10); $d2 = substr(form_eng_time(date('d.m.Y',strtotime($date2)+24*60*60)),0,10); $date_cur = $d1; $data_for_gr = array(); // заполняем данными и удаляем промежуточные нули //$y_max = 0; foreach($types2 as $val) { $data_for_gr[$val] = array(); if ($data_date[$val]) { foreach($data_date[$val] as $k=>$v) { //$data_for_gr[$val][date('Y-m-d',strtotime($k)-24*60*60)] = 0; //$data_for_gr[$val][date('Y-m-d',strtotime($k)+24*60*60)] = 0; } foreach($data_date[$val] as $k=>$v) { $data_for_gr[$val][$k] = $v; if ($y_max < $v) $y_max = $v; } ksort($data_for_gr[$val]); } } //$y_max++; if($y_max>0)$y_max=$y_max+($y_max*0.1); elseif($y_min>0)$y_max=$y_max+($y_min*0.1); else $y_max=$y_max-($y_min*0.1); if($y_max < 4) $y_max = 4; // заполняем серии $is_graph = false; $graph_data = array(); foreach($types2 as $val) { if ($data_for_gr[$val]) { $is_graph = true or $is_graph; } $graph_data[] = $data_for_gr[$val]; } $d1 = substr(form_eng_time($date1),0,10); $d2 = substr(form_eng_time($date2),0,10); $graph_settings = array('type_graph' => 'LineDate' ,'div_id' => 'chart1' ,'series_names' => "'".implode("','",$types2)."'" ,'x_max' => $d2 ,'x_min' => $d1 ,'y_max' => $y_max ,'zoom' => true ); $graph = draw_graph($graph_data, $graph_settings); $is_graph=false; if ($_REQUEST['xsl'] == 1) { $xsl = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>\r\n"; $xsl .= "<table>\r\n"; $xsl .= "<tr><td><h1>Холодные звонки</h1></td></tr>\r\n"; $xsl .= "<tr><td><h3>Период с: $date1 по $date2</h3></td></tr>\r\n"; $xsl .= "</table>"; $xsl .= "<table>\r\n<tr><td width=\"100\"> </td>\r\n"; foreach ($h_pos AS $s_pos) $xsl .= "<td width=\"100\" style=\"text-align: center\" align=\"center\"><b>$s_pos</b></td>\r\n"; $xsl .= "</tr>\r\n"; $pos = 1; foreach ($data_m AS $m_id => $m_data) { $xsl .= "<tr>"; foreach ($m_data AS $value) { if ($pos % 2) $xsl .= "<td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">$value</td>\r\n"; else $xsl .= "<td style=\"text-align: center\" align=\"center\">$value</td>\r\n"; } $xsl .= "</tr>\r\n"; $pos += 1; } $xsl .= "</table></body></html>"; $name = 'perfomance_report.xls'; header("Content-type: application/vnd.ms-excel; charset=utf-8"); header("Content-Disposition: attachment; filename=".$name); echo $xsl; exit; } else { if ($user['group_id'] == 1) $smarty->assign("adm_rules", 1); $smarty->assign("color3", $row['color3']); $smarty->assign("date1", $date1); $smarty->assign("date2", $date2); $smarty->assign("data", $data_m); if (!$manager) $smarty->assign("data_total", $data_total); $smarty->assign("graph", $graph); $smarty->assign("is_graph", $is_graph); $smarty->assign("h_pos", $h_pos); $smarty->assign("manager", $manager); $smarty->assign("sel_manager", $sel_manager); $smarty->assign("user_group", $user['group_id']); }
#9
Отправлено 26 Июнь 2013 - 15:54
#10
Отправлено 26 Июнь 2013 - 15:58
#11
Отправлено 26 Июнь 2013 - 15:59
if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']!=1) $manager = $user['id']; // ---> if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']==2) $manager = $user['id'];
else $sqlCond = "(`group`.`id`=1 or `group`.`id`=2 or `group`.`pid`=1 or `group`.`pid`=2) AND `user`.`group_id`=`group`.`id` AND `user`.`arc`=0"; // ---> else $sqlCond = "`user`.`group_id`=`group`.`id` AND `user`.`arc`=0";
#12
Отправлено 26 Июнь 2013 - 16:06
Если не сложно подправьте ещё отчет по задачам, по такой же аналогии.
Огромнейшее Вас спасибо!
#13
Отправлено 26 Июнь 2013 - 16:14
#14
Отправлено 26 Июнь 2013 - 16:17
#15
Отправлено 26 Июнь 2013 - 16:18
#16
Отправлено 18 Июль 2013 - 08:41
else $date1 = date("d.m.Y", mktime(0,0,0,date("m"),date("d")-7,date("Y")));
if ($_REQUEST['date2']) $date2 = date("d.m.Y",strtotime(form_eng_time($_REQUEST['date2'])));
else $date2 = date("d.m.Y");
$date1_fet = form_eng_time($date1.' 00:00:00');
$date2_fet = form_eng_time($date2.' 23:59:59');
if ($_REQUEST['manager']) $manager = form_input($_REQUEST['manager']); elseif ($user['group_id']!=1) $manager = $user['id'];
if ($_REQUEST['_type']||$_REQUEST['_manager']||$_REQUEST['_dates'])
{
reset_filters(43);
if ($_REQUEST['_type'] || $_REQUEST['_manager']) $temp_add = ' and ';
else $temp_add = '';
if ($_REQUEST['_dates']=='1') set_filter(457, "period", $date1, $date2, $temp_add);
elseif ($_REQUEST['_dates']=='2') set_filter(436, "period", $date1, $date2, $temp_add);
if ($_REQUEST['_manager']) $temp_add = ' and ';
else $temp_add = '';
if ($_REQUEST['_type']) set_filter(456, "=", form_input($_REQUEST['_type']), '', $temp_add);
if ($_REQUEST['_manager']) set_filter(448, "=", form_input($_REQUEST['_manager']), '', '');
header("Location: ".$config["site_root"]."/fields.php?table=43");
}
if ($manager){
$sqlCond = "`user`.`id`='".$manager."'";
$sqlGroups = "";
}else{
//$sqlCond = "(`group`.`id`=1 or `group`.`id`=2 or `group`.`pid`=1 or `group`.`pid`=2) AND `user`.`group_id`=`group`.`id` AND `user`.`arc`=0";
// $sqlGroups = ", `".GROUPS_TABLE."` AS `group`";
/*$sqlCond = "`user`.`arc`=0 AND `group_id`!='777'";*/
$sqlCond = "1=1";//"`group_id`!='777'";
$sqlGroups = "";
}
$sqlQuery = "SELECT `user`.`id`, `user`.`fio` FROM ".USERS_TABLE." AS `user`$sqlGroups WHERE $sqlCond";
$result = sql_query($sqlQuery);
while ($row = sql_fetch_assoc($result))
{
$data['fio'] = $row['fio'];
$data['fio_id'] = $row['id'];
$result2 = sql_select_field(DATA_TABLE."43","SUM(f2791) as sum","f448='",$data['fio_id'],"' AND f436>='",$date1_fet,"' AND f436<='",$date2_fet,"' AND status=0 ORDER BY f436");
$result2 = sql_select_field("`".DATA_TABLE."43`","SUM(f2791) AS `sum`","`f448`='",$data['fio_id'],"' AND `f436`>='",$date1_fet,"' AND `f436`<='",$date2_fet,"' AND `status`<>'2'");
$row2 = sql_fetch_assoc($result2);
$data['invoice'] = $row2['sum'];
$result2 = sql_select_field(DATA_TABLE."43","SUM(f2791) as sum","f456!='0.00' AND f448='",$data['fio_id'],"' AND f457>='",$date1_fet,"' AND f457<='",$date2_fet,"' AND status=0 ORDER BY f457");
$result2 = sql_select_field("`".DATA_TABLE."43`","SUM(f455) AS `sum`","`f448`='",$data['fio_id'],"' AND`f456`!='0.00' AND `f457`>='",$date1_fet,"' AND `f457`<='",$date2_fet,"' AND `status`<>'2'");
$row2 = sql_fetch_assoc($result2);
$data['paid'] = $row2['sum'];
if($data['fio_id']!=1) $result2 = sql_select_field(DATA_TABLE."46","f1550","f1400='",$data['fio_id'],"'");
else $result2 = sql_select_field(DATA_TABLE."46","f1550","id='",$data['fio_id'],"'");
$row2 = sql_fetch_assoc($result2);
$data['bonus_percent'] = ($row2['f1550'])?$row2['f1550']:0;
$result2 = sql_select_field(DATA_TABLE."43","sum(f455) as sum,f457 as dates","f456='0.00' AND f448='",$data['fio_id'],"' AND f457>='",$date1_fet,"' AND f457<='",$date2_fet,"' AND status=0 ORDER BY f457");
$row2 = sql_fetch_assoc($result2);
$data['bonus_sum'] = $row2['sum'];
$data['bonus'] = $data['bonus_sum'] * $data['bonus_percent'] * 0.01;
if($row2['dates']){
$data_date['Бонус'][date('Y-m-d',strtotime($row2['dates']))]=$data['bonus_sum'] * $data['bonus_percent'] * 0.01;
}
$sum_invoice+=$data['invoice'];
$sum_paid+=$data['paid'];
$sum_bonus+=$data['bonus'];
$data['invoice'] = form_local_number($data['invoice'],'/2');
$data['paid'] = form_local_number($data['paid'],'/2');
$data['bonus'] = form_local_number($data['bonus'], '/2');
$lines[] = $data;
}
if(is_array($data_date['Бонус']))ksort($data_date['Бонус']);
//foreach($data_date['Бонус'] as $k=>$v){
// $full;
// $data_date['Бонус'][$k]+=$v;
//}
$sum_invoice = form_local_number($sum_invoice,'/2');
$sum_paid = form_local_number($sum_paid,'/2');
$sum_bonus = form_local_number($sum_bonus,'/2');
$result = sql_select_field(SCHEMES_TABLE,"`color3`","`active`='1'");
$row = sql_fetch_assoc($result);
$sqlQuery = "SELECT `id` FROM ".USERS_TABLE." WHERE `group_id`!='777'";
$result = sql_query($sqlQuery);
while($row=sql_fetch_assoc($result)){
$userArray[]=$row['id'];
}
$userString=implode(',',$userArray);
if($userString) $userString="AND f448 in (".$userString.")";
// для графика
$y_min = 0;
$y_max = 0;
$data_date ['Выставлено'] = array();
$data_date ['Оплачено'] = array();
//$date1_fet=date('d.m',strtotime($date1_fet)).".".(date('Y',strtotime($date1_fet))-2);
$full=0;
$result = sql_select_field(DATA_TABLE."43","DATE_FORMAT(`f436`,'%Y-%m-%d') AS date_act,f2791","`f448`!='0' AND `f448`!='10' AND `f436`>='",$date1_fet,"' AND status<>2 AND f436<='",$date2_fet,"' $userString ORDER BY date_act");
while($d = sql_fetch_assoc($result))
{
//$full+=$d['f2791'];
$data_date ['Выставлено'] [$d['date_act']]+=$d['f2791'];
}
$full=0;
$result = sql_select_field(DATA_TABLE."43","DATE_FORMAT(`f457`,'%Y-%m-%d') AS date_act,f455,f2791","`f448`!='0' AND `f448`!='10' AND `f457`>='",$date1_fet,"' AND status=0 AND f457<='",$date2_fet,"' $userString ORDER BY date_act");
while($d = sql_fetch_assoc($result))
{
// $full += ($d['f455']!=0.00)?$d['f2791']:0;
$data_date ['Оплачено'] [$d['date_act']]+= ($d['f455']!=0.00)?$d['f455']:0;
if($data_date ['Оплачено'] [$d['date_act']]){
$result2 = sql_select_field(DATA_TABLE."46","SUM(f1550) as `sum`");
$row2 = sql_fetch_assoc($result2);
$bonus_percent = ($row2['sum'])?$row2['sum']:0;
}
}
$types = array('Бонус','Выставлено','Оплачено');
if(!$data_date ['Бонус'] && !$data_date ['Выставлено'] && !$data_date ['Оплачено']) $data_date ['Бонус'][date('Y-m-d',strtotime($date1))] = 0;
$start=date('d',strtotime($date1));
$days=floor((strtotime($date2)-strtotime($date1))/86400);
$mo=date('m',strtotime($date1));
$ye=date('Y',strtotime($date1));
for($i=$start;count($dateArray)<=$days;$i++,$start++){
$dateArray[]=$ye.'-'.$mo.'-'.$start;
if($i==30){$mo++;$start=1;}
if($mo==12&&$start==30) {$ye++;$mo=1;$start=1;}
}
if(is_array($dateArray))
foreach($dateArray as $k=>$v){
$dateArray2[]=date('Y-m-d',strtotime($v));
}
$dateArray=$dateArray2;
if($days<16) $ticks_x_interval = '1 days';
else $ticks_x_interval='';
if(is_array($data_date))
foreach($data_date as $k=>$v){
for($i=0;$i<count($dateArray);$i++){
if(!$data_date [$k] [$dateArray[$i]]){
$data_date [$k] [$dateArray[$i]]='0';
}
if(strtotime(date('Y-m-d'))==strtotime($dateArray[$i]))break;
}
}
$d1 = substr(form_eng_time($date1),0,10);
$d2 = substr(form_eng_time(date('d.m.Y',strtotime($date2)+24*60*60)),0,10);
$date_cur = $d1;
$data_for_gr = array();
//$y_max = 0;
foreach($types as $val) {
$data_for_gr[$val] = array();
if ($data_date[$val]) {
foreach($data_date[$val] as $k=>$v) {
//$data_for_gr[$val][date('Y-m-d',strtotime($k)-24*60*60)] = 0;
//$data_for_gr[$val][date('Y-m-d',strtotime($k)+24*60*60)] = 0;
}
foreach($data_date[$val] as $k=>$v) {
$data_for_gr[$val][$k] = $v;
if ($y_max < $v) $y_max = $v;
}
ksort($data_for_gr[$val]);
}
}
//$y_max++;
if($y_max>0)$y_max=$y_max+($y_max*0.1);
elseif($y_min>0)$y_max=$y_max+($y_min*0.1);
else $y_max=$y_max-($y_min*0.1);
if($y_max < 4) $y_max = 4;
// заполняем серии
$is_graph = false;
$graph_data = array();
foreach($types as $val) {
if ($data_for_gr[$val]) {
$is_graph = true or $is_graph;
}
$graph_data[] = $data_for_gr[$val];
}
$d1 = substr(form_eng_time($date1),0,10);
$d2 = substr(form_eng_time($date2),0,10);
$graph_settings = array('type_graph' => 'LineDate'
,'div_id' => 'chart1'
,'series_names' => "'".implode("','",$types)."'"
,'x_max' => $d2
,'x_min' => $d1
,'ticks_x_interval' => $ticks_x_interval
,'y_max' => $y_max
,'zoom' => true
,'y_min' => $y_min
);
$graph = draw_graph($graph_data, $graph_settings);
if ($_REQUEST['xsl'] == 1)
{
$xsl = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"></head><body>\r\n";
$xsl .= "<table cellspacing=\"0\" cellpadding=\"3\" border=\"1\">\r\n<tr><td colspan=\"5\"><h1>По продажам</h1></td></tr>\r\n";
$xsl .= "<tr><td width=\"150\" style=\"text-align: center\" align=\"center\"></td>\r\n";
$xsl .= "<td width=\"100\" style=\"text-align: center\" align=\"center\"><b>Бонус</b></td>\r\n";
$xsl .= "<td width=\"100\" style=\"text-align: center\" align=\"center\"><b>Выставлено счетов</b></td>\r\n";
$xsl .= "<td width=\"100\" style=\"text-align: center\" align=\"center\"><b>Оплачено счетов</b></td></tr>\r\n";
$pos = 1;
foreach ($lines AS $data)
{
if ($pos % 2)
{
$xsl .= "<tr><td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">".$data['fio']."</td>\r\n";
$xsl .= "<td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">".$data['bonus']."</td>\r\n";
$xsl .= "<td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">".$data['invoice']."</td>\r\n";
$xsl .= "<td style=\"background-color: #d0d0d0; text-align: center\" bgcolor=\"#d0d0d0\" align=\"center\">".$data['paid']."</td></tr>\r\n";
}
else
{
$xsl .= "<tr><td style=\"text-align: center\" align=\"center\">".$data['fio']."</td>\r\n";
$xsl .= "<td style=\"text-align: center\" align=\"center\">".$data['bonus']."</td>\r\n";
$xsl .= "<td style=\"text-align: center\" align=\"center\">".$data['invoice']."</td>\r\n";
$xsl .= "<td style=\"text-align: center\" align=\"center\">".$data['paid']."</td></tr>\r\n";
}
$pos += 1;
}
$xsl .= "</table></body></html>";
$name = 'income_by_companies.xls';
header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=".$name);
echo $xsl;
exit;
}
else
{
#if ($user['group_id'] == 1) $smarty->assign("adm_rules", 1);
$smarty->assign("color3", $row['color3']);
$smarty->assign("date1", $date1);
$smarty->assign("date2", $date2);
$smarty->assign("lines", $lines);
$smarty->assign("sum_bonus", $sum_bonus);
$smarty->assign("sum_invoice", $sum_invoice);
$smarty->assign("sum_paid", $sum_paid);
$smarty->assign("graph", $graph);
$smarty->assign("is_graph", $is_graph);
}
Подскажите, а мне что тут нужно поменять?
#17
Отправлено 18 Июль 2013 - 09:47
CbCoder (26 Июнь 2013 - 15:59) писал:
if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']!=1) $manager = $user['id']; // ---> if ($_REQUEST['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']==2) $manager = $user['id'];
else $sqlCond = "(`group`.`id`=1 or `group`.`id`=2 or `group`.`pid`=1 or `group`.`pid`=2) AND `user`.`group_id`=`group`.`id` AND `user`.`arc`=0"; // ---> else $sqlCond = "`user`.`group_id`=`group`.`id` AND `user`.`arc`=0";
#18
Отправлено 18 Июль 2013 - 09:50
#19
Отправлено 18 Июль 2013 - 11:55
Цитата
Цитата
#20
Отправлено 20 Сентябрь 2013 - 16:39
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных