diff --git a/cis/private/lehre/abgabe_lektor_multitermin.php b/cis/private/lehre/abgabe_lektor_multitermin.php index 4556900f3..79b794662 100644 --- a/cis/private/lehre/abgabe_lektor_multitermin.php +++ b/cis/private/lehre/abgabe_lektor_multitermin.php @@ -15,10 +15,11 @@ * 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 > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Authors: Christian Paminger , + * Andreas Oesterreicher , + * Rudolf Hangl , + * Gerald Simane-Sequens and + * Andreas Moik . */ /******************************************************************************************************* * abgabe_lektor @@ -170,7 +171,7 @@ if(isset($_POST["schick"])) $row_typ->bezeichnung=''; } //Student zu projektarbeit_id suchen - $qry_std="SELECT * FROM campus.vw_student WHERE uid IN(SELECT student_uid FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")"; + $qry_std="SELECT * FROM campus.vw_student WHERE prestudent_id IN(SELECT prestudent_id FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")"; if($result_std=@$db->db_query($qry_std)) { $row_std=$db->db_fetch_object($result_std); diff --git a/cis/private/lehre/abgabe_lektor_terminuebersicht.php b/cis/private/lehre/abgabe_lektor_terminuebersicht.php index 965bb4b2e..dbae7b19e 100644 --- a/cis/private/lehre/abgabe_lektor_terminuebersicht.php +++ b/cis/private/lehre/abgabe_lektor_terminuebersicht.php @@ -1,145 +1,147 @@ -, - * Andreas Oesterreicher and - * Karl Burkhart . - */ -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/benutzer.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/phrasen.class.php'); - -$uid = get_uid(); -$user = ''; -$db = new basis_db(); -$datum_obj = new datum(); -$sprache = getSprache(); -$p = new phrasen($sprache); - -echo ' - - - Terminübersicht - - - - - - - - - - - -'; - -if(isset($_GET['user'])) -{ - //Terminliste von anderen Personen darf nur dann angezeigt werden, wenn - //die entsprechende Berechtigung vorhanden ist - $rechte = new benutzerberechtigung(); - if(!$rechte->getBerechtigungen($uid)) - die($p->t('global/fehlerBeimLesenAusDatenbank')); - if(!$rechte->isBerechtigt('lehre/abgabetool')) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - $user = $_GET['user']; -} -else - $user = $uid; -$lektor = new benutzer(); -if(!$lektor->load($user)) - die($p->t('global/fehlerBeimErmittelnDerUID')); - -$sql_query = " - SELECT - distinct tbl_paabgabe.datum, tbl_paabgabe.fixtermin, tbl_paabgabe.kurzbz, - person_student.vorname as stud_vorname, person_student.nachname as stud_nachname, - person_student.titelpre as stud_titelpre, person_student.titelpost as stud_titelpost, - tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, - tbl_paabgabetyp.bezeichnung as typ_bezeichnung - FROM - campus.tbl_paabgabe - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) - JOIN public.tbl_benutzer bn_student ON(tbl_projektarbeit.student_uid=bn_student.uid) - JOIN public.tbl_person person_student ON(bn_student.person_id=person_student.person_id) - JOIN lehre.tbl_lehreinheit ON(tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) - JOIN public.tbl_studiengang ON(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz) - JOIN campus.tbl_paabgabetyp USING(paabgabetyp_kurzbz) - WHERE - tbl_projektbetreuer.person_id='".addslashes($lektor->person_id)."' AND tbl_paabgabe.datum>=now() AND bn_student.aktiv - ORDER BY tbl_paabgabe.datum - "; - -if($result = $db->db_query($sql_query)) -{ - echo "

".$p->t('abgabetool/terminuebersicht')." - $lektor->titelpre $lektor->vorname $lektor->nachname $lektor->titelpost

"; - - if($db->db_num_rows($result)>0) - { - echo ''; - echo ' - - - - - - - - - - - - - '; - - while($row = $db->db_fetch_object($result)) - { - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo "\n"; - } - - echo "\n
'.$p->t('abgabetool/datum').''.$p->t('abgabetool/fix').''.$p->t('abgabetool/typ').''.$p->t('abgabetool/beschreibungAbgabe').''.$p->t('abgabetool/student').''.$p->t('lvplan/stg').''.$p->t('lvplan/sem').'
'.$datum_obj->formatDatum($row->datum,'d.m.Y').''.($row->fixtermin=='t'?'Ja':'Nein').''.$row->typ_bezeichnung.''.$row->kurzbz.''.$row->stud_titelpre.' '.$row->stud_vorname.' '.$row->stud_nachname.' '.$row->stud_titelpre.''.$row->stg.''.$row->semester.'
"; - } - else - echo $p->t('abgabetool/keineTermineVorhanden'); -} - -echo ''; -?> \ No newline at end of file +, + * Andreas Oesterreicher , + * Karl Burkhart and + * Andreas Moik . + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/phrasen.class.php'); + +$uid = get_uid(); +$user = ''; +$db = new basis_db(); +$datum_obj = new datum(); +$sprache = getSprache(); +$p = new phrasen($sprache); + +echo ' + + + Terminübersicht + + + + + + + + + + + +'; + +if(isset($_GET['user'])) +{ + //Terminliste von anderen Personen darf nur dann angezeigt werden, wenn + //die entsprechende Berechtigung vorhanden ist + $rechte = new benutzerberechtigung(); + if(!$rechte->getBerechtigungen($uid)) + die($p->t('global/fehlerBeimLesenAusDatenbank')); + if(!$rechte->isBerechtigt('lehre/abgabetool')) + die($p->t('global/keineBerechtigungFuerDieseSeite')); + $user = $_GET['user']; +} +else + $user = $uid; +$lektor = new benutzer(); +if(!$lektor->load($user)) + die($p->t('global/fehlerBeimErmittelnDerUID')); + +$sql_query = " + SELECT + distinct tbl_paabgabe.datum, tbl_paabgabe.fixtermin, tbl_paabgabe.kurzbz, + person_student.vorname as stud_vorname, person_student.nachname as stud_nachname, + person_student.titelpre as stud_titelpre, person_student.titelpost as stud_titelpost, + tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg, + tbl_paabgabetyp.bezeichnung as typ_bezeichnung + FROM + campus.tbl_paabgabe + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) + JOIN public.tbl_prestudent ON(tbl_projektarbeit.prestudent_id = tbl_projektarbeit.prestudent_id) + JOIN public.tbl_benutzer bn_student ON(tbl_prestudent.person_id=bn_student.person_id) + JOIN public.tbl_person person_student ON(bn_student.person_id=person_student.person_id) + JOIN lehre.tbl_lehreinheit ON(tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) + JOIN public.tbl_studiengang ON(tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz) + JOIN campus.tbl_paabgabetyp USING(paabgabetyp_kurzbz) + WHERE + tbl_projektbetreuer.person_id='".addslashes($lektor->person_id)."' AND tbl_paabgabe.datum>=now() AND bn_student.aktiv + ORDER BY tbl_paabgabe.datum + "; + +if($result = $db->db_query($sql_query)) +{ + echo "

".$p->t('abgabetool/terminuebersicht')." - $lektor->titelpre $lektor->vorname $lektor->nachname $lektor->titelpost

"; + + if($db->db_num_rows($result)>0) + { + echo ''; + echo ' + + + + + + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo "\n"; + } + + echo "\n
'.$p->t('abgabetool/datum').''.$p->t('abgabetool/fix').''.$p->t('abgabetool/typ').''.$p->t('abgabetool/beschreibungAbgabe').''.$p->t('abgabetool/student').''.$p->t('lvplan/stg').''.$p->t('lvplan/sem').'
'.$datum_obj->formatDatum($row->datum,'d.m.Y').''.($row->fixtermin=='t'?'Ja':'Nein').''.$row->typ_bezeichnung.''.$row->kurzbz.''.$row->stud_titelpre.' '.$row->stud_vorname.' '.$row->stud_nachname.' '.$row->stud_titelpre.''.$row->stg.''.$row->semester.'
"; + } + else + echo $p->t('abgabetool/keineTermineVorhanden'); +} + +echo ''; +?> diff --git a/cis/private/lehre/abgabe_student.php b/cis/private/lehre/abgabe_student.php index 9ab0b8585..0fbbc2d42 100644 --- a/cis/private/lehre/abgabe_student.php +++ b/cis/private/lehre/abgabe_student.php @@ -15,10 +15,11 @@ * 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 > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Authors: Christian Paminger < christian.paminger@technikum-wien.at >, + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >, + * Rudolf Hangl < rudolf.hangl@technikum-wien.at >, + * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > and + * Andreas Moik . */ require_once('../../../config/cis.config.inc.php'); @@ -60,7 +61,7 @@ if(isset($_GET['uid'])) $rechte->getBerechtigungen($getuid); if($rechte->isBerechtigt('lehre/abgabetool',$stg_obj->oe_kurzbz,'s')) $allowed=true; - + //oder Lektor mit Betreuung dieses Studenten $qry = "SELECT 1 FROM @@ -68,7 +69,7 @@ if(isset($_GET['uid'])) JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) WHERE - tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND + tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND vw_benutzer.uid=".$db->db_add_param($getuid).";"; if($result = $db->db_query($qry)) @@ -89,7 +90,10 @@ $htmlstr1 = ''; $vorname=''; $nachname=''; -$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, +if(!$student = new student($uid)) + die("Student nicht gefunden"); + +$sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bnachname, (SELECT vorname FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS bvorname, (SELECT titelpre FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpre, (SELECT titelpost FROM public.tbl_person WHERE person_id=tbl_projektbetreuer.person_id) AS btitelpost, @@ -105,7 +109,7 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb LEFT JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) WHERE (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom') AND (tbl_projektbetreuer.betreuerart_kurzbz='Betreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Begutachter' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer' OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter') - AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." + AND tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND public.tbl_benutzer.aktiv AND lehre.tbl_projektarbeit.note IS NULL ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz"; diff --git a/cis/private/lehre/abgabe_student_details.php b/cis/private/lehre/abgabe_student_details.php index 788b7b225..4899bc6a4 100644 --- a/cis/private/lehre/abgabe_student_details.php +++ b/cis/private/lehre/abgabe_student_details.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik */ /******************************************************************************************************* * abgabe_lektor @@ -138,7 +139,7 @@ if($uid!=$user) JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id) JOIN campus.vw_benutzer on(vw_benutzer.person_id=tbl_projektbetreuer.person_id) WHERE - tbl_projektarbeit.student_uid=".$db->db_add_param($uid)." AND + tbl_projektarbeit.prestudent_id=".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." AND vw_benutzer.uid=".$db->db_add_param($user).";"; if($result = $db->db_query($qry)) @@ -156,7 +157,9 @@ if($uid!=$user) } else { - if($uid!=$projektarbeit_obj->student_uid) + $student = new student($uid); + + if($student->prestudent_id!=$projektarbeit_obj->prestudent_id) die('Sie haben keine Berechtigung fuer diese Seite'); } diff --git a/cis/private/profile/lva_liste.php b/cis/private/profile/lva_liste.php index 04889e6a5..cc184803b 100644 --- a/cis/private/profile/lva_liste.php +++ b/cis/private/profile/lva_liste.php @@ -1,400 +1,400 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Erstellt eine Liste mit dem Lehrveranstaltungen und Betreuungen denen der Lektor zugeteilt ist - */ -require_once('../../../config/cis.config.inc.php'); -require_once('../../../config/global.config.inc.php'); -require_once('../../../include/basis_db.class.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/studiengang.class.php'); -require_once('../../../include/person.class.php'); -require_once('../../../include/benutzer.class.php'); -require_once('../../../include/mail.class.php'); -require_once('../../../include/phrasen.class.php'); -require_once('../../../include/studiensemester.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/datum.class.php'); -require_once('../../../include/lvangebot.class.php'); - - - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - - $adress=MAIL_ADMIN; - - $user=get_uid(); - $studiensemester = new studiensemester(); - - if (isset($_GET['uid'])) - $uid=$_GET['uid']; - else - $uid = $user; - - if (isset($_GET['stdsem'])) - $stdsem=$_GET['stdsem']; - else - $stdsem=$studiensemester->getaktorNext(); - - $datum = new datum(); - - //Studiensemester abfragen. Letzten 5, aktuelles und naechstes. - $sql_query='SELECT * FROM public.tbl_studiensemester WHERE (start<=(now()::date+240) AND ende>=(now()::date-900)) ORDER BY start'; - $result_stdsem=$db->db_query($sql_query); - $num_rows_stdsem=$db->db_num_rows($result_stdsem); - //if (!isset($stdsem)) - //$stdsem=$db->db_result($result_stdsem,0,"studiensemester_kurzbz"); - - $p = new phrasen(getSprache()); -/* -0000453: Sortierung von LVs - Meine LV -1. Bachelor -2. Name des Bachelors -3. Studienjahr -4. Name der LV -5. Master -6. Name des Masters -7. Studienjahr -8. Name der LV - -*/ - //Lehrveranstaltungen abfragen. - $sql_query=" - SELECT - *, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg_kurzbz, - tbl_lehrveranstaltung.semester as lv_semester, - lehrfach.kurzbz as lehrfach, - lehrfach.bezeichnung as lehrfach_bez, - tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden, - tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, - tbl_lehreinheit.anmerkung as le_anmerkung, - tbl_lehreinheit.lehrform_kurzbz as le_lehrform_kurzbz, - (SELECT kurzbz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid) as lektor, - tbl_lehrveranstaltung.lehrveranstaltung_id - FROM - lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - WHERE tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND mitarbeiter_uid=".$db->db_add_param($uid); - $sql_query.=" ORDER BY stg_kurzbz,lv_semester,lv_bezeichnung"; - $result=$db->db_query($sql_query); - $num_rows=$db->db_num_rows($result); - - echo ' - - - - '.$p->t('lvaliste/titel').' - - - - - - - -

'.$p->t('lvaliste/titel').' ( '.$stdsem.' )

'; - echo '
'; - for ($i=0;$i<$num_rows_stdsem;$i++) - { - $row=$db->db_fetch_object($result_stdsem); - if ($stdsem==$row->studiensemester_kurzbz) - echo ''.$row->studiensemester_kurzbz.' - '; - else - echo ''.$row->studiensemester_kurzbz.' - '; - } - echo ''; - echo ''.$p->t('lvaliste/hilfeAnzeigen').''; - echo '

'; - if ($num_rows>0) - { - - echo '

'.$p->t('lvaliste/lehrveranstaltungen').'

'; - echo $p->t('lvaliste/anzahl').': '.$num_rows; - echo ' - - - '; - if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) - echo ''; - echo ' - - - - - - - - - - - - - - - '; - // Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht - - echo ' - '; - $stg_obj = new studiengang(); - $stg_obj->getAll(null,null); - $summe_std=0; - - for ($i=0; $i<$num_rows; $i++) - { - $row=$db->db_fetch_object($result); - $lvangebot = new lvangebot(); - echo ''; - if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) - echo ''; - echo ''; - echo ''; - if ($row->lehrfach_bez!=$row->lv_bezeichnung) - echo ''; - else - echo ''; - echo ''; - echo ''; - echo ''; - - $qry ="SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'"; - $gruppe=''; - if($result_grp = $db->db_query($qry)) - { - while($row_grp = $db->db_fetch_object($result_grp)) - { - if($row_grp->gruppe_kurzbz!='') - $gruppe.= $row_grp->gruppe_kurzbz.'
'; - else - $gruppe.= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'
'; - } - } - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - $lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz); - if(!empty($lvangebot->result)) - { - echo ''; - echo ''; - } - //echo ''; Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht - - echo ''; - $summe_std+=$row->semesterstunden; - } - echo ''; - echo ''; - echo ''; - if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
'.$p->t('lvaliste/gesamtnote').''.$p->t('lvaliste/lehrfach').''.$p->t('lvaliste/lehrform').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/lektor').''.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/gruppen').''.$p->t('lvaliste/raumtyp').''.$p->t('lvaliste/raumtypalternativ').''.$p->t('lvaliste/blockung').''.$p->t('lvaliste/wochenrythmus').''.$p->t('lvaliste/stunden').''.$p->t('lvaliste/kalenderwoche').'Anm. vonAnm. bis'.$p->t('lvaliste/anmerkung').'
'.$p->t('lvaliste/gesamtnote').''.$row->lehrfach.''.$row->le_lehrform_kurzbz.''.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.')'.$row->lv_bezeichnung.''.$row->lektor.''.$row->stg_kurzbz.''.$row->semester.''.$gruppe.''.$row->raumtyp.''.$row->raumtypalternativ.''.$row->stundenblockung.''.$row->wochenrythmus.''.$row->semesterstunden.''.$row->start_kw.''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").''.$row->le_anmerkung.'
           '.$p->t('lvaliste/summe').''.number_format($summe_std,2).' 
'; - } - else - echo $p->t('lvaliste/keineDatensaetze').'
'; - - //Betreuungen - - $mitarbeiter = new benutzer(); - $mitarbeiter->load($uid); - - $qry = "SELECT - tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel, - (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id) - WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, - tbl_studiengang.email - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang - WHERE - tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND - tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER); - - $stg_obj = new studiengang(); - $stg_obj->getAll(null,null); - - if($result = $db->db_query($qry)) - { - if($db->db_num_rows($result)>0) - { - echo '

'.$p->t('lvaliste/betreuungen').'

'; - echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result); - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - while($row = $db->db_fetch_object($result)) - { - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - echo ''; - } - echo '
'.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/student').''.$p->t('lvaliste/titelProjektarbeit').'
'.$stg_obj->kuerzel_arr[$row->studiengang_kz].''.$row->semester.''.$row->bezeichnung.''.$row->student.''.$row->titel.'
'; - } - } - - - //Koordination - - $qry = "SELECT - distinct - tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung, - tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator, - tbl_studiengang.email - FROM - lehre.tbl_lehrveranstaltung, - lehre.tbl_lehreinheit, - lehre.tbl_lehrveranstaltung as lehrfach, - public.tbl_studiengang, - public.tbl_fachbereich - WHERE - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND - tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND - (tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)." - OR - ( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz - FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) - WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)." - and ( tbl_benutzerfunktion.datum_bis is null or now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis ) - )) - ) AND - tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz - order by tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.bezeichnung - "; - - - if($result = $db->db_query($qry)) - { - if($db->db_num_rows($result)>0) - { - echo '

'.$p->t('lvaliste/koordination').'

'; - echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result); - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - while($row = $db->db_fetch_object($result)) - { - //Fachbereichskoordinatoren holen - $qry = "SELECT distinct - uid,titelpre, titelpost, vorname, nachname - FROM - lehre.tbl_lehreinheitmitarbeiter, - public.tbl_benutzer, - public.tbl_person, - lehre.tbl_lehreinheit - WHERE - tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND - tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND - tbl_benutzer.person_id=tbl_person.person_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem); - $lektoren=''; - if($result_lkt = $db->db_query($qry)) - { - while($row_lkt = $db->db_fetch_object($result_lkt)) - { - if($lektoren!='') - $lektoren.=','; - $lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost); - } - } - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - echo '
'.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/institut').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/lektor').'
'.$stg_obj->kuerzel_arr[$row->studiengang_kz].''.$row->semester.''.$row->fachbereich_kurzbz.''.$row->bezeichnung.''.$lektoren.'
'; - } - } -echo '
'.$p->t('lvaliste/fehlerAnStudiengang').'


'; -?> - - +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* + * Erstellt eine Liste mit dem Lehrveranstaltungen und Betreuungen denen der Lektor zugeteilt ist + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../config/global.config.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/person.class.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/mail.class.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/lvangebot.class.php'); + + + if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + + $adress=MAIL_ADMIN; + + $user=get_uid(); + $studiensemester = new studiensemester(); + + if (isset($_GET['uid'])) + $uid=$_GET['uid']; + else + $uid = $user; + + if (isset($_GET['stdsem'])) + $stdsem=$_GET['stdsem']; + else + $stdsem=$studiensemester->getaktorNext(); + + $datum = new datum(); + + //Studiensemester abfragen. Letzten 5, aktuelles und naechstes. + $sql_query='SELECT * FROM public.tbl_studiensemester WHERE (start<=(now()::date+240) AND ende>=(now()::date-900)) ORDER BY start'; + $result_stdsem=$db->db_query($sql_query); + $num_rows_stdsem=$db->db_num_rows($result_stdsem); + //if (!isset($stdsem)) + //$stdsem=$db->db_result($result_stdsem,0,"studiensemester_kurzbz"); + + $p = new phrasen(getSprache()); +/* +0000453: Sortierung von LVs - Meine LV +1. Bachelor +2. Name des Bachelors +3. Studienjahr +4. Name der LV +5. Master +6. Name des Masters +7. Studienjahr +8. Name der LV + +*/ + //Lehrveranstaltungen abfragen. + $sql_query=" + SELECT + *, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg_kurzbz, + tbl_lehrveranstaltung.semester as lv_semester, + lehrfach.kurzbz as lehrfach, + lehrfach.bezeichnung as lehrfach_bez, + tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden, + tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, + tbl_lehreinheit.anmerkung as le_anmerkung, + tbl_lehreinheit.lehrform_kurzbz as le_lehrform_kurzbz, + (SELECT kurzbz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid) as lektor, + tbl_lehrveranstaltung.lehrveranstaltung_id + FROM + lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) + WHERE tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND mitarbeiter_uid=".$db->db_add_param($uid); + $sql_query.=" ORDER BY stg_kurzbz,lv_semester,lv_bezeichnung"; + $result=$db->db_query($sql_query); + $num_rows=$db->db_num_rows($result); + + echo ' + + + + '.$p->t('lvaliste/titel').' + + + + + + + +

'.$p->t('lvaliste/titel').' ( '.$stdsem.' )

'; + echo '
'; + for ($i=0;$i<$num_rows_stdsem;$i++) + { + $row=$db->db_fetch_object($result_stdsem); + if ($stdsem==$row->studiensemester_kurzbz) + echo ''.$row->studiensemester_kurzbz.' - '; + else + echo ''.$row->studiensemester_kurzbz.' - '; + } + echo ''; + echo ''.$p->t('lvaliste/hilfeAnzeigen').''; + echo '

'; + if ($num_rows>0) + { + + echo '

'.$p->t('lvaliste/lehrveranstaltungen').'

'; + echo $p->t('lvaliste/anzahl').': '.$num_rows; + echo ' + + + '; + if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) + echo ''; + echo ' + + + + + + + + + + + + + + + '; + // Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht + + echo ' + '; + $stg_obj = new studiengang(); + $stg_obj->getAll(null,null); + $summe_std=0; + + for ($i=0; $i<$num_rows; $i++) + { + $row=$db->db_fetch_object($result); + $lvangebot = new lvangebot(); + echo ''; + if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) + echo ''; + echo ''; + echo ''; + if ($row->lehrfach_bez!=$row->lv_bezeichnung) + echo ''; + else + echo ''; + echo ''; + echo ''; + echo ''; + + $qry ="SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id='".addslashes($row->lehreinheit_id)."'"; + $gruppe=''; + if($result_grp = $db->db_query($qry)) + { + while($row_grp = $db->db_fetch_object($result_grp)) + { + if($row_grp->gruppe_kurzbz!='') + $gruppe.= $row_grp->gruppe_kurzbz.'
'; + else + $gruppe.= $stg_obj->kuerzel_arr[$row->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe.'
'; + } + } + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + $lvangebot->getAllFromLvId($row->lehrveranstaltung_id, $row->studiensemester_kurzbz); + if(!empty($lvangebot->result)) + { + echo ''; + echo ''; + } + //echo ''; Lektoren sollen die Anmerkung dzt. nicht sehen, da nur für intern gedacht + + echo ''; + $summe_std+=$row->semesterstunden; + } + echo ''; + echo ''; + echo ''; + if(!defined('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN') || CIS_LVALISTE_NOTENEINGABE_ANZEIGEN) + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo '
'.$p->t('lvaliste/gesamtnote').''.$p->t('lvaliste/lehrfach').''.$p->t('lvaliste/lehrform').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/lektor').''.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/gruppen').''.$p->t('lvaliste/raumtyp').''.$p->t('lvaliste/raumtypalternativ').''.$p->t('lvaliste/blockung').''.$p->t('lvaliste/wochenrythmus').''.$p->t('lvaliste/stunden').''.$p->t('lvaliste/kalenderwoche').'Anm. vonAnm. bis'.$p->t('lvaliste/anmerkung').'
'.$p->t('lvaliste/gesamtnote').''.$row->lehrfach.''.$row->le_lehrform_kurzbz.''.$row->lv_bezeichnung.' ('.$p->t('lvaliste/lehrfach').': '.$row->lehrfach_bez.')'.$row->lv_bezeichnung.''.$row->lektor.''.$row->stg_kurzbz.''.$row->semester.''.$gruppe.''.$row->raumtyp.''.$row->raumtypalternativ.''.$row->stundenblockung.''.$row->wochenrythmus.''.$row->semesterstunden.''.$row->start_kw.''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_start, "d.m.Y").''.$datum->formatDatum($lvangebot->result[0]->anmeldefenster_ende, "d.m.Y").''.$row->le_anmerkung.'
           '.$p->t('lvaliste/summe').''.number_format($summe_std,2).' 
'; + } + else + echo $p->t('lvaliste/keineDatensaetze').'
'; + + //Betreuungen + + $mitarbeiter = new benutzer(); + $mitarbeiter->load($uid); + + $qry = "SELECT + tbl_lehrveranstaltung.bezeichnung, tbl_projektarbeit.titel, + (SELECT nachname || ' ' || vorname FROM public.tbl_benutzer JOIN public.tbl_person USING(person_id) + WHERE uid=student_uid) as student, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, + tbl_studiengang.email + FROM + lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_studiengang + WHERE + tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND + tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz AND + tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER); + + $stg_obj = new studiengang(); + $stg_obj->getAll(null,null); + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)>0) + { + echo '

'.$p->t('lvaliste/betreuungen').'

'; + echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + while($row = $db->db_fetch_object($result)) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + echo ''; + } + echo '
'.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/student').''.$p->t('lvaliste/titelProjektarbeit').'
'.$stg_obj->kuerzel_arr[$row->studiengang_kz].''.$row->semester.''.$row->bezeichnung.''.$row->student.''.$row->titel.'
'; + } + } + + + //Koordination + + $qry = "SELECT + distinct + tbl_lehrveranstaltung.studiengang_kz, tbl_fachbereich.fachbereich_kurzbz, tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.semester,tbl_lehrveranstaltung.koordinator, + tbl_studiengang.email + FROM + lehre.tbl_lehrveranstaltung, + lehre.tbl_lehreinheit, + lehre.tbl_lehrveranstaltung as lehrfach, + public.tbl_studiengang, + public.tbl_fachbereich + WHERE + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id AND + tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem)." AND + (tbl_lehrveranstaltung.koordinator=".$db->db_add_param($uid)." + OR + ( tbl_lehrveranstaltung.koordinator is null and (tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz) IN (SELECT studiengang_kz, fachbereich_kurzbz + FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) + WHERE funktion_kurzbz='fbk' AND uid=".$db->db_add_param($uid)." + and ( tbl_benutzerfunktion.datum_bis is null or now() between tbl_benutzerfunktion.datum_von and tbl_benutzerfunktion.datum_bis ) + )) + ) AND + tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz + order by tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester ,tbl_lehrveranstaltung.bezeichnung + "; + + + if($result = $db->db_query($qry)) + { + if($db->db_num_rows($result)>0) + { + echo '

'.$p->t('lvaliste/koordination').'

'; + echo $p->t('lvaliste/anzahl').': '.$db->db_num_rows($result); + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + while($row = $db->db_fetch_object($result)) + { + //Fachbereichskoordinatoren holen + $qry = "SELECT distinct + uid,titelpre, titelpost, vorname, nachname + FROM + lehre.tbl_lehreinheitmitarbeiter, + public.tbl_benutzer, + public.tbl_person, + lehre.tbl_lehreinheit + WHERE + tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id, FHC_INTEGER)." AND + tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND + tbl_benutzer.person_id=tbl_person.person_id AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stdsem); + $lektoren=''; + if($result_lkt = $db->db_query($qry)) + { + while($row_lkt = $db->db_fetch_object($result_lkt)) + { + if($lektoren!='') + $lektoren.=','; + $lektoren.=trim($row_lkt->titelpre.' '.$row_lkt->vorname.' '.$row_lkt->nachname.' '.$row_lkt->titelpost); + } + } + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
'.$p->t('lvaliste/studiengang').''.$p->t('lvaliste/semester').''.$p->t('lvaliste/institut').''.$p->t('lvaliste/lvBezeichnung').''.$p->t('lvaliste/lektor').'
'.$stg_obj->kuerzel_arr[$row->studiengang_kz].''.$row->semester.''.$row->fachbereich_kurzbz.''.$row->bezeichnung.''.$lektoren.'
'; + } + } +echo '
'.$p->t('lvaliste/fehlerAnStudiengang').'


