From 50f7531fa671876de66a4c53013a64564842e54b Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 22 Mar 2017 17:21:10 +0100 Subject: [PATCH 01/36] system/Users: saving stufe and gruppe via ajax --- application/controllers/system/Users.php | 22 +++++++++++---- application/views/system/users.php | 36 +++++++++++++++++------- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/application/controllers/system/Users.php b/application/controllers/system/Users.php index aeef474ff..db58980ea 100644 --- a/application/controllers/system/Users.php +++ b/application/controllers/system/Users.php @@ -100,16 +100,22 @@ class Users extends VileSci_Controller // Load model PrestudentstatusModel $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel'); - $result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe); + $result = error("No valid parameters"); + if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) + { + $result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe); + } + + $this->output->set_header('Content-Type: application/json; charset=utf-8'); if (isSuccess($result)) { $href = str_replace("/system/Users/linkToStufe", "/system/Users", $_SERVER["REQUEST_URI"]); - echo "
Data correctly saved - Back
"; + echo '{"msg": "Data correctly saved"}'; } else { - echo "
Error occurred while saving data, please contact the administrator.
"; + echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; } } @@ -121,16 +127,20 @@ class Users extends VileSci_Controller // Load model PrestudentstatusModel $this->load->model('crm/Prestudent_model', 'PrestudentModel'); - $result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe); + $result = error("No valid parameters"); + if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) + { + $result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe); + } if (isSuccess($result)) { $href = str_replace("/system/Users/linkToAufnahmegruppe", "/system/Users", $_SERVER["REQUEST_URI"]); - echo "
Data correctly saved - Back
"; + echo '{"msg": "Data correctly saved"}'; } else { - echo "
Error occurred while saving data, please contact the administrator.
"; + echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; } } diff --git a/application/views/system/users.php b/application/views/system/users.php index e93177081..5bda4f1b5 100644 --- a/application/views/system/users.php +++ b/application/views/system/users.php @@ -198,22 +198,38 @@ if ($("#linkToStufe")) { $("#linkToStufe").click(function() { - if ($("#linkUsersForm")) - { - $("#linkUsersForm").attr("action", ""); - $("#linkUsersForm").submit(); - } + $.ajax({ + type: "POST", + dataType: "json", + url: "", + data: $("#linkUsersForm").serialize(), + success: function(data, textStatus, jqXHR) { + alert(data.msg); + $("#usersFiltersForm").submit(); + }, + error: function(jqXHR, textStatus, errorThrown) { + alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText); + } + }); }); } if ($("#linkToGruppe")) { $("#linkToGruppe").click(function() { - if ($("#linkUsersForm")) - { - $("#linkUsersForm").attr("action", ""); - $("#linkUsersForm").submit(); - } + $.ajax({ + type: "POST", + dataType: "json", + url: "", + data: $("#linkUsersForm").serialize(), + success: function(data, textStatus, jqXHR) { + alert(data.msg); + $("#usersFiltersForm").submit(); + }, + error: function(jqXHR, textStatus, errorThrown) { + alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText); + } + }); }); } From e7db3a45cae737958cbd5740ada7b08f1b4a02e2 Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 23 Mar 2017 07:56:43 +0100 Subject: [PATCH 02/36] =?UTF-8?q?Fehlende=20DEFAULT=5FLANGUAGE=20in=20Defa?= =?UTF-8?q?ult=20Config=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/system.config-default.inc.php | 37 +++++++++++++++------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/config/system.config-default.inc.php b/config/system.config-default.inc.php index 85e8bd313..45a83837e 100644 --- a/config/system.config-default.inc.php +++ b/config/system.config-default.inc.php @@ -2,39 +2,42 @@ ini_set('display_errors','1'); error_reporting(E_ALL); - mb_internal_encoding("UTF-8"); - mb_regex_encoding("UTF-8"); + mb_internal_encoding('UTF-8'); + mb_regex_encoding('UTF-8'); setlocale (LC_ALL, 'de_DE.UTF8','de_DE@euro', 'de_DE', 'de','DE', 'ge','German'); date_default_timezone_set('Europe/Vienna'); - + // Connection Strings zur Datenbank - define("DB_SYSTEM","pgsql"); - define("DB_HOST","localhost"); - define("DB_PORT","5432"); - define("DB_NAME","fhcomplete"); - define("DB_USER","fhcomplete"); - define("DB_PASSWORD","fhcomplete"); - define("DB_CONNECT_PERSISTENT",FALSE); + define('DB_SYSTEM','pgsql'); + define('DB_HOST','localhost'); + define('DB_PORT','5432'); + define('DB_NAME','fhcomplete'); + define('DB_USER','fhcomplete'); + define('DB_PASSWORD','fhcomplete'); + define('DB_CONNECT_PERSISTENT',FALSE); define('CONN_CLIENT_ENCODING','UTF-8' ); - + // Dokumentenmanagement define('DMS_PATH','/var/fhcomplete/documents/dms/'); - + // Pfad zu Document Root define('DOC_ROOT','/var/www/html/build/'); // Fuer Mails etc define('DOMAIN','technikum-wien.at'); - + + // Default Sprache + define('DEFAULT_LANGUAGE','German' ); + // Authentifizierungsmethode // Moegliche Werte: // auth_mixed - htaccess mit LDAP (Default) -// auth_demo - Demo Modus (.htaccess) + // auth_demo - Demo Modus (.htaccess) // auth_session - Sessions mit LDAP (Testbetrieb) - define("AUTH_SYSTEM", "auth_demo"); + define('AUTH_SYSTEM', 'auth_demo'); // Gibt den Namen fuer die htaccess Authentifizierung an (muss mit dem Attribut AuthName im htaccess uebereinstimmen) - define("AUTH_NAME","FH-Complete"); - + define('AUTH_NAME','FH-Complete'); + // DatenbankRollen fuer Grants define('DB_CIS_USER_GROUP','web'); define('DB_FAS_USER_GROUP','admin'); From 2c4595005b7d8763b9cd4842f059d6fd2683c947 Mon Sep 17 00:00:00 2001 From: Paolo Date: Thu, 23 Mar 2017 11:51:18 +0100 Subject: [PATCH 03/36] DB_Model->_isEntitled: now if the user is not entitled to perform an operation the query is reset --- application/core/DB_Model.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php index f34d6fe1c..a0bc1e8f7 100644 --- a/application/core/DB_Model.php +++ b/application/core/DB_Model.php @@ -651,9 +651,13 @@ class DB_Model extends FHC_Model substr(get_called_class(), -6) == DB_Model::MODEL_POSTFIX) || $permission != PermissionLib::SELECT_RIGHT) { + // If true is not returned, then an error has occurred if (($isEntitled = $this->isEntitled($this->dbTable, $permission, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true) { - // TODO: resetQuery + // Before returning the object containing the error, reset the build query + // This is for preventing that other parts of the query will be built before of the next execution + $this->resetQuery(); + return $isEntitled; } } From 2711430eb90be6b63e8f5ebec698fcca09411b0d Mon Sep 17 00:00:00 2001 From: Paolo Date: Thu, 23 Mar 2017 12:25:58 +0100 Subject: [PATCH 04/36] - Renamed TemplateLib to WidgetLib - Updated controllers and views to use WidgetLib - Removed TempleteLib from autoload config file - Removed loading of session library from FHC_Controller (already present in the autoload configuration file) --- application/config/autoload.php | 4 +- application/controllers/system/Messages.php | 6 ++ application/controllers/system/Phrases.php | 5 ++ application/controllers/system/Templates.php | 5 ++ application/core/APIv1_Controller.php | 2 +- application/core/FHC_Controller.php | 2 +- .../{TemplateLib.php => WidgetLib.php} | 55 ++++++++++--------- application/views/system/messageReply.php | 2 +- application/views/system/messageWrite.php | 2 +- application/views/system/phraseinhaltEdit.php | 8 +-- application/views/system/phrasesList.php | 2 +- application/views/system/templatesEdit.php | 4 +- application/views/system/templatesList.php | 2 +- application/views/system/templatetextEdit.php | 10 ++-- application/views/system/users.php | 2 +- 15 files changed, 63 insertions(+), 48 deletions(-) rename application/libraries/{TemplateLib.php => WidgetLib.php} (92%) diff --git a/application/config/autoload.php b/application/config/autoload.php index 4d2676de3..97eac47b8 100755 --- a/application/config/autoload.php +++ b/application/config/autoload.php @@ -58,9 +58,7 @@ $autoload['packages'] = array(); | | $autoload['libraries'] = array('user_agent' => 'ua'); */ - -//$autoload['libraries'] = array(); -$autoload['libraries'] = array('Session', 'FHC_Auth', 'TemplateLib'); +$autoload['libraries'] = array('Session', 'FHC_Auth'); /* | ------------------------------------------------------------------- diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index bdfa946ac..d11eed4e1 100755 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -7,7 +7,13 @@ class Messages extends VileSci_Controller public function __construct() { parent::__construct(); + + // Loads the message library $this->load->library('MessageLib'); + + // Loads the widget library + $this->load->library('WidgetLib'); + $this->load->model('person/Person_model', 'PersonModel'); } diff --git a/application/controllers/system/Phrases.php b/application/controllers/system/Phrases.php index 46d3add59..7c85de9bf 100644 --- a/application/controllers/system/Phrases.php +++ b/application/controllers/system/Phrases.php @@ -7,8 +7,13 @@ class Phrases extends FHC_Controller public function __construct() { parent::__construct(); + + // Loads the phrases library $this->load->library('PhrasesLib'); + // Loads the widget library + $this->load->library('WidgetLib'); + // Loads helper message to manage returning messages $this->load->helper('message'); } diff --git a/application/controllers/system/Templates.php b/application/controllers/system/Templates.php index e33eed087..52731cbfc 100755 --- a/application/controllers/system/Templates.php +++ b/application/controllers/system/Templates.php @@ -7,7 +7,12 @@ class Templates extends FHC_Controller public function __construct() { parent::__construct(); + + // Loads the vorlage library $this->load->library('VorlageLib'); + + // Loads the widget library + $this->load->library('WidgetLib'); } public function index() diff --git a/application/core/APIv1_Controller.php b/application/core/APIv1_Controller.php index 5c529a4b4..26fbeddac 100644 --- a/application/core/APIv1_Controller.php +++ b/application/core/APIv1_Controller.php @@ -9,6 +9,6 @@ class APIv1_Controller extends REST_Controller parent::__construct(); // Loads return messages - $this->load->helper('Message'); + $this->load->helper('message'); } } \ No newline at end of file diff --git a/application/core/FHC_Controller.php b/application/core/FHC_Controller.php index 497f996a9..fcffd7a82 100644 --- a/application/core/FHC_Controller.php +++ b/application/core/FHC_Controller.php @@ -7,7 +7,7 @@ class FHC_Controller extends CI_Controller public function __construct() { parent::__construct(); - $this->load->library('session'); + $this->load->helper('fhcauth'); } } \ No newline at end of file diff --git a/application/libraries/TemplateLib.php b/application/libraries/WidgetLib.php similarity index 92% rename from application/libraries/TemplateLib.php rename to application/libraries/WidgetLib.php index 6cc001f1f..e8e8d302a 100644 --- a/application/libraries/TemplateLib.php +++ b/application/libraries/WidgetLib.php @@ -24,12 +24,10 @@ * THE SOFTWARE. */ -if (!defined("BASEPATH")) - exit("No direct script access allowed"); +if (!defined("BASEPATH")) exit("No direct script access allowed"); -class TemplateLib +class WidgetLib { - /* default values */ private $_template = 'template'; private $_parser = FALSE; @@ -604,26 +602,29 @@ class Partial class Widget extends Partial { - - /* (non-PHPdoc) - * @see Partial::content() - */ - public function content() { - if (!$this->_cached) { - if (method_exists($this, 'display')) { - // capture output - ob_start(); - $this->display($this->_args); - $buffer = ob_get_clean(); - - // if no content is produced but there was direct ouput we set - // that output as content - if (!$this->_content && $buffer) { - $this->set($buffer); - } - } - } - - return parent::content(); - } -} + /* (non-PHPdoc) + * @see Partial::content() + */ + public function content() + { + if (!$this->_cached) + { + if (method_exists($this, 'display')) + { + // capture output + ob_start(); + $this->display($this->_args); + $buffer = ob_get_clean(); + + // if no content is produced but there was direct ouput we set + // that output as content + if (!$this->_content && $buffer) + { + $this->set($buffer); + } + } + } + + return parent::content(); + } +} \ No newline at end of file diff --git a/application/views/system/messageReply.php b/application/views/system/messageReply.php index 8fe3a0511..6cb77f639 100644 --- a/application/views/system/messageReply.php +++ b/application/views/system/messageReply.php @@ -18,7 +18,7 @@
           - templatelib->widget("Vorlage_widget", array("title" => "Vorlage")); ?> + widgetlib->widget("Vorlage_widget", array("title" => "Vorlage")); ?>
diff --git a/application/views/system/messageWrite.php b/application/views/system/messageWrite.php index a987b00d7..501498811 100644 --- a/application/views/system/messageWrite.php +++ b/application/views/system/messageWrite.php @@ -72,7 +72,7 @@
- templatelib->widget("Vorlage_widget", array("title" => "Vorlage")); ?> + widgetlib->widget("Vorlage_widget", array("title" => "Vorlage")); ?>   diff --git a/application/views/system/phraseinhaltEdit.php b/application/views/system/phraseinhaltEdit.php index 37cd9fa40..8110cd8e5 100644 --- a/application/views/system/phraseinhaltEdit.php +++ b/application/views/system/phraseinhaltEdit.php @@ -11,11 +11,11 @@ - + - - + + templatelib->widget("tinymce_widget", array('name' => 'text', 'text' => $text)); + //echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text)); ?>
OEtemplatelib->widget("organisationseinheit_widget", array('oe_kurzbz' => $orgeinheit_kurzbz)); ?>widgetlib->widget("organisationseinheit_widget", array('oe_kurzbz' => $orgeinheit_kurzbz)); ?> Preview
Orgformtemplatelib->widget("orgform_widget", array('orgform_kurzbz' => $orgform_kurzbz)); ?>
Sprachetemplatelib->widget("sprache_widget", array('sprache' => $sprache)); ?>
Orgformwidgetlib->widget("orgform_widget", array('orgform_kurzbz' => $orgform_kurzbz)); ?>
Sprachewidgetlib->widget("sprache_widget", array('sprache' => $sprache)); ?>
Text
@@ -35,7 +35,7 @@
diff --git a/application/views/system/phrasesList.php b/application/views/system/phrasesList.php index 9f036af24..ed12f1926 100644 --- a/application/views/system/phrasesList.php +++ b/application/views/system/phrasesList.php @@ -9,7 +9,7 @@ App: aufnahme templatelib->widget("mimetype_widget", array('mimetype' => $mimetype)); + //echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype)); ?> diff --git a/application/views/system/templatesEdit.php b/application/views/system/templatesEdit.php index 53c61eb6d..46d63a88c 100644 --- a/application/views/system/templatesEdit.php +++ b/application/views/system/templatesEdit.php @@ -8,9 +8,9 @@ Bezeichnung: Anmerkung:
- MimeType:templatelib->widget("mimetype_widget", array('mimetype' => $vorlage->mimetype)); ?> + MimeType:widgetlib->widget("mimetype_widget", array('mimetype' => $vorlage->mimetype)); ?> - Attribute: templatelib->widget("jsoneditor_widget", array('json' => $vorlage->attribute)); ?> + Attribute: widgetlib->widget("jsoneditor_widget", array('json' => $vorlage->attribute)); ?> diff --git a/application/views/system/templatesList.php b/application/views/system/templatesList.php index e1a7d0ee8..1543a804e 100644 --- a/application/views/system/templatesList.php +++ b/application/views/system/templatesList.php @@ -8,7 +8,7 @@ MimeType templatelib->widget("mimetype_widget", array('mimetype' => $mimetype)); + echo $this->widgetlib->widget("mimetype_widget", array('mimetype' => $mimetype)); ?> diff --git a/application/views/system/templatetextEdit.php b/application/views/system/templatetextEdit.php index b5e011086..a2e490fc8 100644 --- a/application/views/system/templatetextEdit.php +++ b/application/views/system/templatetextEdit.php @@ -7,22 +7,22 @@

Vorlagetext:

- OE:templatelib->widget("organisationseinheit_widget", array('oe_kurzbz' => $oe_kurzbz, 'typ' => "'Erhalter','Studienzentrum','Studiengang','Lehrgang'")); ?> - Sprache:templatelib->widget("sprache_widget", array('sprache' => $sprache)); ?> - OrgForm:templatelib->widget("orgform_widget", array('orgform' => $orgform_kurzbz)); ?> + OE:widgetlib->widget("organisationseinheit_widget", array('oe_kurzbz' => $oe_kurzbz, 'typ' => "'Erhalter','Studienzentrum','Studiengang','Lehrgang'")); ?> + Sprache:widgetlib->widget("sprache_widget", array('sprache' => $sprache)); ?> + OrgForm:widgetlib->widget("orgform_widget", array('orgform' => $orgform_kurzbz)); ?> Version: Aktiv: templatelib->widget("tinymce_widget", array('name' => 'text', 'text' => $text)); + echo $this->widgetlib->widget("tinymce_widget", array('name' => 'text', 'text' => $text)); ?>

Preview-Data

