diff --git a/system/abgabe2opus.php b/system/abgabe2opus.php new file mode 100644 index 000000000..07a9a93b5 --- /dev/null +++ b/system/abgabe2opus.php @@ -0,0 +1,369 @@ +, + * 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(); +} + + +?> \ No newline at end of file