'; +?> + + diff --git a/cis/private/tools/projektabgabe.php b/cis/private/tools/projektabgabe.php index 7e2e7aaab..38adddd2d 100644 --- a/cis/private/tools/projektabgabe.php +++ b/cis/private/tools/projektabgabe.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik . */ /******************************************************************************************************* * projektabgabe @@ -140,7 +141,8 @@ if($aktion!='zip') $qry_termin=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD-MM-YYYY') as termin_anzeige FROM lehre.tbl_projektarbeit JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_prestudent ON(tbl_prestudent.prestudent_id = tbl_projektarbeit.prestudent_id) + LEFT JOIN public.tbl_benutzer ON(tbl_prestudent.person_id=tbl_benutzer.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) @@ -214,7 +216,8 @@ if(isset($_REQUEST['ok']) || (isset($_REQUEST['aktion']) && $_REQUEST['aktion']= $qry.=" SELECT public.tbl_studiengang.bezeichnung as stgbez, campus.tbl_paabgabe.datum as termin,* FROM lehre.tbl_projektarbeit JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_prestudent ON(tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id) + LEFT JOIN public.tbl_benutzer ON(tbl_benutzer.person_id=tbl_prestudent.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) diff --git a/cis/private/tools/projektabgabe_autocomplete.php b/cis/private/tools/projektabgabe_autocomplete.php index 4cf673f99..7e91cc9f0 100644 --- a/cis/private/tools/projektabgabe_autocomplete.php +++ b/cis/private/tools/projektabgabe_autocomplete.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik . */ /******************************************************************************************************* * Autocomplete @@ -85,7 +86,8 @@ cellSeparator (default value: "|") $qry=" SELECT distinct campus.tbl_paabgabe.datum as termin , to_char(campus.tbl_paabgabe.datum, 'DD.MM.YYYY') as termin_anzeige FROM lehre.tbl_projektarbeit JOIN campus.tbl_paabgabe USING(projektarbeit_id) - LEFT JOIN public.tbl_benutzer ON(uid=student_uid) + LEFT JOIN public.tbl_prestudent ON(tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id) + LEFT JOIN public.tbl_benutzer ON(tbl_benutzer.person_id=tbl_prestudent.person_id) LEFT JOIN public.tbl_person ON(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) LEFT JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) diff --git a/content/statistik/alvsstatistik.php b/content/statistik/alvsstatistik.php index e1b851654..30c411224 100644 --- a/content/statistik/alvsstatistik.php +++ b/content/statistik/alvsstatistik.php @@ -246,7 +246,7 @@ if($format=='xls') if(!isset($stunden['w'])) $stunden['w']=0; $summe_w+=$stunden['w']; - if(!isset($summe_fb[$fb]['w'])) + if(!isset($summe_fb[$fb]['w'])) $summe_fb[$fb]['w']=0; $summe_fb[$fb]['w']+=$stunden['w']; $worksheet->write($zeile,$fachbereiche[$fb]+1,$stunden['w'],$format_data); diff --git a/content/statistik/lehrauftragsliste_gst.xls.php b/content/statistik/lehrauftragsliste_gst.xls.php index b641ef05e..e3d2690b4 100644 --- a/content/statistik/lehrauftragsliste_gst.xls.php +++ b/content/statistik/lehrauftragsliste_gst.xls.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * Erstellt ein Excel File mit einer Uebersicht der @@ -157,7 +158,7 @@ if($result = $db->db_query($qry)) FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.prestudent_id=vw_student.prestudent_id AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index b776cade1..4a8d70e83 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * Erstellt ein Excel File mit einer Uebersicht der @@ -294,7 +295,7 @@ if($result_stg = $db->db_query($qry_stg)) FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.prestudent_id=vw_student.prestudent_id AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); diff --git a/content/statistik/lvplanung.php b/content/statistik/lvplanung.php index bff0417d5..56e0676d4 100644 --- a/content/statistik/lvplanung.php +++ b/content/statistik/lvplanung.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -297,7 +298,7 @@ elseif($oe_kurzbz!='') $qry = "SELECT * FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_prestudent, public.tbl_benutzer WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND @@ -306,7 +307,9 @@ elseif($oe_kurzbz!='') tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 AND + lehre.tbl_projektarbeit.prestudent_id = public.tbl_prestudent.prestudent_id AND + public.tbl_benutzer.person_id = public.tbl_prestudent.person_id "; } else @@ -341,7 +344,7 @@ if($result = $db->db_query($qry)) //echo ' '; echo "".number_format($row->stunden,2).""; $benutzer = new benutzer(); - $benutzer->load($row->student_uid); + $benutzer->load($row->uid); echo "$benutzer->nachname $benutzer->vorname"; echo "$row->nachname $row->vorname"; echo "".number_format(($row->stundensatz*$row->faktor*$row->stunden),2,',','.')." €"; diff --git a/content/statistik/lvplanung.xls.php b/content/statistik/lvplanung.xls.php index 237fbe703..12263ad64 100644 --- a/content/statistik/lvplanung.xls.php +++ b/content/statistik/lvplanung.xls.php @@ -1,468 +1,471 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl and - */ -// Erstellt ein Excel mit den Kosten der Lehrveranstaltungen -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/Excel/excel.php'); -require_once('../../include/person.class.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/mitarbeiter.class.php'); - -$user = get_uid(); - -loadVariables($user); - -if(isset($_GET['studiensemester_kurzbz'])) - $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; -else if(isset($_POST['studiensemester_kurzbz'])) - $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; -else - die('studiensemester_kurzbz muss uebergeben werden'); - -if(isset($_GET['studiengang_kz'])) - $studiengang_kz = $_GET['studiengang_kz']; -else - $studiengang_kz=''; - -if(isset($_GET['semester'])) - $semester = $_GET['semester']; -else - $semester=''; - -if(isset($_GET['oe_kurzbz'])) - $oe_kurzbz = $_GET['oe_kurzbz']; -else - $oe_kurzbz = ''; - -if(isset($_GET['uid'])) - $uid = $_GET['uid']; -else - $uid = ''; - -$db = new basis_db(); - -$stg_obj = new studiengang(); -$stg_obj->getAll('typ, kurzbz', false); - -$qry = " -SELECT (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion - WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND - funktion_kurzbz='fbk' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - LIMIT 1 - ) - ) - ) as koordinator, - (SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion - WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND - funktion_kurzbz='fbk' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - LIMIT 1 - ) - ) - ) as vorname, - - lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz, - tbl_fachbereich.fachbereich_kurzbz as fachbereich_kurzbz, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, - tbl_lehrveranstaltung.semester as lv_semester, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheitmitarbeiter.faktor, - tbl_lehreinheitmitarbeiter.stundensatz, - tbl_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden, - tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, - tbl_lehreinheitmitarbeiter.anmerkung - ,tbl_lehreinheit.studiensemester_kurzbz - ,tbl_lehrveranstaltung.ects - ,tbl_lehrveranstaltung.semesterstunden - ,tbl_lehrveranstaltung.semesterstunden as sws - ,tbl_lehrveranstaltung.lehrform_kurzbz - ,tbl_lehrveranstaltung.lehrveranstaltung_id - ,(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) - )as lv_leitung - ,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) - )as lv_leitung_vorname - ,(SELECT bezeichnung FROM lehre.tbl_lehrform WHERE lehre.tbl_lehrform.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1) as lv_type - ,tbl_lehrveranstaltung.lehrform_kurzbz -FROM - lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) - JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - LEFT JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) -WHERE - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); - -# ,(SELECT lv_semesterstunden FROM campus.vw_lehreinheit WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id and lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' LIMIT 1) as sws - -if($studiengang_kz!='') - $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - -if($oe_kurzbz!='') - $qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz); - -if($semester!='') - $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); - -if($uid!='') - $qry.=" AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($uid); - -$qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung"; - -/* -// exit($qry); -if($result = $db->db_query($qry)) -{ - $row = $db->db_fetch_object($result); - var_dump($row); -} -else - echo 'nix
'; -var_dump($stg_obj); -exit; -*/ - - - -// Creating a workbook -$workbook = new Spreadsheet_Excel_Writer(); - -// sending HTTP headers -$workbook->send("LVPlanung.xls"); -$workbook->setVersion(8); -// Creating a worksheet -$worksheet =& $workbook->addWorksheet($studiensemester_kurzbz); -$worksheet->setInputEncoding('utf-8'); -//Formate Definieren -$format_bold =& $workbook->addFormat(); -$format_bold->setBold(); - -$format_number =& $workbook->addFormat(); -$format_number->setNumFormat('0,0.00'); - -$format_number_bold =& $workbook->addFormat(); -$format_number_bold->setNumFormat('0,0.00'); -$format_number_bold->setBold(); - - -$zeile=0; -$spalte=0; -$worksheet->write($zeile,$spalte,"Studiengang", $format_bold); -$maxlength[$spalte]=11; -$worksheet->write($zeile,++$spalte,"Institut", $format_bold); -$maxlength[$spalte]=8; -$worksheet->write($zeile,++$spalte,"Koordinator", $format_bold); -$maxlength[$spalte]=11; -$worksheet->write($zeile,++$spalte,"Lektor", $format_bold); -$maxlength[$spalte]=6; -$worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold); -$maxlength[$spalte]=8; -$worksheet->write($zeile,++$spalte,"Semester", $format_bold); -$maxlength[$spalte]=8; -$worksheet->write($zeile,++$spalte,"Gruppen", $format_bold); -$maxlength[$spalte]=7; -$worksheet->write($zeile,++$spalte,"Stunden", $format_bold); -$maxlength[$spalte]=7; -$worksheet->write($zeile,++$spalte,"Kosten", $format_bold); -$maxlength[$spalte]=6; -$worksheet->write($zeile,++$spalte,"Planstunden", $format_bold); -$maxlength[$spalte]=11; -$worksheet->write($zeile,++$spalte,"Stundenblockung", $format_bold); -$maxlength[$spalte]=15; -$worksheet->write($zeile,++$spalte,"Wochenrythmus", $format_bold); -$maxlength[$spalte]=13; -$worksheet->write($zeile,++$spalte,"Raum", $format_bold); -$maxlength[$spalte]=4; -$worksheet->write($zeile,++$spalte,"Raum alternativ", $format_bold); -$maxlength[$spalte]=15; -$worksheet->write($zeile,++$spalte,"Anmerkung", $format_bold); -$maxlength[$spalte]=9; - -// Neu 13.11.2009 sequens - -$worksheet->write($zeile,++$spalte,"LV-Leitung", $format_bold); -$maxlength[$spalte]=9; - -$worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold); -$maxlength[$spalte]=9; - -$worksheet->write($zeile,++$spalte,"ALVS", $format_bold); -$maxlength[$spalte]=9; - -$worksheet->write($zeile,++$spalte,"ECTS", $format_bold); -$maxlength[$spalte]=9; - -$worksheet->write($zeile,++$spalte,"LV-Typ", $format_bold); -$maxlength[$spalte]=9; - -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - - $spalte=0; - $zeile++; - - $mitarbeiter = new mitarbeiter(); - $mitarbeiter->load($row->mitarbeiter_uid); - - //Studiengang - $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); - if($maxlength[$spalte]kuerzel_arr[$row->studiengang_kz])) - $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); - //Fachbereich - $worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); - if($maxlength[$spalte]fachbereich_kurzbz)) - $maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); - //Koordinator - $worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->vorname); - if($maxlength[$spalte]koordinator.' '.$row->vorname)) - $maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->vorname); - //Lektor - $worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname); - if($maxlength[$spalte]nachname.' '.$mitarbeiter->vorname)) - $maxlength[$spalte]=mb_strlen($mitarbeiter->nachname.' '.$mitarbeiter->vorname); - //Lehrfach - $worksheet->write($zeile,++$spalte,$row->lf_bezeichnung); - if($maxlength[$spalte]lf_bezeichnung)) - $maxlength[$spalte]=mb_strlen($row->lf_bezeichnung); - //Semester - $worksheet->write($zeile,++$spalte,$row->lv_semester); - if($maxlength[$spalte]lv_semester)) - $maxlength[$spalte]=mb_strlen($row->lv_semester); - - $qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER); - $result_gruppe = $db->db_query($qry); - $gruppe = ''; - while($row_gruppe = $db->db_fetch_object($result_gruppe)) - { - if($gruppe!='') - $gruppe.=', '; - if($row_gruppe->gruppe_kurzbz!='') - $gruppe.=$row_gruppe->gruppe_kurzbz; - else - $gruppe.=trim($stg_obj->kuerzel_arr[$row_gruppe->studiengang_kz].'-'.$row_gruppe->semester.$row_gruppe->verband.$row_gruppe->gruppe); - } - - //Gruppen - $worksheet->write($zeile,++$spalte,$gruppe); - if($maxlength[$spalte]write($zeile,++$spalte,$row->lemss); - if($maxlength[$spalte]lemss)) - $maxlength[$spalte]=mb_strlen($row->lemss); - - $kosten = ($row->stundensatz*$row->lemss*$row->faktor); - - //Kosten - $worksheet->write($zeile,++$spalte,$kosten); - if($maxlength[$spalte]write($zeile,++$spalte,$row->planstunden); - if($maxlength[$spalte]planstunden)) - $maxlength[$spalte]=mb_strlen($row->planstunden); - //Stundenblockung - $worksheet->write($zeile,++$spalte,$row->stundenblockung); - if($maxlength[$spalte]stundenblockung)) - $maxlength[$spalte]=mb_strlen($row->stundenblockung); - //Wochentrythmus - $worksheet->write($zeile,++$spalte,$row->wochenrythmus); - if($maxlength[$spalte]wochenrythmus)) - $maxlength[$spalte]=mb_strlen($row->wochenrythmus); - //Raumtyp - $worksheet->write($zeile,++$spalte,$row->raumtyp); - if($maxlength[$spalte]raumtyp)) - $maxlength[$spalte]=mb_strlen($row->raumtyp); - //Raumtypalternativ - $worksheet->write($zeile,++$spalte,$row->raumtypalternativ); - if($maxlength[$spalte]raumtypalternativ)) - $maxlength[$spalte]=mb_strlen($row->raumtypalternativ); - //Anmerkung - $worksheet->write($zeile,++$spalte,$row->anmerkung); - if($maxlength[$spalte]anmerkung)) - $maxlength[$spalte]=mb_strlen($row->anmerkung); - -// Neu 13.11.2009 sequens - //LV-Leitung - $worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname); - if($maxlength[$spalte]lv_leitung.' '.$row->lv_leitung_vorname)) - $maxlength[$spalte]=mb_strlen($row->lv_leitung.' '.$row->lv_leitung_vorname); - - //LV-Nummer - $worksheet->write($zeile,++$spalte,$row->lehrveranstaltung_id); - if($maxlength[$spalte]lehrveranstaltung_id)) - $maxlength[$spalte]=mb_strlen($row->lehrveranstaltung_id); - - //SWS - - -/* $worksheet->write($zeile,++$spalte,$row->sws); - if($maxlength[$spalte]sws)) - $maxlength[$spalte]=mb_strlen($row->sws); -*/ - $semesterstunden = $row->semesterstunden; - if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0) - $semesterstunden = 0; - - $worksheet->write($zeile,++$spalte,$semesterstunden); - if($maxlength[$spalte]write($zeile,++$spalte,$row->ects); - if($maxlength[$spalte]ects)) - $maxlength[$spalte]=mb_strlen($row->ects); - - //LV-Typ - if (empty($row->lv_type) || $row->lehrform_kurzbz=='-' ) - $row->lv_type='keine'; - $worksheet->write($zeile,++$spalte,$row->lv_type); - if($maxlength[$spalte]lv_type)) - $maxlength[$spalte]=mb_strlen($row->lv_type); - - } - - //Betreuungen - $qry = "SELECT - tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz, - (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion - WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND - funktion_kurzbz='fbk' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - LIMIT 1 - ) - ) - ) as koordinator, - (SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) - WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion - WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND - funktion_kurzbz='fbk' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - LIMIT 1 - ) - ) - ) as koordinator_vorname, nachname, vorname, lehrfach.bezeichnung, - tbl_lehrveranstaltung.semester, student_uid, stunden, tbl_projektbetreuer.stundensatz, - tbl_projektbetreuer.faktor - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_fachbereich - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND - tbl_person.person_id=tbl_projektbetreuer.person_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 - "; - - - if($uid!=='') - { - $mitarbeiter = new mitarbeiter($uid); - $qry.=" AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER); - } - - if($oe_kurzbz!='') - $qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz); - - if($studiengang_kz!='') - $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - - if($result = $db->db_query($qry)) - { - $spalte=0; - $zeile++; - $zeile++; - $worksheet->write($zeile,$spalte,"Betreuungen", $format_bold); - - while($row = $db->db_fetch_object($result)) - { - $spalte=0; - $zeile++; - - //Studiengang - $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); - if($maxlength[$spalte]kuerzel_arr[$row->studiengang_kz])) - $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); - - //Fachbereich - $worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); - if($maxlength[$spalte]fachbereich_kurzbz)) - $maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); - //Koordinator - $worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->koordinator_vorname); - if($maxlength[$spalte]koordinator.' '.$row->koordinator_vorname)) - $maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->koordinator_vorname); - //Lektor - $worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname); - if($maxlength[$spalte]nachname.' '.$row->vorname)) - $maxlength[$spalte]=mb_strlen($row->nachname.' '.$row->vorname); - //Lehrfach - $worksheet->write($zeile,++$spalte,$row->bezeichnung); - if($maxlength[$spalte]bezeichnung)) - $maxlength[$spalte]=mb_strlen($row->bezeichnung); - //Semester - $worksheet->write($zeile,++$spalte,$row->semester); - if($maxlength[$spalte]semester)) - $maxlength[$spalte]=mb_strlen($row->semester); - - $benutzer = new benutzer(); - $benutzer->load($row->student_uid); - //Student - $worksheet->write($zeile,++$spalte,$benutzer->nachname.' '.$benutzer->vorname); - if($maxlength[$spalte]nachname.' '.$benutzer->vorname)) - $maxlength[$spalte]=mb_strlen($benutzer->nachname.' '.$benutzer->vorname); - //Stunden - $worksheet->write($zeile,++$spalte,$row->stunden); - if($maxlength[$spalte]stunden)) - $maxlength[$spalte]=mb_strlen($row->stunden); - //Kosten - $worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor); - if($maxlength[$spalte]stunden*$row->stundensatz*$row->faktor)) - $maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz*$row->faktor); - - } - } - - //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); -} - $workbook->close(); -?> +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . + */ +// Erstellt ein Excel mit den Kosten der Lehrveranstaltungen +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/person.class.php'); +require_once('../../include/benutzer.class.php'); +require_once('../../include/mitarbeiter.class.php'); + +$user = get_uid(); + +loadVariables($user); + +if(isset($_GET['studiensemester_kurzbz'])) + $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; +else if(isset($_POST['studiensemester_kurzbz'])) + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; +else + die('studiensemester_kurzbz muss uebergeben werden'); + +if(isset($_GET['studiengang_kz'])) + $studiengang_kz = $_GET['studiengang_kz']; +else + $studiengang_kz=''; + +if(isset($_GET['semester'])) + $semester = $_GET['semester']; +else + $semester=''; + +if(isset($_GET['oe_kurzbz'])) + $oe_kurzbz = $_GET['oe_kurzbz']; +else + $oe_kurzbz = ''; + +if(isset($_GET['uid'])) + $uid = $_GET['uid']; +else + $uid = ''; + +$db = new basis_db(); + +$stg_obj = new studiengang(); +$stg_obj->getAll('typ, kurzbz', false); + +$qry = " +SELECT (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion + WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND + tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND + funktion_kurzbz='fbk' AND + (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + LIMIT 1 + ) + ) + ) as koordinator, + (SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion + WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND + tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND + funktion_kurzbz='fbk' AND + (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + LIMIT 1 + ) + ) + ) as vorname, + + lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz, + tbl_fachbereich.fachbereich_kurzbz as fachbereich_kurzbz, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, + tbl_lehrveranstaltung.semester as lv_semester, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheitmitarbeiter.faktor, + tbl_lehreinheitmitarbeiter.stundensatz, + tbl_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden, + tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, + tbl_lehreinheitmitarbeiter.anmerkung + ,tbl_lehreinheit.studiensemester_kurzbz + ,tbl_lehrveranstaltung.ects + ,tbl_lehrveranstaltung.semesterstunden + ,tbl_lehrveranstaltung.semesterstunden as sws + ,tbl_lehrveranstaltung.lehrform_kurzbz + ,tbl_lehrveranstaltung.lehrveranstaltung_id + ,(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) + )as lv_leitung + ,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1) + )as lv_leitung_vorname + ,(SELECT bezeichnung FROM lehre.tbl_lehrform WHERE lehre.tbl_lehrform.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1) as lv_type + ,tbl_lehrveranstaltung.lehrform_kurzbz +FROM + lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) + LEFT JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) +WHERE + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); + +# ,(SELECT lv_semesterstunden FROM campus.vw_lehreinheit WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id and lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' LIMIT 1) as sws + +if($studiengang_kz!='') + $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if($oe_kurzbz!='') + $qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz); + +if($semester!='') + $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); + +if($uid!='') + $qry.=" AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($uid); + +$qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung"; + +/* +// exit($qry); +if($result = $db->db_query($qry)) +{ + $row = $db->db_fetch_object($result); + var_dump($row); +} +else + echo 'nix
'; +var_dump($stg_obj); +exit; +*/ + + + +// Creating a workbook +$workbook = new Spreadsheet_Excel_Writer(); + +// sending HTTP headers +$workbook->send("LVPlanung.xls"); +$workbook->setVersion(8); +// Creating a worksheet +$worksheet =& $workbook->addWorksheet($studiensemester_kurzbz); +$worksheet->setInputEncoding('utf-8'); +//Formate Definieren +$format_bold =& $workbook->addFormat(); +$format_bold->setBold(); + +$format_number =& $workbook->addFormat(); +$format_number->setNumFormat('0,0.00'); + +$format_number_bold =& $workbook->addFormat(); +$format_number_bold->setNumFormat('0,0.00'); +$format_number_bold->setBold(); + + +$zeile=0; +$spalte=0; +$worksheet->write($zeile,$spalte,"Studiengang", $format_bold); +$maxlength[$spalte]=11; +$worksheet->write($zeile,++$spalte,"Institut", $format_bold); +$maxlength[$spalte]=8; +$worksheet->write($zeile,++$spalte,"Koordinator", $format_bold); +$maxlength[$spalte]=11; +$worksheet->write($zeile,++$spalte,"Lektor", $format_bold); +$maxlength[$spalte]=6; +$worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold); +$maxlength[$spalte]=8; +$worksheet->write($zeile,++$spalte,"Semester", $format_bold); +$maxlength[$spalte]=8; +$worksheet->write($zeile,++$spalte,"Gruppen", $format_bold); +$maxlength[$spalte]=7; +$worksheet->write($zeile,++$spalte,"Stunden", $format_bold); +$maxlength[$spalte]=7; +$worksheet->write($zeile,++$spalte,"Kosten", $format_bold); +$maxlength[$spalte]=6; +$worksheet->write($zeile,++$spalte,"Planstunden", $format_bold); +$maxlength[$spalte]=11; +$worksheet->write($zeile,++$spalte,"Stundenblockung", $format_bold); +$maxlength[$spalte]=15; +$worksheet->write($zeile,++$spalte,"Wochenrythmus", $format_bold); +$maxlength[$spalte]=13; +$worksheet->write($zeile,++$spalte,"Raum", $format_bold); +$maxlength[$spalte]=4; +$worksheet->write($zeile,++$spalte,"Raum alternativ", $format_bold); +$maxlength[$spalte]=15; +$worksheet->write($zeile,++$spalte,"Anmerkung", $format_bold); +$maxlength[$spalte]=9; + +// Neu 13.11.2009 sequens + +$worksheet->write($zeile,++$spalte,"LV-Leitung", $format_bold); +$maxlength[$spalte]=9; + +$worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold); +$maxlength[$spalte]=9; + +$worksheet->write($zeile,++$spalte,"ALVS", $format_bold); +$maxlength[$spalte]=9; + +$worksheet->write($zeile,++$spalte,"ECTS", $format_bold); +$maxlength[$spalte]=9; + +$worksheet->write($zeile,++$spalte,"LV-Typ", $format_bold); +$maxlength[$spalte]=9; + +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + + $spalte=0; + $zeile++; + + $mitarbeiter = new mitarbeiter(); + $mitarbeiter->load($row->mitarbeiter_uid); + + //Studiengang + $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); + if($maxlength[$spalte]kuerzel_arr[$row->studiengang_kz])) + $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); + //Fachbereich + $worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); + if($maxlength[$spalte]fachbereich_kurzbz)) + $maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); + //Koordinator + $worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->vorname); + if($maxlength[$spalte]koordinator.' '.$row->vorname)) + $maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->vorname); + //Lektor + $worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname); + if($maxlength[$spalte]nachname.' '.$mitarbeiter->vorname)) + $maxlength[$spalte]=mb_strlen($mitarbeiter->nachname.' '.$mitarbeiter->vorname); + //Lehrfach + $worksheet->write($zeile,++$spalte,$row->lf_bezeichnung); + if($maxlength[$spalte]lf_bezeichnung)) + $maxlength[$spalte]=mb_strlen($row->lf_bezeichnung); + //Semester + $worksheet->write($zeile,++$spalte,$row->lv_semester); + if($maxlength[$spalte]lv_semester)) + $maxlength[$spalte]=mb_strlen($row->lv_semester); + + $qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER); + $result_gruppe = $db->db_query($qry); + $gruppe = ''; + while($row_gruppe = $db->db_fetch_object($result_gruppe)) + { + if($gruppe!='') + $gruppe.=', '; + if($row_gruppe->gruppe_kurzbz!='') + $gruppe.=$row_gruppe->gruppe_kurzbz; + else + $gruppe.=trim($stg_obj->kuerzel_arr[$row_gruppe->studiengang_kz].'-'.$row_gruppe->semester.$row_gruppe->verband.$row_gruppe->gruppe); + } + + //Gruppen + $worksheet->write($zeile,++$spalte,$gruppe); + if($maxlength[$spalte]write($zeile,++$spalte,$row->lemss); + if($maxlength[$spalte]lemss)) + $maxlength[$spalte]=mb_strlen($row->lemss); + + $kosten = ($row->stundensatz*$row->lemss*$row->faktor); + + //Kosten + $worksheet->write($zeile,++$spalte,$kosten); + if($maxlength[$spalte]write($zeile,++$spalte,$row->planstunden); + if($maxlength[$spalte]planstunden)) + $maxlength[$spalte]=mb_strlen($row->planstunden); + //Stundenblockung + $worksheet->write($zeile,++$spalte,$row->stundenblockung); + if($maxlength[$spalte]stundenblockung)) + $maxlength[$spalte]=mb_strlen($row->stundenblockung); + //Wochentrythmus + $worksheet->write($zeile,++$spalte,$row->wochenrythmus); + if($maxlength[$spalte]wochenrythmus)) + $maxlength[$spalte]=mb_strlen($row->wochenrythmus); + //Raumtyp + $worksheet->write($zeile,++$spalte,$row->raumtyp); + if($maxlength[$spalte]raumtyp)) + $maxlength[$spalte]=mb_strlen($row->raumtyp); + //Raumtypalternativ + $worksheet->write($zeile,++$spalte,$row->raumtypalternativ); + if($maxlength[$spalte]raumtypalternativ)) + $maxlength[$spalte]=mb_strlen($row->raumtypalternativ); + //Anmerkung + $worksheet->write($zeile,++$spalte,$row->anmerkung); + if($maxlength[$spalte]anmerkung)) + $maxlength[$spalte]=mb_strlen($row->anmerkung); + +// Neu 13.11.2009 sequens + //LV-Leitung + $worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname); + if($maxlength[$spalte]lv_leitung.' '.$row->lv_leitung_vorname)) + $maxlength[$spalte]=mb_strlen($row->lv_leitung.' '.$row->lv_leitung_vorname); + + //LV-Nummer + $worksheet->write($zeile,++$spalte,$row->lehrveranstaltung_id); + if($maxlength[$spalte]lehrveranstaltung_id)) + $maxlength[$spalte]=mb_strlen($row->lehrveranstaltung_id); + + //SWS + + +/* $worksheet->write($zeile,++$spalte,$row->sws); + if($maxlength[$spalte]sws)) + $maxlength[$spalte]=mb_strlen($row->sws); +*/ + $semesterstunden = $row->semesterstunden; + if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0) + $semesterstunden = 0; + + $worksheet->write($zeile,++$spalte,$semesterstunden); + if($maxlength[$spalte]write($zeile,++$spalte,$row->ects); + if($maxlength[$spalte]ects)) + $maxlength[$spalte]=mb_strlen($row->ects); + + //LV-Typ + if (empty($row->lv_type) || $row->lehrform_kurzbz=='-' ) + $row->lv_type='keine'; + $worksheet->write($zeile,++$spalte,$row->lv_type); + if($maxlength[$spalte]lv_type)) + $maxlength[$spalte]=mb_strlen($row->lv_type); + + } + + //Betreuungen + $qry = "SELECT + tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz, + (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion + WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND + tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND + funktion_kurzbz='fbk' AND + (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + LIMIT 1 + ) + ) + ) as koordinator, + (SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion + WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND + tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND + funktion_kurzbz='fbk' AND + (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND + (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) + LIMIT 1 + ) + ) + ) as koordinator_vorname, nachname, vorname, lehrfach.bezeichnung, + tbl_lehrveranstaltung.semester, tbl_benutzer.uid as student_uid, stunden, tbl_projektbetreuer.stundensatz, + tbl_projektbetreuer.faktor + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_fachbereich, public.tbl_prestudent, public.tbl_benutzer + WHERE + tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND + tbl_projektarbeit.prestudent_id = tbl_prestudent.prestudent_id AND + tbl_prestudent.person_id = tbl_benutzer.person_id AND + tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND + lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND + tbl_person.person_id=tbl_projektbetreuer.person_id AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + "; + + + if($uid!=='') + { + $mitarbeiter = new mitarbeiter($uid); + $qry.=" AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER); + } + + if($oe_kurzbz!='') + $qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz); + + if($studiengang_kz!='') + $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + $spalte=0; + $zeile++; + $zeile++; + $worksheet->write($zeile,$spalte,"Betreuungen", $format_bold); + + while($row = $db->db_fetch_object($result)) + { + $spalte=0; + $zeile++; + + //Studiengang + $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); + if($maxlength[$spalte]kuerzel_arr[$row->studiengang_kz])) + $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]); + + //Fachbereich + $worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); + if($maxlength[$spalte]fachbereich_kurzbz)) + $maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); + //Koordinator + $worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->koordinator_vorname); + if($maxlength[$spalte]koordinator.' '.$row->koordinator_vorname)) + $maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->koordinator_vorname); + //Lektor + $worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname); + if($maxlength[$spalte]nachname.' '.$row->vorname)) + $maxlength[$spalte]=mb_strlen($row->nachname.' '.$row->vorname); + //Lehrfach + $worksheet->write($zeile,++$spalte,$row->bezeichnung); + if($maxlength[$spalte]bezeichnung)) + $maxlength[$spalte]=mb_strlen($row->bezeichnung); + //Semester + $worksheet->write($zeile,++$spalte,$row->semester); + if($maxlength[$spalte]semester)) + $maxlength[$spalte]=mb_strlen($row->semester); + + $benutzer = new benutzer(); + $benutzer->load($row->student_uid); + //Student + $worksheet->write($zeile,++$spalte,$benutzer->nachname.' '.$benutzer->vorname); + if($maxlength[$spalte]nachname.' '.$benutzer->vorname)) + $maxlength[$spalte]=mb_strlen($benutzer->nachname.' '.$benutzer->vorname); + //Stunden + $worksheet->write($zeile,++$spalte,$row->stunden); + if($maxlength[$spalte]stunden)) + $maxlength[$spalte]=mb_strlen($row->stunden); + //Kosten + $worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor); + if($maxlength[$spalte]stunden*$row->stundensatz*$row->faktor)) + $maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz*$row->faktor); + + } + } + + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite+2); +} + $workbook->close(); +?> diff --git a/content/statistik/lvplanunggesamtsj.php b/content/statistik/lvplanunggesamtsj.php index 268348547..01a84d487 100644 --- a/content/statistik/lvplanunggesamtsj.php +++ b/content/statistik/lvplanunggesamtsj.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -47,19 +48,21 @@ function drawBetreuungen() global $gesamtkosten_fb, $format_number, $format_number1; $qry_fb = "SELECT - * + *, tbl_benutzer.uid as student_uid FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrfach + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrfach, public.tbl_benutzer, public.tbl_prestudent WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_lehreinheit.lehrfach_id=tbl_lehrfach.lehrfach_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND - (tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem1)."' OR - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($stsem2)."') AND + (tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem1)." OR + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem2).") AND (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 AND - tbl_lehrfach.fachbereich_kurzbz='".addslashes($last_fb)."' + tbl_lehrfach.fachbereich_kurzbz=".$db->db_add_param($last_fb)." AND + tbl_prestudent.prestudent_id = tbl_projektarbeit.prestudent_id AND + tbl_prestudent.person_id = tbl_benutzer.person_id "; $db = new basis_db(); $gesamtkosten_betreuung=0; @@ -329,4 +332,4 @@ $worksheet->setColumn(0, 10, 10); //Kosten $worksheet->setColumn(0, 11, 20); //Gesamtkosten $workbook->close(); -?> \ No newline at end of file +?> diff --git a/content/statistik/projektarbeitexport.xls.php b/content/statistik/projektarbeitexport.xls.php index 01376c591..dfef766e4 100644 --- a/content/statistik/projektarbeitexport.xls.php +++ b/content/statistik/projektarbeitexport.xls.php @@ -1,172 +1,174 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/** - * Exportiert die Studentendaten in ein Excel File. - * Die zu exportierenden Spalten werden per GET uebergeben. - * Die Adressen werden immer dazugehaengt - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/datum.class.php'); -require_once('../../include/Excel/excel.php'); - -$db = new basis_db(); -$user = get_uid(); -$datum_obj = new datum(); -loadVariables($user); - - //Parameter holen - $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; - $semester = isset($_GET['semester'])?$_GET['semester']:''; - $verband = isset($_GET['verband'])?$_GET['verband']:''; - $gruppe = isset($_GET['gruppe'])?$_GET['gruppe']:''; - $gruppe_kurzbz = isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:''; - $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; - - $maxlength= array(); - $zeile=1; - - // Creating a workbook - $workbook = new Spreadsheet_Excel_Writer(); - $workbook->setVersion(8); - - // sending HTTP headers - $workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); - - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Studenten"); - $worksheet->setInputEncoding('utf-8'); - - $format_bold =& $workbook->addFormat(); - $format_bold->setBold(); - - $format_title =& $workbook->addFormat(); - $format_title->setBold(); - // let's merge - $format_title->setAlign('merge'); - - //Zeilenueberschriften ausgeben - - $headline=array('Typ der Projektarbeit','Titel der Projektarbeit','Student', - 'Note','Punkte','Beginn','Ende','Freigegeben','Gesperrt bis','Gesamtstunden','Themenbereich', - 'Anmerkung','Projektarbeit ID'); - - $i=0; - foreach ($headline as $title) - { - $worksheet->write(0,$i,$title, $format_bold); - $maxlength[$i]=mb_strlen($title); - $i++; - } - - // Daten holen - $qry = "SELECT - tbl_projekttyp.bezeichnung, titel, trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), - (SELECT anmerkung FROM lehre.tbl_note WHERE note=tbl_projektarbeit.note) as anmerkung, punkte, beginn, - ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, tbl_projektarbeit.anmerkung, projektarbeit_id - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_projektarbeit.student_uid=tbl_benutzer.uid AND - tbl_benutzer.person_id=tbl_person.person_id AND - tbl_projektarbeit.projekttyp_kurzbz=tbl_projekttyp.projekttyp_kurzbz AND - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND - tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND - tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; - - if($semester!='') - $qry.= " AND tbl_lehrveranstaltung.semester='".addslashes($semester)."'"; - - //echo $qry; - $zeile=1; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_array($result)) - { - $zeile++; - $i=0; - - //Projektarbeit - foreach ($row as $idx=>$content) - { - if(is_numeric($idx)) - { - $worksheet->write($zeile, $i, $content); - if(mb_strlen($content)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($content); - $i++; - } - } - $zeile++; - - //Betreuer - - $qry_betreuer = "SELECT betreuerart_kurzbz, COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,''), tbl_note.anmerkung, faktor, name, punkte, stunden, stundensatz FROM (lehre.tbl_projektbetreuer JOIN tbl_person USING(person_id)) LEFT JOIN lehre.tbl_note USING(note) WHERE projektarbeit_id='".$row['projektarbeit_id']."'"; - - if($result_betreuer = $db->db_query($qry_betreuer)) - { - if($db->db_num_rows($result_betreuer)>0) - { - $headline=array('Betreuerart','Betreuer','Note','Faktor','Name','Punkte','Stunden','Stundensatz'); - - $i=1; - - foreach ($headline as $title) - { - $worksheet->write($zeile,$i,$title, $format_bold); - if(mb_strlen($title)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($title); - $i++; - } - - $zeile++; - while($row_betreuer = $db->db_fetch_array($result_betreuer)) - { - $i=1; - - foreach ($row_betreuer as $idx=>$content) - { - if(is_numeric($idx)) - { - $worksheet->write($zeile, $i, $content); - if(mb_strlen($content)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($content); - $i++; - } - } - $zeile++; - } - } - } - - } - } - //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); - - $workbook->close(); - -?> +, + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . + */ +/** + * Exportiert die Studentendaten in ein Excel File. + * Die zu exportierenden Spalten werden per GET uebergeben. + * Die Adressen werden immer dazugehaengt + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/Excel/excel.php'); + +$db = new basis_db(); +$user = get_uid(); +$datum_obj = new datum(); +loadVariables($user); + + //Parameter holen + $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; + $semester = isset($_GET['semester'])?$_GET['semester']:''; + $verband = isset($_GET['verband'])?$_GET['verband']:''; + $gruppe = isset($_GET['gruppe'])?$_GET['gruppe']:''; + $gruppe_kurzbz = isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:''; + $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; + + $maxlength= array(); + $zeile=1; + + // Creating a workbook + $workbook = new Spreadsheet_Excel_Writer(); + $workbook->setVersion(8); + + // sending HTTP headers + $workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); + + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Studenten"); + $worksheet->setInputEncoding('utf-8'); + + $format_bold =& $workbook->addFormat(); + $format_bold->setBold(); + + $format_title =& $workbook->addFormat(); + $format_title->setBold(); + // let's merge + $format_title->setAlign('merge'); + + //Zeilenueberschriften ausgeben + + $headline=array('Typ der Projektarbeit','Titel der Projektarbeit','Student', + 'Note','Punkte','Beginn','Ende','Freigegeben','Gesperrt bis','Gesamtstunden','Themenbereich', + 'Anmerkung','Projektarbeit ID'); + + $i=0; + foreach ($headline as $title) + { + $worksheet->write(0,$i,$title, $format_bold); + $maxlength[$i]=mb_strlen($title); + $i++; + } + + // Daten holen + $qry = "SELECT + tbl_projekttyp.bezeichnung, titel, trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), + (SELECT anmerkung FROM lehre.tbl_note WHERE note=tbl_projektarbeit.note) as anmerkung, punkte, beginn, + ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, tbl_projektarbeit.anmerkung, projektarbeit_id + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp, public.tbl_prestudent + WHERE + tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id AND + tbl_prestudent.person_id=tbl_benutzer.person_id AND + tbl_benutzer.person_id=tbl_person.person_id AND + tbl_projektarbeit.projekttyp_kurzbz=tbl_projekttyp.projekttyp_kurzbz AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; + + if($semester!='') + $qry.= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester); + + //echo $qry; + $zeile=1; + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_array($result)) + { + $zeile++; + $i=0; + + //Projektarbeit + foreach ($row as $idx=>$content) + { + if(is_numeric($idx)) + { + $worksheet->write($zeile, $i, $content); + if(mb_strlen($content)>$maxlength[$i]) + $maxlength[$i]=mb_strlen($content); + $i++; + } + } + $zeile++; + + //Betreuer + + $qry_betreuer = "SELECT betreuerart_kurzbz, COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,''), tbl_note.anmerkung, faktor, name, punkte, stunden, stundensatz FROM (lehre.tbl_projektbetreuer JOIN tbl_person USING(person_id)) LEFT JOIN lehre.tbl_note USING(note) WHERE projektarbeit_id='".$row['projektarbeit_id']."'"; + + if($result_betreuer = $db->db_query($qry_betreuer)) + { + if($db->db_num_rows($result_betreuer)>0) + { + $headline=array('Betreuerart','Betreuer','Note','Faktor','Name','Punkte','Stunden','Stundensatz'); + + $i=1; + + foreach ($headline as $title) + { + $worksheet->write($zeile,$i,$title, $format_bold); + if(mb_strlen($title)>$maxlength[$i]) + $maxlength[$i]=mb_strlen($title); + $i++; + } + + $zeile++; + while($row_betreuer = $db->db_fetch_array($result_betreuer)) + { + $i=1; + + foreach ($row_betreuer as $idx=>$content) + { + if(is_numeric($idx)) + { + $worksheet->write($zeile, $i, $content); + if(mb_strlen($content)>$maxlength[$i]) + $maxlength[$i]=mb_strlen($content); + $i++; + } + } + $zeile++; + } + } + } + + } + } + //Die Breite der Spalten setzen + foreach($maxlength as $i=>$breite) + $worksheet->setColumn($i, $i, $breite+2); + + $workbook->close(); + +?> diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 420c288b8..60c3d9af4 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -3489,11 +3489,13 @@ if(!$error) $projektarbeit->insertvon = $user; } + $student = new student($_POST['student_uid']); + $projektarbeit->projekttyp_kurzbz = $_POST['projekttyp_kurzbz']; $projektarbeit->titel = $_POST['titel']; $projektarbeit->titel_english = $_POST['titel_english']; $projektarbeit->lehreinheit_id = $_POST['lehreinheit_id']; - $projektarbeit->student_uid = $_POST['student_uid']; + $projektarbeit->prestudent_id = $student->prestudent_id; $projektarbeit->firma_id = $_POST['firma_id']; $projektarbeit->note = $_POST['note']; $projektarbeit->punkte = str_replace(',','.',$_POST['punkte']); diff --git a/include/projektarbeit.class.php b/include/projektarbeit.class.php index 65a76cc14..043b9aa7f 100644 --- a/include/projektarbeit.class.php +++ b/include/projektarbeit.class.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /** * Klasse projektarbeit @@ -37,7 +38,7 @@ class projektarbeit extends basis_db public $titel; // string public $titel_english; // string public $lehreinheit_id; // integer - public $student_uid; // integer + public $prestudent_id; // integer public $firma_id; // integer public $note; // integer public $punkte; // numeric(6,2) @@ -95,7 +96,7 @@ class projektarbeit extends basis_db $this->titel = $row->titel; $this->titel_english = $row->titel_english; $this->lehreinheit_id = $row->lehreinheit_id; - $this->student_uid = $row->student_uid; + $this->prestudent_id = $row->prestudent_id; $this->firma_id = $row->firma_id; $this->note = $row->note; $this->punkte = $row->punkte; @@ -172,7 +173,7 @@ class projektarbeit extends basis_db } /*if(!is_numeric($this->note)) { - $this->errormsg = 'Note muß ein numerischer Wert sein - student_uid: '.$this->student_uid; + $this->errormsg = 'Note muß ein numerischer Wert sein - prestudent_id: '.$this->prestudent_id; return false; }*/ if($this->punkte!='' && !is_numeric($this->punkte)) @@ -224,13 +225,13 @@ class projektarbeit extends basis_db { //Neuen Datensatz einfuegen - $qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, student_uid, firma_id, note, punkte, + $qry='BEGIN; INSERT INTO lehre.tbl_projektarbeit (projekttyp_kurzbz, titel, lehreinheit_id, prestudent_id, firma_id, note, punkte, beginn, ende, faktor, freigegeben, gesperrtbis, stundensatz, gesamtstunden, themenbereich, anmerkung, insertamum, insertvon, updateamum, updatevon, titel_english) VALUES('. $this->db_add_param($this->projekttyp_kurzbz).', '. $this->db_add_param($this->titel).', '. $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. - $this->db_add_param($this->student_uid).', '. + $this->db_add_param($this->prestudent_id).', '. $this->db_add_param($this->firma_id, FHC_INTEGER).', '. $this->db_add_param($this->note).', '. $this->db_add_param($this->punkte).', '. @@ -263,7 +264,7 @@ class projektarbeit extends basis_db 'titel='.$this->db_add_param($this->titel).', '. 'titel_english='.$this->db_add_param($this->titel_english).', '. 'lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).', '. - 'student_uid='.$this->db_add_param($this->student_uid).', '. + 'prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).', '. 'firma_id='.$this->db_add_param($this->firma_id, FHC_INTEGER).', '. 'note='.$this->db_add_param($this->note).', '. 'punkte='.$this->db_add_param($this->punkte).', '. @@ -347,13 +348,13 @@ class projektarbeit extends basis_db /** * Laedt alle Projektarbeiten eines Studenten - * @param student_uid + * @param prestudent_id * @return true wenn ok, false wenn Fehler */ - public function getProjektarbeit($student_uid) + public function getProjektarbeit($prestudent_id) { $qry = "SELECT * FROM lehre.tbl_projektarbeit JOIN lehre.tbl_projekttyp USING (projekttyp_kurzbz) - WHERE student_uid=".$this->db_add_param($student_uid); + WHERE prestudent_id=".$this->db_add_param($prestudent_id); if($this->db_query($qry)) { @@ -367,7 +368,7 @@ class projektarbeit extends basis_db $obj->titel = $row->titel; $obj->titel_english = $row->titel_english; $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->student_uid = $row->student_uid; + $obj->prestudent_id = $row->prestudent_id; $obj->firma_id = $row->firma_id; $obj->note = $row->note; $obj->punkte = $row->punkte; @@ -429,7 +430,7 @@ class projektarbeit extends basis_db $obj->titel = $row->titel; $obj->titel_english = $row->titel_english; $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->student_uid = $row->student_uid; + $obj->prestudent_id = $row->prestudent_id; $obj->firma_id = $row->firma_id; $obj->note = $row->note; $obj->punkte = $row->punkte; diff --git a/include/tw/abgabe_lektor_benotung.php b/include/tw/abgabe_lektor_benotung.php index 3eb00949e..a5b27d316 100644 --- a/include/tw/abgabe_lektor_benotung.php +++ b/include/tw/abgabe_lektor_benotung.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik */ /******************************************************************************************************* * abgabe_lektor_benotung @@ -33,6 +34,7 @@ require_once('../../include/datum.class.php'); require_once('../../include/person.class.php'); require_once('../../include/benutzer.class.php'); require_once('../../include/mitarbeiter.class.php'); +require_once('../../include/student.class.php'); if (!$db = new basis_db()) die('Fehler beim Herstellen der Datenbankverbindung'); @@ -83,7 +85,10 @@ if(!$projektarbeit_obj->load($_REQUEST['projektarbeit_id'])) $titel = $projektarbeit_obj->titel; $benutzer_autor = new benutzer(); -if(!$benutzer_autor->load($projektarbeit_obj->student_uid)) +$student = new student(); +$uid = $student->getUid($projektarbeit_obj->prestudent_id); + +if(!$benutzer_autor->load($uid)) die('Studierender kann nicht geladen werden'); $nachname_clean = convertProblemChars($benutzer_autor->nachname); @@ -700,8 +705,10 @@ else $sql_query = "SELECT *,(SELECT abgabedatum FROM campus.tbl_paabgabe WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)." AND abgabedatum is NOT NULL ORDER BY abgabedatum DESC LIMIT 1) as abgabedatum FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) tbl_studiengang.bezeichnung as stgbezeichnung, tbl_studiengang.typ as stgtyp, * - FROM lehre.tbl_projektarbeit LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id) - LEFT JOIN public.tbl_benutzer on(uid=student_uid) + FROM lehre.tbl_projektarbeit + LEFT JOIN lehre.tbl_projektbetreuer using(projektarbeit_id) + LEFT JOIN public.tbl_prestudent_id using(prestudent_id) + LEFT JOIN public.tbl_benutzer on(tbl_benutzer.person_id=tbl_prestudent_id.person_id) LEFT JOIN public.tbl_student on(tbl_benutzer.uid=tbl_student.student_uid) LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) diff --git a/include/vertrag.class.php b/include/vertrag.class.php index 4ad8be725..749ff1328 100644 --- a/include/vertrag.class.php +++ b/include/vertrag.class.php @@ -1,1091 +1,1092 @@ -, - * Andreas Österreicher - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class vertrag extends basis_db -{ - public $new=true; - public $result = array(); - - public $vertragstyp_bezeichnung; - - public $vertrag_id; // bigint - public $bezeichnung; // varchar(256) - public $person_id; // bigint - public $vertragstyp_kurzbz; // varchar(32) - public $betrag; // numeric(8,2) - public $insertamum; // timestamp - public $insertvon; // varchar(32) - public $updateamum; // timestamp - public $updatevon; // varchar(32) - public $ext_id; // bigint - public $anmerkung; // text - public $vertragsdatum; // date - public $lehrveranstaltung_id; // integer - - /** - * Konstruktor - */ - public function __construct() - { - parent::__construct(); - } - - public function load($vertrag_id) - { - $qry = "SELECT * FROM lehre.tbl_vertrag WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER); - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->vertrag_id = $row->vertrag_id; - $this->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $this->bezeichnung = $row->bezeichnung; - $this->betrag = $row->betrag; - $this->person_id = $row->person_id; - $this->anmerkung = $row->anmerkung; - $this->vertragsdatum = $row->vertragsdatum; - $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; - - $this->new=false; - - return true; - } - else - { - $this->errormsg = 'Eintrag wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt die Verträge einer Person - * @param $person_id - * @return boolean true wenn ok ,false im Fehlerfall - */ - public function loadVertrag($person_id, $abgerechnet=null) - { - $qry = "SELECT - *, - tbl_vertrag.bezeichnung as bezeichnung, - tbl_vertragstyp.bezeichnung as vertragstyp_bezeichnung, - (SELECT bezeichnung FROM lehre.tbl_vertragsstatus JOIN lehre.tbl_vertrag_vertragsstatus USING(vertragsstatus_kurzbz) - WHERE vertrag_id=tbl_vertrag.vertrag_id ORDER BY datum desc limit 1) as status - FROM - lehre.tbl_vertrag - LEFT JOIN lehre.tbl_vertragstyp USING(vertragstyp_kurzbz) - WHERE person_id=".$this->db_add_param($person_id); - - if($abgerechnet===true) - $qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')"; - if($abgerechnet===false) - $qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new vertrag(); - - $obj->vertrag_id = $row->vertrag_id; - $obj->bezeichnung = $row->bezeichnung; - $obj->person_id = $row->person_id; - $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $obj->betrag = $row->betrag; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - $obj->status = $row->status; - $obj->anmerkung = $row->anmerkung; - $obj->vertragsdatum = $row->vertragsdatum; - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - - $obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Speichert den Vertragstyp in der Datenbank - * Wenn $new auf true gesetzt ist wird ein neuer Datensatz - * angelegt, ansonsten der Datensatz upgedated - * @return true wenn erfolgreich, false im Fehlerfall - */ - public function saveVertragstyp($new=null) - { - if(is_null($new)) - $new = $this->new; - - if($this->vertragstyp_kurzbz=='') - { - $this->errormsg = 'Vertragstyp_kurzbz muss angegeben werden'; - return false; - } - - if($new) - { - //Prüfung, ob Eintrag bereits vorhanden - $qry='SELECT vertragstyp_kurzbz FROM lehre.tbl_vertragstyp - WHERE vertragstyp_kurzbz='.$this->db_add_param($this->vertragstyp_kurzbz); - if($this->db_query($qry)) - { - if($this->db_fetch_object()) - { - $this->errormsg = 'Eintrag bereits vorhanden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; - return false; - } - } - - if($new) - { - $qry = 'INSERT INTO lehre.tbl_vertragstyp(vertragstyp_kurzbz, bezeichnung) VALUES('. - $this->db_add_param($this->vertragstyp_kurzbz).','. - $this->db_add_param($this->vertragstyp_bezeichnung).');'; - } - else - { - $qry = 'UPDATE lehre.tbl_vertragstyp SET '. - 'bezeichnung = '.$this->db_add_param($this->vertragstyp_bezeichnung). - 'WHERE vertragstyp_kurzbz = '.$this->db_add_param($this->vertragstyp_kurzbz); - } - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern des Vertragstyps'; - return false; - } - } - - /** - * Loescht einen Vertragstyp wenn er noch nicht verwendet wird - * @param vertragstyp_kurzbz - */ - public function deleteVertragstyp($vertragstyp_kurzbz) - { - // prüfen ob Vertrag bereits verwendet wird - $qry = "SELECT vertragstyp_kurzbz FROM lehre.tbl_vertrag - WHERE vertragstyp_kurzbz = " . $this->db_add_param($vertragstyp_kurzbz); - - if($this->db_query($qry)) - { - if($this->db_fetch_object()) - { - $this->errormsg = "Der Vertragstyp kann nicht gelöscht werden da er bereits verwendet wird"; - return false; - } - } - else - { - $this->errormsg = "Fehler beim Durchführen der Datenbankabfrage"; - return false; - } - - if(is_null($vertragstyp_kurzbz)) - { - $this->errormsg = 'Vertragstyp_kurzbz darf nicht leer sein'; - return false; - } - - $qry = "DELETE FROM lehre.tbl_vertragstyp - WHERE vertragstyp_kurzbz=".$this->db_add_param($vertragstyp_kurzbz).";"; - - if($this->db_query($qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Loeschen des Vertragstyps'; - return false; - } - } - - /** - * Liefert alle Vertragsytpen - * @return true wenn ok false im Fehlerfall - */ - public function getAllVertragstypen() - { - $qry = "SELECT * FROM lehre.tbl_vertragstyp ORDER BY bezeichnung;"; - - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $vertrag = new vertrag(); - - $vertrag->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $vertrag->vertragstyp_bezeichnung = $row->bezeichnung; - - $this->result[] = $vertrag; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt einen Vertragstyp - * - * @param $vertragstyp_kurzbz - * @return true wenn ok, false im Fehlerfall - */ - public function loadVertragstyp($vertragstyp_kurzbz) - { - $qry="SELECT * FROM lehre.tbl_vertragstyp - WHERE - vertragstyp_kurzbz=".$this->db_add_param($vertragstyp_kurzbz); - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $this->vertragstyp_bezeichnung = $row->bezeichnung; - return true; - } - else - { - $this->errormsg='Fehler beim Laden der Daten'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt die Vertragselemente die noch keinem Vertrag zugeordnet sind - * @param $person_id - * @return boolean true wenn ok ,false im Fehlerfall - */ - public function loadNichtZugeordnet($person_id) - { - /* - Lehrauftraege - UNION - Betreuungen - UNION - Pruefungen - */ - $qry = " - SELECT - 'Lehrauftrag' as type, - lehreinheit_id, - mitarbeiter_uid, - null as pruefung_id, - null as projektarbeit_id, - (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, - tbl_lehreinheit.studiensemester_kurzbz, - null as betreuerart_kurzbz, - ( SELECT - upper(tbl_studiengang.typ || tbl_studiengang.kurzbz) || tbl_lehrveranstaltung.semester || '-' || tbl_lehrveranstaltung.kurzbz || '-' || tbl_lehreinheit.lehrform_kurzbz - FROM - lehre.tbl_lehrveranstaltung - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) - as bezeichnung - FROM - lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - mitarbeiter_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).") - AND vertrag_id IS NULL - UNION - SELECT - 'Betreuung' as type, - tbl_projektarbeit.lehreinheit_id as lehreinheit_id, - null as mitarbeiter_uid, - null::integer as pruefung_id, - projektarbeit_id, - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, - tbl_lehreinheit.studiensemester_kurzbz, - tbl_projektbetreuer.betreuerart_kurzbz, - (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) - as bezeichnung - FROM - lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - person_id=".$this->db_add_param($person_id, FHC_INTEGER)." - AND vertrag_id IS NULL"; - /* - UNION - SELECT - 'Pruefung' as type, - lehreinheit_id, - mitarbeiter_uid, - pruefung_id, - null as projektarbeit_id, - '".PRUEFUNGSHONORAR."' as betrag, - tbl_lehreinheit.studiensemester_kurzbz AS studiensemester_kurzbz, - null as betreuerart_kurzbz, - ( SELECT - nachname || ' ' || vorname || ' ' || (SELECT kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) - FROM - public.tbl_person - JOIN public.tbl_benutzer USING(person_id) - WHERE uid=tbl_pruefung.student_uid) - as bezeichnung - FROM - lehre.tbl_pruefung - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - mitarbeiter_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).") - AND vertrag_id IS NULL - ";*/ - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->type = $row->type; - $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->mitarbeiter_uid = $row->mitarbeiter_uid; - $obj->projektarbeit_id = $row->projektarbeit_id; - $obj->pruefung_id = $row->pruefung_id; - $obj->betrag = $row->betrag; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle Personen die noch Lehraufträge haben die keinem - * Vertrag zugeordnet sind - * @param $studiensemester_kurzbz - * @return boolean true wenn ok, false im Fehlerfall - */ - public function loadPersonenNichtZugeordnet($studiensemester_kurzbz) - { - $db = new basis_db(); - // Alle Personen holen die Lehraufträge haben die noch keinen Verträge zugeordnet sind - $qry = "SELECT - distinct tbl_person.person_id, tbl_benutzer.uid, tbl_person.vorname, tbl_person.nachname, - tbl_person.svnr, tbl_person.titelpre, tbl_person.titelpost - FROM - public.tbl_mitarbeiter - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - JOIN public.tbl_person USING(person_id) - WHERE - tbl_mitarbeiter.fixangestellt = false - AND EXISTS(SELECT 1 FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) - WHERE - tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid - AND tbl_lehreinheitmitarbeiter.vertrag_id IS NULL - AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." - ) - OR - EXISTS (SELECT 1 FROM lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." - AND tbl_projektbetreuer.person_id=tbl_person.person_id - AND tbl_projektbetreuer.vertrag_id IS NULL - ) - "; - - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $obj = new stdClass(); - $obj->person_id = $row->person_id; - $obj->vorname = $row->vorname; - $obj->nachname = $row->nachname; - $obj->uid = $row->uid; - $obj->titelpre = $row->titelpre; - $obj->titelpost = $row->titelpost; - $obj->svnr = $row->svnr; - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt die Vertragselemente die einem Vertrag zugeordnet sind - * @param $vertrag_id - * @return boolean true wenn ok ,false im Fehlerfall - */ - public function loadZugeordnet($vertrag_id) - { - /* - Lehrauftraege - UNION - Betreuungen - UNION - Pruefungen - */ - $qry = " - SELECT - 'Lehrauftrag' as type, - lehreinheit_id, - mitarbeiter_uid, - null as pruefung_id, - null as projektarbeit_id, - (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, - tbl_lehreinheit.studiensemester_kurzbz, - null as betreuerart_kurzbz, - ( SELECT - upper(tbl_studiengang.typ || tbl_studiengang.kurzbz) || tbl_lehrveranstaltung.semester || '-' || tbl_lehrveranstaltung.kurzbz || '-' || tbl_lehreinheit.lehrform_kurzbz - FROM - lehre.tbl_lehrveranstaltung - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) - as bezeichnung - FROM - lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)." - UNION - SELECT - 'Betreuung' as type, - tbl_projektarbeit.lehreinheit_id as lehreinheit_id, - null as mitarbeiter_uid, - null::integer as pruefung_id, - projektarbeit_id, - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, - tbl_lehreinheit.studiensemester_kurzbz, - tbl_projektbetreuer.betreuerart_kurzbz, - (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) - as bezeichnung - FROM - lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";"; -/* UNION - SELECT - 'Pruefung' as type, - lehreinheit_id, - mitarbeiter_uid, - pruefung_id, - null as projektarbeit_id, - '".PRUEFUNGSHONORAR."' as betrag, - tbl_lehreinheit.studiensemester_kurzbz AS studiensemester_kurzbz, - null as betreuerart_kurzbz, - ( SELECT - nachname || ' ' || vorname || ' ' || (SELECT kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) - FROM - public.tbl_person - JOIN public.tbl_benutzer USING(person_id) - WHERE uid=tbl_pruefung.student_uid) - as bezeichnung - FROM - lehre.tbl_pruefung - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER); -*/ - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->type = $row->type; - $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->mitarbeiter_uid = $row->mitarbeiter_uid; - $obj->projektarbeit_id = $row->projektarbeit_id; - $obj->pruefung_id = $row->pruefung_id; - $obj->betrag = $row->betrag; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Speichert einen Vertrag - */ - public function save($new=null) - { - if(is_null($new)) - $new = $this->new; - - - if($new) - { - $qry = "BEGIN;INSERT INTO lehre.tbl_vertrag(bezeichnung, person_id, vertragstyp_kurzbz, betrag, insertamum, insertvon, - updateamum, updatevon, anmerkung, vertragsdatum,lehrveranstaltung_id) VALUES(". - $this->db_add_param($this->bezeichnung).','. - $this->db_add_param($this->person_id,FHC_INTEGER).','. - $this->db_add_param($this->vertragstyp_kurzbz).','. - $this->db_add_param($this->betrag).','. - $this->db_add_param($this->insertamum).','. - $this->db_add_param($this->insertvon).','. - $this->db_add_param($this->updateamum).','. - $this->db_add_param($this->updatevon).','. - $this->db_add_param($this->anmerkung).','. - $this->db_add_param($this->vertragsdatum).','. - $this->db_add_param($this->lehrveranstaltung_id).');'; - - } - else - { - $qry = "UPDATE lehre.tbl_vertrag SET ". - " bezeichnung=".$this->db_add_param($this->bezeichnung).','. - " person_id=".$this->db_add_param($this->person_id, FHC_INTEGER).','. - " vertragstyp_kurzbz=".$this->db_add_param($this->vertragstyp_kurzbz).','. - " betrag=".$this->db_add_param($this->betrag).','. - " updateamum=".$this->db_add_param($this->updateamum).','. - " updatevon=".$this->db_add_param($this->updatevon).','. - " anmerkung=".$this->db_add_param($this->anmerkung).','. - " vertragsdatum=".$this->db_add_param($this->vertragsdatum).','. - " lehrveranstaltung_id=".$this->db_add_param($this->lehrveranstaltung_id). - " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id, FHC_INTEGER,false); - } - - if($this->db_query($qry)) - { - if($new) - { - //Sequence auslesen - $qry = "SELECT currval('lehre.seq_vertrag_vertrag_id') as id;"; - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->vertrag_id = $row->id; - $this->new=false; - $this->db_query('COMMIT'); - return true; - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK;'); - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK;'); - return false; - } - } - else - return true; - } - else - { - $this->errormsg='Fehler beim Speichern der Daten'; - return false; - } - } - - /** - * Laedt alle Stati eines Vertrags - * - * @param $vertrag_id - * @return boolean - */ - public function getAllStatus($vertrag_id) - { - $qry="SELECT - * - FROM - lehre.tbl_vertrag_vertragsstatus - JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz) - WHERE - tbl_vertrag_vertragsstatus.vertrag_id=".$this->db_add_param($vertrag_id)." - ORDER BY datum DESC"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - $obj->vertrag_id = $row->vertrag_id; - $obj->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; - $obj->vertragsstatus_bezeichnung = $row->bezeichnung; - $obj->datum = $row->datum; - $obj->uid = $row->uid; - $obj->insertvon = $row->insertvon; - $obj->insertamum = $row->insertamum; - $obj->updatevon = $row->updatevon; - $obj->updateamum = $row->updateamum; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle Stati eines Vertrags - * - * @param $vertrag_id - * @return boolean - */ - public function getStatus($vertrag_id, $status=NULL) - { - $qry="SELECT - * - FROM - lehre.tbl_vertrag_vertragsstatus - JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz) - WHERE - tbl_vertrag_vertragsstatus.vertrag_id=".$this->db_add_param($vertrag_id); - - if(!is_null($status)) - { - $qry .= " AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz=".$this->db_add_param($status); - } - - $qry .= " ORDER BY datum DESC;"; - - if($result = $this->db_query($qry)) - { - if($row = $this->db_fetch_object($result)) - { - $this->vertrag_id = $row->vertrag_id; - $this->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; - $this->vertragsstatus_bezeichnung = $row->bezeichnung; - $this->datum = $row->datum; - $this->uid = $row->uid; - $this->insertvon = $row->insertvon; - $this->insertamum = $row->insertamum; - $this->updatevon = $row->updatevon; - $this->updateamum = $row->updateamum; - $this->new=false; - return true; - } - else - { - $this->errormsg = 'Eintrag wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - public function saveVertragsstatus($new=null) - { - if(is_null($new)) - $new = $this->new; - - if($new) - { - $qry = "INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertvon, updatevon, updateamum) VALUES(". - $this->db_add_param($this->vertragsstatus_kurzbz).','. - $this->db_add_param($this->vertrag_id).','. - $this->db_add_param($this->uid).','. - $this->db_add_param($this->datum).','. - $this->db_add_param($this->insertvon).','. - $this->db_add_param($this->updatevon).','. - $this->db_add_param($this->updateamum).');'; - } - else - { - $qry = "UPDATE lehre.tbl_vertrag_vertragsstatus" - . " SET updatevon=".$this->db_add_param($this->updatevon).',' - . " updateamum=".$this->db_add_param($this->updateamum).',' - . " datum=".$this->db_add_param($this->datum) - . " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id) - . " AND vertragsstatus_kurzbz=".$this->db_add_param($this->vertragsstatus_kurzbz).";"; - } - - - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Daten'; - return false; - } - } - - /** - * Laedt alle Vorhandenen Vertragsstati - * @return boolean true wenn ok, false im Fehlerfall - */ - public function loadVertragsstatus() - { - $qry = "SELECT * FROM lehre.tbl_vertragsstatus ORDER BY bezeichnung"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - $obj->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt die uebergebenen Vertraege - * @param $vertrag_id_arr array mit VertragsIDs - * @return boolean - */ - public function getVertraege($vertrag_id_arr) - { - if(count($vertrag_id_arr)==0) - { - $this->result = array(); - return false; - } - $qry = "SELECT * FROM lehre.tbl_vertrag WHERE vertrag_id in (".$this->db_implode4SQL($vertrag_id_arr).')'; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->vertrag_id = $row->vertrag_id; - $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $obj->betrag = $row->betrag; - $obj->person_id = $row->person_id; - $obj->anmerkung = $row->anmerkung; - $obj->vertragsdatum = $row->vertragsdatum; - - $this->result[]=$obj; - } - - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Loescht einen Vertragsstatus - * @param vertrag_id - * @param vertragsstatus_kurzbz - * @return boolean - */ - public function deleteVertragsstatus($vertrag_id, $vertragsstatus_kurzbz) - { - // prüfen ob Vertrag bereits verwendet wird - $qry = "DELETE FROM lehre.tbl_vertrag_vertragsstatus - WHERE - vertragsstatus_kurzbz=".$this->db_add_param($vertragsstatus_kurzbz)." - AND vertrag_id=".$this->db_add_param($vertrag_id); - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = "Fehler beim Loeschen des Eintrages"; - return false; - } - } - - /** - * Liefert die Vertraege zu einem Datum - * - */ - public function getVertragFromDatum($mitarbeiter_uid, $datum) - { - // Studiensemester zu Datum ermitteln - $stsem_obj = new studiensemester(); - $stsem = $stsem_obj->getSemesterFromDatum($datum); - - // Vorheriges Studiensemester - $prev = $stsem_obj->getPreviousFrom($stsem); - $stsem_obj->load($prev); - $prevstsemende = $stsem_obj->ende; - - // Alle Vertraege holen die in das Studiensemester fallen - // (Lehreinheiten und Betreuungen) - // plus Sonderhonorare die in diesem Zeitraum angelegt wurden - $qry = "SELECT - tbl_vertrag.* - FROM - lehre.tbl_vertrag - JOIN public.tbl_benutzer USING(person_id) - WHERE - ( - EXISTS (SELECT - 1 - FROM - lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - vertrag_id=tbl_vertrag.vertrag_id - AND studiensemester_kurzbz=".$this->db_add_param($stsem).") - OR - EXISTS (SELECT - 1 - FROM - lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - vertrag_id=tbl_vertrag.vertrag_id - AND studiensemester_kurzbz=".$this->db_add_param($stsem).") - OR - (NOT EXISTS (SELECT - 1 - FROM - lehre.tbl_lehreinheitmitarbeiter - WHERE - vertrag_id=tbl_vertrag.vertrag_id) - AND NOT EXISTS (SELECT - 1 - FROM - lehre.tbl_projektbetreuer - WHERE - vertrag_id=tbl_vertrag.vertrag_id) - )) - AND vertragsdatum<=".$this->db_add_param($datum)." - AND vertragsdatum>=".$this->db_add_param($prevstsemende)." - AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid); - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->vertrag_id = $row->vertrag_id; - $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $obj->betrag = $row->betrag; - $obj->person_id = $row->person_id; - $obj->anmerkung = $row->anmerkung; - $obj->vertragsdatum = $row->vertragsdatum; - - $this->result[]=$obj; - } - - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Loescht einen Vertrag und seine Verbindungen - * @param $vertrag_id ID des Vertrags - */ - public function delete($vertrag_id) - { - $qry = "UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; - UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; - DELETE FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; - DELETE FROM lehre.tbl_vertrag WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";"; - - if($this->db_query($qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Löschen der Daten'; - return false; - } - } - - /** - * Liefert alle Vertraege bei denen die Lehraufträge nicht zur Person passen. - * (zB Aufgrund Lektorenaenderung) - * @param $studiensemester_kurzbz - * @return boolean true wenn ok, false im Fehlerfall - */ - public function getFalscheVertraege($studiensemester_kurzbz) - { - $qry = "SELECT - tbl_vertrag.* - FROM - lehre.tbl_vertrag - JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT IN(SELECT uid FROM public.tbl_benutzer WHERE person_id=tbl_vertrag.person_id) - UNION - SELECT - tbl_vertrag.* - FROM - lehre.tbl_vertrag - JOIN lehre.tbl_projektbetreuer USING(vertrag_id) - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_projektbetreuer.person_id!=tbl_vertrag.person_id"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->vertrag_id = $row->vertrag_id; - $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $obj->betrag = $row->betrag; - $obj->person_id = $row->person_id; - $obj->anmerkung = $row->anmerkung; - $obj->vertragsdatum = $row->vertragsdatum; - - $this->result[]=$obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Liefert alle Vertraege bei denen die Lehraufträgs-Beträge nicht zur Vertragsbetrag passen - * (zB Aufgrund von Honoraraenderung) - * @param $studiensemester_kurzbz - * @return boolean true wenn ok, false im Fehlerfall - */ - public function getFalscheBetraege($studiensemester_kurzbz) - { - $qry = "SELECT - tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id, - tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden - FROM - lehre.tbl_vertrag - JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz!=tbl_vertrag.betrag"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->vertrag_id = $row->vertrag_id; - $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; - $obj->bezeichnung = $row->bezeichnung; - $obj->betrag = $row->betrag; - $obj->person_id = $row->person_id; - $obj->anmerkung = $row->anmerkung; - $obj->vertragsdatum = $row->vertragsdatum; - $obj->semesterstunden = $row->semesterstunden; - $obj->stundensatz = $row->stundensatz; - $obj->mitarbeiter_uid = $row->mitarbeiter_uid; - $obj->lehreinheit_id = $row->lehreinheit_id; - - $this->result[]=$obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } -} -?> +, + * Andreas Österreicher and + * Andreas Moik . + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class vertrag extends basis_db +{ + public $new=true; + public $result = array(); + + public $vertragstyp_bezeichnung; + + public $vertrag_id; // bigint + public $bezeichnung; // varchar(256) + public $person_id; // bigint + public $vertragstyp_kurzbz; // varchar(32) + public $betrag; // numeric(8,2) + public $insertamum; // timestamp + public $insertvon; // varchar(32) + public $updateamum; // timestamp + public $updatevon; // varchar(32) + public $ext_id; // bigint + public $anmerkung; // text + public $vertragsdatum; // date + public $lehrveranstaltung_id; // integer + + /** + * Konstruktor + */ + public function __construct() + { + parent::__construct(); + } + + public function load($vertrag_id) + { + $qry = "SELECT * FROM lehre.tbl_vertrag WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vertrag_id = $row->vertrag_id; + $this->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $this->bezeichnung = $row->bezeichnung; + $this->betrag = $row->betrag; + $this->person_id = $row->person_id; + $this->anmerkung = $row->anmerkung; + $this->vertragsdatum = $row->vertragsdatum; + $this->lehrveranstaltung_id = $row->lehrveranstaltung_id; + + $this->new=false; + + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die Verträge einer Person + * @param $person_id + * @return boolean true wenn ok ,false im Fehlerfall + */ + public function loadVertrag($person_id, $abgerechnet=null) + { + $qry = "SELECT + *, + tbl_vertrag.bezeichnung as bezeichnung, + tbl_vertragstyp.bezeichnung as vertragstyp_bezeichnung, + (SELECT bezeichnung FROM lehre.tbl_vertragsstatus JOIN lehre.tbl_vertrag_vertragsstatus USING(vertragsstatus_kurzbz) + WHERE vertrag_id=tbl_vertrag.vertrag_id ORDER BY datum desc limit 1) as status + FROM + lehre.tbl_vertrag + LEFT JOIN lehre.tbl_vertragstyp USING(vertragstyp_kurzbz) + WHERE person_id=".$this->db_add_param($person_id); + + if($abgerechnet===true) + $qry.=" AND EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')"; + if($abgerechnet===false) + $qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new vertrag(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->bezeichnung = $row->bezeichnung; + $obj->person_id = $row->person_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->betrag = $row->betrag; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->status = $row->status; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; + + $obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Speichert den Vertragstyp in der Datenbank + * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + * angelegt, ansonsten der Datensatz upgedated + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function saveVertragstyp($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($this->vertragstyp_kurzbz=='') + { + $this->errormsg = 'Vertragstyp_kurzbz muss angegeben werden'; + return false; + } + + if($new) + { + //Prüfung, ob Eintrag bereits vorhanden + $qry='SELECT vertragstyp_kurzbz FROM lehre.tbl_vertragstyp + WHERE vertragstyp_kurzbz='.$this->db_add_param($this->vertragstyp_kurzbz); + if($this->db_query($qry)) + { + if($this->db_fetch_object()) + { + $this->errormsg = 'Eintrag bereits vorhanden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Durchführen der Datenbankabfrage'; + return false; + } + } + + if($new) + { + $qry = 'INSERT INTO lehre.tbl_vertragstyp(vertragstyp_kurzbz, bezeichnung) VALUES('. + $this->db_add_param($this->vertragstyp_kurzbz).','. + $this->db_add_param($this->vertragstyp_bezeichnung).');'; + } + else + { + $qry = 'UPDATE lehre.tbl_vertragstyp SET '. + 'bezeichnung = '.$this->db_add_param($this->vertragstyp_bezeichnung). + 'WHERE vertragstyp_kurzbz = '.$this->db_add_param($this->vertragstyp_kurzbz); + } + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Vertragstyps'; + return false; + } + } + + /** + * Loescht einen Vertragstyp wenn er noch nicht verwendet wird + * @param vertragstyp_kurzbz + */ + public function deleteVertragstyp($vertragstyp_kurzbz) + { + // prüfen ob Vertrag bereits verwendet wird + $qry = "SELECT vertragstyp_kurzbz FROM lehre.tbl_vertrag + WHERE vertragstyp_kurzbz = " . $this->db_add_param($vertragstyp_kurzbz); + + if($this->db_query($qry)) + { + if($this->db_fetch_object()) + { + $this->errormsg = "Der Vertragstyp kann nicht gelöscht werden da er bereits verwendet wird"; + return false; + } + } + else + { + $this->errormsg = "Fehler beim Durchführen der Datenbankabfrage"; + return false; + } + + if(is_null($vertragstyp_kurzbz)) + { + $this->errormsg = 'Vertragstyp_kurzbz darf nicht leer sein'; + return false; + } + + $qry = "DELETE FROM lehre.tbl_vertragstyp + WHERE vertragstyp_kurzbz=".$this->db_add_param($vertragstyp_kurzbz).";"; + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Loeschen des Vertragstyps'; + return false; + } + } + + /** + * Liefert alle Vertragsytpen + * @return true wenn ok false im Fehlerfall + */ + public function getAllVertragstypen() + { + $qry = "SELECT * FROM lehre.tbl_vertragstyp ORDER BY bezeichnung;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $vertrag = new vertrag(); + + $vertrag->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $vertrag->vertragstyp_bezeichnung = $row->bezeichnung; + + $this->result[] = $vertrag; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt einen Vertragstyp + * + * @param $vertragstyp_kurzbz + * @return true wenn ok, false im Fehlerfall + */ + public function loadVertragstyp($vertragstyp_kurzbz) + { + $qry="SELECT * FROM lehre.tbl_vertragstyp + WHERE + vertragstyp_kurzbz=".$this->db_add_param($vertragstyp_kurzbz); + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $this->vertragstyp_bezeichnung = $row->bezeichnung; + return true; + } + else + { + $this->errormsg='Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die Vertragselemente die noch keinem Vertrag zugeordnet sind + * @param $person_id + * @return boolean true wenn ok ,false im Fehlerfall + */ + public function loadNichtZugeordnet($person_id) + { + /* + Lehrauftraege + UNION + Betreuungen + UNION + Pruefungen + */ + $qry = " + SELECT + 'Lehrauftrag' as type, + lehreinheit_id, + mitarbeiter_uid, + null as pruefung_id, + null as projektarbeit_id, + (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, + tbl_lehreinheit.studiensemester_kurzbz, + null as betreuerart_kurzbz, + ( SELECT + upper(tbl_studiengang.typ || tbl_studiengang.kurzbz) || tbl_lehrveranstaltung.semester || '-' || tbl_lehrveranstaltung.kurzbz || '-' || tbl_lehreinheit.lehrform_kurzbz + FROM + lehre.tbl_lehrveranstaltung + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) + as bezeichnung + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + mitarbeiter_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).") + AND vertrag_id IS NULL + UNION + SELECT + 'Betreuung' as type, + tbl_projektarbeit.lehreinheit_id as lehreinheit_id, + null as mitarbeiter_uid, + null::integer as pruefung_id, + projektarbeit_id, + (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, + tbl_lehreinheit.studiensemester_kurzbz, + tbl_projektbetreuer.betreuerart_kurzbz, + (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) JOIN public.tbl_prestudent_id ON(tbl_benutzer.person_id=tbl_prestudent.person_id) WHERE tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id) + as bezeichnung + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + person_id=".$this->db_add_param($person_id, FHC_INTEGER)." + AND vertrag_id IS NULL"; + /* + UNION + SELECT + 'Pruefung' as type, + lehreinheit_id, + mitarbeiter_uid, + pruefung_id, + null as projektarbeit_id, + '".PRUEFUNGSHONORAR."' as betrag, + tbl_lehreinheit.studiensemester_kurzbz AS studiensemester_kurzbz, + null as betreuerart_kurzbz, + ( SELECT + nachname || ' ' || vorname || ' ' || (SELECT kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) + FROM + public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + WHERE uid=tbl_pruefung.student_uid) + as bezeichnung + FROM + lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + mitarbeiter_uid IN (SELECT uid FROM public.tbl_benutzer WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).") + AND vertrag_id IS NULL + ";*/ + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->type = $row->type; + $obj->lehreinheit_id = $row->lehreinheit_id; + $obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->projektarbeit_id = $row->projektarbeit_id; + $obj->pruefung_id = $row->pruefung_id; + $obj->betrag = $row->betrag; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Personen die noch Lehraufträge haben die keinem + * Vertrag zugeordnet sind + * @param $studiensemester_kurzbz + * @return boolean true wenn ok, false im Fehlerfall + */ + public function loadPersonenNichtZugeordnet($studiensemester_kurzbz) + { + $db = new basis_db(); + // Alle Personen holen die Lehraufträge haben die noch keinen Verträge zugeordnet sind + $qry = "SELECT + distinct tbl_person.person_id, tbl_benutzer.uid, tbl_person.vorname, tbl_person.nachname, + tbl_person.svnr, tbl_person.titelpre, tbl_person.titelpost + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) + JOIN public.tbl_person USING(person_id) + WHERE + tbl_mitarbeiter.fixangestellt = false + AND EXISTS(SELECT 1 FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + WHERE + tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid + AND tbl_lehreinheitmitarbeiter.vertrag_id IS NULL + AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + ) + OR + EXISTS (SELECT 1 FROM lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + AND tbl_projektbetreuer.person_id=tbl_person.person_id + AND tbl_projektbetreuer.vertrag_id IS NULL + ) + "; + + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + $obj = new stdClass(); + $obj->person_id = $row->person_id; + $obj->vorname = $row->vorname; + $obj->nachname = $row->nachname; + $obj->uid = $row->uid; + $obj->titelpre = $row->titelpre; + $obj->titelpost = $row->titelpost; + $obj->svnr = $row->svnr; + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die Vertragselemente die einem Vertrag zugeordnet sind + * @param $vertrag_id + * @return boolean true wenn ok ,false im Fehlerfall + */ + public function loadZugeordnet($vertrag_id) + { + /* + Lehrauftraege + UNION + Betreuungen + UNION + Pruefungen + */ + $qry = " + SELECT + 'Lehrauftrag' as type, + lehreinheit_id, + mitarbeiter_uid, + null as pruefung_id, + null as projektarbeit_id, + (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, + tbl_lehreinheit.studiensemester_kurzbz, + null as betreuerart_kurzbz, + ( SELECT + upper(tbl_studiengang.typ || tbl_studiengang.kurzbz) || tbl_lehrveranstaltung.semester || '-' || tbl_lehrveranstaltung.kurzbz || '-' || tbl_lehreinheit.lehrform_kurzbz + FROM + lehre.tbl_lehrveranstaltung + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) + as bezeichnung + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)." + UNION + SELECT + 'Betreuung' as type, + tbl_projektarbeit.lehreinheit_id as lehreinheit_id, + null as mitarbeiter_uid, + null::integer as pruefung_id, + projektarbeit_id, + (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, + tbl_lehreinheit.studiensemester_kurzbz, + tbl_projektbetreuer.betreuerart_kurzbz, + (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) JOIN public.tbl_prestudent ON(tbl_benutzer.person_id = tbl_prestudent.person_id) WHERE tbl_prestudent.prestudent_id=tbl_projektarbeit.prestudent_id) + as bezeichnung + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";"; +/* UNION + SELECT + 'Pruefung' as type, + lehreinheit_id, + mitarbeiter_uid, + pruefung_id, + null as projektarbeit_id, + '".PRUEFUNGSHONORAR."' as betrag, + tbl_lehreinheit.studiensemester_kurzbz AS studiensemester_kurzbz, + null as betreuerart_kurzbz, + ( SELECT + nachname || ' ' || vorname || ' ' || (SELECT kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id) + FROM + public.tbl_person + JOIN public.tbl_benutzer USING(person_id) + WHERE uid=tbl_pruefung.student_uid) + as bezeichnung + FROM + lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER); +*/ + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->type = $row->type; + $obj->lehreinheit_id = $row->lehreinheit_id; + $obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->projektarbeit_id = $row->projektarbeit_id; + $obj->pruefung_id = $row->pruefung_id; + $obj->betrag = $row->betrag; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $obj->betreuerart_kurzbz = $row->betreuerart_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Speichert einen Vertrag + */ + public function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + + if($new) + { + $qry = "BEGIN;INSERT INTO lehre.tbl_vertrag(bezeichnung, person_id, vertragstyp_kurzbz, betrag, insertamum, insertvon, + updateamum, updatevon, anmerkung, vertragsdatum,lehrveranstaltung_id) VALUES(". + $this->db_add_param($this->bezeichnung).','. + $this->db_add_param($this->person_id,FHC_INTEGER).','. + $this->db_add_param($this->vertragstyp_kurzbz).','. + $this->db_add_param($this->betrag).','. + $this->db_add_param($this->insertamum).','. + $this->db_add_param($this->insertvon).','. + $this->db_add_param($this->updateamum).','. + $this->db_add_param($this->updatevon).','. + $this->db_add_param($this->anmerkung).','. + $this->db_add_param($this->vertragsdatum).','. + $this->db_add_param($this->lehrveranstaltung_id).');'; + + } + else + { + $qry = "UPDATE lehre.tbl_vertrag SET ". + " bezeichnung=".$this->db_add_param($this->bezeichnung).','. + " person_id=".$this->db_add_param($this->person_id, FHC_INTEGER).','. + " vertragstyp_kurzbz=".$this->db_add_param($this->vertragstyp_kurzbz).','. + " betrag=".$this->db_add_param($this->betrag).','. + " updateamum=".$this->db_add_param($this->updateamum).','. + " updatevon=".$this->db_add_param($this->updatevon).','. + " anmerkung=".$this->db_add_param($this->anmerkung).','. + " vertragsdatum=".$this->db_add_param($this->vertragsdatum).','. + " lehrveranstaltung_id=".$this->db_add_param($this->lehrveranstaltung_id). + " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id, FHC_INTEGER,false); + } + + if($this->db_query($qry)) + { + if($new) + { + //Sequence auslesen + $qry = "SELECT currval('lehre.seq_vertrag_vertrag_id') as id;"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->vertrag_id = $row->id; + $this->new=false; + $this->db_query('COMMIT'); + return true; + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK;'); + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK;'); + return false; + } + } + else + return true; + } + else + { + $this->errormsg='Fehler beim Speichern der Daten'; + return false; + } + } + + /** + * Laedt alle Stati eines Vertrags + * + * @param $vertrag_id + * @return boolean + */ + public function getAllStatus($vertrag_id) + { + $qry="SELECT + * + FROM + lehre.tbl_vertrag_vertragsstatus + JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz) + WHERE + tbl_vertrag_vertragsstatus.vertrag_id=".$this->db_add_param($vertrag_id)." + ORDER BY datum DESC"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; + $obj->vertragsstatus_bezeichnung = $row->bezeichnung; + $obj->datum = $row->datum; + $obj->uid = $row->uid; + $obj->insertvon = $row->insertvon; + $obj->insertamum = $row->insertamum; + $obj->updatevon = $row->updatevon; + $obj->updateamum = $row->updateamum; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Stati eines Vertrags + * + * @param $vertrag_id + * @return boolean + */ + public function getStatus($vertrag_id, $status=NULL) + { + $qry="SELECT + * + FROM + lehre.tbl_vertrag_vertragsstatus + JOIN lehre.tbl_vertragsstatus USING(vertragsstatus_kurzbz) + WHERE + tbl_vertrag_vertragsstatus.vertrag_id=".$this->db_add_param($vertrag_id); + + if(!is_null($status)) + { + $qry .= " AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz=".$this->db_add_param($status); + } + + $qry .= " ORDER BY datum DESC;"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + $this->vertrag_id = $row->vertrag_id; + $this->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; + $this->vertragsstatus_bezeichnung = $row->bezeichnung; + $this->datum = $row->datum; + $this->uid = $row->uid; + $this->insertvon = $row->insertvon; + $this->insertamum = $row->insertamum; + $this->updatevon = $row->updatevon; + $this->updateamum = $row->updateamum; + $this->new=false; + return true; + } + else + { + $this->errormsg = 'Eintrag wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + public function saveVertragsstatus($new=null) + { + if(is_null($new)) + $new = $this->new; + + if($new) + { + $qry = "INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertvon, updatevon, updateamum) VALUES(". + $this->db_add_param($this->vertragsstatus_kurzbz).','. + $this->db_add_param($this->vertrag_id).','. + $this->db_add_param($this->uid).','. + $this->db_add_param($this->datum).','. + $this->db_add_param($this->insertvon).','. + $this->db_add_param($this->updatevon).','. + $this->db_add_param($this->updateamum).');'; + } + else + { + $qry = "UPDATE lehre.tbl_vertrag_vertragsstatus" + . " SET updatevon=".$this->db_add_param($this->updatevon).',' + . " updateamum=".$this->db_add_param($this->updateamum).',' + . " datum=".$this->db_add_param($this->datum) + . " WHERE vertrag_id=".$this->db_add_param($this->vertrag_id) + . " AND vertragsstatus_kurzbz=".$this->db_add_param($this->vertragsstatus_kurzbz).";"; + } + + + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } + + /** + * Laedt alle Vorhandenen Vertragsstati + * @return boolean true wenn ok, false im Fehlerfall + */ + public function loadVertragsstatus() + { + $qry = "SELECT * FROM lehre.tbl_vertragsstatus ORDER BY bezeichnung"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + $obj->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt die uebergebenen Vertraege + * @param $vertrag_id_arr array mit VertragsIDs + * @return boolean + */ + public function getVertraege($vertrag_id_arr) + { + if(count($vertrag_id_arr)==0) + { + $this->result = array(); + return false; + } + $qry = "SELECT * FROM lehre.tbl_vertrag WHERE vertrag_id in (".$this->db_implode4SQL($vertrag_id_arr).')'; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->betrag = $row->betrag; + $obj->person_id = $row->person_id; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + + $this->result[]=$obj; + } + + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Loescht einen Vertragsstatus + * @param vertrag_id + * @param vertragsstatus_kurzbz + * @return boolean + */ + public function deleteVertragsstatus($vertrag_id, $vertragsstatus_kurzbz) + { + // prüfen ob Vertrag bereits verwendet wird + $qry = "DELETE FROM lehre.tbl_vertrag_vertragsstatus + WHERE + vertragsstatus_kurzbz=".$this->db_add_param($vertragsstatus_kurzbz)." + AND vertrag_id=".$this->db_add_param($vertrag_id); + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = "Fehler beim Loeschen des Eintrages"; + return false; + } + } + + /** + * Liefert die Vertraege zu einem Datum + * + */ + public function getVertragFromDatum($mitarbeiter_uid, $datum) + { + // Studiensemester zu Datum ermitteln + $stsem_obj = new studiensemester(); + $stsem = $stsem_obj->getSemesterFromDatum($datum); + + // Vorheriges Studiensemester + $prev = $stsem_obj->getPreviousFrom($stsem); + $stsem_obj->load($prev); + $prevstsemende = $stsem_obj->ende; + + // Alle Vertraege holen die in das Studiensemester fallen + // (Lehreinheiten und Betreuungen) + // plus Sonderhonorare die in diesem Zeitraum angelegt wurden + $qry = "SELECT + tbl_vertrag.* + FROM + lehre.tbl_vertrag + JOIN public.tbl_benutzer USING(person_id) + WHERE + ( + EXISTS (SELECT + 1 + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=tbl_vertrag.vertrag_id + AND studiensemester_kurzbz=".$this->db_add_param($stsem).") + OR + EXISTS (SELECT + 1 + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + vertrag_id=tbl_vertrag.vertrag_id + AND studiensemester_kurzbz=".$this->db_add_param($stsem).") + OR + (NOT EXISTS (SELECT + 1 + FROM + lehre.tbl_lehreinheitmitarbeiter + WHERE + vertrag_id=tbl_vertrag.vertrag_id) + AND NOT EXISTS (SELECT + 1 + FROM + lehre.tbl_projektbetreuer + WHERE + vertrag_id=tbl_vertrag.vertrag_id) + )) + AND vertragsdatum<=".$this->db_add_param($datum)." + AND vertragsdatum>=".$this->db_add_param($prevstsemende)." + AND tbl_benutzer.uid=".$this->db_add_param($mitarbeiter_uid); + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->betrag = $row->betrag; + $obj->person_id = $row->person_id; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + + $this->result[]=$obj; + } + + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Loescht einen Vertrag und seine Verbindungen + * @param $vertrag_id ID des Vertrags + */ + public function delete($vertrag_id) + { + $qry = "UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; + UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; + DELETE FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; + DELETE FROM lehre.tbl_vertrag WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";"; + + if($this->db_query($qry)) + return true; + else + { + $this->errormsg = 'Fehler beim Löschen der Daten'; + return false; + } + } + + /** + * Liefert alle Vertraege bei denen die Lehraufträge nicht zur Person passen. + * (zB Aufgrund Lektorenaenderung) + * @param $studiensemester_kurzbz + * @return boolean true wenn ok, false im Fehlerfall + */ + public function getFalscheVertraege($studiensemester_kurzbz) + { + $qry = "SELECT + tbl_vertrag.* + FROM + lehre.tbl_vertrag + JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT IN(SELECT uid FROM public.tbl_benutzer WHERE person_id=tbl_vertrag.person_id) + UNION + SELECT + tbl_vertrag.* + FROM + lehre.tbl_vertrag + JOIN lehre.tbl_projektbetreuer USING(vertrag_id) + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + AND tbl_projektbetreuer.person_id!=tbl_vertrag.person_id"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->betrag = $row->betrag; + $obj->person_id = $row->person_id; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + + $this->result[]=$obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Liefert alle Vertraege bei denen die Lehraufträgs-Beträge nicht zur Vertragsbetrag passen + * (zB Aufgrund von Honoraraenderung) + * @param $studiensemester_kurzbz + * @return boolean true wenn ok, false im Fehlerfall + */ + public function getFalscheBetraege($studiensemester_kurzbz) + { + $qry = "SELECT + tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id, + tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden + FROM + lehre.tbl_vertrag + JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." + AND tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz!=tbl_vertrag.betrag"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->vertrag_id = $row->vertrag_id; + $obj->vertragstyp_kurzbz = $row->vertragstyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + $obj->betrag = $row->betrag; + $obj->person_id = $row->person_id; + $obj->anmerkung = $row->anmerkung; + $obj->vertragsdatum = $row->vertragsdatum; + $obj->semesterstunden = $row->semesterstunden; + $obj->stundensatz = $row->stundensatz; + $obj->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->lehreinheit_id = $row->lehreinheit_id; + + $this->result[]=$obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } +} +?> diff --git a/rdf/abschlusspruefung.rdf.php b/rdf/abschlusspruefung.rdf.php index 63bc3e89d..f2c42166b 100755 --- a/rdf/abschlusspruefung.rdf.php +++ b/rdf/abschlusspruefung.rdf.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ // header für no cache header("Cache-Control: no-cache"); @@ -112,7 +113,7 @@ if($db->db_query($qry)) if($row_rek = $db->db_fetch_object()) $rektor = $row_rek->titelpre.' '.$row_rek->vorname.' '.$row_rek->nachname.' '.$row_rek->titelpost; $qry = "SELECT * FROM (SELECT titel as themenbereich, ende, projektarbeit_id, note, beginn FROM lehre.tbl_projektarbeit a - WHERE student_uid='$student->uid' AND (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom' OR projekttyp_kurzbz='Master' OR projekttyp_kurzbz='Dissertation' OR projekttyp_kurzbz='Lizenziat' OR projekttyp_kurzbz='Magister') + WHERE prestudent_id='$student->prestudent_id' AND (projekttyp_kurzbz='Bachelor' OR projekttyp_kurzbz='Diplom' OR projekttyp_kurzbz='Master' OR projekttyp_kurzbz='Dissertation' OR projekttyp_kurzbz='Lizenziat' OR projekttyp_kurzbz='Magister') ORDER BY beginn DESC, projektarbeit_id ASC LIMIT 2) as a ORDER BY beginn asc"; $themenbereich=''; $datum_projekt=''; diff --git a/rdf/diplomasupplement.xml.php b/rdf/diplomasupplement.xml.php index bf67885f6..10e17e2eb 100644 --- a/rdf/diplomasupplement.xml.php +++ b/rdf/diplomasupplement.xml.php @@ -327,9 +327,13 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } echo ' '.$titel_de.''; echo ' '.$titel_en.''; - $praktikum = false; - $auslandssemester = false; - $qry = "SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE student_uid=".$db->db_add_param($uid_arr[$i])." AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')"; + $praktikum = false; + $auslandssemester = false; + + if(!$student = new student($uid_arr[$i])) + die($student->errormsg); + + $qry = "SELECT projektarbeit_id FROM lehre.tbl_projektarbeit WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." AND (projekttyp_kurzbz='Praxis' OR projekttyp_kurzbz='Praktikum')"; if($db->db_query($qry)) { if($row1 = $db->db_fetch_object()) @@ -516,11 +520,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") echo " ".sprintf("%01.1f",($noteArrayPrev[7]/$noten_anzahl*100)).""; echo " ".sprintf("%01.1f",($noteArrayPrev[12]/$noten_anzahl*100)).""; + if(!$student = new student($uid_arr[$i])) + die("Student nicht gefunden"); + //Projektarbeiten - $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english + $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid=".$db->db_add_param($uid_arr[$i])." + WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." AND projekttyp_kurzbz in('Bachelor', 'Diplom') ORDER BY beginn ASC, projektarbeit_id ASC;"; @@ -762,6 +769,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $bezeichnung_englisch = $row_stud->bezeichnung_english; $bezeichnung = $row_stud->bezeichnung; + if(!$student = new student($uid_arr[$i])) + die("Student nicht gefunden"); + // Check ob Lehrveranstaltung ein Praktikum mit eingetragener Firma besitzt $qry = " SELECT @@ -771,7 +781,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN public.tbl_firma USING(firma_id) WHERE - student_uid=".$db->db_add_param($uid_arr[$i])." + prestudent_id=".$db->db_add_param($student->prestudent_id)." AND projekttyp_kurzbz in('Praktikum', 'Praxis') AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)." ORDER BY beginn ASC, projektarbeit_id ASC;"; @@ -785,11 +795,14 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") } } + if(!$student = new student($uid_arr[$i])) + die("Student nicht gefunden"); + // Check ob an Lehrveranstaltung eine Thesis hängt $qry = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid=".$db->db_add_param($uid_arr[$i])." + WHERE prestudent_id=".$db->db_add_param($student->prestudent_id)." AND projekttyp_kurzbz in('Bachelor', 'Diplom') AND lehrveranstaltung_id=".$db->db_add_param($row_stud->lehrveranstaltung_id)." ORDER BY beginn DESC, projektarbeit_id DESC LIMIT 1;"; @@ -864,12 +877,15 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") '; } + if(!$student = new student($uid_arr[$i])) + die("Student nicht gefunden"); + // Ist er Outgoing in diesem semester $qry_outgoing = "SELECT studiensemester_kurzbz, ort, ects, semesterstunden, von, bis, universitaet, lehrveranstaltung_id FROM bis.tbl_bisio JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - WHERE student_uid = ".$db->db_add_param($uid_arr[$i]); + WHERE prestudent_id = ".$db->db_add_param($student->prestudent_id); if($result_outgoing = $db->db_query($qry_outgoing)) { diff --git a/rdf/ktu_abschlusszeugnis.rdf.php b/rdf/ktu_abschlusszeugnis.rdf.php index 126589616..2645349d4 100644 --- a/rdf/ktu_abschlusszeugnis.rdf.php +++ b/rdf/ktu_abschlusszeugnis.rdf.php @@ -76,7 +76,7 @@ $pruefung = new pruefung(); $pruefung->getPruefungen($student_uid, "fachpruefung"); $projektarbeit = new projektarbeit(); -$projektarbeit->getProjektarbeit($student_uid); +$projektarbeit->getProjektarbeit($prestudent->prestudent_id); if(!$person = new person($prestudent->person_id)) die($person->errormsg); diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 869321655..7bd045d84 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ /* Erstellt einen Lehrauftrag im PDF Format * @@ -132,7 +133,7 @@ if($uid==null) WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - student_uid=vw_student.uid AND + prestudent_id=vw_student.prestudent_id AND tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND @@ -349,7 +350,7 @@ function drawLehrauftrag($uid) FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehrveranstaltung, public.tbl_fachbereich, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid AND tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz + tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND prestudent_id=vw_student.prestudent_id AND tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($ss)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id "; if($studiengang_kz!='') diff --git a/rdf/projektarbeit.rdf.php b/rdf/projektarbeit.rdf.php index 014826a4a..ee2feb42f 100644 --- a/rdf/projektarbeit.rdf.php +++ b/rdf/projektarbeit.rdf.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl and + * Andreas Moik . */ // header für no cache header("Cache-Control: no-cache"); @@ -33,6 +34,7 @@ require_once('../config/vilesci.config.inc.php'); require_once('../include/projektarbeit.class.php'); require_once('../include/datum.class.php'); require_once('../include/lehreinheit.class.php'); +require_once('../include/student.class.php'); $rdf_url='http://www.technikum-wien.at/projektarbeit'; @@ -50,7 +52,10 @@ $projektarbeit = new projektarbeit(); if(isset($_GET['student_uid'])) { - $projektarbeit->getProjektarbeit($_GET['student_uid']); + + $student = new student($_GET['student_uid']); + + $projektarbeit->getProjektarbeit($student->prestudent_id); foreach ($projektarbeit->result as $row) draw_content($row); @@ -103,4 +108,4 @@ function draw_content($row) } ?> - \ No newline at end of file + diff --git a/rdf/sammelzeugnis.rdf.php b/rdf/sammelzeugnis.rdf.php index 6526d7a62..177683202 100644 --- a/rdf/sammelzeugnis.rdf.php +++ b/rdf/sammelzeugnis.rdf.php @@ -30,6 +30,7 @@ require_once('../include/note.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/mitarbeiter.class.php'); require_once('../include/prestudent.class.php'); +require_once('../include/student.class.php'); require_once('../include/projektarbeit.class.php'); $db = new basis_db(); @@ -65,7 +66,7 @@ if(isset($_REQUEST['xmlformat']) && $_REQUEST['xmlformat']=="xml") FROM tbl_person, tbl_student, tbl_studiengang, tbl_benutzer, tbl_studentlehrverband, tbl_studiensemester WHERE tbl_student.studiengang_kz = tbl_studiengang.studiengang_kz AND tbl_student.student_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id - AND tbl_student.student_uid = '".addslashes($uid)."' + AND tbl_student.student_uid = ".$db->db_add_param($uid)." AND tbl_studentlehrverband.prestudent_id=tbl_student.prestudent_id AND tbl_studiensemester.studiensemester_kurzbz = tbl_studentlehrverband.studiensemester_kurzbz order by semester;"; @@ -124,11 +125,14 @@ if(isset($_REQUEST['xmlformat']) && $_REQUEST['xmlformat']=="xml") echo ' '.$prestudent->ausbildungssemester.''; } } + + if(!$student = new student($uid)) + die("Student nicht gefunden"); - $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english + $qry_projektarbeit = "SELECT lehrveranstaltung_id, titel, themenbereich, note, titel_english FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE student_uid='$uid' + WHERE prestudent_id=".$db->db_add_param($student->prestudent_id,FHC_INTEGER)." AND projekttyp_kurzbz in('Bachelor', 'Diplom') ORDER BY beginn ASC, projektarbeit_id ASC;"; diff --git a/rdf/zeugnis.rdf.php b/rdf/zeugnis.rdf.php index e66b06027..bb0be3696 100644 --- a/rdf/zeugnis.rdf.php +++ b/rdf/zeugnis.rdf.php @@ -241,7 +241,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $obj->getZeugnisnoten($lehrveranstaltung_id=null, $prestudent_id_arr[$i], $studiensemester_kurzbz); - $ects_gesamt = 0; + $ects_gesamt = 0; foreach ($obj->result as $row) { if($row->zeugnis) diff --git a/system/abgabe2opus.php b/system/abgabe2opus.php index 8edc7fc7f..b773515bb 100644 --- a/system/abgabe2opus.php +++ b/system/abgabe2opus.php @@ -1,1602 +1,1605 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl , - * Gerald Simane-Sequens - * - ******************************************************************************************************* - * abgabe2opus.php - * abgabe2opus kopiert neue Abgaben ins opus - *******************************************************************************************************/ - -require_once('../config/cis.config.inc.php'); -require_once('../include/datum.class.php'); -require_once('../include/mail.class.php'); -require_once("../opus/lib/stringValidation.php"); -require_once('../opus/lib/opus.class.php'); - - //$db_obj = new basis_db(); - - // zugriff auf mysql-datenbank - if (!$conn_ext=mysql_pconnect (OPUS_SERVER, OPUS_USER, OPUS_PASSWD)) - die('Fehler beim Verbindungsaufbau!'); - mysql_select_db(OPUS_DB, $conn_ext); - - //zugriff auf pg-datenbank - $conn_str='host='.DB_HOST.' port='.DB_PORT.' dbname='.DB_NAME.' user='.DB_USER.' password='.DB_PASSWORD; - //Connection Herstellen - if(!$db_conn = pg_connect($conn_str)) - die('Fehler beim Oeffnen der Datenbankverbindung'); - -mysql_set_charset('utf8',$conn_ext); -/* -$qry = "SET CLIENT_ENCODING TO 'WIN1252';"; - -if(!pg_query($db_conn,$qry)) -{ - die('Encoding konnte nicht gesetzt werden'); -} -*/ - -$datum_obj = new datum(); -//$jahr=''; -//$source_opus=''; -$fehler=''; -$fehler1=''; -$error=false; -$begutachter1=''; -$begutachter2=''; -$verfasser=''; -$abgabedatum=''; -$datum=''; -$institut=''; -$typ=''; -$bereich=1; -$stg=''; -$row_opus=0; -$opus_url=OPUS_PATH_PAA; -$url_paa=PAABGABE_PATH; -$kopiert=''; -$ii=0; - -function indexdatei($source_opus, $fd) -{ - $la="de"; - $search_creator=''; - $startfile=''; - $dir_array=array(); - $mod_gpg=''; - $publisher_faculty=''; - $advisor=''; - $date_accepted=''; - //require_once'../opus/lib/opus.class.php'; - $opus = new OPUS('../opus/lib/opus.conf'); - $php = $opus->value("php"); - $db = $opus->value("db"); - $opustable = $opus->value("opus_table"); - $url = $opus->value("url"); - $mod_checksum = $opus->value("mod_checksum"); - $projekt = $opus->value("projekt"); - $url_anzeigen = $opus->value("url_anzeigen"); - $urn_anzeigen = $opus->value("urn_anzeigen"); - $lic_active = $opus->value("license_active"); - $doku_pfad = $opus->value("doku_pfad"); - $statistik = $opus->value("statistik"); - $awstats_url = $opus->value("awstats_url"); - $awstats_config = $opus->value("awstats_config"); - $empfehlen = $opus->value("empfehlen"); - $mehrsprachig = $opus->value("mehrsprachig"); - $google_scholar = $opus->value("google_scholar"); - $url_google_scholar = $opus->value("url_google_scholar"); - # BD, 16.9.05: steht nun in frontdoor.conf - # $titel = $opus->value("titel_frontdoor"); - # $ueberschrift = $opus->value("ueberschrift_frontdoor"); - // Anfang Collections - $coll_anzeigen = $opus->value("coll_anzeigen"); - // Ende Collections - $opustable_autor = $opustable . "_autor"; - $opustable_inst = $opustable . "_inst"; - $opustable_diss = $opustable . "_diss"; - $opustable_subject_type = $opustable . "_subject_type"; - $opustable_sr = $opustable . "_schriftenreihe"; - // Anfang Collections - $opustable_coll = $opustable . "_coll"; - // Ende Collections - // Social-Bookmarking-Schnittstellen - $connotea_export = $opus->value("connotea_export"); - $delicious_export = $opus->value("delicious_export"); - $social_bookmarking = 0; - if ($connotea_export == 1 || $delicious_export == 1) - { - $social_bookmarking = 1; - } - /*if ($_REQUEST["show_connotea"]) - { - $_SESSION["show_connotea"] = true; - }*/ - // Ende Social-Bookmarking-Schnittstellen - //require_once("../opus/lib/stringValidation.php"); - //$source_opus = $_REQUEST['source_opus']; - if (!_is_valid($source_opus, 1, 10, "[0-9]+")) - { - die("Fehler in Parameter source_opus"); - } - # A.Maile 10.2.05: Sprache einlesen aus opus.conf, falls nicht gesetzt - if (!$la) - { - $la = $opus->value("la"); - } - # O. Marahrens: Automatisch alle Texte aus der Textdatei holen - $texte = new OPUS("../opus/texte/$la/frontdoor.conf"); - foreach($texte->getValues() as $k => $v) { - $$k = $v; - } - - $res = $opus->query("SELECT * FROM $opustable WHERE source_opus = $source_opus "); - $num_res = $opus->num_rows($res); - if ($num_res > 0) - { - $mrow = $opus->fetch_row($res); - $title_orig = $mrow[0]; - $title = htmlspecialchars($mrow[0]); - $creator_corporate = $mrow[1]; - $subject_swd = htmlspecialchars($mrow[2]); - $description = $mrow[3]; - # Abstract fuer die Metadaten html-codieren - $description_meta = htmlspecialchars($mrow[3]); - $publisher_university = $mrow[4]; - $contributors_name = $mrow[5]; - $contributors_corporate = $mrow[6]; - $date_year = $mrow[7]; - $date_creation = $mrow[8]; - $date_modified_old = $mrow[9]; - $type = $mrow[10]; - $source_opus = $mrow[11]; - $source_title = htmlspecialchars($mrow[12]); - $source_swb = $mrow[13]; - $language = $mrow[14]; - $verification = $mrow[15]; - $subject_uncontrolled_german = htmlspecialchars($mrow[16]); - $subject_uncontrolled_english = htmlspecialchars($mrow[17]); - $title_en = $mrow[18]; - $description2 = $mrow[19]; - # Abstract fuer die Metadaten html-codieren - $description2_meta = htmlspecialchars($mrow[19]); - $subject_type = $mrow[20]; - $date_valid = $mrow[21]; - $description_lang = $mrow[22]; - $description2_lang = $mrow[23]; - $sachgruppe_ddc = $mrow[24]; - $urn = $mrow[25]; - $bereich_id = $mrow[26]; - if ($lic_active >= 2) - { - $lic = $mrow[27]; - } - $isbn = $mrow[28]; - $bem_extern = $mrow[30]; - //******************************************************************************************************************************** - //Änderung TW - $issn = $mrow[32]; - $ac_nr = $mrow[33]; - $studiengang = $mrow[34]; - $seitenanzahl = $mrow[35]; - $datum = $mrow[36]; - $gutachter1 = $mrow[37]; - $gutachter2 = $mrow[38]; - $studiensemester = $mrow[39]; - //******************************************************************************************************************************** - $opus->free_result($res); - /***** Schriftenreihe Start *****/ - $sr_id = ""; - $sr_band = ""; - $res = $opus->query("SELECT * FROM $opustable_sr WHERE source_opus = $source_opus "); - $num_res = $opus->num_rows($res); - if ($num_res > 0) - { - $mrow = $opus->fetch_row($res); - $sr_id = $mrow[1]; - $sr_band = $mrow[2]; - $res = $opus->query("select name from schriftenreihen where sr_id = '$sr_id' "); - $mrow = $opus->fetch_row($res); - $sr_name = $mrow[0]; - $opus->free_result($res); - } - /***** Schriftenreihe Stop *****/ - /* Bei Dissertation (type 8) und Habilitation (type 24) zusaetzlich */ - /* Tag der muendlichen Pruefung (bzw. des Kollquiums) und Hauptberichter anzeigen */ - if ($type == "8" || $type == "24") - { - $res = $opus->query("SELECT date_accepted, advisor, publisher_faculty, title_de FROM $opustable_diss WHERE source_opus = $source_opus"); - $anz = $opus->num_rows($res); - if ($anz > 0) - { - $mrow = $opus->fetch_row($res); - $date_accepted = $mrow[0]; - $advisor = htmlspecialchars($mrow[1]); - $faculty_nr = $mrow[2]; - $title_de = $mrow[3]; - } - $opus->free_result($res); - $res = $opus->query("SELECT fakultaet from faculty_$la where nr = '$faculty_nr'"); - $mrow = $opus->fetch_row($res); - $publisher_faculty = $mrow[0]; - $opus->free_result($res); - } - $jahr = date("Y", $date_creation); - $res = $opus->query("SELECT name FROM institute_$la i, $opustable_inst oi WHERE i.nr=oi.inst_nr and oi.source_opus = '$source_opus'"); - $instnum = $opus->num_rows($res); - $i = 0; - while ($i < $instnum) - { - $i++; - $mrow = $opus->fetch_row($res); - $inst[$i] = $mrow[0]; - } - $opus->free_result($res); - // Anfang Collections - if ($coll_anzeigen == "true") - { - $res = $opus->query("SELECT c.coll_id FROM collections as c, $opustable_coll as oc WHERE c.coll_id = oc.coll_id and oc.source_opus = '$source_opus'"); - $collnum = $opus->num_rows($res); - $i = 0; - while ($i < $collnum) - { - $i++; - $mrow = $opus->fetch_row($res); - $coll[$i] = $mrow[0]; - } - $opus->free_result($res); - } - // Ende Collections - $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$language'"); - $mrow = $opus->fetch_row($res); - $sprache = ucfirst($mrow[0]); - $opus->free_result($res); - $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$description_lang'"); - $mrow = $opus->fetch_row($res); - $sprache_description = ucfirst($mrow[0]); - $opus->free_result($res); - if ($description2_lang != "") - { - $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$description2_lang'"); - $mrow = $opus->fetch_row($res); - $sprache_description2 = ucfirst($mrow[0]); - $opus->free_result($res); - } - $res = $opus->query("SELECT dokumentart FROM resource_type_$la WHERE typeid='$type'"); - $mrow = $opus->fetch_row($res); - $dokumentart = $mrow[0]; - $opus->free_result($res); - # Start Lizenzvertrag - # Link auf Lizenz ausgeben, falls Lizenz-Modul aktiv und Feld lic belegt. - # Falls Lizenz-Modul aktiv, aber Feld lic nicht belegt (alte OPUS-Bestaende) - # dann Link auf urheberrecht.php ausgeben. - if ($lic_active >= 2) - { - $res = $opus->query("SELECT longname, link, logo, desc_text, desc_html FROM license_$la WHERE shortname='$lic'"); - $licnum = $opus->num_rows($res); - if ($licnum == 1) - { - $mrow = $opus->fetch_row($res); - $licname = $mrow[0]; - $liclink = $mrow[1]; - $liclogo = $mrow[2]; - $licdesc = $mrow[3]; - $licdesc_html = $mrow[4]; - $liclink_head = "$lizenz