- templatelib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?> + widgetlib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?>
diff --git a/application/views/system/users.php b/application/views/system/users.php index 5bda4f1b5..564c2c95d 100644 --- a/application/views/system/users.php +++ b/application/views/system/users.php @@ -4,7 +4,7 @@
templatelib->widget( + echo $this->widgetlib->widget( 'Usersfilters_widget', array( 'studiengang' => $studiengang, From 60ff6d145d0ce79e451492d364921c12bd2de7d4 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 24 Mar 2017 12:17:25 +0100 Subject: [PATCH 05/36] =?UTF-8?q?-=20Lehrgangsteilnehmer=20werden=20nun=20?= =?UTF-8?q?im=20OEH=20Waehlerverzeichnis=20gef=C3=BChrt=20-=20Tempor=C3=A4?= =?UTF-8?q?r=20wird=20zus=C3=A4tzlich=20auf=20die=20Lehrgangsgeb=C3=BChr?= =?UTF-8?q?=20gepr=C3=BCft=20da=20diese=20derzeit=20den=20=C3=96H=20Beitra?= =?UTF-8?q?g=20inkludiert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/statistik/oehwaehlerverzeichnis.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vilesci/statistik/oehwaehlerverzeichnis.php b/vilesci/statistik/oehwaehlerverzeichnis.php index ca2d9ad04..3f58a6e88 100644 --- a/vilesci/statistik/oehwaehlerverzeichnis.php +++ b/vilesci/statistik/oehwaehlerverzeichnis.php @@ -87,10 +87,8 @@ WHERE tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND get_rolle_prestudent(tbl_prestudent.prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).") in('Student','Diplomand','Incoming','Absolvent') AND tbl_student.studiengang_kz<10000 - AND tbl_student.studiengang_kz>0 - AND tbl_student.studiengang_kz!='9".$erhalter_row->erhalter_kz."' - AND ka.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND ka.buchungstyp_kurzbz='OEH' AND tbl_student.studiengang_kz=ka.studiengang_kz - AND kb.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND kb.buchungstyp_kurzbz='OEH' AND tbl_student.studiengang_kz=kb.studiengang_kz + AND ka.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND ka.buchungstyp_kurzbz in('OEH','Lehrgangsgebuehr') AND tbl_student.studiengang_kz=ka.studiengang_kz + AND kb.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND kb.buchungstyp_kurzbz in('OEH','Lehrgangsgebuehr') AND tbl_student.studiengang_kz=kb.studiengang_kz AND kb.buchungsnr_verweis=ka.buchungsnr AND bismelden ) a ORDER BY person_id"; @@ -120,7 +118,10 @@ if($result = $db->db_query($qry)) $last_person_id=$row->person_id; $personenkennzeichen[]=trim($row->personenkennzeichen); - $studiengang_kz[] = sprintf('%1$04d',$row->studiengang_kz); + if($row->studiengang_kz<0) + $studiengang_kz[] = sprintf('%1$03d',$erhalter_row->erhalter_kz).sprintf('%1$04d',abs($row->studiengang_kz)); + else + $studiengang_kz[] = sprintf('%1$04d',$row->studiengang_kz); $data_row = array( sprintf('%1$03d',$erhalter_row->erhalter_kz), From 1f65f7737cb4f4c2b87d543ffcaa12000c35c331 Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 24 Mar 2017 16:39:50 +0100 Subject: [PATCH 06/36] - Splitted Usersfilters_widget in: - Aufnahmegruppe_widget - Reihungstest_widget - Studiengang_widget - Studiensemester_widget - Stufe_widget - Renamed /system/Users controller to system/aufnahme/PrestudentMultiAssign - Added method getPrestudentMultiAssign to Prestudent_model - Changed WidgetLib to allow to set the name and the id html attributes of a widget --- application/controllers/system/Users.php | 222 ------------ .../system/aufnahme/PrestudentMultiAssign.php | 157 +++++++++ application/libraries/WidgetLib.php | 44 ++- application/models/crm/Prestudent_model.php | 83 +++++ .../system/aufnahme/prestudentMultiAssign.php | 333 ++++++++++++++++++ application/views/system/users.php | 305 ---------------- application/views/widgets/aufnahmegruppe.php | 14 + application/views/widgets/reihungstest.php | 14 + application/views/widgets/studiengang.php | 23 ++ application/views/widgets/studiensemester.php | 14 + application/views/widgets/stufe.php | 14 + application/views/widgets/usersfilters.php | 107 ------ application/widgets/Aufnahmegruppe_widget.php | 36 ++ application/widgets/Reihungstest_widget.php | 56 +++ application/widgets/Studiengang_widget.php | 37 ++ .../widgets/Studiensemester_widget.php | 37 ++ application/widgets/Stufe_widget.php | 37 ++ application/widgets/Usersfilters_widget.php | 183 ---------- 18 files changed, 896 insertions(+), 820 deletions(-) delete mode 100644 application/controllers/system/Users.php create mode 100644 application/controllers/system/aufnahme/PrestudentMultiAssign.php create mode 100644 application/views/system/aufnahme/prestudentMultiAssign.php delete mode 100644 application/views/system/users.php create mode 100644 application/views/widgets/aufnahmegruppe.php create mode 100644 application/views/widgets/reihungstest.php create mode 100644 application/views/widgets/studiengang.php create mode 100644 application/views/widgets/studiensemester.php create mode 100644 application/views/widgets/stufe.php delete mode 100644 application/views/widgets/usersfilters.php create mode 100644 application/widgets/Aufnahmegruppe_widget.php create mode 100644 application/widgets/Reihungstest_widget.php create mode 100644 application/widgets/Studiengang_widget.php create mode 100644 application/widgets/Studiensemester_widget.php create mode 100644 application/widgets/Stufe_widget.php delete mode 100644 application/widgets/Usersfilters_widget.php diff --git a/application/controllers/system/Users.php b/application/controllers/system/Users.php deleted file mode 100644 index db58980ea..000000000 --- a/application/controllers/system/Users.php +++ /dev/null @@ -1,222 +0,0 @@ -load->helper('message'); - - // Load the library to use the widgets - $this->load->library('TemplateLib'); - } - - public function index() - { - $studiengang = $this->input->post('studiengang'); - $studiensemester = $this->input->post('studiensemester'); - $gruppe = $this->input->post('gruppe'); - $reihungstest = $this->input->post('reihungstest'); - $stufe = $this->input->post('stufe'); - - $returnUsers = null; - if ($studiengang != null || $studiensemester != null || $gruppe!= null - || $reihungstest != null || $stufe != null) - { - $returnUsers = $this->_getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe); - } - - $users = null; - if (hasData($returnUsers)) - { - $users = $returnUsers->retval; - } - - // Gruppen - $this->load->model('organisation/Gruppe_model', 'GruppeModel'); - $this->GruppeModel->addOrder('beschreibung'); - $gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true)); - if (hasData($gruppen)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->gruppe_kurzbz = '-1'; - $emptyElement->beschreibung = 'Select a group...'; - array_unshift($gruppen->retval, $emptyElement); - } - else - { - show_error($gruppen->retval); - } - - // Stufe - $this->load->model('crm/Reihungstest_model', 'ReihungstestModel'); - $this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung'); - $this->ReihungstestModel->addOrder('stufe'); - $stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL'); - if (hasData($stufen)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->stufe = '-1'; - $emptyElement->beschreibung = 'Select a stufe...'; - array_unshift($stufen->retval, $emptyElement); - } - else - { - show_error($stufen->retval); - } - - if ($returnUsers == null || isSuccess($returnUsers)) - { - $viewData = array( - 'studiengang' => $studiengang, - 'studiensemester' => $studiensemester, - 'gruppe' => $gruppe, - 'reihungstest' => $reihungstest, - 'stufe' => $stufe, - 'users' => $users, - 'gruppen' => $gruppen->retval, - 'stufen' => $stufen->retval - ); - - $this->load->view('system/users', $viewData); - } - else if (isError($returnUsers)) - { - show_error($returnUsers->retval); - } - } - - public function linkToStufe() - { - $prestudentIdArray = $this->input->post('prestudent_id'); - $stufe = $this->input->post('stufe'); - - // Load model PrestudentstatusModel - $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel'); - - $result = error("No valid parameters"); - if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) - { - $result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe); - } - - $this->output->set_header('Content-Type: application/json; charset=utf-8'); - - if (isSuccess($result)) - { - $href = str_replace("/system/Users/linkToStufe", "/system/Users", $_SERVER["REQUEST_URI"]); - echo '{"msg": "Data correctly saved"}'; - } - else - { - echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; - } - } - - public function linkToAufnahmegruppe() - { - $prestudentIdArray = $this->input->post('prestudent_id'); - $aufnahmegruppe = $this->input->post('aufnahmegruppe'); - - // Load model PrestudentstatusModel - $this->load->model('crm/Prestudent_model', 'PrestudentModel'); - - $result = error("No valid parameters"); - if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) - { - $result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe); - } - - if (isSuccess($result)) - { - $href = str_replace("/system/Users/linkToAufnahmegruppe", "/system/Users", $_SERVER["REQUEST_URI"]); - echo '{"msg": "Data correctly saved"}'; - } - else - { - echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; - } - } - - private function _getUsers($studiengang, $studiensemester, $gruppe, $reihungstest, $stufe) - { - // Load model prestudentm_model - $this->load->model('crm/Prestudent_model', 'PrestudentModel'); - - $this->PrestudentModel->addSelect( - 'DISTINCT ON(p.person_id, prestudent_id) p.person_id, - prestudent_id, - p.nachname, - p.vorname, - p.geschlecht, - p.gebdatum, - k.kontakt AS email, - sg.kurzbzlang, - sg.bezeichnung, - sg.orgform_kurzbz, - sgt.bezeichnung AS typ, - s.bezeichnung AS studienplan, - ps.rt_stufe, - aufnahmegruppe_kurzbz, - rtp.punkte' - ); - - $this->PrestudentModel->addJoin('public.tbl_rt_person rtp', 'person_id'); - $this->PrestudentModel->addJoin('public.tbl_person p', 'person_id', 'LEFT'); - $this->PrestudentModel->addJoin( - '( - SELECT person_id, - kontakt - FROM public.tbl_kontakt - WHERE zustellung = TRUE - AND kontakttyp = \'email\' - ORDER BY kontakt_id DESC - ) k', - 'person_id', - 'LEFT' - ); - $this->PrestudentModel->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id'); - $this->PrestudentModel->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id'); - $this->PrestudentModel->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id'); - $this->PrestudentModel->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz'); - $this->PrestudentModel->addJoin('public.tbl_studiengangstyp sgt', 'typ'); - - $this->PrestudentModel->addOrder('p.person_id', 'ASC'); - $this->PrestudentModel->addOrder('prestudent_id', 'ASC'); - - $parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent'); - - if ($studiengang != null && $studiengang != '-1') - { - $parametersArray['sg.studiengang_kz'] = $studiengang; - } - - if ($studiensemester != null && $studiensemester != '-1') - { - $parametersArray['ps.studiensemester_kurzbz'] = $studiensemester; - } - - if ($gruppe != null && $gruppe != '-1') - { - $parametersArray['aufnahmegruppe_kurzbz'] = $gruppe; - } - - if ($reihungstest != null && $reihungstest != '-1') - { - $parametersArray['rtp.rt_id'] = $reihungstest; - } - - if ($stufe != null && $stufe != '-1') - { - $parametersArray['ps.rt_stufe'] = $stufe; - } - - return $this->PrestudentModel->loadWhere($parametersArray); - } -} \ No newline at end of file diff --git a/application/controllers/system/aufnahme/PrestudentMultiAssign.php b/application/controllers/system/aufnahme/PrestudentMultiAssign.php new file mode 100644 index 000000000..b171f432e --- /dev/null +++ b/application/controllers/system/aufnahme/PrestudentMultiAssign.php @@ -0,0 +1,157 @@ +load->helper('message'); + + // Loads the widget library + $this->load->library('WidgetLib'); + } + + public function index() + { + $studiengang = $this->input->post('studiengang'); + $studiensemester = $this->input->post('studiensemester'); + $aufnahmegruppe = $this->input->post('aufnahmegruppe'); + $reihungstest = $this->input->post('reihungstest'); + $stufe = $this->input->post('stufe'); + + $returnUsers = null; + if ($studiengang != null || $studiensemester != null || $aufnahmegruppe!= null + || $reihungstest != null || $stufe != null) + { + $returnUsers = $this->_getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe); + } + + $users = null; + if (hasData($returnUsers)) + { + $users = $returnUsers->retval; + } + + if ($returnUsers == null || isSuccess($returnUsers)) + { + $viewData = array( + 'studiengang' => $studiengang, + 'studiensemester' => $studiensemester, + 'aufnahmegruppe' => $aufnahmegruppe, + 'reihungstest' => $reihungstest, + 'stufe' => $stufe, + 'users' => $users + ); + + $this->load->view('system/aufnahme/prestudentMultiAssign', $viewData); + } + else if (isError($returnUsers)) + { + show_error($returnUsers->retval); + } + } + + /** + * To assign a stufe to one or more prestudents + */ + public function linkToStufe() + { + $prestudentIdArray = $this->input->post('prestudent_id'); + $stufe = $this->input->post('stufe'); + + // Load model PrestudentstatusModel + $this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel'); + + $result = error("No valid parameters"); + if (isset($stufe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) + { + $result = $this->PrestudentstatusModel->updateStufe($prestudentIdArray, $stufe); + } + + $this->output->set_header('Content-Type: application/json; charset=utf-8'); + + if (isSuccess($result)) + { + echo '{"msg": "Data correctly saved"}'; + } + else + { + echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; + } + } + + /** + * To assign one or more prestudents to a gruppe + */ + public function linkToAufnahmegruppe() + { + $prestudentIdArray = $this->input->post('prestudent_id'); + $aufnahmegruppe = $this->input->post('aufnahmegruppe'); + + // Load model PrestudentstatusModel + $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + + $result = error("No valid parameters"); + if (isset($aufnahmegruppe) && isset($prestudentIdArray) && is_array($prestudentIdArray) && count($prestudentIdArray) >0) + { + $result = $this->PrestudentModel->updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe); + } + + $this->output->set_header('Content-Type: application/json; charset=utf-8'); + + if (isSuccess($result)) + { + echo '{"msg": "Data correctly saved"}'; + } + else + { + echo '{"msg": "Error occurred while saving data, please contact the administrator"}'; + } + } + + /** + * Get the prestudents using search parameters + */ + private function _getPrestudents($studiengang, $studiensemester, $aufnahmegruppe, $reihungstest, $stufe) + { + // Load model prestudentm_model + $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + + if ($studiengang == '' || empty($studiengang)) + { + $studiengang = null; + } + + if ($studiensemester == '' || empty($studiensemester)) + { + $studiensemester = null; + } + + if ($aufnahmegruppe == '' || empty($aufnahmegruppe)) + { + $aufnahmegruppe = null; + } + + if ($reihungstest == '' || empty($reihungstest)) + { + $reihungstest = null; + } + + if ($stufe == '' || empty($stufe)) + { + $stufe = null; + } + + return $this->PrestudentModel->getPrestudentMultiAssign( + $studiengang, + $studiensemester, + $aufnahmegruppe, + $reihungstest, + $stufe + ); + } +} \ No newline at end of file diff --git a/application/libraries/WidgetLib.php b/application/libraries/WidgetLib.php index e8e8d302a..61128d7ed 100644 --- a/application/libraries/WidgetLib.php +++ b/application/libraries/WidgetLib.php @@ -181,7 +181,8 @@ class WidgetLib * @param array $data * @return Widget */ - public function widget($name, $data = array()) { + public function widget($name, $data = array(), $htmlArgs = array()) + { $class = str_replace('.php', '', trim($name, '/')); // determine path and widget class name @@ -208,7 +209,7 @@ class WidgetLib show_error("Widget '" . $class . "' was not found."); } - return new $class($class, $data); + return new $class($class, $data, $htmlArgs); } /** @@ -333,6 +334,7 @@ class WidgetLib class Partial { + const HTML_DEFAULT_VALUE = ''; // Default value of the html element protected $_ci, $_content, $_name, $_cache_ttl = 0, $_cached = false, $_identifier, $_trigger; protected $_args = array(); @@ -341,10 +343,17 @@ class Partial * Construct with optional parameters * @param array $args */ - public function __construct($name, $args = array()) { + public function __construct($name, $args = array(), $htmlArgs = array()) + { $this->_ci = &get_instance(); $this->_args = $args; $this->_name = $name; + + // Initialising properties + $this->_setHtmlProperties($htmlArgs); + + // Loads helper message to manage returning messages + $this->load->helper('message'); } /** @@ -598,6 +607,35 @@ class Partial $this->_trigger = FALSE; } } + + /** + * Initialising properties + */ + private function _setHtmlProperties($htmlArgs) + { + if (isset($htmlArgs) && is_array($htmlArgs)) + { + $this->_args['html'] = array(); + + if (!isset($htmlArgs['id']) || (isset($htmlArgs['id']) && $htmlArgs['id'] == '')) + { + $this->_args['html']['id'] = ''; + } + else + { + $this->_args['html']['id'] = $htmlArgs['id']; + } + + if (!isset($htmlArgs['name']) || (isset($htmlArgs['name']) && $htmlArgs['name'] == '')) + { + $this->_args['html']['name'] = ''; + } + else + { + $this->_args['html']['name'] = $htmlArgs['name']; + } + } + } } class Widget extends Partial diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index a638f04fa..eeeaf5c69 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -74,4 +74,87 @@ class Prestudent_model extends DB_Model ) ); } + + /** + * Returns a list of prestudent with additional information: + * - person_id + * - name, surname, gender and birthday + * - email + * - studiengang and orgform + * - studienplan + * - stufe and aufnahmegruppe + * - reihungstest score + */ + public function getPrestudentMultiAssign($studiengang = null, $studiensemester = null, $gruppe = null, $reihungstest = null, $stufe = null) + { + $this->addSelect( + 'DISTINCT ON(p.person_id, prestudent_id) p.person_id, + prestudent_id, + p.nachname, + p.vorname, + p.geschlecht, + p.gebdatum, + k.kontakt AS email, + sg.kurzbzlang, + sg.bezeichnung, + sg.orgform_kurzbz, + sgt.bezeichnung AS typ, + s.bezeichnung AS studienplan, + ps.rt_stufe, + aufnahmegruppe_kurzbz, + rtp.punkte' + ); + + $this->addJoin('public.tbl_rt_person rtp', 'person_id'); + $this->addJoin('public.tbl_person p', 'person_id', 'LEFT'); + $this->addJoin( + '( + SELECT person_id, + kontakt + FROM public.tbl_kontakt + WHERE zustellung = TRUE + AND kontakttyp = \'email\' + ORDER BY kontakt_id DESC + ) k', + 'person_id', + 'LEFT' + ); + $this->addJoin('public.tbl_prestudentstatus ps', 'prestudent_id'); + $this->addJoin('lehre.tbl_studienplan s', 's.studienplan_id = ps.studienplan_id'); + $this->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id'); + $this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz'); + $this->addJoin('public.tbl_studiengangstyp sgt', 'typ'); + + $this->addOrder('p.person_id', 'ASC'); + $this->addOrder('prestudent_id', 'ASC'); + + $parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent'); + + if ($studiengang != null) + { + $parametersArray['sg.studiengang_kz'] = $studiengang; + } + + if ($studiensemester != null) + { + $parametersArray['ps.studiensemester_kurzbz'] = $studiensemester; + } + + if ($gruppe != null) + { + $parametersArray['aufnahmegruppe_kurzbz'] = $gruppe; + } + + if ($reihungstest != null) + { + $parametersArray['rtp.rt_id'] = $reihungstest; + } + + if ($stufe != null) + { + $parametersArray['ps.rt_stufe'] = $stufe; + } + + return $this->loadWhere($parametersArray); + } } \ No newline at end of file diff --git a/application/views/system/aufnahme/prestudentMultiAssign.php b/application/views/system/aufnahme/prestudentMultiAssign.php new file mode 100644 index 000000000..769e6f834 --- /dev/null +++ b/application/views/system/aufnahme/prestudentMultiAssign.php @@ -0,0 +1,333 @@ +load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?> + + + + + + + + + + + +
+ widgetlib->widget( + 'Studiengang_widget', + array('studiengang' => $studiengang), + array('name' => 'studiengang', 'id' => 'studiengangFilter') + ); + ?> + + widgetlib->widget( + 'Studiensemester_widget', + array('studiensemester' => $studiensemester), + array('name' => 'studiensemester', 'id' => 'studiensemesterFilter') + ); + ?> + + widgetlib->widget( + 'Reihungstest_widget', + array('reihungstest' => $reihungstest, 'studiengang' => $studiengang, 'studiensemester' => $studiensemester), + array('name' => 'reihungstest', 'id' => 'reihungstestFilter') + ); + ?> + + widgetlib->widget( + 'Aufnahmegruppe_widget', + array('aufnahmegruppe' => $aufnahmegruppe), + array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeFilter') + ); + ?> + + widgetlib->widget( + 'Stufe_widget', + array('stufe' => $stufe), + array('name' => 'stufe', 'id' => 'stufeFilter') + ); + ?> +
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
+ Assign to: +
+ widgetlib->widget( + 'Stufe_widget', + array('stufe' => $stufe), + array('name' => 'stufe', 'id' => 'stufeAssign') + ); + ?> +   + +
+ widgetlib->widget( + 'Aufnahmegruppe_widget', + array('aufnahmegruppe' => $aufnahmegruppe), + array('name' => 'aufnahmegruppe', 'id' => 'aufnahmegruppeAssign') + ); + ?> +   + +
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + "; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + + echo ""; + } + ?> + +
 Prestudent IDPerson IDVornameNachnameGeschlechtStudiengangOrgFormStudienplanGeburtsdatumEmailStufeGruppePunkte
"; + echo ''; + echo ""; + echo $user->prestudent_id; + echo ""; + echo $user->person_id; + echo ""; + echo $user->vorname; + echo ""; + echo $user->nachname; + echo ""; + echo $user->geschlecht; + echo ""; + echo $user->kurzbzlang; + echo ""; + echo $user->orgform_kurzbz; + echo ""; + echo $user->studienplan; + echo ""; + echo $user->gebdatum; + echo ""; + echo $user->email; + echo ""; + echo $user->rt_stufe; + echo ""; + echo $user->aufnahmegruppe_kurzbz; + echo ""; + echo $user->punkte; + echo "
+ +
+
+ + + + + + +load->view("templates/footer"); ?> \ No newline at end of file diff --git a/application/views/system/users.php b/application/views/system/users.php deleted file mode 100644 index 564c2c95d..000000000 --- a/application/views/system/users.php +++ /dev/null @@ -1,305 +0,0 @@ -load->view("templates/header", array("title" => "Users manager", "jquery" => true, "tablesort" => true, "jquery_checkboxes" => true, "jquery_custom" => true)); ?> - - -
-
- widgetlib->widget( - 'Usersfilters_widget', - array( - 'studiengang' => $studiengang, - 'studiensemester' => $studiensemester, - 'gruppe' => $gruppe, - 'reihungstest' => $reihungstest, - 'stufe' => $stufe - ) - ); - ?> -
-
- -
- -
- - - - - - - - - - - - - - - - - -
- Assign to: -
- -   - -
- -   - -
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - "; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - - echo ""; - } - ?> - -
 Prestudent IDPerson IDVornameNachnameGeschlechtStudiengangOrgFormStudienplanGeburtsdatumEmailStufeGruppePunkte
"; - echo ''; - echo ""; - echo $user->prestudent_id; - echo ""; - echo $user->person_id; - echo ""; - echo $user->vorname; - echo ""; - echo $user->nachname; - echo ""; - echo $user->geschlecht; - echo ""; - echo $user->kurzbzlang; - echo ""; - echo $user->orgform_kurzbz; - echo ""; - echo $user->studienplan; - echo ""; - echo $user->gebdatum; - echo ""; - echo $user->email; - echo ""; - echo $user->rt_stufe; - echo ""; - echo $user->aufnahmegruppe_kurzbz; - echo ""; - echo $user->punkte; - echo "
- -
-
- - - - - -load->view("templates/footer"); ?> \ No newline at end of file diff --git a/application/views/widgets/aufnahmegruppe.php b/application/views/widgets/aufnahmegruppe.php new file mode 100644 index 000000000..ade8c6ce2 --- /dev/null +++ b/application/views/widgets/aufnahmegruppe.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/application/views/widgets/reihungstest.php b/application/views/widgets/reihungstest.php new file mode 100644 index 000000000..e6bb66570 --- /dev/null +++ b/application/views/widgets/reihungstest.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/application/views/widgets/studiengang.php b/application/views/widgets/studiengang.php new file mode 100644 index 000000000..d9286e19a --- /dev/null +++ b/application/views/widgets/studiengang.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/application/views/widgets/studiensemester.php b/application/views/widgets/studiensemester.php new file mode 100644 index 000000000..2e5945b62 --- /dev/null +++ b/application/views/widgets/studiensemester.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/application/views/widgets/stufe.php b/application/views/widgets/stufe.php new file mode 100644 index 000000000..cf77770e5 --- /dev/null +++ b/application/views/widgets/stufe.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/application/views/widgets/usersfilters.php b/application/views/widgets/usersfilters.php deleted file mode 100644 index aa4bea151..000000000 --- a/application/views/widgets/usersfilters.php +++ /dev/null @@ -1,107 +0,0 @@ - 0) - { -?> -
- - retval; ?>
- -
- - - - - - - - - - - -
- - - - - -
- - - -
\ No newline at end of file diff --git a/application/widgets/Aufnahmegruppe_widget.php b/application/widgets/Aufnahmegruppe_widget.php new file mode 100644 index 000000000..a0bc21d45 --- /dev/null +++ b/application/widgets/Aufnahmegruppe_widget.php @@ -0,0 +1,36 @@ +load->model('organisation/Gruppe_model', 'GruppeModel'); + $this->GruppeModel->addOrder('beschreibung'); + $gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true)); + if (hasData($gruppen)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->gruppe_kurzbz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'Select a group...'; + array_unshift($gruppen->retval, $emptyElement); + } + else + { + show_error($gruppen); + } + + // Data to be used in the widget view + $widgetData['aufnahmegruppen'] = $gruppen->retval; + + // Loads widget view + $this->view('widgets/aufnahmegruppe', $widgetData); + } +} \ No newline at end of file diff --git a/application/widgets/Reihungstest_widget.php b/application/widgets/Reihungstest_widget.php new file mode 100644 index 000000000..bd49b8863 --- /dev/null +++ b/application/widgets/Reihungstest_widget.php @@ -0,0 +1,56 @@ +load->model('crm/Reihungstest_model', 'ReihungstestModel'); + $this->ReihungstestModel->addSelect('reihungstest_id, concat(datum, \' \', uhrzeit, \' \', anmerkung) AS beschreibung'); + $this->ReihungstestModel->addOrder('datum', 'DESC'); + + $parametersArray = array(); + if ($widgetData['studiengang'] != null) + { + $parametersArray['studiengang_kz'] = $widgetData['studiengang']; + } + if ($widgetData['studiensemester'] != null) + { + $parametersArray['studiensemester_kurzbz'] = $widgetData['studiensemester']; + } + + $reihungstest = $this->ReihungstestModel->loadWhere($parametersArray); + if (isError($reihungstest)) + { + show_error($reihungstest); + } + } + + if (!isError($reihungstest)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->reihungstest_id = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'Select a reihungstest...'; + array_unshift($reihungstest->retval, $emptyElement); + } + + // Data to be used in the widget view + $widgetData['reihungstests'] = $reihungstest->retval; + + // Loads widget view + $this->view('widgets/reihungstest', $widgetData); + } +} \ No newline at end of file diff --git a/application/widgets/Studiengang_widget.php b/application/widgets/Studiengang_widget.php new file mode 100644 index 000000000..43fcacb45 --- /dev/null +++ b/application/widgets/Studiengang_widget.php @@ -0,0 +1,37 @@ +load->model('organisation/Studiengang_model', 'StudiengangModel'); + $this->StudiengangModel->addOrder('kurzbzlang'); + $studiengaenge = $this->StudiengangModel->loadWhere(array('aktiv' => true)); + if (hasData($studiengaenge)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->studiengang_kz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->kurzbzlang = 'Select a studiengang...'; + $emptyElement->bezeichnung = ''; + array_unshift($studiengaenge->retval, $emptyElement); + } + else + { + show_error($studiengaenge); + } + + // Data to be used in the widget view + $widgetData['studiengaenge'] = $studiengaenge->retval; + + // Loads widget view + $this->view('widgets/studiengang', $widgetData); + } +} \ No newline at end of file diff --git a/application/widgets/Studiensemester_widget.php b/application/widgets/Studiensemester_widget.php new file mode 100644 index 000000000..2b6c13228 --- /dev/null +++ b/application/widgets/Studiensemester_widget.php @@ -0,0 +1,37 @@ +load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + $this->StudiengangModel->addSelect('studiensemester_kurzbz, studiensemester_kurzbz AS beschreibung'); + $this->StudiengangModel->addOrder('studiensemester_kurzbz', 'DESC'); + $studiensemester = $this->StudiensemesterModel->load(); + if (hasData($studiensemester)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->studiensemester_kurzbz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'Select a studiensemester...'; + array_unshift($studiensemester->retval, $emptyElement); + } + else + { + show_error($studiensemester); + } + + // Data to be used in the widget view + $widgetData['studiensemesters'] = $studiensemester->retval; + + // Loads widget view + $this->view('widgets/studiensemester', $widgetData); + } +} \ No newline at end of file diff --git a/application/widgets/Stufe_widget.php b/application/widgets/Stufe_widget.php new file mode 100644 index 000000000..a3a556d32 --- /dev/null +++ b/application/widgets/Stufe_widget.php @@ -0,0 +1,37 @@ +load->model('crm/Reihungstest_model', 'ReihungstestModel'); + $this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung'); + $this->ReihungstestModel->addOrder('stufe'); + $stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL'); + if (hasData($stufen)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->stufe = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'Select a stufe...'; + array_unshift($stufen->retval, $emptyElement); + } + else + { + show_error($stufen); + } + + // Data to be used in the widget view + $widgetData['stufen'] = $stufen->retval; + + // Loads widget view + $this->view('widgets/stufe', $widgetData); + } +} \ No newline at end of file diff --git a/application/widgets/Usersfilters_widget.php b/application/widgets/Usersfilters_widget.php deleted file mode 100644 index fe8018473..000000000 --- a/application/widgets/Usersfilters_widget.php +++ /dev/null @@ -1,183 +0,0 @@ -load->helper('message'); - - // Initialising properties - $this->_setProperties($args); - } - - public function display($widgetData) - { - $errors = array(); // Array containing possible errors - - // Studiengaenge - $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - $this->StudiengangModel->addOrder('kurzbzlang'); - $studiengaenge = $this->StudiengangModel->loadWhere(array('aktiv' => true)); - if (hasData($studiengaenge)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->studiengang_kz = '-1'; - $emptyElement->kurzbzlang = 'Select a studiengang...'; - $emptyElement->bezeichnung = ''; - array_unshift($studiengaenge->retval, $emptyElement); - } - else - { - $errors[] = $studiengaenge; // Adding the error to the array of errors - } - - // Studiensemester - $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); - $this->StudiengangModel->addSelect('studiensemester_kurzbz, studiensemester_kurzbz AS beschreibung'); - $this->StudiengangModel->addOrder('studiensemester_kurzbz', 'DESC'); - $studiensemester = $this->StudiensemesterModel->load(); - if (hasData($studiensemester)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->studiensemester_kurzbz = '-1'; - $emptyElement->beschreibung = 'Select a studiensemester...'; - array_unshift($studiensemester->retval, $emptyElement); - } - else - { - $errors[] = $studiensemester; // Adding the error to the array of errors - } - - // Gruppen - $this->load->model('organisation/Gruppe_model', 'GruppeModel'); - $this->GruppeModel->addOrder('beschreibung'); - $gruppen = $this->GruppeModel->loadWhere(array('aktiv' => true, 'aufnahmegruppe' => true)); - if (hasData($gruppen)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->gruppe_kurzbz = '-1'; - $emptyElement->beschreibung = 'Select a group...'; - array_unshift($gruppen->retval, $emptyElement); - } - else - { - $errors[] = $gruppen; // Adding the error to the array of errors - } - - // Stufe - $this->load->model('crm/Reihungstest_model', 'ReihungstestModel'); - $this->ReihungstestModel->addSelect('DISTINCT ON(stufe) stufe, stufe AS beschreibung'); - $this->ReihungstestModel->addOrder('stufe'); - $stufen = $this->ReihungstestModel->loadWhere('stufe IS NOT NULL'); - if (hasData($stufen)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->stufe = '-1'; - $emptyElement->beschreibung = 'Select a stufe...'; - array_unshift($stufen->retval, $emptyElement); - } - else - { - $errors[] = $stufen; // Adding the error to the array of errors - } - - // Reihungstest - $reihungstest = success(array()); // default value empty array - // If the parameters studiengang or studiensemester are given and are not empty - if (($this->studiengang != null && !empty($this->studiengang)) - || ($this->studiensemester != null && !empty($this->studiensemester))) - { - $this->ReihungstestModel->resetQuery(); // cleans any previous setting - $this->ReihungstestModel->addSelect('reihungstest_id, concat(datum, \' \', uhrzeit, \' \', anmerkung) AS beschreibung'); - $this->ReihungstestModel->addOrder('datum', 'DESC'); - - $parametersArray = array(); - if ($this->studiengang != null) - { - $parametersArray['studiengang_kz'] = $this->studiengang; - } - if ($this->studiensemester != null) - { - $parametersArray['studiensemester_kurzbz'] = $this->studiensemester; - } - - $reihungstest = $this->ReihungstestModel->loadWhere($parametersArray); - if (isError($reihungstest)) - { - $errors[] = $reihungstest; // Adding the error to the array of errors - } - } - - if (!isError($reihungstest)) - { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->reihungstest_id = '-1'; - $emptyElement->beschreibung = 'Select a reihungstest...'; - array_unshift($reihungstest->retval, $emptyElement); - } - - // Data to be used in the widget view - $viewData = array( - 'studiengaenge' => $studiengaenge->retval, - 'studiensemester' => $studiensemester->retval, - 'gruppen' => $gruppen->retval, - 'stufen' => $stufen->retval, - 'reihungstest' => $reihungstest->retval, - 'errors' => $errors, - 'selectedStudiengang' => $this->studiengang, - 'selectedStudiensemester' => $this->studiensemester, - 'selectedGruppe' => $this->gruppe, - 'selectedReihungstest' => $this->reihungstest, - 'selectedStufe' => $this->stufe - ); - - // Loads widget view - $this->view('widgets/usersfilters', $viewData); - } - - /** - * Initialising properties - */ - private function _setProperties($args) - { - if (isset($args) && is_array($args)) - { - if (isset($args['studiengang']) && $args['studiengang'] != '-1') - { - $this->studiengang = $args['studiengang']; - } - if (isset($args['studiensemester']) && $args['studiensemester'] != '-1') - { - $this->studiensemester = $args['studiensemester']; - } - if (isset($args['gruppe']) && $args['gruppe'] != '-1') - { - $this->gruppe = $args['gruppe']; - } - if (isset($args['reihungstest']) && $args['reihungstest'] != '-1') - { - $this->reihungstest = $args['reihungstest']; - } - if (isset($args['stufe']) && $args['stufe'] != '-1') - { - $this->stufe = $args['stufe']; - } - } - } -} \ No newline at end of file From 75f21145ce502c66254fd2ebe56969bd0320662d Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 27 Mar 2017 10:32:46 +0200 Subject: [PATCH 07/36] =?UTF-8?q?-=20Vorr=C3=BCckung=20der=20Studierenden?= =?UTF-8?q?=20pr=C3=BCft=20die=20G=C3=BCltigkeit=20des=20Studienplans.=20W?= =?UTF-8?q?enn=20dieser=20nicht=20g=C3=BCltig=20ist=20wird=20versucht=20de?= =?UTF-8?q?n=20neueren=20Studienplan=20zu=20finden.=20Wird=20kein=20eindeu?= =?UTF-8?q?tiger=20Studienplan=20gefunden=20bleibt=20der=20alte=20Studienp?= =?UTF-8?q?lan.=20-=20CheckStudenten=20pr=C3=BCft=20die=20Studienpl=C3=A4n?= =?UTF-8?q?e=20und=20zeigt=20Warnungen=20an=20wenn=20Studierende=20einen?= =?UTF-8?q?=20ung=C3=BCltigen=20Studienplan=20zugeordnet=20haben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/checkStudenten.php | 658 +++++++++++++++------- vilesci/personen/student_vorrueckung.php | 670 ++++++++++++++++------- 2 files changed, 929 insertions(+), 399 deletions(-) diff --git a/system/checkStudenten.php b/system/checkStudenten.php index 1278dc2f6..ad1c09f93 100644 --- a/system/checkStudenten.php +++ b/system/checkStudenten.php @@ -19,7 +19,6 @@ * Andreas Oesterreicher and * Karl Burkhart */ - require_once('../config/vilesci.config.inc.php'); require_once('../include/basis_db.class.php'); require_once('../include/studiensemester.class.php'); @@ -29,138 +28,179 @@ require_once('../include/student.class.php'); require_once('../include/studiengang.class.php'); require_once('../include/functions.inc.php'); require_once('../include/datum.class.php'); +require_once('../include/benutzerberechtigung.class.php'); $db = new basis_db(); $datum = new datum(); + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if (!$rechte->isBerechtigt('student/stammdaten', null, 's')) + die($rechte->errormsg); + +if (isset($_REQUEST['stg_kz'])) + $studiengang_kz = $_REQUEST['stg_kz']; +else + $studiengang_kz = null; + $studiensemester = new studiensemester(); $aktSem = $studiensemester->getaktorNext(); $nextSem = $studiensemester->getNextFrom($aktSem); $ausgabe = array(); +$text = ''; -$text =""; -?> +echo ' - + Check Studenten - - - + - - - -

Studenten Checkskript für BIS-Meldung

- + +

Studenten Checkskript für BIS-Meldung

'; /* * Studiengang muss beim Prestudenten und beim Studenten gleich sein */ +$qry = " +SELECT + stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang +FROM + public.tbl_prestudent pre + JOIN public.tbl_student stud using(prestudent_id) +WHERE + stud.studiengang_kz != pre.studiengang_kz"; -$qry="select stud.student_uid, pre.studiengang_kz, stud.studiengang_kz studiengang -from public.tbl_prestudent pre -join public.tbl_student stud using(prestudent_id) -where stud.studiengang_kz != pre.studiengang_kz;"; - -$text.="Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...

"; - -if($db->db_query($qry)) +if ($studiengang_kz != '') { - while($row = $db->db_fetch_object()) + $qry .= " AND + ( + stud.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." + OR pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." + )"; +} + +$text .= "Suche Studiengänge die bei Prestudenten und Studenten nicht gleich sind ...

"; + +if ($db->db_query($qry)) +{ + while ($row = $db->db_fetch_object()) { - $ausgabe[$row->studiengang][1][]= $row->student_uid; - $text.="Studenten-uid: ".$row->student_uid."
"; + $ausgabe[$row->studiengang][1][] = $row->student_uid; + $text .= "Studenten-uid: ".$row->student_uid."
"; } } else - $text.="Fehler bei der Abfrage aufgetreten.
"; + $text .= "Fehler bei der Abfrage aufgetreten.
"; /* * Abbrecher dürfen nicht mehr aktiv sein */ +$text .= "
Suche alle Abbrecher die noch aktiv sind ...

"; -$text.= "
Suche alle Abbrecher die noch aktiv sind ...

"; +$qry = " +SELECT + pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.studiengang_kz studiengang +FROM + public.tbl_prestudentstatus pre_status + JOIN public.tbl_prestudent pre using(prestudent_id) + JOIN public.tbl_student student using(prestudent_id) + JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) +WHERE + pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv=true"; -$qry ="select pre_status.status_kurzbz, benutzer.aktiv, benutzer.uid, student.studiengang_kz studiengang -from public.tbl_prestudentstatus pre_status -join public.tbl_prestudent pre using(prestudent_id) -join public.tbl_student student using(prestudent_id) -join public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid) -where pre_status.status_kurzbz ='Abbrecher' and benutzer.aktiv = 'true';"; +if ($studiengang_kz != '') + $qry .= " AND pre.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); -if($db->db_query($qry)) +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { - $ausgabe[$row->studiengang][2][]= $row->uid; - $text .="Studenten-uid: ".$row->uid."
"; + $ausgabe[$row->studiengang][2][] = $row->uid; + $text .= "Studenten-uid: ".$row->uid."
"; } } else - $text.= "Fehler bei der Abfrage aufgetreten.
"; - - + $text .= "Fehler bei der Abfrage aufgetreten.
"; /* * Organisationsform eines Studienganges, sollte mit den Organisationsformen der Studenten übereinstimmen */ -$text.= "
Suche Studenten mit ungleichen Organisationsformeinträgen (Studiengang <--> Prestudentstatus) ...

"; +$text .= "
Suche Studenten mit ungleichen Organisationsformeinträgen + (Studiengang <--> Prestudentstatus) ...

"; $orgArray = array(); $orgForm = new organisationsform(); -$qry ="select studiengang.orgform_kurzbz as studorgkz, student.student_uid, prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang -from public.tbl_studiengang studiengang -join public.tbl_student student using(studiengang_kz) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus prestudentstatus using(prestudent_id) -join public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid) -where benutzer.aktiv = 'true' and prestudentstatus.status_kurzbz ='Student' -and studiengang.studiengang_kz < 10000 -and prestudentstatus.studiensemester_kurzbz = '$aktSem' -order by student_uid; "; +$qry = " +SELECT + studiengang.orgform_kurzbz as studorgkz, student.student_uid, + prestudentstatus.orgform_kurzbz as studentorgkz, student.studiengang_kz studiengang +FROM + public.tbl_studiengang studiengang + JOIN public.tbl_student student using(studiengang_kz) + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus prestudentstatus using(prestudent_id) + JOIN public.tbl_benutzer benutzer on(benutzer.uid = student.student_uid) +WHERE + benutzer.aktiv = true + AND prestudentstatus.status_kurzbz='Student' + AND studiengang.studiengang_kz < 10000 + AND prestudentstatus.studiensemester_kurzbz = ".$db->db_add_param($aktSem); +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); +$qry .= " ORDER BY student_uid"; -if($db->db_query($qry)) +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { $studOrgform = $row->studorgkz; $student_uid = $row->student_uid; $studentOrgform = $row->studentorgkz; $orgArray = $orgForm->checkOrgForm($studOrgform); - if(is_array($orgArray)) + if (is_array($orgArray)) { - if(!in_array($studentOrgform, $orgArray)) + if (!in_array($studentOrgform, $orgArray)) { - $ausgabe[$row->studiengang][3][]= $row->student_uid; - $text.= "Student_uid: $student_uid
"; + $ausgabe[$row->studiengang][3][] = $row->student_uid; + $text .= "Student_uid: $student_uid
"; } } } } else - $text.="Fehler bei der Abfrage aufgetreten.
"; + $text .= "Fehler bei der Abfrage aufgetreten.
"; /* * Abbrecher dürfen nicht wieder einen Status bekommen */ - $prestudentAbbrecher = new prestudent(); $prestudentLast = new prestudent(); -$text.= "
Suche alle Abbrecher die wieder einen Status bekommen haben...

"; +$text .= "
Suche alle Abbrecher die wieder einen Status bekommen haben...

"; -$qry ="select student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang -from public.tbl_student student -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus prestatus using(prestudent_id) -where prestatus.status_kurzbz = 'Abbrecher'; "; +$qry = " +SELECT + student.student_uid, prestudent.prestudent_id, student.studiengang_kz studiengang +FROM + public.tbl_student student + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus prestatus using(prestudent_id) +WHERE + prestatus.status_kurzbz = 'Abbrecher'"; -if($db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { $student_uid = $row->student_uid; $prestudent_id = $row->prestudent_id; @@ -169,10 +209,10 @@ if($db->db_query($qry)) $prestudentLast->getLastStatus($prestudent_id); - if($prestudentLast->status_kurzbz != 'Abbrecher') + if ($prestudentLast->status_kurzbz != 'Abbrecher') { - $ausgabe[$row->studiengang][4][]= $student_uid; - $text.= "Studenten-uid: ".$student_uid."
"; + $ausgabe[$row->studiengang][4][] = $student_uid; + $text .= "Studenten-uid: ".$student_uid."
"; } } } @@ -182,29 +222,39 @@ if($db->db_query($qry)) * Aktuelles Semester beim Studenten stimmt nicht mit dem Ausbildungssemester des aktuellen Status überein */ -$text .="

Suche Studenten deren Semstern nicht mit dem Ausbildungssemesters des aktuellen Status übereinstimmt ...

"; +$text .= "

Suche Studenten deren Semstern nicht mit dem +Ausbildungssemesters des aktuellen Status übereinstimmt ...

"; $student = new student(); $prestudent = new prestudent(); -$qry = "select distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester, lv.semester, student.studiengang_kz studiengang -from public.tbl_student student -join public.tbl_studentlehrverband lv using(student_uid) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus status using(prestudent_id) -WHERE status.studiensemester_kurzbz = '$aktSem' -and lv.studiensemester_kurzbz = '$aktSem' AND status.status_kurzbz NOT IN ('Interessent','Bewerber') -and get_rolle_prestudent (prestudent_id, '$aktSem')='Student';"; +$qry = " +SELECT + distinct(student.student_uid), prestudent.prestudent_id, status.ausbildungssemester, + lv.semester, student.studiengang_kz studiengang +FROM + public.tbl_student student + JOIN public.tbl_studentlehrverband lv using(student_uid) + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus status using(prestudent_id) +WHERE + status.studiensemester_kurzbz = ".$db->db_add_param($aktSem)." + AND lv.studiensemester_kurzbz = ".$db->db_add_param($aktSem)." + AND status.status_kurzbz NOT IN ('Interessent','Bewerber') + AND get_rolle_prestudent (prestudent_id, ".$db->db_add_param($aktSem).")='Student'"; -if($db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { $student_uid = $row->student_uid; - if($row->ausbildungssemester != $row->semester) + if ($row->ausbildungssemester != $row->semester) { - $ausgabe[$row->studiengang][5][]= $student_uid; - $text.="Studenten-uid: ".$student_uid."
"; + $ausgabe[$row->studiengang][5][] = $student_uid; + $text .= "Studenten-uid: ".$student_uid."
"; } } } @@ -214,21 +264,29 @@ if($db->db_query($qry)) * Inaktive Studenten sollen keinen "aktiven" Status haben (Diplomant, Student, Unterbrecher, Praktikant) */ -$text.="

Suche alle inaktiven Studenten mit einem aktiven Status ...

"; +$text .= "

Suche alle inaktiven Studenten mit einem aktiven Status ...

