";
$slot=$sel_date_from-$sel_date_to+1;
$db=$csta_db;
$time_column="csta_datetime";
//echo "trunk_no:$trunk_no
";
for($day=0;$day<$slot;$day++)
{
$table_name="ipalimSum";
$temp=date("d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day,date("Y")));
$table_name=$table_name."_".$temp;
$from_time=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day,date("Y")));
$to_time=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day+1,date("Y")));
//echo "sel_in_out:$sel_in_out
";
$select="select key_e1_tg,$detailTableFieldsSql,csta_datetime ";
$from="from $table_name ";
$trunk_where="and key_type=$service_type ";
$where="where $time_column >'$from_time' and $time_column <='$to_time' and key_e1_tg=$trunk_no ".$trunk_where;
$group="group by csta_datetime ";
$order="order by csta_datetime ";
$sql=$select.$from.$where.$group.$order;
//echo "$sql
";
$result=@mysqli_query($pubConn,$sql);
$rows=@mysqli_fetch_array($result);
if(!$rows)
continue;
do{
$datetime=substr($rows[csta_datetime],11,2)+0;
//echo "datetime=$datetime
";
if($datetime==23)
continue;
for($tt=0;$tt<23;$tt++)
{
$csta_trunk[$tt][$datetime+1+$day*24]+=$rows[$tt+1];
}
}while($rows=mysqli_fetch_array($result));
}
//get the 0-hour
for($day=0;$day<$slot;$day++)
{
$table_name="ipalimSum";
$temp=date("d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day-1,date("Y")));
$table_name=$table_name."_".$temp;
$from_time=date("Y-m-d H:i:s",mktime(23,0,0,date("m"),date("d")-$sel_date_from+$day-1,date("Y")));
$to_time=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day,date("Y")));
//echo "sel_in_out:$sel_in_out
";
$select="select key_e1_tg,$detailTableFieldsSql,csta_datetime ";
$from="from $table_name ";
$trunk_where="and key_type=$service_type ";
$where="where $time_column >'$from_time' and $time_column <='$to_time' and key_e1_tg=$trunk_no ".$trunk_where;
$group="group by csta_datetime ";
$order="order by csta_datetime ";
$sql=$select.$from.$where.$group.$order;
//echo "$sql
";
$result=@mysqli_query($pubConn,$sql);
$rows=@mysqli_fetch_array($result);
if(!$rows)
continue;
do{
$datetime=substr($rows[csta_datetime],11,2)+0;
for($tt=0;$tt<23;$tt++)
{
$csta_trunk[$tt][$day*24]+=$rows[$tt+1];
}
}while($rows=mysqli_fetch_array($result));
}
//========================================================================================|
//==========================Fake data for test============================================|
//========================================================================================|
if(0)
{
$slot=$sel_date_from-$sel_date_to+1;
for($i=0;$i<9;$i++)
{
for($j=0;$j<24*$slot;$j++)
{
if($i==0)
$csta_trunk[$i][$j]=rand(200,300);
else
$csta_trunk[$i][$j]=rand(10,100);
}
}
}
//========================================================================================|
//==========================Test the Data=================================================|
//========================================================================================|
if(0)
{
for($i=0;$i<9;$i++)
{
for($j=0;$j<24*$slot;$j++)
{
echo "type-$i-hour-$j:{$csta_trunk[$i][$j]}
";
}
}
}
//=======================================================================================|
//==========================Draw the table-1=============================================|
//=======================================================================================|
if($slot==1)
{
$title_date=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$temp=$trunk_no;
if($service_type==1)
$table_title="TG #".$temp." ".$element_title." (LU) statistic Date:".$title_date;
else if($service_type==2)
$table_title="TG #".$temp." ".$element_title." (Call MO) statistic Date:".$title_date;
else if($service_type==3)
$table_title="TG #".$temp." ".$element_title." (Call MT) statistic Date:".$title_date;
else if($service_type==4)
$table_title="TG #".$temp." ".$element_title." (SM MO) statistic Date:".$title_date;
else if($service_type==5)
$table_title="TG #".$temp." ".$element_title." (SM MT) statistic Date:".$title_date;
}
else
{
$title_date_from=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$title_date_to=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_to,date("Y")));
$temp=$trunk_no;
if($service_type==1)
$table_title="TG #".$temp." ".$element_title." (LU) statistic Date:".$title_date_from." to ".$title_date_to;
else if($service_type==2)
$table_title="TG #".$temp." ".$element_title." (Call MO) statistic Date:".$title_date_from." to ".$title_date_to;
else if($service_type==3)
$table_title="TG #".$temp." ".$element_title." (Call MT) statistic Date:".$title_date_from." to ".$title_date_to;
else if($service_type==4)
$table_title="TG #".$temp." ".$element_title." (SM MO) statistic Date:".$title_date_from." to ".$title_date_to;
else if($service_type==5)
$table_title="TG #".$temp." ".$element_title." (SM MT) statistic Date:".$title_date_from." to ".$title_date_to;
}
echo "$table_title";
echo "";
echo "";
$LU_TableTitleName=array("Time","Attempt","Success","Normal","No Resource","No Service","Invalid Service","Invalid Message","Signal Error","Duration","Average Duration");
$CC_TableTitleName=array("Time","Attempt","Success","Normal","Call Deny","Net Busy","Caller Clear","Sub Busy","No Answer","Signal Error","Duration","Average Duration");
$SM_TableTitleName=array("Time","Attempt","Success","Normal","Sub Error","No Service","Net Busy","Message Error","Signal Error","No Resource","Duration","Average Duration");
$LU_DataRelation=array(0,1,3,4,5,6,7,8,2);
$CC_DataRelation=array(0,1,9,10,11,12,13,14,15,2);
$SM_DataRelation=array(0,1,16,17,18,19,20,21,22,2);
//LU
if($service_type == 1)
{
for($i=0;$i{$LU_TableTitleName[$i]}";
}
}
//Call
else if($service_type == 2 || $service_type == 3)
{
for($i=0;$i{$CC_TableTitleName[$i]}";
}
}
else if($service_type == 4 || $service_type == 5)
{
for($i=0;$i{$SM_TableTitleName[$i]}";
}
}
echo "
";
for($i=0;$i<24*$slot;$i++)
{
echo "";
//=========time column==============
echo "| ";
$hour_label=$i%24;
if($hour_label<10)
$hour_label="0".$hour_label."H";
else
$hour_label=$hour_label."H";
$day_label=floor($i/24);
$day_label=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$day_label,date("Y")));
echo "$day_label $hour_label";
echo " | ";
//LU
if($service_type == 1)
{
for($di=0;$di";
echo "{$csta_trunk[0][$i]}";
echo "";
}
else
{
//Duration
if($LU_DataRelation[$di] == 2)
{
//======total call duration column=====
echo "";
echo "{$csta_trunk[2][$i]}(s)";
$hour=floor($csta_trunk[2][$i]/3600);
$minute=floor($csta_trunk[2][$i]%3600/60);
$second=$csta_trunk[2][$i]%60;
if($hour==0&&$minute==0&&$second==0)
echo " ";
else
echo " $hour:$minute:$second";
echo " | ";
//======average call duration column====
echo "";
if($csta_trunk[1][$i]!=0)
$ave=round($csta_trunk[2][$i]/$csta_trunk[1][$i]);
else
$ave=0;
echo "$ave";
echo " | ";
}
else
{
echo "";
echo "{$csta_trunk[$LU_DataRelation[$di]][$i]}";
if($csta_trunk[0][$i]==0)
$rate=0;
else
{
$rate=$csta_trunk[$LU_DataRelation[$di]][$i]/$csta_trunk[0][$i];
$rate=$rate*100;
if($rate!=0&&$rate!=100)
$rate=number_format($rate, 2, '.', '');
}
echo " $rate%";
echo " | ";
}
}
}
}
//Call
else if($service_type == 2 || $service_type == 3)
{
for($di=0;$di";
echo "{$csta_trunk[0][$i]}";
echo "";
}
else
{
//Duration
if($CC_DataRelation[$di] == 2)
{
//======total call duration column=====
echo "";
echo "{$csta_trunk[2][$i]}(s)";
$hour=floor($csta_trunk[2][$i]/3600);
$minute=floor($csta_trunk[2][$i]%3600/60);
$second=$csta_trunk[2][$i]%60;
if($hour==0&&$minute==0&&$second==0)
echo " ";
else
echo " $hour:$minute:$second";
echo " | ";
//======average call duration column====
echo "";
if($csta_trunk[1][$i]!=0)
$ave=round($csta_trunk[2][$i]/$csta_trunk[1][$i]);
else
$ave=0;
echo "$ave";
echo " | ";
}
else
{
echo "";
echo "{$csta_trunk[$CC_DataRelation[$di]][$i]}";
if($csta_trunk[0][$i]==0)
$rate=0;
else
{
$rate=$csta_trunk[$CC_DataRelation[$di]][$i]/$csta_trunk[0][$i];
$rate=$rate*100;
if($rate!=0&&$rate!=100)
$rate=number_format($rate, 2, '.', '');
}
echo " $rate%";
echo " | ";
}
}
}
}
//SM
else if($service_type == 4 || $service_type == 5)
{
for($di=0;$di";
echo "{$csta_trunk[0][$i]}";
echo "";
}
else
{
//Duration
if($SM_DataRelation[$di] == 2)
{
//======total call duration column=====
echo "";
echo "{$csta_trunk[2][$i]}(s)";
$hour=floor($csta_trunk[2][$i]/3600);
$minute=floor($csta_trunk[2][$i]%3600/60);
$second=$csta_trunk[2][$i]%60;
if($hour==0&&$minute==0&&$second==0)
echo " ";
else
echo " $hour:$minute:$second";
echo " | ";
//======average call duration column====
echo "";
if($csta_trunk[1][$i]!=0)
$ave=round($csta_trunk[2][$i]/$csta_trunk[1][$i]);
else
$ave=0;
echo "$ave";
echo " | ";
}
else
{
echo "";
echo "{$csta_trunk[$CC_DataRelation[$di]][$i]}";
if($csta_trunk[0][$i]==0)
$rate=0;
else
{
$rate=$csta_trunk[$SM_DataRelation[$di]][$i]/$csta_trunk[0][$i];
$rate=$rate*100;
if($rate!=0&&$rate!=100)
$rate=number_format($rate, 2, '.', '');
}
echo " $rate%";
echo " | ";
}
}
}
}
echo "
";
}
echo "
";
?>
";
echo "
";
if($service_type == 1)
{
//----------Normal
$index=0;
if($lu_normal_check == 1)
{
echo "| Normal | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Normal | ";
$draw_line_flag[$index]=0;
}
//----------No Resource
$index++;
if($lu_nores_check==1)
{
echo " No Resource | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " No Resource | ";
$draw_line_flag[$index]=0;
}
//----------No Service
$index++;
if($lu_noser_check==1)
{
echo " No Service | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " No Service | ";
$draw_line_flag[$index]=0;
}
//----------Invalid Service
$index++;
if($lu_invser_check==1)
{
echo " Invalid Service | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Invalid Service | ";
$draw_line_flag[$index]=0;
}
//----------Invalid Message
$index++;
if($lu_invmsg_check==1)
{
echo " Invalid Message | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Invalid Message | ";
$draw_line_flag[$index]=0;
}
//---------Signal Error
$index++;
if($lu_sigerr_check==1)
{
echo " Signal Error | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Signal Error | ";
$draw_line_flag[$index]=0;
}
}
else if($service_type == 2 || $service_type == 3)
{
//----------Normal
$index=0;
if($cc_normal_check == 1)
{
echo " Normal | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Normal | ";
$draw_line_flag[$index]=0;
}
//----------Call Deny
$index++;
if($cc_calldeny_check==1)
{
echo " Call Deny | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Call Deny | ";
$draw_line_flag[$index]=0;
}
//----------Net Busy
$index++;
if($cc_netbusy_check==1)
{
echo " Net Busy | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Net Busy | ";
$draw_line_flag[$index]=0;
}
//----------Caller Clear
$index++;
if($cc_callerclear_check==1)
{
echo " Caller Clear | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Caller Clear | ";
$draw_line_flag[$index]=0;
}
//----------Sub Busy
$index++;
if($cc_subbusy_check==1)
{
echo " Sub Busy | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Sub Busy | ";
$draw_line_flag[$index]=0;
}
//---------No Answer
$index++;
if($cc_noanswer_check==1)
{
echo " No Answer | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " No Answer | ";
$draw_line_flag[$index]=0;
}
//---------Signal Error
$index++;
if($cc_sigerr_check==1)
{
echo " Signal Error | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Signal Error | ";
$draw_line_flag[$index]=0;
}
}
else if($service_type == 4 || $service_type == 5)
{
//----------Normal
$index=0;
if($sm_normal_check == 1)
{
echo " Normal | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Normal | ";
$draw_line_flag[$index]=0;
}
//----------Sub Error
$index++;
if($sm_suberr_check==1)
{
echo " Sub Error | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Sub Error | ";
$draw_line_flag[$index]=0;
}
//----------No Service
$index++;
if($sm_noser_check==1)
{
echo " No Service | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " No Service | ";
$draw_line_flag[$index]=0;
}
//----------Net Busy
$index++;
if($sm_netbusy_check==1)
{
echo " Net Busy | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Net Busy | ";
$draw_line_flag[$index]=0;
}
//----------Message Error
$index++;
if($sm_msgerr_check==1)
{
echo " Message Error | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Message Error | ";
$draw_line_flag[$index]=0;
}
//---------Signal Error
$index++;
if($sm_sigerr_check==1)
{
echo " Signal Error | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " Signal Error | ";
$draw_line_flag[$index]=0;
}
//---------No Resource
$index++;
if($sm_nores_check==1)
{
echo " No Resource | ";
$draw_line_flag[$index]=1;
}
else
{
$lineOnTop=$index;
echo " No Resource | ";
$draw_line_flag[$index]=0;
}
}
echo "
";
echo "";
//========================================================================================|
//=========================Draw the Graphics-1============================================|
//========================================================================================|
$sizex=835;
$sizey=380;
$bgcolor=F8F8F8;
$fgcolor=000000;
$im = ImageCreate ($sizex, $sizey);
$background_color = ImageColorAllocate ($im,
hexdec(substr($bgcolor, 0, 2)),
hexdec(substr($bgcolor, 2, 2)),
hexdec(substr($bgcolor, 4, 2)));
$text_color = ImageColorAllocate ($im,
hexdec(substr($fgcolor, 0, 2)),
hexdec(substr($fgcolor, 2, 2)),
hexdec(substr($fgcolor, 4, 2)));
//====get the block legend color=======
$color[0]=ImageColorAllocate($im,0x66,0xff,0x33);
$color[1]=ImageColorAllocate($im,0x66,0xff,0xff);
$color[2]=ImageColorAllocate($im,0,0x66,0x66);
$color[3]=ImageColorAllocate($im,0x66,0,0xcc);
$color[4]=ImageColorAllocate($im,0x66,0x33,0);
$color[5]=ImageColorAllocate($im,0xcc,0,0x66);
$color[6]=ImageColorAllocate($im,0xff,0,0);
$black_color=ImageColorAllocate($im,0,0,0);
$white_color=ImageColorAllocate($im,255,255,255);
//====background=====
ImageFilledRectangle($im,0,0,$sizex,$sizey,ImageColorAllocate ($im, 198, 198, 198));
ImageFilledRectangle($im,2,2,$sizex,$sizey,ImageColorAllocate ($im, 130, 130, 130));
$pointArr=array(0,$sizey-1,3,$sizey-4,4,$sizey-1);
Imagefilledpolygon($im, $pointArr, 3, ImageColorAllocate ($im, 130, 130, 130));
$pointArr=array($sizex-1,0,$sizex-4,3,$sizex,4);
Imagefilledpolygon($im, $pointArr, 3, ImageColorAllocate ($im, 130, 130, 130));
ImageFilledRectangle($im,2,2,$sizex-3,$sizey-3,$background_color);
//====border=====
$xBgn=60;
$yBgn=25;
$xEnd=780;
$yEnd=275;
$unitXPix=30;
ImageLine($im, $xBgn, $yBgn, $xBgn, $yEnd, $text_color);
ImageLine($im, $xBgn, $yBgn, $xEnd, $yBgn, $text_color);
ImageLine($im, $xBgn, $yEnd, $xEnd, $yEnd, $text_color);
ImageLine($im, $xEnd, $yBgn, $xEnd, $yEnd, $text_color);
//=====draw the vertical line========
for($i=0;$i<$slot;$i++)
{
$datestr[$i]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+$i,date("Y")));
}
for($i=0;$i<24;$i++)
{
if($i<10)
$timearray[$i]="0".$i."h";
else
$timearray[$i]=$i."h";
}
if($slot==5)
{
if(3>1)
{
$tempd[0]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[1]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[2]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[3]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[4]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[5]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[6]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[7]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[8]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[9]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[10]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[11]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[12]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[13]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[14]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[15]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[16]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[17]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[18]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[19]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[20]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[21]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[22]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[23]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
}
for($i=0;$i<24;$i++){
ImageDashedLine($im, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
$xstr=$tempd[$i]." ".$timearray[($i*$slot)%24];
Imagestringup($im, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
else if($slot==7)
{
if(3>1)
{
$tempd[0]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[1]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[2]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[3]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[4]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[5]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[6]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[7]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[8]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[9]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[10]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[11]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[12]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[13]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[14]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[15]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[16]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[17]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[18]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[19]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[20]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[21]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
$tempd[22]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
$tempd[23]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
}
for($i=0;$i<24;$i++){
ImageDashedLine($im, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
$xstr=$tempd[$i]." ".$timearray[($i*$slot)%24];
Imagestringup($im, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
else
{
$tempi=0;
for($i=0;$i<24;$i++){
ImageDashedLine($im, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
if(($i*$slot)%24==0&&$i!=0)
$tempi++;
$xstr=$datestr[$tempi]." ".$timearray[($i*$slot)%24];
Imagestringup($im, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
//=====draw the horizonal line======
$style = array($black_color,$black_color,$black_color,$black_color,$black_color,$white_color,$white_color,$white_color,$white_color,$white_color);
imagesetstyle($im, $style);
for($i=0;$i<10;$i++){
if($i!=0)
imageline($im, $xBgn, $yBgn + $i*25, $xEnd, $yBgn + $i*25, IMG_COLOR_STYLED);
$tempstr=(10-$i)*10;
$tempstr=$tempstr."%";
Imagestring($im, 2, $xBgn - 50, $yBgn + $i*25 - 5, $tempstr, $text_color);
}
//=====draw the block legend======
//LU
if($service_type == 1)
{
imagefilledrectangle($im,90,350,100,360,$color[0]);
imagestring($im,2,105,350,"Normal",$text_color);
imagefilledrectangle($im,180,350,190,360,$color[1]);
imagestring($im,2,195,350,"No Resource",$text_color);
imagefilledrectangle($im,270,350,280,360,$color[2]);
imagestring($im,2,285,350,"No Service",$text_color);
imagefilledrectangle($im,360,350,370,360,$color[3]);
imagestring($im,2,375,350,"Invalid Service",$text_color);
imagefilledrectangle($im,470,350,480,360,$color[4]);
imagestring($im,2,485,350,"Invalid Message",$text_color);
imagefilledrectangle($im,580,350,590,360,$color[5]);
imagestring($im,2,595,350,"Signal Error",$text_color);
}
else if($service_type == 2 || $service_type == 3)
{
imagefilledrectangle($im,90,350,100,360,$color[0]);
imagestring($im,2,105,350,"Normal",$text_color);
imagefilledrectangle($im,180,350,190,360,$color[1]);
imagestring($im,2,195,350,"Call Deny",$text_color);
imagefilledrectangle($im,270,350,280,360,$color[2]);
imagestring($im,2,285,350,"Net Busy",$text_color);
imagefilledrectangle($im,360,350,370,360,$color[3]);
imagestring($im,2,375,350,"Caller Clear",$text_color);
imagefilledrectangle($im,450,350,460,360,$color[4]);
imagestring($im,2,465,350,"Sub Busy",$text_color);
imagefilledrectangle($im,540,350,550,360,$color[5]);
imagestring($im,2,555,350,"No Answer",$text_color);
imagefilledrectangle($im,630,350,640,360,$color[6]);
imagestring($im,2,645,350,"Signal Error",$text_color);
}
else if($service_type == 4 || $service_type == 5)
{
imagefilledrectangle($im,90,350,100,360,$color[0]);
imagestring($im,2,105,350,"Normal",$text_color);
imagefilledrectangle($im,180,350,190,360,$color[1]);
imagestring($im,2,195,350,"Sub Error",$text_color);
imagefilledrectangle($im,270,350,280,360,$color[2]);
imagestring($im,2,285,350,"No Service",$text_color);
imagefilledrectangle($im,360,350,370,360,$color[3]);
imagestring($im,2,375,350,"Net Busy",$text_color);
imagefilledrectangle($im,450,350,460,360,$color[4]);
imagestring($im,2,465,350,"Message Error",$text_color);
imagefilledrectangle($im,545,350,555,360,$color[5]);
imagestring($im,2,560,350,"Signal Error",$text_color);
imagefilledrectangle($im,635,350,645,360,$color[6]);
imagestring($im,2,650,350,"No Resource",$text_color);
}
//======get the data line scale========
$LU_DataRelation=array(0,1,3,4,5,6,7,8,2);
$CC_DataRelation=array(0,1,9,10,11,12,13,14,15,2);
$SM_DataRelation=array(0,1,16,17,18,19,20,21,22,2);
if($service_type == 1)
$DataReleation=array(3,4,5,6,7,8);
else if($service_type == 2 || $service_type == 3)
$DataReleation=array(9,10,11,12,13,14,15);
else if($service_type == 4 || $service_type == 5)
$DataReleation=array(16,17,18,19,20,21,22);
$csta_count=sizeof($DataReleation);
for($j=0;$j<$csta_count;$j++)
{
$m_j=$DataReleation[$j];
for($i=0;$i<24*$slot;$i++)
{
if($csta_trunk[0][$i]!=0)
$points_scale[$j][$i]['y']=floor(250*$csta_trunk[$m_j][$i]/$csta_trunk[0][$i]);
else
$points_scale[$j][$i]['y']=0;
$points_scale[$j][$i]['y']=25+250-$points_scale[$j][$i]['y'];
$points_scale[$j][$i]['x']=60+30*$i/$slot;
//echo "line-$j-point-$i-x:{$points_scale[$j][$i]['x']}
";
//echo "line-$j-point-$i-y:{$points_scale[$j][$i]['y']}
";
}
}
//====draw the data line=====
for($i=0;$i<$csta_count;$i++)
{
if($draw_line_flag[$i]!=0)
{
for($j=0;$j<24*$slot-1;$j++)
{
imageline($im,$points_scale[$i][$j]['x'],$points_scale[$i][$j]['y'],$points_scale[$i][$j+1]['x'],$points_scale[$i][$j+1]['y'],$color[$i]);
}
}
}
//====draw the on top line again====
//echo "lineTop=$lineTop
";
if($draw_line_flag[$lineTop]==1)
{
for($i=0;$i<24*$slot-1;$i++)
{
imageline($im,$points_scale[$lineTop][$i]['x'],$points_scale[$lineTop][$i]['y'],$points_scale[$lineTop][$i+1]['x'],$points_scale[$lineTop][$i+1]['y'],$color[$lineTop]);
imageline($im,$points_scale[$lineTop][$i]['x'],$points_scale[$lineTop][$i]['y']+1,$points_scale[$lineTop][$i+1]['x'],$points_scale[$lineTop][$i+1]['y']+1,$color[$lineTop]);
imageline($im,$points_scale[$lineTop][$i]['x'],$points_scale[$lineTop][$i]['y']+2,$points_scale[$lineTop][$i+1]['x'],$points_scale[$lineTop][$i+1]['y']+2,$color[$lineTop]);
}
}
//====show the Graphics====
//-----输出图形文件,请勿修改
//delete *.png
$handle=opendir('.');
while($file=readdir($handle)){
$retval="";
$pt=strrpos($file,".");
if($pt) $retval=substr($file,$pt+1,strlen($file)-$pt);
if($retval=='png') unlink($file);
}
$tt=time()-3500;
$filename="tg3_".$tt.".png";
if(!$DEBUG){
ImagePng ($im,"$filename");
ImageDestroy($im);
}
//-----显示图片
echo "
";
?>
on top
1)
{
$tempd[0]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[1]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[2]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[3]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[4]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[5]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[6]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[7]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[8]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[9]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[10]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[11]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[12]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[13]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[14]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[15]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[16]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[17]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[18]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[19]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[20]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[21]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[22]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[23]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
}
for($i=0;$i<24;$i++){
ImageDashedLine($image, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
$xstr=$tempd[$i]." ".$timearray[($i*$slot)%24];
Imagestringup($image, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
else if($slot==7)
{
if(3>1)
{
$tempd[0]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[1]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[2]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[3]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$tempd[4]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[5]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[6]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+1,date("Y")));
$tempd[7]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[8]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[9]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[10]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+2,date("Y")));
$tempd[11]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[12]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[13]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+3,date("Y")));
$tempd[14]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[15]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[16]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[17]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+4,date("Y")));
$tempd[18]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[19]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[20]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+5,date("Y")));
$tempd[21]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
$tempd[22]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
$tempd[23]=date("m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from+6,date("Y")));
}
for($i=0;$i<24;$i++){
ImageDashedLine($image, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
$xstr=$tempd[$i]." ".$timearray[($i*$slot)%24];
Imagestringup($image, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
else
{
$tempi=0;
for($i=0;$i<24;$i++){
ImageDashedLine($image, $xBgn + $i*30, $yBgn, $xBgn + $i*30, $yEnd, $text_color);
if(($i*$slot)%24==0&&$i!=0)
$tempi++;
$xstr=$datestr[$tempi]." ".$timearray[($i*$slot)%24];
Imagestringup($image, 2, $xBgn + $i*30 - 4, $yEnd+60, $xstr, $text_color);
}
}
//============================draw the block legend================================
imagefilledrectangle($image,90,350,100,360,$color[0]);
imagestring($image,2,105,350,"Total call duration",$text_color);
imagefilledrectangle($image,280,350,290,360,$color[1]);
imagestring($image,2,295,350,"Average call duration",$text_color);
imagestring($image,2,10,5,"Total call duration",$text_color);
imagestring($image,2,700,5,"Average call duration",$text_color);
//====get the biggest y scale of left====
for($i=0;$i<$slot*24;$i++)
{
if($maxYNum_left<$csta_trunk[2][$i])
$maxYNum_left=$csta_trunk[2][$i];
if($csta_trunk[1][$i]==0)
$average[$i]=0;
else
$average[$i]=round($csta_trunk[2][$i]/$csta_trunk[1][$i]);
if($maxYNum_right<$average[$i])
$maxYNum_right=$average[$i];
}
if($maxYNum_left==0)
$maxYNum_left=100;
if($maxYNum_right==0)
$maxYNum_right=10;
//=====get the data line scale=====
for($i=0;$i<$slot*24;$i++)
{
//get the total call duration scale
$total_call_duration_scale[$i]['x']=60+30*$i/$slot;
$total_call_duration_scale[$i]['y']=floor(250*$csta_trunk[2][$i]/$maxYNum_left);
$total_call_duration_scale[$i]['y']=25+250-$total_call_duration_scale[$i]['y'];
//get the average call duraiton scale
$average_call_duration_scale[$i]['x']=60+30*$i/$slot;
$average_call_duration_scale[$i]['y']=floor(250*$average[$i]/$maxYNum_right);
$average_call_duration_scale[$i]['y']=25+250-$average_call_duration_scale[$i]['y'];
//echo "hour-$i:{$total_call_duration_scale[$i]['y']}
";
}
for($j=0;$j<24*$slot-1;$j++)
{
//draw the total duration call data line
imageline($image,$total_call_duration_scale[$j]['x'],$total_call_duration_scale[$j]['y'],$total_call_duration_scale[$j+1]['x'],$total_call_duration_scale[$j+1]['y'],$color[0]);
//draw the average duration call data line
imageline($image,$average_call_duration_scale[$j]['x'],$average_call_duration_scale[$j]['y'],$average_call_duration_scale[$j+1]['x'],$average_call_duration_scale[$j+1]['y'],$color[1]);
}
//===================================draw the on top data line again====================
if(!isset($on_top_index_down))
$on_top_index_down=0;
for($j=0;$j<24*$slot-1;$j++)
{
if($on_top_index_down==0)
{
//====================draw the total duration call data line==========================
imageline($image,$total_call_duration_scale[$j]['x'],$total_call_duration_scale[$j]['y'],$total_call_duration_scale[$j+1]['x'],$total_call_duration_scale[$j+1]['y'],$color[0]);
}
else
{
//=========================draw the average duration call data line===========================
imageline($image,$average_call_duration_scale[$j]['x'],$average_call_duration_scale[$j]['y'],$average_call_duration_scale[$j+1]['x'],$average_call_duration_scale[$j+1]['y'],$color[1]);
}
}
//====draw the horizonal line=====
//the left y scale label
$unit=$maxYNum_left/10;
$style = array($black_color,$black_color,$black_color,$black_color,$black_color,$white_color,$white_color,$white_color,$white_color,$white_color);
imagesetstyle($image, $style);
for($i=0;$i<10;$i++){
if($i!=0)
imageline($image, $xBgn, $yBgn + $i*25, $xEnd, $yBgn + $i*25, IMG_COLOR_STYLED);
$over_minute=floor($unit/60);
$over_hour=floor($unit/3600);
//Y轴每格的度值小于一分钟
if($over_minute==0)
{
$displayMaxData=(10-$i)*$unit;
$displayMaxData=number_format($displayMaxData,0,"."," ");
$displayMaxData=$displayMaxData." s";
}
else
{
//Y轴每格的度值大于一分钟但小于一个小时
if($over_hour==0)
{
$displayMaxData=(10-$i)*$unit/60;
$displayMaxData=number_format($displayMaxData,1,"."," ");
$displayMaxData=$displayMaxData." min";
}
//Y轴每格的度值大于一个小时
else
{
$displayMaxData=(10-$i)*$unit/3600;
$displayMaxData=number_format($displayMaxData,2,"."," ");
$displayMaxData=$displayMaxData." h";
}
}
Imagestring($image, 2, $xBgn - 54, $yBgn + $i*25 - 5, "$displayMaxData", $text_color);
}
//the right y scale label
$unit=$maxYNum_right/10;
for($i=0;$i<10;$i++){
$over_minute=floor($unit/60);
$over_hour=floor($unit/3600);
//Y轴每格的度值小于一分钟
if($over_minute==0)
{
$displayMaxData=(10-$i)*$unit;
$displayMaxData=number_format($displayMaxData,0,"."," ");
$displayMaxData=$displayMaxData." s";
}
else
{
//Y轴每格的度值大于一分钟但小于一个小时
if($over_hour==0)
{
$displayMaxData=(10-$i)*$unit/60;
$displayMaxData=number_format($displayMaxData,1,"."," ");
$displayMaxData=$displayMaxData." m";
}
//Y轴每格的度值大于一个小时
else
{
$displayMaxData=(10-$i)*$unit/3600;
$displayMaxData=number_format($displayMaxData,2,"."," ");
$displayMaxData=$displayMaxData." h";
}
}
Imagestring($image, 2, $xBgn - 50+780, $yBgn + $i*25 - 5, "$displayMaxData", $text_color);
}
//=====draw the graphics=====
//-----输出图形文件,请勿修改
$tt=time()+2500;
$filename="tg4_".$tt.".png";
if(!$DEBUG){
ImagePng ($image,"$filename");
ImageDestroy($image);
}
echo "
";
adjust_content_tail("down");
?>