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 '";
+ }
+}
+
+?>
+
+
+
+