"; -$qry = "Select distinct(student.student_uid), student.studiengang_kz studiengang -from public.tbl_benutzer benutzer -join public.tbl_student student on(benutzer.uid = student.student_uid) -join public.tbl_prestudent prestudent using(prestudent_id) -where benutzer.aktiv = 'false' -and get_rolle_prestudent (prestudent_id, '$aktSem') in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')"; +$qry = " +SELECT + distinct(student.student_uid), student.studiengang_kz studiengang +FROM + public.tbl_benutzer benutzer + JOIN public.tbl_student student on(benutzer.uid = student.student_uid) + JOIN public.tbl_prestudent prestudent using(prestudent_id) +WHERE + benutzer.aktiv=false + AND get_rolle_prestudent(prestudent_id, ".$db->db_add_param($aktSem).") + in ('Student', 'Diplomand', 'Unterbrecher', 'Praktikant')"; -if($db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { - $ausgabe[$row->studiengang][6][]= $row->student_uid; - $text.="Studenten-uid: ".$row->student_uid."
"; + $ausgabe[$row->studiengang][6][] = $row->student_uid; + $text .= "Studenten-uid: ".$row->student_uid."
"; } } @@ -238,36 +296,43 @@ if($db->db_query($qry)) * zB. Wenn Student im SS2010 studiert darf Studentenstatus nicht vor 15.11.2009 liegen */ -$text.="

Suche alle Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt ...

"; +$text .= "

Suche alle Studenten deren Inskription im aktuellen +Semester vor der letzten BIS-Meldung liegt ...

