From 201aa4f74639d136bc30240789e7e5601c102000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 28 Apr 2011 13:43:12 +0000 Subject: [PATCH] =?UTF-8?q?-=20Incoming/Outgoing=20Statistik=20-=20LV-Plan?= =?UTF-8?q?=20Syncro=20kann=20nun=20getrennt=20pro=20Studiengang=20f=C3=BC?= =?UTF-8?q?r=20bestimmten=20Zeitraum=20ausgef=C3=BChrt=20werden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/studiensemester.class.php | 33 +++++++ include/tw/vilesci_menu_main.inc.php | 5 +- system/sync/sync_stpldev_stpl.php | 22 +++-- vilesci/lehre/lvplan_custom_sync.php | 80 +++++++++++++++++ vilesci/statistik/incoming.php | 124 +++++++++++++++++++++++++ vilesci/statistik/outgoing.php | 129 +++++++++++++++++++++++++++ 6 files changed, 386 insertions(+), 7 deletions(-) create mode 100644 vilesci/lehre/lvplan_custom_sync.php create mode 100644 vilesci/statistik/incoming.php create mode 100644 vilesci/statistik/outgoing.php diff --git a/include/studiensemester.class.php b/include/studiensemester.class.php index 4f29a7d66..b29243801 100644 --- a/include/studiensemester.class.php +++ b/include/studiensemester.class.php @@ -526,5 +526,38 @@ class studiensemester extends basis_db return false; } } + + /** + * Laedt die vergangenen Studiensemester und das aktuelle + * + * @param limit maximale Anzahl + * @return true wenn ok, sonst false + */ + public function getFinished($limit=null) + { + $qry = "SELECT * FROM public.tbl_studiensemester where start<=now() ORDER BY ende DESC"; + if(!is_null($limit) && is_numeric($limit)) + $qry.=' LIMIT '.$limit; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $stsem_obj = new studiensemester(); + + $stsem_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $stsem_obj->start = $row->start; + $stsem_obj->ende = $row->ende; + + $this->studiensemester[] = $stsem_obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Studiensemester'; + return false; + } + } } ?> \ No newline at end of file diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 83ea2d530..d583990cd 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -90,7 +90,7 @@ $menu=array 'Kollision'=>array('name'=>'Kollision Student', 'link'=>'lehre/stpl_benutzer_kollision_frameset.html', 'target'=>'main'), 'Stundenplan'=>array('name'=>'Stundenplan', 'link'=>'../cis/private/lvplan/index.html', 'target'=>'main'), 'Zeitwuensche'=>array('name'=>'Zeitwünsche', 'link'=>'lehre/zeitwuensche.php', 'target'=>'main'), - 'LVPlanSync'=>array('name'=>'Sync', 'link'=>'../system/sync/index.html', 'target'=>'main'), + 'LVPlanSync'=>array('name'=>'Sync', 'link'=>'lehre/lvplan_custom_sync.php', 'target'=>'main'), 'Ueberbuchungen'=>array('name'=>'Überbuchungen', 'link'=>'lehre/check/ueberbuchung.php', 'target'=>'main'), //'Studenten'=>array('name'=>'Studenten', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), //'Insert'=>array('name'=>'Insert', 'link'=>'lehre/stdplan_insert.php', 'target'=>'main'), @@ -135,7 +135,8 @@ $menu=array //'Vorrückung'=>array('name'=>'Vorrückung', 'link'=>'personen/student_vorrueckung.php', 'target'=>'main'), ),*/ 'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.html', 'target'=>'main','permissions'=>array('admin','lv-plan','support')), - 'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','lv-plan','support','preinteressent')) + 'Preinteressenten'=>array('name'=>'Preinteressenten', 'link'=>'personen/preinteressent_frameset.html', 'target'=>'_blank','permissions'=>array('admin','lv-plan','support','preinteressent')), + 'Incoming'=>array('name'=>'Incoming', 'link'=>'personen/incoming_frameset.php', 'target'=>'_blank','permissions'=>array('inout/incoming')) ), 'Stammdaten'=> array ( diff --git a/system/sync/sync_stpldev_stpl.php b/system/sync/sync_stpldev_stpl.php index f74ab90aa..76a48f59e 100644 --- a/system/sync/sync_stpldev_stpl.php +++ b/system/sync/sync_stpldev_stpl.php @@ -41,6 +41,7 @@ echo ' $adress='fas_sync@technikum-wien.at'; //$adress_stpl='pam@technikum-wien.at'; $adress_stpl='stpl@technikum-wien.at'; + if (isset($_GET['sendmail'])) { if ($_GET['sendmail']=='true') @@ -75,8 +76,19 @@ $ss->getNearestTillNext(); $datum_begin=$ss->start; $datum_ende=$ss->ende; //$datum_begin='2008-01-07'; -$datum_ende='2011-02-05'; // $ss->ende +$datum_ende='2011-08-05'; // $ss->ende +$stgwhere = ''; +$stgwheredev = ''; +if(isset($_GET['custom'])) +{ + $sendmail = isset($_GET['mail']); + $studiengang_kz=$_GET['studiengang_kz']; + $stgwhere = " AND studiengang_kz='".addslashes($studiengang_kz)."'"; + $stgwheredev = " AND vw_stundenplandev.studiengang_kz='".addslashes($studiengang_kz)."'"; + $datum_begin = $_GET['von']; + $datum_ende = $_GET['bis']; +} // ************* FUNCTIONS **************** // function getStudentsFromGroup($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz) @@ -146,7 +158,7 @@ Dies ist eine automatische Mail!
Es haben sich folgende Aenderungen in Ihrem echo 'Neue Datensätze werden geholt. ('.date('H:i:s').')
';flush(); $message_stpl .= 'Neue Datensätze werden geholt. ('.date('H:i:s').')'; -$sql_query="SELECT * FROM lehre.vw_stundenplandev WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' AND +$sql_query="SELECT * FROM lehre.vw_stundenplandev WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' ".$stgwhere." AND NOT EXISTS (SELECT stundenplan_id FROM lehre.tbl_stundenplan WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' AND stundenplan_id=stundenplandev_id) ORDER BY datum, stunde;"; @@ -256,7 +268,7 @@ else echo '
Alte Datensätze werden geholt.('.date('H:i:s').')
';flush(); $message_stpl .='
Alte Datensätze werden geholt.('.date('H:i:s').')
'; -$sql_query="SELECT * FROM lehre.vw_stundenplan WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' +$sql_query="SELECT * FROM lehre.vw_stundenplan WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' ".$stgwhere." AND NOT EXISTS (SELECT stundenplandev_id FROM lehre.tbl_stundenplandev WHERE datum>='".addslashes($datum_begin)."' AND datum<='".addslashes($datum_ende)."' AND stundenplandev_id=stundenplan_id);"; if (!$result = $db->db_query($sql_query)) @@ -353,7 +365,8 @@ $sql_query="SELECT vw_stundenplandev.*, vw_stundenplan.datum AS old_datum, vw_st vw_stundenplandev.anmerkung!=vw_stundenplan.anmerkung OR vw_stundenplandev.fix!=vw_stundenplan.fix OR vw_stundenplandev.lehreinheit_id!=vw_stundenplan.lehreinheit_id ) - AND vw_stundenplandev.datum>='".addslashes($datum_begin)."';"; + AND vw_stundenplandev.datum>='".addslashes($datum_begin)."' + AND vw_stundenplandev.datum<='".addslashes($datum_ende)."' ".$stgwheredev.";"; //echo $sql_query.'
'; if (!$result = $db->db_query($sql_query)) { @@ -555,7 +568,6 @@ $message_sync=''.$message_tmp.$message_sync.$message_stpl.'setHTMLContent($message_sync); $mail->send(); - $message_stpl=''.$message_tmp.$message_stpl.''; $mail = new mail(MAIL_LVPLAN, MAIL_LVPLAN, 'Stundenplan update', 'Sie muessen diese Mail als HTML-Mail anzeigen um die LV-Plan Änderungen anzuzeigen'); $mail->setHTMLContent($message_stpl); diff --git a/vilesci/lehre/lvplan_custom_sync.php b/vilesci/lehre/lvplan_custom_sync.php new file mode 100644 index 000000000..c84e40fd2 --- /dev/null +++ b/vilesci/lehre/lvplan_custom_sync.php @@ -0,0 +1,80 @@ +, + * Andreas Oesterreicher and + * Karl Burkhart . + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/studiengang.class.php'); + +?> + + + + LV-Plan Syncronisation + + + + +

LV-Plan Synronisation

+LV-Plan Sync - Normal - mit Mail

+ LV-Plan Sync - Normal - ohne Mails
+
+
+ Sync für speziellen Studiengang / Zeitraum +
+ + + + + + + + + + + + + + + + + + + + + + +
Studiengang +
Von
Bis
Mails senden
+
+
'; +?> + + \ No newline at end of file diff --git a/vilesci/statistik/incoming.php b/vilesci/statistik/incoming.php new file mode 100644 index 000000000..4359f9cef --- /dev/null +++ b/vilesci/statistik/incoming.php @@ -0,0 +1,124 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Karl Burkhart + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/studiensemester.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user = get_uid(); + +echo ' + + + Incoming + + + + + + + +

Incoming

'; + +$studiengang_kz = isset($_REQUEST['studiengang_kz'])?$_REQUEST['studiengang_kz']:''; + +echo '
'; +$stg_obj = new studiengang(); +$stg_obj->getAll('typ, kurzbz'); +echo "\n",'Studiengang '; +echo '  
'; + +$stsem = new studiensemester(); +$stsem->getFinished(); +foreach($stsem->studiensemester as $row) +{ + $qry="SELECT + distinct vorname, nachname, studiengang_kz, UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg + FROM + public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING(prestudent_id) + JOIN public.tbl_person USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz='".$row->studiensemester_kurzbz."'"; + if($studiengang_kz!='') + $qry.=" AND tbl_prestudent.studiengang_kz='".addslashes($studiengang_kz)."'"; + $qry.=" ORDER BY stg"; + + if($result = $db->db_query($qry)) + { + $anzahl = $db->db_num_rows($result); + echo '

'.$row->studiensemester_kurzbz.' Anzahl: '.$anzahl.'

'; + + if($anzahl>0) + { + echo ' + + + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
NachnameVornameStudiengang
'.$row->nachname.''.$row->vorname.''.$row->stg.'
'; + } + } +} + +echo ''; +?> \ No newline at end of file diff --git a/vilesci/statistik/outgoing.php b/vilesci/statistik/outgoing.php new file mode 100644 index 000000000..c54e2139a --- /dev/null +++ b/vilesci/statistik/outgoing.php @@ -0,0 +1,129 @@ + + * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Karl Burkhart + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/studiensemester.class.php'); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user = get_uid(); + +echo ' + + + Outgoing + + + + + + + +

