query("TRUNCATE TABLE prog_tmp_lb_bz"); // Teil 1: Vorhandene Leistungsbezüge monatlich hochrechnen $query = "SELECT lbbzid, date_format(startdat,'%Y-%m-01') startdat_form, date_format(enddat,'%Y-%m-28') enddat_form, wert, anpassung, did FROM prog_lb_bz ORDER BY did, startdat ASC"; $result = $db->query($query) or die("Cannot execute query"); while ($row = $result->fetch_array()) { // Wenn kein Enddatum vorhanden ist, dann wird das Auschscheidedatum/Ruhestandsdatum verwendet # 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 date_format(date_sub(weggang, INTERVAL 1 MONTH) ,'%Y-%m-28') enddat_form FROM prog_tmp_professor WHERE did = $row[did] "); $row_weggang = $result_weggang->fetch_array(); $ende = $row['enddat_form']; # Wenn in prog_lb_bz kein Enddatum definiert, dann maximal bis zum Ruhestand if ($ende == '0000-00-28') { $ende = $row_weggang['enddat_form']; } # Wenn in prob_lb_bz das Enddatum über den Ruhestand geht, dann auch max. bis zum Ruhestand rechnen if ($ende > $row_weggang['enddat_form']) { $ende = $row_weggang['enddat_form']; } $end = date_create($ende, new DateTimeZone('GMT')); # Hat der Professor eine dynamische Anpassung=Y und kein Enddatum, dann wird im Folgejahr die Zulage um 2 % erhöht # Bis wann sind die Zulagen Bestandszulagen und ab wann fiktive Zulagen? # Bestandszulagen sind die Zulagen auf jeden Fall, solange diese im System erfasst sind: MaxDatum des Professors in prog_lb_bz # Ab dem Folgejahr (01.01) dieses MaxDatums wird eine Zulage fiktiv mit 2% Erhöhung bei dynamischer Anpassung # Hat der Professor keine dynamische Anpassung=N und kein Enddatum (Regel), dann wird bis zum Ruhestandsdatum mit demselben Betrag gerechnet # Kann ein Dozent der keine dynamische Anpassung hat, auch fiktive Zulagen bekommen? -> Fr. Gottwald? $result_letztezul = $db->query("SELECT DATE_ADD(date_format(startdat,'%Y-01-01'),INTERVAL 1 YEAR) fikt_date, wert FROM prog_lb_bz WHERE did = $row[did] and enddat='0000-00-00' ORDER BY startdat DESC LIMIT 1 "); $row_letztezul = $result_letztezul->fetch_array(); # Letzter Wert, von dem der fiktive Wert berechnet wird $wert = $row_letztezul['wert']; $wert2 = $row_letztezul['wert']; // echo "
".print_r($end)."