, * Andreas Oesterreicher and * Rudolf Hangl . * ******************************************************************************************************* * abgabe2opus.php * abgabe2opus kopiert neue Abgaben ins opus *******************************************************************************************************/ require_once('../cis/config.inc.php'); require_once('../include/functions.inc.php'); require_once('../include/studiengang.class.php'); require_once('../include/datum.class.php'); require_once('../include/benutzerberechtigung.class.php'); require_once('../include/datum.class.php'); require_once('../include/mail.class.php'); //DB Verbindung herstellen if (!$conn = @pg_pconnect(CONN_STRING)) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); // zugriff auf mssql-datenbank if (!$conn_ext=mysql_connect (OPUS_SERVER, OPUS_USER, OPUS_PASSWD)) die('Fehler beim Verbindungsaufbau!'); mysql_select_db(OPUS_DB, $conn_ext); $datum_obj = new datum(); $fehler=''; $error=false; $begutachter1=''; $begutachter2=''; $verfasser=''; $abgabedatum=''; $datum=''; $institut=''; $typ=''; $bereich=2; $stg=''; $row_opus=0; echo ' Abgabe2OPUS '; //Einlesen Projektarbeiten $qry="SELECT tbl_fachbereich.bezeichnung as fb_bez, tbl_lehrveranstaltung.studiengang_kz as stg_kz, * FROM lehre.tbl_projektarbeit JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) JOIN public.tbl_fachbereich USING(fachbereich_kurzbz) WHERE tbl_projektarbeit.note>0 AND tbl_projektarbeit.note<5 AND abgabedatum>".mktime(0, 0, 0, date('m')-3, date('d'), date('Y')); if($erg=pg_query($conn, $qry)) { while($row=pg_fetch_object($erg)) { //echo "--->".$row->projektarbeit_id.", ".$row->projekttyp_kurzbz.", ".$row->student_uid; //verfasser $qry_std="SELECT * FROM public.tbl_benutzer JOIN public.tbl_person on(tbl_person.person_id=tbl_benutzer.person_id) WHERE uid='".$row->student_uid."';"; if($result_std=pg_query($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->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); } else { $verfasser.=" , ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost); } } } else { $fehler.="\nKein Verfasser zugeordnet!"; $error=true; } } else { $mail = new mail('ruhan@technikum-wien.at', 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'); $mail->send(); } //begutachter $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='Erstbegutachter');"; if($result_bet=pg_query($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->titelpre." ".$row_bet->vorname." ".$row_bet->nachname." ".$row_bet->titelpost); } else { $begutachter1.=" , ".trim($row_bet->titelpre." ".$row_bet->vorname." ".$row_bet->nachname." ".$row_bet->titelpost); } } } else { $fehler.="\nKein Begutachter zugeordnet!"; $error=true; } } else { $mail = new mail('ruhan@technikum-wien.at', 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'); $mail->send(); } if($row->projekttyp_kurzbz!='Bachelor') { $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');"; if($result_bet=pg_query($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->titelpre." ".$row_bet->vorname." ".$row_bet->nachname." ".$row_bet->titelpost); } else { $begutachter2.=" , ".trim($row_bet->titelpre." ".$row_bet->vorname." ".$row_bet->nachname." ".$row_bet->titelpost); } } } else { $fehler.="\nKein Zweitbegutachter zugeordnet!"; $error=true; } } else { $mail = new mail('ruhan@technikum-wien.at', 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbanken konnten nicht geöffnet werden!'); $mail->send(); } } //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; } } } if($row->kontrollschlagwoerter==NULL || $row->kontrollschlagwoerter=='' || $row->abstract==NULL || $row->abstract=='' || $row->abstract_en==NULL || $row->abstract_en=='' ) { $fehler=$row->student_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) { //Abfrage ob bereits vorhanden //wenn noch nicht vorhanden -> einfügen // 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 description_lang = ger // 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 language = ger // 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"; if($result_src = mysql_query($qry_src,$conn_ext)) { while($row_src=mysql_fetch_object($result_src)) { $row_opus=$row_src->source+1; } } $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)."', 'ger', 'eng', '000', '".$datum_obj->formatDatum($row->abgabedatum,'Y')."', '".$row->seitenanzahl."', '".$row->studiensemester_kurzbz."', '".$row->projektarbeit_id."', 'ger', '".$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="START TRANSACTION"; //echo $qry.$qry_ins.$qry_cre.$qry_inst; if(!$result=mysql_query($qry)) { echo nl2br("\n\nTransaktion nicht begonnen! ".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); } else { if(!$result=mysql_query($qry_ins)) { echo nl2br("\n\nTransaktion abgebrochen! ".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); mysql_query('ROLLBACK',$conn_ext); } else { if(!$result=mysql_query($qry_cre)) { echo nl2br("\n\nTransaktion abgebrochen!! ".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); if(!$result=mysql_query('ROLLBACK',$conn_ext)) { echo nl2br("\n\nRollback nicht durchgeführt. ".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); } } else { if(!$result=mysql_query($qry_inst)) { echo nl2br("\n\nTransaktion abgebrochen!!! ".mysql_errno($conn_ext) . ": " . mysql_error($conn_ext)); mysql_query('ROLLBACK',$conn_ext); } else { if(!$result=mysql_query('COMMIT',$conn_ext)) { mysql_query('ROLLBACK',$conn_ext); echo 'Commit nicht ausgef&um;hrt'; } } } } } } else { $fehler.="\n-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; echo nl2br($fehler."\nBegutachter1: ".$begutachter1."\nBegutachter2: ".$begutachter2."\nTitel: ".$row->titel."\nTitel en: ".$row->titel_english."\n"); echo nl2br("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"); echo nl2br("Kontr. Schlagwörter: ".$row->kontrollschlagwoerter."\nSchlagwörter dt: ".$row->schlagwoerter."\nSchlagwörter en: ".$row->schlagwoerter_en."\n"); echo nl2br("Abstract: ".$row->abstract."\nAbstract_en: ".$row->abstract_en."\nSeitenanzahl: ".$row->seitenanzahl."\nStudiensemester: ".$row->studiensemester_kurzbz."\n"); echo nl2br("Projektarbeit ID: ".$row->projektarbeit_id."\nTyp der Arbeit: ".$row->projekttyp_kurzbz."\n"); $fehler=''; $mail = new mail('ruhan@technikum-wien.at', 'vilesci@technikum-wien.at', 'abgabe2opus', 'Aufgetretene Fehler: \n'.$fehler); $mail->send(); } } } else { $mail = new mail('ruhan@technikum-wien.at', 'vilesci@technikum-wien.at', 'abgabe2opus', 'Quelldatenbank konnte nicht geöffnet werden!'); $mail->send(); } ?>