Я так понимаю,это распределение прописывается в "Отчеты по продажам" в "Подготовка данных"?
Можете хоть примерно показать в каком месте мне необходимо менять, или вдруг кто-то уже сталкивался с такой проблемой?
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['manager']) $manager = intval($_REQUEST['manager']); elseif ($user['group_id']==2) $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'] && $_REQUEST['_type']!='0.00') 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{ //else else $sqlCond = "`user`.`group_id`=`group`.`id` AND `user`.`arc`=0"; // $sqlGroups = ", `".GROUPS_TABLE."` AS `group`"; /*$sqlCond = "`user`.`arc`=0 AND `group_id`!='777'";*/ $sqlCond = "`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"," 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 `f457`>='",$date1_fet,"' AND `f457`<='",$date2_fet,"' AND `status`=0"); $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"," 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); }
Сообщение отредактировал Dinara: 22 Июль 2013 - 12:24