<?php require_once("config.inc.php"); require_once("func_rollenrechte.php"); $jahrgang = $_COOKIE["jahrgang"]; // 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,'a_graph_ges','RE')){echo "Keine Rechte";exit;} // Rechteüberprüfung ende # Vorschau soll in Jahren begrenzt werden. Aktuell 15 Jahre vom aktuellen Jahrgang ab, bis maximal der letzte Prof in Ruhestand geht $query_anzj = $db->query("SELECT wert1 FROM `prog_parameter` WHERE pid =9 "); $row_anz_ja = $query_anzj->fetch_array(); $max_jahr = $row_anz_ja['wert1'] + $jahrgang+1; # Letztes Jahr nicht ausgeben, da dieses nur bis ggf. Mitte des Jahres berechnet wird, wenn der letzte Professor im März 2051 geht $result_last = $db->query("SELECT max(date_format(monat,'%Y')) lastyear FROM `prog_tmp_synopse` "); $row_last = $result_last->fetch_array(); $lastyear = $row_last['lastyear']; if($lastyear >= $max_jahr){ $lastyear = $max_jahr; } 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: 90%;'> <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: ["; $query2 = "SELECT distinct date_format(monat, '%Y') jahr FROM `prog_tmp_professor_synopse` WHERE date_format(monat,'%Y') < '$lastyear' ORDER BY date_format(monat, '%Y') ASC"; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['jahr']."',"; } echo " ], datasets: [{ label: 'Vergaberahmen – Übertrag aus dem Vorjahr ', fill: false, borderColor: window.chartColors.red, backgroundColor: window.chartColors.red, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) ,round(sum(besausgaben),2) ,round(sum(vergaberahmen),2) ,round(sum(verg_uebertragvj),2) ,round(sum(leistungsbez),2) ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['vergaberahmen_vj']."',"; } echo"] }, { label: 'VZÄ x Besoldungsdurchschnitt ', fill: false, borderColor: window.chartColors.blue, backgroundColor: window.chartColors.blue, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['jahresrahmen']."',"; } echo" ] } , { label: 'Besoldungsausgaben ', fill: false, borderColor: window.chartColors.green, backgroundColor: window.chartColors.green, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['besausgaben']."',"; } echo" ] } , { label: 'Vergaberahmen akt. Jahr ', fill: false, borderColor: window.chartColors.yellow, backgroundColor: window.chartColors.yellow, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['vergaberahmen']."',"; } echo" ] } , { label: 'Vergaberahmen mit Übertrag aus Vorjahr ', fill: false, borderColor: window.chartColors.black, backgroundColor: window.chartColors.black, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['verg_uebertragvj']."',"; } echo" ] } , { label: 'Summe der Leistungsbezüge ', fill: false, borderColor: window.chartColors.orange, backgroundColor: window.chartColors.orange, data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['leistungsbez']."',"; } echo" ] } /* Wird auskommentiert, da es dieselben Werte sind, wie die rote Vorjahreskurve, nur um ein Jahr versetzt. , { label: 'Vergaberahmen nächstes Jahr ', fill: false, borderColor: 'rgba(47, 132, 71, 0.8)', backgroundColor: 'rgba(47, 132, 71, 0.8)', data: ["; $query2 = "SELECT date_format(monat,'%Y') jahr ,round(sum(vergaberahmen_vj),2) vergaberahmen_vj ,round(sum(jahresrahmen),2) jahresrahmen ,round(sum(besausgaben),2) besausgaben ,round(sum(vergaberahmen),2) vergaberahmen ,round(sum(verg_uebertragvj),2) verg_uebertragvj ,round(sum(leistungsbez),2) leistungsbez ,round(sum(vergaberahmen_nj),2) vergaberahmen_nj FROM `prog_tmp_synopse` WHERE date_format(monat,'%Y') < '$lastyear' GROUP BY date_format(monat,'%Y') ORDER BY jahr "; $result2 = $db->query( $query2) or die ("Cannot execute query2"); while ($row2 = $result2->fetch_array()){ echo "'".$row2['vergaberahmen_nj']."',"; } echo" ] } */ ] }, options: { title:{ display:true, text: 'Prognose der Leistungsbezuege ' }, 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> "; ?>