Mlists generierung an neue DBKlasse angepasst

This commit is contained in:
Andreas Österreicher
2009-06-24 14:05:46 +00:00
parent 95d9a586f9
commit 4c315606f7
5 changed files with 260 additions and 221 deletions
+32 -8
View File
@@ -1,22 +1,46 @@
<?php
/*
$xml = file_get_contents('/path/to/your/xmlfile.xml');
$xsl = file_get_contenst('/path/to/your/xslfile.xsl');
$fop = new fop();
$pdf_filename = $fop->create_pdf($xml, $xsl);
/* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Erstellt ein PDF mithilfe Apache FOP
*
* $xml = file_get_contents('/path/to/your/xmlfile.xml');
* $xsl = file_get_contenst('/path/to/your/xslfile.xsl');
* $fop = new fop();
* $pdf_filename = $fop->create_pdf($xml, $xsl);
*/
class fop
{
var $xml;
var $xsl;
function fop()
/**
* Konstruktor
*/
public function __construct()
{
//Apache FOP
}
function generatePdf($xml, $xsl, $filename, $destination)
public function generatePdf($xml, $xsl, $filename, $destination)
{
$tmppdf = tempnam('/tmp', 'FAS_FOP');
+4 -4
View File
@@ -331,10 +331,10 @@ function draw_orgformsubmenu($stg_kz, $orgform)
echo '
<RDF:Description RDF:about="'.$rdf_url.$stg_kurzbz.'/'.$orgform.'/'.$row->semester.'/'.$row->gruppe_kurzbz.'">
<VERBAND:name>'.$row->gruppe_kurzbz.' ('.$row->bezeichnung.')</VERBAND:name>
<VERBAND:stg><?php echo $stg_kurzbz; ?></VERBAND:stg>
<VERBAND:stg_kz><?php echo $row->studiengang_kz; ?></VERBAND:stg_kz>
<VERBAND:sem><?php echo $row->semester; ?></VERBAND:sem>
<VERBAND:gruppe><?php echo $row->gruppe_kurzbz; ?></VERBAND:gruppe>
<VERBAND:stg>'.$stg_kurzbz.'</VERBAND:stg>
<VERBAND:stg_kz>'.$stg_kz.'</VERBAND:stg_kz>
<VERBAND:sem>'.$row->semester.'</VERBAND:sem>
<VERBAND:gruppe>'.$row->gruppe_kurzbz.'</VERBAND:gruppe>
<VERBAND:orgform>'.$orgform.'</VERBAND:orgform>
</RDF:Description>
';
+44 -26
View File
@@ -1,21 +1,40 @@
<?php
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
/* Copyright (C) 2008 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../vilesci/config.inc.php');
/**
* Gerneriert die Textfiles fuer die Mailverteiler
* der Gruppen und das Textfile fuer die Aliase
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/globals.inc.php');
require_once('../../include/studiensemester.class.php');
if (!$conn = pg_pconnect(CONN_STRING))
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
if(!($result_stg=pg_query($conn, "SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC")))
die(pg_errormessage($conn));
$num_rows=pg_num_rows($result_stg);
$ss=new studiensemester($conn);
$db = new basis_db();
if(!($result_stg = $db->db_query("SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC")))
die($db->db_last_error());
$num_rows=$db->db_num_rows($result_stg);
$ss=new studiensemester();
$ss_nearest=$ss->getNearest();
?>
<HTML>
<HEAD>
@@ -27,7 +46,6 @@
<BODY class="background_main">
<H3>MailingListen </H3>
<?php
$crlf="\n";
for ($i=0; $i<$num_rows; $i++)
@@ -35,36 +53,36 @@
$row=pg_fetch_object($result_stg);
$stg_id=$row->studiengang_kz;
$stg_kzbz=$row->kurzbz;
$sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz=$stg_id AND mailgrp=true ORDER BY gruppe_kurzbz";
//echo $sql_query;
if(!($result_mg=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_mg=pg_num_rows($result_mg);
$sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz='".addslashes($stg_id)."' AND mailgrp=true ORDER BY gruppe_kurzbz";
if(!($result_mg = $db->db_query($sql_query)))
die($db->db_last_error());
$nr_mg=$db->db_num_rows($result_mg);
// Mailgroups
for ($j=0; $j<$nr_mg; $j++)
{
$row_mg=pg_fetch_object($result_mg, $j);
$row_mg = $db->db_fetch_object($result_mg, $j);
$mg_kurzbz=$row_mg->gruppe_kurzbz;
$sql_query='SELECT tbl_benutzergruppe.uid, nachname, vorname '.
'FROM campus.vw_benutzer, public.tbl_benutzergruppe '.
'WHERE vw_benutzer.uid=tbl_benutzergruppe.uid AND '.
"UPPER(gruppe_kurzbz)=UPPER('$mg_kurzbz') AND tbl_benutzergruppe.uid NOT LIKE '\\\\_%' ".
"AND (studiensemester_kurzbz IS NULL OR studiensemester_kurzbz='$ss_nearest') AND aktiv ORDER BY nachname;";
//echo $sql_query;
if(!($result_person=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
if(!($result_person = $db->db_query($sql_query)))
die($db->db_last_error());
// File Operations
$name=$mg_kurzbz.'.txt';
$name=strtolower($name);
$name=mb_strtolower($name);
$fp=fopen('../../../mlists/'.$name,"w");
//$fp=fopen('../../../../mlists/'.$name,"w");
$nr_person=pg_num_rows($result_person);
$nr_person=$db->db_num_rows($result_person);
for ($p=0; $p<$nr_person; $p++)
{
$row=pg_fetch_object($result_person, $p);
$row = $db->db_fetch_object($result_person, $p);
fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf);
}
fclose($fp);
@@ -87,10 +105,10 @@
WHERE alias<>'' AND (studiengang_kz NOT IN($noalias_kz) OR studiengang_kz is null)
tbl_benutzer.aktiv ORDER BY nachname, vorname";
if($result = pg_query($conn, $qry))
if($result = $db->db_query($qry))
{
$fp=fopen('../../../mlists/tw_alias.txt',"w");
while($row=pg_fetch_object($result))
while($row = $db->db_fetch_object($result))
{
fwrite($fp,"# ".$row->nachname." ".$row->vorname.$crlf);
fwrite($fp,$row->alias.": ".$row->uid.$crlf);
+120 -101
View File
@@ -1,18 +1,36 @@
<?php
/* Copyright (C) 2008 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/****************************************************************************
* Script: mlists_generate.php
* Descr: Das Skript generiert Mailinglisten in der Datenbanken
* fuer Einheiten, Lektoren und fix Angestellte.
* Verzweigungen: nach einheit_det.php
* von einheit_menue.php
* Author: Christian Paminger
* Erstellt: 12.9.2005
* Update: 14.9.2005 von Christian Paminger
*****************************************************************************/
include('../../vilesci/config.inc.php');
include('../../include/functions.inc.php');
include('../../include/studiensemester.class.php');
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiensemester.class.php');
$error_msg='';
?>
@@ -25,30 +43,29 @@ $error_msg='';
<BODY>
<H3>MailingListen abgleich</H3>
<?php
if (!$conn = pg_pconnect(CONN_STRING))
$error_msg='Es konnte keine Verbindung zum Server aufgebaut werden.\n';
$db = new basis_db();
// aktuelles Studiensemester ermitteln
$sql_query="SELECT studiensemester_kurzbz FROM public.vw_studiensemester ORDER BY delta LIMIT 1";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
if($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
if($row = $db->db_fetch_object($result))
$studiensemester=$row->studiensemester_kurzbz;
else
$error_msg.=pg_errormessage($conn).$sql_query;
$error_msg.= $db->db_last_error().$sql_query;
$stsem_obj = new studiensemester($conn);
$stsem_obj = new studiensemester();
if(substr($studiensemester,0,1)=='W')
if(mb_substr($studiensemester,0,1)=='W')
$stsem2 = $stsem_obj->getPreviousFrom($studiensemester);
else
$stsem2 = $stsem_obj->getNextFrom($studiensemester);
function setGeneriert($gruppe)
{
global $conn;
$db = new basis_db();
$qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')";
@pg_query($conn, $qry);
$db->db_query($qry);
}
// **************************************************************
@@ -58,27 +75,29 @@ $error_msg='';
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo $mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($mlist_name)."') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv)";
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) WHERE lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.= $db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -91,26 +110,26 @@ $error_msg='';
echo $mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND funktion_kurzbz='ass')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Personen holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT distinct mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND tbl_benutzerfunktion.funktion_kurzbz='ass' AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -123,26 +142,26 @@ $error_msg='';
echo $mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND funktion_kurzbz='stgl')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Personen holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid) JOIN public.tbl_benutzerfunktion USING(uid) WHERE aktiv AND tbl_benutzerfunktion.funktion_kurzbz='stgl' AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, studiensemester_kurzbz, updateamum, updatevon, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."',null, null, null, now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -155,26 +174,26 @@ $error_msg='';
echo '<BR>'.$mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result=$db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -187,26 +206,26 @@ $error_msg='';
echo '<BR>'.$mlist_name.' wird abgeglichen!<BR>';
flush();
$sql_query="SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid NOT IN (SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE aktiv AND fixangestellt AND lektor)";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row=$db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Lektoren holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT mitarbeiter_uid AS uid FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) WHERE fixangestellt AND lektor AND aktiv AND mitarbeiter_uid NOT LIKE '\\\\_%' AND mitarbeiter_uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$mlist_name'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($mlist_name)."', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -229,13 +248,13 @@ $error_msg='';
(studiensemester_kurzbz='$studiensemester' OR
studiensemester_kurzbz='$stsem2') AND mitarbeiter_uid NOT LIKE '\\\\_%')";
//echo $sql_query;
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn).$sql_query;
while($row=pg_fetch_object($result))
if(!($result=$db->db_query($sql_query)))
$error_msg.=$db->db_last_error().$sql_query;
while($row=$db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -254,14 +273,14 @@ $error_msg='';
(SELECT uid, UPPER(gruppe_kurzbz) FROM public.tbl_benutzergruppe
WHERE gruppe_kurzbz LIKE '%\\\\_LKT' AND UPPER(gruppe_kurzbz)!=UPPER('tw_lkt') AND UPPER(gruppe_kurzbz)!=UPPER('tw_fix_lkt'))";
//echo $sql_query;
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn).$sql_query;
while($row=pg_fetch_object($result))
if(!($result=$db->db_query($sql_query)))
$error_msg.=$db->db_last_error().$sql_query;
while($row=$db->db_fetch_object($result))
{
$sql_query="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='".strtoupper($row->mlist_name)."'";
if($res = pg_query($conn, $sql_query))
if($res = $db->db_query($sql_query))
{
if(pg_num_rows($res)<=0)
if($db->db_num_rows($res)<=0)
{
setGeneriert($row->mlist_name);
$sql_query="INSERT INTO public.tbl_gruppe(gruppe_kurzbz, studiengang_kz, semester, bezeichnung,
@@ -269,7 +288,7 @@ $error_msg='';
insertamum, insertvon)
VALUES('".strtoupper($row->mlist_name)."',$row->studiengang_kz, 0,'$row->mlist_name',".
"'$row->mlist_name', true, true, true, true, now(),'mlists_generate',now(), 'mlists_generate');";
if(!pg_query($conn, $sql_query))
if(!$db->db_query($sql_query))
echo "<br>Fehler beim Anlegen der Gruppe: $sql_query<br>";
}
}
@@ -277,8 +296,8 @@ $error_msg='';
echo "<br>Fehler:$sql_query";
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->mitarbeiter_uid','".strtoupper($row->mlist_name)."', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -289,29 +308,29 @@ $error_msg='';
echo 'Studentenvertreterverteiler werden abgeglichen!<BR>';
flush();
$sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE gruppe_kurzbz LIKE '%_STDV' AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND studiengang_kz=tbl_gruppe.studiengang_kz) AND tbl_gruppe.studiengang_kz!='0'";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result=$db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('$row->gruppe_kurzbz') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
// Studenten holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid, (SELECT gruppe_kurzbz FROM public.tbl_gruppe WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz like '%_STDV') as gruppe_kurzbz FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe JOIN public.tbl_gruppe USING(gruppe_kurzbz) WHERE studiengang_kz=tbl_benutzerfunktion.studiengang_kz AND gruppe_kurzbz Like '%_STDV')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
if($row->gruppe_kurzbz!='')
{
setGeneriert($row->gruppe_kurzbz);
$sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
$sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','".mb_strtoupper($row->gruppe_kurzbz)."', now(), 'mlists_generate')";
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -321,13 +340,13 @@ $error_msg='';
flush();
setGeneriert('TW_STDV');
$sql_query="SELECT gruppe_kurzbz, uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='TW_STDV' AND uid not in (SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv')";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="DELETE FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER('tw_stdv') AND uid='$row->uid'";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
@@ -335,13 +354,13 @@ $error_msg='';
// Studenten holen die nicht im Verteiler sind
echo '<BR>';
$sql_query="SELECT uid FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='stdv' AND uid NOT in(Select uid from public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)= UPPER('TW_STDV'))";
if(!($result=pg_query($conn, $sql_query)))
$error_msg.=pg_errormessage($conn);
while($row=pg_fetch_object($result))
if(!($result = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error();
while($row = $db->db_fetch_object($result))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row->uid','TW_STDV', now(), 'mlists_generate')";
if(!pg_query($conn, $sql_query))
$error_msg.=pg_errormessage($conn).$sql_query;
if(!$db->db_query($sql_query))
$error_msg.=$db->db_last_error().$sql_query;
echo '-';
flush();
}
+60 -82
View File
@@ -1,14 +1,34 @@
<?php
/**
* Changes: 23.10.2004: Anpassung an neues DB-Schema (WM)
/* Copyright (C) 2008 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
include('../../vilesci/config.inc.php');
include('../../include/functions.inc.php');
if (!$conn = @pg_pconnect(CONN_STRING))
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
if(!($erg=pg_query($conn, "SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC")))
die(pg_errormessage($conn));
$num_rows=pg_num_rows($erg);
/**
* Generiert die Listen fuer die Mailverteiler der Studenten
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
$db = new basis_db();
if(!($erg=$db->db_query("SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC")))
die($db->db_last_error());
$num_rows=$db->db_num_rows($erg);
?>
<HTML>
<HEAD>
@@ -24,107 +44,65 @@
<?php
for ($i=0; $i<$num_rows; $i++)
{
$row=pg_fetch_object($erg, $i);
$row=$db->db_fetch_object($erg, $i);
$stg_kz=$row->studiengang_kz;
$stg_kzbz=$row->kurzbz;
$sql_query="SELECT DISTINCT semester FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND student_uid NOT LIKE '\\\\_%' AND semester<10 AND semester>0 ORDER BY semester";
//echo $sql_query;
if(!($result_sem=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_sem=pg_num_rows($result_sem);
if(!($result_sem = $db->db_query($sql_query)))
die($db->db_last_error());
$nr_sem=$db->db_num_rows($result_sem);
for ($j=0; $j<$nr_sem; $j++)
{
$row_sem=pg_fetch_object($result_sem, $j);
$row_sem=$db->db_fetch_object($result_sem, $j);
echo $stg_kzbz.'-'.$row_sem->semester.'<br>';
/* // Semestergruppen falls vorhanden
$sem=$row_sem->semester;
$sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE studiengang_kz='.$stg_kz.' AND semester='.$sem." AND (verband IS NULL OR verband='') AND (gruppe='' OR gruppe IS NULL) AND uid NOT LIKE '\\\\_%' ORDER BY nachname;";
//echo $sql_query;
if(!($result_student=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
// File Operations
if (pg_num_rows($result_student)>0)
{
$name=$stg_kzbz.$sem.'.txt';
$name=strtolower($name);
$fp=fopen('../../../mlists/student/'.$name,"w");
$crlf="\n";
while ($row=pg_fetch_object($result_student))
fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf);
fclose($fp);
echo $name.', ';
flush();
}*/
$sql_query="SELECT DISTINCT verband FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND student_uid NOT LIKE '\\\\_%' ORDER BY verband";
//echo $sql_query;
if(!($result_ver=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_ver=pg_num_rows($result_ver);
if(!($result_ver = $db->db_query($sql_query)))
die($db->db_last_error());
$nr_ver=$db->db_num_rows($result_ver);
for ($k=0; $k<$nr_ver; $k++)
{
$row_ver=pg_fetch_object($result_ver, $k);
/* // Verbandsgruppen falls vorhanden
$sem=$row_sem->semester;
$ver=$row_ver->verband;
$sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE studiengang_kz='.$stg_kz.' AND semester='.$sem.' AND verband=\''.strtoupper($ver)."' AND (gruppe='' OR gruppe IS NULL) AND uid NOT LIKE '\\\\_%' ORDER BY nachname;";
//echo $sql_query;
if(!($result_student=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
// File Operations
if (pg_num_rows($result_student)>0)
{
$name=$stg_kzbz.$sem.$ver.'.txt';
$name=strtolower($name);
$fp=fopen('../../../mlists/student/'.$name,"w");
$crlf="\n";
while ($row=pg_fetch_object($result_student))
fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf);
fclose($fp);
echo $name.', ';
flush();
}*/
$row_ver = $db->db_fetch_object($result_ver, $k);
if ( ($row_ver->verband==' ' || $row_ver->verband=='') )
$row_ver->verband='A';
// if (strtoupper($row_ver->verband)=='A')
$sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND (verband='$row_ver->verband' OR verband='' OR verband=' ') AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe";
//else
// $sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE gruppe!='' AND gruppe IS NOT NULL AND studiengang_kz=$stg_kz AND semester=$row_sem->semester AND verband='$row_ver->verband' AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe";
//echo $sql_query;
if(!($result_grp=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
$nr_grp=pg_num_rows($result_grp);
$sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE studiengang_kz=$stg_kz AND semester=$row_sem->semester AND (verband='$row_ver->verband' OR verband='' OR verband=' ') AND student_uid NOT LIKE '\\\\_%' ORDER BY gruppe";
if(!($result_grp = $db->db_query($sql_query)))
die($db->db_last_error());
$nr_grp = $db->db_num_rows($result_grp);
for ($l=0; $l<$nr_grp; $l++)
{
$row_grp=pg_fetch_object($result_grp, $l);
$row_grp = $db->db_fetch_object($result_grp, $l);
$stgid=$stg_kz;
$sem=$row_sem->semester;
$ver=$row_ver->verband;
$grp=$row_grp->gruppe;
//echo '<BR>-'.$ver.'-<BR>';
if ($grp=='' || $grp==' ' || is_null($grp))
$grp='1';
if ($grp=='1')
$sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE aktiv AND studiengang_kz='.$stgid.' AND semester='.$sem." AND (verband='".strtoupper($ver)."' OR verband='' OR verband=' ') AND (gruppe='".$grp."' OR gruppe='' OR gruppe=' ') AND uid NOT LIKE '\\\\_%' ORDER BY nachname";
else
$sql_query='SELECT uid, nachname, vorname FROM campus.vw_student WHERE aktiv AND studiengang_kz='.$stgid.' AND semester='.$sem.' AND verband=\''.strtoupper($ver).'\' AND gruppe='.$grp." AND uid NOT LIKE '\\\\_%' ORDER BY nachname";
//echo $sql_query;
if(!($result_student=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
if(!($result_student = $db->db_query($sql_query)))
die($db->db_last_error());
// File Operations
$name=$stg_kzbz.$sem.$ver.$grp.'.txt';
$name=strtolower($name);
$name=mb_strtolower($name);
$fp=fopen('../../../mlists/student/'.$name,"w");
//$fp=fopen('../../../../mlists/student/'.$name,"w");
$crlf="\n";
$numrows_student=pg_num_rows($result_student);
$numrows_student = $db->db_num_rows($result_student);
for ($s=0; $s<$numrows_student; $s++)
{
$row=pg_fetch_object($result_student, $s);
$row = $db->db_fetch_object($result_student, $s);
fwrite($fp, '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf);
}
fclose($fp);
@@ -140,15 +118,15 @@
$sql_query="SELECT studiengang_kz, bezeichnung, lower(typ::varchar(1) || kurzbz) as kurzbz,uid, nachname, vorname,
semester, lower(verband) AS verband, gruppe FROM campus.vw_student JOIN tbl_studiengang USING (studiengang_kz)
WHERE uid NOT LIKE '\\\\_%' AND semester<10 AND semester>0 AND vw_student.aktiv AND (substring(uid from 1 for 1)<'0' OR substring(uid from 1 for 1)>'9')";
echo $sql_query;
if(!($result=pg_query($conn, $sql_query)))
die(pg_errormessage($conn));
if(!($result = $db->db_query($sql_query)))
die($db->db_last_error());
// File Operations
$name='student_lehrverband.txt';
$fp=fopen('../../../mlists/student/'.$name,"w");
$crlf="\n";
// Wunsch von Kopper: <Studiengang>^t<gruppe>^t<uid>^t#<Nachname><space><Vorname>
while ($row=pg_fetch_object($result))
while ($row = $db->db_fetch_object($result))
fwrite($fp, $row->kurzbz."\t".$row->semester.$row->verband.$row->gruppe."\t".$row->uid."\t#".$row->nachname.' '.$row->vorname.$crlf);
fclose($fp);
echo $name.', ';