"; -$qry ="Select distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang -from public.tbl_benutzer benutzer -join public.tbl_student student on(benutzer.uid = student.student_uid) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus prestatus using(prestudent_id) -where benutzer.aktiv = 'true'"; +$qry = " +SELECT + distinct(student.student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang +FROM + public.tbl_benutzer benutzer + JOIN public.tbl_student student on(benutzer.uid = student.student_uid) + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus prestatus using(prestudent_id) +WHERE + benutzer.aktiv=true"; -if($db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { $prestudent = new prestudent(); $prestudent->getFirstStatus($row->prestudent_id, 'Student'); // wenn Student im aktuellen Semester zum ersten Mal den Status Student bekommt - if($prestudent->studiensemester_kurzbz == $aktSem) + if ($prestudent->studiensemester_kurzbz == $aktSem) { $datumBIS = getDateForInscription($aktSem); $datumInscription = $datum->formatDatum($prestudent->datum, 'Y-m-d'); // Wenn Inscriptionsdatum vor der letzten BIS Meldung liegt - if($datumInscription < $datumBIS) + if ($datumInscription < $datumBIS) { - $ausgabe[$row->studiengang][7][]= $row->student_uid; - $text.= $row->student_uid ." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."
"; + $ausgabe[$row->studiengang][7][] = $row->student_uid; + $text .= $row->student_uid." Inskribiert am: ".$datumInscription." BIS Meldung: ".$datumBIS."
"; } } - } } @@ -276,35 +341,48 @@ if($db->db_query($qry)) * Datum und Studiensemester bei den Stati sind in falscher Reihenfolge */ -$text.="

Suche alle Studenten die Datum und Studiensemester in deren Stati in falscher Reihenfolge haben ...

"; +$text .= "

Suche alle Studenten die Datum und Studiensemester +in deren Stati in falscher Reihenfolge haben ...

"; $prestudentFirst = new prestudent(); $prestudentSecond = new prestudent(); $i = 0; // alle aktiven Studenten die im aktuellen Semster den Status Student haben -$qry_student ="Select distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang -from public.tbl_student student -join public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus status using(prestudent_id) -where benutzer.aktiv = 'true' -and status.status_kurzbz ='Student' -and status.studiensemester_kurzbz = '$aktSem';"; +$qry_student = " +SELECT + distinct(student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang +FROM + public.tbl_student student + JOIN public.tbl_benutzer benutzer on(student.student_uid = benutzer.uid) + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus status using(prestudent_id) +WHERE + benutzer.aktiv=true + AND status.status_kurzbz='Student' + AND status.studiensemester_kurzbz=".$db->db_add_param($aktSem); -if($result = $db->db_query($qry_student)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry_student)) { - while($student = $db->db_fetch_object($result)) + while ($student = $db->db_fetch_object($result)) { - $qry_orderSemester ="SELECT * FROM public.tbl_prestudentstatus status - join public.tbl_studiensemester semester using(studiensemester_kurzbz) - where prestudent_id = '$student->prestudent_id' - order by start DESC, datum DESC;"; + $qry_orderSemester = " + SELECT + status.* + FROM + public.tbl_prestudentstatus status + JOIN public.tbl_studiensemester semester using(studiensemester_kurzbz) + WHERE + prestudent_id = ".$db->db_add_param($student->prestudent_id, FHC_INTEGER)." + ORDER BY semester.start DESC, status.datum DESC;"; - if($result1 = $db->db_query($qry_orderSemester)) + if ($result1 = $db->db_query($qry_orderSemester)) { $prestudentSecond->result = array(); $prestudentFirst->result = array(); - while($row = $db->db_fetch_object($result1)) + while ($row = $db->db_fetch_object($result1)) { $prestudentStatus = new prestudent(); @@ -324,17 +402,19 @@ if($result = $db->db_query($qry_student)) } } else - $text.= "Fehler"; + $text .= "Fehler"; - if(!$prestudentSecond->getPrestudentRolle($student->prestudent_id,null,null,'Datum DESC, insertamum DESC')) - $text.= "ERROR:".$prestudentSecond->errormsg; + if (!$prestudentSecond->getPrestudentRolle($student->prestudent_id, null, null, 'Datum DESC, insertamum DESC')) + $text .= "ERROR:".$prestudentSecond->errormsg; - for($i=0; $iresult); $i++) + $anzahl_stati = count($prestudentFirst->result); + for ($i = 0; $i < $anzahl_stati; $i++) { - if($prestudentFirst->result[$i]->studiensemester_kurzbz != $prestudentSecond->result[$i]->studiensemester_kurzbz) + if ($prestudentFirst->result[$i]->studiensemester_kurzbz + != $prestudentSecond->result[$i]->studiensemester_kurzbz) { - $ausgabe[$student->studiengang][8][]= $student->student_uid; - $text.= "Studenten-uid: ".$student->student_uid."
"; + $ausgabe[$student->studiengang][8][] = $student->student_uid; + $text .= "Studenten-uid: ".$student->student_uid."
"; continue 2; } } @@ -346,24 +426,31 @@ if($result = $db->db_query($qry_student)) */ $prestudent = new prestudent(); -$text.="

Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.

"; +$text .= "

Suche alle aktiven Studenten die keinen Status im aktuellen Studiensemester haben.

"; -$qry ="Select distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang -from public.tbl_student student -join public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid) -join public.tbl_prestudent prestudent using(prestudent_id) -join public.tbl_prestudentstatus status using(prestudent_id) -where benutzer.aktiv = 'true'"; +$qry = " +SELECT + distinct (student_uid), prestudent.prestudent_id, student.studiengang_kz studiengang +FROM + public.tbl_student student + JOIN public.tbl_benutzer benutzer on (benutzer.uid = student.student_uid) + JOIN public.tbl_prestudent prestudent using(prestudent_id) + JOIN public.tbl_prestudentstatus status using(prestudent_id) +WHERE + benutzer.aktiv=true"; -if($result = $db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { - if(!$prestudent->getLastStatus($row->prestudent_id, $aktSem) + if (!$prestudent->getLastStatus($row->prestudent_id, $aktSem) && !$prestudent->getLastStatus($row->prestudent_id, $nextSem)) { - $ausgabe[$row->studiengang][9][]= $row->student_uid; - $text.= $row->student_uid."
"; + $ausgabe[$row->studiengang][9][] = $row->student_uid; + $text .= $row->student_uid."
"; } } } @@ -371,9 +458,9 @@ if($result = $db->db_query($qry)) /* * Bewerber im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben */ -$text.="

Suche alle Bewerber die keine Orgform eingetragen haben.

"; +$text .= "

Suche alle Bewerber die keine Orgform eingetragen haben.

"; -$qry =" +$qry = " SELECT tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang FROM @@ -387,21 +474,24 @@ WHERE AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null) AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem); -if($result = $db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { - $ausgabe[$row->studiengang][10][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; - $text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; + $ausgabe[$row->studiengang][10][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; + $text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; } } /* * Studierende im aktuellen StSem die in Mischformstudiengängen keine Orgform eingetragen haben */ -$text.="

Suche alle Bewerber die keine Orgform eingetragen haben.

"; +$text .= "

Suche alle Bewerber die keine Orgform eingetragen haben.

"; -$qry =" +$qry = " SELECT tbl_prestudent.prestudent_id, tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang FROM @@ -415,23 +505,27 @@ WHERE AND (tbl_prestudentstatus.orgform_kurzbz='' OR tbl_prestudentstatus.orgform_kurzbz is null) AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem); -if($result = $db->db_query($qry)) +if ($studiengang_kz != '') + $qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { - $ausgabe[$row->studiengang][11][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; - $text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; + $ausgabe[$row->studiengang][11][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; + $text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; } } /* * Studiengang des Prestudenten passt nicht zu Studiengang des Studienplans */ -$text.="

Suche alle bei denen Studiengang des Prestudenten nicht zum Studiengang des Studienplans passt

"; +$text .= "

Suche alle bei denen Studiengang des Prestudenten +nicht zum Studiengang des Studienplans passt

"; -$qry =" +$qry = " SELECT - distinct tbl_person.*, + distinct tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz as studiengang, tbl_prestudent.prestudent_id FROM @@ -440,115 +534,263 @@ FROM JOIN lehre.tbl_studienplan USING(studienplan_id) JOIN lehre.tbl_studienordnung USING(studienordnung_id) JOIN public.tbl_person USING(person_id) -WHERE tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz +WHERE + tbl_prestudent.studiengang_kz<>tbl_studienordnung.studiengang_kz "; -if($result = $db->db_query($qry)) + +if ($studiengang_kz != '') + $qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { - $ausgabe[$row->studiengang][12][]= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; - $text.= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; + $ausgabe[$row->studiengang][12][] = $row->vorname.' '.$row->nachname.' '.$row->prestudent_id; + $text .= $row->vorname.' '.$row->nachname.' '.$row->prestudent_id."
"; + } +} + +/* + * Studienplan ist nicht gueltig + */ +$text .= "

Studienplan ist im gewaehlten Ausbildungssemester nicht gueltig

"; + +$qry = " +SELECT + distinct tbl_person.vorname, tbl_person.nachname, + tbl_prestudent.prestudent_id, + tbl_studienplan.bezeichnung, + tbl_prestudent.studiengang_kz as studiengang, + tbl_prestudentstatus.status_kurzbz, + tbl_prestudentstatus.studiensemester_kurzbz, + tbl_prestudentstatus.ausbildungssemester +FROM + public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING(prestudent_id) + JOIN public.tbl_person USING(person_id) + JOIN lehre.tbl_studienplan USING(studienplan_id) +WHERE + status_kurzbz in('Student', 'Interessent','Bewerber','Aufgenommener') + AND NOT EXISTS ( + SELECT + 1 + FROM + lehre.tbl_studienplan_semester + WHERE + studienplan_id=tbl_prestudentstatus.studienplan_id + AND tbl_studienplan_semester.semester = tbl_prestudentstatus.ausbildungssemester + AND tbl_studienplan_semester.studiensemester_kurzbz = Tbl_prestudentstatus.studiensemester_kurzbz + ) + AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($aktSem); + +if ($studiengang_kz != '') + $qry .= " AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + +if ($result = $db->db_query($qry)) +{ + while ($row = $db->db_fetch_object($result)) + { + $ausgabe[$row->studiengang][13][] = $row->vorname.' '.$row->nachname. + ' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.'.Sem)'; + $text .= $row->vorname.' '.$row->nachname. + ' ('.$row->studiensemester_kurzbz.' '.$row->status_kurzbz.' '.$row->ausbildungssemester.".Sem)
"; } } // Ausgabe der Studenten -foreach($ausgabe as $stg_kz=>$value) +foreach ($ausgabe as $stg_kz => $value) { //Wenn eine Studiengangskennzahl uebergeben wird, nur diese anzeigen und die anderen ueberspringen - if(isset($_REQUEST['stg_kz']) && $_REQUEST['stg_kz']!=$stg_kz) + if ($studiengang_kz != $stg_kz) continue; $studiengang = new studiengang(); $studiengang->load($stg_kz); - echo "

".$studiengang->bezeichnung ." (".$studiengang->kurzbzlang.")

"; + echo "

".$studiengang->bezeichnung." (".$studiengang->kurzbzlang.")

"; echo ""; - foreach($value as $code=>$uid) + foreach ($value as $code => $uid) { switch ($code) { case 1: - echo ''; - break; + echo ' + + + + + + '; + break; case 2: - echo ""; - break; + echo " + + + + + + "; + break; case 3: - echo ""; - break; + echo " + + + + + + "; + break; case 4: - echo ""; - break; + echo " + + + + + + "; + break; case 5: - echo ""; - break; + echo " + + + + + + "; + break; case 6: - echo ""; - break; + echo " + + + + + + "; + break; case 7: - echo ""; - break; + echo " + + + + + + "; + break; case 8: - echo ""; - break; + echo " + + + + + + "; + break; case 9: - echo ""; - break; + echo " + + + + + + "; + break; case 10: - echo ""; - break; + echo " + + + + + + "; + break; case 11: - echo ""; - break; + echo " + + + + + + "; + break; case 12: - echo ""; - break; - + echo " + + + + + + "; + break; + case 13: + echo " + + + + + + "; + break; default: - echo ""; - break; + echo ""; + break; } foreach ($uid as $student_id) { echo ""; $student = new student(); - if($student->load($student_id)) + if ($student->load($student_id)) echo ''; else - echo ''; + echo ''; echo ""; } - } echo "
 
Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind
 
+ Studenten deren Studiengänge (Prestudent <-> Student) nicht gleich sind +
 
Abrecher die noch aktiv sind
 
Abrecher die noch aktiv sind
 
Studenten mit nicht identischen Organisationsformeinträgen (Studiengang <-> Prestudentstatus)
 
+ Studenten mit nicht identischen Organisationsformeinträgen + (Studiengang <-> Prestudentstatus) +
 
Abbrecher die wieder einen Status bekommen haben
 
Abbrecher die wieder einen Status bekommen haben
 
Studenten deren Semester nicht mit dem Ausbildungssemester des aktuellen Status übereinstimmt
 
+ Studenten deren Semester nicht mit dem Ausbildungssemester + des aktuellen Status übereinstimmt +
 
Inaktive Studenten mit einem aktiven Status
 
Inaktive Studenten mit einem aktiven Status
 
Studenten deren Inskription im aktuellen Semester vor der letzten BIS-Meldung liegt
 
+ Studenten deren Inskription im aktuellen Semester + vor der letzten BIS-Meldung liegt +
 
Studenten die Datum und Studiensemestern in deren Stati in falscher Reihenfolge haben
 
+ Studenten die Datum und Studiensemestern in deren Stati + in falscher Reihenfolge haben +
 
Aktive Studenten die keinen Status im aktuellen oder nächsten Studiensemester haben
 
+ Aktive Studenten die keinen Status im aktuellen + oder nächsten Studiensemester haben +
 
Bewerberstati die keiner Organisationsform zugeordnet sind
 
Bewerberstati die keiner Organisationsform zugeordnet sind
 
Studierendenstati die keiner Organisationsform zugeordnet sind
 
Studierendenstati die keiner Organisationsform zugeordnet sind
 
Studienplan passt nicht zum Studiengang des Studierenden
 
Studienplan passt nicht zum Studiengang des Studierenden
 
Studienplan ist in diesem Semester nicht gültig
 
Ungültiger Code
 
Ungültiger Code
'.$student->vorname.''.$student->nachname.''.$student->uid.''.$student_id,''.$student_id.'
"; } -//echo $text; - -/* +/** * Gibt das Datum der BIS Meldung des übergebenen Semesters zurück + * @param string $semester Studiensemester_kurzbz. + * @return Datum der BIS-Meldung des uebergebeben Semesters. */ -function getDateForInscription ($semester) +function getDateForInscription($semester) { global $datum; - $semesterYear = substr($semester,2,6); - $semesterType = substr($semester,0,2); + $semesterYear = substr($semester, 2, 6); + $semesterType = substr($semester, 0, 2); - if($semesterType == 'SS') + if ($semesterType == 'SS') { - $date = "15.11.".($semesterYear-1); + $date = "15.11.".($semesterYear - 1); $date = $datum->formatDatum($date, 'Y-m-d'); return $date; } - if($semesterType == 'WS') + if ($semesterType == 'WS') { $date = '15.04'.$semesterYear; $date = $datum->formatDatum($date, 'Y-m-d'); return $date; } } -?> +echo ' - \ No newline at end of file +'; diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php index 02e539975..960413c2a 100644 --- a/vilesci/personen/student_vorrueckung.php +++ b/vilesci/personen/student_vorrueckung.php @@ -29,6 +29,9 @@ require_once('../../include/studiengang.class.php'); require_once('../../include/studiensemester.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/lehrverband.class.php'); +require_once('../../include/studienordnung.class.php'); +require_once('../../include/studienplan.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -37,29 +40,42 @@ $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('student/vorrueckung', null, 'suid')) +if (!$rechte->isBerechtigt('student/vorrueckung', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Seite'); -$ausbildungssemester=0; -$s=new studiengang(); -$s->loadArray($rechte->getStgKz('student/vorrueckung'),'typ, kurzbz', true); -$studiengang=$s->result; +$ausbildungssemester = 0; +$s = new studiengang(); +$s->loadArray($rechte->getStgKz('student/vorrueckung'), 'typ, kurzbz', true); +$studiengang = $s->result; -echo ' +echo ' + Studenten Vorrueckung - - - - + + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); +echo ' + -'; +'; // Output flushen damit nach dem aendern des Dropdowns gleich die neue Seite geladen wird. // Sonst wird bei zu langen Ladezeiten vom User noch auf einen anderen Link gedrueckt und der Studiengang -// wieder zurueckgesetzt +// wieder zurueckgesetzt // This prevent the notice error "ob_flush(): failed to flush buffer. No buffer to flush" -if(ob_get_contents() != false) +if (ob_get_contents() != false) { ob_flush(); } @@ -68,8 +84,8 @@ flush(); //Einlesen der studiensemester in einen Array $ss = new studiensemester(); -$ss->getAll(); -foreach($ss->studiensemester as $studiensemester) +$ss->getAll('desc'); +foreach ($ss->studiensemester as $studiensemester) { $ss_arr[] = $studiensemester->studiensemester_kurzbz; } @@ -78,305 +94,489 @@ foreach($ss->studiensemester as $studiensemester) //studiengang if (isset($_GET['stg_kz']) || isset($_POST['stg_kz'])) { - $stg_kz=(isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']); + $stg_kz = (isset($_GET['stg_kz'])?$_GET['stg_kz']:$_POST['stg_kz']); } else { - $stg_kz=$studiengang[0]->studiengang_kz; + $stg_kz = $studiengang[0]->studiengang_kz; } //semester anzeige if (isset($_GET['semester']) || isset($_POST['semester'])) { - $semester=(isset($_GET['semester'])?$_GET['semester']:$_POST['semester']); + $semester = (isset($_GET['semester'])?$_GET['semester']:$_POST['semester']); } else { - $semester=100; + $semester = 100; } //semester vorrückung if (isset($_GET['semesterv']) || isset($_POST['semesterv'])) { - $semesterv=(isset($_GET['semesterv'])?$_GET['semesterv']:$_POST['semesterv']); + $semesterv = (isset($_GET['semesterv'])?$_GET['semesterv']:$_POST['semesterv']); } else { - $semesterv=100; + $semesterv = 100; } //angezeigtes studiensemester if (isset($_GET['studiensemester_kurzbz']) || isset($_POST['studiensemester_kurzbz'])) { - $studiensemester_kurzbz=(isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:$_POST['studiensemester_kurzbz']); + if (isset($_GET['studiensemester_kurzbz'])) + $studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; + else + $studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; } else { - if (!$studiensemester_kurzbz=$ss->getakt()) - $studiensemester_kurzbz=$ss->getaktorNext(); + if (!$studiensemester_kurzbz = $ss->getakt()) + $studiensemester_kurzbz = $ss->getaktorNext(); } //ausgangssemester für vorrückung if (isset($_GET['studiensemester_kurzbz_akt']) || isset($_POST['studiensemester_kurzbz_akt'])) { - $studiensemester_kurzbz_akt=(isset($_GET['studiensemester_kurzbz_akt'])?$_GET['studiensemester_kurzbz_akt']:$_POST['studiensemester_kurzbz_akt']); + if (isset($_GET['studiensemester_kurzbz_akt'])) + $studiensemester_kurzbz_akt = $_GET['studiensemester_kurzbz_akt']; + else + $studiensemester_kurzbz_akt = $_POST['studiensemester_kurzbz_akt']; } else { -# $studiensemester_kurzbz_akt=$studiensemester_kurzbz; -# $studiensemester_kurzbz_akt=$ss->getPrevious(); - $studiensemester_kurzbz_akt=$ss->getLastOrAktSemester(30); + $studiensemester_kurzbz_akt = $ss->getLastOrAktSemester(30); } //zielsemester für vorrückung if (isset($_GET['studiensemester_kurzbz_zk']) || isset($_POST['studiensemester_kurzbz_zk'])) { - $studiensemester_kurzbz_zk=(isset($_GET['studiensemester_kurzbz_zk'])?$_GET['studiensemester_kurzbz_zk']:$_POST['studiensemester_kurzbz_zk']); + if (isset($_GET['studiensemester_kurzbz_zk'])) + $studiensemester_kurzbz_zk = $_GET['studiensemester_kurzbz_zk']; + else + $studiensemester_kurzbz_zk = $_POST['studiensemester_kurzbz_zk']; } else { - $studiensemester_kurzbz_zk=$ss->getNextFrom($studiensemester_kurzbz_akt); + $studiensemester_kurzbz_zk = $ss->getNextFrom($studiensemester_kurzbz_akt); } -if(!is_numeric($stg_kz)) +if (!is_numeric($stg_kz)) { - $stg_kz=0; + $stg_kz = 0; } //semester=100 bedeutet die Auswahl aller Semester -if(!is_numeric($semester)) +if (!is_numeric($semester)) { - $semester=100; + $semester = 100; } //Einlesen der maximalen, regulären Dauer der Studiengänge in einen Array -$qry_stg="SELECT * FROM public.tbl_studiengang"; -if ($result_stg=$db->db_query($qry_stg)) +$stg = new studiengang(); +$stg->getAll(); +foreach ($stg->result as $row_stg) { - while($row_stg=$db->db_fetch_object($result_stg)) - { - $max[$row_stg->studiengang_kz]=$row_stg->max_semester; - } -} - + $max[$row_stg->studiengang_kz] = $row_stg->max_semester; +} + //select für die Anzeige -$sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, - tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid) +$sql_query = "SELECT + tbl_student.*, + tbl_person.vorname, tbl_person.nachname, tbl_person.person_id, + tbl_studentlehrverband.semester as semester_stlv, + tbl_studentlehrverband.verband as verband_stlv, + tbl_studentlehrverband.gruppe as gruppe_stlv + FROM + tbl_studentlehrverband + JOIN tbl_student USING (student_uid) JOIN tbl_benutzer ON (student_uid=uid) JOIN tbl_person USING (person_id) - WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); -if($semester<100) -{ - $sql_query.=" AND tbl_studentlehrverband.semester=".$db->db_add_param($semester, FHC_INTEGER); //semester = 100 wählt alle aus -} -$sql_query.=" ORDER BY semester, nachname"; + WHERE + tbl_benutzer.aktiv + AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz); -//echo $sql_query; -if (!$result_std=$db->db_query($sql_query)) +if ($semester < 100) //semester = 100 wählt alle aus +{ + $sql_query .= " AND tbl_studentlehrverband.semester=".$db->db_add_param($semester, FHC_INTEGER); +} +$sql_query .= " ORDER BY semester, nachname"; + +if (!$result_std = $db->db_query($sql_query)) { error("Studenten not found!"); } -$outp=''; +$outp = ''; // ****************************** Vorrücken ****************************** if (isset($_POST['vorr'])) { + $statisticAdded = 0; + $statisticUebersprungen = 0; + $statisticStudienplanKorrektur = 0; + $stg_help = new studiengang(); - if(!$stg_help->load($stg_kz)) + if (!$stg_help->load($stg_kz)) die("Studiengang mit der Kennzahl $stg_kz kann nicht geladen werden"); - - if(!$rechte->isBerechtigt('student/vorrueckung',$stg_help->oe_kurzbz, 'suid')) + + if (!$rechte->isBerechtigt('student/vorrueckung', $stg_help->oe_kurzbz, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); - + //select für die Vorrückung - $sql_query="SELECT tbl_student.*,tbl_person.*, tbl_studentlehrverband.semester as semester_stlv, tbl_studentlehrverband.verband as verband_stlv, - tbl_studentlehrverband.gruppe as gruppe_stlv FROM tbl_studentlehrverband JOIN tbl_student USING (student_uid) - JOIN tbl_benutzer ON (student_uid=uid) - JOIN tbl_person USING (person_id) - WHERE tbl_benutzer.aktiv AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt); - - if($semester<100) + $sql_query = "SELECT + tbl_student.*, + tbl_person.vorname, tbl_person.nachname, tbl_person.person_id, + tbl_studentlehrverband.semester as semester_stlv, + tbl_studentlehrverband.verband as verband_stlv, + tbl_studentlehrverband.gruppe as gruppe_stlv + FROM + tbl_studentlehrverband JOIN tbl_student USING (student_uid) + JOIN tbl_benutzer ON (student_uid=uid) + JOIN tbl_person USING (person_id) + WHERE + tbl_benutzer.aktiv + AND tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($stg_kz, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt); + + if ($semester < 100) //semester = 100 wählt alle aus { - $sql_query.="AND tbl_studentlehrverband.semester=".$db->db_add_param($semesterv); //semester = 100 wählt alle aus + $sql_query .= "AND tbl_studentlehrverband.semester=".$db->db_add_param($semesterv); } - $sql_query.="ORDER BY semester, nachname"; - - //echo $sql_query; - if (!$result_std=$db->db_query($sql_query)) + $sql_query .= "ORDER BY semester, nachname"; + + if (!$result_std = $db->db_query($sql_query)) { error("Studenten not found!"); } - $next_ss=$studiensemester_kurzbz_zk; - while($row=$db->db_fetch_object($result_std)) + + $next_ss = $studiensemester_kurzbz_zk; + while ($row = $db->db_fetch_object($result_std)) { //aktuelle Rolle laden - $qry_status="SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_prestudent USING(prestudent_id) - WHERE prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER)." - AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt)." - ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;"; - if ($result_status=$db->db_query($qry_status)) + $qry_status = " + SELECT + * + FROM + public.tbl_prestudentstatus + JOIN public.tbl_prestudent USING(prestudent_id) + WHERE + prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER)." + AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz_akt)." + ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc + LIMIT 1;"; + + if ($result_status = $db->db_query($qry_status)) { - if($row_status=$db->db_fetch_object($result_status)) + if ($row_status = $db->db_fetch_object($result_status)) { //Studenten im letzten Semester bleiben dort, wenn aktiv - + // Semester fuer Studentlehrverband - if(VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER!='') + if (VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER != '') { - if($row->semester_stlv>=VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER) - $s=$row->semester_stlv; + if ($row->semester_stlv >= VORRUECKUNG_LEHRVERBAND_MAX_SEMESTER) + $s = $row->semester_stlv; else - $s=$row->semester_stlv+1; + $s = $row->semester_stlv + 1; } else { - if($row->semester_stlv>=$max[$stg_kz] || $row->semester_stlv==0) - $s=$row->semester_stlv; + if ($row->semester_stlv >= $max[$stg_kz] || $row->semester_stlv == 0) + $s = $row->semester_stlv; else - $s=$row->semester_stlv+1; + $s = $row->semester_stlv + 1; } - - if(!VORRUECKUNG_STATUS_MAX_SEMESTER) - $ausbildungssemester=$row_status->ausbildungssemester+1; - else + + if (!VORRUECKUNG_STATUS_MAX_SEMESTER) + $ausbildungssemester = $row_status->ausbildungssemester + 1; + else { // Semester fuer Status - if($row_status->ausbildungssemester>=$max[$stg_kz] || $row_status->status_kurzbz=="Unterbrecher" || $row_status->status_kurzbz=="Incoming") + if ($row_status->ausbildungssemester >= $max[$stg_kz] + || $row_status->status_kurzbz == "Unterbrecher" + || $row_status->status_kurzbz == "Incoming") { - $ausbildungssemester=$row_status->ausbildungssemester; + $ausbildungssemester = $row_status->ausbildungssemester; } - else + else { - $ausbildungssemester=$row_status->ausbildungssemester+1; + $ausbildungssemester = $row_status->ausbildungssemester + 1; } } + + $lvb = new lehrverband(); + //Lehrverbandgruppe anlegen, wenn noch nicht vorhanden - $qry_lvb="SELECT * FROM public.tbl_lehrverband - WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." AND semester=".$db->db_add_param($s)." - AND verband=".$db->db_add_param($row->verband_stlv)." AND gruppe=".$db->db_add_param($row->gruppe_stlv).";"; - if($db->db_num_rows($db->db_query($qry_lvb))<1) + if (!$lvb->exists($row->studiengang_kz, $s, $row->verband_stlv, $row->gruppe_stlv)) { - $lvb_ins="INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) VALUES (". - $db->db_add_param($row->studiengang_kz).", ". - $db->db_add_param($s).", ". - $db->db_add_param($row->verband_stlv).", ". - $db->db_add_param($row->gruppe_stlv).", - TRUE, NULL, NULL);"; - if (!$r=$db->db_query($lvb_ins)) - die($db->db_last_error()); + $lvb = new lehrverband(); + $lvb->studiengang_kz = $row->studiengang_kz; + $lvb->semester = $s; + $lvb->verband = $row->verband_stlv; + $lvb->gruppe = $row->gruppe_stlv; + $lvb->aktiv = true; + $lvb->new = true; + if (!$lvb->save()) + die($lvb->errormsg); } //Überprüfen ob Eintrag schon vorhanden - $qry_chk="SELECT * FROM public.tbl_studentlehrverband - WHERE student_uid=".$db->db_add_param($row->student_uid)." - AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";"; - $sql=''; - if($db->db_num_rows($db->db_query($qry_chk))<1) + $qry_chk = "SELECT + * + FROM + public.tbl_studentlehrverband + WHERE + student_uid=".$db->db_add_param($row->student_uid)." + AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";"; + + $sql = ''; + if ($db->db_num_rows($db->db_query($qry_chk)) < 1) { //Eintragen der neuen Gruppe - $sql="INSERT INTO public.tbl_studentlehrverband (student_uid, studiensemester_kurzbz, studiengang_kz, semester, verband, gruppe, updateamum, updatevon, insertamum, insertvon, ext_id) - VALUES (".$db->db_add_param($row->student_uid).",".$db->db_add_param($next_ss).",".$db->db_add_param($row->studiengang_kz).", - ".$db->db_add_param($s).",".$db->db_add_param($row->verband_stlv).",".$db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),".$db->db_add_param($user).",NULL);"; + $sql = "INSERT INTO public.tbl_studentlehrverband (student_uid, studiensemester_kurzbz, + studiengang_kz, semester, verband, gruppe, updateamum, updatevon, + insertamum, insertvon, ext_id) + VALUES (".$db->db_add_param($row->student_uid).", ". + $db->db_add_param($next_ss).", ". + $db->db_add_param($row->studiengang_kz).", ". + $db->db_add_param($s).", ". + $db->db_add_param($row->verband_stlv).", ". + $db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),". + $db->db_add_param($user).",NULL);"; } - $qry_chk="SELECT * FROM public.tbl_prestudentstatus - WHERE prestudent_id=".$db->db_add_param($row->prestudent_id)." - AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";"; - if($db->db_num_rows($db->db_query($qry_chk))<1) + $qry_chk = "SELECT + * + FROM + public.tbl_prestudentstatus + WHERE + prestudent_id=".$db->db_add_param($row->prestudent_id)." + AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";"; + + if ($db->db_num_rows($db->db_query($qry_chk)) < 1) { + // Pruefen ob der Studienplan fuer das vorgerueckte Semester noch gueltig ist + // und GGf einen besseren Studienplan suchen + $studienplan_id = getCorrectedStudienplan( + $next_ss, + $ausbildungssemester, + $row_status->studienplan_id + ); + + if ($row_status->studienplan_id != $studienplan_id) + $statisticStudienplanKorrektur++; + //Eintragen des neuen Status - $sql.="INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester, datum, insertamum, insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id) - VALUES (".$db->db_add_param($row->prestudent_id).", ".$db->db_add_param($row_status->status_kurzbz).", ".$db->db_add_param($next_ss).", - ".$db->db_add_param($ausbildungssemester).", now(), now(), ".$db->db_add_param($user).", - NULL, NULL, NULL, ".$db->db_add_param($row_status->orgform_kurzbz).",".$db->db_add_param($row_status->studienplan_id).");"; + $sql .= "INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, + studiensemester_kurzbz, ausbildungssemester, datum, insertamum, + insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id) + VALUES (".$db->db_add_param($row->prestudent_id).", ". + $db->db_add_param($row_status->status_kurzbz).", ". + $db->db_add_param($next_ss).", ". + $db->db_add_param($ausbildungssemester).", now(), now(), ". + $db->db_add_param($user).", NULL, NULL, NULL, ". + $db->db_add_param($row_status->orgform_kurzbz).", ". + $db->db_add_param($studienplan_id).");"; } - if($sql!='') + if ($sql != '') { - if (!$r=$db->db_query($sql)) + if (!$r = $db->db_query($sql)) { die($db->db_last_error()."
".$sql); } + else + { + $statisticAdded++; + } + } + else + { + $statisticUebersprungen++; } } } } - + echo ''; + echo 'Vorgerückte Personen:'.$statisticAdded.'
'; + echo 'Übersprungene Personen:'.$statisticUebersprungen.'
'; + echo 'Studienplanzuordnung korrigiert:'.$statisticStudienplanKorrektur.'
'; + echo '
'; } // **************** Ausgabe vorbereiten ****************************** -$s=array(); -$outp.="-----Anzeige------------------------------------------------------------------------------------------------------------------------------------------"; -$outp.="
Studiengang:                            + + + + + + +'; //Auswahl angezeigtes Studiensemester -$outp.="
Angezeigtes Studiensemester: + + +"; +$outp .= ' + + + + + + + + + + +\n"; +$outp .= ' + + + +'; //Auswahl Studiensemester in das vorgerückt werden soll -$outp.="
Ziel-Studiensemester:               + + + +
Anzeige
Studiengang: + '; +$outp .= ' +
Angezeigtes Studiensemester:"; -$outp.= '
Ausbildungssemester der Anzeige: -- '; -for ($i=0;$i<=$s[$stg_kz]->max_sem;$i++) +$outp .= " +
Ausbildungssemester der Anzeige: -- '; +for ($i = 0; $i <= $s[$stg_kz]->max_sem; $i++) { - $outp.= ''.$i.' -- '; + $url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz; + $url .= '&semester='.$i; + $url .= '&semesterv='.$semesterv; + $url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz; + $url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt; + $url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk; + + $outp .= ''.$i.' -- '; } -$outp.= 'alle -- '; + +$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz; +$url .= '&semesterv='.$semesterv; +$url .= '&semester=100'; +$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz; +$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt; +$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk; + +$outp .= 'alle -- '; //Auswahl Studiensemester von dem weg vorgerückt werden soll -$outp.="
-----Vorrückung Studiengang ".$s[$stg_kz]->kurzbz."----------------------------------------------------------------------------------------------------------"; -$outp.="
Ausgangs-Studiensemester:     
Vorrückung Studiengang '.$s[$stg_kz]->kurzbz.'
Ausgangs-Studiensemester:\n"; -$outp.= '
Ausgangs-Ausbildungssemester:   -- '; -for ($j=0;$j<=$s[$stg_kz]->max_sem;$j++) +$outp .= " +
Ausgangs-Ausbildungssemester:-- '; +for ($j = 0; $j <= $s[$stg_kz]->max_sem; $j++) { - $outp.= ''.$j.' -- '; + $url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz; + $url .= '&semester='.$semester; + $url .= '&semesterv='.$j; + $url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz; + $url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt; + $url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk; + + $outp .= ''.$j.' -- '; } -$outp.= 'alle -- '; + +$url = $_SERVER['PHP_SELF'].'?stg_kz='.$stg_kz; +$url .= '&semester='.$semester; +$url .= '&semesterv=100'; +$url .= '&studiensemester_kurzbz='.$studiensemester_kurzbz; +$url .= '&studiensemester_kurzbz_akt='.$studiensemester_kurzbz_akt; +$url .= '&studiensemester_kurzbz_zk='.$studiensemester_kurzbz_zk; + +$outp .= 'alle -- +
Ziel-Studiensemester:\n"; -$outp.="
Vorrückung von ".$studiensemester_kurzbz_akt." / ".($semesterv<100?$semesterv.".":'alle')." Semester -> ".$studiensemester_kurzbz_zk; - -// ------------------------------------------------------- +$outp .= " \n +
"; +$outp .= "Vorrückung von ".$studiensemester_kurzbz_akt." / ".($semesterv < 100?$semesterv.".":'alle'); +$outp .= "Semester -> ".$studiensemester_kurzbz_zk; //Überschrift -echo "

Studenten Vorrückung (".$s[$stg_kz]->kurzbz." - ".($semester<100?$semester:'alle')." - ". +echo "

Studenten Vorrückung (".$s[$stg_kz]->kurzbz." - ".($semester < 100?$semester:'alle')." - ". $studiensemester_kurzbz."), DB:".DB_NAME."

"; @@ -389,52 +589,140 @@ echo '


'; echo '
 
'; echo ''; //Überschrift Anzeige -echo "

Übersicht (".$studiensemester_kurzbz."/".($semester<100?$semester.".":'alle')." Semester )

- - - "; +echo "

Übersicht (".$studiensemester_kurzbz."/".($semester < 100?$semester.".":'alle')." Semester )

"; //Anzeige Tabelle -if ($result_std!=0) +if ($result_std != 0) { - $num_rows=$db->db_num_rows($result_std); + $num_rows = $db->db_num_rows($result_std); echo 'Anzahl: '.$num_rows; - echo "\n"; - echo ""; - echo ""; - for($i=0;$i<$num_rows;$i++) + echo ' +
NachnameVornameSTGSemVerGrpStatusAusbSem
+ + + + + + + + + + + + + + '; + + for ($i = 0; $i < $num_rows; $i++) { - $row=$db->db_fetch_object($result_std,$i); - $qry_status="SELECT status_kurzbz, ausbildungssemester FROM public.tbl_prestudentstatus - JOIN public.tbl_prestudent USING(prestudent_id) WHERE person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." - AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." + $row = $db->db_fetch_object($result_std, $i); + $qry_status = " + SELECT + status_kurzbz, ausbildungssemester, tbl_studienplan.studienplan_id, tbl_studienplan.bezeichnung + FROM + public.tbl_prestudentstatus + JOIN public.tbl_prestudent USING(prestudent_id) + LEFT JOIN lehre.tbl_studienplan USING(studienplan_id) + WHERE + person_id=".$db->db_add_param($row->person_id, FHC_INTEGER)." + AND studiengang_kz=".$db->db_add_param($row->studiengang_kz, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." ORDER BY datum desc, tbl_prestudentstatus.insertamum desc, tbl_prestudentstatus.ext_id desc LIMIT 1;"; - if ($result_status=$db->db_query($qry_status)) + + if ($result_status = $db->db_query($qry_status)) { - if($row_status=$db->db_fetch_object($result_status)) + $status_kurzbz = ''; + $ausbildungssemester = ''; + $studienplan_id = ''; + $studienplan_bezeichnung = ''; + + if ($row_status = $db->db_fetch_object($result_status)) { - echo ""; - echo ""; - echo "\n"; - } - else - { - echo ""; - echo ""; - echo "\n"; + $status_kurzbz = $row_status->status_kurzbz; + $ausbildungssemester = $row_status->ausbildungssemester; + $studienplan_id = $row_status->studienplan_id; + $studienplan_bezeichnung = $row_status->bezeichnung; } + + if ($studienplan_id != '') + $studienplan_bezeichnung .= '('.$studienplan_id.')'; + echo " + + + + + + + + + + + \n"; } - else + else { - error("Roles not found!"); + error("Roles not found!"); } } - echo ''; + echo ' +
NachnameVornameSTGSemVerGrpStatusAusbSemStudienplan
$row->nachname$row->vorname$row->studiengang_kz$row->semester_stlv$row->verband_stlv$row->gruppe_stlv$row_status->status_kurzbz$row_status->ausbildungssemester
$row->nachname$row->vorname$row->studiengang_kz$row->semester_stlv$row->verband_stlv$row->gruppe_stlv
".$db->convert_html_chars($row->nachname)."".$db->convert_html_chars($row->vorname)."".$db->convert_html_chars($row->studiengang_kz)."".$db->convert_html_chars($row->semester_stlv)."".$db->convert_html_chars($row->verband_stlv)."".$db->convert_html_chars($row->gruppe_stlv)."".$db->convert_html_chars($status_kurzbz)."".$db->convert_html_chars($ausbildungssemester)."".$db->convert_html_chars($studienplan_bezeichnung)."
'; } else echo "Kein Eintrag gefunden!"; + +/** + * Prüft ob der Studienplan im vorgerueckten Studiensemester noch aktiv ist + * falls dieser dort keine Gueltigkeit mehr hat, wird versucht den neuen Studienplan zu suchen + * wenn ein eindeutiger gefunden wird, wird der neue gesetzt + * Wenn kein eindeutiger gefunden wird, bleibt der alte Studienplan eingetragen + * + * @param string $studiensemester_kurzbz Neues Studiensemester. + * @param int $ausbildungssemester Neues Ausbildungssemester. + * @param int $studienplan_id Alte Studienplan_id. + * @return neue Studienplan_id + */ +function getCorrectedStudienplan($studiensemester_kurzbz, $ausbildungssemester, $studienplan_id) +{ + if ($studienplan_id == '') + { + // Wenn kein Studienplan eingetragen ist auch keinen suchen + return ''; + } + + $studienplan = new studienplan(); + if ($studienplan->isSemesterZugeordnet($studienplan_id, $studiensemester_kurzbz, $ausbildungssemester)) + return $studienplan_id; + else + { + if ($studienplan->loadStudienplan($studienplan_id)) + { + $studienordnung = new studienordnung(); + $studienordnung->loadStudienordnung($studienplan->studienordnung_id); + + $stp_neu = new studienplan(); + $ret = $stp_neu->getStudienplaeneFromSem( + $studienordnung->studiengang_kz, + $studiensemester_kurzbz, + $ausbildungssemester, + $studienplan->orgform_kurzbz + ); + + if ($ret === true && count($stp_neu->result) == 1) + { + // Es wurde ein eindeutiger neue Studienplan gefunden + return $stp_neu->result[0]->studienplan_id; + } + else + { + // Kein eindeutiger gefunden -> es bleibt der alte + return $studienplan_id; + } + } + else + { + return $studienplan_id; + } + } +} ?> - -
From ee827983b08187f9cbc8504a519d2978fafacb40 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 27 Mar 2017 10:48:12 +0200 Subject: [PATCH 08/36] Fixed widgets to show if data are not present --- application/widgets/Aufnahmegruppe_widget.php | 10 ++++++++- application/widgets/Reihungstest_widget.php | 21 ++++++++++++++----- application/widgets/Studiengang_widget.php | 11 +++++++++- .../widgets/Studiensemester_widget.php | 10 ++++++++- application/widgets/Stufe_widget.php | 10 ++++++++- 5 files changed, 53 insertions(+), 9 deletions(-) diff --git a/application/widgets/Aufnahmegruppe_widget.php b/application/widgets/Aufnahmegruppe_widget.php index a0bc21d45..964719954 100644 --- a/application/widgets/Aufnahmegruppe_widget.php +++ b/application/widgets/Aufnahmegruppe_widget.php @@ -22,10 +22,18 @@ class Aufnahmegruppe_widget extends Widget $emptyElement->beschreibung = 'Select a group...'; array_unshift($gruppen->retval, $emptyElement); } - else + else if (isError($gruppen)) { show_error($gruppen); } + else + { + // Adding an element to the array + $emptyElement = new stdClass(); + $emptyElement->gruppe_kurzbz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'No aufnahmegruppe found'; + array_unshift($gruppen->retval, $emptyElement); + } // Data to be used in the widget view $widgetData['aufnahmegruppen'] = $gruppen->retval; diff --git a/application/widgets/Reihungstest_widget.php b/application/widgets/Reihungstest_widget.php index bd49b8863..fef74fce3 100644 --- a/application/widgets/Reihungstest_widget.php +++ b/application/widgets/Reihungstest_widget.php @@ -40,11 +40,22 @@ class Reihungstest_widget extends Widget if (!isError($reihungstest)) { - // Adding an empty element at the beginning - $emptyElement = new stdClass(); - $emptyElement->reihungstest_id = Partial::HTML_DEFAULT_VALUE; - $emptyElement->beschreibung = 'Select a reihungstest...'; - array_unshift($reihungstest->retval, $emptyElement); + if (hasData($reihungstest)) + { + // Adding an empty element at the beginning + $emptyElement = new stdClass(); + $emptyElement->reihungstest_id = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'Select a reihungstest...'; + array_unshift($reihungstest->retval, $emptyElement); + } + else + { + // Adding an element to the array + $emptyElement = new stdClass(); + $emptyElement->reihungstest_id = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'No reihungstest found'; + array_unshift($reihungstest->retval, $emptyElement); + } } // Data to be used in the widget view diff --git a/application/widgets/Studiengang_widget.php b/application/widgets/Studiengang_widget.php index 43fcacb45..f3c3025ca 100644 --- a/application/widgets/Studiengang_widget.php +++ b/application/widgets/Studiengang_widget.php @@ -23,10 +23,19 @@ class Studiengang_widget extends Widget $emptyElement->bezeichnung = ''; array_unshift($studiengaenge->retval, $emptyElement); } - else + else if (isError($studiengaenge)) { show_error($studiengaenge); } + else + { + // Adding an element to the array + $emptyElement = new stdClass(); + $emptyElement->studiengang_kz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->kurzbzlang = 'No studiengaenge found'; + $emptyElement->bezeichnung = ''; + array_unshift($studiengaenge->retval, $emptyElement); + } // Data to be used in the widget view $widgetData['studiengaenge'] = $studiengaenge->retval; diff --git a/application/widgets/Studiensemester_widget.php b/application/widgets/Studiensemester_widget.php index 2b6c13228..e9d507cdf 100644 --- a/application/widgets/Studiensemester_widget.php +++ b/application/widgets/Studiensemester_widget.php @@ -23,10 +23,18 @@ class Studiensemester_widget extends Widget $emptyElement->beschreibung = 'Select a studiensemester...'; array_unshift($studiensemester->retval, $emptyElement); } - else + else if (isError($studiensemester)) { show_error($studiensemester); } + else + { + // Adding an element to the array + $emptyElement = new stdClass(); + $emptyElement->studiensemester_kurzbz = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'No studiensemester found'; + array_unshift($studiensemester->retval, $emptyElement); + } // Data to be used in the widget view $widgetData['studiensemesters'] = $studiensemester->retval; diff --git a/application/widgets/Stufe_widget.php b/application/widgets/Stufe_widget.php index a3a556d32..5a188a636 100644 --- a/application/widgets/Stufe_widget.php +++ b/application/widgets/Stufe_widget.php @@ -23,10 +23,18 @@ class Stufe_widget extends Widget $emptyElement->beschreibung = 'Select a stufe...'; array_unshift($stufen->retval, $emptyElement); } - else + else if (isError($stufen)) { show_error($stufen); } + else + { + // Adding an element to the array + $emptyElement = new stdClass(); + $emptyElement->stufe = Partial::HTML_DEFAULT_VALUE; + $emptyElement->beschreibung = 'No stufen found'; + array_unshift($stufen->retval, $emptyElement); + } // Data to be used in the widget view $widgetData['stufen'] = $stufen->retval; From 46829c366b2a6803b0566d23badf803108d96395 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 27 Mar 2017 15:24:56 +0200 Subject: [PATCH 09/36] Code Cleanup --- include/wochenplan.class.php | 472 +++++++++++++++-------------------- 1 file changed, 199 insertions(+), 273 deletions(-) diff --git a/include/wochenplan.class.php b/include/wochenplan.class.php index ea215764a..284d68dfb 100644 --- a/include/wochenplan.class.php +++ b/include/wochenplan.class.php @@ -131,7 +131,7 @@ class wochenplan extends basis_db for ($i=1; $i<=TAGE_PRO_WOCHE; $i++) for ($j=0; $j<20; $j++) { - if(!isset($this->std_plan[$i][$j][0])) + if (!isset($this->std_plan[$i][$j][0])) $this->std_plan[$i][$j][0]=new stdClass(); $this->std_plan[$i][$j][0]->anz=0; $this->std_plan[$i][$j][0]->unr=0; @@ -174,8 +174,6 @@ class wochenplan extends basis_db // Ort if ($type=='ort' && $ort_kurzbz==NULL) { - //$this->errormsg='Fehler: Kurzbezeichnung des Orts ist nicht gesetzt'; - //return false; $this->ort_kurzbz = "all"; } elseif ($type=='ort') @@ -189,7 +187,7 @@ class wochenplan extends basis_db $this->errormsg='Fehler: Kennzahl des Studiengangs ist nicht gesetzt'; return false; } - elseif($type=='verband') + elseif ($type=='verband') { $this->stg_kz=$studiengang_kz; $this->sem=$sem; @@ -207,24 +205,23 @@ class wochenplan extends basis_db $this->gruppe_kurzbz=$gruppe; - if($type=='fachbereich') + if ($type=='fachbereich') { - if(is_null($fachbereich_kurzbz)) + if (is_null($fachbereich_kurzbz)) { $this->errormsg = 'Fachbereich nicht gesetzt'; return false; } $this->fachbereich_kurzbz=$fachbereich_kurzbz; - } // LVA - if($type=='lva' && $lva==NULL) + if ($type=='lva' && $lva==NULL) { $this->errormsg='Fehler: LVA-ID ist nicht gesetzt'; return false; } - elseif($type=='lva') + elseif ($type=='lva') { $this->lva=$lva; } @@ -238,13 +235,13 @@ class wochenplan extends basis_db $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen, studiengang_kz, semester, verband, gruppe FROM campus.vw_student WHERE uid=".$this->db_add_param($this->pers_uid); else $sql_query="SELECT uid, titelpre, titelpost, nachname, vorname, vornamen FROM campus.vw_mitarbeiter WHERE uid=".$this->db_add_param($this->pers_uid); - //echo $sql_query; + if (!$this->db_query($sql_query)) { $this->errormsg=$this->db_last_error(); return false; } - if($row = $this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { $this->pers_uid = $row->uid; $this->pers_titelpre = $row->titelpre; @@ -271,15 +268,16 @@ class wochenplan extends basis_db //ortdaten ermitteln if ($this->type=='ort' && $this->ort_kurzbz != 'all') { - $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person, content_id FROM public.tbl_ort WHERE ort_kurzbz=".$this->db_add_param($this->ort_kurzbz); - //echo $sql_query; + $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person, content_id + FROM public.tbl_ort WHERE ort_kurzbz=".$this->db_add_param($this->ort_kurzbz); + if (!$this->db_query($sql_query)) { $this->errormsg=$this->db_last_error(); return false; } - if($row = $this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { $this->ort_bezeichnung = $row->bezeichnung; $this->ort_kurzbz = $row->ort_kurzbz; @@ -298,36 +296,38 @@ class wochenplan extends basis_db if ($this->type=='ort' && $this->ort_kurzbz == 'all') { - $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person, content_id FROM public.tbl_ort WHERE lehre AND ort_kurzbz != 'Dummy'"; - //echo $sql_query; - if (!$this->db_query($sql_query)) - { - $this->errormsg=$this->db_last_error(); - return false; - } + $sql_query="SELECT bezeichnung, ort_kurzbz, planbezeichnung, ausstattung, max_person, content_id + FROM public.tbl_ort WHERE lehre AND ort_kurzbz != 'Dummy'"; - while($row = $this->db_fetch_object()) - { - $obj = new stdClass(); - $obj->ort_bezeichnung = $row->bezeichnung; - $obj->ort_kurzbz = $row->ort_kurzbz; - $obj->ort_planbezeichnung = $row->planbezeichnung; - $obj->ort_ausstattung = $row->ausstattung; - $obj->ort_max_person = $row->max_person; - $obj->ort_content_id = $row->content_id; - //$obj->link.='&ort_kurzbz='.$this->ort_kurzbz; //Link erweitern - array_push($this->raeume, $obj); - } + if (!$this->db_query($sql_query)) + { + $this->errormsg=$this->db_last_error(); + return false; + } + + while ($row = $this->db_fetch_object()) + { + $obj = new stdClass(); + $obj->ort_bezeichnung = $row->bezeichnung; + $obj->ort_kurzbz = $row->ort_kurzbz; + $obj->ort_planbezeichnung = $row->planbezeichnung; + $obj->ort_ausstattung = $row->ausstattung; + $obj->ort_max_person = $row->max_person; + $obj->ort_content_id = $row->content_id; + + array_push($this->raeume, $obj); + } } // Studiengangsdaten ermitteln if ($this->type=='student' || $this->type=='verband' || $this->type=='lva') { - $sql_query="SELECT bezeichnung, kurzbz, kurzbzlang, typ, UPPER(typ||kurzbz) AS kuerzel, english FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($this->stg_kz); - //echo $sql_query; - if(!($this->db_query($sql_query))) + $sql_query="SELECT bezeichnung, kurzbz, kurzbzlang, typ, UPPER(typ||kurzbz) AS kuerzel, english + FROM public.tbl_studiengang WHERE studiengang_kz=".$this->db_add_param($this->stg_kz); + + if (!($this->db_query($sql_query))) die($this->db_last_error()); - if($row = $this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { $this->stg_bez = $row->bezeichnung; $this->stg_kurzbz = $row->typ.$row->kurzbz; @@ -339,27 +339,27 @@ class wochenplan extends basis_db // Stundentafel abfragen $sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); $this->stunde = $this->db_result; // Studiensemesterdaten ermitteln $sql_query="SELECT * FROM public.tbl_studiensemester WHERE now()db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); else { - if($row = $this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { - if(!isset($this->studiensemester_now)) + if (!isset($this->studiensemester_now)) $this->studiensemester_now = new stdClass(); $this->studiensemester_now->name=$row->studiensemester_kurzbz; $this->studiensemester_now->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4)); $this->studiensemester_now->ende=mktime(0,0,0,mb_substr($row->ende,5,2),mb_substr($row->ende,8,2),mb_substr($row->ende,0,4));# } - if($row = $this->db_fetch_object()) + if ($row = $this->db_fetch_object()) { - if(!isset($this->studiensemester_next)) + if (!isset($this->studiensemester_next)) $this->studiensemester_next = new stdClass(); $this->studiensemester_next->name=$row->studiensemester_kurzbz; $this->studiensemester_next->start=mktime(0,0,0,mb_substr($row->start,5,2),mb_substr($row->start,8,2),mb_substr($row->start,0,4)); @@ -407,7 +407,7 @@ class wochenplan extends basis_db } // Stundenplandaten aufbereiten - for($i=0;$i<$anz;$i++) + for ($i=0;$i<$anz;$i++) { $idx=0; $mtag=mb_substr($this->wochenplan->lehrstunden[$i]->datum, 8,2); @@ -416,13 +416,13 @@ class wochenplan extends basis_db $tag=date("w",mktime(12,0,0,$month,$mtag,$jahr)); if ($tag==0) $tag=7; //Sonntag - //echo $tag.':'.$this->wochenplan->lehrstunden[$i]->datum.'
'; + $stunde=$this->wochenplan->lehrstunden[$i]->stunde; // naechste freie Stelle im Array suchen while (isset($this->std_plan[$tag][$stunde][$idx]->lektor_uid)) $idx++; - //echo $idx.'
'; - if(!isset($this->std_plan[$tag][$stunde][$idx])) + + if (!isset($this->std_plan[$tag][$stunde][$idx])) $this->std_plan[$tag][$stunde][$idx]=new stdClass(); $this->std_plan[$tag][$stunde][$idx]->unr=$this->wochenplan->lehrstunden[$i]->unr; $this->std_plan[$tag][$stunde][$idx]->reservierung=$this->wochenplan->lehrstunden[$i]->reservierung; @@ -450,7 +450,6 @@ class wochenplan extends basis_db $this->std_plan[$tag][$stunde][$idx]->anmerkung=$this->wochenplan->lehrstunden[$i]->anmerkung; $this->std_plan[$tag][$stunde][$idx]->updateamum=$this->wochenplan->lehrstunden[$i]->updateamum; $this->std_plan[$tag][$stunde][$idx]->updatevon=$this->wochenplan->lehrstunden[$i]->updatevon; - //echo $tag.' '.$stunde.' '.$this->std_plan[$tag][$stunde][$idx]->lektor_uid.'
'; } unset($this->wochenplan); return true; @@ -494,18 +493,14 @@ class wochenplan extends basis_db $this->link.='&lva='.$this->lva; echo '

'.$this->crlf; echo ' '; - //echo ' '; echo '
'.$p->t('lvplan/semesterplaene').'
'.$this->crlf; //Kalender $this->kal_link.='&pers_uid='.$this->pers_uid.'&ort_kurzbz='.$this->ort_kurzbz.'&stg_kz='.$this->stg_kz.'&sem='.$this->sem.'&ver='.$this->ver.'&grp='.$this->grp.'&gruppe_kurzbz='.$this->gruppe_kurzbz.'&lva='.$this->lva; - //global $kalender_begin_ws, $kalender_ende_ws, $kalender_begin_ss, $kalender_ende_ss; $kal_link_ws=$this->kal_link.'&begin='.$this->studiensemester_now->start.'&ende='.$this->studiensemester_now->ende; $kal_link_ss=$this->kal_link.'&begin='.$this->studiensemester_next->start.'&ende='.$this->studiensemester_next->ende; - //echo '        '.$p->t('global/kalender').':   '.$this->crlf; echo $this->crlf; - //echo ' '.$p->t('lvplan/uebersicht').': '.$this->studiensemester_now->name.' '.$this->crlf; echo $this->studiensemester_now->name.'
'.$this->crlf; echo ' HTML'.$this->crlf; echo ' Excel'.$this->crlf; @@ -514,7 +509,6 @@ class wochenplan extends basis_db echo ' vCal Version 1.0'.$this->crlf; echo ' vCal Version 2.0'.$this->crlf; echo '
'.$p->t('lvplan/semesterplaene').''; - //echo '     '.$p->t('lvplan/uebersicht').': '.$this->studiensemester_next->name.' '.$this->crlf; echo ' '.$this->studiensemester_next->name.'
'.$this->crlf; echo ' HTML'.$this->crlf; echo ' Excel'.$this->crlf; @@ -525,10 +519,7 @@ class wochenplan extends basis_db echo '
'.$this->crlf; echo ' '.$this->crlf; - // Kalenderjump - //echo ' '.$this->crlf; - //jahreskalenderjump($this->link); - //echo ' '.$this->crlf; + // Kalenderjump echo ' '.$this->crlf; echo ''.$this->crlf.$this->crlf; @@ -545,7 +536,7 @@ class wochenplan extends basis_db { // Orte abfragen $sql_query="SELECT * FROM public.tbl_ort WHERE aktiv AND lehre ORDER BY ort_kurzbz"; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); $num_rows_ort=$this->db_num_rows(); @@ -568,7 +559,7 @@ class wochenplan extends basis_db // Ort Jump echo '
'.$this->crlf; echo '

'.$this->crlf; - //$datum=mktime($this->datum[hours], $this->datum[minutes], $this->datum[seconds], $this->datum[mon], $this->datum[mday], $this->datum[year]); + if (isset($prev_ort)) { echo ' '.$this->crlf; @@ -621,10 +612,10 @@ class wochenplan extends basis_db echo $link_parameter; echo '&datum='.$this->datum_next4week; echo '">'; - echo '

'; - //Kalenderjump mit Hoverbox - $this->jahreskalenderjump_hoverbox($this->link); - return true; + echo '

'; + //Kalenderjump mit Hoverbox + $this->jahreskalenderjump_hoverbox($this->link); + return true; } /** @@ -641,7 +632,7 @@ class wochenplan extends basis_db $o_datum=new datum(); // Stundentafel abfragen $sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde"; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); $result_stunde = $this->db_result; $num_rows_stunde = $this->db_num_rows($result_stunde); @@ -651,7 +642,7 @@ class wochenplan extends basis_db { $ort = new ort(); $ort->load($this->ort_kurzbz); - if($ort->reservieren) + if ($ort->reservieren) echo ''.$this->crlf; else $raumres=false; @@ -660,7 +651,7 @@ class wochenplan extends basis_db //Tabelle zeichnen echo ' '.$this->crlf; // Kopfzeile darstellen - echo ''.$this->crlf; + echo ''.$this->crlf; echo ' '.$this->crlf; for ($i=0;$i<$num_rows_stunde; $i++) { @@ -676,17 +667,15 @@ class wochenplan extends basis_db // Von Montag bis Samstag $datum_now=time(); $datum_res_lektor_start=jump_day($datum_now,(RES_TAGE_LEKTOR_MIN)-1); - $datum_res_lektor_ende=$o_datum->mktime_fromdate(RES_TAGE_LEKTOR_BIS); //jump_day($datum_now,RES_TAGE_LEKTOR_MAX); + $datum_res_lektor_ende=$o_datum->mktime_fromdate(RES_TAGE_LEKTOR_BIS); if (!date("w",$this->datum)) $this->datum=jump_day($this->datum,1); $datum=$datum_mon=$this->datum; for ($i=1; $i<=TAGE_PRO_WOCHE; $i++) { - //echo ''.$this->crlf; //.strftime("%A %d %B %Y",$this->datum) - echo ''.$this->crlf; //.strftime("%A %d %B %Y",$this->datum) - for ($k=0; $k<$num_rows_stunde; $k++) + echo ''.$this->crlf; + for ($k=0; $k<$num_rows_stunde; $k++) { - $row = $this->db_fetch_object($result_stunde, $k); $j = $row->stunde; // Stunde aufbereiten @@ -702,20 +691,19 @@ class wochenplan extends basis_db unset($lehrverband); if (isset($lehrfach)) unset($lehrfach); - if(isset($anmerkung)) + if (isset($anmerkung)) unset($anmerkung); - if(isset($titel_arr)) + if (isset($titel_arr)) unset($titel_arr); $reservierung=false; foreach ($this->std_plan[$i][$j] as $lehrstunde) { - $unr[]=$lehrstunde->unr; // Lektoren $lektor[]=$lehrstunde->lektor; // Lehrverband $typ=''; - if($lehrstunde->reservierung) + if ($lehrstunde->reservierung) { $studiengang = new studiengang(); $studiengang->load($lehrstunde->stg_kz); @@ -745,7 +733,7 @@ class wochenplan extends basis_db $reservierung=$lehrstunde->reservierung; } - if($gruppieren) + if ($gruppieren) { // Unterrichtsnummer (Kollision?) $unr=array_unique($unr); @@ -762,7 +750,6 @@ class wochenplan extends basis_db } else $lkt='
'.$lektor[0]; - //echo $lkt; // Lehrverband if ($this->type!='verband') @@ -788,7 +775,7 @@ class wochenplan extends basis_db else $lf=$lehrfach[0].'
'; - if(LVPLAN_ANMERKUNG_ANZEIGEN) + if (LVPLAN_ANMERKUNG_ANZEIGEN) { $anmerkung=array_unique($anmerkung); sort($anmerkung); @@ -826,20 +813,19 @@ class wochenplan extends basis_db echo '&sem='.$this->sem; echo '&ver='.$this->ver; echo '&grp='.$this->grp; - echo '&ort_kurzbz='.$this->std_plan[$i][$j][0]->ort; //.'">' + echo '&ort_kurzbz='.$this->std_plan[$i][$j][0]->ort; echo "','Details', 'height=320,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;"; echo '" title="'.$this->convert_html_chars($titel).'" '; echo ' href="#">'; // Ausgabe - //echo $lf; echo mb_substr($lf, 0,-strlen('
')); - if($titel!='' && !$reservierung) + if ($titel!='' && !$reservierung) { echo ''; } - //echo '
'; + if ($this->type=='ort' || $this->type=='lektor' || $this->type=='verband') echo $lvb; if ($this->type!='lektor') @@ -849,11 +835,6 @@ class wochenplan extends basis_db if (LVPLAN_ANMERKUNG_ANZEIGEN) { echo $anm; -/* $anmerkung=array_unique($anmerkung); - foreach($anmerkung as $anm) - if($anm!='') - echo '
'.$anm; - echo '
anm'; */ } echo ''.$blink_aus.''.$this->crlf; } @@ -861,19 +842,11 @@ class wochenplan extends basis_db { // mehrere Einheiten innerhalb einer Stunde sollen getrennt aufgelistet werden $uEinheiten=array(); - for($n=0;$nsearchForId($unr[$n], $uEinheiten); - if($unrIndex===FALSE) + if ($unrIndex===false) { - /* - if($unr[$n]=='51561') - { - echo "

N=$n"; - echo "unr:".$unr[$n]; - echo "Data:".print_r($uEinheiten,true); - echo "

"; - }*/ $unrIndex=count($uEinheiten); $uEinheiten[$unrIndex]['unr']=$unr[$n]; $uEinheiten[$unrIndex]['lehrfach']=$lehrfach[$n]; @@ -889,7 +862,7 @@ class wochenplan extends basis_db // Ausgabe einer Stunde im Raster (HTML) echo '
Ort (Personen) - "; + echo " + + + + + + "; ?> @@ -115,17 +133,20 @@ echo ""; } ?> - + '; - for ($t=1;$t<7;$t++) + for ($t=1;$t<7;$t++) for ($s=$stunde_beginn;$s<=$stunde_ende; $s++) { if (!isset($ort->last[$t][$s]->anzahl)) + { + $ort->last[$t][$s] = new stdClass(); $ort->last[$t][$s]->anzahl=0; + } $bgcolor=$cfgStdBgcolor[$anz_colors-round(($ort->last[$t][$s]->anzahl)/($wochen/$anz_colors))]; echo '
'.$p->t('global/stunde').' 
'.$p->t('global/beginn').' 
'.$p->t('global/ende').' 
'.strftime("%A",$datum).'
'.strftime("%e. %b %Y",$datum).'
'.$tagbez[$spracheLoad->index][$i].'
'.strftime("%e. %b %Y",$datum).'
'.$tagbez[$spracheLoad->index][$i].'
'.strftime("%e. %b %Y",$datum).'
'; -// for($n=0;$n$uEinheit) { echo '
' + echo '&ort_kurzbz='.$uEinheit['ort'][0]; echo "','Details', 'height=320,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;"; echo '" title="'.$this->convert_html_chars($uEinheit['titel'][0]).'" '; echo ' href="#">'; // Ausgabe - //echo $lf; echo $uEinheit['lehrfach']; - if($uEinheit['titel'][0]!='' && !$reservierung) + if ($uEinheit['titel'][0]!='' && !$reservierung) { echo ''; } @@ -938,7 +910,7 @@ class wochenplan extends basis_db foreach($uEinheit['ort'] as $ueOrt) echo $ueOrt."
"; } - if(LVPLAN_ANMERKUNG_ANZEIGEN) + if (LVPLAN_ANMERKUNG_ANZEIGEN) { $uEinheit['anmerkung']=array_unique($uEinheit['anmerkung']); foreach($uEinheit['anmerkung'] as $ueAnmerkung) @@ -969,7 +941,7 @@ class wochenplan extends basis_db { $check_all_checkbox=''; - echo '
'; + echo '
'; echo ' '.$this->crlf; echo ' '.$this->crlf; @@ -977,7 +949,7 @@ class wochenplan extends basis_db $rechte->getBerechtigungen($user_uid); //Pruefen ob die erweiterte Reservierungsrechte vorhanden sind - if($rechte->isBerechtigt('lehre/reservierung', null, 'sui')) + if ($rechte->isBerechtigt('lehre/reservierung', null, 'sui')) { $check_all_checkbox=''; //Lektor @@ -988,11 +960,11 @@ class wochenplan extends basis_db WHERE aktiv=true ORDER BY nachname, uid"; - if($result = $this->db_query($qry)) + if ($result = $this->db_query($qry)) { - while($row = $this->db_fetch_object($result)) + while ($row = $this->db_fetch_object($result)) { - if($row->uid==$user_uid) + if ($row->uid==$user_uid) $selected='selected="selected"'; else $selected=''; @@ -1067,7 +1039,7 @@ class wochenplan extends basis_db //Spezialgruppen aus den Studiengaengen mit erweiterten Reservierungsberechtigung holen $stgs = $rechte->getStgKz('lehre/reservierung'); - if(count($stgs)>0) + if (count($stgs)>0) { $in=''; foreach($stgs as $stg) @@ -1076,9 +1048,9 @@ class wochenplan extends basis_db } $in = substr($in, 0, -1); $qry = "SELECT * FROM public.tbl_gruppe WHERE studiengang_kz in($in) AND lehre=true AND sichtbar=true ORDER BY gruppe_kurzbz"; - if($result = $this->db_query($qry)) + if ($result = $this->db_query($qry)) { - while($row = $this->db_fetch_object($result)) + while ($row = $this->db_fetch_object($result)) { echo ''.$this->crlf; } @@ -1106,7 +1078,7 @@ class wochenplan extends basis_db } else { - if($this->type=='ort') + if ($this->type=='ort') { echo '
'.$p->t('global/titel').':'.$p->t('global/beschreibung').':
- - - - - - - - - - '; + + echo "

'; echo ''.$p->t('lvplan/raumreservierungAufZeitraumEingeschraenkt',array(date("d.m.Y",$datum_res_lektor_start),date("d.m.Y",$datum_res_lektor_ende))).''; @@ -1123,25 +1095,24 @@ class wochenplan extends basis_db */ public function draw_week_xul($semesterplan, $uid, $wunsch=null, $ignore_kollision=false, $kollision_student=false, $max_kollision=0) { - //echo $wunsch; global $cfgStdBgcolor; $count=0; $berechtigung=new benutzerberechtigung(); $berechtigung->getBerechtigungen($uid); // Stundentafel abfragen $sql_query="SELECT * FROM lehre.tbl_stunde ORDER BY stunde"; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) $this->errormsg=$this->db_last_error(); $result_stunde = $this->db_result; $num_rows_stunde=$this->db_num_rows($result_stunde); // Kontext Menue echo ' - - + + - - + + '; //Tabelle zeichnen @@ -1169,7 +1140,7 @@ class wochenplan extends basis_db pers_uid="'.$this->pers_uid.'" kw="'.$this->kalenderwoche.'" align="left">KW:'.$this->kalenderwoche.' - '.$this->crlf; //BeginnEnde + '.$this->crlf; $stunden_arr=array(); for ($i=0;$i<$num_rows_stunde; $i++) { @@ -1211,14 +1182,14 @@ class wochenplan extends basis_db if (isset($wunsch[$i][$j])) { $index=$wunsch[$i][$j]; - if($index==-3) + if ($index==-3) { //Wenn eine Zeitsperre eingetragen ist, dann diese im Tooltiptext anzeigen $zeitsperre = new zeitsperre(); $zeitsperre->getSperreByDate($this->pers_uid, date('Y-m-d',$datum), $j); foreach($zeitsperre->result as $sperren) { - if($tooltip!='') + if ($tooltip!='') $tooltip.=', '; $tooltip.=$sperren->zeitsperretyp_kurzbz.' - '.$sperren->bezeichnung; } @@ -1231,7 +1202,7 @@ class wochenplan extends basis_db $bgcolor=$cfgStdBgcolor[$index+3]; // Sonntag wie Ferien markieren - if($i==7) + if ($i==7) $bgcolor='#FFFF55'; if ($isferien) @@ -1241,22 +1212,22 @@ class wochenplan extends basis_db //Wenn Ferien eingetragen sind, dann die Bezeichnung im Tooltiptext anzeigen foreach($ferien->getFerien($datum) as $bezeichnung) { - if($tooltip!='') + if ($tooltip!='') $tooltip.=', '; $tooltip .= $bezeichnung; } } echo ''; @@ -1266,7 +1237,7 @@ class wochenplan extends basis_db // Daten aufbereiten if (isset($lvb)) unset($lvb); - //$lvb=array(); + $kollision=-1; unset($kollisionsmeldungen); if (isset($a_unr)) @@ -1283,7 +1254,7 @@ class wochenplan extends basis_db $a_unr=array_unique($a_unr); $kollision+=count($a_unr); //Kollisionspruefung Studentenebene - if($kollision_student=='true') + if ($kollision_student=='true') { $kollision=0; $studiensemester = getStudiensemesterFromDatum(date('Y-m-d',$datum)); @@ -1309,7 +1280,7 @@ class wochenplan extends basis_db GROUP BY datum, stunde, student_uid HAVING count(student_uid)>1 "; - if(count($a_unr)>0) + if (count($a_unr)>0) { // Nur die Eintraege als kollision anzeigen, die auch aktuell im Tempus sichtbar sind // Dazu werden die UNRs der betroffenen Studierenden zuerst ein ein Array gruppiert und danach @@ -1321,9 +1292,9 @@ class wochenplan extends basis_db } $qry.="ORDER BY datum, stunde, student_uid LIMIT 1;"; - if($stud_result = $this->db_query($qry)) + if ($stud_result = $this->db_query($qry)) { - if($this->db_num_rows($stud_result)>0) + if ($this->db_num_rows($stud_result)>0) { $kollision++; $stud_row = $this->db_fetch_object($stud_result); @@ -1397,10 +1368,10 @@ class wochenplan extends basis_db $stundenplan_ids=array(); $titel=''; - if(isset($raumcheck)) + if (isset($raumcheck)) unset($raumcheck); - if(isset($lktcheck)) + if (isset($lktcheck)) unset($lktcheck); foreach ($this->std_plan[$i][$j] as $lehrstunde) @@ -1436,20 +1407,20 @@ class wochenplan extends basis_db } else { - if(!in_array($lehrstunde->stundenplan_id, $stundenplan_ids)) + if (!in_array($lehrstunde->stundenplan_id, $stundenplan_ids)) { $paramList.='&stundenplan_id'.$z++.'='.$lehrstunde->stundenplan_id; $stundenplan_ids[]=$lehrstunde->stundenplan_id; } } - if(isset($lehrstunde->farbe) && $farbe=='') + if (isset($lehrstunde->farbe) && $farbe=='') $farbe=$lehrstunde->farbe; $titel.=htmlspecialchars($lehrstunde->titel); $anmerkung=htmlspecialchars($lehrstunde->anmerkung); $tooltip_anmerkung[]=$titel.' '.$anmerkung; } - if(isset($raumcheck[$lehrstunde->ort]) && $raumcheck[$lehrstunde->ort]!=$lehrstunde->unr) + if (isset($raumcheck[$lehrstunde->ort]) && $raumcheck[$lehrstunde->ort]!=$lehrstunde->unr) { $kollision++; $kollisionsmeldungen[$lehrstunde->unr][]=" Ort ".$lehrstunde->ort; @@ -1458,9 +1429,9 @@ class wochenplan extends basis_db else $raumcheck[$lehrstunde->ort]=$lehrstunde->unr; - if(isset($lktcheck[$lehrstunde->lektor]) && $lktcheck[$lehrstunde->lektor]!=$lehrstunde->unr) + if (isset($lktcheck[$lehrstunde->lektor]) && $lktcheck[$lehrstunde->lektor]!=$lehrstunde->unr) { - if(!in_array($lehrstunde->lektor_uid, unserialize(KOLLISIONSFREIE_USER))) + if (!in_array($lehrstunde->lektor_uid, unserialize(KOLLISIONSFREIE_USER))) { $kollision++; $kollisionsmeldungen[$lehrstunde->unr][]=" LektorIn ".$lehrstunde->lektor; //." ".$lehrstunde->unr."!=".$lktcheck[$lehrstunde->lektor]; @@ -1471,7 +1442,6 @@ class wochenplan extends basis_db $lktcheck[$lehrstunde->lektor]=$lehrstunde->unr; } // Lektoren - //if ($this->type!='lektor') $lektor=array_unique($lektor); sort($lektor); $lkt=''; @@ -1479,7 +1449,6 @@ class wochenplan extends basis_db $lkt.=$l.''; // Lehrverband - //if ($this->type!='verband') $lehrverband=array_unique($lehrverband); sort($lehrverband); $lvb=''; @@ -1487,7 +1456,6 @@ class wochenplan extends basis_db $lvb.=$l.''; // Lehrfach - //if ($this->type=='verband') $lehrfach=array_unique($lehrfach); sort($lehrfach); $lf=''; @@ -1495,8 +1463,6 @@ class wochenplan extends basis_db $lf.=$l.''; // Ort - //if ($this->type=='verband') - $ort=array_unique($ort); sort($ort); $orte=''; @@ -1519,9 +1485,9 @@ class wochenplan extends basis_db // Blinken oder nicht ? if (isset($kollisionsmeldungen[$unr]) - || (isset($kollisionsmeldung) && count($kollisionsmeldungen, COUNT_RECURSIVE)==0 && $kollision>0)) + || (isset($kollisionsmeldung) && count($kollisionsmeldungen, COUNT_RECURSIVE)==0 && $kollision>0)) { - $blink_ein='';// .$kollision; + $blink_ein=''; $blink_aus=''; } else @@ -1535,7 +1501,7 @@ class wochenplan extends basis_db $tooltip_anmerkung = array_unique($tooltip_anmerkung); $tooltip_gesamt = '('.$updatevonam.') '.implode(',',$tooltip_anmerkung); - if(isset($kollisionsmeldungen[$unr])) + if (isset($kollisionsmeldungen[$unr])) $tooltip_gesamt .= ' Kollision wegen:'.implode(',',array_unique($kollisionsmeldungen[$unr])); // Ausgabe @@ -1547,9 +1513,9 @@ class wochenplan extends basis_db echo ' context="stplPopupMenue" '; if ($berechtigung->isBerechtigt('lehre/lvplan',$stg_obj->oe_kurzbz,'u')) echo 'ondraggesture="nsDragAndDrop.startDrag(event,listObserver)" '; - //onclick="return onStplSearchRoom(event, event.target);" + $button_orte = $this->ort_kurzbz; - if($button_orte=='') + if ($button_orte=='') $button_orte=$ort[0]; echo 'ondragdrop="nsDragAndDrop.drop(event,boardObserver)" ondragover="nsDragAndDrop.dragOver(event,boardObserver)" @@ -1567,18 +1533,18 @@ class wochenplan extends basis_db echo ''.$this->crlf; //BeginnEnde + '.$this->crlf; for ($i=0;$i<$num_rows_stunde; $i++) { $row=$this->db_fetch_object($result_stunde,$i); @@ -1674,8 +1640,6 @@ class wochenplan extends basis_db echo ''; } - - /** * Funktion load_stpl_search sucht Vorschlag fuer Stundenverschiebung * @@ -1699,8 +1663,8 @@ class wochenplan extends basis_db $this->datum_begin=date("Y-m-d",$this->datum_begin); $this->datum_end=date("Y-m-d",$this->datum_end); // Stundentafel abfragen - $sql_query='SELECT min(stunde),max(stunde)FROM lehre.tbl_stunde'; - if(!$this->db_query($sql_query)) + $sql_query='SELECT min(stunde),max(stunde) FROM lehre.tbl_stunde'; + if (!$this->db_query($sql_query)) die($this->db_last_error()); $row = $this->db_fetch_object(); $min_stunde=$row->min; @@ -1712,8 +1676,8 @@ class wochenplan extends basis_db $stplids.=" OR $stpl_view_id=$id"; $stplids=mb_substr($stplids,3); $sql_query.=$stplids; - //echo $sql_query; - if(!$this->db_query($sql_query)) + + if (!$this->db_query($sql_query)) die($this->db_last_error()); $num_rows_stpl=$this->db_num_rows(); // Daten aufbereiten @@ -1721,14 +1685,11 @@ class wochenplan extends basis_db for ($i=0;$i<$num_rows_stpl;$i++) { $row=$this->db_fetch_object(null,$i); - //$block=$row->stundenblockung; - //$raumtyp[$i]=$row->raumtyp; - //$raumtypalt[$i]=$row->raumtypalternativ; if ($row->gruppe_kurzbz!=null) $gruppe[]=$row->gruppe_kurzbz; else $gruppe[]=''; - if(!isset($lehrverband[$i])) + if (!isset($lehrverband[$i])) $lehrverband[$i]= new stdClass(); $lehrverband[$i]->stg_kz=$row->studiengang_kz; $lehrverband[$i]->sem=$row->semester; @@ -1738,13 +1699,13 @@ class wochenplan extends basis_db $lektor[$i]=$row->uid; $unr=$row->unr; } - if($leids!='') + if ($leids!='') { // Raumtypen $leids = mb_substr($leids, 0, mb_strlen($leids)-1); $qry = "SELECT raumtyp, raumtypalternativ FROM lehre.tbl_lehreinheit WHERE lehreinheit_id IN ($leids)"; - if($this->db_query($qry)){ - while($row = $this->db_fetch_object()) + if ($this->db_query($qry)){ + while ($row = $this->db_fetch_object()) { $raumtyp[]=$row->raumtyp; $raumtyp[]=$row->raumtypalternativ; @@ -1768,9 +1729,6 @@ class wochenplan extends basis_db foreach ($gruppe as $g) if ($g!='') $gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g); - //$gruppen=mb_substr($gruppen,3); - //Lehrverband - //$lehrverband=array_unique($lehrverband); $lvb=''; foreach ($lehrverband as $l) { @@ -1781,20 +1739,16 @@ class wochenplan extends basis_db if ($l->grp!='' && $l->grp!=' ' && $l->grp!=null) $lvb.=" AND (gruppe=".$this->db_add_param($l->grp)." OR gruppe IS NULL OR gruppe='')"; } - //if ($gruppen!='') - // $lvb.=' AND gruppe_kurzbz IS NULL'; $lvb.=')'; } $lvb=mb_substr($lvb,3); - //if($rtype=='') - // $rtype='1=1'; // Raeume die in Frage kommen, aufgrund der Raumtypen $sql_query="SELECT DISTINCT ort_kurzbz, hierarchie FROM public.tbl_ort JOIN public.tbl_ortraumtyp USING (ort_kurzbz) WHERE ($rtype) AND aktiv AND ort_kurzbz NOT LIKE '\\\\_%' ORDER BY hierarchie,ort_kurzbz"; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); - while($row = $this->db_fetch_object()) + while ($row = $this->db_fetch_object()) $orte[]=$row->ort_kurzbz; // Raster vorbereiten @@ -1810,10 +1764,10 @@ class wochenplan extends basis_db $sql_query="SELECT DISTINCT datum, stunde FROM $stpl_view WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND ($lkt $gruppen OR ($lvb) ) AND unr!=".$this->db_add_param($unr); - //echo $sql_query; - if(!$this->db_query($sql_query)) + + if (!$this->db_query($sql_query)) die($this->db_last_error()); - while($row = $this->db_fetch_object()) + while ($row = $this->db_fetch_object()) { $mtag=mb_substr($row->datum, 8,2); $month=mb_substr($row->datum, 5,2); @@ -1825,16 +1779,15 @@ class wochenplan extends basis_db // Stundenplanabfrage bauen (Wo ist besetzt?) $sql_query="SELECT DISTINCT datum, stunde, ort_kurzbz FROM $stpl_view WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." AND unr!=".$this->db_add_param($unr); - //echo $sql_query; NATURAL JOIN tbl_ortraumtyp AND ($rtype) " // Reservierungen beruecksichtigen $sql_query.=" UNION SELECT DISTINCT datum, stunde, ort_kurzbz FROM campus.tbl_reservierung WHERE datum>=".$this->db_add_param($this->datum_begin)." AND datum<".$this->db_add_param($this->datum_end)." "; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); - while($row = $this->db_fetch_object()) + while ($row = $this->db_fetch_object()) { $mtag=mb_substr($row->datum, 8,2); $month=mb_substr($row->datum, 5,2); @@ -1859,12 +1812,12 @@ class wochenplan extends basis_db // Besetzte Raueme eintragen foreach($raster[$t][$s]->ort as $ort) { - if(in_array($ort, $orte)) + if (in_array($ort, $orte)) $this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1); } // Gruppenkollision eintragen - if($raster[$t][$s]->kollision) + if ($raster[$t][$s]->kollision) { foreach($this->std_plan[$t][$s][0]->frei_orte as $ort=>$value) { @@ -1875,12 +1828,12 @@ class wochenplan extends basis_db // Blockung beruecksichtigen for ($b=1;$b<$block && ($s+$block)<=($max_stunde+1);$b++) { - if(!$raster[$t][$s+$b]->kollision) + if (!$raster[$t][$s+$b]->kollision) { //Wenn keine Gruppenkollision vorhanden ist, nur die Raumkollision eintragen foreach($raster[$t][$s+$b]->ort as $ort) { - if(in_array($ort, $orte)) + if (in_array($ort, $orte)) $this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1); } } @@ -1929,7 +1882,7 @@ class wochenplan extends basis_db $this->datum_end=date("Y-m-d",$this->datum_end); // Stundentafel abfragen $sql_query='SELECT min(stunde),max(stunde) FROM lehre.tbl_stunde'; - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) die($this->db_last_error()); $row = $this->db_fetch_object(); $min_stunde=$row->min; @@ -1942,13 +1895,11 @@ class wochenplan extends basis_db $lvas.=" OR lehreinheit_id=".$this->db_add_param($id); $lvas=mb_substr($lvas,3); $sql_query.=$lvas; - //$this->errormsg.=$sql_query; - //return false; - if(!$this->db_query($sql_query)) + + if (!$this->db_query($sql_query)) die($this->db_last_error()); $num_rows_lva=$this->db_num_rows(); - // Arrays setzen - //$wochenrythmus=array(); + $verplant=array(); $block=array(); $semesterstunden=array(); @@ -1975,42 +1926,19 @@ class wochenplan extends basis_db $block[$i]=$row->stundenblockung; $wochenrythmus[$i]=$row->wochenrythmus; $semesterstunden[$i]=(integer)$row->semesterstunden; - //$this->errormsg.='SS:'.$semesterstunden[$i]; } - /*// verplante Stunden eindeutig? - $verpl=$verplant[0]; - $verplant=array_unique($verplant); - if (count($verplant)==1) - $verplant=$verpl; //verplant[0]; - else - { - $this->errormsg.='Verplante Stunden sind nicht eindeutig!'; - return false; - } - //$this->errormsg.='Verplant:'.$verplant; - // Semesterstunden eindeutig? - $semstd=$semesterstunden[0]; - $semesterstunden=array_unique($semesterstunden); - //$this->errormsg.='SS:'.$semesterstunden[0]; - if (count($semesterstunden)==1) - $semesterstunden=$semstd;//semesterstunden[0]; - else - { - $this->errormsg.='Semesterstunden sind nicht eindeutig!'; - return false; - } - //$this->errormsg.='SS:'.$semesterstunden;*/ + // Blockung eindeutig? $blck=$block[0]; $block=array_unique($block); if (count($block)==1) - $block=$blck; //block[0]; + $block=$blck; else { $this->errormsg.='Blockung ist nicht eindeutig!'; return false; } - //$this->errormsg.='Block:'.$block; + // Offene Stunden eindeutig? $os=$offenestunden[0]; $offenestunden=array_unique($offenestunden); @@ -2023,6 +1951,7 @@ class wochenplan extends basis_db $this->errormsg.='Offene Stunden sind nicht eindeutig!'; return false; } + // Wochenrythmus eindeutig? $wr=$wochenrythmus[0]; $wochenrythmus=array_unique($wochenrythmus); @@ -2050,6 +1979,7 @@ class wochenplan extends basis_db $lkt=mb_substr($lkt,3); //Dummy Lektor kollidiert nicht $lkt='(('.$lkt.') AND mitarbeiter_uid not in ('.$this->db_implode4SQL(unserialize(KOLLISIONSFREIE_USER)).'))'; + // Gruppen $gruppen=''; if (isset($gruppe)) @@ -2057,10 +1987,9 @@ class wochenplan extends basis_db $gruppe=array_unique($gruppe); foreach ($gruppe as $g) $gruppen.=" OR gruppe_kurzbz=".$this->db_add_param($g); - //$gruppen=mb_substr($gruppen,3); } + //Lehrverband - //$lehrverband=array_unique($lehrverband); $lvb=''; foreach ($lehrverband as $l) { @@ -2079,8 +2008,8 @@ class wochenplan extends basis_db // Raeume die in Frage kommen aufgrund der Raumtypen $sql_query="SELECT DISTINCT ort_kurzbz, hierarchie FROM public.tbl_ort JOIN public.tbl_ortraumtyp USING (ort_kurzbz) WHERE ($rtype) AND aktiv AND ort_kurzbz NOT LIKE '\\\\_%' ORDER BY hierarchie,ort_kurzbz"; // - //die($sql_query); - if(!$this->db_query($sql_query)) + + if (!$this->db_query($sql_query)) { $this->errormsg=$this->db_last_error(); return false; @@ -2132,20 +2061,20 @@ class wochenplan extends basis_db if (is_numeric($unr)) $sql_query.=" AND unr!=".$this->db_add_param($unr); - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) { $this->errormsg = $this->db_last_error().$sql_query; return false; } // Kollisionen ins Raster eintragen - while($row = $this->db_fetch_object()) + while ($row = $this->db_fetch_object()) { $mtag=mb_substr($row->datum, 8,2); $month=mb_substr($row->datum, 5,2); $jahr=mb_substr($row->datum, 0,4); $tag=date("w",mktime(12,0,0,$month,$mtag,$jahr)); - if(!isset($raster[$tag][$row->stunde])) + if (!isset($raster[$tag][$row->stunde])) $raster[$tag][$row->stunde]=new stdClass(); $raster[$tag][$row->stunde]->kollision=true; } @@ -2162,13 +2091,13 @@ class wochenplan extends basis_db $sql_query.=" UNION SELECT distinct datum, stunde, ort_kurzbz FROM campus.tbl_reservierung WHERE datum>=".$this->db_add_param($datum_begin)." AND datum<".$this->db_add_param($datum_end); - if(!$this->db_query($sql_query)) + if (!$this->db_query($sql_query)) { $this->errormsg = $this->db_last_error().$sql_query; return false; } - while($row = $this->db_fetch_object()) + while ($row = $this->db_fetch_object()) { $mtag=mb_substr($row->datum, 8,2); $month=mb_substr($row->datum, 5,2); @@ -2188,7 +2117,7 @@ class wochenplan extends basis_db //Blockung passt in die Maximalstundenanzahl if (($s+$blck)<=($max_stunde+1)) { - if($count==0) + if ($count==0) { // Freie Orte beim 1. Durchlauf zuteilen foreach($orte as $ort) @@ -2198,18 +2127,18 @@ class wochenplan extends basis_db // Besetzte Orte eintragen foreach ($raster[$t][$s]->ort as $ort) { - if(in_array($ort, $orte)) + if (in_array($ort, $orte)) $this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1); } //Kollision mit Gruppe - if($raster[$t][$s]->kollision) + if ($raster[$t][$s]->kollision) { - if(isset($this->std_plan[$t][$s][0]->frei_orte)) + if (isset($this->std_plan[$t][$s][0]->frei_orte)) { foreach ($this->std_plan[$t][$s][0]->frei_orte as $ort=>$value) { - if(in_array($ort, $orte)) + if (in_array($ort, $orte)) $this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1); } } @@ -2223,13 +2152,13 @@ class wochenplan extends basis_db // Wenn keine Gruppenkollision vorhanden ist, dann die kollidierenden Raeume eintragen foreach ($raster[$t][$s+$b]->ort as $ort) { - if(in_array($ort, $orte)) + if (in_array($ort, $orte)) $this->std_plan[$t][$s][0]->frei_orte[$ort]=(isset($this->std_plan[$t][$s][0]->frei_orte[$ort])?$this->std_plan[$t][$s][0]->frei_orte[$ort]+1:1); } } else { - if(isset($this->std_plan[$t][$s][0]->frei_orte)) + if (isset($this->std_plan[$t][$s][0]->frei_orte)) { // Bei Gruppenkollision den Wert bei allen Raumen erhoehen foreach ($this->std_plan[$t][$s][0]->frei_orte as $ort=>$value) @@ -2256,7 +2185,7 @@ class wochenplan extends basis_db $datum_begin=date("Y-m-d",$datum_begin); $datum_end=date("Y-m-d",$datum_end); $count++; - } while($type=='lva_multi_search' && $rest>0); + } while ($type=='lva_multi_search' && $rest>0); return true; } @@ -2278,7 +2207,7 @@ class wochenplan extends basis_db $blocked=array(); $gruppiert=array(); - for ($k=0; $k<$num_rows_stunde; $k++) + for ($k=0; $k<$num_rows_stunde; $k++) { $row = $this->db_fetch_object($this->stunde, $k); $j=$row->stunde; // get id of hour @@ -2319,7 +2248,7 @@ class wochenplan extends basis_db $lehrverband[]=$lvb; // Lehrfach $lf=$lehrstunde->lehrfach; - //echo "\n!!!!Lehrfach $lf\n"; + if (isset($lehrstunde->lehrform)) $lf.='-'.$lehrstunde->lehrform; $lehrfach[]=$lf; @@ -2329,7 +2258,7 @@ class wochenplan extends basis_db // Unterrichtsnummer (Kollision?) $unr=array_unique($unr); - if(!isset($kollision)) + if (!isset($kollision)) $kollision=0; $kollision+=count($unr); @@ -2344,13 +2273,10 @@ class wochenplan extends basis_db } else $lkt=$lektor[0]; - //echo $lkt; // Lehrverband if ($this->type!='verband') { -// $lehrverband=array_unique($lehrverband); -// sort($lehrverband); $lvb=''; foreach ($lehrverband as $l) $lvb.=$l.' '; @@ -2361,9 +2287,9 @@ class wochenplan extends basis_db $row = $this->db_fetch_object($this->stunde, $k); $start_time=$row->beginn; - for($idx=0;$idxstd_plan[$i][$j]);$idx++) + for ($idx=0;$idxstd_plan[$i][$j]);$idx++) { - if(!isset($this->std_plan[$i][$j][$idx])) + if (!isset($this->std_plan[$i][$j][$idx])) { continue; } @@ -2379,7 +2305,7 @@ class wochenplan extends basis_db * Es wird nur der erste Eintrag ausgegeben. Die restlichen werden uebersprungen da * die Lektoren, Gruppen und Raeume bereits zum Ersten Eintrag hinzugefuegt wurden. */ - if(isset($gruppiert[$this->std_plan[$i][$j][$idx]->unr]) && $gruppiert[$this->std_plan[$i][$j][$idx]->unr]>0) + if (isset($gruppiert[$this->std_plan[$i][$j][$idx]->unr]) && $gruppiert[$this->std_plan[$i][$j][$idx]->unr]>0) { $gruppiert[$this->std_plan[$i][$j][$idx]->unr]--; continue; @@ -2394,18 +2320,18 @@ class wochenplan extends basis_db * ermittelt und dann ebenfalls uebersprungen */ $blockcontinue=false; - if(isset($blocked[$this->std_plan[$i][$j][$idx]->unr]) && $blocked[$this->std_plan[$i][$j][$idx]->unr]>0) + if (isset($blocked[$this->std_plan[$i][$j][$idx]->unr]) && $blocked[$this->std_plan[$i][$j][$idx]->unr]>0) { $blocked[$this->std_plan[$i][$j][$idx]->unr]--; $blockcontinue=true; } - if(!$blockcontinue) + if (!$blockcontinue) { // Blockungen ueber mehrere Stunden erkennen $blockflag=false; - for($blockstunden=1;$blockstunden<=$num_rows_stunde;$blockstunden++) + for ($blockstunden=1;$blockstunden<=$num_rows_stunde;$blockstunden++) { if (isset($this->std_plan[$i][$j+$blockstunden][$idx]) && isset($this->std_plan[$i][$j+$blockstunden][$idx]->stundenplan_id) && ($this->std_plan[$i][$j][$idx]->unr == $this->std_plan[$i][$j+$blockstunden][$idx]->unr) @@ -2413,7 +2339,7 @@ class wochenplan extends basis_db && !($this->std_plan[$i][$j][$idx]->reservierung && $this->std_plan[$i][$j][$idx]->lektor!=$this->std_plan[$i][$j+$blockstunden][$idx]->lektor)) { - if(isset($blocked[$this->std_plan[$i][$j][$idx]->unr])) + if (isset($blocked[$this->std_plan[$i][$j][$idx]->unr])) $blocked[$this->std_plan[$i][$j][$idx]->unr]++; else $blocked[$this->std_plan[$i][$j][$idx]->unr]=1; @@ -2424,7 +2350,7 @@ class wochenplan extends basis_db } else { - if(!$blockflag) + if (!$blockflag) { $row = $this->db_fetch_object($this->stunde, $k); $stunden_arr[]=$row->stunde; @@ -2441,13 +2367,13 @@ class wochenplan extends basis_db //Wenn im selben Raum mehrere Lektoren sind bzw mehrere Gruppen //dann werden diese zusammengruppiert und als ein Eintrag angezeigt - for($idx1=0;$idx1std_plan[$i][$j]);$idx1++) + for ($idx1=0;$idx1std_plan[$i][$j]);$idx1++) { - if($idx!=$idx1) + if ($idx!=$idx1) { - if($this->kannGruppieren($i,$j,$idx,$idx1)) + if ($this->kannGruppieren($i,$j,$idx,$idx1)) { - if(isset($gruppiert[$this->std_plan[$i][$j][$idx]->unr])) + if (isset($gruppiert[$this->std_plan[$i][$j][$idx]->unr])) $gruppiert[$this->std_plan[$i][$j][$idx]->unr]++; else $gruppiert[$this->std_plan[$i][$j][$idx]->unr]=1; @@ -2455,21 +2381,21 @@ class wochenplan extends basis_db //Bezeichnungen zusammenfuehren //Lektoren - if(!mb_strstr($this->std_plan[$i][$j][$idx1]->lektor,$this->std_plan[$i][$j][$idx]->lektor)) + if (!mb_strstr($this->std_plan[$i][$j][$idx1]->lektor,$this->std_plan[$i][$j][$idx]->lektor)) { $this->std_plan[$i][$j][$idx]->lektor.=' / '.$this->std_plan[$i][$j][$idx1]->lektor; } //Ort - if(!mb_strstr($this->std_plan[$i][$j][$idx1]->ort,$this->std_plan[$i][$j][$idx]->ort)) + if (!mb_strstr($this->std_plan[$i][$j][$idx1]->ort,$this->std_plan[$i][$j][$idx]->ort)) { $this->std_plan[$i][$j][$idx]->ort.=' / '.$this->std_plan[$i][$j][$idx1]->ort; } //Gruppen - if(isset($lehrverband[$idx]) && isset($lehrverband[$idx1])) + if (isset($lehrverband[$idx]) && isset($lehrverband[$idx1])) { - if(!mb_strstr($lehrverband[$idx], $lehrverband[$idx1])) + if (!mb_strstr($lehrverband[$idx], $lehrverband[$idx1])) $lehrverband[$idx].=' / '.$lehrverband[$idx1]; } } @@ -2477,14 +2403,14 @@ class wochenplan extends basis_db } //Geblockte Eintraege werden uebersprungen nachdem die Gruppierung ermittelt wurde - if($blockcontinue) + if ($blockcontinue) { continue; } $start_date=date("d.m.Y",$this->datum); $end_date=$start_date; - if(isset($lehrverband[$idx])) + if (isset($lehrverband[$idx])) $lvb = $lehrverband[$idx]; if ($target=='outlook') { @@ -2596,7 +2522,7 @@ class wochenplan extends basis_db } $this->datum=jump_day($this->datum, 1); } - if($target=='return') + if ($target=='return') return $return; else return true; @@ -2614,8 +2540,8 @@ class wochenplan extends basis_db */ protected function kannGruppieren($tag, $stunde, $idx, $idx1) { - if(isset($this->std_plan[$tag][$stunde][$idx]) && - isset($this->std_plan[$tag][$stunde][$idx1])) + if (isset($this->std_plan[$tag][$stunde][$idx]) && + isset($this->std_plan[$tag][$stunde][$idx1])) { $unr1 = $this->std_plan[$tag][$stunde][$idx]->unr; $unr2 = $this->std_plan[$tag][$stunde][$idx1]->unr; @@ -2624,7 +2550,7 @@ class wochenplan extends basis_db $lektor1 = $this->std_plan[$tag][$stunde][$idx]->lektor; $lektor2 = $this->std_plan[$tag][$stunde][$idx1]->lektor; - if($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2) + if ($unr1==$unr2 && ($ort1==$ort2 || $lektor1==$lektor2) && !$this->std_plan[$tag][$stunde][$idx]->reservierung && !$this->std_plan[$tag][$stunde][$idx1]->reservierung) return true; else @@ -2636,14 +2562,14 @@ class wochenplan extends basis_db protected function searchForId($id, $array) { - foreach ($array as $key => $val) - { - if ($val['unr'] == $id) - { - return $key; - } - } - return false; + foreach ($array as $key => $val) + { + if ($val['unr'] == $id) + { + return $key; + } + } + return false; } /** From 7bcaccee84d12d71d8e052e331debf843841addb Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 27 Mar 2017 16:38:19 +0200 Subject: [PATCH 10/36] =?UTF-8?q?Reservierungen=20im=20CIS=20sind=20nicht?= =?UTF-8?q?=20mehr=20m=C3=B6glich=20wenn=20die=20Stunde=20bereits=20in=20t?= =?UTF-8?q?bl=5Fstundenplandev=20belegt=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lvplan/stpl_week.php | 296 +++++++++++++++---------------- include/wochenplan.class.php | 26 ++- locale/de-AT/lvplan.php | 1 + locale/en-US/lvplan.php | 1 + 4 files changed, 172 insertions(+), 152 deletions(-) diff --git a/cis/private/lvplan/stpl_week.php b/cis/private/lvplan/stpl_week.php index 2a36bae4a..fec76259f 100644 --- a/cis/private/lvplan/stpl_week.php +++ b/cis/private/lvplan/stpl_week.php @@ -20,7 +20,9 @@ * Rudolf Hangl and * Gerald Simane-Sequens . */ - +/** + * Das Script dient zum Navigieren im Stundenplan und zur Reservierung von Raeumen + */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/wochenplan.class.php'); @@ -28,6 +30,7 @@ require_once('../../../include/reservierung.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/ort.class.php'); require_once('../../../include/phrasen.class.php'); +require_once('../../../include/stundenplan.class.php'); $sprache = getSprache(); $p=new phrasen($sprache); @@ -37,14 +40,6 @@ if (!$db = new basis_db()) $uid=get_uid(); -//$type='ort'; -//$ort_kurzbz='EDV6.08'; -//$datum=1102260015; - -// Deutsche Umgebung -//$loc_de=setlocale(LC_ALL, 'de_AT@euro', 'de_AT','de_DE@euro', 'de_DE'); -//setlocale(LC_ALL, $loc_de); - // Variablen uebernehmen if (isset($_GET['type'])) $type=$_GET['type']; @@ -117,23 +112,24 @@ if (isset($_POST['beschreibung'])) if (isset($_POST['titel'])) $titel=$_POST['titel']; -?> +?> - + <?php echo $p->t('lvplan/lehrveranstaltungsplan').' '.CAMPUS_NAME;?> - + + kurzbz.'/cis/init.js.php')) echo ''; } - + // Wenn Seite fertig geladen ist Addons aufrufen echo ' +*/ $dr = DOC_ROOT; $dr = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dr); if($dr=='') @@ -26,10 +40,8 @@ if($dr=='') //Originaldateien des Herstellers echo ''; - echo ''; - //Anpassungen echo ''; From 90e79693176ed073b03a025bcf56254f3cdb63e2 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 28 Mar 2017 11:31:58 +0200 Subject: [PATCH 14/36] Cleanup and replace legacy Code --- content/statistik/abgaengerstatistik.php | 185 ++++++----- .../statistik/abschlusspruefungexport.xls.php | 309 ++++++++++-------- content/statistik/absolventen.xls.php | 156 ++++----- content/statistik/absolventenstatistik.php | 309 +++++++++++------- 4 files changed, 548 insertions(+), 411 deletions(-) diff --git a/content/statistik/abgaengerstatistik.php b/content/statistik/abgaengerstatistik.php index 3c96510b5..aa5c7ae8f 100644 --- a/content/statistik/abgaengerstatistik.php +++ b/content/statistik/abgaengerstatistik.php @@ -29,121 +29,143 @@ if(isset($_GET['stsem'])) $stsem = $_GET['stsem']; else $stsem = ''; - + $db = new basis_db(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen(get_uid()); +if(!$rechte->isBerechtigt('student/stammdaten', null, 's')) + die($rechte->errormsg); -echo ' - +echo ' + - - - - + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); +echo ' + '; +echo "

AbgängerInnenstatistik ".$db->convert_html_chars($stsem); +echo ''.date('d.m.Y').'


'; +echo 'Studiensemester: '; - $studsem = new studiensemester(); - $studsem->getAll(); +foreach ($studsem->studiensemester as $stsemester) +{ + if($stsemester->studiensemester_kurzbz == $stsem) + $selected = 'selected'; + else + $selected = ''; - foreach ($studsem->studiensemester as $stsemester) - { - if($stsemester->studiensemester_kurzbz==$stsem) - $selected='selected'; - else - $selected=''; - - echo ''; - } - echo ' -

'; + echo ''; +} +echo ' +

'; -if($stsem!='') +if ($stsem != '') { $stgs = $rechte->getStgKz(); - - if($stgs[0]=='') - $stgwhere=''; - else - { - $stgwhere=' AND studiengang_kz in('; - foreach ($stgs as $stg) - $stgwhere.="'$stg',"; - $stgwhere = mb_substr($stgwhere,0, mb_strlen($stgwhere)-1); - $stgwhere.=' )'; - } - - $qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz, - (SELECT count(*) FROM public.tbl_prestudent + if (count($stgs) == 0) + $stgwhere = ''; + else + { + $stgwhere = ' AND studiengang_kz in('; + $stgwhere .= $db->db_implode4SQL($stgs); + $stgwhere .= ' )'; + } + + $qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz, + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND studiensemester_kurzbz='".addslashes($stsem)."' - ) AS abgewiesene, - (SELECT count(*) FROM public.tbl_prestudent + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." + ) AS abgewiesene, + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND geschlecht ='m' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' + AND geschlecht ='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS abgewiesene_maennlich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' AND geschlecht ='w' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abgewiesener' + AND geschlecht ='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS abgewiesene_weiblich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS abbrecher, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND geschlecht ='m' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' + AND geschlecht ='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS abbrecher_maennlich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' AND geschlecht ='w' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Abbrecher' + AND geschlecht ='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS abbrecher_weiblich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS unterbrecher, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND geschlecht='m' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' + AND geschlecht='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS unterbrecher_maennlich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' AND geschlecht='w' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Unterbrecher' + AND geschlecht='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS unterbrecher_weiblich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS absolvent, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND geschlecht='m' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND geschlecht='m' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS absolvent_maennlich, - (SELECT count(*) FROM public.tbl_prestudent + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING (person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND geschlecht='w' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND geschlecht='w' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS absolvent_weiblich FROM public.tbl_studiengang stg WHERE studiengang_kz>0 AND studiengang_kz<10000 AND aktiv $stgwhere ORDER BY kurzbzlang; "; - if($db->db_query($qry)) + if ($db->db_query($qry)) { ?> - +
@@ -154,24 +176,24 @@ if($stsem!='') - - - - - - - - - - - - - + + + + + + + + + + + + + - - db_fetch_object()) + + db_fetch_object()) { ?> @@ -190,7 +212,8 @@ if($stsem!='')
StudiengangmwGesamtmwGesamtmwGesamtmwGesamtStudiengangmwGesamtmwGesamtmwGesamtmwGesamt
typ.$row->kurzbz)?> (kurzbzlang ?>)
- diff --git a/content/statistik/abschlusspruefungexport.xls.php b/content/statistik/abschlusspruefungexport.xls.php index f1178abf6..0fb06a720 100644 --- a/content/statistik/abschlusspruefungexport.xls.php +++ b/content/statistik/abschlusspruefungexport.xls.php @@ -1,140 +1,169 @@ -, - * 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/studiensemester.class.php'); -require_once('../../include/Excel/excel.php'); - -$db = new basis_db(); -$user = get_uid(); -$datum_obj = new datum(); -loadVariables($user); - - function writecol($zeile, $i, $content) - { - global $worksheet, $maxlength; - $worksheet->write($zeile, $i, $content); - if(mb_strlen($content)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($content); - } - - //Parameter holen - $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; - $semester = isset($_GET['semester'])?$_GET['semester']:''; - $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; - - $maxlength= array(); - $zeile=1; - - // Creating a workbook - $workbook = new Spreadsheet_Excel_Writer(); - - // sending HTTP headers - $workbook->send("Abschlusspruefung". "_" . date("d_m_Y") . ".xls"); - $workbook->setVersion(8); - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Abschlusspruefung"); - $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'); - - $stsem = new studiensemester(); - $stsem->load($studiensemester_kurzbz); - - //Zeilenueberschriften ausgeben - $headline=array('Titelpre','Vorname','Nachname','Titelpost','Vorsitz','Pruefer1','Pruefer2','Pruefer3', - 'Abschlussbeurteilung','Typ','Datum','Sponsion','Anmerkung'); - - $i=0; - foreach ($headline as $title) - { - $worksheet->write(0,$i,$title, $format_bold); - $maxlength[$i]=mb_strlen($title); - $i++; - } - - // Daten holen - $qry = "SELECT - titelpre, vorname, nachname, titelpost, - (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=vorsitz) as vorsitz, - (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1, - (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2, - (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3, - (SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz=tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung, tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung - FROM - lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person, - lehre.tbl_pruefungstyp - WHERE - tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND - tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND - tbl_studentlehrverband.studiengang_kz='".addslashes($studiengang_kz)."' AND - tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND - tbl_person.person_id = tbl_benutzer.person_id AND - tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz - "; - if($semester!='') - $qry.= " AND tbl_studentlehrverband.semester='".addslashes($semester)."'"; - $qry.=' ORDER BY nachname, vorname'; - $zeile=1; - if($db->db_query($qry)) - { - while($row = $db->db_fetch_object()) - { - $i=0; - - writecol($zeile, $i++, $row->titelpre); - writecol($zeile, $i++, $row->vorname); - writecol($zeile, $i++, $row->nachname); - writecol($zeile, $i++, $row->titelpost); - writecol($zeile, $i++, $row->vorsitz); - writecol($zeile, $i++, $row->pruefer1); - writecol($zeile, $i++, $row->pruefer2); - writecol($zeile, $i++, $row->pruefer3); - writecol($zeile, $i++, $row->bezeichnung); - writecol($zeile, $i++, $row->beschreibung); - writecol($zeile, $i++, $row->datum); - writecol($zeile, $i++, $row->sponsion); - writecol($zeile, $i++, $row->anmerkung); - - $zeile++; - } - } - else - die('Fehler in Qry: '.$qry); - //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); - - $workbook->close(); -?> +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Exportiert die Abschlusspruefungen in ein Excel File. + * Die zu exportierenden Spalten werden per GET uebergeben. + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/datum.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/Excel/excel.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +$uid = get_uid(); + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +$db = new basis_db(); +$user = get_uid(); +$datum_obj = new datum(); +loadVariables($user); + +/** + * Schreibt eine Spalte ins Excel und speichert die maximale Spaltenbreite + * + * @param int $zeile Zeile im Excel. + * @param int $i Spalte im Excel. + * @param string $content Inhalt. + * @return void + */ +function writecol($zeile, $i, $content) +{ + global $worksheet, $maxlength; + $worksheet->write($zeile, $i, $content); + if(mb_strlen($content) > $maxlength[$i]) + $maxlength[$i] = mb_strlen($content); +} + +//Parameter holen +$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; +$semester = isset($_GET['semester'])?$_GET['semester']:''; +$studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; + +if($studiengang_kz == '') + die('studiengang_kz is not set'); +if($studiensemester_kurzbz == '') + die('studiensemester_kurzbz is not set'); + +$maxlength = array(); +$zeile = 1; + +if(!$rechte->isBerechtigt('student/stammdaten', $studiengang_kz, 's')) + die($rechte->errormsg); + +// Creating a workbook +$workbook = new Spreadsheet_Excel_Writer(); + +// sending HTTP headers +$workbook->send("Abschlusspruefung". "_".date("d_m_Y").".xls"); +$workbook->setVersion(8); +// Creating a worksheet +$worksheet =& $workbook->addWorksheet("Abschlusspruefung"); +$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'); + +$stsem = new studiensemester(); +$stsem->load($studiensemester_kurzbz); + +//Zeilenueberschriften ausgeben +$headline = array('Titelpre', 'Vorname', 'Nachname', 'Titelpost', 'Vorsitz', 'Pruefer1', 'Pruefer2', 'Pruefer3', + 'Abschlussbeurteilung', 'Typ', 'Datum', 'Sponsion', 'Anmerkung'); + +$i = 0; +foreach ($headline as $title) +{ + $worksheet->write(0, $i, $title, $format_bold); + $maxlength[$i] = mb_strlen($title); + $i++; +} + +// Daten holen +$qry = "SELECT + titelpre, vorname, nachname, titelpost, + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') + || ' ' || COALESCE(titelpost,'') FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) + WHERE uid=vorsitz) as vorsitz, + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') + || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer1) as pruefer1, + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') + || ' ' || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer2) as pruefer2, + (SELECT COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' + || COALESCE(titelpost,'') FROM public.tbl_person WHERE person_id=pruefer3) as pruefer3, + (SELECT bezeichnung FROM lehre.tbl_abschlussbeurteilung + WHERE tbl_abschlussbeurteilung.abschlussbeurteilung_kurzbz + = tbl_abschlusspruefung.abschlussbeurteilung_kurzbz) as bezeichnung, + tbl_pruefungstyp.beschreibung, datum, sponsion, tbl_abschlusspruefung.anmerkung + FROM + lehre.tbl_abschlusspruefung, public.tbl_studentlehrverband, public.tbl_benutzer, public.tbl_person, + lehre.tbl_pruefungstyp + WHERE + tbl_abschlusspruefung.student_uid=public.tbl_studentlehrverband.student_uid AND + tbl_studentlehrverband.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND + tbl_studentlehrverband.studiengang_kz=".$db->db_add_param($studiengang_kz)." AND + tbl_benutzer.uid = tbl_abschlusspruefung.student_uid AND + tbl_person.person_id = tbl_benutzer.person_id AND + tbl_abschlusspruefung.pruefungstyp_kurzbz = tbl_pruefungstyp.pruefungstyp_kurzbz + "; +if ($semester != '') + $qry .= " AND tbl_studentlehrverband.semester=".$db->db_add_param($semester); +$qry .= ' ORDER BY nachname, vorname'; +$zeile = 1; +if ($db->db_query($qry)) +{ + while ($row = $db->db_fetch_object()) + { + $i = 0; + + writecol($zeile, $i++, $row->titelpre); + writecol($zeile, $i++, $row->vorname); + writecol($zeile, $i++, $row->nachname); + writecol($zeile, $i++, $row->titelpost); + writecol($zeile, $i++, $row->vorsitz); + writecol($zeile, $i++, $row->pruefer1); + writecol($zeile, $i++, $row->pruefer2); + writecol($zeile, $i++, $row->pruefer3); + writecol($zeile, $i++, $row->bezeichnung); + writecol($zeile, $i++, $row->beschreibung); + writecol($zeile, $i++, $row->datum); + writecol($zeile, $i++, $row->sponsion); + writecol($zeile, $i++, $row->anmerkung); + + $zeile++; + } +} +else + die('Fehler bei Datenbankabfrage'); + +//Die Breite der Spalten setzen +foreach($maxlength as $i => $breite) + $worksheet->setColumn($i, $i, $breite + 2); + +$workbook->close(); diff --git a/content/statistik/absolventen.xls.php b/content/statistik/absolventen.xls.php index 699e25841..975d974b5 100644 --- a/content/statistik/absolventen.xls.php +++ b/content/statistik/absolventen.xls.php @@ -29,13 +29,24 @@ require_once('../../include/functions.inc.php'); require_once('../../include/Excel/excel.php'); require_once('../../include/studiengang.class.php'); require_once('../../include/studiensemester.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if (!$rechte->isBerechtigt('student/stammdaten', null, 's')) + die($rechte->errormsg); //Parameter holen $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; $db = new basis_db(); -if($studiensemester_kurzbz!='') +if ($studiensemester_kurzbz != '') { + if (!check_stsem($studiensemester_kurzbz)) + die('Studiensemester is ungueltig'); + // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); $workbook->setVersion(8); @@ -45,113 +56,112 @@ if($studiensemester_kurzbz!='') // Creating a worksheet $worksheet =& $workbook->addWorksheet("Absolventenstatistik"); $worksheet->setInputEncoding('utf-8'); - + $format_bold =& $workbook->addFormat(); $format_bold->setBold(); - - $stg_arr=array(); + + $stg_arr = array(); $studiengang = new studiengang(); $studiengang->getAll('typ, kurzbzlang', false); foreach ($studiengang->result as $row) $stg_arr[$row->studiengang_kz] = $row->kuerzel; - $spalte=0; - $zeile=0; - - $worksheet->write($zeile,$spalte,'Absolventenstatistik '.$studiensemester_kurzbz.' erstellt am '.date("d.m.Y"), $format_bold); - - $spalte=0; + $spalte = 0; + $zeile = 0; + + $worksheet->write($zeile, $spalte, 'Absolventenstatistik '.$db->convert_html_chars($studiensemester_kurzbz). + ' erstellt am '.date("d.m.Y"), $format_bold); + + $spalte = 0; $zeile++; - - $worksheet->write($zeile,$spalte,'UID',$format_bold); - $maxlength[$spalte]=3; - $worksheet->write($zeile,++$spalte,'NACHNAME',$format_bold); - $maxlength[$spalte]=8; - $worksheet->write($zeile,++$spalte,'VORNAME',$format_bold); - $maxlength[$spalte]=7; - $worksheet->write($zeile,++$spalte,'STG',$format_bold); - $maxlength[$spalte]=3; - $worksheet->write($zeile,++$spalte,'GESCHLECHT',$format_bold); - $maxlength[$spalte]=10; - + + $worksheet->write($zeile, $spalte, 'UID', $format_bold); + $maxlength[$spalte] = 3; + $worksheet->write($zeile, ++$spalte, 'NACHNAME', $format_bold); + $maxlength[$spalte] = 8; + $worksheet->write($zeile, ++$spalte, 'VORNAME', $format_bold); + $maxlength[$spalte] = 7; + $worksheet->write($zeile, ++$spalte, 'STG', $format_bold); + $maxlength[$spalte] = 3; + $worksheet->write($zeile, ++$spalte, 'GESCHLECHT', $format_bold); + $maxlength[$spalte] = 10; + // Daten holen - $qry = "SELECT - uid, vorname, nachname, studiengang_kz, geschlecht - FROM - campus.vw_student - WHERE - public.get_rolle_prestudent (prestudent_id, '$studiensemester_kurzbz')='Absolvent' + $qry = "SELECT + uid, vorname, nachname, studiengang_kz, geschlecht + FROM + campus.vw_student + WHERE + public.get_rolle_prestudent (prestudent_id, ".$db->db_add_param($studiensemester_kurzbz).")='Absolvent' ORDER BY studiengang_kz, nachname, vorname"; - if($db->db_query($qry)) + if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + while ($row = $db->db_fetch_object()) { $zeile++; - $spalte=0; - - $worksheet->write($zeile,$spalte,$row->uid); - if(strlen($row->uid)>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($row->uid); - - $worksheet->write($zeile,++$spalte, $row->nachname); - if(strlen($row->nachname)>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($row->nachname); - - $worksheet->write($zeile,++$spalte, $row->vorname); - if(strlen($row->vorname)>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($row->vorname); - - $worksheet->write($zeile,++$spalte, $stg_arr[$row->studiengang_kz]); - if(strlen($stg_arr[$row->studiengang_kz])>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($stg_arr[$row->studiengang_kz]); - - $worksheet->write($zeile,++$spalte, $row->geschlecht); - if(strlen($row->geschlecht)>$maxlength[$spalte]) - $maxlength[$spalte]=strlen($row->geschlecht); + $spalte = 0; + + $worksheet->write($zeile, $spalte, $row->uid); + if (strlen($row->uid) > $maxlength[$spalte]) + $maxlength[$spalte] = strlen($row->uid); + + $worksheet->write($zeile, ++$spalte, $row->nachname); + if (strlen($row->nachname) > $maxlength[$spalte]) + $maxlength[$spalte] = strlen($row->nachname); + + $worksheet->write($zeile, ++$spalte, $row->vorname); + if (strlen($row->vorname) > $maxlength[$spalte]) + $maxlength[$spalte] = strlen($row->vorname); + + $worksheet->write($zeile, ++$spalte, $stg_arr[$row->studiengang_kz]); + if (strlen($stg_arr[$row->studiengang_kz]) > $maxlength[$spalte]) + $maxlength[$spalte] = strlen($stg_arr[$row->studiengang_kz]); + + $worksheet->write($zeile, ++$spalte, $row->geschlecht); + if (strlen($row->geschlecht) > $maxlength[$spalte]) + $maxlength[$spalte] = strlen($row->geschlecht); } } - else - die('Fehlerhafte Qry:'.$qry); - + else + die('Fehler bei Datenbankabfrage'); + //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); - + foreach($maxlength as $i => $breite) + $worksheet->setColumn($i, $i, $breite + 2); + $workbook->close(); } -else +else { - echo ' - + echo ' - Absolventen - - + Absolventen + +

Absolventenstatistik

'; - + echo '
'; echo 'Studiensemester: "; echo " "; echo "
"; } -?> \ No newline at end of file diff --git a/content/statistik/absolventenstatistik.php b/content/statistik/absolventenstatistik.php index cdeba6c1c..f037ffffd 100644 --- a/content/statistik/absolventenstatistik.php +++ b/content/statistik/absolventenstatistik.php @@ -21,7 +21,7 @@ */ /* * Erstellt eine Liste mit den Absolventen eines Studiensemesters - * Aufteilung in + * Aufteilung in * - Anzahl Gesamt * - Prozent Anteil * - Vollzeit/Berufsbegleitend @@ -33,6 +33,12 @@ require_once('../../include/studiensemester.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/functions.inc.php'); +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); +if(!$rechte->isBerechtigt('student/stammdaten', null, 's')) + die($rechte->errormsg); + if(isset($_GET['stsem'])) $stsem = $_GET['stsem']; else @@ -40,39 +46,54 @@ else $stsem_obj = new studiensemester(); $stsem = $stsem_obj->getaktorNext(); } -echo ' - +$db = new basis_db(); +echo ' + - - - - + + '; +include('../../include/meta/jquery.php'); +include('../../include/meta/jquery-tablesorter.php'); +echo ' + '; +echo "

AbsolventInnenstatistik ".$db->convert_html_chars($stsem); +echo ''.date('d.m.Y').'


'; +echo '
Studiensemester: '; - $studsem = new studiensemester(); - $studsem->getAll(); - - foreach ($studsem->studiensemester as $stsemester) - { - if($stsemester->studiensemester_kurzbz==$stsem) - $selected='selected'; - else - $selected=''; - - echo ''; - } - echo ' -


'; - -if($stsem!='') +foreach ($studsem->studiensemester as $stsemester) { - echo " + if($stsemester->studiensemester_kurzbz == $stsem) + $selected = 'selected'; + else + $selected = ''; + + echo ''; +} +echo ' +

'; + +if ($stsem != '') +{ + echo "
@@ -98,34 +119,59 @@ if($stsem!='') "; //Bachelor $qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) a) AS gesamt_stg, - - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='b' + + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='b' ) a) AS gesamt_alle, - - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB' + + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='BB' ) a) AS bb, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='VZ' ) a) AS vz, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w' ) a) AS w, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' ) a) AS m, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND nation_code='A' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) + JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND nation_code='A' ) a) AS herkunft_at, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND eu AND nation_code<>'A' + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) + JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." + AND geschlecht='m' AND eu AND nation_code<>'A' ) a) AS herkunft_eu, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND NOT eu + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent + JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) + JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND NOT eu ) a) AS herkunft_noteu, true FROM @@ -133,25 +179,24 @@ if($stsem!='') WHERE studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='b' ORDER BY typ, kurzbzlang; "; - $db = new basis_db(); - if($db->db_query($qry)) + + if ($db->db_query($qry)) { - - $gesamt=0; - $gesamt_prozent=0; - $gesamt_bb=0; - $gesamt_vz=0; - $gesamt_m=0; - $gesamt_w=0; - $gesamt_at=0; - $gesamt_eu=0; - $gesamt_noteu=0; - while($row = $db->db_fetch_object()) + $gesamt = 0; + $gesamt_prozent = 0; + $gesamt_bb = 0; + $gesamt_vz = 0; + $gesamt_m = 0; + $gesamt_w = 0; + $gesamt_at = 0; + $gesamt_eu = 0; + $gesamt_noteu = 0; + while ($row = $db->db_fetch_object()) { echo ''; echo ''; echo ""; - $prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0); + $prozent = ($row->gesamt_alle != 0?$row->gesamt_stg / $row->gesamt_alle * 100:0); echo ""; echo ""; echo ""; @@ -159,9 +204,9 @@ if($stsem!='') echo ""; echo ""; echo ""; - echo ""; - $gesamt+=$row->gesamt_stg; - $gesamt_prozent+=$prozent; + echo "\n"; + $gesamt += $row->gesamt_stg; + $gesamt_prozent += $prozent; $gesamt_bb += $row->bb; $gesamt_vz += $row->vz; $gesamt_m += $row->m; @@ -180,52 +225,82 @@ if($stsem!='') echo ""; echo ""; echo ""; - echo ""; - + echo "\n"; } - + echo ' +
 ".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %$row->bb / $row->vz$row->m$row->herkunft_at$row->herkunft_eu$row->herkunft_noteu
