| Server IP : 182.53.201.61 / Your IP : 216.73.217.175 Web Server : Apache/2.2.15 (Fedora) System : Linux km10.dyndns.org 2.6.31.5-127.fc12.i686.PAE #1 SMP Sat Nov 7 21:25:57 EST 2009 i686 User : apache ( 48) PHP Version : 5.3.3 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/water/ |
Upload File : |
<?php
session_start();
include("wcconfig.php");
date_default_timezone_set('Asia/Bangkok');
mysql_select_db("water");
mysql_query("SET NAMES 'tis620';");
$nowyear = date('Y'); //ปีปัจจุบัน2022
$nowmon = date('m'); //เดือนปัจจุบัน 03
if ($nowmon >=10) {
$nowyear +=1;
$nowmon -=9;
} else $nowmon += 3;
//mysql_query("SET NAMES utf8"); /*****/
$_SESSION['mName'] = Array("ตุลาคม", "พฤศจิกายน", "ธันวาคม","มกราคม",
"กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม",
"สิงหาคม", "กันยายน");
if (!isset($_SESSION['pagecount'])) $_SESSION['pagecount']=0;
else $_SESSION['pagecount']=$_SESSION['pagecount']+1;
function std_deviation($my_arr)
{
$no_element = count($my_arr);
$var = 0.0;
$avg = array_sum($my_arr)/$no_element;
foreach($my_arr as $i)
{
$var += pow(($i - $avg), 2);
}
return (float)sqrt($var/$no_element);
}
function chMonth($find){
return $_SESSION['mName'][$find-1];
}
if (isset($_GET['id_no'])) $_SESSION['rIDNO'] = $_GET['id_no'];
else $_SESSION['rIDNO'] ='';
if (isset($_GET['RepName'])) $_SESSION['rName'] = $_GET['RepName'];
if (isset($_GET['MinYear'])) {
if ($_GET['MinMonth'] <= 3) $MinYear =($_GET['MinYear']-542); //พ.ศ.> ค.ศ.+1
else $MinYear = ($_GET['MinYear']-543); //พ.ศ.> ค.ศ.
if ($_GET['MaxMonth'] <= 3) $MaxYear =($_GET['MaxYear']-542); //พ.ศ.> ค.ศ.+1
else $MaxYear = ($_GET['MaxYear'] -543); //พ.ศ.> ค.ศ.
$subtitle = 'ตั้งแต่ เดือน'.chMonth($MinMonth).' '.$_GET['MinYear'].
' ถึง เดือน'.chMonth($MaxMonth).' '.$_GET['MaxYear'];
} else {
if (isset($_GET['rYear'])) $MinYear = ($_GET['rYear']-543);
else $MinYear =date('Y');
$MaxYear = $MinYear;
$MinMonth = '1';
$MaxMonth ='12';
$subtitle = 'ปีงบประมาณ '.$_GET['rYear'];
}
if ($MinMonth <=3) $cMinY = $MinYear+542;
else $cMinY = $MinYear+543;
if ($MaxMonth <=3) $cMaxY = $MaxYear+542;
else $cMaxY = $MaxYear+543;
$lGoal ="'n'";
$DList=''; //แสดงเดือน/ปี
$TList=''; // แสดงเป้าหมาย
$HList=''; //แสดงผลประเมิน
$AList=''; //แสดงจำนวนเป้าหมายเดือน
$EList=''; //แสดงจำนวนผลงานเดือน
$SList=''; //แสดงจำนวนสะสม
$SDList=''; //แสดงSD
$sdVal = array();
$nSd=0;
$sumM=0;
$sumB=0;
$eva ='';
$comp='';
$sql='select * from indicators where id_no='.$_SESSION['rIDNO'].' limit 1';
//$sql='select * from indicators where id_no='.$_SESSION['rIDNO'].' limit 1';
$result = mysql_query($sql);
$name1 ='';
$name2 ='';
$sd='N';
$st='N';
$sr='N';
$๐ = iconv('UTF-8','TIS-620',"๐");
while ($object = mysql_fetch_object($result)) {
$name1 =iconv('TIS-620','UTF-8',$object -> name1);
$name2 =iconv('TIS-620','UTF-8',$object -> name2);
$sd = $object -> sd;
$st = $object -> st;
$sr = $object -> sr;
}
if ($name1==='') $name1= 'จำนวนทั้งหมด';
if ($name2==='') $name2= 'ผลงานตัวชี้วัด';
if ($st =='Y') $lSumB=false; //ค่าเป้าหมายใช้ล่าสุด
else $lSumB=true; //รวมค่าเป้าหมาย
if ($sr =='Y') $lSumM=false; //ค่าผลงานใช้ล่าสุด
else $lSumM=true; //รวมผลงาน
for ($y = $MinYear; $y <= $MaxYear; $y++) { //--------------- ประมวลทีละปี
if ($y == $MinYear) $fMonth =$MinMonth; // หาค่า เดือนแรกของปีที่กำลังทำรายงาน
else $fMonth ='1';
if ($y == $MaxYear) $lMonth =$MaxMonth; // หาค่า เดือนสุดท้ายของปีที่กำลังทำรายงาน
else $lMonth ='12';
$sql="select * from goal where id_no=".$_SESSION['rIDNO']." and year = '".$y."' limit 1" ;
$result=mysql_query($sql);
$Rows = mysql_num_rows($result);
$nSd= 0;
if($Rows==0) {
// ไม่เคยมีบรรทัดปี นี้ ค่าแต่ละเดือน =0
for ($m = $fMonth; $m <= $lMonth; $m++) {
if ($m <=3) $cY = ($y+542);
else $cY = ($y+543);
if ( $DList==='') $DList = "'".chMonth($m).' '.$cY."'";
else $DList .= ",'".chMonth($m).' '.$cY."'";
if ( $TList==='') $TList = "'n'";
else $TList .= ",'n'";
if ( $HList==='') $HList = "'n'";
else $HList .= ",'n'";
if ( $AList==='') $AList = "'n'";
else $AList .= ",'n'";
if ( $EList==='') $EList = "'n'";
else $EList .= ",'n'";
if ( $SList==='') $SList = "'n'";
else $SList .= ",'n'";
if ( $SDList==='') $SDList = "[0,0]";
else $SDList .= ",[0,0]";
}
} else {
// มีบรรทัดปี หาค่าแต่ละเดือน
while ($object = mysql_fetch_array($result)) {
$eva = trim($object['eva']);
$comp = trim($object['compair']);
$nSum=0;
if (strpos($eva,'S')) { //กำหนดให้ ค่าเป้าหมายเป็น ค่ารวมผลงานทั้งหมด
$nSum = $object['m1'];
for ($m = 2; $m < $fMonth; $m++) {
$nSum += $object['m'.$m];
}
}
/*
กำหนดให้ แสดง SD
*/
if ($sd == 'Y'){
$nXbar = 0;
$nXcount = 0;
for ($m = 1; $m <= 12; $m++) {
if (!is_null($object['m'.$m])){
// ผลงานเดือน
if ($object['m'.$m]==='') $nM=0;
else $nM = $object['m'.$m];
//เป้าหมายเดือน
if ($object['m'.$m.'b']==='') $nB=0;
else $nB= $object['m'.$m.'b'];
if ($nM== 0) $tval= 0;
else {
switch (substr($eva,0,1)) {
case ':':
if ($nB == 0) $tval = 1;
else $tval = $nM/$nB;
break;
case '%':
if ($nB == 0) $tval =100;
else $tval = $nM*100/$nB;
break;
case 'T':
if ($nB == 0) $tval =1000;
else $tval = $nM*1000/$nB;
break;
case 'H':
if ($nB == 0) $tval =100000;
else $tval = $nM*100000/$nB;
break;
case '/': //ค่าเฉลี่ย
if ($nB == 0) $tval = $nM/1;
else $tval = $nM/$nB ;
break;
default :
$tval = $nM/1;
}
}
$nXbar = $nXbar+$tval;
$nXcount +=1;
array_push($sdVal,$tval);
}
}
//==
//$sdVal = array(7.69,0,10,0,11.11,0,11.11,0,9.09,0,0,7.69);
//$nXbar =56.69;
//$nXcount=12;
//==
if (!empty($sdVal)) {
$nXbar = $nXbar/ $nXcount;
$nSD = std_deviation($sdVal);
$nSDmax = $nXbar+(1.5*$nSD);
$nSDmin = $nXbar-(1.5*$nSD);
if ($nSDmin<=0) $nSDmin=0;
} else {
$nSDmax = 0;
$nSDmin=0;
}
}
//--จบการหา SD ของปี
// เตรียม ชุดข้อมูล เดือนและชื่อเดือน
for ($m = $fMonth; $m <= $lMonth; $m++) {
// 1. $DList ชุดข้อมูลแสดงรายชื่อ เดือน แสดงเป็น "มกราคม 2563"
if ($m <=3) $cY = ($y+542);
else $cY = ($y+543);
if ( $DList==='') $DList = "'".chMonth($m).' '.$cY."'";
else $DList .= ",'".chMonth($m).' '.$cY."'";
// 2. $TList แสดงเส้นเป้าหมายของแต่ละปี (เท่ากันตลอดปี)
if ($object['goal']==='') $nM=0;
else {
$nM = $object['goal'];
$lGoal = $nM;
}
if ( $TList==='') $TList = $nM;
else $TList .= ','.$nM;
/*---- แสดงค่าที่บันทึกรายเดือน
$HList แสดงค่าประเมินราย เดือน
$AList แสดงค่าเป้าหมายราย เดือน
$EList แสดงจำนวนผลงานรายเดือน
$SList แสดงจำนวนที่สะสมมาจากต้นปี
$SDList แสดงค่า SD เป็น Array min,max
*/
if (($nowyear == $y ) && ( $m > $nowmon)){ // ข้อมูลปีปัจจุบัน ที่ยังไม่มีข้อมูล ไม่วาดกร๊าฟ
if ($HList==='') $HList = "'n'";
else $HList .= ",'n'";
if ( $AList==='') $AList = "'n'";
else $AList .= ",'n'";
if ( $EList==='') $EList = "'n'";
else $EList .= ",'n'";
if ( $SList==='') {
if ($nSum==0) $SList = "'n'";
else $SList = $nSum;
} else {
if ($nSum==0) $SList .= ",'n'";
else $SList .= ",'n'";
}
if ($sd == 'Y'){
if ( $SDList=='') $SDList = '['.$nSDmin.','.$nSDmax.']';
else $SDList .= ',['.$nSDmin.','.$nSDmax.']';
}
} else {
if ($object['m'.$m]==='') $nM=0;
else $nM = $object['m'.$m];
if ($object['m'.$m.'b']==='') $nB=0;
else $nB= $object['m'.$m.'b'];
//เตรียมผลงาน ไว้ใส่ในช่องสรุป $sumM , $sumB
if ($lSumM) $sumM += $nM; //รวม
else $sumM = $nM; //ล่าสุด
if ($lSumB) $sumB = ($sumB+$nB);
else {
if ($nB > 0) $sumB = $nB; //เป้าหมายใช้ค่าล่าสุด ถ้ามีใช้ค่านี้
else if ($sumB > 0 )$nB = $sumB; //ถ้าเดือนนี้ไม่มีบันทึก เดือนนี้ใช้ค่าเดือนก่อนหน้าเพื่อประมวลผลงาน
}
if (strpos($eva,'S')) $nSum+=$nM; //กรณีเป้าหมายใช้ผลงานสะสม เช่นทั้งปีเป็น 100% แต่ละเดือนเป็นกี่ %
else $nSum = $nM;
// -- ประเมินผลงาน เดือน
if ($nSum== 0) $tot = '0';
else {
switch (substr($eva,0,1)) {
case ':':
if ($nB == 0) $tot = '1';
else $tot = ($nSum/$nB);
break;
case '%':
if ($nB == 0) $tot ='100.00';
else $tot = number_format($nSum*100/$nB,2,'.','');
break;
case 'T':
if ($nB == 0) $tot ='1000.00';
else $tot = number_format($nSum*1000/$nB,2,'.','');
break;
case 'H':
if ($nB == 0) $tot ='100000.00';
else $tot = number_format($nSum*100000/$nB,2,'.','');
break;
case '/': //ค่าเฉลี่ย
if ($nB == 0) $tot = $nM;
else $tot = $nSum /$nB ;
break;
default :
$tot = $nSum;
}
}
$tot = str_replace(",", "",$tot);
if ($HList==='') $HList = $tot;
else $HList .= ','.$tot;
if ( $AList==='') $AList = $nB;
else $AList .= ','.$nB;
if ( $EList==='') $EList = $nM;
else $EList .= ','.$nM;
// กำหนดให้แสดงค่าสะสม
if ( $SList==='') {
if ($nSum==0) $SList = "'n'";
else $SList = $nSum;
} else {
if ($nSum==0) $SList .= ",'n'";
else $SList .= ','.$nSum;
}
if ($sd == 'Y'){
if ( $SDList==='') $SDList = '['.$nSDmin.','.$nSDmax.']';
else $SDList .= ',['.$nSDmin.','.$nSDmax.']';
}
}
}
}
}
}
//เพิ่ม Column แสดงผลงานรวม
if ( $DList==='') $DList = "' รวม '";
else $DList .= ",' รวม '";
if ( $TList==='') $TList = $lGoal;
else $TList .= ','.$lGoal;
$nB = $sumB;
$nM = $sumM;
$cEva = substr($eva,0,1);
switch ($cEva) {
case ':':
if ($nM== 0) $tot = '0';
else {
if ($nB == 0) $tot = '1';
else $tot = $nM /$nB ;
}
$cEva = ' ต่อหน่วย';
$cEvalabel = 'ผลงานต่อหนึ่งหน่วยเป้าหมาย';
break;
case '%':
$cEva = ' '.iconv( 'TIS-620', 'UTF-8',$eva);
$cEvalabel = 'ผลงานต่อหนึ่งร้อยเป้าหมาย(%)';
if ($nM== 0) $tot = '0';
else {
if ($nB == 0) $tot = '100.00';
else $tot = number_format(($nM *100)/$nB,2,'.','');
}
break;
case 'T':
$cEva = ' ต่อพัน';
$cEvalabel = 'ผลงานต่อหนึ่งพันเป้าหมาย';
if ($nM == 0) $tot ='0';
else {
if ($nB == 0) $tot = '1000.00';
else $tot = number_format(($nM *1000)/$nB,2,'.','');
}
break;
case 'H':
$cEva = ' ต่อแสน';
$cEvalabel = 'ผลงานต่อหนึ่งแสนเป้าหมาย';
if ($nM == 0) $tot ='0';
else {
if ($nB == 0) $tot = '100000.00';
else $tot = number_format(($nM *100000)/$nB,2,'.','');
}
break;
case '/':
if ($nM== 0) $tot = '0';
else {
if ($nB == 0) $tot = $nM;
else $tot = $nM /$nB;
}
$cEva = ' โดยเฉลี่ย';
$cEvalabel = 'ค่าเฉลี่ยผลงาน';
break;
default :
$cEva = ' '.iconv( 'TIS-620', 'UTF-8',$eva);
$cEvalabel = $cEva;
$tot = $nM;
}
if ($HList==='') $HList = $tot;
else $HList .= ','.$tot;
if ($AList==='') $AList = $nB;
else $AList = $AList.','.$nB;
if (strpos($eva,'S')) {
if ($EList==='') $EList = "'n'";
else $EList .=",'n'";
if ($SList==='') $SList = $nM;
else $SList .=",".$nM;
} else {
if ($EList==='') $EList = $nM;
else $EList .=','.$nM;;
}
/*
//Test value
echo $DList.'<br>';
echo $TList.'<br>';
echo $HList.'<br>'; //ข้อมูล
echo $sumM.'<br>';
echo $sumB.'<br>';
echo $SList.'<br>';
*/
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ControlChart<?php echo '#'.$_SESSION['rIDNO'] ;?></title>
<style type="text/css">
</style>
</head>
<body>
<script src="../KPI monitor/Jcode/highcharts.js"></script>
<script src="../KPI monitor/Jcode/highcharts-more.js"></script>
<script src="../KPI monitor/Jcode/modules/exporting.js"></script>
<script src="../KPI monitor/Jcode/modules/export-data.js"></script>
<script src="../KPI monitor/Jcode/modules/accessibility.js"></script>
<div style="position: relative; padding: 10px;">
<div id="container" style="min-width: 310px; height: 520px; margin: 0 auto"></div>
<script type="text/javascript">
Highcharts.chart('container', {
chart: {zoomType: 'xy', marginBottom: 150},
title: {text: '<?php echo iconv( 'TIS-620', 'UTF-8', $_SESSION['rName']) ;?>'},
subtitle: {text: '<?php echo $subtitle; ?>'},
xAxis: [{categories: [<?php echo $DList;?>],crosshair: true}],
yAxis: [ //แสดงแกน Y
{ //ซ้าย
title: {text: 'แสดง<?php echo $cEvalabel;?>',style: {color: '#F03090',font: '14px "Tahoma", sans-serif'}},
labels: {format: '{value}',style: {color: '#F03090'}}},
{ //ขวา
title: {text: 'แสดงจำนวน',style: {color: '#0000DD',font: '14px "Tahoma", sans-serif'}},
labels: {format: '{value} ',style: {color: Highcharts.getOptions().colors[0]}},
opposite: true }
],
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function () {
var URL;
URL="ReportMonth.php?&id_no=<?php echo $_SESSION['rIDNO']; ?>";
URL+= "&info=";
URL+= this.category;
if (this.category.indexOf("รวม") != -1) alert('ไม่อนุญาติแสดงข้อมูลรายวันทั้งหมด');
else window.open(URL, '_blank');
}
}
}
}
},
tooltip: {shared: true },
legend: {layout: 'vertical',align: 'left',x: 60, verticalAlign: 'bottom',y: 20,floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'},
series: [
{name: '<?php echo $name2;?>',type: 'line',yAxis: 1,zIndex: 3,data: [<?php echo $EList;?>],tooltip: {valueSuffix: ''}},
<?php
if (substr($eva,1,1) =='S') { //ผลงานสะสม
echo "{name: '".$name2."สะสม',type: 'line',yAxis: 1,data: [".$SList."],tooltip: {valueSuffix: ''}},";
}
?>
{name: '<?php echo $name1;?>',type: 'line',yAxis: 1,zIndex: 3,color:'#0060fd',data: [<?php echo $AList;?>],tooltip: {valueSuffix: ''}},
{name: 'เป้าหมาย ',type: 'line',lineWidth: 1,yAxis: 0,zIndex: 1,color:'<?php if ($comp=='<') echo '#EE0000' ; else echo '#00EE00'; ?>',data: [<?php echo $TList; ?>],tooltip: {
valueSuffix: '<?php echo $cEva;?>' , valuePrefix: '<?php echo $comp.' ';?>' }},
{name: 'ประเมิน',type: 'line',yAxis: 0,color:'#FF3399',zIndex: 3,data: [<?php echo $HList;?>],tooltip: {valueSuffix: ' <?php echo $cEva;?>'}}
<?php
if ($sd == 'Y'){ ?>
,{name: 'sd',type: 'arearange',lineWidth: 0,yAxis: 0, linkedTo: ':previous',color:'#9d9ddd',fillOpacity: 0.3,zIndex: 0,data: [<?php echo $SDList; ?>],tooltip: {valueSuffix: ' <?php echo $cEva;?>'}}
<?php
}
?>
]
});
function getValue(vname)
{
var n = document.getElementById(vname).value
return n;
}
function changeFunc() {
var URL;
URL= "<?php echo $_SERVER['PHP_SELF'] ?>";
URL+= "?&MaxYear=";
URL+= getValue('MaxYear');
URL+= "&MaxMonth=";
URL+= getValue('MaxMonth');
URL+= "&MinYear=";
URL+= getValue('MinYear');
URL+= "&MinMonth=";
URL+= getValue('MinMonth');
URL+= "&id_no=<?php echo $_SESSION['rIDNO']; ?>";
window.location= URL;
}
</script>
<br>
<table width="88%" height="30" border="1" align="center" cellpadding="1" cellspacing="1" background="../KPI monitor/bak/image/bg.JPG">
<tr>
<td width="20%" align="center"><span class="style4"><button id="demo" onClick="changeFunc()">แสดงข้อมูล</button></span>
</td>
<td width="25%" align="center" ><p> เดือน
<select name="MinMonth" id="MinMonth" >
<?php
for ($m = 1; $m <= 12; $m++) {
$cEcho = '<option value="'.$m.'" ';
if ($m == $MinMonth) $cEcho .= 'selected';
$cEcho .= '> '.chMonth($m).'</option>';
echo $cEcho;
}
?>
</select></p>
</td>
<td width="15%" align="center"><p> ปี
<input type="text" name="MinYear" id="MinYear" align="center" maxlength="4" size="2" value="<? echo $cMinY;?>" >
</td>
<td width="25%" align="center"><p> ถึง
<select name="MaxMonth" id="MaxMonth" >
<?php
for ($m = 1; $m <= 12; $m++) {
$cEcho = '<option value="'.$m.'" ';
if ($m == $MaxMonth) $cEcho .= 'selected';
$cEcho .= '> '.chMonth($m).'</option>';
echo $cEcho;
}
?>
</select></p>
</td>
<td width="15%" align="center"><p> ปี
<input type="text" name="MaxYear" id="MaxYear" align="center" maxlength="4" size="2" value="<? echo $cMaxY;?>" >
</td>
</tr>
</table>
</body>
</html>