Я так понимаю,это распределение прописывается в "Отчеты по продажам" в "Подготовка данных"?
Можете хоть примерно показать в каком месте мне необходимо менять, или вдруг кто-то уже сталкивался с такой проблемой?
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