$gesamt_at$gesamt_eu$gesamt_noteu
'; + //Master - echo ' -
MasterStudiengängeAbsolut / %BB / VZmwÖsterreichEUNicht-EU
+ + + + + + + + + + + + + + + + + + + + + + + "; + $qry = "SELECT studiengang_kz, kurzbz, typ, kurzbzlang, bezeichnung, orgform_kurzbz, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) AS gesamt_stg, - - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='m' - ) AS gesamt_alle, - + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB' + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE status_kurzbz='Absolvent' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='m' + ) AS gesamt_alle, + + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='BB' ) AS bb, (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz='VZ' ) AS vz, - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w' + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w' ) AS w, - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' ) AS m, - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND nation_code='A' + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND nation_code='A' ) AS herkunft_at, - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND eu AND nation_code<>'A' + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." + AND geschlecht='m' AND eu AND nation_code<>'A' ) AS herkunft_eu, - (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' AND NOT eu + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Absolvent' + AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' AND NOT eu ) AS herkunft_noteu, true FROM @@ -233,25 +308,25 @@ if($stsem!='') WHERE studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='m' ORDER BY typ, kurzbzlang; "; - - if($db->db_query($qry)) + + if ($db->db_query($qry)) { - - $gesamt=0; - $gesamt_prozent=0; - $gesamt_bb=0; - $gesamt_vz=0; - $gesamt_m=0; - $gesamt_w=0; - $gesamt_at=0; - $gesamt_eu=0; - $gesamt_noteu=0; - while($row = $db->db_fetch_object()) + $gesamt = 0; + $gesamt_prozent = 0; + $gesamt_bb = 0; + $gesamt_vz = 0; + $gesamt_m = 0; + $gesamt_w = 0; + $gesamt_at = 0; + $gesamt_eu = 0; + $gesamt_noteu = 0; + + while ($row = $db->db_fetch_object()) { echo ''; echo ''; echo ""; - $prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0); + $prozent = ($row->gesamt_alle != 0?$row->gesamt_stg / $row->gesamt_alle * 100:0); echo ""; echo ""; echo ""; @@ -259,9 +334,9 @@ if($stsem!='') echo ""; echo ""; echo ""; - echo ""; - $gesamt+=$row->gesamt_stg; - $gesamt_prozent+=$prozent; + echo "\n"; + $gesamt += $row->gesamt_stg; + $gesamt_prozent += $prozent; $gesamt_bb += $row->bb; $gesamt_vz += $row->vz; $gesamt_m += $row->m; @@ -270,6 +345,7 @@ if($stsem!='') $gesamt_eu += $row->herkunft_eu; $gesamt_noteu += $row->herkunft_noteu; } + echo ''; echo ''; echo ""; @@ -280,8 +356,7 @@ if($stsem!='') echo ""; echo ""; echo ""; - echo ""; - + echo "\n"; } echo '
Anteil an GesamtStudienartGeschlechtStaatsbürgerschaft
MasterStudiengängeAbsolut / %BB / VZmwÖsterreichEUNicht-EU
 ".mb_strtoupper($row->typ.$row->kurzbz)." ($row->kurzbzlang)$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %$row->bb / $row->vz$row->m$row->herkunft_at$row->herkunft_eu$row->herkunft_noteu