"; - } - else - { - $liclink_head = "$text1

"; - } - $opus->free_result($res); - } - else - { - $liclink_head = "$text1

"; - } - # Ende Lizenzvertrag - # Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche - # Falls in Altbestaenden (< Opus 3.0) kein Bereich angegeben ist, - # wird bereich_id auf 1 gesetzt = freier Zugriff auf die Dokumente, - # sonst kommt eine Fehlermeldung der Datenbank - if ($bereich_id == "" || $bereich_id == 0) - { - $bereich_id = 1; - } - $res = $opus->query("SELECT bereich, volltext_pfad, volltext_url FROM bereich_$la WHERE bereich_id = $bereich_id"); - $num = $opus->num_rows($res); - if ($num > 0) - { - $mrow = $opus->fetch_row($res); - $bereich = $mrow[0]; - $volltext_pfad = $mrow[1]; - $volltext_url = $mrow[2]; - $opus->free_result($res); - } - # Ende Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche - $autor = $opus->query("SELECT creator_name, reihenfolge FROM $opustable_autor WHERE source_opus = $source_opus order by reihenfolge"); - $anzahl_creator_name = $opus->num_rows($autor); - $i = 0; - while ($i < $anzahl_creator_name) - { - $mrow = $opus->fetch_row($autor); - $creator_name = $mrow[0]; - $creator_name = htmlspecialchars($creator_name); - $search_creator.= " ; " . $creator_name; - $i++; - } - $search_creator = substr($search_creator, 3); - # Titel und Autoren des Dokuments sollen in erscheinen - $titel = "$projekt - $title - $search_creator"; - # Annette Maile, 18.3.05 Design aus lib/design.php einlesen - //require ("../../lib/design.$php"); - //$design = new design; - //$design->head_titel($titel); - # Ausgabe einiger DC-Metadaten - fwrite($fd,"<META NAME=\"DC.Title\" CONTENT=\"$title\">\n"); - fwrite($fd,"<META NAME=\"title\" CONTENT=\"$title\">\n"); - if ($anzahl_creator_name > 0) - { - $opus->data_seek($autor, 0); - $i = 0; - while ($i < $anzahl_creator_name) - { - $mrow = $opus->fetch_row($autor); - $creator_name = $mrow[0]; - $creator_name = htmlspecialchars($creator_name); - fwrite($fd,"<META NAME=\"DC.Creator\" CONTENT=\"$creator_name\">\n"); - $search_creator.= " ; " . $creator_name; - $i++; - } - } - if ($search_creator != "") - { - fwrite($fd,"<META NAME=\"author\" CONTENT=\"$search_creator\">\n"); - } - $subject = $subject_swd; - if ($subject_uncontrolled_german != "") - { - $subject.= " , $subject_uncontrolled_german"; - } - if ($subject_uncontrolled_english != "") - { - $subject.= " , $subject_uncontrolled_english"; - } - fwrite($fd,"<META NAME=\"DC.Subject\" CONTENT=\"$subject\">\n"); - fwrite($fd,"<META NAME=\"keywords\" CONTENT=\"$subject\">\n"); - fwrite($fd,"<META NAME=\"DC.Identifier\" CONTENT=\"$volltext_url/$jahr/$source_opus/\">\n"); - //******************************************************************************************************************************************* - //Änderung TW - if ($urn && $urn_anzeigen) - { - if ($urn != "") - { - fwrite($fd,"<META NAME=\"DC.Identifier\" CONTENT=\"$urn\">\n"); - } - } - //******************************************************************************************************************************************* - fwrite($fd,"<META NAME=\"DC.Description\" CONTENT=\"$description_meta \n$description2_meta\">\n"); - fwrite($fd,"<META NAME=\"description\" CONTENT=\"$description_meta \n$description2_meta\">\n"); - # Ende der DC-Metadaten - //$design->head_ueberschrift($ueberschrift, $la); - # Button fuer Anzeige des Skripts in weiteren Sprachen), - # falls mehrere Sprachen angeboten werden. - if ($mehrsprachig == 1) - { - $design->andere_sprache($la); - } - # Start Ausgabe der Frontdoor - fwrite($fd,"<P><FONT class=\"frontdoor\">$liclink_head \n"); - # fwrite($fd,"Bitte beziehen Sie sich beim Zitieren dieses Dokumentes immer auf folgende<BR>\n"); - # fwrite($fd,"$dokumentart zugaenglich unter:"); - fwrite($fd,"$dokumentart $t_dokumentart_2<BR>\n"); - # Wenn Urn vorhanden und urn_anzeigen auf 1 gesetzt ist, wird die Urn angezeigt. - # Wenn keine Urn vorhanden ist und url_anzeigen auf 2 gesetzt ist, dann Url anzeigen. - # Wenn url_anzeigen auf 1 gesetzt ist, dann immer Url anzeigen. - if ($urn && $urn_anzeigen) - { - fwrite($fd,"URN: <a href=\"http://nbn-resolving.de/$urn\"><B>$urn</B></a><BR>\n"); - } - else - { - if ($url_anzeigen == 2) - { - if (file_exists("$volltext_pfad/$jahr/$source_opus") == 1) - { - fwrite($fd,"URL: <a href=\"$volltext_url/$jahr/$source_opus/\"><B>$volltext_url/$jahr/$source_opus/</B></a><BR>\n"); - } - } - } - if ($url_anzeigen == 1) - { - if (file_exists("$volltext_pfad/$jahr/$source_opus") == 1) - { - fwrite($fd,"URL: <a href=\"$volltext_url/$jahr/$source_opus/\"><B>$volltext_url/$jahr/$source_opus/</B></a><BR>\n"); - } - } - fwrite($fd,"</FONT><HR>"); - fwrite($fd,"<P>\n"); - fwrite($fd,"<B>$t_titel1:</B> $title\n"); - if ($title_en != "") - { - fwrite($fd,"<P><B>$t_titel2:</B> $title_en\n"); - } - /*if ($title_de != "") - { - fwrite($fd,"<P><B>$title_de</B>\n"); - }*/ - fwrite($fd,"<P> \n"); - include ("../opus/lib/font.html"); - $link = "$url/ergebnis.$php?suchart=teil&Lines_Displayed=10&sort=o.date_year+DESC%2C+o.title&suchfeld1=freitext&suchwert1=&opt1=AND&opt2=AND&suchfeld3=date_year&suchwert3=&startindex=0&page=0&dir=2&suche=&suchfeld2=oa.person&suchwert2="; - #$res = $opus->query("SELECT creator_name, reihenfolge from opus_autor where source_opus = $source_opus order by reihenfolge "); - if ($anzahl_creator_name > 0) - { - $opus->data_seek($autor, 0); - $mrow = $opus->fetch_row($autor); - $creator_name = $mrow[0]; - # A. Maile, 6.8.2007: Ersten Autor speichern für Google Scholar - $first_creator = $creator_name; - $person = htmlspecialchars(rawurlencode($creator_name)); - fwrite($fd,"<B>Autor(in): <A HREF=\"$link$person\">$creator_name</A></B>"); - $pod_creator_names = $person; - if ($anzahl_creator_name > 1) - { - $i = 1; - while ($i < $anzahl_creator_name) - { - $i++; - $mrow = $opus->fetch_row($autor); - $creator_name = $mrow[0]; - $person = htmlspecialchars(rawurlencode($creator_name)); - fwrite($fd," ; \n<B>Autor(in): <A HREF=\"$link$person\">$creator_name</A></B>"); - $pod_creator_names.= " ; " . $person; - } - } - } - $opus->free_result($autor); - fwrite($fd,"<P><FONT class=\"fr_font_klein\">"); - if ($contributors_name != "") - { - # fwrite($fd,"<BR>Weitere Beteiligte (Hrsg. etc.): $contributors_name \n"); - fwrite($fd,"$t_weitere_beteiligte $contributors_name <BR> \n"); - } - if ($creator_corporate != "") - { - fwrite($fd,"$creator_corporate <BR> \n"); - } - fwrite($fd,"</B> \n"); - fwrite($fd,"<P>\n"); - fwrite($fd,"<TABLE> \n"); - if ($source_title != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_quelle</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"<B>($date_year)</B> <I>$source_title</I> </TD>\n"); - fwrite($fd,"</TR> \n"); - } - /* Es werden die Formate, die in der Tabelle Format im Feld extension stehen */ - /* in der Frontdoor angezeigt. Es wird geschaut, ob das jeweilige Directory */ - /* exisitiert und die darin enthaltenen Dateien in einer Tabelle ausgegeben */ - $format = $opus->query("select extension from format where name <> 'Originalformat' "); - $num_format = $opus->num_rows($format); - $f = 0; - while ($f < $num_format) - { - $f++; - $mrow = $opus->fetch_row($format); - $ext = $mrow[0]; - if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext") == 1) - { - /* Falls Startfile .*.anzeigen vorhanden, dann nur dieses anzeigen */ - /* hauptsaechlich bei html */ - $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); - while ($file = readdir($handle)) - { - if (preg_match("/\.anzeigen/", $file)) - { - $startfile = $file; - } - } - closedir($handle); - if ($startfile != "") - { - /* fuehrenden Punkt und .anzeigen entfernen = Startfile des html-Dokuments */ - $startfile = str_replace(".anzeigen", "", $startfile); - $startfile = substr($startfile, 1); - fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$ext-$t_format:</B> \n</TD>\n"); - fwrite($fd,"\n<TD></TD><TD><TABLE BORDER=0>\n<TR>\n"); - fwrite($fd,"<TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$startfile\">Dokument1.$ext </A>\n</TD>\n"); - fwrite($fd,"\n</TR>\n</TABLE>\n"); - fwrite($fd,"</TD></TR>\n"); - } - else - { - $i = 1; - $j = 1; - /* Verzeichnis in Array einlesen und sortieren */ - $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); - while ($file = readdir($handle)) - { - if ($file != "." && $file != "..") - { - /* Dateien, die mit .bem_ beginnen sind Bemerkungen zu den Dateien, */ - /* daher werden nur Dateien, die nicht mit .bem_ anfangen in der */ - /* Frontdoor aufgelistet. Gepackte Dateien werden separat aufgelistet */ - if (!preg_match("/^\.bem_/", $file) && !preg_match("/\.zip/i", $file) && !preg_match("/\.gz/i", $file)) { - $dir_array[count($dir_array) ] = $file; - } - } - } - closedir($handle); - $num = count($dir_array); - if ($num > 0) - { - sort($dir_array); - fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$ext-$t_format:</B> \n</TD>\n"); - fwrite($fd,"\n<TD></TD><TD class=\"frontdoor\"><TABLE BORDER=0>\n<TR>\n"); - $k = 0; - while ($k < $num) - { - $filename = array_shift($dir_array); - $bem_file = ""; - if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename")) - { - $fd = fopen("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename", "r"); - $bem_file = fread($fd, filesize("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename")); - fclose($fd); - } - $file = "$volltext_pfad/$jahr/$source_opus/$ext/$filename"; - $array = explode(".", $filename); - $last = count($array) -1; - $ext2 = strtolower($array[$last]); - $size = stat($file); - $filesize = $size[7]; - $filesize = $filesize/1024; - if ($filesize < 1) - { - $filesize = number_format($filesize, 1, ",", "."); - } - else - { - $filesize = number_format($filesize, 0, ",", "."); - } - $format2 = $opus->query("select extension from format where extension like '$ext2%' "); - $num_format2 = $opus->num_rows($format2); - if ($num_format2 > 0) - { - if ($i > 3) - { - fwrite($fd,"\n</TR>\n<TR>\n"); - $i = 1; - } - fwrite($fd,"<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$filename\" target=\"new\">Dokument $j.$ext2 ($filesize KB) </A> "); - if ($bem_file != "") - { - fwrite($fd,"($bem_file)"); - } - fwrite($fd,"\n</TD>\n"); - $i++; - $j++; - } - $k++; - } - fwrite($fd,"\n</TR>\n</TABLE>\n"); - fwrite($fd,"</TD></TR>\n"); - } - } - /* gezipptes File mit Endung zip bzw. gz einlesen */ - $g = 0; - while ($g < 2) - { - $g++; - if ($g == 1) - { - $z = "zip"; - } - if ($g == 2) - { - $z = "gz"; - } - $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); - while ($file = readdir($handle)) - { - if (preg_match("/\.$z/i", $file)) - { - if (!preg_match("/^\.bem_/", $file)) - { - $line = "$volltext_pfad/$jahr/$source_opus/$ext/$file"; - $size = stat($line); - $filesize = $size[7]; - $filesize = $filesize/1024; - if ($filesize < 1) - { - $filesize = number_format($filesize, 1);; - } - else - { - $filesize = number_format($filesize); - } - $bem_file = ""; - if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file")) - { - $fd = fopen("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file", "r"); - $bem_file = fread($fd, filesize("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file")); - fclose($fd); - } - fwrite($fd,"<TR>\n<TD class=\"frontdoor\">"); - fwrite($fd,"<B>$ext gepackt:</B> \n</TD>\n"); - fwrite($fd,"\n<TD></TD><TD><TABLE BORDER=0>\n<TR>\n"); - fwrite($fd,"<TD class=\"frontdoor\">"); - fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$file\">Dokument1.$z ($filesize KB) </A> "); - if ($bem_file != "") - { - fwrite($fd,"($bem_file)"); - } - fwrite($fd,"\n</TD>\n"); - fwrite($fd,"\n</TR>\n</TABLE>\n"); - fwrite($fd,"</TD></TR>\n"); - } - } - } - closedir($handle); - } - } - } - $opus->free_result($format); - fwrite($fd,"</table>"); - fwrite($fd,"<BR> \n"); - - # Checksummen-Ueberpruefung - if ($mod_gpg == 1 || $mod_checksum == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$url/dok_unversehrtheit.php?la=$la&source_opus=$source_opus\" title=\"$unv\"><img src=\"$url/Icons/unversehrt.jpg\" border=\"0\"></a> \n"); - } - - # A. Maile 11.10.05: Link zur Dokumentempfehlung - if ($empfehlen == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$url/mailform.php?la=$la&bereich_id=$bereich_id&jahr=$jahr&source_opus=$source_opus\" title=\"$t_empfehlen\"><img src=\"$url/Icons/hand.jpg\" border=\"0\"></a> \n"); - } - - # A. Maile 11.10.05: Link zur Statistik-Anzeige - if ($statistik == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><a href=\"$url/statistik.php?source_opus=$source_opus&title=".htmlspecialchars(rawurlencode($title))."&la=$la\" TARGET=_blank title=\"$t_statistik\"><img src=\"$url/Icons/statistik.jpg\" border=\"0\"></A> \n"); - # Fuer Statistik mit awstats folgende Zeile auskommentieren. - #fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$awstats_url?urlfilter=/$source_opus/&urlfilterex=&output=urldetail&config=$awstats_config&lang=de \" TARGET=_blank title=\"$t_statistik\"><img src=\"$url/Icons/statistik.jpg\" border=\"0\"></A> $t_statistik \n"); - } - - # O.Marahrens 30.03.07: Social-Bookmarking-Dienste - if ($social_bookmarking == 1) - { - # O.Marahrens 02.02.07: Link zum Connotea-Bookmark - if ($connotea_export == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><!--<a href=\"" . $_SERVER["REQUEST_URI"] . "&show_connotea=1#connotea_interface\" title=\"$t_connotea_bookmark\">--><a href=\"$url/connotea.php?source_opus=$source_opus\" title=\"$t_connotea_bookmark\" onclick=\"window.open('$url/connotea.php?source_opus=$source_opus','connotea','toolbar=no,width=700,height=400'); return false;\"><img src=\"$url/Icons/connotea_icon.jpg\" border=\"0\" alt=\"$t_connotea_bookmark\" /></a> \n"); - } - # U.Herb: del.icio.us-Bookmarking - if ($delicious_export == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"http://del.icio.us/post\" title=\"$t_delicious_bookmark\" - onclick=\"window.open('http://del.icio.us/post?v=4&noui&jump=close&url='+encodeURIComponent(location.href)+ - '&title='+encodeURIComponent(document.title), - 'delicious','toolbar=no,width=700,height=400'); return false;\" alt=\"$t_delicious_bookmark\"><img src=\"$url/Icons/delicious.jpg\" border=\"0\" alt=\"$t_delicious_bookmark\" /></A> \n"); - } - } - # A. Maile 6.8.2007: Link auf Google Scholar mit Suche nach exaktem Titel und Autor - if ($google_scholar == 1) - { - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><a href=\"$url_google_scholar%22" . rawurlencode(utf8_encode($title_orig)) . "%22&as_sauthors=%22" . rawurlencode(utf8_encode($first_creator)) . "%22\" target=\"new\" title=\"$t_google_scholar\"><img src=\"$url/Icons/google_scholar.jpg\" border=\"0\"></a> \n"); - } - - fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\">" . - "<a href=\"$url/biblio.php?source_opus=$source_opus&export=" . - "bibtex\" title=\"$t_bibtex\"><img src=\"$url/Icons/bibtex.jpg\" border=\"0\"></a> \n" . - "<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\">" . - "<a href=\"$url/biblio.php?source_opus=$source_opus&export=ris\" title=\"$t_ris\">" . - "<img src=\"$url/Icons/ris.jpg\" border=\"0\"></a> \n"); - - fwrite($fd,"<hr> \n"); - fwrite($fd,"<table>"); - - if ($lic_active >= 1) - { - $pod_active = $opus->value("pod_active"); - if ($pod_active > 0 && $bereich_id == 1) { // check, ob lic pod erlaubt und Volltext frei zugaenglich - $res = $opus->query("SELECT pod_allowed FROM license_$la WHERE shortname='$lic'"); - $podnum = $opus->num_rows($res); - if ($podnum == 1) - { - $mrow = $opus->fetch_row($res); - if ($mrow[0] == 1) - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\">"); - fwrite($fd,"<B>$pod_linkname_1</B> </TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\">\n<table border=\"0\"><tr><td class=\"frontdoor\">\n"); - $pod_info = $opus->value("pod_info"); - $tmp_url = "$volltext_url/$jahr/$source_opus/"; - $podlink = $pod_info . "?urn=" . urlencode($urn) . "&docurl=" . urlencode($tmp_url) . "&lic=" . $lic . "&aut=" . $pod_creator_names . "&tit=" . htmlspecialchars(rawurlencode($title)) . "&bereich_id=" . $bereich_id . "&la=" . $la; - $pod_uselogos = $opus->value("pod_uselogos"); - $pod_partner_logo = $opus->value("pod_partner_logo"); - if (($pod_uselogos) AND (strlen($pod_partner_logo) > 0)) - { - $podlogo_width = $opus->value("pod_logo_width"); - $podlogo_height = $opus->value("pod_logo_height"); - $podlogo_wh = ""; - if ($podlogo_width) - { - $podlogo_wh.= " width=\"" . $podlogo_width . "\""; - } - if ($podlogo_height) - { - $podlogo_wh.= " height=\"" . $podlogo_height . "\""; - } - fwrite($fd,"<a href=\"$podlink\" target=\"_blank\">\n"); - fwrite($fd,"<img src=\"" . $pod_partner_logo . "\" alt=\"POD-Logo\" border=\"0\"" . $podlogo_wh . ">"); - fwrite($fd,"</a> \n"); - } - fwrite($fd,"<a href=\"$podlink\" target=\"_blank\">"); - fwrite($fd,"$pod_linkname_2 </a> \n</td>\n</tr>\n</table>\n</TD>\n"); - fwrite($fd,"</TR> \n"); - } - } - $opus->free_result($res); - } - } - - # Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche - # Wenn Zugriffsbeschraenkung besteht ($bereich_id > 1) - # dann diese anzeigen. - if ($bereich_id > 1) - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - # fwrite($fd,"<B>Zugriffsbeschränkung:</B></TD> \n"); - fwrite($fd,"<B>$text3:</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$bereich </TD>\n"); - fwrite($fd,"</TR> \n"); - } - # Ende Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche - if ($subject_swd != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\" width=\"130\">"); - fwrite($fd,"<B>$schlagwoerter_swd</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$subject_swd </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($subject_uncontrolled_german != "") - { - fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$schlagwoerter_frei</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$subject_uncontrolled_german </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($subject_uncontrolled_english != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$schlagwoerter_engl</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$subject_uncontrolled_english </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($subject_type != "") - { - $opustable_subject_type = $opustable . "_" . $subject_type; - $res = $opus->query("SELECT class from $opustable_subject_type where source_opus = $source_opus"); - $num = $opus->num_rows($res); - if ($num > 0) - { - $mrow = $opus->fetch_row($res); - $class = $mrow[0]; - $i = 1; - while ($i < $num) - { - $i++; - $mrow = $opus->fetch_row($res); - $class = "$class , $mrow[0]"; - } - $opus->free_result($res); - $res = $opus->query("SELECT name from klassifikation_$la where table_name = '$subject_type' "); - $mrow = $opus->fetch_row($res); - $class_name = $mrow[0]; - $opus->free_result($res); - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$class_name:</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$class </TD>\n"); - fwrite($fd,"</TR> \n"); - } - } - //Anfang Collections - if ($coll_anzeigen == "true") - { - $i = 0; - while ($i < $collnum) - { - $i++; - // Wir finden den coll_name der Collection heraus - $res_coll = $opus->query("SELECT coll_name FROM collections WHERE coll_id = $coll[$i];"); - $mrow_coll = $opus->fetch_row($res_coll); - $coll_name = $mrow_coll[0]; - // Wir finden den Namen und die ganze Hierarchie nach oben heraus - $query_eltern = "SELECT a.coll_name, (a.rgt - a.lft ) AS height - FROM collections AS a, collections AS b - WHERE b.lft BETWEEN a.lft AND a.rgt - AND b.coll_id = '$coll[$i]' - ORDER BY height DESC;"; - $res_eltern = $opus->query($query_eltern); - $num_eltern = $opus->num_rows($res_eltern); - fwrite($fd,"<tr> \n<td class=\"frontdoor\" valign=\"top\">"); - if ($collnum > 1) - { - fwrite($fd,"<b>$t_collection $i:</b></td> \n"); - } - else - { - fwrite($fd,"<b>$t_collection:</b></td>\n"); - } - fwrite($fd,"<td></td><td class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"<a href=\"$url/abfrage_collections.php?coll_id=$coll[$i]&la=$la\" target=\"new\">"); - $m = 0; - while ($m < $num_eltern) - { - $mrow_eltern = $opus->fetch_row($res_eltern); - $coll_name_eltern = $mrow_eltern[0]; - if ($coll_name_eltern != $coll_name) - { - fwrite($fd,"$coll_name_eltern / "); - } - else - { - fwrite($fd,"$coll_name_eltern"); - } - $m++; - } - fwrite($fd,"</a></td> \n"); - fwrite($fd,"</tr> \n"); - } - } - // Ende Collections - $i = 0; - while ($i < $instnum) - { - $i++; - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - if ($instnum > 1) - { - fwrite($fd,"<B>$t_institut $i:</B></TD> \n"); - } - else - { - fwrite($fd,"<B>$t_institut:</B></TD> \n"); - } - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$inst[$i]</TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($publisher_faculty != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_fakultaet</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$publisher_faculty </TD>\n"); - fwrite($fd,"</TR> \n"); - } - //*************************************************************************************************************************************** - //Änderung TW - //Studiengang, Seitenanzahl, Datum, AC-Nummer und Begutachter eingefügt - if ($studiengang != "" && $studiengang>0) - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - $res = $opus->query("SELECT * FROM studiengang WHERE stg_nr ='$studiengang'"); - $rrr = 'name_'.$la; - $mrow = $opus->fetch_object($res); - $name = $mrow->$rrr; - $typ = $mrow->typ; - fwrite($fd,"<B>$t_studiengang</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$studiengang, $typ $name </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($ac_nr != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_acnr</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$ac_nr </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($seitenanzahl != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_sanz</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$seitenanzahl </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($datum != "" && $datum!=NULL) - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_datum</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - $datum_obj = new datum(); - $datum=$datum_obj->formatDatum($datum, 'd.m.Y'); - fwrite($fd,$datum."</TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($gutachter1 != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_gutachter1</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$gutachter1 </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($gutachter2 != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_gutachter2</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$gutachter2 </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($studiensemester != 0 && $studiensemester != '') - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_studiensemester</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$studiensemester</TD>\n"); - fwrite($fd,"</TR> \n"); - } - //**************************************************************************************************************************************** - if ($sachgruppe_ddc != "" && $sachgruppe_ddc != "no") - { - $res = $opus->query("SELECT sachgruppe FROM sachgruppe_ddc_$la where nr = '$sachgruppe_ddc'"); - $num = $opus->num_rows($res); - if ($num > 0) - { - $mrow = $opus->fetch_row($res); - $sachgruppe_ddc = $mrow[0]; - } - $opus->free_result($res); - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$ddc_sachgruppe</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$sachgruppe_ddc</TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($contributors_corporate != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$sonstige_institution</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$contributors_corporate </TD>\n"); - fwrite($fd,"</TR> \n"); - } - - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_dokumentart</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$dokumentart </TD>\n"); - fwrite($fd,"</TR> \n"); - /***** Schriftenreihe Start *****/ - if ($sr_id != "" && $sr_band != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_schriftenreihe</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"<a href=\"$url/schriftenreihen_ebene2.php?sr_id=$sr_id&la=$la\" target=\"new\">$sr_name</a> </TD>\n"); - fwrite($fd,"</TR> \n"); - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_bandnr</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$sr_band </TD>\n"); - fwrite($fd,"</TR> \n"); - } - /***** Schriftenreihe Stop *****/ - if ($advisor != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_hauptberichter</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$advisor </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($isbn != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_isbn</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$isbn </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($issn != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_issn</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$issn </TD>\n"); - fwrite($fd,"</TR> \n"); - } - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_sprache</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$sprache </TD>\n"); - fwrite($fd,"</TR> \n"); - if ($date_accepted != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_pruefung_muendlich</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - $date_accepted_format = strftime("%d.%m.%Y", $date_accepted); - fwrite($fd,"$date_accepted_format </TD>\n"); - fwrite($fd,"</TR> \n"); - } - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_erstellungsjahr</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$date_year </TD>\n"); - fwrite($fd,"</TR> \n"); - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_publikationsdatum</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - $date_creation_format = strftime("%d.%m.%Y", $date_creation); - fwrite($fd,"$date_creation_format </TD>\n"); - fwrite($fd,"</TR> \n"); - if ($date_valid != 0) - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - #fwrite($fd,"<B>Gültig bis:</B></TD> \n"); - fwrite($fd,"<B>$text6</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - $date_valid_format = strftime("%d.%m.%Y", $date_valid); - fwrite($fd,"$date_valid_format </TD>\n"); - fwrite($fd,"</TR> \n"); - } - if ($bem_extern != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$t_bemerkung</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,"$bem_extern </TD>\n"); - fwrite($fd,"</TR> \n"); - } - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$text4 $sprache_description:</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,nl2br($description)); - fwrite($fd,"</TD>\n"); - fwrite($fd,"</TR> \n"); - if ($description2 != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$text4 $sprache_description2:</B></TD> \n"); - fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); - fwrite($fd,nl2br($description2)); - fwrite($fd,"</TD>\n"); - fwrite($fd,"</TR> \n"); - } - # Start Lizenzvertrag - if ($lic_active >= 2) - { - if ($licname != "") - { - fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); - fwrite($fd,"<B>$lizenz:</B></TD> \n"); - fwrite($fd,"<TD></TD>\n<TD class=\"frontdoor\" valign=\"bottom\">"); - if (strlen(trim($licdesc_html)) > 0) - { - fwrite($fd,"\n" . $licdesc_html . "\n"); - } - $lic_uselogos = $opus->value("license_uselogos"); - if (($lic_uselogos) AND (strlen($liclogo) > 0)) - { - $liclogo_width = $opus->value("license_logo_width"); - $liclogo_height = $opus->value("license_logo_height"); - $liclogo_wh = ""; - if ($liclogo_width) - { - $liclogo_wh.= " width=\"" . $liclogo_width . "\""; - } - if ($liclogo_height) - { - $liclogo_wh.= " height=\"" . $liclogo_height . "\""; - } - fwrite($fd,"<a href=\"$liclink?la=$la\" target=\"_blank\">\n"); - fwrite($fd,"<img src=\"" . $liclogo . "\" alt=\"Lizenz-Logo\" border=\"0\"" . $liclogo_wh . ">"); - fwrite($fd,"</a> \n"); - } - fwrite($fd,"<a href=\"$liclink?la=$la\" target=\"_blank\">\n"); - fwrite($fd,"$licname</a> \n</td>\n"); - fwrite($fd,"</tr> \n"); - } - } - fwrite($fd,"</TABLE> \n"); - } - else - { - #fwrite($fd,"IDN $source_opus nicht vorhanden."); - fwrite($fd,"$text7 $source_opus $text8 "); - } - //$opus->close($sock); -} - - -//**************************************************************************************************** -//Einlesen Projektarbeiten (nur Diplomarbeiten) -//Bedingungen: -//Entweder DA oder LV benotet -//Abgabedatum nicht länger als 6 Monate zurück -//Freigegeben oder Endedatum der Sperre vorbei -//**************************************************************************************************** -$qry="SELECT *, tbl_lehreinheit.studiensemester_kurzbz, tbl_projektarbeit.student_uid as stud_uid, tbl_fachbereich.bezeichnung as fb_bez, - tbl_lehrveranstaltung.studiengang_kz as stg_kz, tbl_projektarbeit.note as note1, tbl_zeugnisnote.note as note2 - FROM lehre.tbl_projektarbeit - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_projektarbeit.student_uid=tbl_zeugnisnote.student_uid) - WHERE ((tbl_projektarbeit.note>0 AND tbl_projektarbeit.note<5) OR (tbl_zeugnisnote.note>0 AND tbl_zeugnisnote.note<5)) AND projekttyp_kurzbz='Diplom' - AND to_char(tbl_projektarbeit.abgabedatum,'YYYYMMDD')>'".date('Ymd',mktime(0, 0, 0, date('m')-6, date('d'), date('Y')))."' - AND (tbl_projektarbeit.freigegeben OR (to_char(tbl_projektarbeit.gesperrtbis,'YYYYMMDD')<'".date('Ymd',mktime(0, 0, 0, date('m'), date('d'), date('Y')))."'))"; - -//echo $qry."<br>"; - -if($erg=pg_query($db_conn,$qry)) -{ - while($row=pg_fetch_object($erg)) - { - if(($row->note1<0 OR $row->note1>4) && ($row->note2<0 OR $row->note2>4)) - { - continue; - } - $opus_url=OPUS_PATH_PAA; - $url_paa=PAABGABE_PATH; - $row->sprache=mb_strtolower(mb_substr($row->sprache,0,3)); - //echo "--->".$row->projektarbeit_id.", ".$row->projekttyp_kurzbz.", ".$row->stud_uid.", ".$row->abgabedatum."<br>"; - //**************************************************************************************************** - //weitere benötigte Daten - //**************************************************************************************************** - //verfasser - $verfasser=""; - $qry_std="SELECT * FROM public.tbl_benutzer - JOIN public.tbl_person on(tbl_person.person_id=tbl_benutzer.person_id) - WHERE uid='".$row->stud_uid."';"; - //echo $qry_std."<br>"; - if($result_std=pg_query($db_conn,$qry_std)) - { - if(pg_num_rows($result_std)>0) - { - while($row_std=pg_fetch_object($result_std)) - { - if(trim($verfasser)=='') - { - $verfasser=trim($row_std->nachname.", ".$row_std->vorname); - } - else - { - $verfasser.=" , ".trim($row_std->nachname.", ".$row_std->vorname); - } - } - } - else - { - $fehler.="\nKein Verfasser zugeordnet!"; - $error=true; - } - } - else - { - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden (sel benutzer)!'."\n".$qry_std); - $mail->send(); - die($qry_std); - } - //begutachter - $begutachter1=""; - $qry_bet="SELECT * FROM lehre.tbl_projektbetreuer - JOIN public.tbl_person on(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - WHERE projektarbeit_id='".$row->projektarbeit_id."' - AND (betreuerart_kurzbz='Betreuer' OR betreuerart_kurzbz='Begutachter' OR betreuerart_kurzbz='Erstbegutachter' OR betreuerart_kurzbz='Erstbetreuer');"; - //echo $qry_bet."<br>"; - if($result_bet=pg_query($db_conn,$qry_bet)) - { - if(pg_num_rows($result_bet)>0) - { - while($row_bet=pg_fetch_object($result_bet)) - { - if(trim($begutachter1)=='') - { - $begutachter1=trim($row_bet->nachname.", ".$row_bet->vorname); - } - else - { - $begutachter1.=" , ".trim($row_bet->nachname.", ".$row_bet->vorname); - } - } - } - else - { - $fehler.="\nKein Begutachter zugeordnet!"; - $error=true; - } - } - else - { - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'."\n".$qry_bet); - $mail->send($qry_bet); - die(); - } - if($row->projekttyp_kurzbz!='Bachelor') - { - $begutachter2=""; - $qry_bet="SELECT * FROM lehre.tbl_projektbetreuer - JOIN public.tbl_person on(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) - WHERE projektarbeit_id='".$row->projektarbeit_id."' - AND (betreuerart_kurzbz='Zweitbetreuer' OR betreuerart_kurzbz='Zweitbegutachter');"; - //echo $qry_bet."<br>"; - if($result_bet=pg_query($db_conn,$qry_bet)) - { - if(pg_num_rows($result_bet)>0) - { - while($row_bet=pg_fetch_object($result_bet)) - { - if(trim($begutachter2)=='') - { - $begutachter2=trim($row_bet->nachname.", ".$row_bet->vorname); - } - else - { - $begutachter2.=" , ".trim($row_bet->nachname.", ".$row_bet->vorname); - } - } - } - else - { - //$fehler.="\nKein Zweitbegutachter zugeordnet!"; - //$error=true; - $begutachter2 = $begutachter1; - } - } - else - { - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'."\n".$qry_bet); - $mail->send(); - die($qry_bet); - } - } - //Institute - if($row->fb_bez==NULL || trim($row->fb_bez)=='') - { - $fehler.="\nInstitut nicht gefunden!"; - $error=true; - } - else - { - $qry_inst="SELECT * FROM institute_de WHERE trim(name)='".trim($row->fb_bez)."';"; - if($result_inst = mysql_query($qry_inst,$conn_ext)) - { - if(mysql_num_rows($result_inst)>0) - { - while($row_inst=mysql_fetch_object($result_inst)) - { - $institut=$row_inst->nr; - } - } - else - { - $fehler.="\nInstitutsname nicht gefunden!"; - $error=true; - } - } - } - //echo $qry_inst."<br>"; - if($row->kontrollschlagwoerter==NULL || $row->kontrollschlagwoerter=='' || $row->abstract==NULL || $row->abstract=='' || $row->abstract_en==NULL || $row->abstract_en=='' ) - { - $fehler.=$row->stud_uid.": Projektarbeit (".$row->projekttyp_kurzbz.") ".$row->projektarbeit_id.$fehler; - if($row->kontrollschlagwoerter==NULL || $row->kontrollschlagwoerter=='') - { - $fehler.="\nKontrollierte Schlagwörter nicht eingegeben!"; - $error=true; - } - if($row->abstract==NULL || $row->abstract=='') - { - $fehler.="\nAbstract nicht eingegeben!"; - $error=true; - } - if($row->abstract_en==NULL || $row->abstract_en=='') - { - $fehler.="\nEnglischer Abstract nicht eingegeben!"; - $error=true; - } - if($row->seitenanzahl==NULL || $row->seitenanzahl=='') - { - $fehler.="\nSeitenanzahl nicht eingegeben!"; - $error=true; - } - if($row->stg_kz==NULL || $row->stg_kz=='' || $row->stg_kz==0) - { - $fehler.="\nStudiengang nicht gefunden!"; - $error=true; - } - if($row->studiensemester_kurzbz==NULL || $row->studiensemester_kurzbz=='') - { - $fehler.="\nStudiensemester nicht gefunden!"; - $error=true; - } - } - - if(!$error) - { - //******************************************************************************************* - //Einfügen in OPUS - //******************************************************************************************* - - // Originaltitel der Arbeit title - // Titel der Arbeit in Englisch title_en - // 1. Verfasser(innen)name (opus_autor) source_opus, creator_name, 1 - // Universität publisher_university = FHTW - // Typ der Arbeit type (Nummer) 7=Diplomarbeit, 25=Bachelorarbeit - // Institut (opus_inst) source_opus, inst_nr - // Studiengang stg_nr - // Datumsfeld datum - // 1. Gutachter begutachter1 - // 2. Gutachter begutachter2 - // Kontrollierte Schlagwörter (Deutsch) subject_swd - // Schlagwörter dt subject_uncontrolled_german - // Schlagwörter en subject_uncontrolled_english - // Abstract description - // Abstract en description2 - // Abstract Sprache 1 sprache - // Abstract Sprache 2 description2_lang = eng - // Sachgrupppe sachgruppe_ddc = 000 000=Allgemeines, Wissenschaft - // Jahr date_year - // Seitenanzahl seitenanzahl - // Studiensemester studiensemester_kurzbz - // Projektabeit ID projektarbeit_id - // Sprache sprache - // Zugriffsbeschränkung bereich_id 1=uneingeschränkt, 2=innerh. Campus - - if($row->projekttyp_kurzbz=='Diplom') - $typ=7; - if($row->projekttyp_kurzbz=='Bachelor') - $typ=25; - $stg=($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz); - $qry_src="Select max(source_opus) as source from opus - UNION - SELECT id as source from seq_temp - ORDER BY source DESC LIMIT 1"; - if($result_src = mysql_query($qry_src,$conn_ext)) - { - while($row_src=mysql_fetch_object($result_src)) - { - $row_opus=$row_src->source+1; - } - } - $qry_chk="SELECT projektarbeit_id FROM opus WHERE projektarbeit_id=".$row->projektarbeit_id; - if($result_chk=mysql_query($qry_chk)) - { - if(mysql_num_rows($result_chk)>0) - { - //Datensatz bereits eingetragen - echo "Bereits vorhanden: ".$row->projektarbeit_id."<br>"; - } - else - { - $qry_ins="INSERT INTO opus - (source_opus, title, title_en, publisher_university, type, stg_nr, datum, begutachter1, begutachter2, subject_swd, - subject_uncontrolled_german, subject_uncontrolled_english, description, description2, description_lang, description2_lang, - sachgruppe_ddc, date_year, seitenanzahl, studiensemester_kurzbz, projektarbeit_id, language, bereich_id, date_creation) values - ('".$row_opus."', '".addslashes($row->titel)."', '".addslashes($row->titel_english)."', 'FHTW', '".$typ."', '".$stg."', '".$row->abgabedatum."', '" - .addslashes($begutachter1)."', '".addslashes($begutachter2)."', '".addslashes($row->kontrollschlagwoerter)."', '".addslashes($row->schlagwoerter) - ."', '".addslashes($row->schlagwoerter_en)."', '".addslashes($row->abstract)."', '".addslashes($row->abstract_en)."', '".$row->sprache - ."', 'eng', '000', '".$datum_obj->formatDatum($row->abgabedatum,'Y')."', '".$row->seitenanzahl."', '".$row->studiensemester_kurzbz."', '" - .$row->projektarbeit_id."', '".$row->sprache."', '".$bereich."', UNIX_TIMESTAMP())"; - $qry_cre="INSERT INTO opus_autor (source_opus, creator_name, reihenfolge) VALUES ('".$row_opus."', '".$verfasser."', '1')"; - $qry_inst="INSERT INTO opus_inst (source_opus, inst_nr) VALUES ('".$row_opus."', '".$institut."')"; - $qry_seq="UPDATE seq_temp SET id=".$row_opus; - - $qry="START TRANSACTION"; - - //echo $qry."<br>".$qry_ins."<br>".$qry_cre."<br>".$qry_inst; - if(!$result=mysql_query($qry)) - { - $fehler1.="\n\nTransaktion nicht begonnen! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - } - else - { - if(!$result=mysql_query($qry_ins)) - { - $fehler1.="\n\nTransaktion abgebrochen! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - mysql_query('ROLLBACK',$conn_ext); - } - else - { - if(!$result=mysql_query($qry_cre)) - { - $fehler1.="\n\nTransaktion abgebrochen!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - if(!$result=mysql_query('ROLLBACK',$conn_ext)) - { - $fehler1.="\n\nRollback nicht durchgeführt. \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - } - } - else - { - if(!$result=mysql_query($qry_inst)) - { - echo nl2br("\n\nTransaktion abgebrochen!!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); - mysql_query('ROLLBACK',$conn_ext); - } - else - { - if(!$result=mysql_query($qry_seq)) - { - //Sequenz schreiben - echo nl2br("\n\nTransaktion abgebrochen!!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); - mysql_query('ROLLBACK',$conn_ext); - } - else - { - //arbeit freigegeben? - if($row->freigegeben) - { - //Kopieren der Abgabedatei - $qry_file="SELECT * FROM campus.tbl_paabgabe WHERE projektarbeit_id='".$row->projektarbeit_id."' and paabgabetyp_kurzbz='end' AND abgabedatum is not null ORDER BY abgabedatum desc LIMIT 1"; - if($result_file=pg_query($db_conn,$qry_file)) - { - if($row_file=pg_fetch_object($result_file)) - { - if(!is_dir($opus_url.date('Y'))) - { - mkdir($opus_url.date('Y'), 0775); - } - if(!is_dir($opus_url.date('Y')."/".$row_opus)) - { - mkdir($opus_url.date('Y')."/".$row_opus, 0775); - } - $opus_url=$opus_url.date('Y')."/".$row_opus; - if(!is_dir($opus_url."/pdf/")) - { - mkdir($opus_url."/pdf/", 0775); - } - //echo "\nQuelle: ".$url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'." -> ".$opus_url."".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'; - copy($url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf',$opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'); - //überprüfen, ob Datei wirklich kopiert wurde - if(is_file($opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf')) - { - //COMMIT durchführen - if(!$result=mysql_query('COMMIT',$conn_ext)) - { - mysql_query('ROLLBACK',$conn_ext); - $fehler1.="\nCommit nicht ausgef&um;hrt! \n".$row_opus."/".$verfasser."\n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - } - else - { - if (file_exists($opus_url)) - { - $fd = fopen($opus_url."/index.html", 'w'); - if ($fd == 0) - { - $fehler1.="\nFehler beim Oeffnen des Index-Files \n\n"; - exit; - } - else - { - indexdatei($row_opus, $fd); - fclose($fd); - $kopiert.="OPUS-Nr. $row_opus, von $verfasser, ProjektarbeitID $row->projektarbeit_id\n"; - #print ("Indexdatei zu Dokument $source_opus wurde in die Datei <a href=\"$volltext_url/$jahr/$source_opus/index.html\">index.html</a> geschrieben.<P> \n"); - } - } - else - { - $fehler1.="\n".$opus_url."/pdf/ nicht vorhanden.\n \n"; - } - } - } - else - { - mysql_query('ROLLBACK',$conn_ext); - $fehler1.="\nDatei wurde nicht kopiert! \nZielpfad:".$opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.".pdf \nSource: ".$url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'."\n"; - } - } - else - { - mysql_query('ROLLBACK',$conn_ext); - $fehler1.="\nAbgabe konnte nicht geladen werden! \n".$row_opus."/".$verfasser."\n".$db->db_last_error(); - } - } - else - { - mysql_query('ROLLBACK',$conn_ext); - $fehler1.="\nEintragung der Abgabe nicht gefunden! \n".$row_opus."/".$verfasser."/".$qry_file."\n".$db->db_last_error(); - } - } - else - { - //COMMIT durchführen - if(!$result=mysql_query('COMMIT',$conn_ext)) - { - mysql_query('ROLLBACK',$conn_ext); - $fehler1.="\nCommit wurde nicht ausgef&um;hrt! \n".$row_opus."/".$verfasser."\n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); - } - } - } - } - } - } - } - } - } - else - { - $fehler1.="\nÜberprüfung, ob bereits vorhanden, konnte nicht durchgeführt werden! \n".mysql_errno($conn_ext)."\n".$qry_chk."\n"; - } - if($fehler1!='') - { - $fehler.="-->".$fehler1; - $fehler.="\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; - $fehler.="\nBegutachter1: ".$begutachter1."\nBegutachter2: ".$begutachter2."\nTitel: ".$row->titel."\nTitel en: ".$row->titel_english."\n"; - $fehler.="Verfasser: ".$verfasser."\nInstitut: ".$institut."\nStudiengang: ".($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz)."\nDatum: ".$datum_obj->formatDatum($row->abgabedatum,'d.m.Y')."\n"; - $fehler.="Kontr. Schlagwörter: ".$row->kontrollschlagwoerter."\nSchlagwörter dt: ".$row->schlagwoerter."\nSchlagwörter en: ".$row->schlagwoerter_en."\n"; - $fehler.="Abstract: ".$row->abstract."\nAbstract_en: ".$row->abstract_en."\nSeitenanzahl: ".$row->seitenanzahl."\nStudiensemester: ".$row->studiensemester_kurzbz."\n"; - $fehler.="Projektarbeit ID: ".$row->projektarbeit_id."\nTyp der Arbeit: ".$row->projekttyp_kurzbz."\n"; - $fehler1=''; - } - } - else - { - $fehler.="\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; - $fehler.="\nBegutachter1: ".$begutachter1."\nBegutachter2: ".$begutachter2."\nTitel: ".$row->titel."\nTitel en: ".$row->titel_english."\n"; - $fehler.="Verfasser: ".$verfasser."\nInstitut: ".$institut."\nStudiengang: ".($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz)."\nDatum: ".$datum_obj->formatDatum($row->abgabedatum,'d.m.Y')."\n"; - $fehler.="Kontr. Schlagwörter: ".$row->kontrollschlagwoerter."\nSchlagwörter dt: ".$row->schlagwoerter."\nSchlagwörter en: ".$row->schlagwoerter_en."\n"; - $fehler.="Abstract: ".$row->abstract."\nAbstract_en: ".$row->abstract_en."\nSeitenanzahl: ".$row->seitenanzahl."\nStudiensemester: ".$row->studiensemester_kurzbz."\n"; - $fehler.="Projektarbeit ID: ".$row->projektarbeit_id."\nTyp der Arbeit: ".$row->projekttyp_kurzbz."\n"; - $error=false; - } - } - if($fehler!='') - { - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', "Aufgetretene Fehler: \n".$fehler); - $mail->send(); - $fehler=''; - } -} -else -{ - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbank konnte nicht geöffnet werden!'."\n".$qry); - $mail->send(); - die($qry); -} -if ($kopiert!='' && $kopiert!=NULL) -{ - $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', "Übertragene Projektarbeiten:\n".$kopiert); - $mail->send(); -} - -?> +<?php +/* Copyright (C) 2009 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>, + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>, + * Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at> and + * Andreas Moik <moik@technikum-wien.at>. + * + ******************************************************************************************************* + * abgabe2opus.php + * abgabe2opus kopiert neue Abgaben ins opus + *******************************************************************************************************/ + +require_once('../config/cis.config.inc.php'); +require_once('../include/datum.class.php'); +require_once('../include/mail.class.php'); +require_once("../opus/lib/stringValidation.php"); +require_once('../opus/lib/opus.class.php'); + + //$db_obj = new basis_db(); + + // zugriff auf mysql-datenbank + if (!$conn_ext=mysql_pconnect (OPUS_SERVER, OPUS_USER, OPUS_PASSWD)) + die('Fehler beim Verbindungsaufbau!'); + mysql_select_db(OPUS_DB, $conn_ext); + + //zugriff auf pg-datenbank + $conn_str='host='.DB_HOST.' port='.DB_PORT.' dbname='.DB_NAME.' user='.DB_USER.' password='.DB_PASSWORD; + //Connection Herstellen + if(!$db_conn = pg_connect($conn_str)) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +mysql_set_charset('utf8',$conn_ext); +/* +$qry = "SET CLIENT_ENCODING TO 'WIN1252';"; + +if(!pg_query($db_conn,$qry)) +{ + die('Encoding konnte nicht gesetzt werden'); +} +*/ + +$datum_obj = new datum(); +//$jahr=''; +//$source_opus=''; +$fehler=''; +$fehler1=''; +$error=false; +$begutachter1=''; +$begutachter2=''; +$verfasser=''; +$abgabedatum=''; +$datum=''; +$institut=''; +$typ=''; +$bereich=1; +$stg=''; +$row_opus=0; +$opus_url=OPUS_PATH_PAA; +$url_paa=PAABGABE_PATH; +$kopiert=''; +$ii=0; + +function indexdatei($source_opus, $fd) +{ + $la="de"; + $search_creator=''; + $startfile=''; + $dir_array=array(); + $mod_gpg=''; + $publisher_faculty=''; + $advisor=''; + $date_accepted=''; + //require_once'../opus/lib/opus.class.php'; + $opus = new OPUS('../opus/lib/opus.conf'); + $php = $opus->value("php"); + $db = $opus->value("db"); + $opustable = $opus->value("opus_table"); + $url = $opus->value("url"); + $mod_checksum = $opus->value("mod_checksum"); + $projekt = $opus->value("projekt"); + $url_anzeigen = $opus->value("url_anzeigen"); + $urn_anzeigen = $opus->value("urn_anzeigen"); + $lic_active = $opus->value("license_active"); + $doku_pfad = $opus->value("doku_pfad"); + $statistik = $opus->value("statistik"); + $awstats_url = $opus->value("awstats_url"); + $awstats_config = $opus->value("awstats_config"); + $empfehlen = $opus->value("empfehlen"); + $mehrsprachig = $opus->value("mehrsprachig"); + $google_scholar = $opus->value("google_scholar"); + $url_google_scholar = $opus->value("url_google_scholar"); + # BD, 16.9.05: steht nun in frontdoor.conf + # $titel = $opus->value("titel_frontdoor"); + # $ueberschrift = $opus->value("ueberschrift_frontdoor"); + // Anfang Collections + $coll_anzeigen = $opus->value("coll_anzeigen"); + // Ende Collections + $opustable_autor = $opustable . "_autor"; + $opustable_inst = $opustable . "_inst"; + $opustable_diss = $opustable . "_diss"; + $opustable_subject_type = $opustable . "_subject_type"; + $opustable_sr = $opustable . "_schriftenreihe"; + // Anfang Collections + $opustable_coll = $opustable . "_coll"; + // Ende Collections + // Social-Bookmarking-Schnittstellen + $connotea_export = $opus->value("connotea_export"); + $delicious_export = $opus->value("delicious_export"); + $social_bookmarking = 0; + if ($connotea_export == 1 || $delicious_export == 1) + { + $social_bookmarking = 1; + } + /*if ($_REQUEST["show_connotea"]) + { + $_SESSION["show_connotea"] = true; + }*/ + // Ende Social-Bookmarking-Schnittstellen + //require_once("../opus/lib/stringValidation.php"); + //$source_opus = $_REQUEST['source_opus']; + if (!_is_valid($source_opus, 1, 10, "[0-9]+")) + { + die("Fehler in Parameter source_opus"); + } + # A.Maile 10.2.05: Sprache einlesen aus opus.conf, falls nicht gesetzt + if (!$la) + { + $la = $opus->value("la"); + } + # O. Marahrens: Automatisch alle Texte aus der Textdatei holen + $texte = new OPUS("../opus/texte/$la/frontdoor.conf"); + foreach($texte->getValues() as $k => $v) { + $$k = $v; + } + + $res = $opus->query("SELECT * FROM $opustable WHERE source_opus = $source_opus "); + $num_res = $opus->num_rows($res); + if ($num_res > 0) + { + $mrow = $opus->fetch_row($res); + $title_orig = $mrow[0]; + $title = htmlspecialchars($mrow[0]); + $creator_corporate = $mrow[1]; + $subject_swd = htmlspecialchars($mrow[2]); + $description = $mrow[3]; + # Abstract fuer die Metadaten html-codieren + $description_meta = htmlspecialchars($mrow[3]); + $publisher_university = $mrow[4]; + $contributors_name = $mrow[5]; + $contributors_corporate = $mrow[6]; + $date_year = $mrow[7]; + $date_creation = $mrow[8]; + $date_modified_old = $mrow[9]; + $type = $mrow[10]; + $source_opus = $mrow[11]; + $source_title = htmlspecialchars($mrow[12]); + $source_swb = $mrow[13]; + $language = $mrow[14]; + $verification = $mrow[15]; + $subject_uncontrolled_german = htmlspecialchars($mrow[16]); + $subject_uncontrolled_english = htmlspecialchars($mrow[17]); + $title_en = $mrow[18]; + $description2 = $mrow[19]; + # Abstract fuer die Metadaten html-codieren + $description2_meta = htmlspecialchars($mrow[19]); + $subject_type = $mrow[20]; + $date_valid = $mrow[21]; + $description_lang = $mrow[22]; + $description2_lang = $mrow[23]; + $sachgruppe_ddc = $mrow[24]; + $urn = $mrow[25]; + $bereich_id = $mrow[26]; + if ($lic_active >= 2) + { + $lic = $mrow[27]; + } + $isbn = $mrow[28]; + $bem_extern = $mrow[30]; + //******************************************************************************************************************************** + //Änderung TW + $issn = $mrow[32]; + $ac_nr = $mrow[33]; + $studiengang = $mrow[34]; + $seitenanzahl = $mrow[35]; + $datum = $mrow[36]; + $gutachter1 = $mrow[37]; + $gutachter2 = $mrow[38]; + $studiensemester = $mrow[39]; + //******************************************************************************************************************************** + $opus->free_result($res); + /***** Schriftenreihe Start *****/ + $sr_id = ""; + $sr_band = ""; + $res = $opus->query("SELECT * FROM $opustable_sr WHERE source_opus = $source_opus "); + $num_res = $opus->num_rows($res); + if ($num_res > 0) + { + $mrow = $opus->fetch_row($res); + $sr_id = $mrow[1]; + $sr_band = $mrow[2]; + $res = $opus->query("select name from schriftenreihen where sr_id = '$sr_id' "); + $mrow = $opus->fetch_row($res); + $sr_name = $mrow[0]; + $opus->free_result($res); + } + /***** Schriftenreihe Stop *****/ + /* Bei Dissertation (type 8) und Habilitation (type 24) zusaetzlich */ + /* Tag der muendlichen Pruefung (bzw. des Kollquiums) und Hauptberichter anzeigen */ + if ($type == "8" || $type == "24") + { + $res = $opus->query("SELECT date_accepted, advisor, publisher_faculty, title_de FROM $opustable_diss WHERE source_opus = $source_opus"); + $anz = $opus->num_rows($res); + if ($anz > 0) + { + $mrow = $opus->fetch_row($res); + $date_accepted = $mrow[0]; + $advisor = htmlspecialchars($mrow[1]); + $faculty_nr = $mrow[2]; + $title_de = $mrow[3]; + } + $opus->free_result($res); + $res = $opus->query("SELECT fakultaet from faculty_$la where nr = '$faculty_nr'"); + $mrow = $opus->fetch_row($res); + $publisher_faculty = $mrow[0]; + $opus->free_result($res); + } + $jahr = date("Y", $date_creation); + $res = $opus->query("SELECT name FROM institute_$la i, $opustable_inst oi WHERE i.nr=oi.inst_nr and oi.source_opus = '$source_opus'"); + $instnum = $opus->num_rows($res); + $i = 0; + while ($i < $instnum) + { + $i++; + $mrow = $opus->fetch_row($res); + $inst[$i] = $mrow[0]; + } + $opus->free_result($res); + // Anfang Collections + if ($coll_anzeigen == "true") + { + $res = $opus->query("SELECT c.coll_id FROM collections as c, $opustable_coll as oc WHERE c.coll_id = oc.coll_id and oc.source_opus = '$source_opus'"); + $collnum = $opus->num_rows($res); + $i = 0; + while ($i < $collnum) + { + $i++; + $mrow = $opus->fetch_row($res); + $coll[$i] = $mrow[0]; + } + $opus->free_result($res); + } + // Ende Collections + $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$language'"); + $mrow = $opus->fetch_row($res); + $sprache = ucfirst($mrow[0]); + $opus->free_result($res); + $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$description_lang'"); + $mrow = $opus->fetch_row($res); + $sprache_description = ucfirst($mrow[0]); + $opus->free_result($res); + if ($description2_lang != "") + { + $res = $opus->query("SELECT sprache FROM language_$la WHERE code='$description2_lang'"); + $mrow = $opus->fetch_row($res); + $sprache_description2 = ucfirst($mrow[0]); + $opus->free_result($res); + } + $res = $opus->query("SELECT dokumentart FROM resource_type_$la WHERE typeid='$type'"); + $mrow = $opus->fetch_row($res); + $dokumentart = $mrow[0]; + $opus->free_result($res); + # Start Lizenzvertrag + # Link auf Lizenz ausgeben, falls Lizenz-Modul aktiv und Feld lic belegt. + # Falls Lizenz-Modul aktiv, aber Feld lic nicht belegt (alte OPUS-Bestaende) + # dann Link auf urheberrecht.php ausgeben. + if ($lic_active >= 2) + { + $res = $opus->query("SELECT longname, link, logo, desc_text, desc_html FROM license_$la WHERE shortname='$lic'"); + $licnum = $opus->num_rows($res); + if ($licnum == 1) + { + $mrow = $opus->fetch_row($res); + $licname = $mrow[0]; + $liclink = $mrow[1]; + $liclogo = $mrow[2]; + $licdesc = $mrow[3]; + $licdesc_html = $mrow[4]; + $liclink_head = "<a href=\"$liclink?la=$la\" target=\"_blank\">$lizenz</a><p />"; + } + else + { + $liclink_head = "<a href=\"" . $doku_pfad . "/urheberrecht.php?la=$la\">$text1</a><p />"; + } + $opus->free_result($res); + } + else + { + $liclink_head = "<a href=\"" . $doku_pfad . "/urheberrecht.php?la=$la\">$text1</a><p />"; + } + # Ende Lizenzvertrag + # Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche + # Falls in Altbestaenden (< Opus 3.0) kein Bereich angegeben ist, + # wird bereich_id auf 1 gesetzt = freier Zugriff auf die Dokumente, + # sonst kommt eine Fehlermeldung der Datenbank + if ($bereich_id == "" || $bereich_id == 0) + { + $bereich_id = 1; + } + $res = $opus->query("SELECT bereich, volltext_pfad, volltext_url FROM bereich_$la WHERE bereich_id = $bereich_id"); + $num = $opus->num_rows($res); + if ($num > 0) + { + $mrow = $opus->fetch_row($res); + $bereich = $mrow[0]; + $volltext_pfad = $mrow[1]; + $volltext_url = $mrow[2]; + $opus->free_result($res); + } + # Ende Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche + $autor = $opus->query("SELECT creator_name, reihenfolge FROM $opustable_autor WHERE source_opus = $source_opus order by reihenfolge"); + $anzahl_creator_name = $opus->num_rows($autor); + $i = 0; + while ($i < $anzahl_creator_name) + { + $mrow = $opus->fetch_row($autor); + $creator_name = $mrow[0]; + $creator_name = htmlspecialchars($creator_name); + $search_creator.= " ; " . $creator_name; + $i++; + } + $search_creator = substr($search_creator, 3); + # Titel und Autoren des Dokuments sollen in <title> erscheinen + $titel = "$projekt - $title - $search_creator"; + # Annette Maile, 18.3.05 Design aus lib/design.php einlesen + //require ("../../lib/design.$php"); + //$design = new design; + //$design->head_titel($titel); + # Ausgabe einiger DC-Metadaten + fwrite($fd,"<META NAME=\"DC.Title\" CONTENT=\"$title\">\n"); + fwrite($fd,"<META NAME=\"title\" CONTENT=\"$title\">\n"); + if ($anzahl_creator_name > 0) + { + $opus->data_seek($autor, 0); + $i = 0; + while ($i < $anzahl_creator_name) + { + $mrow = $opus->fetch_row($autor); + $creator_name = $mrow[0]; + $creator_name = htmlspecialchars($creator_name); + fwrite($fd,"<META NAME=\"DC.Creator\" CONTENT=\"$creator_name\">\n"); + $search_creator.= " ; " . $creator_name; + $i++; + } + } + if ($search_creator != "") + { + fwrite($fd,"<META NAME=\"author\" CONTENT=\"$search_creator\">\n"); + } + $subject = $subject_swd; + if ($subject_uncontrolled_german != "") + { + $subject.= " , $subject_uncontrolled_german"; + } + if ($subject_uncontrolled_english != "") + { + $subject.= " , $subject_uncontrolled_english"; + } + fwrite($fd,"<META NAME=\"DC.Subject\" CONTENT=\"$subject\">\n"); + fwrite($fd,"<META NAME=\"keywords\" CONTENT=\"$subject\">\n"); + fwrite($fd,"<META NAME=\"DC.Identifier\" CONTENT=\"$volltext_url/$jahr/$source_opus/\">\n"); + //******************************************************************************************************************************************* + //Änderung TW + if ($urn && $urn_anzeigen) + { + if ($urn != "") + { + fwrite($fd,"<META NAME=\"DC.Identifier\" CONTENT=\"$urn\">\n"); + } + } + //******************************************************************************************************************************************* + fwrite($fd,"<META NAME=\"DC.Description\" CONTENT=\"$description_meta \n$description2_meta\">\n"); + fwrite($fd,"<META NAME=\"description\" CONTENT=\"$description_meta \n$description2_meta\">\n"); + # Ende der DC-Metadaten + //$design->head_ueberschrift($ueberschrift, $la); + # Button fuer Anzeige des Skripts in weiteren Sprachen), + # falls mehrere Sprachen angeboten werden. + if ($mehrsprachig == 1) + { + $design->andere_sprache($la); + } + # Start Ausgabe der Frontdoor + fwrite($fd,"<P><FONT class=\"frontdoor\">$liclink_head \n"); + # fwrite($fd,"Bitte beziehen Sie sich beim Zitieren dieses Dokumentes immer auf folgende<BR>\n"); + # fwrite($fd,"$dokumentart zugaenglich unter:"); + fwrite($fd,"$dokumentart $t_dokumentart_2<BR>\n"); + # Wenn Urn vorhanden und urn_anzeigen auf 1 gesetzt ist, wird die Urn angezeigt. + # Wenn keine Urn vorhanden ist und url_anzeigen auf 2 gesetzt ist, dann Url anzeigen. + # Wenn url_anzeigen auf 1 gesetzt ist, dann immer Url anzeigen. + if ($urn && $urn_anzeigen) + { + fwrite($fd,"URN: <a href=\"http://nbn-resolving.de/$urn\"><B>$urn</B></a><BR>\n"); + } + else + { + if ($url_anzeigen == 2) + { + if (file_exists("$volltext_pfad/$jahr/$source_opus") == 1) + { + fwrite($fd,"URL: <a href=\"$volltext_url/$jahr/$source_opus/\"><B>$volltext_url/$jahr/$source_opus/</B></a><BR>\n"); + } + } + } + if ($url_anzeigen == 1) + { + if (file_exists("$volltext_pfad/$jahr/$source_opus") == 1) + { + fwrite($fd,"URL: <a href=\"$volltext_url/$jahr/$source_opus/\"><B>$volltext_url/$jahr/$source_opus/</B></a><BR>\n"); + } + } + fwrite($fd,"</FONT><HR>"); + fwrite($fd,"<P>\n"); + fwrite($fd,"<B>$t_titel1:</B> $title\n"); + if ($title_en != "") + { + fwrite($fd,"<P><B>$t_titel2:</B> $title_en\n"); + } + /*if ($title_de != "") + { + fwrite($fd,"<P><B>$title_de</B>\n"); + }*/ + fwrite($fd,"<P> \n"); + include ("../opus/lib/font.html"); + $link = "$url/ergebnis.$php?suchart=teil&Lines_Displayed=10&sort=o.date_year+DESC%2C+o.title&suchfeld1=freitext&suchwert1=&opt1=AND&opt2=AND&suchfeld3=date_year&suchwert3=&startindex=0&page=0&dir=2&suche=&suchfeld2=oa.person&suchwert2="; + #$res = $opus->query("SELECT creator_name, reihenfolge from opus_autor where source_opus = $source_opus order by reihenfolge "); + if ($anzahl_creator_name > 0) + { + $opus->data_seek($autor, 0); + $mrow = $opus->fetch_row($autor); + $creator_name = $mrow[0]; + # A. Maile, 6.8.2007: Ersten Autor speichern für Google Scholar + $first_creator = $creator_name; + $person = htmlspecialchars(rawurlencode($creator_name)); + fwrite($fd,"<B>Autor(in): <A HREF=\"$link$person\">$creator_name</A></B>"); + $pod_creator_names = $person; + if ($anzahl_creator_name > 1) + { + $i = 1; + while ($i < $anzahl_creator_name) + { + $i++; + $mrow = $opus->fetch_row($autor); + $creator_name = $mrow[0]; + $person = htmlspecialchars(rawurlencode($creator_name)); + fwrite($fd," ; \n<B>Autor(in): <A HREF=\"$link$person\">$creator_name</A></B>"); + $pod_creator_names.= " ; " . $person; + } + } + } + $opus->free_result($autor); + fwrite($fd,"<P><FONT class=\"fr_font_klein\">"); + if ($contributors_name != "") + { + # fwrite($fd,"<BR>Weitere Beteiligte (Hrsg. etc.): $contributors_name \n"); + fwrite($fd,"$t_weitere_beteiligte $contributors_name <BR> \n"); + } + if ($creator_corporate != "") + { + fwrite($fd,"$creator_corporate <BR> \n"); + } + fwrite($fd,"</B> \n"); + fwrite($fd,"<P>\n"); + fwrite($fd,"<TABLE> \n"); + if ($source_title != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_quelle</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"<B>($date_year)</B> <I>$source_title</I> </TD>\n"); + fwrite($fd,"</TR> \n"); + } + /* Es werden die Formate, die in der Tabelle Format im Feld extension stehen */ + /* in der Frontdoor angezeigt. Es wird geschaut, ob das jeweilige Directory */ + /* exisitiert und die darin enthaltenen Dateien in einer Tabelle ausgegeben */ + $format = $opus->query("select extension from format where name <> 'Originalformat' "); + $num_format = $opus->num_rows($format); + $f = 0; + while ($f < $num_format) + { + $f++; + $mrow = $opus->fetch_row($format); + $ext = $mrow[0]; + if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext") == 1) + { + /* Falls Startfile .*.anzeigen vorhanden, dann nur dieses anzeigen */ + /* hauptsaechlich bei html */ + $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); + while ($file = readdir($handle)) + { + if (preg_match("/\.anzeigen/", $file)) + { + $startfile = $file; + } + } + closedir($handle); + if ($startfile != "") + { + /* fuehrenden Punkt und .anzeigen entfernen = Startfile des html-Dokuments */ + $startfile = str_replace(".anzeigen", "", $startfile); + $startfile = substr($startfile, 1); + fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$ext-$t_format:</B> \n</TD>\n"); + fwrite($fd,"\n<TD></TD><TD><TABLE BORDER=0>\n<TR>\n"); + fwrite($fd,"<TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$startfile\">Dokument1.$ext </A>\n</TD>\n"); + fwrite($fd,"\n</TR>\n</TABLE>\n"); + fwrite($fd,"</TD></TR>\n"); + } + else + { + $i = 1; + $j = 1; + /* Verzeichnis in Array einlesen und sortieren */ + $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); + while ($file = readdir($handle)) + { + if ($file != "." && $file != "..") + { + /* Dateien, die mit .bem_ beginnen sind Bemerkungen zu den Dateien, */ + /* daher werden nur Dateien, die nicht mit .bem_ anfangen in der */ + /* Frontdoor aufgelistet. Gepackte Dateien werden separat aufgelistet */ + if (!preg_match("/^\.bem_/", $file) && !preg_match("/\.zip/i", $file) && !preg_match("/\.gz/i", $file)) { + $dir_array[count($dir_array) ] = $file; + } + } + } + closedir($handle); + $num = count($dir_array); + if ($num > 0) + { + sort($dir_array); + fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$ext-$t_format:</B> \n</TD>\n"); + fwrite($fd,"\n<TD></TD><TD class=\"frontdoor\"><TABLE BORDER=0>\n<TR>\n"); + $k = 0; + while ($k < $num) + { + $filename = array_shift($dir_array); + $bem_file = ""; + if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename")) + { + $fd = fopen("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename", "r"); + $bem_file = fread($fd, filesize("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$filename")); + fclose($fd); + } + $file = "$volltext_pfad/$jahr/$source_opus/$ext/$filename"; + $array = explode(".", $filename); + $last = count($array) -1; + $ext2 = strtolower($array[$last]); + $size = stat($file); + $filesize = $size[7]; + $filesize = $filesize/1024; + if ($filesize < 1) + { + $filesize = number_format($filesize, 1, ",", "."); + } + else + { + $filesize = number_format($filesize, 0, ",", "."); + } + $format2 = $opus->query("select extension from format where extension like '$ext2%' "); + $num_format2 = $opus->num_rows($format2); + if ($num_format2 > 0) + { + if ($i > 3) + { + fwrite($fd,"\n</TR>\n<TR>\n"); + $i = 1; + } + fwrite($fd,"<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$filename\" target=\"new\">Dokument $j.$ext2 ($filesize KB) </A> "); + if ($bem_file != "") + { + fwrite($fd,"($bem_file)"); + } + fwrite($fd,"\n</TD>\n"); + $i++; + $j++; + } + $k++; + } + fwrite($fd,"\n</TR>\n</TABLE>\n"); + fwrite($fd,"</TD></TR>\n"); + } + } + /* gezipptes File mit Endung zip bzw. gz einlesen */ + $g = 0; + while ($g < 2) + { + $g++; + if ($g == 1) + { + $z = "zip"; + } + if ($g == 2) + { + $z = "gz"; + } + $handle = opendir("$volltext_pfad/$jahr/$source_opus/$ext"); + while ($file = readdir($handle)) + { + if (preg_match("/\.$z/i", $file)) + { + if (!preg_match("/^\.bem_/", $file)) + { + $line = "$volltext_pfad/$jahr/$source_opus/$ext/$file"; + $size = stat($line); + $filesize = $size[7]; + $filesize = $filesize/1024; + if ($filesize < 1) + { + $filesize = number_format($filesize, 1);; + } + else + { + $filesize = number_format($filesize); + } + $bem_file = ""; + if (file_exists("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file")) + { + $fd = fopen("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file", "r"); + $bem_file = fread($fd, filesize("$volltext_pfad/$jahr/$source_opus/$ext/.bem_$file")); + fclose($fd); + } + fwrite($fd,"<TR>\n<TD class=\"frontdoor\">"); + fwrite($fd,"<B>$ext gepackt:</B> \n</TD>\n"); + fwrite($fd,"\n<TD></TD><TD><TABLE BORDER=0>\n<TR>\n"); + fwrite($fd,"<TD class=\"frontdoor\">"); + fwrite($fd,"<A HREF=\"$volltext_url/$jahr/$source_opus/$ext/$file\">Dokument1.$z ($filesize KB) </A> "); + if ($bem_file != "") + { + fwrite($fd,"($bem_file)"); + } + fwrite($fd,"\n</TD>\n"); + fwrite($fd,"\n</TR>\n</TABLE>\n"); + fwrite($fd,"</TD></TR>\n"); + } + } + } + closedir($handle); + } + } + } + $opus->free_result($format); + fwrite($fd,"</table>"); + fwrite($fd,"<BR> \n"); + + # Checksummen-Ueberpruefung + if ($mod_gpg == 1 || $mod_checksum == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$url/dok_unversehrtheit.php?la=$la&source_opus=$source_opus\" title=\"$unv\"><img src=\"$url/Icons/unversehrt.jpg\" border=\"0\"></a> \n"); + } + + # A. Maile 11.10.05: Link zur Dokumentempfehlung + if ($empfehlen == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$url/mailform.php?la=$la&bereich_id=$bereich_id&jahr=$jahr&source_opus=$source_opus\" title=\"$t_empfehlen\"><img src=\"$url/Icons/hand.jpg\" border=\"0\"></a> \n"); + } + + # A. Maile 11.10.05: Link zur Statistik-Anzeige + if ($statistik == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><a href=\"$url/statistik.php?source_opus=$source_opus&title=".htmlspecialchars(rawurlencode($title))."&la=$la\" TARGET=_blank title=\"$t_statistik\"><img src=\"$url/Icons/statistik.jpg\" border=\"0\"></A> \n"); + # Fuer Statistik mit awstats folgende Zeile auskommentieren. + #fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"$awstats_url?urlfilter=/$source_opus/&urlfilterex=&output=urldetail&config=$awstats_config&lang=de \" TARGET=_blank title=\"$t_statistik\"><img src=\"$url/Icons/statistik.jpg\" border=\"0\"></A> $t_statistik \n"); + } + + # O.Marahrens 30.03.07: Social-Bookmarking-Dienste + if ($social_bookmarking == 1) + { + # O.Marahrens 02.02.07: Link zum Connotea-Bookmark + if ($connotea_export == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><!--<a href=\"" . $_SERVER["REQUEST_URI"] . "&show_connotea=1#connotea_interface\" title=\"$t_connotea_bookmark\">--><a href=\"$url/connotea.php?source_opus=$source_opus\" title=\"$t_connotea_bookmark\" onclick=\"window.open('$url/connotea.php?source_opus=$source_opus','connotea','toolbar=no,width=700,height=400'); return false;\"><img src=\"$url/Icons/connotea_icon.jpg\" border=\"0\" alt=\"$t_connotea_bookmark\" /></a> \n"); + } + # U.Herb: del.icio.us-Bookmarking + if ($delicious_export == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><A HREF=\"http://del.icio.us/post\" title=\"$t_delicious_bookmark\" + onclick=\"window.open('http://del.icio.us/post?v=4&noui&jump=close&url='+encodeURIComponent(location.href)+ + '&title='+encodeURIComponent(document.title), + 'delicious','toolbar=no,width=700,height=400'); return false;\" alt=\"$t_delicious_bookmark\"><img src=\"$url/Icons/delicious.jpg\" border=\"0\" alt=\"$t_delicious_bookmark\" /></A> \n"); + } + } + # A. Maile 6.8.2007: Link auf Google Scholar mit Suche nach exaktem Titel und Autor + if ($google_scholar == 1) + { + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\"><a href=\"$url_google_scholar%22" . rawurlencode(utf8_encode($title_orig)) . "%22&as_sauthors=%22" . rawurlencode(utf8_encode($first_creator)) . "%22\" target=\"new\" title=\"$t_google_scholar\"><img src=\"$url/Icons/google_scholar.jpg\" border=\"0\"></a> \n"); + } + + fwrite($fd,"<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\">" . + "<a href=\"$url/biblio.php?source_opus=$source_opus&export=" . + "bibtex\" title=\"$t_bibtex\"><img src=\"$url/Icons/bibtex.jpg\" border=\"0\"></a> \n" . + "<img src= \"$url/Icons/blind.gif\" border=\"0\" width=\"2\" height=\"1\">" . + "<a href=\"$url/biblio.php?source_opus=$source_opus&export=ris\" title=\"$t_ris\">" . + "<img src=\"$url/Icons/ris.jpg\" border=\"0\"></a> \n"); + + fwrite($fd,"<hr> \n"); + fwrite($fd,"<table>"); + + if ($lic_active >= 1) + { + $pod_active = $opus->value("pod_active"); + if ($pod_active > 0 && $bereich_id == 1) { // check, ob lic pod erlaubt und Volltext frei zugaenglich + $res = $opus->query("SELECT pod_allowed FROM license_$la WHERE shortname='$lic'"); + $podnum = $opus->num_rows($res); + if ($podnum == 1) + { + $mrow = $opus->fetch_row($res); + if ($mrow[0] == 1) + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\">"); + fwrite($fd,"<B>$pod_linkname_1</B> </TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\">\n<table border=\"0\"><tr><td class=\"frontdoor\">\n"); + $pod_info = $opus->value("pod_info"); + $tmp_url = "$volltext_url/$jahr/$source_opus/"; + $podlink = $pod_info . "?urn=" . urlencode($urn) . "&docurl=" . urlencode($tmp_url) . "&lic=" . $lic . "&aut=" . $pod_creator_names . "&tit=" . htmlspecialchars(rawurlencode($title)) . "&bereich_id=" . $bereich_id . "&la=" . $la; + $pod_uselogos = $opus->value("pod_uselogos"); + $pod_partner_logo = $opus->value("pod_partner_logo"); + if (($pod_uselogos) AND (strlen($pod_partner_logo) > 0)) + { + $podlogo_width = $opus->value("pod_logo_width"); + $podlogo_height = $opus->value("pod_logo_height"); + $podlogo_wh = ""; + if ($podlogo_width) + { + $podlogo_wh.= " width=\"" . $podlogo_width . "\""; + } + if ($podlogo_height) + { + $podlogo_wh.= " height=\"" . $podlogo_height . "\""; + } + fwrite($fd,"<a href=\"$podlink\" target=\"_blank\">\n"); + fwrite($fd,"<img src=\"" . $pod_partner_logo . "\" alt=\"POD-Logo\" border=\"0\"" . $podlogo_wh . ">"); + fwrite($fd,"</a> \n"); + } + fwrite($fd,"<a href=\"$podlink\" target=\"_blank\">"); + fwrite($fd,"$pod_linkname_2 </a> \n</td>\n</tr>\n</table>\n</TD>\n"); + fwrite($fd,"</TR> \n"); + } + } + $opus->free_result($res); + } + } + + # Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche + # Wenn Zugriffsbeschraenkung besteht ($bereich_id > 1) + # dann diese anzeigen. + if ($bereich_id > 1) + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + # fwrite($fd,"<B>Zugriffsbeschränkung:</B></TD> \n"); + fwrite($fd,"<B>$text3:</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$bereich </TD>\n"); + fwrite($fd,"</TR> \n"); + } + # Ende Zugriff auf Volltexte weltweit/campusweit/weitere Bereiche + if ($subject_swd != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\" width=\"130\">"); + fwrite($fd,"<B>$schlagwoerter_swd</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$subject_swd </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($subject_uncontrolled_german != "") + { + fwrite($fd,"<TR>\n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$schlagwoerter_frei</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$subject_uncontrolled_german </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($subject_uncontrolled_english != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$schlagwoerter_engl</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$subject_uncontrolled_english </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($subject_type != "") + { + $opustable_subject_type = $opustable . "_" . $subject_type; + $res = $opus->query("SELECT class from $opustable_subject_type where source_opus = $source_opus"); + $num = $opus->num_rows($res); + if ($num > 0) + { + $mrow = $opus->fetch_row($res); + $class = $mrow[0]; + $i = 1; + while ($i < $num) + { + $i++; + $mrow = $opus->fetch_row($res); + $class = "$class , $mrow[0]"; + } + $opus->free_result($res); + $res = $opus->query("SELECT name from klassifikation_$la where table_name = '$subject_type' "); + $mrow = $opus->fetch_row($res); + $class_name = $mrow[0]; + $opus->free_result($res); + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$class_name:</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$class </TD>\n"); + fwrite($fd,"</TR> \n"); + } + } + //Anfang Collections + if ($coll_anzeigen == "true") + { + $i = 0; + while ($i < $collnum) + { + $i++; + // Wir finden den coll_name der Collection heraus + $res_coll = $opus->query("SELECT coll_name FROM collections WHERE coll_id = $coll[$i];"); + $mrow_coll = $opus->fetch_row($res_coll); + $coll_name = $mrow_coll[0]; + // Wir finden den Namen und die ganze Hierarchie nach oben heraus + $query_eltern = "SELECT a.coll_name, (a.rgt - a.lft ) AS height + FROM collections AS a, collections AS b + WHERE b.lft BETWEEN a.lft AND a.rgt + AND b.coll_id = '$coll[$i]' + ORDER BY height DESC;"; + $res_eltern = $opus->query($query_eltern); + $num_eltern = $opus->num_rows($res_eltern); + fwrite($fd,"<tr> \n<td class=\"frontdoor\" valign=\"top\">"); + if ($collnum > 1) + { + fwrite($fd,"<b>$t_collection $i:</b></td> \n"); + } + else + { + fwrite($fd,"<b>$t_collection:</b></td>\n"); + } + fwrite($fd,"<td></td><td class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"<a href=\"$url/abfrage_collections.php?coll_id=$coll[$i]&la=$la\" target=\"new\">"); + $m = 0; + while ($m < $num_eltern) + { + $mrow_eltern = $opus->fetch_row($res_eltern); + $coll_name_eltern = $mrow_eltern[0]; + if ($coll_name_eltern != $coll_name) + { + fwrite($fd,"$coll_name_eltern / "); + } + else + { + fwrite($fd,"$coll_name_eltern"); + } + $m++; + } + fwrite($fd,"</a></td> \n"); + fwrite($fd,"</tr> \n"); + } + } + // Ende Collections + $i = 0; + while ($i < $instnum) + { + $i++; + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + if ($instnum > 1) + { + fwrite($fd,"<B>$t_institut $i:</B></TD> \n"); + } + else + { + fwrite($fd,"<B>$t_institut:</B></TD> \n"); + } + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$inst[$i]</TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($publisher_faculty != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_fakultaet</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$publisher_faculty </TD>\n"); + fwrite($fd,"</TR> \n"); + } + //*************************************************************************************************************************************** + //Änderung TW + //Studiengang, Seitenanzahl, Datum, AC-Nummer und Begutachter eingefügt + if ($studiengang != "" && $studiengang>0) + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + $res = $opus->query("SELECT * FROM studiengang WHERE stg_nr ='$studiengang'"); + $rrr = 'name_'.$la; + $mrow = $opus->fetch_object($res); + $name = $mrow->$rrr; + $typ = $mrow->typ; + fwrite($fd,"<B>$t_studiengang</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$studiengang, $typ $name </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($ac_nr != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_acnr</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$ac_nr </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($seitenanzahl != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_sanz</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$seitenanzahl </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($datum != "" && $datum!=NULL) + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_datum</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + $datum_obj = new datum(); + $datum=$datum_obj->formatDatum($datum, 'd.m.Y'); + fwrite($fd,$datum."</TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($gutachter1 != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_gutachter1</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$gutachter1 </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($gutachter2 != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_gutachter2</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$gutachter2 </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($studiensemester != 0 && $studiensemester != '') + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_studiensemester</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$studiensemester</TD>\n"); + fwrite($fd,"</TR> \n"); + } + //**************************************************************************************************************************************** + if ($sachgruppe_ddc != "" && $sachgruppe_ddc != "no") + { + $res = $opus->query("SELECT sachgruppe FROM sachgruppe_ddc_$la where nr = '$sachgruppe_ddc'"); + $num = $opus->num_rows($res); + if ($num > 0) + { + $mrow = $opus->fetch_row($res); + $sachgruppe_ddc = $mrow[0]; + } + $opus->free_result($res); + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$ddc_sachgruppe</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$sachgruppe_ddc</TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($contributors_corporate != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$sonstige_institution</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$contributors_corporate </TD>\n"); + fwrite($fd,"</TR> \n"); + } + + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_dokumentart</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$dokumentart </TD>\n"); + fwrite($fd,"</TR> \n"); + /***** Schriftenreihe Start *****/ + if ($sr_id != "" && $sr_band != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_schriftenreihe</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"<a href=\"$url/schriftenreihen_ebene2.php?sr_id=$sr_id&la=$la\" target=\"new\">$sr_name</a> </TD>\n"); + fwrite($fd,"</TR> \n"); + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_bandnr</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$sr_band </TD>\n"); + fwrite($fd,"</TR> \n"); + } + /***** Schriftenreihe Stop *****/ + if ($advisor != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_hauptberichter</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$advisor </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($isbn != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_isbn</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$isbn </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($issn != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_issn</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$issn </TD>\n"); + fwrite($fd,"</TR> \n"); + } + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_sprache</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$sprache </TD>\n"); + fwrite($fd,"</TR> \n"); + if ($date_accepted != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_pruefung_muendlich</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + $date_accepted_format = strftime("%d.%m.%Y", $date_accepted); + fwrite($fd,"$date_accepted_format </TD>\n"); + fwrite($fd,"</TR> \n"); + } + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_erstellungsjahr</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$date_year </TD>\n"); + fwrite($fd,"</TR> \n"); + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_publikationsdatum</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + $date_creation_format = strftime("%d.%m.%Y", $date_creation); + fwrite($fd,"$date_creation_format </TD>\n"); + fwrite($fd,"</TR> \n"); + if ($date_valid != 0) + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + #fwrite($fd,"<B>Gültig bis:</B></TD> \n"); + fwrite($fd,"<B>$text6</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + $date_valid_format = strftime("%d.%m.%Y", $date_valid); + fwrite($fd,"$date_valid_format </TD>\n"); + fwrite($fd,"</TR> \n"); + } + if ($bem_extern != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$t_bemerkung</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,"$bem_extern </TD>\n"); + fwrite($fd,"</TR> \n"); + } + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$text4 $sprache_description:</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,nl2br($description)); + fwrite($fd,"</TD>\n"); + fwrite($fd,"</TR> \n"); + if ($description2 != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$text4 $sprache_description2:</B></TD> \n"); + fwrite($fd,"<TD></TD><TD class=\"frontdoor\" valign=\"bottom\">"); + fwrite($fd,nl2br($description2)); + fwrite($fd,"</TD>\n"); + fwrite($fd,"</TR> \n"); + } + # Start Lizenzvertrag + if ($lic_active >= 2) + { + if ($licname != "") + { + fwrite($fd,"<TR> \n<TD class=\"frontdoor\" valign=\"top\">"); + fwrite($fd,"<B>$lizenz:</B></TD> \n"); + fwrite($fd,"<TD></TD>\n<TD class=\"frontdoor\" valign=\"bottom\">"); + if (strlen(trim($licdesc_html)) > 0) + { + fwrite($fd,"\n" . $licdesc_html . "\n"); + } + $lic_uselogos = $opus->value("license_uselogos"); + if (($lic_uselogos) AND (strlen($liclogo) > 0)) + { + $liclogo_width = $opus->value("license_logo_width"); + $liclogo_height = $opus->value("license_logo_height"); + $liclogo_wh = ""; + if ($liclogo_width) + { + $liclogo_wh.= " width=\"" . $liclogo_width . "\""; + } + if ($liclogo_height) + { + $liclogo_wh.= " height=\"" . $liclogo_height . "\""; + } + fwrite($fd,"<a href=\"$liclink?la=$la\" target=\"_blank\">\n"); + fwrite($fd,"<img src=\"" . $liclogo . "\" alt=\"Lizenz-Logo\" border=\"0\"" . $liclogo_wh . ">"); + fwrite($fd,"</a> \n"); + } + fwrite($fd,"<a href=\"$liclink?la=$la\" target=\"_blank\">\n"); + fwrite($fd,"$licname</a> \n</td>\n"); + fwrite($fd,"</tr> \n"); + } + } + fwrite($fd,"</TABLE> \n"); + } + else + { + #fwrite($fd,"IDN $source_opus nicht vorhanden."); + fwrite($fd,"$text7 $source_opus $text8 "); + } + //$opus->close($sock); +} + + +//**************************************************************************************************** +//Einlesen Projektarbeiten (nur Diplomarbeiten) +//Bedingungen: +//Entweder DA oder LV benotet +//Abgabedatum nicht länger als 6 Monate zurück +//Freigegeben oder Endedatum der Sperre vorbei +//**************************************************************************************************** +$qry="SELECT *, tbl_lehreinheit.studiensemester_kurzbz, tbl_benutzer.uid as stud_uid, tbl_fachbereich.bezeichnung as fb_bez, + tbl_lehrveranstaltung.studiengang_kz as stg_kz, tbl_projektarbeit.note as note1, tbl_zeugnisnote.note as note2 + FROM lehre.tbl_projektarbeit + JOIN public.tbl_prestudent ON(tbl_projektarbeit.prestudent_id = tbl_prestudent.prestudent_id) + JOIN public.tbl_benutzer ON(tbl_prestudent.person_id = tbl_benutzer.person_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN lehre.tbl_lehrveranstaltung ON(tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id) + JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) + JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote ON(tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz AND tbl_benutzer.uid=tbl_zeugnisnote.student_uid) + WHERE ((tbl_projektarbeit.note>0 AND tbl_projektarbeit.note<5) OR (tbl_zeugnisnote.note>0 AND tbl_zeugnisnote.note<5)) AND projekttyp_kurzbz='Diplom' + AND to_char(tbl_projektarbeit.abgabedatum,'YYYYMMDD')>'".date('Ymd',mktime(0, 0, 0, date('m')-6, date('d'), date('Y')))."' + AND (tbl_projektarbeit.freigegeben OR (to_char(tbl_projektarbeit.gesperrtbis,'YYYYMMDD')<'".date('Ymd',mktime(0, 0, 0, date('m'), date('d'), date('Y')))."'))"; + +//echo $qry."<br>"; + +if($erg=pg_query($db_conn,$qry)) +{ + while($row=pg_fetch_object($erg)) + { + if(($row->note1<0 OR $row->note1>4) && ($row->note2<0 OR $row->note2>4)) + { + continue; + } + $opus_url=OPUS_PATH_PAA; + $url_paa=PAABGABE_PATH; + $row->sprache=mb_strtolower(mb_substr($row->sprache,0,3)); + //echo "--->".$row->projektarbeit_id.", ".$row->projekttyp_kurzbz.", ".$row->stud_uid.", ".$row->abgabedatum."<br>"; + //**************************************************************************************************** + //weitere benötigte Daten + //**************************************************************************************************** + //verfasser + $verfasser=""; + $qry_std="SELECT * FROM public.tbl_benutzer + JOIN public.tbl_person on(tbl_person.person_id=tbl_benutzer.person_id) + WHERE uid='".$row->stud_uid."';"; + //echo $qry_std."<br>"; + if($result_std=pg_query($db_conn,$qry_std)) + { + if(pg_num_rows($result_std)>0) + { + while($row_std=pg_fetch_object($result_std)) + { + if(trim($verfasser)=='') + { + $verfasser=trim($row_std->nachname.", ".$row_std->vorname); + } + else + { + $verfasser.=" , ".trim($row_std->nachname.", ".$row_std->vorname); + } + } + } + else + { + $fehler.="\nKein Verfasser zugeordnet!"; + $error=true; + } + } + else + { + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden (sel benutzer)!'."\n".$qry_std); + $mail->send(); + die($qry_std); + } + //begutachter + $begutachter1=""; + $qry_bet="SELECT * FROM lehre.tbl_projektbetreuer + JOIN public.tbl_person on(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) + WHERE projektarbeit_id='".$row->projektarbeit_id."' + AND (betreuerart_kurzbz='Betreuer' OR betreuerart_kurzbz='Begutachter' OR betreuerart_kurzbz='Erstbegutachter' OR betreuerart_kurzbz='Erstbetreuer');"; + //echo $qry_bet."<br>"; + if($result_bet=pg_query($db_conn,$qry_bet)) + { + if(pg_num_rows($result_bet)>0) + { + while($row_bet=pg_fetch_object($result_bet)) + { + if(trim($begutachter1)=='') + { + $begutachter1=trim($row_bet->nachname.", ".$row_bet->vorname); + } + else + { + $begutachter1.=" , ".trim($row_bet->nachname.", ".$row_bet->vorname); + } + } + } + else + { + $fehler.="\nKein Begutachter zugeordnet!"; + $error=true; + } + } + else + { + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'."\n".$qry_bet); + $mail->send($qry_bet); + die(); + } + if($row->projekttyp_kurzbz!='Bachelor') + { + $begutachter2=""; + $qry_bet="SELECT * FROM lehre.tbl_projektbetreuer + JOIN public.tbl_person on(lehre.tbl_projektbetreuer.person_id=public.tbl_person.person_id) + WHERE projektarbeit_id='".$row->projektarbeit_id."' + AND (betreuerart_kurzbz='Zweitbetreuer' OR betreuerart_kurzbz='Zweitbegutachter');"; + //echo $qry_bet."<br>"; + if($result_bet=pg_query($db_conn,$qry_bet)) + { + if(pg_num_rows($result_bet)>0) + { + while($row_bet=pg_fetch_object($result_bet)) + { + if(trim($begutachter2)=='') + { + $begutachter2=trim($row_bet->nachname.", ".$row_bet->vorname); + } + else + { + $begutachter2.=" , ".trim($row_bet->nachname.", ".$row_bet->vorname); + } + } + } + else + { + //$fehler.="\nKein Zweitbegutachter zugeordnet!"; + //$error=true; + $begutachter2 = $begutachter1; + } + } + else + { + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'."\n".$qry_bet); + $mail->send(); + die($qry_bet); + } + } + //Institute + if($row->fb_bez==NULL || trim($row->fb_bez)=='') + { + $fehler.="\nInstitut nicht gefunden!"; + $error=true; + } + else + { + $qry_inst="SELECT * FROM institute_de WHERE trim(name)='".trim($row->fb_bez)."';"; + if($result_inst = mysql_query($qry_inst,$conn_ext)) + { + if(mysql_num_rows($result_inst)>0) + { + while($row_inst=mysql_fetch_object($result_inst)) + { + $institut=$row_inst->nr; + } + } + else + { + $fehler.="\nInstitutsname nicht gefunden!"; + $error=true; + } + } + } + //echo $qry_inst."<br>"; + if($row->kontrollschlagwoerter==NULL || $row->kontrollschlagwoerter=='' || $row->abstract==NULL || $row->abstract=='' || $row->abstract_en==NULL || $row->abstract_en=='' ) + { + $fehler.=$row->stud_uid.": Projektarbeit (".$row->projekttyp_kurzbz.") ".$row->projektarbeit_id.$fehler; + if($row->kontrollschlagwoerter==NULL || $row->kontrollschlagwoerter=='') + { + $fehler.="\nKontrollierte Schlagwörter nicht eingegeben!"; + $error=true; + } + if($row->abstract==NULL || $row->abstract=='') + { + $fehler.="\nAbstract nicht eingegeben!"; + $error=true; + } + if($row->abstract_en==NULL || $row->abstract_en=='') + { + $fehler.="\nEnglischer Abstract nicht eingegeben!"; + $error=true; + } + if($row->seitenanzahl==NULL || $row->seitenanzahl=='') + { + $fehler.="\nSeitenanzahl nicht eingegeben!"; + $error=true; + } + if($row->stg_kz==NULL || $row->stg_kz=='' || $row->stg_kz==0) + { + $fehler.="\nStudiengang nicht gefunden!"; + $error=true; + } + if($row->studiensemester_kurzbz==NULL || $row->studiensemester_kurzbz=='') + { + $fehler.="\nStudiensemester nicht gefunden!"; + $error=true; + } + } + + if(!$error) + { + //******************************************************************************************* + //Einfügen in OPUS + //******************************************************************************************* + + // Originaltitel der Arbeit title + // Titel der Arbeit in Englisch title_en + // 1. Verfasser(innen)name (opus_autor) source_opus, creator_name, 1 + // Universität publisher_university = FHTW + // Typ der Arbeit type (Nummer) 7=Diplomarbeit, 25=Bachelorarbeit + // Institut (opus_inst) source_opus, inst_nr + // Studiengang stg_nr + // Datumsfeld datum + // 1. Gutachter begutachter1 + // 2. Gutachter begutachter2 + // Kontrollierte Schlagwörter (Deutsch) subject_swd + // Schlagwörter dt subject_uncontrolled_german + // Schlagwörter en subject_uncontrolled_english + // Abstract description + // Abstract en description2 + // Abstract Sprache 1 sprache + // Abstract Sprache 2 description2_lang = eng + // Sachgrupppe sachgruppe_ddc = 000 000=Allgemeines, Wissenschaft + // Jahr date_year + // Seitenanzahl seitenanzahl + // Studiensemester studiensemester_kurzbz + // Projektabeit ID projektarbeit_id + // Sprache sprache + // Zugriffsbeschränkung bereich_id 1=uneingeschränkt, 2=innerh. Campus + + if($row->projekttyp_kurzbz=='Diplom') + $typ=7; + if($row->projekttyp_kurzbz=='Bachelor') + $typ=25; + $stg=($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz); + $qry_src="Select max(source_opus) as source from opus + UNION + SELECT id as source from seq_temp + ORDER BY source DESC LIMIT 1"; + if($result_src = mysql_query($qry_src,$conn_ext)) + { + while($row_src=mysql_fetch_object($result_src)) + { + $row_opus=$row_src->source+1; + } + } + $qry_chk="SELECT projektarbeit_id FROM opus WHERE projektarbeit_id=".$row->projektarbeit_id; + if($result_chk=mysql_query($qry_chk)) + { + if(mysql_num_rows($result_chk)>0) + { + //Datensatz bereits eingetragen + echo "Bereits vorhanden: ".$row->projektarbeit_id."<br>"; + } + else + { + $qry_ins="INSERT INTO opus + (source_opus, title, title_en, publisher_university, type, stg_nr, datum, begutachter1, begutachter2, subject_swd, + subject_uncontrolled_german, subject_uncontrolled_english, description, description2, description_lang, description2_lang, + sachgruppe_ddc, date_year, seitenanzahl, studiensemester_kurzbz, projektarbeit_id, language, bereich_id, date_creation) values + ('".$row_opus."', '".addslashes($row->titel)."', '".addslashes($row->titel_english)."', 'FHTW', '".$typ."', '".$stg."', '".$row->abgabedatum."', '" + .addslashes($begutachter1)."', '".addslashes($begutachter2)."', '".addslashes($row->kontrollschlagwoerter)."', '".addslashes($row->schlagwoerter) + ."', '".addslashes($row->schlagwoerter_en)."', '".addslashes($row->abstract)."', '".addslashes($row->abstract_en)."', '".$row->sprache + ."', 'eng', '000', '".$datum_obj->formatDatum($row->abgabedatum,'Y')."', '".$row->seitenanzahl."', '".$row->studiensemester_kurzbz."', '" + .$row->projektarbeit_id."', '".$row->sprache."', '".$bereich."', UNIX_TIMESTAMP())"; + $qry_cre="INSERT INTO opus_autor (source_opus, creator_name, reihenfolge) VALUES ('".$row_opus."', '".$verfasser."', '1')"; + $qry_inst="INSERT INTO opus_inst (source_opus, inst_nr) VALUES ('".$row_opus."', '".$institut."')"; + $qry_seq="UPDATE seq_temp SET id=".$row_opus; + + $qry="START TRANSACTION"; + + //echo $qry."<br>".$qry_ins."<br>".$qry_cre."<br>".$qry_inst; + if(!$result=mysql_query($qry)) + { + $fehler1.="\n\nTransaktion nicht begonnen! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + } + else + { + if(!$result=mysql_query($qry_ins)) + { + $fehler1.="\n\nTransaktion abgebrochen! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + mysql_query('ROLLBACK',$conn_ext); + } + else + { + if(!$result=mysql_query($qry_cre)) + { + $fehler1.="\n\nTransaktion abgebrochen!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + if(!$result=mysql_query('ROLLBACK',$conn_ext)) + { + $fehler1.="\n\nRollback nicht durchgeführt. \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + } + } + else + { + if(!$result=mysql_query($qry_inst)) + { + echo nl2br("\n\nTransaktion abgebrochen!!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); + mysql_query('ROLLBACK',$conn_ext); + } + else + { + if(!$result=mysql_query($qry_seq)) + { + //Sequenz schreiben + echo nl2br("\n\nTransaktion abgebrochen!!! \n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); + mysql_query('ROLLBACK',$conn_ext); + } + else + { + //arbeit freigegeben? + if($row->freigegeben) + { + //Kopieren der Abgabedatei + $qry_file="SELECT * FROM campus.tbl_paabgabe WHERE projektarbeit_id='".$row->projektarbeit_id."' and paabgabetyp_kurzbz='end' AND abgabedatum is not null ORDER BY abgabedatum desc LIMIT 1"; + if($result_file=pg_query($db_conn,$qry_file)) + { + if($row_file=pg_fetch_object($result_file)) + { + if(!is_dir($opus_url.date('Y'))) + { + mkdir($opus_url.date('Y'), 0775); + } + if(!is_dir($opus_url.date('Y')."/".$row_opus)) + { + mkdir($opus_url.date('Y')."/".$row_opus, 0775); + } + $opus_url=$opus_url.date('Y')."/".$row_opus; + if(!is_dir($opus_url."/pdf/")) + { + mkdir($opus_url."/pdf/", 0775); + } + //echo "\nQuelle: ".$url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'." -> ".$opus_url."".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'; + copy($url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf',$opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'); + //überprüfen, ob Datei wirklich kopiert wurde + if(is_file($opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf')) + { + //COMMIT durchführen + if(!$result=mysql_query('COMMIT',$conn_ext)) + { + mysql_query('ROLLBACK',$conn_ext); + $fehler1.="\nCommit nicht ausgef&um;hrt! \n".$row_opus."/".$verfasser."\n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + } + else + { + if (file_exists($opus_url)) + { + $fd = fopen($opus_url."/index.html", 'w'); + if ($fd == 0) + { + $fehler1.="\nFehler beim Oeffnen des Index-Files \n\n"; + exit; + } + else + { + indexdatei($row_opus, $fd); + fclose($fd); + $kopiert.="OPUS-Nr. $row_opus, von $verfasser, ProjektarbeitID $row->projektarbeit_id\n"; + #print ("Indexdatei zu Dokument $source_opus wurde in die Datei <a href=\"$volltext_url/$jahr/$source_opus/index.html\">index.html</a> geschrieben.<P> \n"); + } + } + else + { + $fehler1.="\n".$opus_url."/pdf/ nicht vorhanden.\n \n"; + } + } + } + else + { + mysql_query('ROLLBACK',$conn_ext); + $fehler1.="\nDatei wurde nicht kopiert! \nZielpfad:".$opus_url."/pdf/".$row_file->paabgabe_id.'_'.$row->stud_uid.".pdf \nSource: ".$url_paa.$row_file->paabgabe_id.'_'.$row->stud_uid.'.pdf'."\n"; + } + } + else + { + mysql_query('ROLLBACK',$conn_ext); + $fehler1.="\nAbgabe konnte nicht geladen werden! \n".$row_opus."/".$verfasser."\n".$db->db_last_error(); + } + } + else + { + mysql_query('ROLLBACK',$conn_ext); + $fehler1.="\nEintragung der Abgabe nicht gefunden! \n".$row_opus."/".$verfasser."/".$qry_file."\n".$db->db_last_error(); + } + } + else + { + //COMMIT durchführen + if(!$result=mysql_query('COMMIT',$conn_ext)) + { + mysql_query('ROLLBACK',$conn_ext); + $fehler1.="\nCommit wurde nicht ausgef&um;hrt! \n".$row_opus."/".$verfasser."\n".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext); + } + } + } + } + } + } + } + } + } + else + { + $fehler1.="\nÜberprüfung, ob bereits vorhanden, konnte nicht durchgeführt werden! \n".mysql_errno($conn_ext)."\n".$qry_chk."\n"; + } + if($fehler1!='') + { + $fehler.="-->".$fehler1; + $fehler.="\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; + $fehler.="\nBegutachter1: ".$begutachter1."\nBegutachter2: ".$begutachter2."\nTitel: ".$row->titel."\nTitel en: ".$row->titel_english."\n"; + $fehler.="Verfasser: ".$verfasser."\nInstitut: ".$institut."\nStudiengang: ".($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz)."\nDatum: ".$datum_obj->formatDatum($row->abgabedatum,'d.m.Y')."\n"; + $fehler.="Kontr. Schlagwörter: ".$row->kontrollschlagwoerter."\nSchlagwörter dt: ".$row->schlagwoerter."\nSchlagwörter en: ".$row->schlagwoerter_en."\n"; + $fehler.="Abstract: ".$row->abstract."\nAbstract_en: ".$row->abstract_en."\nSeitenanzahl: ".$row->seitenanzahl."\nStudiensemester: ".$row->studiensemester_kurzbz."\n"; + $fehler.="Projektarbeit ID: ".$row->projektarbeit_id."\nTyp der Arbeit: ".$row->projekttyp_kurzbz."\n"; + $fehler1=''; + } + } + else + { + $fehler.="\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; + $fehler.="\nBegutachter1: ".$begutachter1."\nBegutachter2: ".$begutachter2."\nTitel: ".$row->titel."\nTitel en: ".$row->titel_english."\n"; + $fehler.="Verfasser: ".$verfasser."\nInstitut: ".$institut."\nStudiengang: ".($row->stg_kz<1000?'0'.$row->stg_kz:$row->stg_kz)."\nDatum: ".$datum_obj->formatDatum($row->abgabedatum,'d.m.Y')."\n"; + $fehler.="Kontr. Schlagwörter: ".$row->kontrollschlagwoerter."\nSchlagwörter dt: ".$row->schlagwoerter."\nSchlagwörter en: ".$row->schlagwoerter_en."\n"; + $fehler.="Abstract: ".$row->abstract."\nAbstract_en: ".$row->abstract_en."\nSeitenanzahl: ".$row->seitenanzahl."\nStudiensemester: ".$row->studiensemester_kurzbz."\n"; + $fehler.="Projektarbeit ID: ".$row->projektarbeit_id."\nTyp der Arbeit: ".$row->projekttyp_kurzbz."\n"; + $error=false; + } + } + if($fehler!='') + { + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', "Aufgetretene Fehler: \n".$fehler); + $mail->send(); + $fehler=''; + } +} +else +{ + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbank konnte nicht geöffnet werden!'."\n".$qry); + $mail->send(); + die($qry); +} +if ($kopiert!='' && $kopiert!=NULL) +{ + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'abgabe2opus', "Übertragene Projektarbeiten:\n".$kopiert); + $mail->send(); +} + +?> diff --git a/vilesci/lehre/abgabe_assistenz.php b/vilesci/lehre/abgabe_assistenz.php index c481504f5..fb269a224 100644 --- a/vilesci/lehre/abgabe_assistenz.php +++ b/vilesci/lehre/abgabe_assistenz.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik <moik@technikum-wien.at> */ /******************************************************************************************************* @@ -84,8 +85,9 @@ $sql_query = "SELECT *, WHERE prestudent_id=(Select prestudent_id from tbl_student where student_uid=xy.uid limit 1) ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1 ) as organisationsform - FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit - LEFT JOIN public.tbl_benutzer on(uid=student_uid) + FROM (SELECT DISTINCT ON(tbl_projektarbeit.projektarbeit_id) public.tbl_studiengang.bezeichnung as stgbez,tbl_projekttyp.bezeichnung AS prjbez,* FROM lehre.tbl_projektarbeit + LEFT JOIN public.tbl_prestudent ON(tbl_prestudent.prestudent_id = tbl_projektarbeit.prestudent_id) + LEFT JOIN public.tbl_benutzer on(tbl_prestudent.person_id=tbl_benutzer.person_id) LEFT JOIN public.tbl_person on(tbl_benutzer.person_id=tbl_person.person_id) LEFT JOIN lehre.tbl_lehreinheit using(lehreinheit_id) LEFT JOIN lehre.tbl_lehrveranstaltung using(lehrveranstaltung_id) diff --git a/vilesci/lehre/abgabe_assistenz_multitermin.php b/vilesci/lehre/abgabe_assistenz_multitermin.php index 73d0d7787..3107df9f4 100644 --- a/vilesci/lehre/abgabe_assistenz_multitermin.php +++ b/vilesci/lehre/abgabe_assistenz_multitermin.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Moik <moik@technikum-wien.at>. */ /******************************************************************************************************* @@ -201,7 +202,7 @@ if(isset($_POST["schick"]) && $error=='') } } //Student zu projektarbeit_id suchen - $qry_std="SELECT * FROM campus.vw_student WHERE uid IN(SELECT student_uid FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")"; + $qry_std="SELECT * FROM campus.vw_student WHERE prestudent_id IN(SELECT prestudent_id FROM lehre.tbl_projektarbeit WHERE projektarbeit_id=".$db->db_add_param($termine[$j]).")"; if($result_std=$db->db_query($qry_std)) { //Mail an Studierenden diff --git a/vilesci/lehre/projektarbeitsbenotung.php b/vilesci/lehre/projektarbeitsbenotung.php index 4f394e580..a10a2b220 100644 --- a/vilesci/lehre/projektarbeitsbenotung.php +++ b/vilesci/lehre/projektarbeitsbenotung.php @@ -215,10 +215,10 @@ foreach ($projekt->result as $row) } echo "</SELECT>"; echo "</td>"; - + echo "</tr>"; } - + echo '</tbody></table>'; echo '<br><br><div align="right"><input type="submit" value="Speichern" name="savedata"/></div>'; echo '</form>'; @@ -227,4 +227,6 @@ echo '</form>'; <br> </body> -</html> \ No newline at end of file +</html> +?> +