This commit is contained in:
Andreas Moik
2016-08-11 14:10:15 +02:00
5 changed files with 647 additions and 140 deletions
+42
View File
@@ -454,6 +454,48 @@ class reihungstest extends basis_db
return true;
}
/**
* Laedt den Reihungstest-Person-Datensatz mit der ID $rt_person_id
* @param integer $rt_person_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
public function loadReihungstestPerson($rt_person_id)
{
if(!is_numeric($rt_person_id))
{
$this->errormsg = 'rt_person_id ist ungueltig';
return false;
}
$qry = "SELECT * FROM public.tbl_rt_person WHERE rt_person_id=".$this->db_add_param($rt_person_id, FHC_INTEGER, false);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->rt_person_id = $row->rt_person_id;
$this->rt_id = $row->rt_id;
$this->person_id = $row->person_id;
$this->studienplan_id = $row->studienplan_id;
$this->anmeldedatum = $row->anmeldedatum;
$this->teilgenommen = $this->db_parse_bool($row->teilgenommen);
$this->ort_kurzbz = $row->ort_kurzbz;
$this->punkte = $row->punkte;
return true;
}
else
{
$this->errormsg = 'Eintrag nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des rt_person_id Datensatzes';
return false;
}
}
public function getReihungstestPerson($person_id)
{
$qry = "SELECT
+21
View File
@@ -0,0 +1,21 @@
<?php
$this->phrasen['reihungstest/anredeMaennlich']='geehrter Herr';
$this->phrasen['reihungstest/anredeWeiblich']='geehrte Frau';
$this->phrasen['reihungstest/mailtextHtml']='Bitte sehen Sie sich die Nachricht in der HTML-Ansicht an um den Link vollständig darzustellen.';
$this->phrasen['reihungstest/mailtext']='Sehr %3$s %1$s %2$s!<br><br>
Der für Ihre Bewerbung benötigte Aufnahmetest ist im gewählten Termin %4$s bereits enthalten. Ihre Anmeldung(en) für<br>
<ul>
%5$s
</ul>
ist/sind somit hinfällig und wurde/n storniert.<br>
Bitte finden Sie sich zum Termin <b>%4$s</b> zum Aufnahmetest ein.
<br><br>
Mit freundlichen Grüßen, <br>
FH Technikum Wien';
$this->phrasen['reihungstest/betreff']='Wichtige Informationen zu Ihrer Bewerbung';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
?>
+21
View File
@@ -0,0 +1,21 @@
<?php
$this->phrasen['reihungstest/anredeMaennlich']='Mr';
$this->phrasen['reihungstest/anredeWeiblich']='Ms';
$this->phrasen['reihungstest/mailtextHtml']='Please look at the message in the HTML view, in order to display the link fully.';
$this->phrasen['reihungstest/mailtext']='Dear %3$s %1$s %2$s!<br><br>
Der für Ihre Bewerbung benötigte Aufnahmetest ist im gewählten Termin %4$s bereits enthalten. Ihre Anmeldung(en) für<br>
<ul>
%5$s
</ul>
ist/sind somit hinfällig und wurde/n storniert.<br>
Bitte finden Sie sich zum Termin <b>%4$s</b> zum Aufnahmetest ein.
<br><br>
Mit freundlichen Grüßen, <br>
UAS Technikum Wien';
$this->phrasen['reihungstest/betreff']='Wichtige Informationen zu Ihrer Bewerbung';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
$this->phrasen['reihungstest/text']='';
?>
@@ -0,0 +1,372 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Manfred Kindl < manfred.kindl@technikum-wien.at >
*/
/**
* 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 '<span class="input_error">Fehler beim Speichern der Daten: '.$db->convert_html_chars($neuzuteilung->errormsg).'</span>';
}
else
{
$rt_termin = new reihungstest($id_alt);
$mail_alte_Termine .= '<li>'.$datum_obj->formatDatum($rt_termin->datum, 'd.m.Y').', '.$datum_obj->formatDatum($rt_termin->uhrzeit,'H:i').'</li>';
}
}
}
$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 '<span class="input_error">Es ist keine gueltige Zustelladresse für diese Person hinterlegt</span>';
}
else
echo '<span class="input_error">Es ist keine Mailadresse für diese Person hinterlegt</span>';
$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 '<span class="input_error">Fehler beim senden der E-Mail: '.$db->convert_html_chars($mail->errormsg).'</span>';
}
else
echo '<span class="input_error">Fehler beim Laden der Daten: '.$db->convert_html_chars($load_rt_person->errormsg).'</span>';
}
}
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../../skin/fhcomplete.css" rel="stylesheet" type="text/css">
<link href="../../skin/vilesci.css" rel="stylesheet" type="text/css">
<link href="../../skin/jquery.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../include/js/jquery1.9.min.js"></script>
<link href="../../skin/tablesort.css" rel="stylesheet" type="text/css"/>
<link href="../../skin/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css">
<script src="../../include/js/jquery1.9.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".tablesorter").each(function(i,v)
{
$("#"+v.id).tablesorter(
{
widgets: ["zebra"],
sortList: [[2,0]],
headers: {0: { sorter: false},1: { sorter: false}}
});
});
$("#studienplan_autocomplete").autocomplete({
source: "reihungstestverwaltung_autocomplete.php?autocomplete=studienplan",
minLength:2,
response: function(event, ui)
{
//Value und Label fuer die Anzeige setzen
for(i in ui.content)
{
ui.content[i].value=ui.content[i].bezeichnung+' ('+ui.content[i].studienplan_id+')';
ui.content[i].label=ui.content[i].bezeichnung+' ('+ui.content[i].studienplan_id+')';
}
},
select: function(event, ui)
{
//Ausgewaehlte Ressource zuweisen und Textfeld wieder leeren
$("#studienplan_id").val(ui.item.studienplan_id);
}
});
});
function disable(id,person)
{
var checkboxes = document.getElementsByClassName('checkbox_'+person);
if (document.getElementById('radio_'+id).checked == true)
{
document.getElementsByClassName('checkbox_'+person).disabled = false;
for (var i=0, iLen=checkboxes.length; i<iLen; i++)
{
checkboxes[i].disabled = false;
}
if (document.getElementById('checkbox_'+id).checked == true)
document.getElementById('checkbox_'+id).checked= false;
document.getElementById('checkbox_'+id).disabled = true;
}
else
document.getElementById('checkbox_'+id).disabled = false;
}
</script>
<title>Reihungstest Anmeldungen</title>
</head>
<body>
<H1>Zusammenlegen von Reihungstest-Anmeldungen</H1>
<?php
echo "<form name='auswahl' action='reihungstest_zusammenlegung.php' method='GET'>";
// Studiensemester DropDown
echo "<SELECT name='studiensemester_kurzbz' onchange='this.form.submit()'>";
echo "<OPTION value='".$_SERVER['PHP_SELF']."?studiensemester_kurzbz='>Alle Studiensemester</OPTION>";
foreach ($studiensemester->studiensemester as $row)
{
if($row->studiensemester_kurzbz == $studiensemester_kurzbz)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$row->studiensemester_kurzbz.'" '.$selected.'>'.$db->convert_html_chars($row->studiensemester_kurzbz).'</OPTION>'.'\n';
}
echo "</SELECT>";
// Studienplan autocomplete
echo '<input id="studienplan_id" type="hidden" name="studienplan_id" value="'.$studienplan_id.'">';
echo '<input style="padding-left: 3px; margin-left: 5px;" id="studienplan_autocomplete" type="text" size="40" placeholder="Studienplan" value="'.$studienplan->bezeichnung.'">';
echo '<button type="submit">Anzeigen</button>';
echo "</form>";
echo '<br>';
if ($studienplan->bezeichnung != '')
echo '<h2>'.$studienplan->bezeichnung.' ('.$studienplan_id.')</h2>';
$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 '<h3>'.$result_arr[$key]['nachname'].' '.$result_arr[$key]['vorname'].' ('.$key.')</h3>';
echo '<form name="form_table" action="reihungstest_zusammenlegung.php?studiensemester_kurzbz='.$db->convert_html_chars($studiensemester_kurzbz).'" method="POST">';
echo '<table id="t'.$key.'" class="tablesorter"><thead><tr>';
echo '<th style="width: 1%; text-align: center">Behalten</th>';
echo '<th style="width: 1%; text-align: center">Neu Zuteilen</th>';
echo "<th>Reihungstest</th>";
echo "<th>Stufe</th>";
echo "<th>Gebiet</th>";
echo "<th>Studienplan</th>";
echo "<th>Teilgenommen</th>";
echo "</tr></thead><tbody>";
foreach ($result_arr[$key]['data'] as $keyrow=>$row)
{
$studienplan = new studienplan();
$studienplan->loadStudienplan($row->studienplan_id);
echo "<tr>";
echo '<td style="text-align: center"><input type="radio" name="radio" value="'.$row->rt_person_id.'" onclick="disable(\''.$row->rt_person_id.'\',\''.$row->person_id.'\')" id="radio_'.$row->rt_person_id.'"></td>';
echo '<td style="text-align: center"><input type="checkbox" class="checkbox_'.$row->person_id.'" name="checkbox[]" value="'.$row->rt_person_id.'" id="checkbox_'.$row->rt_person_id.'" disabled></td>';
echo '<td title="'.$row->datum.'"><b>#'.$row->rt_id.'</b> - <i>'.$datum_obj->formatDatum($row->datum,'d.m.Y').', '.$datum_obj->formatDatum($row->uhrzeit,'H:i').'</i> - '.$studiengang->kuerzel_arr[$row->studiengang_kz].' '.$db->convert_html_chars($row->anmerkung).'</td>';
echo "<td>$row->stufe</td>";
echo '<td>';
$i = 0;
foreach ($row->gebiete_bezeichnung as $key=>$value)
{
echo ($i>0?', ':'');
echo ($row->gebiet_id == $key?'<b>'.$value.'</b>':$value);
$i++;
}
echo '</td>';
echo '<td>'.$studienplan->bezeichnung.' ('.$row->studienplan_id.')</td>';;
echo '<td>'.($row->teilgenommen=='t'?'Ja':'Nein').'</td>';
echo "</tr>";
$person_id = $row->person_id;
$i++;
}
echo "</tbody></table>";
echo '<input type="hidden" name="zusammenlegen" value="zusammenlegen">';
echo '<input type="hidden" name="studienplan_id" value="'.$studienplan_id.'">';
echo '<button type="submit">Markierte Anmeldungen neu zuteilen und Mail an BewerberIn verschicken</button>';
echo "</form>";
}
}
?>
</tr>
</table>
</body>
</html>
+191 -140
View File
@@ -50,7 +50,7 @@ require_once('../../include/studienplan.class.php');
require_once('../../include/sprache.class.php');
require_once('../../include/organisationsform.class.php');
// @todo Allgemein: Beim kopierenauch die Studienplanzuordnungen übernehmen
// @todo Allgemein: Beim kopieren auch die Studienplanzuordnungen übernehmen
// "Teilgenommen" und "Punkte" werden immer mit false bzw. 0 gespeichert
define('REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND', '5');
@@ -78,7 +78,7 @@ $error = false;
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
/*
if ($reihungstest_id != '' || isset($_POST['reihungstest_id']))
{
if ($reihungstest_id != '')
@@ -95,7 +95,7 @@ if ($reihungstest_id != '' || isset($_POST['reihungstest_id']))
}
else
$studiensemester_kurzbz = $stsem_akt;
}
}*/
if ($stg_kz == '' && ($reihungstest_id != '' || isset($_POST['reihungstest_id'])))
{
@@ -150,7 +150,68 @@ if(isset($_GET['excel']))
$reihungstest = new reihungstest();
if($reihungstest->load($_GET['reihungstest_id']))
{
$qry = "SELECT
$studienplaene_arr = array();
$studienplaene = new reihungstest();
$studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id);
foreach ($studienplaene->result AS $row)
{
$studienplan = new studienplan();
$studienplan->loadStudienplan($row->studienplan_id);
$studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung;
}
$studienplaene_list = implode(',', array_keys($studienplaene_arr));
$qry = "
SELECT
rt_id,
prestudent_id,
tbl_rt_person.person_id,
vorname,
nachname,
ort_kurzbz,
studienplan_id,
studiengang_kz,
gebdatum,
geschlecht,
rt_punkte1
,(
SELECT kontakt
FROM tbl_kontakt
WHERE kontakttyp = 'email'
AND person_id = tbl_rt_person.person_id
AND zustellung = true LIMIT 1
) AS email
,(
SELECT ausbildungssemester
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS ausbildungssemester
,(
SELECT orgform_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
FROM public.tbl_rt_person
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id AND tbl_rt_person.rt_id=tbl_prestudent.reihungstest_id)
WHERE rt_id = ".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)."
AND tbl_rt_person.studienplan_id IN (".$studienplaene_list.")
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname
/*
SELECT
prestudent_id,
person_id,
vorname,
@@ -193,13 +254,23 @@ if(isset($_GET['excel']))
FROM public.tbl_prestudent
JOIN public.tbl_person USING (person_id)
WHERE reihungstest_id = ".$db->db_add_param($reihungstest->reihungstest_id, FHC_INTEGER)."
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname ";
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname */";
$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;
}
}
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
$workbook->setVersion(8);
// sending HTTP headers
$workbook->send("Anwesenheitsliste_Reihungstest_".$reihungstest->datum.".xls");
$workbook->send("Anwesenheitsliste_Aufnahmetermin_".$reihungstest->datum.".xls");
//Formate Definieren
$format_bold =& $workbook->addFormat();
@@ -207,6 +278,14 @@ if(isset($_GET['excel']))
$format_border =& $workbook->addFormat();
$format_border->setBorder(1);
$format_border->setTextWrap();
$format_border->setVAlign ('top');
$format_border_center =& $workbook->addFormat();
$format_border_center->setBorder(1);
$format_border_center->setTextWrap();
$format_border_center->setVAlign ('top');
$format_border_center->setHAlign ('center');
if($result = $db->db_query($qry))
{
@@ -230,38 +309,49 @@ if(isset($_GET['excel']))
$worksheet->setMargins_LR (0.4);
$worksheet->setMarginTop (0.79);
$worksheet->setMarginBottom (0.59);
// Titelzeilen
$worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold);
if ($row->ort_kurzbz=='')
$worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold);
else
$worksheet->write(1,0,'Raum '.$row->ort_kurzbz, $format_bold);
$worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr));
$worksheet->write(3,0,'Stufe: '.$reihungstest->stufe);
$worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen));
$worksheet->write(0,0,'Anwesenheitsliste Reihungstest '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold);
//Ueberschriften
$zeile=6;
$col=0;
$worksheet->write(2,$col,"Vorname", $format_bold);
$worksheet->write($zeile,$col,"Vorname", $format_bold);
$maxlength[$col] = 7;
$worksheet->write(2,++$col,"Nachname", $format_bold);
$worksheet->write($zeile,++$col,"Nachname", $format_bold);
$maxlength[$col] = 8;
$worksheet->write(2,++$col,"Geschlecht", $format_bold);
$maxlength[$col] = 8;
$worksheet->write(2,++$col,"Geburtsdatum", $format_bold);
$worksheet->write($zeile,++$col,"G", $format_bold);
$maxlength[$col] = 2;
$worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold);
$maxlength[$col] = 12;
$worksheet->write(2,++$col,"Studiengang", $format_bold);
$worksheet->write($zeile,++$col,"Studiengang", $format_bold);
$maxlength[$col] = 11;
$worksheet->write(2,++$col,"Bereits absolvierte RTs", $format_bold);
$maxlength[$col] = 18;
$worksheet->write(2,++$col,"EMail", $format_bold);
$worksheet->write($zeile,++$col,"S", $format_bold);
$maxlength[$col] = 2;
$worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold);
$maxlength[$col] = 20;
$worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold);
$maxlength[$col] = 20;
$worksheet->write($zeile,++$col,"EMail", $format_bold);
$maxlength[$col] = 5;
$worksheet->write(2,++$col,"Einstiegssemester", $format_bold);
$maxlength[$col] = 15;
$worksheet->write(2,++$col,"Strasse", $format_bold);
$worksheet->write($zeile,++$col,"Strasse", $format_bold);
$maxlength[$col] = 6;
$worksheet->write(2,++$col,"PLZ", $format_bold);
$worksheet->write($zeile,++$col,"PLZ", $format_bold);
$maxlength[$col] = 3;
$worksheet->write(2,++$col,"Ort", $format_bold);
$worksheet->write($zeile,++$col,"Ort", $format_bold);
$maxlength[$col] = 3;
$worksheet->write(2,++$col,"Unterschrift", $format_bold);
$worksheet->write($zeile,++$col,"Unterschrift", $format_bold);
$maxlength[$col] = 30;
$ort_kurzbz = $row->ort_kurzbz;
$zeile=3;
$zeile++;
}
$pruefling = new pruefling();
@@ -287,63 +377,106 @@ if(isset($_GET['excel']))
}
}
}
$weitere_zuteilungen = array();
/*$qry_zuteilungen = "SELECT DISTINCT tbl_studienplan.bezeichnung,tbl_reihungstest.datum,tbl_rt_person.studienplan_id
FROM public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
JOIN lehre.tbl_studienplan USING (studienplan_id)
JOIN testtool.tbl_ablauf USING (studienplan_id)
WHERE person_id=62563
AND studiensemester_kurzbz='SS2017'
ORDER BY bezeichnung";*/
$qry_zuteilungen = "SELECT DISTINCT tbl_studienplan.bezeichnung,tbl_reihungstest.datum,tbl_rt_person.studienplan_id
FROM public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id)
JOIN lehre.tbl_studienplan USING (studienplan_id)
JOIN testtool.tbl_ablauf USING (studienplan_id)
WHERE person_id=".$db->db_add_param($row->person_id)."
AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)."
ORDER BY bezeichnung";
if($result_zuteilungen = $db->db_query($qry_zuteilungen))
{
while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen))
{
$testmodule = array();
$qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung";
if($result_gebiete = $db->db_query($qry_gebiete))
{
while($row_gebiete = $db->db_fetch_object($result_gebiete))
{
$testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung;
}
}
$weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')';
}
}
$col=0;
$worksheet->write($zeile,$col, $row->vorname, $format_border);
if(strlen($row->vorname)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->vorname);
$maxlength[$col] = strlen($row->vorname);
$worksheet->write($zeile,++$col,$row->nachname, $format_border);
if(strlen($row->nachname)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->nachname);
$maxlength[$col] = strlen($row->nachname);
$worksheet->write($zeile,++$col, $row->geschlecht, $format_border);
$worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center);
if(strlen($row->geschlecht)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->geschlecht);
$maxlength[$col] = strlen($row->geschlecht);
$worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border);
if(strlen($row->gebdatum)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->gebdatum);
$maxlength[$col] = strlen($row->gebdatum);
$worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border);
if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col])
$maxlength[$col] = mb_strlen($studiengang->kuerzel_arr[$row->studiengang_kz]);
$maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]);
$worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center);
if(strlen($row->ausbildungssemester)>$maxlength[$col])
$maxlength[$col] = strlen($row->ausbildungssemester);
$worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border);
if(strlen($rt_in_anderen_stg)>$maxlength[$col])
$maxlength[$col] = mb_strlen($rt_in_anderen_stg);
$maxlength[$col] = strlen($rt_in_anderen_stg);
$worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border);
foreach ($weitere_zuteilungen as $items)
{
if (strlen($items)>$maxlength[$col])
$maxlength[$col] = strlen($items);
}
$worksheet->write($zeile,++$col,$row->email, $format_border);
if(strlen($row->email)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->email);
$worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border);
if(strlen($row->ausbildungssemester)>$maxlength[$col])
$maxlength[$col] = mb_strlen($row->ausbildungssemester);
$maxlength[$col] = strlen($row->email);
$adresse = new adresse();
$adresse->loadZustellAdresse($row->person_id);
$worksheet->write($zeile,++$col,$adresse->strasse, $format_border);
if(strlen($adresse->strasse)>$maxlength[$col])
$maxlength[$col] = mb_strlen($adresse->strasse);
$maxlength[$col] = strlen($adresse->strasse);
$worksheet->write($zeile,++$col,$adresse->plz, $format_border);
if(strlen($adresse->plz)>$maxlength[$col])
$maxlength[$col] = mb_strlen($adresse->plz);
$maxlength[$col] = strlen($adresse->plz);
$worksheet->write($zeile,++$col,$adresse->ort, $format_border);
if(strlen($adresse->ort)>$maxlength[$col])
$maxlength[$col] = mb_strlen($adresse->ort);
$maxlength[$col] = strlen($adresse->ort);
$worksheet->write($zeile,++$col,'', $format_border);
$worksheet->setRow($zeile, 35);
if(count($weitere_zuteilungen)>2)
$worksheet->setRow($zeile, count($weitere_zuteilungen)*14);
else
$worksheet->setRow($zeile, 35);
$zeile++;
//Die Breite der Spalten setzen
foreach($maxlength as $col=>$breite)
$worksheet->setColumn($col, $col, $breite+2);
$zeile++;
}
}
$workbook->close();
@@ -444,101 +577,17 @@ if(isset($_GET['excel']))
if (typeof(Storage) !== 'undefined')
{
if (localStorage.getItem('clm_prestudent_id') != null)
let arr = ['clm_prestudent_id','clm_person_id','clm_geschlecht','clm_studiengang','clm_studienplan','clm_orgform','clm_einstiegssemester','clm_geburtsdatum','clm_email','clm_absolviert','clm_ergebnis','clm_fas'];
for (let i of arr)
{
$('.clm_prestudent_id').css('display', localStorage.getItem('clm_prestudent_id'));
if (localStorage.getItem('clm_prestudent_id') == 'none')
document.getElementById('clm_prestudent_id').className = 'inactive';
else
document.getElementById('clm_prestudent_id').className = 'active';
}
if (localStorage.getItem('clm_person_id') != null)
{
$('.clm_person_id').css('display', localStorage.getItem('clm_person_id'));
if (localStorage.getItem('clm_person_id') == 'none')
document.getElementById('clm_person_id').className = 'inactive';
else
document.getElementById('clm_person_id').className = 'active';
}
if (localStorage.getItem('clm_geschlecht') != null)
{
$('.clm_geschlecht').css('display', localStorage.getItem('clm_geschlecht'));
if (localStorage.getItem('clm_geschlecht') == 'none')
document.getElementById('clm_geschlecht').className = 'inactive';
else
document.getElementById('clm_geschlecht').className = 'active';
}
if (localStorage.getItem('clm_studiengang') != null)
{
$('.clm_studiengang').css('display', localStorage.getItem('clm_studiengang'));
if (localStorage.getItem('clm_studiengang') == 'none')
document.getElementById('clm_studiengang').className = 'inactive';
else
document.getElementById('clm_studiengang').className = 'active';
}
if (localStorage.getItem('clm_studienplan') != null)
{
$('.clm_studienplan').css('display', localStorage.getItem('clm_studienplan'));
if (localStorage.getItem('clm_studienplan') == 'none')
document.getElementById('clm_studienplan').className = 'inactive';
else
document.getElementById('clm_studienplan').className = 'active';
}
if (localStorage.getItem('clm_orgform') != null)
{
$('.clm_orgform').css('display', localStorage.getItem('clm_orgform'));
if (localStorage.getItem('clm_orgform') == 'none')
document.getElementById('clm_orgform').className = 'inactive';
else
document.getElementById('clm_orgform').className = 'active';
}
if (localStorage.getItem('clm_einstiegssemester') != null)
{
$('.clm_einstiegssemester').css('display', localStorage.getItem('clm_einstiegssemester'));
if (localStorage.getItem('clm_einstiegssemester') == 'none')
document.getElementById('clm_einstiegssemester').className = 'inactive';
else
document.getElementById('clm_einstiegssemester').className = 'active';
}
if (localStorage.getItem('clm_geburtsdatum') != null)
{
$('.clm_geburtsdatum').css('display', localStorage.getItem('clm_geburtsdatum'));
if (localStorage.getItem('clm_geburtsdatum') == 'none')
document.getElementById('clm_geburtsdatum').className = 'inactive';
else
document.getElementById('clm_geburtsdatum').className = 'active';
}
if (localStorage.getItem('clm_email') != null)
{
$('.clm_email').css('display', localStorage.getItem('clm_email'));
if (localStorage.getItem('clm_email') == 'none')
document.getElementById('clm_email').className = 'inactive';
else
document.getElementById('clm_email').className = 'active';
}
if (localStorage.getItem('clm_absolviert') != null)
{
$('.clm_absolviert').css('display', localStorage.getItem('clm_absolviert'));
if (localStorage.getItem('clm_absolviert') == 'none')
document.getElementById('clm_absolviert').className = 'inactive';
else
document.getElementById('clm_absolviert').className = 'active';
}
if (localStorage.getItem('clm_ergebnis') != null)
{
$('.clm_ergebnis').css('display', localStorage.getItem('clm_ergebnis'));
if (localStorage.getItem('clm_ergebnis') == 'none')
document.getElementById('clm_ergebnis').className = 'inactive';
else
document.getElementById('clm_ergebnis').className = 'active';
}
if (localStorage.getItem('clm_fas') != null)
{
$('.clm_fas').css('display', localStorage.getItem('clm_fas'));
if (localStorage.getItem('clm_fas') == 'none')
document.getElementById('clm_fas').className = 'inactive';
else
document.getElementById('clm_fas').className = 'active';
if (localStorage.getItem(i) != null)
{
$('.'+i).css('display', localStorage.getItem(i));
if (localStorage.getItem(i) == 'none')
document.getElementById(i).className = 'inactive';
else
document.getElementById(i).className = 'active';
}
}
}
else
@@ -1814,9 +1863,11 @@ rt_punkte1
FROM public.tbl_rt_person
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id AND tbl_rt_person.rt_id=tbl_prestudent.reihungstest_id)
WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
AND tbl_rt_person.studienplan_id IN (".$studienplaene_list.")
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname
WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER);
if ($studienplaene_list != '')
$qry .= "AND tbl_rt_person.studienplan_id IN (".$studienplaene_list.")";
$qry .= "ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname
/*
SELECT