CIS Notenimport aus Excel bricht nun nicht mehr ab, wenn ein Abbrecher in der Liste vorhanden ist

This commit is contained in:
Andreas Österreicher
2009-06-22 14:58:37 +00:00
parent ab2238851c
commit 3f4475b6ed
5 changed files with 74 additions and 48 deletions
@@ -113,7 +113,7 @@ function savenote($lvid, $student_uid, $note)
{
$student = new student($conn);
$student->load($student_uid);
die('Der Student '.$student->nachname.' '.$student->vorname.' ('.trim($student->matrikelnr).') ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen');
return 'Der Student '.$student->nachname.' '.$student->vorname.' ('.trim($student->matrikelnr).') ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!'."\n";
}
$lvgesamtnote = new lvgesamtnote($conn);
@@ -41,6 +41,8 @@ require_once('../../../../include/mitarbeiter.class.php');
require_once('../../../../include/moodle_course.class.php');
require_once('../../../../include/mail.class.php');
$lvid=(isset($_GET['lvid'])?$_GET['lvid']:'');
$stsem=(isset($_GET['stsem'])?$_GET['stsem']:'');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
+11 -18
View File
@@ -20,20 +20,18 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur DB');
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
$rechte = new benutzerberechtigung($conn);
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen(get_uid());
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
@@ -46,12 +44,11 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
</head>
<body>';
echo "<h2>Abgängerstatistik $stsem";
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '</h2>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">Studiensemester: <SELECT name="stsem">';
$studsem = new studiensemester($conn);
$studsem = new studiensemester();
$studsem->getAll();
foreach ($studsem->studiensemester as $stsemester)
@@ -68,9 +65,6 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
if($stsem!='')
{
$stgs = $rechte->getStgKz();
if($stgs[0]=='')
@@ -80,24 +74,23 @@ if($stsem!='')
$stgwhere=' AND studiengang_kz in(';
foreach ($stgs as $stg)
$stgwhere.="'$stg',";
$stgwhere = substr($stgwhere,0, strlen($stgwhere)-1);
$stgwhere = mb_substr($stgwhere,0, mb_strlen($stgwhere)-1);
$stgwhere.=' )';
}
// SELECT count(*) FROM public.tbl_prestudent WHERE studiengang_kz=stg.studiengang_kz) AS prestd,
$qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND studiensemester_kurzbz='$stsem'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND studiensemester_kurzbz='".addslashes($stsem)."'
) AS abgewiesener,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND studiensemester_kurzbz='$stsem'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."'
) AS abbrecher,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND studiensemester_kurzbz='$stsem'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."'
) AS unterbrecher,
(SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id)
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='$stsem'
WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."'
) AS absolvent
FROM
public.tbl_studiengang stg
@@ -105,7 +98,7 @@ if($stsem!='')
studiengang_kz>0 AND studiengang_kz<10000 AND aktiv $stgwhere
ORDER BY kurzbzlang; ";
if($result = pg_query($conn, $qry))
if($db->db_query($qry))
{
echo "<table class='liste table-autosort:0 table-stripeclass:alternate table-autostripe'>
<thead>
@@ -120,7 +113,7 @@ if($stsem!='')
<tbody>
";
while($row = pg_fetch_object($result))
while($row = $db->db_fetch_object())
{
echo '<tr>';
echo "<td>".strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)</td>";
@@ -24,19 +24,24 @@
* Die zu exportierenden Spalten werden per GET uebergeben.
* Die Adressen werden immer dazugehaengt
*/
require_once('../../vilesci/config.inc.php');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/datum.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/Excel/excel.php');
// Datenbank Verbindung
if (!$conn = pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!';
$db = new basis_db();
$user = get_uid();
$datum_obj = new datum();
loadVariables($conn, $user);
loadVariables($user);
function writecol($zeile, $i, $content)
{
global $worksheet, $maxlength;
$worksheet->write($zeile, $i, $content);
if(mb_strlen($content)>$maxlength[$i])
$maxlength[$i]=mb_strlen($content);
}
//Parameter holen
$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:'';
@@ -51,10 +56,11 @@ loadVariables($conn, $user);
// sending HTTP headers
$workbook->send("Abschlusspruefung". "_" . date("d_m_Y") . ".xls");
$workbook->setVersion(8);
// Creating a worksheet
$worksheet =& $workbook->addWorksheet("Abschlusspruefung");
$worksheet->setInputEncoding('utf-8');
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
@@ -63,7 +69,7 @@ loadVariables($conn, $user);
// let's merge
$format_title->setAlign('merge');
$stsem = new studiensemester($conn);
$stsem = new studiensemester();
$stsem->load($studiensemester_kurzbz);
//Zeilenueberschriften ausgeben
@@ -74,17 +80,17 @@ loadVariables($conn, $user);
foreach ($headline as $title)
{
$worksheet->write(0,$i,$title, $format_bold);
$maxlength[$i]=strlen($title);
$maxlength[$i]=mb_strlen($title);
$i++;
}
// Daten holen
$qry = "SELECT
titelpre, vorname, nachname, titelpost,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz),
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1),
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2),
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3),
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz) as vorsitz,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2,
(SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3,
(SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz=tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung, tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung
FROM
lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person,
@@ -97,36 +103,39 @@ loadVariables($conn, $user);
tbl_person.person_id = tbl_benutzer.person_id AND
tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz
ORDER BY nachname, vorname";
//tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz = tbl_abschlusspruefung.abschlussbeurteilung_kurzbz AND
//AND datum>='".$stsem->start."' AND datum<='".$stsem->ende."'";
if($semester!='')
$qry.= " AND tbl_studentlehrverband.semester='".addslashes($semester)."'";
$zeile=1;
if($result = pg_query($conn, $qry))
if($db->db_query($qry))
{
while($row = pg_fetch_array($result))
while($row = $db->db_fetch_object())
{
$i=0;
foreach ($row as $idx=>$content)
{
if(is_numeric($idx))
{
$worksheet->write($zeile, $i, $content);
if(strlen($content)>$maxlength[$i])
$maxlength[$i]=strlen($content);
$i++;
}
}
writecol($zeile, $i++, $row->titelpre);
writecol($zeile, $i++, $row->vorname);
writecol($zeile, $i++, $row->nachname);
writecol($zeile, $i++, $row->titelpost);
writecol($zeile, $i++, $row->vorsitz);
writecol($zeile, $i++, $row->pruefer1);
writecol($zeile, $i++, $row->pruefer2);
writecol($zeile, $i++, $row->pruefer3);
writecol($zeile, $i++, $row->bezeichnung);
writecol($zeile, $i++, $row->beschreibung);
writecol($zeile, $i++, $row->datum);
writecol($zeile, $i++, $row->sponsion);
writecol($zeile, $i++, $row->anmerkung);
$zeile++;
}
}
else
die('Fehler in Qry: '.$qry);
//Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2);
$workbook->close();
?>
+22
View File
@@ -47,6 +47,28 @@ if(!$result = @pg_query($conn, "SELECT * FROM public.tbl_status LIMIT 1;"))
UPDATE pg_catalog.pg_constraint SET conname='prestudent_prestudentstatus' WHERE conname='prestudent_prestudentrolle';
UPDATE pg_catalog.pg_constraint SET conname='status_prestudentstatus' WHERE conname='rolle_prestudentrolle';
UPDATE pg_catalog.pg_constraint SET conname='studiensemester_prestudentstatus' WHERE conname='studiensemester_prestudentrolle';
CREATE OR REPLACE FUNCTION get_rolle_prestudent (integer, character varying) returns character varying
DECLARE i_prestudent_id ALIAS FOR $1;
DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
DECLARE rec RECORD;
BEGIN
IF (cv_studiensemester_kurzbz IS NULL) THEN
SELECT INTO rec status_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
ELSE
SELECT INTO rec status_kurzbz
FROM tbl_prestudentstatus
WHERE prestudent_id=i_prestudent_id AND studiensemester_kurzbz=cv_studiensemester_kurzbz
ORDER BY datum desc,insertamum desc, ext_id desc
LIMIT 1;
END IF;
RETURN rec.status_kurzbz;
END;
";
if(!pg_query($conn, $qry))