prognose_kehl/func_zusammenstellung.php
2023-01-30 08:01:11 +01:00

198 lines
7.8 KiB
PHP
Executable File

<?php
require_once ("config.inc.php");
function func_zusammenstellung()
{
$db = dbconnect();
$result_truncate = $db->query("TRUNCATE TABLE prog_tmp_synopse");
$query_minjahr = $db->query("SELECT min(jahr) jahr
FROM `prog_vergaberahmen`
");
$row_minjahr = $query_minjahr->fetch_array();
$start = new DateTime($row_minjahr['jahr'] . '-01-01');
$query_maxjahr = $db->query("SELECT date_format(max(weggang),'%Y-%m-31') enddat_form
FROM `prog_tmp_professor`
");
$row_maxjahr = $query_maxjahr->fetch_array();
$ende = $row_maxjahr['enddat_form'];
$end = date_create($ende, new DateTimeZone('GMT'));
$query_startwert = $db->query("SELECT wert
FROM prog_vergaberahmen
WHERE jahr = '$row_minjahr[jahr]'
");
$row_startwert = $query_startwert->fetch_array();
$start_vergaberahmen_mtl = $row_startwert['wert'] / 12;
// Aktuell wird nur der erste Wert vom Vergaberahmen verwendet. Sollte das mal geändert werden,
// muss in der Schleife nach jedem Monat/Jahr geschaut werden, ob es in der Tab prog_vergaberahmen ein neuer Wert ist.
// Schleife über alle Monate P1M bzw. P1Y für Jahre
$ln_zaehler = 1;
foreach(new DatePeriod($start, new DateInterval('P1M') , $end) as $cur) {
$akt_monat = $cur->format('Y-m-01');
$akt_jahr = $cur->format('Y');
// Schritt 1
// Berechnung des Jahresrahmen: vzä x besoldungsdurchschnitt
$query_vza_jahr = $db->query("SELECT date_format(monat, '%Y-%m-01'), sum(prozent) vza
FROM prog_tmp_professor_synopse
WHERE besoldung !=''
AND monat ='$akt_monat'
AND betrag != 0.00
GROUP BY date_format(monat, '%Y-%m-01')
");
$row_vza_jahr = $query_vza_jahr->fetch_array();
$query_bessch_jahr = $db->query("SELECT wert, art
FROM prog_tmp_besschnitt
WHERE jahr = '$akt_jahr'
");
$row_bessch_jahr = $query_bessch_jahr->fetch_array();
// Den Jahresrahmen ausrechnen, auf den Monat:
$jahresrahmen_mtl = ($row_bessch_jahr['wert'] * $row_vza_jahr['vza']) / 12;
// echo $jahresrahmen_mtl."<br />";
// Schritt 2
// Berechnung der Besoldungsausgaben
$query_besazul_jahr = $db->query("SELECT zulage
FROM prog_besausg_zulage
WHERE jahr= '$akt_jahr'
");
$row_besazul_jahr = $query_besazul_jahr->fetch_array();
$query_besa_jahr = $db->query("SELECT SUM(betrag) wert
FROM `prog_tmp_professor_synopse`
WHERE monat like '$akt_jahr%'
");
$row_besa_jahr = $query_besa_jahr->fetch_array();
$besausgaben_mtl = ($row_besa_jahr['wert'] + $row_besazul_jahr['zulage']) / 12;
// echo str_replace('.',',',$besausgaben_mtl)."<br />";
// Schritt 3
// Berechnung des Vergaberahmens
$vergaberahmen_mtl = $jahresrahmen_mtl - $besausgaben_mtl;
// echo str_replace('.',',',$vergaberahmen_mtl)."<br />";
// Schritt 4
// Vergaberahmen mit Übertrag Vorjahr
// Im ersten Jahr muss er den vergaberahmen aus tabelle prog_vergaberahmen nehmen, danach wird der Wert berechnet.
// if($row_minjahr['jahr'] == '$akt_jahr'){ --> Unterschiedliche Datentypen
// echo $ln_zaehler."<br />";
if ($ln_zaehler <= '12') {
$ln_zaehler++;
$start_vergaberahmen_mtl = $start_vergaberahmen_mtl;
}
else {
// Berechneter Vergaberahmen heranziehen
$vjahr = $akt_jahr - 1;
# Wurde ein Vergaberahmen zum Übertrag vorgegeben?
$query_vg_akt = $db->query("SELECT wert
FROM prog_vergaberahmen
WHERE jahr= '$akt_jahr'
");
$row_vg_akt = $query_vg_akt->fetch_array();
if($row_vg_akt['wert'] != ''){
# Wert vorgegeben, dann Wert aus prog_vergaberahmen nehmen
$start_vergaberahmen_mtl = $row_vg_akt['wert']/12;
}else{
# Kein Wert vorgegeben, dann berechneten Vergaberahmen aus Vorjahr nehmen
$query_vg_nj = $db->query("SELECT sum(vergaberahmen_nj)/12 vergaberahmen_mtl
FROM prog_tmp_synopse
WHERE date_format(monat, '%Y')= '$vjahr'
");
// echo "SELECT sum(vergaberahmen_nj)/12 vergaberahmen_mtl
// FROM prog_tmp_synopse
// WHERE date_format(monat, '%Y')= '$vjahr'
// <br />";
$row_vg_nr = $query_vg_nj->fetch_array();
$start_vergaberahmen_mtl = $row_vg_nr['vergaberahmen_mtl'];
}
}
$verg_uebertragvj = $start_vergaberahmen_mtl + $vergaberahmen_mtl;
// echo str_replace('.',',',$verg_uebertragvj)."<br />";
// Schritt 5
// Summe der LEistungesbezüge in diesem Monat
// Summe aus: LB_BZ, LB_LZ, LB_einmal, LB_FZ
$query_lb_bz = $db->query("SELECT sum(wert )wert
FROM prog_tmp_lb_bz
WHERE monat = '$akt_monat'
");
$row_lb_bz = $query_lb_bz->fetch_array();
$query_lb_lz = $db->query("SELECT sum(wert) wert
FROM prog_tmp_lb_lz
WHERE monat= '$akt_monat'
");
$row_lb_lz = $query_lb_lz->fetch_array();
$query_lb_em = $db->query("SELECT wert
FROM prog_tmp_lb_einmal
WHERE jahr= '$akt_jahr'
");
$row_lb_em = $query_lb_em->fetch_array();
$query_lb_fz = $db->query("SELECT sum(wert) wert
FROM prog_tmp_lb_fz
WHERE monat= '$akt_monat'
");
$row_lb_fz = $query_lb_fz->fetch_array();
// Monatswert
$lb_bz_mtl = $row_lb_bz['wert'];
// echo str_replace('.',',',$lb_bz_mtl)."<br />";
// Monatswert LZ
$lb_lz_mtl = $row_lb_lz['wert'];
// echo str_replace('.',',',$lb_lz_mtl)."<br />";
// Jahreswert/12
$lb_em_mtl = $row_lb_em['wert'] / 12;
// echo str_replace('.',',',$lb_em_mtl)."<br />";
// Monatswert FZ
$lb_fz_mtl = $row_lb_fz['wert'];
// echo str_replace('.',',',$lb_fz_mtl)."<br />";
// Summe der Leistungsbezüge im Monat
$summe_lb_mtl = $lb_bz_mtl + $lb_lz_mtl + $lb_em_mtl + $lb_fz_mtl;
// if($akt_jahr == '2016'){
// echo "$summe_lb_mtl = $lb_bz_mtl+$lb_lz_mtl+$lb_em_mtl+$lb_fz_mtl<br />";
// }
// echo str_replace('.',',',$summe_lb_mtl)."<br />";
// Schritt 6
// Berechnung des Übertrags ins nächste Jahr
$uebertrag_vergrahmen = $verg_uebertragvj - $summe_lb_mtl;
// echo str_replace('.',',',$uebertrag_vergrahmen)."<br />";
$result_insert = $db->query("INSERT INTO prog_tmp_synopse (monat, vergaberahmen_vj, jahresrahmen, besausgaben, vergaberahmen, verg_uebertragvj, leistungsbez, vergaberahmen_nj )
VALUES ('$akt_monat', '$start_vergaberahmen_mtl', '$jahresrahmen_mtl', '$besausgaben_mtl', '$vergaberahmen_mtl', '$verg_uebertragvj', '$summe_lb_mtl', '$uebertrag_vergrahmen' )");
}
}
# func_zusammenstellung()
?>