Outgoing

'; + +$studiengang_kz = isset($_REQUEST['studiengang_kz'])?$_REQUEST['studiengang_kz']:''; + +echo '
'; +$stg_obj = new studiengang(); +$stg_obj->getAll('typ, kurzbz'); +echo "\n",'Studiengang '; +echo '  
'; + +$stsem = new studiensemester(); +$stsem->getFinished(); +foreach($stsem->studiensemester as $row) +{ + $qry="SELECT + distinct vorname, nachname, tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) as stg + FROM + public.tbl_prestudent + JOIN public.tbl_person USING(person_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + JOIN public.tbl_student USING(prestudent_id) + JOIN bis.tbl_bisio USING(student_uid) + WHERE + + ( + (tbl_bisio.von>='$row->start' AND tbl_bisio.von<='$row->ende') + OR (tbl_bisio.bis<='$row->ende' AND tbl_bisio.bis>='$row->start') + ) + AND get_rolle_prestudent (prestudent_id, '$row->studiensemester_kurzbz')<>'Incoming' "; + if($studiengang_kz!='') + $qry.=" AND tbl_student.studiengang_kz='".addslashes($studiengang_kz)."'"; + $qry.=" ORDER BY stg"; + + if($result = $db->db_query($qry)) + { + $anzahl = $db->db_num_rows($result); + echo '

'.$row->studiensemester_kurzbz.' Anzahl: '.$anzahl.'

'; + + if($anzahl>0) + { + echo ' + + + + + + + + + + '; + + while($row = $db->db_fetch_object($result)) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
NachnameVornameStudiengang
'.$row->nachname.''.$row->vorname.''.$row->stg.'
'; + } + } +} + +echo ''; +?> \ No newline at end of file