<?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>
";

?>