58 lines
2.3 KiB
PHP
Executable File
58 lines
2.3 KiB
PHP
Executable File
<?php
|
|
require_once ("config.inc.php");
|
|
|
|
function func_LB_BZ_fiktiv($wert, $prozentsatz)
|
|
{
|
|
// Berechnung der Leistungszulagen BZ in die Zukunft sowie die fiktiven Zulagen für FIKTIVE PROFESSOREN.
|
|
|
|
$db = dbconnect();
|
|
$result_anz_fikt = $db->query("SELECT count(*) Anz
|
|
FROM prog_tmp_professor
|
|
WHERE art='F'
|
|
");
|
|
$row_anz_fikt = $result_anz_fikt->fetch_array();
|
|
if($row_anz_fikt['Anz'] >0){
|
|
|
|
|
|
// Die Tabelle darf nicht geleert werden, da sie durch die vorher laufende fun_lb_bz gelöscht wird. Aufruf in func_gesamtberechnung.php
|
|
$result_truncate = $db->query("DELETE FROM prog_tmp_lb_bz WHERE did IN (SELECT did FROM prog_tmp_professor WHERE art='F')");
|
|
|
|
// Teil 1: Vorhandene Leistungsbezüge monatlich hochrechnen
|
|
|
|
|
|
# 1 Monat abziehen, da man wissen möchte, in welchem Monat der Prof seine letzte Zulage bekommt. In der DB steht der erste Tag der Pension
|
|
$result_weggang = $db->query("SELECT did, date_format(zugang, '%Y-%m-01') zugang_form, date_format(date_sub(weggang, INTERVAL 1 MONTH) ,'%Y-%m-28') enddat_form
|
|
FROM prog_tmp_professor
|
|
WHERE art='F'
|
|
ORDER BY tdid ASC
|
|
");
|
|
$row = $result_weggang->fetch_array();
|
|
$ende = $row['enddat_form'];
|
|
|
|
$start = date_create_from_format('Y-m-d', $row['zugang_form'], new DateTimeZone('GMT'));
|
|
$end = date_create($ende, new DateTimeZone('GMT'));
|
|
$wert2 = $wert;
|
|
|
|
|
|
|
|
|
|
// Foreach Schleife dauert lange. Ggf.
|
|
// Es scheint so, dass DateInterval den letzten Monat weglässt wenn jmd z.B. am 01. August in Ruhestand , dann rechnet die foreach-Schleife nur bis Juli. Daher wird oben im Select der 28 als Monatsende eingetragen
|
|
|
|
foreach(new DatePeriod($start, new DateInterval('P1M') , $end) as $cur) {
|
|
|
|
if($cur->format('m') == '01'){
|
|
$prozent = $wert * $prozentsatz / 100;
|
|
$wert = $wert + $prozent;
|
|
$wert2 = round($wert,2);
|
|
}else{
|
|
$wert2 = $wert2;
|
|
}
|
|
$result_insert = $db->query("INSERT INTO prog_tmp_lb_bz (lbbzid, monat, did, wert, anpassung, art) VALUES (0, '" . $cur->format('Y-m-01') . "', $row[did], $wert2, 'Y', 'F')");
|
|
}
|
|
}
|
|
} // Ende Funktion
|
|
|
|
#func_LB_BZ_fiktiv(250,2);
|
|
|
|
?>
|