first commit
This commit is contained in:
58
func_LB_BZ_fiktiv.php
Executable file
58
func_LB_BZ_fiktiv.php
Executable file
@ -0,0 +1,58 @@
|
||||
<?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<65>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<65>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<67>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);
|
||||
|
||||
?>
|
Reference in New Issue
Block a user