first commit
This commit is contained in:
112
func_LB_FZ_alt.php
Executable file
112
func_LB_FZ_alt.php
Executable file
@ -0,0 +1,112 @@
|
||||
<?php
|
||||
require_once("config.inc.php");
|
||||
|
||||
function func_LB_FZ() {
|
||||
# Berechnung der Leistungszulagen f<>r die Wahrnehmung von Funktionen
|
||||
|
||||
# Ermitteln des Anfangsdatum (vergaberahmen
|
||||
# Ermitteln des Enddatum (wenn der letze in Ruhestand geht)
|
||||
|
||||
# Schleife <20>ber alle erfassten Funktionen
|
||||
# Schleife <20>ber den Zeitraum von bis
|
||||
# Wenn gueltig_bis im katalog <20>berschritten ist, dann keine weitere Hochrechnung mehr (inserts)
|
||||
# Wenn kein Betrag hinterlegt ist, dann letzten Betrag f<>r diese Funktion f<>r die Hochrechnung annehmen
|
||||
|
||||
|
||||
|
||||
$db = dbconnect();
|
||||
$result_truncate = $db->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')."<br>";
|
||||
$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]<br>";
|
||||
|
||||
$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<70>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')<br>";
|
||||
$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 "<hr>";
|
||||
}
|
||||
} // Ende Funktion
|
||||
|
||||
func_LB_FZ();
|
||||
?>
|
Reference in New Issue
Block a user