282 lines
11 KiB
PHP
Executable File
282 lines
11 KiB
PHP
Executable File
<?php
|
|
if(isset($_GET["jahrgang"])){
|
|
$jahrgang=$_GET["jahrgang"];
|
|
}else{
|
|
$jahrgang=$_COOKIE["jahrgang"];
|
|
}
|
|
require_once("config.inc.php");
|
|
require_once("func_rollenrechte.php");
|
|
|
|
|
|
|
|
// Rechteüberprüfung
|
|
#$db = dbconnect();
|
|
if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
|
|
if(!rore($user_admin,'j_einzel_gr','RE')){echo "Keine Rechte";exit;}
|
|
// Rechteüberprüfung ende
|
|
|
|
header('Content-Type: text/html; charset=ISO-8859-1');
|
|
echo"
|
|
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title> Prognose der Jahre </title>
|
|
<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
|
|
<script src='chart/Chart.bundle.js'></script>
|
|
<script src='chart/samples/utils.js'></script>
|
|
<script src='chart/hammer.js'></script>
|
|
<script src='chart/zoom/chartjs-plugin-zoom.js'></script>
|
|
<style>
|
|
canvas {
|
|
-moz-user-select: none;
|
|
-webkit-user-select: none;
|
|
-ms-user-select: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div style='width: 80%;'>
|
|
<canvas id='canvas'></canvas>
|
|
<progress id='animationProgress' max='1' value='0' style='width: 100%'></progress>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
<script>
|
|
|
|
var progress = document.getElementById('animationProgress');
|
|
var config = {
|
|
type: 'line',
|
|
data: {
|
|
labels: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
|
|
datasets: [{
|
|
label: 'Vergaberahmen Monatsende ',
|
|
fill: false,
|
|
borderColor: window.chartColors.red,
|
|
backgroundColor: window.chartColors.red,
|
|
data: [";
|
|
$query2 = "SELECT date_format(monat,'%Y-%m') jahr
|
|
,round(vergaberahmen_vj,2)*12 vergaberahmen_vj
|
|
,round(jahresrahmen,2) jahresrahmen
|
|
,round(besausgaben,2) besausgaben
|
|
,round(vergaberahmen,2) vergaberahmen
|
|
,round(verg_uebertragvj,2) verg_uebertragvj
|
|
,round(leistungsbez,2) leistungsbez
|
|
,round(vergaberahmen_nj,2) vergaberahmen_nj
|
|
,round(vergaberahmen-leistungsbez,2) monatsuebertrag
|
|
FROM `prog_tmp_synopse`
|
|
WHERE date_format(monat,'%Y') = '$jahrgang'
|
|
GROUP BY date_format(monat,'%Y-%m')
|
|
ORDER BY jahr
|
|
";
|
|
$result2 = $db->query( $query2)
|
|
or die ("Cannot execute query2");
|
|
|
|
while ($row2 = $result2->fetch_array()){
|
|
if(!isset($monatsuebertrag)){
|
|
# Jahresstartwert definieren
|
|
$monatsuebertrag = $row2['vergaberahmen_vj'];
|
|
}
|
|
$monatsuebertrag = $monatsuebertrag+$row2['monatsuebertrag'];
|
|
echo "'".$monatsuebertrag."',";
|
|
}
|
|
echo"]
|
|
}, {
|
|
label: 'Monatlicher Jahresrahmen ',
|
|
fill: false,
|
|
borderColor: window.chartColors.blue,
|
|
backgroundColor: window.chartColors.blue,
|
|
data: [";
|
|
$query2 = "SELECT date_format(monat,'%Y-%m') jahr
|
|
,round(vergaberahmen_vj,2)*12 vergaberahmen_vj
|
|
,round(jahresrahmen,2) jahresrahmen
|
|
,round(besausgaben,2) besausgaben
|
|
,round(vergaberahmen,2) vergaberahmen
|
|
,round(verg_uebertragvj,2) verg_uebertragvj
|
|
,round(leistungsbez,2) leistungsbez
|
|
,round(vergaberahmen_nj,2) vergaberahmen_nj
|
|
,round(vergaberahmen-leistungsbez,2) monatsuebertrag
|
|
FROM `prog_tmp_synopse`
|
|
WHERE date_format(monat,'%Y') = '$jahrgang'
|
|
GROUP BY date_format(monat,'%Y-%m')
|
|
ORDER BY jahr
|
|
";
|
|
$result2 = $db->query( $query2)
|
|
or die ("Cannot execute query2");
|
|
|
|
while ($row2 = $result2->fetch_array()){
|
|
echo "'".$row2['jahresrahmen']."',";
|
|
}
|
|
echo"
|
|
]
|
|
}
|
|
, {
|
|
label: 'Monatliche Leistungsbezüge ',
|
|
fill: false,
|
|
borderColor: window.chartColors.orange,
|
|
backgroundColor: window.chartColors.orange,
|
|
data: [";
|
|
$query2 = "SELECT date_format(monat,'%Y-%m') jahr
|
|
,round(vergaberahmen_vj,2)*12 vergaberahmen_vj
|
|
,round(jahresrahmen,2) jahresrahmen
|
|
,round(besausgaben,2) besausgaben
|
|
,round(vergaberahmen,2) vergaberahmen
|
|
,round(verg_uebertragvj,2) verg_uebertragvj
|
|
,round(leistungsbez,2) leistungsbez
|
|
,round(vergaberahmen_nj,2) vergaberahmen_nj
|
|
,round(vergaberahmen-leistungsbez,2) monatsuebertrag
|
|
FROM `prog_tmp_synopse`
|
|
WHERE date_format(monat,'%Y') = '$jahrgang'
|
|
GROUP BY date_format(monat,'%Y-%m')
|
|
ORDER BY jahr
|
|
";
|
|
$result2 = $db->query( $query2)
|
|
or die ("Cannot execute query2");
|
|
|
|
while ($row2 = $result2->fetch_array()){
|
|
echo "'".$row2['leistungsbez']."',";
|
|
}
|
|
echo"
|
|
]
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
},
|
|
options: {
|
|
title:{
|
|
display:true,
|
|
text: 'Prognose der Leistungsbezuege $jahrgang'
|
|
},
|
|
tooltips: {
|
|
callbacks: {
|
|
label: function(tooltipItems, data) {
|
|
value = tooltipItems.yLabel.toString();
|
|
value = value.replace(/\B(?=(\d{3})+(?!\d))/g, '|');
|
|
value = value.replace('.', ',');
|
|
value = value.replace('|', '.');
|
|
value = value.replace('|', '.');
|
|
value = value.split(',');
|
|
if (typeof value[1] !== 'undefined') { // Wenn Nachkommastelle vorhanden
|
|
value1 = value[1];
|
|
}else{
|
|
value1 = '00';
|
|
}
|
|
//if ?(then=?) :(else)
|
|
value1 = value1.length == 1 ? value1+'0' : value1;
|
|
value = value[0]+','+value1;
|
|
return data.datasets[tooltipItems.datasetIndex].label +': ' + value + ' €';
|
|
}
|
|
}
|
|
|
|
},
|
|
animation: {
|
|
duration: 1000,
|
|
onProgress: function(animation) {
|
|
progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;
|
|
},
|
|
onComplete: function(animation) {
|
|
window.setTimeout(function() {
|
|
progress.value = 0;
|
|
}, 1000);
|
|
}
|
|
},
|
|
scales: {
|
|
yAxes: [
|
|
{
|
|
ticks: {
|
|
callback: function(value, index, values) {
|
|
// Convert the number to a string and splite the string every 3 charaters from the end
|
|
value = value.toString();
|
|
value = value.split(/(?=(?:...)*$)/);
|
|
|
|
// Convert the array to a string and format the output
|
|
value = value.join('.');
|
|
return value+' €';
|
|
}
|
|
},
|
|
scaleLabel: {
|
|
display: true,
|
|
labelString: 'Betrag in Euro'
|
|
}
|
|
}
|
|
]
|
|
},
|
|
// Container for pan options
|
|
pan: {
|
|
// Boolean to enable panning
|
|
enabled: true,
|
|
|
|
// Panning directions. Remove the appropriate direction to disable
|
|
// Eg. 'y' would only allow panning in the y direction
|
|
mode: 'y',
|
|
threshold: 10
|
|
},
|
|
|
|
// Container for zoom options
|
|
zoom: {
|
|
// Boolean to enable zooming
|
|
enabled: true,
|
|
|
|
// Zooming directions. Remove the appropriate direction to disable
|
|
// Eg. 'y' would only allow zooming in the y direction
|
|
mode: 'y',
|
|
},
|
|
},
|
|
|
|
};
|
|
|
|
window.onload = function() {
|
|
var ctx = document.getElementById('canvas').getContext('2d');
|
|
window.myLine = new Chart(ctx, config);
|
|
};
|
|
|
|
document.getElementById('randomizeData').addEventListener('click', function() {
|
|
config.data.datasets.forEach(function(dataset) {
|
|
dataset.data = dataset.data.map(function() {
|
|
return randomScalingFactor();
|
|
});
|
|
});
|
|
|
|
window.myLine.update();
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|
|
";
|
|
|
|
#$heute_format = date("Y", mktime(0, 0, 0, 0, 0, date("Y"))); // ISO-8601 Format wie in der Datenbank: Formatierung für Vergleiche erforderlich
|
|
# Der erste Wert wird vorgegeben
|
|
$result_min = $db->query("SELECT min(date_format(monat, '%Y')) jahr
|
|
FROM prog_tmp_professor_synopse");
|
|
$row_min = $result_min->fetch_array();
|
|
|
|
# Wann geht der letzte Prof in Ruhestand
|
|
$result_max = $db->query("SELECT max(date_format(weggang,'%Y')) weggang
|
|
FROM prog_tmp_professor");
|
|
$row_max = $result_max->fetch_array();
|
|
# Vor zurückblättern
|
|
$jahrgang_next = $jahrgang+1;
|
|
$jahrgang_prev = $jahrgang-1;
|
|
|
|
echo "<table width='100%'>
|
|
<tr>";
|
|
if($row_min['jahr'] < $jahrgang){
|
|
echo "<td width=50% align=center><a href=?jahrgang=$jahrgang_prev>Zurück</a></td>";
|
|
}else{
|
|
echo "<td width=50%>";
|
|
}
|
|
|
|
if($row_max['weggang'] > $jahrgang){
|
|
echo "<td width=50% align=center><a href=?jahrgang=$jahrgang_next>Nächstes Jahr</a></td>";
|
|
}else{
|
|
echo "<td width=50%>";
|
|
}
|
|
echo "</tr>
|
|
</table>";
|
|
?>
|