SUMME $gesamt_at$gesamt_eu$gesamt_noteu
'; } From bc9e513e2dfe101d7193c2388a5b5d3b7144a797 Mon Sep 17 00:00:00 2001 From: Gerry Raab Date: Wed, 29 Mar 2017 02:53:38 +0200 Subject: [PATCH 15/36] Pruefungsanmeldung: add insertamum, display on Document --- .../pruefungsanmeldungen_liste.pdf.php | 7 +- include/pruefungsanmeldung.class.php | 65 ++++++++++--------- system/dbupdate_3.3.php | 13 ++++ 3 files changed, 53 insertions(+), 32 deletions(-) diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php index 7a0b14b13..9e8bfd891 100755 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.pdf.php @@ -135,7 +135,12 @@ if(!empty($anmeldungen)) $date = $datum->formatDatum($prfTermin->von,"d.m.Y - H:i"); $count++; } - $date = $datum->formatDatum($prfTermin->von,"d.m.Y"); + // Es soll das Datum der Anmeldung angezeigt werden + if ($anmeldung->datum_anmeldung) + $date = $datum->formatDatum($anmeldung->datum_anmeldung, "d.m.Y"); + else + $date = ''; + $data[] = array('student'=>array( 'count' => $count, 'vorname' => $student->vorname, diff --git a/include/pruefungsanmeldung.class.php b/include/pruefungsanmeldung.class.php index fa7798a1c..e000b3a74 100644 --- a/include/pruefungsanmeldung.class.php +++ b/include/pruefungsanmeldung.class.php @@ -2,22 +2,22 @@ /* * Copyright 2014 fhcomplete.org - * + * * 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., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. - * + * * * Authors: Stefan Puraner */ @@ -27,7 +27,7 @@ require_once(dirname(__FILE__) . '/basis_db.class.php'); class pruefungsanmeldung extends basis_db { public $new; public $result = array(); - + public $pruefungsanmeldung_id; //bigint public $uid; //varchar(32) public $pruefungstermin_id; //bigint @@ -40,12 +40,13 @@ class pruefungsanmeldung extends basis_db { public $statusupdateamum; //timestamp public $anrechnung_id; //integer public $pruefungstyp_kurzbz; //varchar(32) - + public $insertamum; // timestamp + /** * Konstruktor * @param pruefung_id ID der zu ladenden Prüfung */ - public function __construct($pruefungsanmeldung_id = null) + public function __construct($pruefungsanmeldung_id = null) { parent::__construct(); @@ -80,7 +81,7 @@ class pruefungsanmeldung extends basis_db { { return $this->$name; } - + /** * speichert eine Prüfungsanmeldung * @param type $new @@ -90,7 +91,7 @@ class pruefungsanmeldung extends basis_db { { if ($new == null) $new = $this->new; - + if($new) { $qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz) VALUES (' @@ -118,7 +119,7 @@ class pruefungsanmeldung extends basis_db { . 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz) . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';'; } - + if ($this->db_query($qry)) { return true; @@ -129,7 +130,7 @@ class pruefungsanmeldung extends basis_db { return false; } } - + /** * Lädt eine Prüfungsanmeldung * @param type $pruefungsanmeldung_id @@ -142,9 +143,9 @@ class pruefungsanmeldung extends basis_db { $this->errormsg = "Anmeldung ID muss eine gültige Zahl sein"; return false; } - + $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; - + if(!$this->db_query($qry)) { $this->errormsg = 'Anmeldungsdaten konnten nicht geladen werden.'; @@ -166,11 +167,12 @@ class pruefungsanmeldung extends basis_db { $this->statusupdatevon = $row->statusupdatevon; $this->anrechnung_id = $row->anrechnung_id; $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + $this->insertamum = $row->insertamum; } return true; } } - + /** * Lädt alle Prüfungsanmeldungen eines Studenten * @param type $uid UID eines Studenten @@ -184,14 +186,14 @@ class pruefungsanmeldung extends basis_db { . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' . 'WHERE uid='.$this->db_add_param($uid); - + if($studiensemester_kurzbz != null) { $qry .= ' AND studiensemester_kurzbz='.$this->db_add_param($studiensemester_kurzbz); } - + $qry .= ';'; - + if(!$this->db_query($qry)) { $this->errormsg = 'Anmeldungen konnten nicht geladen werden.'; @@ -223,9 +225,9 @@ class pruefungsanmeldung extends basis_db { return $anmeldungen; } } - + /** - * Lädt alle Anmeldungen eines Prüfungstermins + * Lädt alle Anmeldungen eines Prüfungstermins * @param type $pruefungstermin_id ID des Prüfungstermins * @param type $lehrveranstaltung_id Filter nach Lehrveranstaltung * @param type $studiensemester_kurbz Filter nach Studiensemester (zB 'WS2013') @@ -234,23 +236,23 @@ class pruefungsanmeldung extends basis_db { */ public function getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id=null, $studiensemester_kurbz=null, $status_kurzbz=null) { - $qry = 'SELECT * FROM campus.tbl_pruefungsanmeldung pa ' + $qry = 'SELECT *, pa.insertamum as datum_anmeldung FROM campus.tbl_pruefungsanmeldung pa ' . 'JOIN campus.tbl_pruefungstermin pt ON pa.pruefungstermin_id=pt.pruefungstermin_id ' . 'JOIN campus.tbl_pruefung p ON p.pruefung_id=pt.pruefung_id ' . 'WHERE pa.pruefungstermin_id='.$this->db_add_param($pruefungstermin_id); - + if($lehrveranstaltung_id !== null) { $qry .= ' AND lehrveranstaltung_id='.$this->db_add_param($lehrveranstaltung_id); } - + if($status_kurzbz !== null) { $qry .= ' AND status_kurzbz='.$this->db_add_param($status_kurzbz); } $qry .=' ORDER BY reihung'; $qry .=';'; - + if(!$this->db_query($qry)) { $this->errormsg = "Anmeldungen konnten nicht geladen werden."; @@ -277,12 +279,13 @@ class pruefungsanmeldung extends basis_db { $anmeldung->statusupdatevon = $row->statusupdatevon; $anmeldung->anrechnung_id = $row->anrechnung_id; $anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; + $anmeldung->datum_anmeldung = $row->datum_anmeldung; array_push($anmeldungen, $anmeldung); } return $anmeldungen; } } - + /** * Löscht eine Prüfungsanmeldung * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung @@ -292,14 +295,14 @@ class pruefungsanmeldung extends basis_db { public function delete($pruefungsanmeldung_id, $uid=null) { $qry = 'DELETE FROM campus.tbl_pruefungsanmeldung WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id); - + if(!is_null($uid)) { $qry .= ' AND uid='.$this->db_add_param($uid); } - + $qry .= ' ;'; - + if($this->db_query($qry)) { return true; @@ -310,7 +313,7 @@ class pruefungsanmeldung extends basis_db { return false; } } - + /** * speichert die Reihung eines Anmeldungstermins * WICHTIG: Auf den Aufbau des übergebenen arrays muss geachtet werden @@ -348,8 +351,8 @@ class pruefungsanmeldung extends basis_db { $this->errormsg = "No Array"; return false; } - - + + /** * Ändert den Status einer Prüfungsanmeldung * @param type $pruefungsanmeldung_id ID der Prüfungsanmeldung @@ -363,7 +366,7 @@ class pruefungsanmeldung extends basis_db { . 'statusupdatevon='.$this->db_add_param($user).', ' . 'statusupdateamum=NOW() ' . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($pruefungsanmeldung_id).';'; - + if(!$this->db_query($qry)) { $this->errormsg = 'Status konnte nicht geändert werden.'; diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 8a6edc255..37ff11959 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -151,6 +151,19 @@ if(!$result = @$db->db_query("SELECT final FROM lehre.tbl_projektarbeit LIMIT 1" echo '
lehre.tbl_projektarbeit: Spalte final hinzugefuegt'; } +//Spalte insertamum tbl_pruefungsanmeldung zur Ausgabe des Anmeldedatums auf Anmeldelisten +if(!$result = @$db->db_query("SELECT insertamum FROM campus.tbl_pruefungsanmeldung LIMIT 1")) +{ + $qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN insertamum timestamp DEFAULT now();"; + + if(!$db->db_query($qry)) + echo 'campus.tbl_pruefungsanmeldung: '.$db->db_last_error().'
'; + else + echo '
campus.tbl_pruefungsanmeldung: Spalte insertamum hinzugefuegt'; +} + + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 58734e92488503fc332c644138ed2c90b2766ffa Mon Sep 17 00:00:00 2001 From: oesi Date: Wed, 29 Mar 2017 10:54:42 +0200 Subject: [PATCH 16/36] Cleanup and Remove Legacy Scripts --- content/statistik/anwesenheitsliste.php | 143 --------- vilesci/kommunikation/index.html | 19 -- vilesci/kommunikation/kontakt.php | 153 --------- .../kommunikation/studenten_liste_export.php | 58 ---- vilesci/lehre/einheit_import.php | 99 ------ vilesci/lehre/export/index.html | 14 - vilesci/lehre/export/lektoren.php | 56 ---- vilesci/lehre/export/raum.php | 57 ---- vilesci/lehre/export/studenten.php | 58 ---- vilesci/lehre/export/zeitwunsch.php | 60 ---- vilesci/lehre/freifach_lektoren.php | 57 ++-- vilesci/lehre/lehreinheiten_vorrueckung.php | 103 +++--- vilesci/lehre/lehrfach/lehrfachpflege.php | 150 --------- vilesci/lehre/lehrfach/wartung.php | 250 --------------- vilesci/lehre/lehrfach_verteilung.php | 294 ------------------ vilesci/lehre/lv_verteilung.php | 91 ------ vilesci/lehre/lvangebot_autocomplete.php | 54 ++-- vilesci/lehre/ort.php | 10 - vilesci/lehre/projektarbeitsbenotung.php | 107 ++++--- vilesci/lehre/raumauslastung.php | 133 ++++---- 20 files changed, 248 insertions(+), 1718 deletions(-) delete mode 100644 content/statistik/anwesenheitsliste.php delete mode 100644 vilesci/kommunikation/index.html delete mode 100644 vilesci/kommunikation/kontakt.php delete mode 100644 vilesci/kommunikation/studenten_liste_export.php delete mode 100644 vilesci/lehre/einheit_import.php delete mode 100644 vilesci/lehre/export/index.html delete mode 100644 vilesci/lehre/export/lektoren.php delete mode 100644 vilesci/lehre/export/raum.php delete mode 100644 vilesci/lehre/export/studenten.php delete mode 100644 vilesci/lehre/export/zeitwunsch.php delete mode 100644 vilesci/lehre/lehrfach/lehrfachpflege.php delete mode 100644 vilesci/lehre/lehrfach/wartung.php delete mode 100644 vilesci/lehre/lehrfach_verteilung.php delete mode 100644 vilesci/lehre/lv_verteilung.php delete mode 100644 vilesci/lehre/ort.php diff --git a/content/statistik/anwesenheitsliste.php b/content/statistik/anwesenheitsliste.php deleted file mode 100644 index 73b272adb..000000000 --- a/content/statistik/anwesenheitsliste.php +++ /dev/null @@ -1,143 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Generiert eine Anwesenheitsliste mit Fotos - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/datum.class.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/akte.class.php'); - -$stg_obj = new studiengang(); -$stg_obj->getAll('typ, kurzbzlang', false); - - //Uebergabeparameter abpruefen - if(isset($_GET['stg'])) //Studiengang - { - if(is_numeric($_GET['stg'])) - $stg=$_GET['stg']; - else - die('Fehler bei der Parameteruebergabe'); - } - else - $stg=''; - if(isset($_GET['sem'])) //Semester - { - if(is_numeric($_GET['sem'])) - $sem=$_GET['sem']; - else - die('Fehler bei der Parameteruebergabe'); - } - else - $sem=''; - - if(isset($_GET['verband'])) //Verband - $verband=$_GET['verband']; - else - $verband=''; - if(isset($_GET['gruppe'])) //Gruppe - $gruppe=$_GET['gruppe']; - else - $gruppe=''; - if(isset($_GET['gruppe_kurzbz'])) //Einheit - $gruppe_kurzbz = $_GET['gruppe_kurzbz']; - else - $gruppe_kurzbz=''; - - if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) - $lvid = $_GET['lvid']; - else - die('Fehler bei der Parameteruebergabe'); - - if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; - else - die('Studiensemester wurde nicht uebergeben'); - - $lehreinheit_id = (isset($_GET['lehreinheit_id'])?$_GET['lehreinheit_id']:''); - -if(isset($_GET['prestudent_id'])) -{ - $ids = explode(';',$_GET['prestudent_id']); - $idstring=''; - - foreach ($ids as $id) - { - if($idstring!='') - $idstring.=','; - $idstring.="'$id'"; - } - $qry = "SELECT distinct on(person_id) foto, vorname, nachname, person_id, prestudent_id, tbl_prestudent.studiengang_kz, semester, verband, gruppe FROM public.tbl_person JOIN public.tbl_prestudent USING(person_id) LEFT JOIN public.tbl_student USING(prestudent_id) WHERE prestudent_id in($idstring)"; -} -else -{ - $qry = "SELECT - distinct on(person_id) foto, vorname, nachname, person_id, tbl_studentlehrverband.studiengang_kz, tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe - FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid) - WHERE - lehrveranstaltung_id='".addslashes($lvid)."' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='".addslashes($stsem)."' AND - tbl_studentlehrverband.studiensemester_kurzbz='".addslashes($stsem)."'"; - - if($lehreinheit_id!='') - $qry.=" AND lehreinheit_id='".addslashes($lehreinheit_id)."'"; -} - -echo ' - -Anwesenheitsliste - - - -

Studentenliste - '.date('d.m.Y').'


'; -$db = new basis_db(); -if($result = $db->db_query($qry)) -{ - echo ""; - echo ''; - while($row = $db->db_fetch_object($result)) - { - echo ''; - if($row->foto!='') - { - $akte = new akte(); - $akte->getAkten($row->person_id, 'Lichtbil'); - - echo ""; - } - else - echo ""; - echo ""; - echo ""; - echo ""; - - echo ''; - } - echo '
FotoNachnameVornameGruppe
$row->nachname$row->vorname".$stg_obj->kuerzel_arr[$row->studiengang_kz]."-$row->semester$row->verband$row->gruppe
'; -} - -echo ''; -?> \ No newline at end of file diff --git a/vilesci/kommunikation/index.html b/vilesci/kommunikation/index.html deleted file mode 100644 index 2a6d6bc30..000000000 --- a/vilesci/kommunikation/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - Mailinglisten - - - - -

MailingListen

-

Gruppen

- - -
    -
  • Check UIDs
  • -
- - diff --git a/vilesci/kommunikation/kontakt.php b/vilesci/kommunikation/kontakt.php deleted file mode 100644 index 198b96f32..000000000 --- a/vilesci/kommunikation/kontakt.php +++ /dev/null @@ -1,153 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - - -/** - * Changes: 23.10.2004: Anpassung an neues DB-Schema (WM) - */ - - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - require_once('../../include/functions.inc.php'); - -?> - - - -Kontakte - eMail-Verteiler - - - - - -

