prognose_ludwigsburg/func_LB_obergrenze.php
2023-04-26 13:17:21 +02:00

91 lines
4.5 KiB
PHP
Executable File

<?php
require_once ("config.inc.php");
function func_LB_obergrenze($prozentsatz)
{
// Werte können unter dem Jahr gespeichert werden.
// Daher die erfassten werte übernehmen, 1 Jahr nach dem letzten Wert eine Steigerung um 2%
// Ab jedem neuen Jahr eine Steigerung von 2%
$db = dbconnect();
$result_truncate = $db->query("TRUNCATE TABLE prog_tmp_lb_obergrenze");
$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(date_sub(weggang, INTERVAL 1 MONTH)),'%Y-%m-28') enddat_form
FROM `prog_tmp_professor`
");
$row_maxjahr = $query_maxjahr->fetch_array();
$ende = $row_maxjahr['enddat_form'];
$end = date_create($ende, new DateTimeZone('GMT'));
foreach(new DatePeriod($start, new DateInterval('P1M') , $end) as $cur) {
$akt_mon = $cur->format('Y-m');
$mon = $cur->format('m');
// ab welchem Datum wird eine prozentuale erhöhung vorgenommen. Maximaler Zuschlag bis einschl. 2017 war C3 Stufe15 - W2
$result_proz = $db->query("SELECT date_format(max(startdat), '%Y-%m') proz_dat
FROM `prog_grundgehalt`
WHERE besoldung='C3'
");
$row_proz = $result_proz->fetch_array();
if ($row_proz['proz_dat'] >= $akt_mon) {
// An der Oberfläche werden Jahreswerte berechnet. Diese werden anteilig auf den Monat verteilt
$result_akt_wert_c3 = $db->query("SELECT gid, betrag C3
FROM prog_grundgehalt
WHERE date_format(startdat, '%Y-%m') <= '$akt_mon'
AND besoldung = 'C3'
AND stufe = '15'
ORDER BY startdat desc
LIMIT 1");
$row_akt_wert_c3 = $result_akt_wert_c3->fetch_array();
$result_akt_wert_w2 = $db->query("SELECT gid, betrag W2
FROM prog_grundgehalt
WHERE date_format(startdat, '%Y-%m') <= '$akt_mon'
AND besoldung = 'W2'
AND stufe = '0'
ORDER BY startdat desc
LIMIT 1");
$row_akt_wert_w2 = $result_akt_wert_w2->fetch_array();
$max_zulage = $row_akt_wert_c3['C3']-$row_akt_wert_w2['W2'];
$result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid],'" . $cur->format('Y-m-01') . "', '$row_akt_wert_w2[W2]', '$row_akt_wert_c3[C3]', '$max_zulage', 'B')");
$last_wert_w2 = $row_akt_wert_w2['W2'];
$last_wert_c3 = $row_akt_wert_c3['C3'];
}
else {
// 1 Jahr nach dem letzten wert soll der Wert um 2 Prozent erhöht werden für weitere 12 Monate usw.
// Fiktiver Wert: Nachdem 12 Monate vergangen sind, dann +2% sowie alle 12 Monate
// echo "";
if ($mon == '01') { //Erhöhung im Januar um 2 Prozent
$prozent_w2 = $last_wert_w2 * $prozentsatz / 100;
$last_wert_w2 = $last_wert_w2 + $prozent_w2;
$prozent_c3 = $last_wert_c3 * $prozentsatz / 100;
$last_wert_c3 = $last_wert_c3 + $prozent_c3;
$max_zulage = $last_wert_c3 - $last_wert_w2;
$result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid], '" . $cur->format('Y-m-01') . "', '$last_wert_w2', '$last_wert_c3', '$max_zulage', 'F')");
}
else {
$max_zulage = $last_wert_c3 - $last_wert_w2;
$result_insert = $db->query("INSERT INTO prog_tmp_lb_obergrenze (gidc3, gidw2, ab_datum, w2, c3, max_zulage, art) VALUES ($row_akt_wert_c3[gid], $row_akt_wert_w2[gid], '" . $cur->format('Y-m-01') . "', '$last_wert_w2', '$last_wert_c3', '$max_zulage', 'F')");
}
}
// echo "INSERT INTO prog_tmp_lb_lz (lblzid, monat, did, wert) VALUES ($row[lblzid], '".$cur->format('Y-m-01')."', $row[did], $row[wert])<br />";
}
}
// func_LB_obergrenze(2);
?>