From 2c3bea9a3181b940a06c52d5487a0ed8341b65db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 19 Nov 2013 13:54:03 +0000 Subject: [PATCH] =?UTF-8?q?-=20Personalmeldung=20-=20Beim=20generieren=20d?= =?UTF-8?q?er=20Meldung=20wird=20nun=20eine=20Liste=20der=20betroffenen=20?= =?UTF-8?q?Personen=20angezeigt=20-=20Lehrgangsmeldung=20-=20Ausstellungss?= =?UTF-8?q?taat=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/bis/lehrgangsmeldung.php | 8 +- vilesci/bis/personalmeldung.php | 187 ++++++++++++++++++++++--------- 2 files changed, 143 insertions(+), 52 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index a97c77471..87a390e87 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -465,7 +465,8 @@ if($result = $db->db_query($qry)) ".$gemeinde." ".$nation." ".$row->zgv_code." - ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum)).""; + ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))." + ".$row->ausstellungsstaat.""; if($stgart==2) { @@ -495,6 +496,11 @@ if($result = $db->db_query($qry)) if($aktstatus=='Absolvent') { $datei.=" + ".date("dmY", $datumobj->mktime_fromdate($aktstatus_datum)).""; + } + if($aktstatus=='Abbrecher') + { + $datei.=" ".date("dmY", $datumobj->mktime_fromdate($aktstatus_datum)).""; } $datei.=" diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 824a14b6b..bcbf5f901 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -31,6 +31,8 @@ if (!$db = new basis_db()) $error_log=''; $error_log1=''; $error_log_all=""; +$mitarbeiter_data=array(); +$mitarbeiter_gesamt=array(); $stgart=''; $fehler=''; $v=''; @@ -84,7 +86,7 @@ $qry=" WHERE bismelden AND personalnummer>0 - AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'$bisprevious') + AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>".$db->db_add_param($bisprevious).") ORDER BY uid, nachname,vorname "; @@ -98,9 +100,11 @@ if($result = $db->db_query($qry)) "; while($row = $db->db_fetch_object($result)) { + $mitarbeiter_data=array(); + $error_person = false; $person_content=''; - $qryet="SELECT * FROM bis.tbl_entwicklungsteam WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."';"; + $qryet="SELECT * FROM bis.tbl_entwicklungsteam WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid).";"; if($resultet=$db->db_query($qryet)) { while($rowet=$db->db_fetch_object($resultet)) @@ -122,13 +126,18 @@ if($result = $db->db_query($qry)) { $error_log.=($error_log!=''?', ':'')."HoechsteAbgeschlosseneAusbildung ('".$row->ausbildungcode."')"; } + $mitarbeiter_data['uid']=$row->uid; + $mitarbeiter_data['personalnummer']=sprintf("%015s",$row->personalnummer); + $mitarbeiter_data['vorname']=$row->vorname; + $mitarbeiter_data['nachname']=$row->nachname; + $person_content.=" ".sprintf("%015s",$row->personalnummer)." ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))." ".strtoupper($row->geschlecht)." ".$row->ausbildungcode.""; - $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND habilitation=true;"; + $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." AND habilitation=true;"; if($resultvw=$db->db_query($qryvw)) { if($db->db_num_rows($resultvw)>0) @@ -142,11 +151,12 @@ if($result = $db->db_query($qry)) N"; } } - $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND (ende is null OR ende>'$bisprevious') AND (beginn<'$bisdatum' OR beginn is null);"; + $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." AND (ende is null OR ende>".$db->db_add_param($bisprevious).") AND (beginn<".$db->db_add_param($bisdatum)." OR beginn is null);"; if($resultvw=$db->db_query($qryvw)) { if($db->db_num_rows($resultvw)>0) { + $verwendung_data=array(); while($rowvw=$db->db_fetch_object($resultvw)) { if($rowvw->ba1code=='' || $rowvw->ba1code==NULL) @@ -177,22 +187,23 @@ if($result = $db->db_query($qry)) { $frei++; } + $key = $rowvw->ba1code.'/'.$rowvw->ba2code.'/'.$rowvw->beschausmasscode.'/'.$rowvw->verwendung_code; + $verwendung_data[$key]['ba1code']=$rowvw->ba1code; + $verwendung_data[$key]['ba2code']=$rowvw->ba2code; + $verwendung_data[$key]['beschausmasscode']=$rowvw->beschausmasscode; + $verwendung_data[$key]['verwendung_code']=$rowvw->verwendung_code; + + - $person_content.=" - - ".$rowvw->ba1code." - ".$rowvw->ba2code." - ".$rowvw->beschausmasscode." - ".$rowvw->verwendung_code.""; //Studiengangsleiter $qryslt="SELECT tbl_benutzerfunktion.*, tbl_studiengang.studiengang_kz FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) WHERE - uid='".addslashes($row->mitarbeiter_uid)."' + uid=".$db->db_add_param($row->mitarbeiter_uid)." AND funktion_kurzbz='Leitung' - AND (datum_von<'$bisdatum' OR datum_von is null) - AND (datum_bis>'$bisprevious' OR datum_bis is NULL) + AND (datum_von<".$db->db_add_param($bisdatum)." OR datum_von is null) + AND (datum_bis>".$db->db_add_param($bisprevious)." OR datum_bis is NULL) AND studiengang_kz<10000;"; if($resultslt=$db->db_query($qryslt)) { @@ -204,15 +215,12 @@ if($result = $db->db_query($qry)) } if(!in_array($rowslt->studiengang_kz, $nichtmelden)) { - $person_content.=" - - ".sprintf("%04s",$rowslt->studiengang_kz)." - "; + $verwendung_data[$key]['stgltg'][]=$rowslt->studiengang_kz; } } } //Funktionen - $qryfkt="SELECT * FROM bis.tbl_bisfunktion WHERE bisverwendung_id='".$rowvw->bisverwendung_id."' AND studiengang_kz>0 AND studiengang_kz<10000;"; + $qryfkt="SELECT * FROM bis.tbl_bisfunktion WHERE bisverwendung_id=".$db->db_add_param($rowvw->bisverwendung_id)." AND studiengang_kz>0 AND studiengang_kz<10000;"; if($resultfkt=$db->db_query($qryfkt)) { while($rowfkt=$db->db_fetch_object($resultfkt)) @@ -240,52 +248,101 @@ if($result = $db->db_query($qry)) $error_log.=($error_log!=''?', ':'')."BesondereQualifikationCode ('".$eteam[$rowfkt->studiengang_kz]."')"; } } - $person_content.=" - - ".sprintf("%04s",$rowfkt->studiengang_kz)." - ".$rowfkt->sws.""; - if($rowvw->hauptberuflich=='t') - { - $person_content.=" - J"; - } - else - { - $person_content.=" - N - ".$rowvw->hauptberufcode.""; - } - if(isset($eteam[$rowfkt->studiengang_kz])) - { - $person_content.=" - J - ".$eteam[$rowfkt->studiengang_kz].""; - } - else - { - $person_content.=" - N"; - } - $person_content.=" - "; + + $verwendung_data[$key]['fkt'][] = array( + 'stgkz'=>$rowfkt->studiengang_kz, + 'sws'=>$rowfkt->sws, + 'hauptberuflich'=>$rowvw->hauptberuflich, + 'hauptberufcode'=>$rowvw->hauptberufcode); } } + } + + //Verwendungen ausgeben + foreach($verwendung_data as $row_verwendung) + { $person_content.=" + + ".$row_verwendung['ba1code']." + ".$row_verwendung['ba2code']." + ".$row_verwendung['beschausmasscode']." + ".$row_verwendung['verwendung_code'].""; + + if(isset($row_verwendung['stgltg'])) + { + foreach($row_verwendung['stgltg'] as $row_stgl) + { + $person_content.=" + + ".sprintf("%04s",$row_stgl)." + "; + } + } + if(isset($row_verwendung['fkt'])) + { + foreach($row_verwendung['fkt'] as $row_fkt) + { + $person_content.=" + + ".sprintf("%04s",$row_fkt['stgkz'])." + ".$row_fkt['sws'].""; + if($row_fkt['hauptberuflich']=='t') + { + $person_content.=" + J"; + } + else + { + $person_content.=" + N + ".$row_fkt['hauptberufcode'].""; + } + if(isset($eteam[$row_fkt['stgkz']])) + { + $person_content.=" + J + ".$eteam[$row_fkt['stgkz']].""; + } + else + { + $person_content.=" + N"; + } + $person_content.=" + "; + } + } + $person_content.=" "; } + } else { - //Keine Verwendung - $v.="
$row->mitarbeiter_uid hat keine Verwendung und wird ausgelassen
"; - $error_person = true; - } - } + $qry_count="SELECT 1 FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid); + if($result_count=$db->db_query($qry_count)) + { + if($db->db_num_rows($result_count)==0) + { + //Keine Verwendung + $v.="$row->mitarbeiter_uid hat keine Verwendung und wird ausgelassen
"; + $error_person = true; + } + else + { + //Keine Verwendung im Meldezeitraum + //$v.="$row->mitarbeiter_uid hat keine Verwendung und wird ausgelassen
"; + $error_person = true; + } + } + } } $mitarbeiterzahl++; $person_content.="
"; if($error_log!='' || $error_log1!='') { + if($error_person) + $v.=''; $v.="Bei Mitarbeiter (PersNr, UID, Vorname, Nachname) '".$row->personalnummer."','".$row->mitarbeiter_uid."', '".$row->nachname."', '".$row->vorname."': \n"; if($error_log!='') { @@ -294,11 +351,16 @@ if($result = $db->db_query($qry)) $zaehl++; $v.="\n"; $error_log=''; + if($error_person) + $v.=''; } else { if(!$error_person) + { $datei.=$person_content; + $mitarbeiter_gesamt[]=$mitarbeiter_data; + } } } $datei.=" @@ -322,5 +384,28 @@ $dateiausgabe=fopen($ddd,'w'); fwrite($dateiausgabe,$datei); fclose($dateiausgabe); +echo '

Folgende Personen werden gemeldet

+Anzahl:'.count($mitarbeiter_gesamt).' + + + + + + + + + +'; + +foreach($mitarbeiter_gesamt as $row) +{ + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; +} +echo '
UIDVornameNachnamePersonalnummer
'.$row['uid'].''.$row['vorname'].''.$row['nachname'].''.$row['personalnummer'].'

'; echo "XML-Datei für Mitarbeiter-BIS-Meldung

"; ?> \ No newline at end of file