query("TRUNCATE TABLE prog_tmp_lb_fz"); $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-28') enddat_form FROM `prog_professor` "); $row_maxjahr = $query_maxjahr->fetch_array(); $ende = $row_maxjahr['enddat_form']; $end = date_create($ende, new DateTimeZone('GMT')); $query = "SELECT lbfzid, kfid, date_format(startdat, '%Y-%m') startdat_form, date_format(enddat, '%Y-%m') enddat_form, wert FROM prog_lb_fz where kfid=2 ORDER BY startdat ASC"; $result = $db->query( $query) or die ("Cannot execute query"); while ($row = $result->fetch_array()){ #$start = date_create_from_format('Y-m-d', $row['startdat_form'], new DateTimeZone('GMT')); foreach ( new DatePeriod($start, new DateInterval('P1M'), $end) as $cur ) { echo $cur->format('Y-m')."
"; $akt_mon = $cur->format('Y-m'); $query_gueltig = $db->query("SELECT date_format(gueltig_bis, '%Y-%m') gueltig_form FROM prog_kat_funktionen WHERE kfid=$row[kfid] "); $row_gueltig= $query_gueltig->fetch_array(); if($row_gueltig['gueltig_form'] == '0000-00' OR $row_gueltig['gueltig_form'] >= $akt_mon){ # echo $cur->format('Y-m')." - $row[bezeichnung] - $row[gueltig_form]
"; $query_aktbesetz = $db->query("SELECT lbfzid, wert, did FROM prog_lb_fz WHERE date_format(startdat, '%Y-%m') <= '$akt_mon' AND (date_format(enddat, '%Y-%m') >= '$akt_mon' OR enddat = '0000-00-00') AND lbfzid = $row[lbfzid] AND kfid=$row[kfid] "); $row_aktbesetz = $query_aktbesetz->fetch_array(); if($row_aktbesetz['did'] != ''){ $result_insert = $db->query("INSERT INTO prog_tmp_lb_fz (lbfzid, monat, did, kfid, wert, art) VALUES ($row_aktbesetz[lbfzid], '$akt_mon-01', $row_aktbesetz[did], $row[kfid], $row_aktbesetz[wert], 'B')"); }else{ $query_lastbesetzanz = $db->query("SELECT count(*) Anz FROM prog_lb_fz WHERE enddat = '0000-00-00' AND kfid=$row[kfid] "); $row_lastbesetzanz = $query_lastbesetzanz->fetch_array(); # Bevor ein fiktiver Wert vergeben wird, erst prüfen, ob es nicht schon eine andere Zulage gibt, die unbefristet ist. # Wenn nicht, dann erst den letzten gültigen Wert nehmen für eine fiktiven Betrag if($row_lastbesetzanz['Anz'] == 0){ $query_lastbesetz = $db->query("SELECT wert FROM prog_lb_fz WHERE date_format(startdat, '%Y-%m') <= '$akt_mon' AND kfid=$row[kfid] and date_format(enddat, '%Y-%m') != '0000-00' ORDER BY startdat desc LIMIT 1 "); $row_lastbesetz = $query_lastbesetz->fetch_array(); if($row_lastbesetz['wert'] != ""){ #echo "INSERT INTO prog_tmp_lb_fz (lbfzid, monat, did, kfid, wert, art) VALUES (99, '$akt_mon-01', 99, $row[kfid], $row_lastbesetz[wert], 'F')
"; $result_insert = $db->query("INSERT INTO prog_tmp_lb_fz (lbfzid, monat, did, kfid, wert, art) VALUES (99, '$akt_mon-01', 99, $row[kfid], $row_lastbesetz[wert], 'F')"); } } } } } #echo "
"; } } // Ende Funktion func_LB_FZ(); ?>