diff --git a/vilesci/stammdaten/reihungstest_zusammenlegung.php b/vilesci/stammdaten/reihungstest_zusammenlegung.php new file mode 100644 index 000000000..7d8444551 --- /dev/null +++ b/vilesci/stammdaten/reihungstest_zusammenlegung.php @@ -0,0 +1,372 @@ + + */ +/** + * Script zum Zusammenlegen mehrfacher Anmeldungen zu einem Reihungstestmodul in einem Studiensemester. + * Es werden zwei Listen mit Bewerbungen eines Studiensemesters angezeigt, die sich für ein Modul mehrfach angemeldet haben + * Links wird die Bewerberbung markiert, der rechts markierten zusammengelegt werden soll. + * Die linke Bewerbung wird danach entfernt und eine Mail an den/die BewerberIn verschickt + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/person.class.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/gebiet.class.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/mail.class.php'); +require_once('../../include/phrasen.class.php'); +require_once('../../include/kontakt.class.php'); +require_once('../../include/studienplan.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$uid = get_uid(); +$datum_obj = new datum(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('lehre/reihungstest')) + die($rechte->errormsg); + +$studiengang = new studiengang(); +$studiengang->getAll('typ, kurzbz', false); + +$studiensemester = new Studiensemester(); +$studiensemester->getAll('DESC'); + +$stsem_akt = new studiensemester(); +$stsem_akt = $stsem_akt->getaktorNext(); + +$studiensemester_kurzbz = (isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] : $stsem_akt); +$prestudent_id = (isset($_REQUEST['prestudent_id']) ? $_REQUEST['prestudent_id'] : ''); +$studienplan_id = (isset($_REQUEST['studienplan_id']) ? $_REQUEST['studienplan_id'] : ''); + +$studienplan = new studienplan(); +$studienplan->loadStudienplan($studienplan_id); + +$sprache = getSprache(); +$p = new phrasen($sprache); +//var_dump($_POST); +if(isset($_POST['zusammenlegen'])) +{ + if (isset($_POST['radio']) && isset($_POST['checkbox'])) + { + $rt_person_ids = $_POST['checkbox']; + $mail_neue_Termine = array(); + $load_rt_person = new reihungstest(); + if ($load_rt_person->loadReihungstestPerson($_POST['radio'])) + { + $rt_termin_neu = new reihungstest($load_rt_person->rt_id); + $mail_neuer_Termin = $datum_obj->formatDatum($rt_termin_neu->datum, 'd.m.Y').', '.$datum_obj->formatDatum($rt_termin_neu->uhrzeit,'H:i'); + $mail_alte_Termine = ''; + + foreach ($rt_person_ids AS $key=>$value) + { + $neuzuteilung = new reihungstest(); + if ($neuzuteilung->loadReihungstestPerson($value)) + { + $neuzuteilung->new = false; + $id_alt = $neuzuteilung->rt_id; + $neuzuteilung->rt_person_id = $neuzuteilung->rt_person_id; + $neuzuteilung->anmeldedatum = $neuzuteilung->anmeldedatum; + $neuzuteilung->teilgenommen = $neuzuteilung->teilgenommen; + $neuzuteilung->punkte = $neuzuteilung->punkte; + $neuzuteilung->studienplan_id = $neuzuteilung->studienplan_id; + $neuzuteilung->rt_id = $load_rt_person->rt_id; + $neuzuteilung->person_id = $neuzuteilung->person_id; + $neuzuteilung->ort_kurzbz = $neuzuteilung->ort_kurzbz; + + if (!$neuzuteilung->savePersonReihungstest()) + { + echo 'Fehler beim Speichern der Daten: '.$db->convert_html_chars($neuzuteilung->errormsg).''; + } + else + { + $rt_termin = new reihungstest($id_alt); + $mail_alte_Termine .= '
  • '.$datum_obj->formatDatum($rt_termin->datum, 'd.m.Y').', '.$datum_obj->formatDatum($rt_termin->uhrzeit,'H:i').'
  • '; + } + } + } + $kontakt = new kontakt(); + $kontakt->load_persKontakttyp($neuzuteilung->person_id, 'email'); + $mailadresse = ''; + if(count($kontakt->result)>0) + { + if ($kontakt->zustellung == true) + $mailadresse = $kontakt->kontakt; + elseif ($kontakt->zustellung == false) + $mailadresse = $kontakt->kontakt; + else + echo 'Es ist keine gueltige Zustelladresse für diese Person hinterlegt'; + } + else + echo 'Es ist keine Mailadresse für diese Person hinterlegt'; + + $person = new person(); + $person->load($neuzuteilung->person_id); + if($person->geschlecht=='m') + $anrede=$p->t('reihungstest/anredeMaennlich'); + else + $anrede=$p->t('reihungstest/anredeWeiblich'); + + $mail = new mail($mailadresse, 'no-reply', $p->t('reihungstest/betreff'), $p->t('reihungstest/mailtextHtml')); + $text = $p->t('reihungstest/mailtext',array($person->vorname, $person->nachname, $anrede, $mail_neuer_Termin, $mail_alte_Termine)); + $mail->setHTMLContent($text); + if(!$mail->send()) + echo 'Fehler beim senden der E-Mail: '.$db->convert_html_chars($mail->errormsg).''; + } + else + echo 'Fehler beim Laden der Daten: '.$db->convert_html_chars($load_rt_person->errormsg).''; + } +} + +?> + + + + + + + + + + + + + Reihungstest Anmeldungen + + +

    Zusammenlegen von Reihungstest-Anmeldungen

    + +"; + +// Studiensemester DropDown +echo ""; + +// Studienplan autocomplete +echo ''; +echo ''; +echo ''; +echo ""; +echo '
    '; + +if ($studienplan->bezeichnung != '') + echo '

    '.$studienplan->bezeichnung.' ('.$studienplan_id.')

    '; + +$qry = " SELECT rt_person.rt_person_id + ,rt_person.rt_id + ,ablauf.gebiet_id + ,person.person_id + ,person.nachname + ,person.vorname + ,rt_person.studienplan_id + ,stufe + ,teilgenommen + FROM PUBLIC.tbl_person person + JOIN PUBLIC.tbl_rt_person rt_person USING (person_id) + JOIN PUBLIC.tbl_reihungstest ON (rt_id = tbl_reihungstest.reihungstest_id) + JOIN testtool.tbl_ablauf ablauf ON (rt_person.studienplan_id = ablauf.studienplan_id) + WHERE EXISTS ( + SELECT rt_person_d.rt_id + ,ablauf_d.gebiet_id + ,person_d.person_id + ,person_d.nachname + ,person_d.vorname + ,rt_person_d.studienplan_id + FROM PUBLIC.tbl_person person_d + JOIN PUBLIC.tbl_rt_person rt_person_d USING (person_id) + JOIN PUBLIC.tbl_reihungstest ON (rt_id = tbl_reihungstest.reihungstest_id) + JOIN testtool.tbl_ablauf ablauf_d ON (rt_person_d.studienplan_id = ablauf_d.studienplan_id) + WHERE ablauf.gebiet_id = ablauf_d.gebiet_id + AND person.person_id = person_d.person_id + AND rt_person.rt_id <> rt_person_d.rt_id + ) + AND studiensemester_kurzbz =".$db->db_add_param($studiensemester_kurzbz); +if ($studienplan_id != '') + $qry .= " AND rt_person.studienplan_id =".$db->db_add_param($studienplan_id); + +$qry .= "ORDER BY nachname, vorname, person_id, rt_id"; + +//var_dump($gebiete_arr); +$person = 0; +$result_arr = array(); +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if ($person != $row->person_id) + $i = 0; + $reihungstest = new reihungstest(); + $reihungstest->load($row->rt_id); + $gebietbezeichnungen = array(); + $qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + + $result_arr[$row->person_id]['nachname'] = $row->nachname; + $result_arr[$row->person_id]['vorname'] = $row->vorname; + $result_arr[$row->person_id]['data'][$i] = $row; + $result_arr[$row->person_id]['data'][$i]->reihungstest_id = $reihungstest->reihungstest_id; + $result_arr[$row->person_id]['data'][$i]->anmerkung = $reihungstest->anmerkung; + $result_arr[$row->person_id]['data'][$i]->datum = $reihungstest->datum; + $result_arr[$row->person_id]['data'][$i]->uhrzeit = $reihungstest->uhrzeit; + $result_arr[$row->person_id]['data'][$i]->studiengang_kz = $reihungstest->studiengang_kz; + $result_arr[$row->person_id]['data'][$i]->ort_kurzbz = $reihungstest->ort_kurzbz; + $result_arr[$row->person_id]['data'][$i]->gebiete_bezeichnung = $gebietbezeichnungen; + $i++; + $person = $row->person_id; + } +} +//var_dump($result_arr); +$person_id = 0; +foreach ($result_arr as $key=>$value) +{ + $rt_array = array(); + foreach ($result_arr[$key]['data'] as $keyrow=>$row) + { + $rt_array[] = $row->rt_id; + } + $rt_array = array_unique($rt_array); + if (count($rt_array)>1) + { + echo '

    '.$result_arr[$key]['nachname'].' '.$result_arr[$key]['vorname'].' ('.$key.')

    '; + echo '
    '; + echo ''; + echo ''; + echo ''; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + foreach ($result_arr[$key]['data'] as $keyrow=>$row) + { + $studienplan = new studienplan(); + $studienplan->loadStudienplan($row->studienplan_id); + + echo ""; + + echo ''; + echo ''; + echo ''; + echo ""; + echo ''; + echo '';; + echo ''; + echo ""; + $person_id = $row->person_id; + $i++; + } + echo "
    BehaltenNeu ZuteilenReihungstestStufeGebietStudienplanTeilgenommen
    #'.$row->rt_id.' - '.$datum_obj->formatDatum($row->datum,'d.m.Y').', '.$datum_obj->formatDatum($row->uhrzeit,'H:i').' - '.$studiengang->kuerzel_arr[$row->studiengang_kz].' '.$db->convert_html_chars($row->anmerkung).'$row->stufe'; + $i = 0; + foreach ($row->gebiete_bezeichnung as $key=>$value) + { + echo ($i>0?', ':''); + echo ($row->gebiet_id == $key?''.$value.'':$value); + $i++; + } + echo ''.$studienplan->bezeichnung.' ('.$row->studienplan_id.')'.($row->teilgenommen=='t'?'Ja':'Nein').'
    "; + echo ''; + echo ''; + echo ''; + echo "
    "; + } +} + +?> + + + +