From 055f52a0bd9de1e1504cd850b82fd2b068dd80be Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Mon, 18 Jul 2022 00:37:27 +0200 Subject: [PATCH] lehrgangsmeldung: - added field orgform_kurzbz, meldestatus and GS-Block - splitted Ausstellungsstaat into ZugangAusstellungsstaat and ZugangMaAusstellungsstaat --- vilesci/bis/lehrgangsmeldung.php | 178 ++++++++++++++++++++++++++----- 1 file changed, 151 insertions(+), 27 deletions(-) diff --git a/vilesci/bis/lehrgangsmeldung.php b/vilesci/bis/lehrgangsmeldung.php index acff2cb3a..c2ddb777c 100644 --- a/vilesci/bis/lehrgangsmeldung.php +++ b/vilesci/bis/lehrgangsmeldung.php @@ -172,6 +172,33 @@ if ($stg_kz == '') $datumobj=new datum(); +// orgform codes auslesen +$qry='SELECT * FROM bis.tbl_orgform'; + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $orgform_code_array[$row->orgform_kurzbz]=$row->code; + } +} + +$qry = 'SELECT * FROM bis.tbl_gsstudientyp'; + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + $kodex_studientyp_array[$row->gsstudientyp_kurzbz]=$row->studientyp_code; + } +} + +// StudStatusCode +$kodex_studstatuscode_array['Student'] =1; +$kodex_studstatuscode_array['Unterbrecher']=2; +$kodex_studstatuscode_array['Absolvent'] =3; +$kodex_studstatuscode_array['Abbrecher'] =4; + //Lehrgangsdaten auslesen $qry="SELECT * FROM public.tbl_studiengang WHERE studiengang_kz=".$db->db_add_param($stg_kz); if($result = $db->db_query($qry)) @@ -216,12 +243,14 @@ $tabelle = ''; $anzahl_gemeldet=0; //Hauptselect -$qry="SELECT DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat +$qry="SELECT DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.person_id AS pers_id, to_char(gebdatum, 'ddmmyy') AS vdat, + tbl_studiengang.orgform_kurzbz AS stg_orgform_kurzbz FROM public.tbl_student JOIN public.tbl_benutzer ON(student_uid=uid) JOIN public.tbl_person USING (person_id) JOIN public.tbl_prestudent USING (prestudent_id) JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id) + JOIN public.tbl_studiengang ON(tbl_prestudent.studiengang_kz=tbl_studiengang.studiengang_kz) WHERE bismelden IS TRUE AND tbl_student.studiengang_kz=".$db->db_add_param($stg_kz)." AND (((tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem).") AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") @@ -238,7 +267,6 @@ $qry="SELECT DISTINCT ON(student_uid, nachname, vorname) *, public.tbl_person.pe if($result = $db->db_query($qry)) { - $datei.=" ".$erhalter." @@ -249,6 +277,12 @@ if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) { + //Pruefen ob Ausserordnetlicher Studierender (4.Stelle in Personenkennzeichen = 9) + if(mb_substr($row->matrikelnr,3,1)=='9') + $ausserordentlich=true; + else + $ausserordentlich=false; + //Plausichecks $qryadr="SELECT * FROM public.tbl_adresse WHERE heimatadresse IS TRUE AND person_id=".$db->db_add_param($row->pers_id).";"; $results=$db->db_query($qryadr); @@ -273,7 +307,7 @@ if($result = $db->db_query($qry)) $nation=''; $co_name = ''; } - + // Zustelladresse & c/o Name(=abweichender Empfaenger) $qryzustelladr = " SELECT * @@ -282,17 +316,17 @@ if($result = $db->db_query($qry)) AND person_id=". $db->db_add_param($row->pers_id). "; "; $results = $db->db_query($qryzustelladr); - + if ($db->db_num_rows($results) != 1) { $error_log1.= "Es sind ".$db->db_num_rows($results)." Zustelladressen eingetragen\n"; } - + $zustell_plz = ''; $zustell_gemeinde = ''; $zustell_strasse = ''; $zustell_nation = ''; - + if ($rowzustelladr = $db->db_fetch_object($results)) { $zustell_plz = $rowzustelladr->plz; @@ -449,45 +483,46 @@ if($result = $db->db_query($qry)) { $error_log_hinweis .= (!empty($error_log_hinweis) ? ', ' : '') . "bPK fehlt"; } - + if($row->bpk != '' && $row->bpk != null) { if (!preg_match('/[a-zA-Z0-9\+\/]{27}=/', $row->bpk)) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK-Zeichenfolge ist ungültig"; } - + if (strlen($row->bpk) != 28) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang"; } } - + if ($zustell_plz == '' || $zustell_plz == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-PLZ fehlt"; } - + if ($zustell_gemeinde == '' || $zustell_gemeinde == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Gemeinde fehlt"; } - + if ($zustell_strasse == '' || $zustell_strasse == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Strasse fehlt"; } - + if ($zustell_nation == '' || $zustell_nation == null) { $error_log.=(!empty($error_log)?', ':'')."Zustell-Nation fehlt"; } - + if ($email == '' || $email == null) { $error_log.=(!empty($error_log)?', ':'')."eMail Adresse fehlt oder eMail-Zustellung auf 'Nein' gesetzt."; } - + + $aktstatus_stsem = $ssem; //Bestimmen der aktuellen Prestudentrolle (Status) und des akt. Ausbildungssemesters des Studenten $qrystatus="SELECT * FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($ssem)." @@ -523,18 +558,22 @@ if($result = $db->db_query($qry)) || $rowstatus->status_kurzbz=="Diplomand") { $status=1; + $meldestatus='I'; } else if($rowstatus->status_kurzbz=="Unterbrecher" ) { $status=2; + $meldestatus='U'; } else if($rowstatus->status_kurzbz=="Absolvent" ) { $status=3; + $meldestatus='I'; } else if($rowstatus->status_kurzbz=="Abbrecher" ) { $status=4; + $meldestatus='O'; } else { @@ -546,6 +585,7 @@ if($result = $db->db_query($qry)) $aktstatus=$rowstatus->status_kurzbz; $aktstatus_datum=$rowstatus->datum; $storgform=$rowstatus->orgform_kurzbz; + $aktstatus_stsem = $rowstatus->studiensemester_kurzbz; } } else @@ -578,10 +618,12 @@ if($result = $db->db_query($qry)) if($rowstatus->status_kurzbz=="Absolvent" ) { $status=3; + $meldestatus='I'; } else if($rowstatus->status_kurzbz=="Abbrecher" ) { $status=4; + $meldestatus='O'; } else { @@ -592,11 +634,74 @@ if($result = $db->db_query($qry)) } $aktstatus=$rowstatus->status_kurzbz; $aktstatus_datum=$rowstatus->datum; - //$storgform=$rowstatus->orgform_kurzbz; + $storgform=$rowstatus->orgform_kurzbz; + $aktstatus_stsem = $rowstatus->studiensemester_kurzbz; } } } } + + //Wenn im Status keine Organisationsform eingetragen ist, wird die des Studienganges uebernommen + if($storgform=='') + { + //$storgform=$orgform_kurzbz; + $storgform=$row->stg_orgform_kurzbz; + } + + // **** GS Container ****/ + $gsstatus=''; + $gsblock=''; + $qrygs="SELECT + tbl_mobilitaet.*, + tbl_gsprogramm.programm_code, + tbl_gsprogramm.studienkennung_uni, + tbl_firma.partner_code + FROM + bis.tbl_mobilitaet + LEFT JOIN bis.tbl_gsprogramm USING(gsprogramm_id) + LEFT JOIN public.tbl_firma USING(firma_id) + WHERE + prestudent_id=".$db->db_add_param($row->prestudent_id)." + AND (studiensemester_kurzbz=".$db->db_add_param($aktstatus_stsem)." OR (studiensemester_kurzbz=".$db->db_add_param($psem)." AND status_kurzbz = 'Absolvent')) + ORDER BY tbl_mobilitaet.insertamum DESC limit 1;"; + + $studtyp = ''; + if($resultgs = $db->db_query($qrygs)) + { + while($rowgs = $db->db_fetch_object($resultgs)) + { + $gsstatus = 'GS '.$rowgs->status_kurzbz.' '.$row->gsstudientyp_kurzbz; + $studtyp = $kodex_studientyp_array[$row->gsstudientyp_kurzbz]; + $studstatuscode = (isset($kodex_studstatuscode_array[$rowgs->status_kurzbz])?$kodex_studstatuscode_array[$rowgs->status_kurzbz]:''); + + $gserror=''; + if($studstatuscode=='') + $gserror.="     Gemeinsame Studien - Status ist nicht gesetzt\n"; + if($studtyp=='') + $gserror.="     Gemeinsame Studien - Studientyp ist nicht gesetzt\n"; + if($rowgs->partner_code=='') + $gserror.="     Gemeinsame Studien - Partner Code ist leer\n"; + if($rowgs->programm_code=='') + $gserror.="     Gemeinsame Studien - Programm ist leer\n"; + + if($gserror!='') + { + $v.="Bei Student (UID, Nachname, Vorname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->status_kurzbz): \n"; + $v.=$gserror."\n"; + return ''; + } + $gsblock.=" + + ".$rowgs->mobilitaetsprogramm_code." + ".$rowgs->programm_code." + ".$studtyp." + ".$rowgs->partner_code." + ".$studstatuscode." + ".(isset($rowgs->studienkennung_uni) ? "".$rowgs->studienkennung_uni."" : "")." + "; + } + } + //bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen if($aktstatus=='Absolvent') @@ -625,13 +730,15 @@ if($result = $db->db_query($qry)) } } + $ausstellungsstaat = ''; + $ausstellungsstaat_master = ''; if($row->zgvmanation!='' && $lgartcode==1) // Master Lehrgang - $ausstellungsstaat = $row->zgvmanation; - elseif($row->zgvnation!='') + $ausstellungsstaat_master = $row->zgvmanation; + if($row->zgvnation!='') $ausstellungsstaat = $row->zgvnation; else $ausstellungsstaat = $row->ausstellungsstaat; - if($ausstellungsstaat == '') + if($ausstellungsstaat == '' && ausstellungsstaat_master == '') { $error_log.=(!empty($error_log)?', ':'')." Ausstellungsstaat fehlt"; } @@ -678,19 +785,25 @@ if($result = $db->db_query($qry)) ".$row->matr_nr." ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))." ".strtoupper($row->geschlecht).""; - + + if (!$ausserordentlich) + { + $datei .= " + " . $orgform_code_array[$storgform] . ""; + } + if ($row->titelpre != '') { $datei .= " " . $row->titelpre . ""; } - + if ($row->titelpost != '') { $datei .= " " . $row->titelpost . ""; } - + $datei .= " ".$row->vorname." ".$row->nachname.""; @@ -724,29 +837,37 @@ if($result = $db->db_query($qry)) ". $zustell_gemeinde. " ". $zustell_strasse. " ". $zustell_nation. ""; - + if ($co_name != '') { $datei .= " ". $co_name. ""; } - + $datei.=" ". $email_privat. " ". $email. " ".$row->zgv_code." ".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum)).""; + if ($ausstellungsstaat != '') + { + $datei.=" + ".$ausstellungsstaat.""; + } + if($lgartcode==1) { $datei.=" ".$row->zgvmas_code." ".date("dmY", $datumobj->mktime_fromdate($row->zgvmadatum)).""; + if ($ausstellungsstaat_master != '') + { + $datei.=" + ".$ausstellungsstaat_master.""; + } } - $datei.=" - ".$ausstellungsstaat.""; - $qryad="SELECT * FROM @@ -777,7 +898,10 @@ if($result = $db->db_query($qry)) } $datei.=" ".$status." - " .$standortcode. " + ".$meldestatus." + ".$standortcode.""; + $datei.= $gsblock; + $datei.=" "; } }