Kontakte - eMail-Verteiler

-
-

Module

- - -db_query("SELECT studiengang_kz, bezeichnung, UPPER(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) - die($db->db_last_error()); - $num_rows=$db->db_num_rows($erg); - for ($i=0;$i<$num_rows;$i++) - { - $row=$db->db_fetch_object($erg, $i); - echo ""; - } -?> - - -"; - $row=$db->db_fetch_object($erg, $i); - $stg_id=$row->studiengang_kz; - $stg_kzbz=$row->kurzbz; - $sql_query="SELECT * FROM public.tbl_gruppe WHERE studiengang_kz=$stg_id ORDER BY gruppe_kurzbz"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - $nr_sem=$db->db_num_rows($result); - for ($j=0; $j<$nr_sem; $j++) - { - $row_sem=$db->db_fetch_object($result, $j); - if($row_sem->mailgrp=='t') - echo "gruppe_kurzbz@technikum-wien.at\">$row_sem->gruppe_kurzbz
"; - else - echo "$row_sem->gruppe_kurzbz
"; - echo "gruppe_kurzbz\">    (Liste)
"; - } - echo""; - } -?> - -
$row->kurzbz
$row->bezeichnung
-

Studenten

- - -db_query("SELECT studiengang_kz, bezeichnung, UPPER(typ::varchar(1) || kurzbz) as kurzbz FROM public.tbl_studiengang ORDER BY kurzbz ASC"))) - die($db->db_last_error()); - $num_rows=$db->db_num_rows($erg); - for ($i=0;$i<$num_rows;$i++) - { - $row=$db->db_fetch_object($erg, $i); - echo ""; - } -?> - - -"; - $row=$db->db_fetch_object($erg, $i); - $stg_id=$row->studiengang_kz; - $stg_kzbz=$row->kurzbz; - $sql_query="SELECT DISTINCT semester FROM public.tbl_student WHERE studiengang_kz=$stg_id ORDER BY semester"; - //echo $sql_query; - if(!($result_sem=$db->db_query($sql_query))) - die($db->db_last_error()); - $nr_sem=$db->db_num_rows($result_sem); - for ($j=0; $j<$nr_sem; $j++) - { - $row_sem=$db->db_fetch_object($result_sem, $j); - $stg_kzbz_lo=strtolower($stg_kzbz); - echo "semester@technikum-wien.at\">$stg_kzbz-$row_sem->semester
"; - - $sql_query="SELECT DISTINCT verband FROM public.tbl_student WHERE studiengang_kz=$stg_id AND semester=$row_sem->semester ORDER BY verband"; - //echo $sql_query; - if(!($result_ver=$db->db_query($sql_query))) - die($db->db_last_error()); - $nr_ver=$db->db_num_rows($result_ver); - for ($k=0; $k<$nr_ver; $k++) - { - $row_ver=$db->db_fetch_object($result_ver, $k); - $ver_lo=strtolower($row_ver->verband); - echo " - semester$ver_lo@technikum-wien.at\">$stg_kzbz-$row_sem->semester$row_ver->verband
"; - - $sql_query="SELECT DISTINCT gruppe FROM public.tbl_student WHERE studiengang_kz=$stg_id AND semester=$row_sem->semester AND verband='$row_ver->verband' ORDER BY gruppe"; - //echo $sql_query; - if(!($result_grp=$db->db_query($sql_query))) - die($db->db_last_error()); - $nr_grp=$db->db_num_rows($result_grp); - for ($l=0; $l<$nr_grp; $l++) - { - $row_grp=$db->db_fetch_object($result_grp, $l); - echo "  - semester$ver_lo$row_grp->gruppe@technikum-wien.at\">$stg_kzbz-$row_sem->semester$row_ver->verband$row_grp->gruppe
"; - echo "semester&ver=$ver_lo&grp=$row_grp->gruppe\">    (Liste)
"; - } - } - } - echo""; - } -?> - -
$row->kurzbz
$row->bezeichnung
- - - diff --git a/vilesci/kommunikation/studenten_liste_export.php b/vilesci/kommunikation/studenten_liste_export.php deleted file mode 100644 index 9dcb029b9..000000000 --- a/vilesci/kommunikation/studenten_liste_export.php +++ /dev/null @@ -1,58 +0,0 @@ -db_query($sql_query))) - die($db->db_db_last_error()); - - $anz=$db->db_num_rows($result); - for ($j=0; $j<$anz; $j++) - { - $row=$db->db_fetch_object($result, $j); - echo '#'.$row->nachname.' '.$row->vorname.$crlf.$row->uid.$crlf; - } -?> \ No newline at end of file diff --git a/vilesci/lehre/einheit_import.php b/vilesci/lehre/einheit_import.php deleted file mode 100644 index 8360c41cc..000000000 --- a/vilesci/lehre/einheit_import.php +++ /dev/null @@ -1,99 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - $uid=(isset($_REQUEST['uid']) ? $_REQUEST['uid'] :get_uid() ); - $einheit=(isset($_REQUEST['einheit']) ? $_REQUEST['einheit'] :'' ); - $einheit_id=(isset($_REQUEST['einheit_id']) ? $_REQUEST['einheit_id'] :'' ); - $student_id=(isset($_REQUEST['student_id']) ? $_REQUEST['student_id'] :'' ); - -?> - - -'; - $enduid=strpos($field[$i],'"',1); - //echo $enduid.'
'; - $uid=substr($field[$i],1,$enduid-1); - //echo $uid.'
'; - $begineinh=strpos($field[$i],'"',$enduid+2)+1; - //echo $begineinh.'
'; - $endeinh=strpos($field[$i],'"',$begineinh); - //echo $endeinh.'
'; - $einheit=substr($field[$i],$begineinh,$endeinh-$begineinh); - //echo $einheit.'
'; - - $sql_query="SELECT * FROM einheit WHERE kurzbz='$einheit'"; - $result=$db->db_query($sql_query); - $rows=$db->db_num_rows($result); - if ($rows==0) - { - $result_ins=$db->db_query("INSERT INTO einheit (kurzbz) VALUES ('$einheit')"); - if(!$result_ins) - error($db->db_last_error() ); - $sql_query="SELECT * FROM einheit WHERE kurzbz='$einheit'"; - $result=$db->db_query($sql_query); - } - $row=$db->_fetch_object($result,0); - $einheit_id=$row->id; - - - $sql_query="SELECT * FROM student WHERE uid='$uid'"; - //echo $sql_query.'
'; - $result=$db->db_query($sql_query); - if(!$result) - error($db->db_last_error()); - - $rows=$db->db_num_rows($result); - if ($rows==0) - die("Student $uid not found!"); - $row=$db->db_fetch_object($result,0); - - - $student_id=$row->id; - - $sql_query="SELECT * FROM einheitstudent WHERE einheit_id=$einheit_id AND student_id=$student_id"; - - $rows=0; - if ($result=$db->db_query($sql_query)) - $rows=$db->db_num_rows($result); - if ($rows==0) - { - $result_ins=$db->db_query("INSERT INTO einheitstudent (einheit_id, student_id) VALUES ($einheit_id, $student_id)"); - if(!$result_ins) - error($db->db_last_error()); - $result=$db->db_query($sql_query); - } - } -?> -Finished
-Zurück - - \ No newline at end of file diff --git a/vilesci/lehre/export/index.html b/vilesci/lehre/export/index.html deleted file mode 100644 index ef80cddb4..000000000 --- a/vilesci/lehre/export/index.html +++ /dev/null @@ -1,14 +0,0 @@ - - -Untitled Document - - - - - -

Räume

-

Lektoren - Zeitwünsche

-

Studenten

-

 

- - diff --git a/vilesci/lehre/export/lektoren.php b/vilesci/lehre/export/lektoren.php deleted file mode 100644 index 14941e204..000000000 --- a/vilesci/lehre/export/lektoren.php +++ /dev/null @@ -1,56 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - require_once('../../../config/vilesci.config.inc.php'); - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - include('../../../include/functions.inc.php'); - -$studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] :'SS2009' ); - - header("Content-disposition: filename=lektoren.txt"); - header("Content-type: application/octetstream"); - header("Pragma: no-cache"); - header("Expires: 0"); - - // doing some DOS-CRLF magic... - $crlf="\n"; - $client=getenv("HTTP_USER_AGENT"); - if (ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) - { - $os = $regs[1]; - // this looks better under WinX - if (eregi("Win",$os)) $crlf="\r\n"; - } - $sql_query="SELECT distinct tbl_lehreinheitmitarbeiter.mitarbeiter_uid,public.tbl_person.* FROM lehre.tbl_lehreinheitmitarbeiter ,lehre.tbl_lehreinheit,public.tbl_mitarbeiter,public.tbl_person where public.tbl_person.aktiv and public.tbl_person.person_id=public.tbl_mitarbeiter.personalnummer and public.tbl_mitarbeiter.mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid and tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id and tbl_lehreinheit.studiensemester_kurzbz='$studiensemester_kurzbz' and lehrfunktion_kurzbz='Lektor' ORDER BY tbl_lehreinheitmitarbeiter.mitarbeiter_uid"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - $anz=$db->db_num_rows($result); - for ($j=0; $j<$anz; $j++) - { - $row=$db->db_fetch_object($result, $j); - echo '"'.$row->mitarbeiter_uid.'","'.$row->nachname.'",,,,,,,,,,,,,,,,,,,,,,,,,,,"'.$row->vornamen.'","'.$row->anrede.'","'.$row->titelpost.'",,'.$crlf; - } -?> \ No newline at end of file diff --git a/vilesci/lehre/export/raum.php b/vilesci/lehre/export/raum.php deleted file mode 100644 index 0f412fe95..000000000 --- a/vilesci/lehre/export/raum.php +++ /dev/null @@ -1,57 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - require_once('../../../config/vilesci.config.inc.php'); - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - include('../../../include/functions.inc.php'); - - - header("Content-disposition: filename=raum.txt"); - header("Content-type: application/octetstream"); - header("Pragma: no-cache"); - header("Expires: 0"); - - // doing some DOS-CRLF magic... - $crlf="\n"; - $client=getenv("HTTP_USER_AGENT"); - if (ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) - { - $os = $regs[1]; - // this looks better under WinX - if (eregi("Win",$os)) $crlf="\r\n"; - } - - - $sql_query="SELECT * FROM public.tbl_ort ORDER BY ort_kurzbz"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - $anz=$db->db_num_rows($result); - for ($j=0; $j<$anz; $j++) - { - $row=$db->db_fetch_object($result, $j); - echo '"'.$row->ort_kurzbz.'","'.$row->bezeichnung.'",,,,,,'.$row->max_person.',,,,,,,,,,'.$crlf; - } -?> \ No newline at end of file diff --git a/vilesci/lehre/export/studenten.php b/vilesci/lehre/export/studenten.php deleted file mode 100644 index c5458b2c4..000000000 --- a/vilesci/lehre/export/studenten.php +++ /dev/null @@ -1,58 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - require_once('../../../config/vilesci.config.inc.php'); - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - include('../../../include/functions.inc.php'); - - - header("Content-disposition: filename=studenten.txt"); - header("Content-type: application/octetstream"); - header("Pragma: no-cache"); - header("Expires: 0"); - - // doing some DOS-CRLF magic... - $crlf="\n"; - $client=getenv("HTTP_USER_AGENT"); - if (ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) - { - $os = $regs[1]; - // this looks better under WinX - if (eregi("Win",$os)) $crlf="\r\n"; - } - - - $sql_query="SELECT student_uid,nachname,vornamen, matrikelnr, semester, verband, gruppe, tbl_student.studiengang_kz FROM public.tbl_student, public.tbl_studiengang,public.tbl_mitarbeiter, public.tbl_prestudent ,public.tbl_person WHERE public.tbl_person.aktiv and public.tbl_person.person_id=tbl_prestudent.person_id and tbl_prestudent.prestudent_id=tbl_student.prestudent_id and tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz ORDER BY student_uid"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - - $anz=$db->db_num_rows($result); - for ($j=0; $j<$anz; $j++) - { - $row=$db->db_fetch_object($result, $j); - echo '"'.$row->student_uid.'","'.$row->nachname.'",,,,,,"'.$row->vornamen.'","'.$row->matrikelnr.'","'.$row->kurzbz.'-'.$row->semester.$row->verband.$row->gruppe.'","2",'.$crlf; - } -?> \ No newline at end of file diff --git a/vilesci/lehre/export/zeitwunsch.php b/vilesci/lehre/export/zeitwunsch.php deleted file mode 100644 index b7b37b48d..000000000 --- a/vilesci/lehre/export/zeitwunsch.php +++ /dev/null @@ -1,60 +0,0 @@ - - * Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - require_once('../../../config/vilesci.config.inc.php'); - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - include('../../../include/functions.inc.php'); - - - $studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz']) ? $_REQUEST['studiensemester_kurzbz'] :'SS2009' ); - - - header("Content-disposition: filename=zeitwuensche_lektoren.txt"); - header("Content-type: application/octetstream"); - header("Pragma: no-cache"); - header("Expires: 0"); - - // doing some DOS-CRLF magic... - $crlf="\n"; - $client=getenv("HTTP_USER_AGENT"); - if (ereg('[^(]*\((.*)\)[^)]*',$client,$regs)) - { - $os = $regs[1]; - // this looks better under WinX - if (eregi("Win",$os)) $crlf="\r\n"; - } -# $sql_query="SELECT lektor.kurzbz, zeitwunsch.lektor_id, zeitwunsch.tag, zeitwunsch.stunde_id, zeitwunsch.gewicht FROM zeitwunsch, lektor WHERE zeitwunsch.lektor_id=lektor.id ORDER BY lektor.kurzbz"; - - $sql_query="SELECT distinct tbl_lehreinheitmitarbeiter.mitarbeiter_uid,public.tbl_person.* , tbl_zeitwunsch.tag, tbl_zeitwunsch.stunde, tbl_zeitwunsch.gewicht,tbl_stunde.beginn ,tbl_stunde.ende FROM lehre.tbl_stunde, campus.tbl_zeitwunsch , lehre.tbl_lehreinheitmitarbeiter ,lehre.tbl_lehreinheit,public.tbl_mitarbeiter,public.tbl_person where lehre.tbl_stunde.stunde=tbl_zeitwunsch.stunde and public.tbl_person.aktiv and public.tbl_person.person_id=public.tbl_mitarbeiter.personalnummer and campus.tbl_zeitwunsch.mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid and public.tbl_mitarbeiter.mitarbeiter_uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid and tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id and tbl_lehreinheit.studiensemester_kurzbz='$studiensemester_kurzbz' and lehrfunktion_kurzbz='Lektor' ORDER BY tbl_lehreinheitmitarbeiter.mitarbeiter_uid"; - //echo $sql_query; - if(!($result=$db->db_query($sql_query))) - die($db->db_last_error()); - $anz=$db->db_num_rows($result); - for ($j=0; $j<$anz; $j++) - { - $row=$db->db_fetch_object($result, $j); - echo '"L","'.$row->mitarbeiter_uid.'",'.$row->tag.','.$row->stunde.','.$row->gewicht.','.$row->beginn.','.$row->ende.$crlf; - } -?> \ No newline at end of file diff --git a/vilesci/lehre/freifach_lektoren.php b/vilesci/lehre/freifach_lektoren.php index a1a399bb9..368412435 100755 --- a/vilesci/lehre/freifach_lektoren.php +++ b/vilesci/lehre/freifach_lektoren.php @@ -33,7 +33,7 @@ if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); if (!$user = get_uid()) - die('Keine UID gefunden ! Zurück'); + die('Keine UID gefunden ! Zurück'); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -59,22 +59,22 @@ else - @@ -89,7 +97,7 @@ if(isset($_POST['savedata'])) $prj->note = $data; $prj->updateamum = date('Y-m-d H:i:s'); $prj->updatevon = $user; - + if(!$prj->save(false)) { $errormsg .="Fehler beim Speichern von $prj->projektarbeit_id:".$prj->errormsg.'
'; @@ -98,12 +106,12 @@ if(isset($_POST['savedata'])) } } } - + if($errormsg!='') { echo $errormsg; } - else + else { echo 'Daten wurden gespeichert

'; } @@ -116,7 +124,7 @@ $stg_arr = array(); $stg_obj = new studiengang(); $stg_obj->getAll('typ, kurzbz', false); -foreach ($stg_obj->result as $row) +foreach ($stg_obj->result as $row) $stg_arr[$row->studiengang_kz] = $row->kuerzel; echo '
'; @@ -130,13 +138,12 @@ if($rechte->isBerechtigt('admin', null, 'suid')) else $stgs = $rechte->getStgKz(); -foreach ($stgs as $kz) +foreach ($stgs as $kz) { echo ''; } echo ''; - echo ' Studiensemester: "; -echo " - - - - - - - "; -echo ""; -echo ""; +echo '
StudentTypTitelThemenbereichBetreuerBeginnEndeGesamtnote
+ + + + + + + + + + + + + '; foreach ($projekt->result as $row) { echo ''; - + $student = new student(); $student->load($row->student_uid); echo ""; echo ""; echo ""; echo ""; - + echo '"; - + echo ""; echo ""; echo ""; - + echo ""; } - + echo '
StudentTypTitelThemenbereichBetreuerBeginnEndeGesamtnote
$student->nachname $student->vorname $student->titelpre $student->titelpost$row->bezeichnung$row->titel".($row->titel_english!=''?'
'.$row->titel_english:'')."
$row->themenbereich'; - $qry = "SELECT distinct vorname, nachname, titelpre, titelpost, (SELECT uid FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter on(uid=mitarbeiter_uid) WHERE person_id=tbl_person.person_id LIMIT 1) as uid, betreuerart_kurzbz FROM public.tbl_person JOIN lehre.tbl_projektbetreuer USING(person_id) WHERE projektarbeit_id='".$row->projektarbeit_id."'"; + $qry = "SELECT + distinct vorname, nachname, titelpre, titelpost, + (SELECT uid FROM public.tbl_benutzer JOIN public.tbl_mitarbeiter on(uid=mitarbeiter_uid) + WHERE person_id=tbl_person.person_id LIMIT 1) as uid, betreuerart_kurzbz + FROM + public.tbl_person + JOIN lehre.tbl_projektbetreuer USING(person_id) + WHERE projektarbeit_id=".$db->db_add_param($row->projektarbeit_id); + if($result_betreuer = $db->db_query($qry)) { while($row_betreuer = $db->db_fetch_object($result_betreuer)) { if($row_betreuer->uid!='') echo ""; - - echo trim($row_betreuer->titelpre.' '.$row_betreuer->vorname.' '.$row_betreuer->nachname.' '.$row_betreuer->titelpost).' ('.$row_betreuer->betreuerart_kurzbz.')'; - + + echo trim($row_betreuer->titelpre.' '.$row_betreuer->vorname.' '. + $row_betreuer->nachname.' '.$row_betreuer->titelpost).' ('.$row_betreuer->betreuerart_kurzbz.')'; + if($row_betreuer->uid!='') echo ''; - + echo '
'; } } - + echo "
$row->beginn$row->ende"; @@ -208,20 +227,20 @@ foreach ($projekt->result as $row) { if($row->note==$note->note) $selected='selected'; - else + else $selected=''; - + echo ""; } echo ""; echo "
'; echo '

'; -echo '
'; +echo ''; ?> diff --git a/vilesci/lehre/raumauslastung.php b/vilesci/lehre/raumauslastung.php index 49f90e503..6075e2e16 100644 --- a/vilesci/lehre/raumauslastung.php +++ b/vilesci/lehre/raumauslastung.php @@ -20,70 +20,83 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ - - - - /** - * Raumauslastung - * - */ +/** + * Raumauslastung + * + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/basis_db.class.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require('../../include/globals.inc.php'); - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - - require('../../include/globals.inc.php'); - $raum=array(); +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('basis/stundenplan',null,'s') && !$rechte->isBerechtigt('lehre/lvplan',null,'s')) + die($rechte->errormsg); + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$raum=array(); - if (isset($_POST['datum_beginn'])) - $datum_beginn=$_POST['datum_beginn']; - else - $datum_beginn=date('Y').'-'.(date('m')>7?'06':'01').'-01'; - if (isset($_POST['datum_ende'])) - $datum_ende=$_POST['datum_ende']; - else - $datum_ende=date('Y').'-'.(date('m')>7?'12':'07').'-30'; - if (isset($_POST['stunde_beginn'])) - $stunde_beginn=$_POST['stunde_beginn']; - else - $stunde_beginn=12; - if (isset($_POST['stunde_ende'])) - $stunde_ende=$_POST['stunde_ende']; - else - $stunde_ende=16; +if (isset($_POST['datum_beginn'])) + $datum_beginn=$_POST['datum_beginn']; +else + $datum_beginn=date('Y').'-'.(date('m')>7?'06':'01').'-01'; +if (isset($_POST['datum_ende'])) + $datum_ende=$_POST['datum_ende']; +else + $datum_ende=date('Y').'-'.(date('m')>7?'12':'07').'-30'; +if (isset($_POST['stunde_beginn'])) + $stunde_beginn=$_POST['stunde_beginn']; +else + $stunde_beginn=12; +if (isset($_POST['stunde_ende'])) + $stunde_ende=$_POST['stunde_ende']; +else + $stunde_ende=16; - $ts_beginn=mktime(0,0,0,substr($datum_beginn,5,2),substr($datum_beginn,8,2),substr($datum_beginn,0,4)); - $ts_ende=mktime(0,0,0,substr($datum_ende,5,2),substr($datum_ende,8,2),substr($datum_ende,0,4)); +$ts_beginn=mktime(0,0,0,substr($datum_beginn,5,2),substr($datum_beginn,8,2),substr($datum_beginn,0,4)); +$ts_ende=mktime(0,0,0,substr($datum_ende,5,2),substr($datum_ende,8,2),substr($datum_ende,0,4)); - $wochen=round(($ts_ende-$ts_beginn)/(60*60*24*7)); +$wochen=round(($ts_ende-$ts_beginn)/(60*60*24*7)); - //Stundenplandaten holen - $sql_query="SELECT DISTINCT datum,stunde,ort_kurzbz, EXTRACT(DOW FROM datum) AS tag, max_person FROM lehre.tbl_stundenplan JOIN public.tbl_ort USING (ort_kurzbz) - WHERE datum>='$datum_beginn' AND datum<='$datum_ende' AND stunde>=$stunde_beginn AND stunde<=$stunde_ende - ORDER BY ort_kurzbz"; +//Stundenplandaten holen +$sql_query="SELECT DISTINCT datum,stunde,ort_kurzbz, EXTRACT(DOW FROM datum) AS tag, max_person + FROM lehre.tbl_stundenplan JOIN public.tbl_ort USING (ort_kurzbz) + WHERE + datum>=".$db->db_add_param($datum_beginn)." + AND datum<=".$db->db_add_param($datum_ende)." + AND stunde>=".$db->db_add_param($stunde_beginn)." + AND stunde<=".$db->db_add_param($stunde_ende)." + ORDER BY ort_kurzbz"; - if(!$result=$db->db_query($sql_query)) - die($db->db_last_error()); - //echo $sql_query; - //Aufbereitung - while ($row=$db->db_fetch_object($result)) +if(!$result=$db->db_query($sql_query)) + die($db->db_last_error()); + +//Aufbereitung +while ($row=$db->db_fetch_object($result)) +{ + if(!isset($raum[$row->ort_kurzbz])) + $raum[$row->ort_kurzbz] = new stdClass(); + $raum[$row->ort_kurzbz]->ort=$row->ort_kurzbz; + $raum[$row->ort_kurzbz]->personen=$row->max_person; + if (!isset($raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl)) { - $raum[$row->ort_kurzbz]->ort=$row->ort_kurzbz; - $raum[$row->ort_kurzbz]->personen=$row->max_person; - if (!isset($raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl)) - $raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl=1; - else - $raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl++; + $raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde] = new stdClass(); + $raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl=1; } - + else + $raum[$row->ort_kurzbz]->last[$row->tag][$row->stunde]->anzahl++; +} ?> - -Profil +Raumauslastung @@ -102,8 +115,13 @@
MontagDienstagMittwochDonnerstagFreitagSamstagOrt (Personen)MontagDienstagMittwochDonnerstagFreitagSamstag
$s
'.$ort->ort.' ('.$ort->personen.')'; echo $ort->last[$t][$s]->anzahl; From 9dc9a712c4a463090e0a7968b981c61826ae9b1e Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 29 Mar 2017 16:57:29 +0200 Subject: [PATCH 17/36] - Moved file to manage vorlage into subdir vorlage - Updated sprache, orgform, organisationseinheit and vorlage to the new widget - Changed method getRecursiveList of model Organisationseinheit_model - Updated vilesci_menu_main.inc.php - Changed method loadDropDownView of WidgetLib: if a selected value is not given, by default it is set as HTML_DEFAULT_VALUE - Updated all the affectd files --- .../system/{Templates.php => Vorlage.php} | 201 ++++++++++-------- application/libraries/WidgetLib.php | 5 + .../Organisationseinheit_model.php | 54 ++--- application/views/system/messageReply.php | 43 ++-- application/views/system/messageWrite.php | 55 +++-- application/views/system/phraseinhaltEdit.php | 38 +++- .../{ => vorlage}/templateLinkDocuments.php | 0 .../views/system/{ => vorlage}/templates.php | 8 +- .../system/{ => vorlage}/templatesEdit.php | 2 +- .../system/{ => vorlage}/templatesList.php | 4 +- .../system/{ => vorlage}/templatetextEdit.php | 34 ++- .../system/{ => vorlage}/templatetextList.php | 14 +- .../{ => vorlage}/templatetextPreview.php | 2 +- .../views/widgets/organisationseinheit.php | 7 - application/views/widgets/orgform.php | 7 - application/views/widgets/sprache.php | 7 - application/views/widgets/vorlage.php | 16 -- .../widgets/Organisationseinheit_widget.php | 21 ++ application/widgets/Orgform_widget.php | 16 ++ application/widgets/Sprache_widget.php | 16 ++ .../widgets/organisationseinheit_widget.php | 43 ---- application/widgets/orgform_widget.php | 49 ----- application/widgets/sprache_widget.php | 27 --- application/widgets/vorlage_widget.php | 30 ++- include/tw/vilesci_menu_main.inc.php | 2 +- 25 files changed, 358 insertions(+), 343 deletions(-) rename application/controllers/system/{Templates.php => Vorlage.php} (58%) rename application/views/system/{ => vorlage}/templateLinkDocuments.php (100%) rename application/views/system/{ => vorlage}/templates.php (54%) rename application/views/system/{ => vorlage}/templatesEdit.php (91%) rename application/views/system/{ => vorlage}/templatesList.php (82%) rename application/views/system/{ => vorlage}/templatetextEdit.php (60%) rename application/views/system/{ => vorlage}/templatetextList.php (69%) rename application/views/system/{ => vorlage}/templatetextPreview.php (76%) delete mode 100644 application/views/widgets/organisationseinheit.php delete mode 100644 application/views/widgets/orgform.php delete mode 100644 application/views/widgets/sprache.php delete mode 100644 application/views/widgets/vorlage.php create mode 100755 application/widgets/Organisationseinheit_widget.php create mode 100644 application/widgets/Orgform_widget.php create mode 100644 application/widgets/Sprache_widget.php delete mode 100755 application/widgets/organisationseinheit_widget.php delete mode 100644 application/widgets/orgform_widget.php delete mode 100644 application/widgets/sprache_widget.php diff --git a/application/controllers/system/Templates.php b/application/controllers/system/Vorlage.php similarity index 58% rename from application/controllers/system/Templates.php rename to application/controllers/system/Vorlage.php index 52731cbfc..0cf821488 100755 --- a/application/controllers/system/Templates.php +++ b/application/controllers/system/Vorlage.php @@ -1,9 +1,9 @@ load->library('WidgetLib'); } - + public function index() { - $this->load->view('system/templates.php'); + $this->load->view('system/vorlage/templates.php'); } - + public function table() { - $mimetype = $this->input->post('mimetype', TRUE); + $mimetype = $this->input->post('mimetype'); + if (is_null($mimetype)) $mimetype = 'text/html'; if ($mimetype == '') $mimetype = null; + $vorlage = $this->vorlagelib->getVorlageByMimetype($mimetype); + if ($vorlage->error) show_error($vorlage->retval); - //var_dump($vorlage); - $data = array - ( + $data = array ( 'mimetype' => $mimetype, 'vorlage' => $vorlage->retval ); - $v = $this->load->view('system/templatesList.php', $data); + + $v = $this->load->view('system/vorlage/templatesList.php', $data); } - + public function view($vorlage_kurzbz = null) { - if (empty($vorlage_kurzbz)) - exit; + if (empty($vorlage_kurzbz)) exit; + $vorlagentext = $this->vorlagelib->getVorlagetextByVorlage($vorlage_kurzbz); + if ($vorlagentext->error) show_error($vorlagentext->retval); - //var_dump($vorlagentext); - $data = array - ( + $data = array ( 'vorlage_kurzbz' => $vorlage_kurzbz, 'vorlagentext' => $vorlagentext->retval ); - $v = $this->load->view('system/templatetextList.php', $data); + + $v = $this->load->view('system/vorlage/templatetextList.php', $data); } - + public function edit($vorlage_kurzbz = null) { - if (empty($vorlage_kurzbz)) - exit; + if (empty($vorlage_kurzbz)) exit; + $vorlage = $this->vorlagelib->getVorlage($vorlage_kurzbz); - //var_dump($vorlage); + if ($vorlage->error) show_error($vorlage->retval); + if (count($vorlage->retval) != 1) show_error('Nachricht nicht vorhanden! ID: '.$vorlage_kurzbz); - - $data = array - ( + + $data = array ( 'vorlage' => $vorlage->retval[0] ); - //var_dump($data['message']); - $v = $this->load->view('system/templatesEdit', $data); + + $v = $this->load->view('system/vorlage/templatesEdit', $data); } public function write($vorlage_kurzbz = null) { - $data = array - ( + $data = array ( 'subject' => 'TestSubject', 'body' => 'TestDevelopmentBodyText' - ); - $v = $this->load->view('system/messageWrite', $data); + ); + + $v = $this->load->view('system/vorlage/messageWrite', $data); } public function save() { - $vorlage_kurzbz = $this->input->post('vorlage_kurzbz', TRUE); - $data['bezeichnung'] = $this->input->post('bezeichnung', TRUE); - $data['anmerkung'] = $this->input->post('anmerkung', TRUE); - $data['mimetype'] = $this->input->post('mimetype', TRUE); - $data['attribute'] = $this->input->post('attribute', TRUE); + $vorlage_kurzbz = $this->input->post('vorlage_kurzbz'); + + $data = array( + 'bezeichnung' => $this->input->post('bezeichnung'), + 'anmerkung' => $this->input->post('anmerkung'), + 'mimetype' => $this->input->post('mimetype'), + 'attribute' => $this->input->post('attribute') + ); + $vorlage = $this->vorlagelib->saveVorlage($vorlage_kurzbz, $data); + if ($vorlage->error) show_error($vorlage->retval); + $vorlage_kurzbz = $vorlage->retval; - - redirect('/system/Templates/edit/'.$vorlage_kurzbz); + + redirect('/system/vorlage/edit/'.$vorlage_kurzbz); } - + public function newText() { - $vorlage_kurzbz = $this->input->post('vorlage_kurzbz', true); + $vorlage_kurzbz = $this->input->post('vorlage_kurzbz'); $this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel'); $this->OrganisationseinheitModel->addLimit(1); $this->OrganisationseinheitModel->addOrder('oe_kurzbz'); + $resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null)); if ($resultOE->error) @@ -125,105 +134,127 @@ class Templates extends FHC_Controller ); $vorlagetext = $this->vorlagelib->insertVorlagetext($data); + if ($vorlagetext->error) show_error($vorlagetext->retval); $vorlagestudiengang_id = $vorlagetext->retval; - redirect('/system/Templates/editText/'.$vorlagestudiengang_id); + redirect('/system/vorlage/editText/'.$vorlagestudiengang_id); } else { show_error('No valid organisation unit found'); } } - + public function editText($vorlagestudiengang_id) { $vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id); + if ($vorlagetext->error) show_error($vorlagetext->retval); + $data = $vorlagetext->retval[0]; - + // Preview-Data $schema = $this->vorlagelib->getVorlage($data->vorlage_kurzbz); + $data->schema = $schema->retval[0]->attribute; - - $this->load->view('system/templatetextEdit', $data); + + $this->load->view('system/vorlage/templatetextEdit', $data); } - + public function linkDocuments($vorlagestudiengang_id) { - $this->load->model('system/vorlagedokument_model'); - $return = $this->vorlagedokument_model->loadDokumenteFromVorlagestudiengang($vorlagestudiengang_id); + $data = array(); + + $this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel'); + + $return = $this->VorlagedokumentModel->loadDokumenteFromVorlagestudiengang($vorlagestudiengang_id); + $data['documents'] = $return->retval; - - $this->load->model('system/dokument_model'); - $this->dokument_model->addOrder("bezeichnung"); - $return = $this->dokument_model->load(); + + $this->load->model('system/Dokument_model', 'DokumentModel'); + $this->DokumentModel->addOrder('bezeichnung'); + + $return = $this->DokumentModel->load(); + $data['allDocuments'] = $return->retval; - $data['vorlagestudiengang_id'] = $vorlagestudiengang_id; - - $this->load->view('system/templateLinkDocuments', $data); + + $this->load->view('system/vorlage/templateLinkDocuments', $data); } - + public function saveDocuments($vorlagestudiengang_id, $dokument_kurzbz, $sort) { - $this->load->model('system/vorlagedokument_model'); + $insert = array(); + $insert['vorlagestudiengang_id'] = $vorlagestudiengang_id; $insert['dokument_kurzbz'] = $dokument_kurzbz; - $insert['sort'] = $sort; - $this->vorlagedokument_model->insert($insert); + $insert['sort'] = $sort; + + $this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel'); + + $this->VorlagedokumentModel->insert($insert); } - + public function deleteDocumentLink($vorlagestudiengang_id) { - $this->load->model('system/vorlagedokument_model'); - $this->vorlagedokument_model->delete($vorlagestudiengang_id); + $this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel'); + + $this->VorlagedokumentModel->delete($vorlagestudiengang_id); } - + public function changeSort($vorlagestudiengang_id, $sort) { - $this->load->model('system/vorlagedokument_model'); - $this->vorlagedokument_model->update($vorlagestudiengang_id, array("sort"=>$sort)); + $this->load->model('system/Vorlagedokument_model', 'VorlagedokumentModel'); + + $this->VorlagedokumentModel->update($vorlagestudiengang_id, array('sort' => $sort)); } - + public function saveText() { - $vorlagestudiengang_id = $this->input->post('vorlagestudiengang_id', TRUE); - $data['studiengang_kz'] = $this->input->post('studiengang_kz', TRUE); - $data['version'] = $this->input->post('version', TRUE); - $data['oe_kurzbz'] = $this->input->post('oe_kurzbz', TRUE); + $data = array( + 'studiengang_kz' => $this->input->post('studiengang_kz'), + 'version' => $this->input->post('version'), + 'oe_kurzbz' => $this->input->post('oe_kurzbz'), + 'aktiv' => $this->input->post('aktiv'), + 'text' => $this->input->post('text'), + 'vorlagestudiengang_id' => $this->input->post('vorlagestudiengang_id') + ); + if ($this->input->post('sprache') == '') $data['sprache'] = null; else - $data['sprache'] = $this->input->post('sprache', TRUE); + $data['sprache'] = $this->input->post('sprache'); + if ($this->input->post('orgform_kurzbz') == '') $data['orgform_kurzbz'] = null; else - $data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz', TRUE); - $data['text'] = $this->input->post('text', TRUE); - $data['aktiv'] = $this->input->post('aktiv', TRUE); - $vorlagetext = $this->vorlagelib->updateVorlagetext($vorlagestudiengang_id, $data); + $data['orgform_kurzbz'] = $this->input->post('orgform_kurzbz'); + + $vorlagetext = $this->vorlagelib->updateVorlagetext($data['vorlagestudiengang_id'], $data); + if ($vorlagetext->error) show_error($vorlagetext->retval); - $data['vorlagestudiengang_id'] = $vorlagestudiengang_id; - redirect('/system/Templates/editText/'.$vorlagestudiengang_id); - //$this->load->view('system/templatetextEdit', $data); + + redirect('/system/vorlage/editText/'.$data['vorlagestudiengang_id']); } - + public function preview($vorlagestudiengang_id) { - $formdata = $this->input->post('formdata', FALSE); - $daten = json_decode($formdata, TRUE); + $jsonDecodedForm = json_decode($this->input->post('formdata'), true); + $vorlagetext = $this->vorlagelib->getVorlagetextById($vorlagestudiengang_id); + if ($vorlagetext->error) show_error($vorlagetext->retval); - $data = array - ( - 'text' => $this->vorlagelib->parseVorlagetext($vorlagetext->retval[0]->text, $daten) + + $data = array( + 'text' => $this->vorlagelib->parseVorlagetext($vorlagetext->retval[0]->text, $jsonDecodedForm) ); - $this->load->view('system/templatetextPreview', $data); + + $this->load->view('system/vorlage/templatetextPreview', $data); } -} +} \ No newline at end of file diff --git a/application/libraries/WidgetLib.php b/application/libraries/WidgetLib.php index ed45712ef..52fbd0071 100644 --- a/application/libraries/WidgetLib.php +++ b/application/libraries/WidgetLib.php @@ -713,6 +713,11 @@ class DropdownWidget extends Widget { $widgetData[DropdownWidget::WIDGET_DATA_ELEMENTS_ARRAY_NAME] = $this->elementsArray->retval; + if (!isset($widgetData[DropdownWidget::SELECTED_ELEMENT])) + { + $widgetData[DropdownWidget::SELECTED_ELEMENT] = Widget::HTML_DEFAULT_VALUE; + } + $this->view('widgets/dropdown', $widgetData); } diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php index aca1451da..ccab383cd 100755 --- a/application/models/organisation/Organisationseinheit_model.php +++ b/application/models/organisation/Organisationseinheit_model.php @@ -11,32 +11,38 @@ class Organisationseinheit_model extends DB_Model $this->pk = 'oe_kurzbz'; } - public function getRecursiveList($typ) + public function getRecursiveList($typ = null) { - $qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS - ( - SELECT - oe_kurzbz, - bezeichnung||' ('||organisationseinheittyp_kurzbz||')' AS bezeichnung, - oe_kurzbz||'|' AS path, - organisationseinheittyp_kurzbz - FROM tbl_organisationseinheit - WHERE oe_parent_kurzbz IS NULL AND aktiv - UNION ALL - SELECT - oe.oe_kurzbz, - oe.bezeichnung||' ('||oe.organisationseinheittyp_kurzbz||')' AS bezeichnung, - tree.path ||oe.oe_kurzbz||'|' AS path, - oe.organisationseinheittyp_kurzbz - FROM tree - JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz=oe.oe_parent_kurzbz) + $qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS ( + SELECT oe_kurzbz, + bezeichnung || ' (' || organisationseinheittyp_kurzbz || ')' AS bezeichnung, + oe_kurzbz || '|' AS path, + organisationseinheittyp_kurzbz + FROM tbl_organisationseinheit + WHERE oe_parent_kurzbz IS NULL + AND aktiv = true + UNION ALL + SELECT oe.oe_kurzbz, + oe.bezeichnung || ' (' || oe.organisationseinheittyp_kurzbz || ')' AS bezeichnung, + tree.path || oe.oe_kurzbz || '|' AS path, + oe.organisationseinheittyp_kurzbz + FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz) ) - SELECT oe_kurzbz AS value, substring(regexp_replace(path, '[A-z]+\|', '-','g')||bezeichnung,2) AS name, path FROM tree "; - if (!empty($typ)) - $qry .= 'WHERE organisationseinheittyp_kurzbz IN ('.$typ.') '; - $qry .= 'ORDER BY path;'; - - return $this->execQuery($qry); + SELECT oe_kurzbz AS id, + SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description + FROM tree"; + + $parametersArray = array(); + + if (is_array($typ) && count($typ) > 0) + { + $parametersArray[] = $typ; + $qry .= ' WHERE organisationseinheittyp_kurzbz IN ?'; + } + + $qry .= ' ORDER BY path'; + + return $this->execQuery($qry, $parametersArray); } /** diff --git a/application/views/system/messageReply.php b/application/views/system/messageReply.php index 6cb77f639..ea98f56fd 100644 --- a/application/views/system/messageReply.php +++ b/application/views/system/messageReply.php @@ -18,7 +18,13 @@
           - widgetlib->widget("Vorlage_widget", array("title" => "Vorlage")); ?> + widgetlib->widget( + 'Vorlage_widget', + null, + array('name' => 'vorlage', 'id' => 'vorlageDnD') + ); + ?>
@@ -34,19 +40,26 @@ $url = str_replace("/system/Messages/reply", "/system/Messages/getVorlage", $_SERVER["REQUEST_URI"]); ?> - function getVorlageText(vorlage_kurzbz) - { - $.ajax({ - dataType: "json", - url: "", - data: {"vorlage_kurzbz": vorlage_kurzbz}, - success: function(data, textStatus, jqXHR) { - tinyMCE.activeEditor.setContent(data.retval[0].text + "body; ?>"); - }, - error: function(jqXHR, textStatus, errorThrown) { - alert(textStatus + " - " + errorThrown); - } - }); - } + $(document).ready(function() { + if ($("#vorlageDnD")) + { + $("#vorlageDnD").change(function() { + if (this.value != '') + { + $.ajax({ + dataType: "json", + url: "", + data: {"vorlage_kurzbz": this.value}, + success: function(data, textStatus, jqXHR) { + tinyMCE.activeEditor.setContent(data.retval[0].text + "body; ?>"); + }, + error: function(jqXHR, textStatus, errorThrown) { + alert(textStatus + " - " + errorThrown); + } + }); + } + }); + } + }); diff --git a/application/views/system/messageWrite.php b/application/views/system/messageWrite.php index 501498811..193403e88 100644 --- a/application/views/system/messageWrite.php +++ b/application/views/system/messageWrite.php @@ -72,7 +72,13 @@
- widgetlib->widget("Vorlage_widget", array("title" => "Vorlage")); ?> + widgetlib->widget( + 'Vorlage_widget', + null, + array('name' => 'vorlage', 'id' => 'vorlageDnD') + ); + ?>   @@ -186,6 +192,31 @@ } }); } + + if ($("#vorlageDnD")) + { + $("#vorlageDnD").change(function() { + if (this.value != '') + { + + + $.ajax({ + dataType: "json", + url: "", + data: {"vorlage_kurzbz": this.value}, + success: function(data, textStatus, jqXHR) { + tinyMCE.get("bodyTextArea").setContent(data.retval[0].text); + $("#subject").val(data.retval[0].subject); + }, + error: function(jqXHR, textStatus, errorThrown) { + alert(textStatus + " - " + errorThrown); + } + }); + } + }); + } }); function tinymcePreviewSetContent() @@ -222,25 +253,5 @@ } }); } - - function getVorlageText(vorlage_kurzbz) - { - - - $.ajax({ - dataType: "json", - url: "", - data: {"vorlage_kurzbz": vorlage_kurzbz}, - success: function(data, textStatus, jqXHR) { - tinyMCE.get("bodyTextArea").setContent(data.retval[0].text); - $("#subject").val(data.retval[0].subject); - }, - error: function(jqXHR, textStatus, errorThrown) { - alert(textStatus + " - " + errorThrown); - } - }); - } - + \ No newline at end of file diff --git a/application/views/system/phraseinhaltEdit.php b/application/views/system/phraseinhaltEdit.php index 8110cd8e5..76771f122 100644 --- a/application/views/system/phraseinhaltEdit.php +++ b/application/views/system/phraseinhaltEdit.php @@ -11,11 +11,43 @@ - + - - + + + + + + + + + + - + diff --git a/application/views/system/templatetextEdit.php b/application/views/system/vorlage/templatetextEdit.php similarity index 60% rename from application/views/system/templatetextEdit.php rename to application/views/system/vorlage/templatetextEdit.php index a2e490fc8..40ebd1599 100644 --- a/application/views/system/templatetextEdit.php +++ b/application/views/system/vorlage/templatetextEdit.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'TemplateEdit', 'tinymce' => true, 'jsonforms' => true)); + $this->load->view('templates/header', array('title' => 'VorlageEdit', 'tinymce' => true, 'jsonforms' => true)); ?>
@@ -7,9 +7,31 @@

Vorlagetext:

- OE:widgetlib->widget("organisationseinheit_widget", array('oe_kurzbz' => $oe_kurzbz, 'typ' => "'Erhalter','Studienzentrum','Studiengang','Lehrgang'")); ?> - Sprache:widgetlib->widget("sprache_widget", array('sprache' => $sprache)); ?> - OrgForm:widgetlib->widget("orgform_widget", array('orgform' => $orgform_kurzbz)); ?> + + OE: widgetlib->widget( + 'Organisationseinheit_widget', + array( + DropdownWidget::SELECTED_ELEMENT => $oe_kurzbz, + 'typ' => array('Erhalter', 'Studienzentrum', 'Studiengang', 'Lehrgang') + ), + array('name' => 'organisationseinheit', 'id' => 'organisationseinheitDnD') + ); + ?> + Sprache: widgetlib->widget( + 'Sprache_widget', + array(DropdownWidget::SELECTED_ELEMENT => $sprache), + array('name' => 'sprache', 'id' => 'spracheDnD') + ); + ?> + OrgForm: widgetlib->widget( + 'Orgform_widget', + array(DropdownWidget::SELECTED_ELEMENT => $orgform_kurzbz), + array('name' => 'orgform', 'id' => 'orgformDnD') + ); + ?> Version: Aktiv: @@ -21,7 +43,7 @@

Preview-Data

-
+ widgetlib->widget("jsonforms_widget", array('id' => 'dataform', 'schema' => $schema)); ?> @@ -38,6 +60,6 @@ } -
OEwidgetlib->widget("organisationseinheit_widget", array('oe_kurzbz' => $orgeinheit_kurzbz)); ?> + widgetlib->widget( + 'Organisationseinheit_widget', + array(DropdownWidget::SELECTED_ELEMENT => $orgeinheit_kurzbz), + array('name' => 'organisationseinheit', 'id' => 'organisationseinheitDnD') + ); + ?> + Preview
Orgformwidgetlib->widget("orgform_widget", array('orgform_kurzbz' => $orgform_kurzbz)); ?>
Sprachewidgetlib->widget("sprache_widget", array('sprache' => $sprache)); ?>
Orgform + widgetlib->widget( + 'Orgform_widget', + array(DropdownWidget::SELECTED_ELEMENT => $orgform_kurzbz), + array('name' => 'orgform', 'id' => 'orgformDnD') + ); + ?> +
Sprache + widgetlib->widget( + 'Sprache_widget', + array(DropdownWidget::SELECTED_ELEMENT => $sprache), + array('name' => 'sprache', 'id' => 'spracheDnD') + ); + ?> +
Text
diff --git a/application/views/system/templateLinkDocuments.php b/application/views/system/vorlage/templateLinkDocuments.php similarity index 100% rename from application/views/system/templateLinkDocuments.php rename to application/views/system/vorlage/templateLinkDocuments.php diff --git a/application/views/system/templates.php b/application/views/system/vorlage/templates.php similarity index 54% rename from application/views/system/templates.php rename to application/views/system/vorlage/templates.php index bb1d85a63..c2130c267 100644 --- a/application/views/system/templates.php +++ b/application/views/system/vorlage/templates.php @@ -2,17 +2,17 @@ - VileSci - Templates + VileSci - Vorlage - - + + <body bgcolor="#FFFFFF"> This application works only with a frames-enabled browser.<br /> - <a href="TemplatesList">Use without frames</a> + <a href="VorlageList">Use without frames</a> </body> diff --git a/application/views/system/templatesEdit.php b/application/views/system/vorlage/templatesEdit.php similarity index 91% rename from application/views/system/templatesEdit.php rename to application/views/system/vorlage/templatesEdit.php index 46d63a88c..8634b34ab 100644 --- a/application/views/system/templatesEdit.php +++ b/application/views/system/vorlage/templatesEdit.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'TemplateEdit', 'jsoneditor' => true)); + $this->load->view('templates/header', array('title' => 'VorlageEdit', 'jsoneditor' => true)); ?>
diff --git a/application/views/system/templatesList.php b/application/views/system/vorlage/templatesList.php similarity index 82% rename from application/views/system/templatesList.php rename to application/views/system/vorlage/templatesList.php index 1543a804e..3d517e02d 100644 --- a/application/views/system/templatesList.php +++ b/application/views/system/vorlage/templatesList.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'TemplatesList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}')); + $this->load->view('templates/header', array('title' => 'VorlageList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '4:{sorter:false}')); ?>
@@ -23,7 +23,7 @@ MimeType
vorlage_kurzbz; ?>
vorlage_kurzbz; ?> bezeichnung; ?> anmerkung; ?> mimetype; ?>