From 6bf7d46acef369efbcb6a911a9207431a5c3d9ea Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 18 Nov 2019 15:04:52 +0100 Subject: [PATCH 01/25] - Added securimage via composer - Added securimage in application/views/templates/FHC-Header.php --- application/views/templates/FHC-Header.php | 51 ++++--- composer.json | 2 + composer.lock | 153 ++++++++++++++------- 3 files changed, 137 insertions(+), 69 deletions(-) diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index 3c1327d5f..03ee011b7 100644 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -18,6 +18,7 @@ $addons = isset($addons) ? $addons : false; $ajaxlib = isset($ajaxlib) ? $ajaxlib : false; $bootstrap = isset($bootstrap) ? $bootstrap : false; + $captcha = isset($captcha) ? $captcha : false; $dialoglib = isset($dialoglib) ? $dialoglib : false; $filterwidget = isset($filterwidget) ? $filterwidget : false; $fontawesome = isset($fontawesome) ? $fontawesome : false; @@ -62,12 +63,6 @@ // Font Awesome CSS if ($fontawesome === true) generateCSSsInclude('vendor/components/font-awesome/css/font-awesome.min.css'); - // PivotUI CSS - if ($pivotui === true) - { - generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css'); - } - // SB Admin 2 template CSS if ($sbadmintemplate === true) { @@ -75,6 +70,15 @@ generateCSSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css'); } + // Securimage CSS + if ($captcha === true) generateCSSsInclude('vendor/dapphp/securimage/securimage.css'); + + // PivotUI CSS + if ($pivotui === true) + { + generateCSSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.css'); + } + // Table sorter CSS if ($tablesorter === true) { @@ -107,6 +111,9 @@ // Eventually required CSS generateCSSsInclude($customCSSs); // Eventually required CSS + // CSS End + // -------------------------------------------------------------------------------------------------------- + // -------------------------------------------------------------------------------------------------------- // Javascripts @@ -132,19 +139,32 @@ } // jQuery checkboxes + // NOTE: keep it after jQuery includes if ($jquerycheckboxes === true) { generateJSsInclude('vendor/rmariuzzo/jquery-checkboxes/dist/jquery.checkboxes-1.0.7.min.js'); } - // Bootstrap JS - if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js'); - // jQuery treetable // NOTE: keep it after jQuery includes if ($jquerytreetable === true) generateJSsInclude('vendor/ludo/jquery-treetable/jquery.treetable.js'); - // MomentJS + // Bootstrap JS + if ($bootstrap === true) generateJSsInclude('vendor/twbs/bootstrap/dist/js/bootstrap.min.js'); + + // SB Admin 2 template JS + if ($sbadmintemplate === true) + { + generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.js'); + generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js'); + generateBackwardCompatibleJSMsIe('vendor/afarkas/html5shiv/dist/html5shiv.min.js'); + generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js'); + } + + // Securimage JS + if ($captcha === true) generateJSsInclude('vendor/dapphp/securimage/securimage.js'); + + // Moment JS if ($momentjs === true) { generateJSsInclude('vendor/moment/momentjs/min/moment.min.js'); @@ -152,7 +172,7 @@ generateJSsInclude('vendor/moment/momentjs/locale/en-ie.js'); } - // PivotUI CSS + // PivotUI JS if ($pivotui === true) { generateJSsInclude('vendor/nicolaskruchten/pivottable/dist/pivot.min.js'); @@ -176,15 +196,6 @@ // Tinymce JS if ($tinymce === true) generateJSsInclude('vendor/tinymce/tinymce/tinymce.min.js'); - // SB Admin 2 template JS - if ($sbadmintemplate === true) - { - generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/vendor/metisMenu/metisMenu.min.js'); - generateJSsInclude('vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/js/sb-admin-2.min.js'); - generateBackwardCompatibleJSMsIe('vendor/afarkas/html5shiv/dist/html5shiv.min.js'); - generateBackwardCompatibleJSMsIe('vendor/scottjehl/Respond/dest/respond.min.js'); - } - // -------------------------------------------------------------------------------------------------------- // From public folder diff --git a/composer.json b/composer.json index 636c6da42..7fcf8d970 100644 --- a/composer.json +++ b/composer.json @@ -258,6 +258,8 @@ "components/font-awesome": "^4.7", "components/angular.js": "1.3.16", + "dapphp/securimage": "3.6.7", + "easyrdf/easyrdf": "0.9.*", "fgelinas/timepicker": "^0.3.3", diff --git a/composer.lock b/composer.lock index 0b869361a..3c4c83d6a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "44a02c1e72626f05e682de2030c8adad", - "content-hash": "e0898c2ba3d18593851989029e54bedb", + "hash": "75b3277334ef6564aee20c9d2983d35d", + "content-hash": "68bb70c839d177e462a61df013b980c2", "packages": [ { "name": "BlackrockDigital/startbootstrap-sb-admin-2", @@ -47,7 +47,7 @@ ], "description": "Defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.", "homepage": "http://paulirish.com/2011/the-history-of-the-html5-shiv/", - "time": "2015-07-20T20:04:00+00:00" + "time": "2015-07-20 20:04:00" }, { "name": "alvaro-prieto/colResizable", @@ -126,7 +126,7 @@ }, "type": "library", "notification-url": "https://packagist.org/downloads/", - "time": "2016-09-02T11:31:54+00:00" + "time": "2016-09-02 11:31:54" }, { "name": "codeigniter/framework", @@ -159,7 +159,7 @@ ], "description": "The CodeIgniter framework", "homepage": "https://codeigniter.com", - "time": "2019-01-16T15:49:35+00:00" + "time": "2019-01-16 15:49:35" }, { "name": "components/angular.js", @@ -463,7 +463,7 @@ ], "description": "Shim repository for Angular.js", "homepage": "http://angularjs.org", - "time": "2015-06-07T20:10:38+00:00" + "time": "2015-06-07 20:10:38" }, { "name": "components/font-awesome", @@ -498,7 +498,7 @@ "OFL-1.1" ], "description": "The iconic font designed for use with Twitter Bootstrap.", - "time": "2016-10-25T10:56:23+00:00" + "time": "2016-10-25 10:56:23" }, { "name": "components/jquery", @@ -540,7 +540,7 @@ ], "description": "jQuery JavaScript Library", "homepage": "http://jquery.com", - "time": "2018-03-04T13:23:48+00:00" + "time": "2018-03-04 13:23:48" }, { "name": "components/jqueryui", @@ -625,7 +625,56 @@ } ], "description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.", - "time": "2016-09-16T05:47:55+00:00" + "time": "2016-09-16 05:47:55" + }, + { + "name": "dapphp/securimage", + "version": "3.6.7", + "source": { + "type": "git", + "url": "https://github.com/dapphp/securimage.git", + "reference": "1ecb884797c66e01a875c058def46c85aecea45b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dapphp/securimage/zipball/1ecb884797c66e01a875c058def46c85aecea45b", + "reference": "1ecb884797c66e01a875c058def46c85aecea45b", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "php": ">=5.4" + }, + "suggest": { + "ext-pdo": "For database storage support", + "ext-pdo_mysql": "For MySQL database support", + "ext-pdo_sqlite": "For SQLite3 database support" + }, + "type": "library", + "autoload": { + "classmap": [ + "securimage.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Drew Phillips", + "email": "drew@drew-phillips.com" + } + ], + "description": "PHP CAPTCHA Library", + "homepage": "https://www.phpcaptcha.org", + "keywords": [ + "Forms", + "anti-spam", + "captcha", + "security" + ], + "time": "2018-03-09 06:07:41" }, { "name": "easyrdf/easyrdf", @@ -687,7 +736,7 @@ "rdfa", "sparql" ], - "time": "2015-02-27T09:45:49+00:00" + "time": "2015-02-27 09:45:49" }, { "name": "fgelinas/timepicker", @@ -697,12 +746,6 @@ "url": "https://github.com/fgelinas/timepicker", "reference": "9aebe413b784696639220bc36b7c1e8a30fda129" }, - "dist": { - "type": "zip", - "url": "https://fgelinas.com/code/timepicker/releases/jquery-ui-timepicker-0.3.3.zip", - "reference": null, - "shasum": null - }, "type": "library" }, { @@ -753,7 +796,7 @@ "faker", "fixtures" ], - "time": "2018-07-12T10:23:15+00:00" + "time": "2018-07-12 10:23:15" }, { "name": "joeldbirch/superfish", @@ -895,7 +938,7 @@ "json", "schema" ], - "time": "2014-08-25T02:48:14+00:00" + "time": "2014-08-25 02:48:14" }, { "name": "kevinlebrun/colors.php", @@ -946,7 +989,7 @@ "console", "shell" ], - "time": "2018-05-30T08:34:23+00:00" + "time": "2018-05-30 08:34:23" }, { "name": "kingsquare/json-schema-form", @@ -980,11 +1023,17 @@ } ], "description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema", - "time": "2014-07-10T12:27:19+00:00" + "time": "2014-07-10 12:27:19" }, { "name": "ludo/jquery-treetable", "version": "3.2.0", + "dist": { + "type": "zip", + "url": "https://github.com/ludo/jquery-treetable/archive/3.2.0.zip", + "reference": null, + "shasum": null + }, "type": "library" }, { @@ -1036,7 +1085,7 @@ "keywords": [ "markdown" ], - "time": "2015-03-01T12:03:08+00:00" + "time": "2015-03-01 12:03:08" }, { "name": "ml/iri", @@ -1083,7 +1132,7 @@ "uri", "url" ], - "time": "2014-01-21T13:43:39+00:00" + "time": "2014-01-21 13:43:39" }, { "name": "ml/json-ld", @@ -1132,7 +1181,7 @@ "JSON-LD", "jsonld" ], - "time": "2018-11-18T20:26:18+00:00" + "time": "2018-11-18 20:26:18" }, { "name": "moment/momentjs", @@ -1194,7 +1243,7 @@ "sorting", "table" ], - "time": "2018-11-20T21:54:28+00:00" + "time": "2018-11-20 21:54:28" }, { "name": "nategood/httpful", @@ -1244,7 +1293,7 @@ "rest", "restful" ], - "time": "2015-10-26T16:11:30+00:00" + "time": "2015-10-26 16:11:30" }, { "name": "netcarver/textile", @@ -1297,7 +1346,7 @@ "plaintext", "textile" ], - "time": "2019-01-26T17:03:58+00:00" + "time": "2019-01-26 17:03:58" }, { "name": "nicolaskruchten/pivottable", @@ -1340,7 +1389,7 @@ "pivottable", "table" ], - "time": "2018-11-04T18:21:09+00:00" + "time": "2018-11-04 18:21:09" }, { "name": "olifolkerd/tabulator", @@ -1443,7 +1492,7 @@ "x.509", "x509" ], - "time": "2019-03-10T16:53:45+00:00" + "time": "2019-03-10 16:53:45" }, { "name": "psr/log", @@ -1490,7 +1539,7 @@ "psr", "psr-3" ], - "time": "2018-11-20T15:27:04+00:00" + "time": "2018-11-20 15:27:04" }, { "name": "rdlowrey/auryn", @@ -1551,11 +1600,17 @@ "dic", "ioc" ], - "time": "2017-05-15T06:26:46+00:00" + "time": "2017-05-15 06:26:46" }, { "name": "rmariuzzo/jquery-checkboxes", "version": "1.0.7", + "dist": { + "type": "zip", + "url": "https://github.com/rmariuzzo/checkboxes.js/archive/v1.0.7.zip", + "reference": null, + "shasum": null + }, "type": "library" }, { @@ -1607,7 +1662,7 @@ "php", "template" ], - "time": "2016-02-01T16:31:13+00:00" + "time": "2016-02-01 16:31:13" }, { "name": "rougin/combustor", @@ -1672,7 +1727,7 @@ "generator", "php" ], - "time": "2016-02-14T10:36:58+00:00" + "time": "2016-02-14 10:36:58" }, { "name": "rougin/describe", @@ -1725,7 +1780,7 @@ "describe", "php" ], - "time": "2016-03-24T18:17:47+00:00" + "time": "2016-03-24 18:17:47" }, { "name": "rougin/refinery", @@ -1790,7 +1845,7 @@ "php", "refinery" ], - "time": "2016-03-04T16:55:32+00:00" + "time": "2016-03-04 16:55:32" }, { "name": "rougin/spark-plug", @@ -1849,7 +1904,7 @@ "php", "spark-plug" ], - "time": "2015-10-23T08:27:10+00:00" + "time": "2015-10-23 08:27:10" }, { "name": "scottjehl/Respond", @@ -1921,7 +1976,7 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2018-11-20T15:55:20+00:00" + "time": "2018-11-20 15:55:20" }, { "name": "symfony/debug", @@ -1978,7 +2033,7 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2016-07-30T07:22:48+00:00" + "time": "2016-07-30 07:22:48" }, { "name": "symfony/polyfill-ctype", @@ -2036,7 +2091,7 @@ "polyfill", "portable" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-02-06 07:57:58" }, { "name": "symfony/polyfill-mbstring", @@ -2095,7 +2150,7 @@ "portable", "shim" ], - "time": "2019-02-06T07:57:58+00:00" + "time": "2019-02-06 07:57:58" }, { "name": "symfony/yaml", @@ -2145,7 +2200,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2018-11-11T11:18:13+00:00" + "time": "2018-11-11 11:18:13" }, { "name": "tapmodo/Jcrop", @@ -2202,7 +2257,7 @@ "tinymce", "wysiwyg" ], - "time": "2019-03-20T13:56:58+00:00" + "time": "2019-03-20 13:56:58" }, { "name": "tomazdragar/SimpleCropper", @@ -2263,7 +2318,7 @@ "responsive", "web" ], - "time": "2019-02-13T15:55:38+00:00" + "time": "2019-02-13 15:55:38" }, { "name": "twig/twig", @@ -2329,7 +2384,7 @@ "keywords": [ "templating" ], - "time": "2019-05-14T11:59:08+00:00" + "time": "2019-05-14 11:59:08" }, { "name": "zetacomponents/base", @@ -2393,7 +2448,7 @@ ], "description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.", "homepage": "https://github.com/zetacomponents", - "time": "2017-11-28T11:30:00+00:00" + "time": "2017-11-28 11:30:00" }, { "name": "zetacomponents/database", @@ -2470,7 +2525,7 @@ ], "description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.", "homepage": "https://github.com/zetacomponents", - "time": "2017-11-28T10:55:26+00:00" + "time": "2017-11-28 10:55:26" }, { "name": "zetacomponents/document", @@ -2521,7 +2576,7 @@ ], "description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.", "homepage": "https://github.com/zetacomponents", - "time": "2013-12-19T11:40:00+00:00" + "time": "2013-12-19 11:40:00" }, { "name": "zetacomponents/workflow", @@ -2587,7 +2642,7 @@ ], "description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.", "homepage": "https://github.com/zetacomponents", - "time": "2014-09-27T19:26:10+00:00" + "time": "2014-09-27 19:26:10" }, { "name": "zetacomponents/workflow-database-tiein", @@ -2654,7 +2709,7 @@ ], "description": "Contains the database backend for the Workflow component.", "homepage": "https://github.com/zetacomponents", - "time": "2014-09-27T19:26:10+00:00" + "time": "2014-09-27 19:26:10" }, { "name": "zetacomponents/workflow-event-log-tiein", @@ -2714,7 +2769,7 @@ ], "description": "Contains the EventLog listener for the Workflow component.", "homepage": "https://github.com/zetacomponents", - "time": "2007-12-17T09:04:44+00:00" + "time": "2007-12-17 09:04:44" } ], "packages-dev": [], From ceb3f212c94da92c7302607bb8ea5df80a1cbdf2 Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 22 Nov 2019 12:05:07 +0100 Subject: [PATCH 02/25] - Added support for language in session in function getUserLanguage from helper hlp_language_helper - If the language is loaded from database then it is checked that the language is enabled --- application/helpers/hlp_language_helper.php | 42 +++++++++++++++------ application/models/person/Person_model.php | 22 ++--------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/application/helpers/hlp_language_helper.php b/application/helpers/hlp_language_helper.php index 4dfb53c7b..8090e1e8b 100644 --- a/application/helpers/hlp_language_helper.php +++ b/application/helpers/hlp_language_helper.php @@ -18,28 +18,48 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); /** * Function to retrieve the language of the logged user - * If is not possible to retrieve it, then the default system language is returnd - * If as parameter is given a valid language the it's returned useful to avoid - * to write the same control structures for the language + * If is not possible to retrieve it, then the default system language is returned + * NOTE: If the given parameter is a valid language then it is returned + * It is useful to avoid to write a lot of "if else" structures */ function getUserLanguage($language = null) { + // If the given parameter is a valid language then return it if (!isEmptyString($language)) return $language; - $ci =& get_instance(); // get CI instance - - // Use the default system language, if it's possible retrieves the language for the logged user + // Use the default system language as fallback $language = DEFAULT_LANGUAGE; - // Checks if the user is authenticated to retrieve the users's language - // NOTE: this helper could be called when the user is not logged in the system - // so this is why is checked if the function getAuthUID exists - if (function_exists('getAuthUID')) + + // If the language is present in the session and it is valid + if (isset($_SESSION['sprache']) && !isEmptyString($_SESSION['sprache'])) { + $language = $_SESSION['sprache']; // then use it + } + // Otherwise checks if the user is authenticated to retrieve the users's language + // NOTE: this helper could be called when the user is NOT logged in the system + // therefore is checked if the user is logged + elseif (isLogged()) + { + $ci =& get_instance(); // get CI instance + // NOTE: Stores the loaded model with the alias PersonModelLanguage to avoid to overwrite // an already loaded PersonModel used somewhere else $ci->load->model('person/Person_model', 'PersonModelLanguage'); - $language = $ci->PersonModelLanguage->getLanguage(getAuthUID()); + // Retrieves language/s for the logged user + $languagesDB = $ci->PersonModelLanguage->getLanguage(getAuthUID()); + if (hasData($languagesDB)) + { + // Looks for the first valid language + foreach (getData($languagesDB) as $languageDB) + { + if (!isEmptyString($languageDB->sprache)) + { + $language = $languageDB->sprache; + break; + } + } + } } return $language; diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 1291427b6..c935cfbaa 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -207,28 +207,12 @@ class Person_model extends DB_Model */ public function getLanguage($uid) { - $language = DEFAULT_LANGUAGE; - + $this->addSelect('public.tbl_person.sprache'); $this->addJoin('public.tbl_benutzer', 'person_id'); + $this->addJoin('public.tbl_sprache', 'sprache'); $this->addOrder('public.tbl_person.updateamum', 'DESC'); $this->addOrder('public.tbl_person.insertvon', 'DESC'); - $persons = $this->loadWhere(array('uid' => $uid)); - - if (hasData($persons)) - { - for ($i = 0; $i < count($persons->retval); $i++) - { - $person = $persons->retval[$i]; - - if (!isEmptyString($person->sprache)) - { - $language = $person->sprache; - break; - } - } - } - - return $language; + return $this->loadWhere(array('uid' => $uid, 'content' => true)); } } From 0f9b29c52ed7086a14c458d23b289de5e8250b87 Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 25 Nov 2019 16:25:10 +0100 Subject: [PATCH 03/25] - Added private method _checkHTTPS to core/FHC_Controller - Method _checkHTTPS is called in core/FHC_Controller constructor immediately after the parent constructor call - Method _checkHTTPS checks if the HTTPS protocol is enabled and used, if NOT then an error is raised and the execution is terminated --- application/core/FHC_Controller.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/application/core/FHC_Controller.php b/application/core/FHC_Controller.php index 234cf6a6f..93c324b21 100644 --- a/application/core/FHC_Controller.php +++ b/application/core/FHC_Controller.php @@ -21,6 +21,9 @@ abstract class FHC_Controller extends CI_Controller { parent::__construct(); + // NOTE: placed here before performing anything else!!! + $this->_checkHTTPS(); + $this->_controllerId = null; // set _controllerId as null by default // Loads helper message to manage returning messages @@ -129,4 +132,20 @@ abstract class FHC_Controller extends CI_Controller { $this->output->set_content_type('application/json')->set_output(json_encode($mixed)); } + + //------------------------------------------------------------------------------------------------------------------ + // Private methods + + /** + * Checks if the call is performed via web and if HTTPS is enabled and used + * If NOT then an error is raised and the execution is terminated + */ + private function _checkHTTPS() + { + // If NOT called from command line and if the HTTPS protocol is NOT enabled + if (!$this->input->is_cli_request() && !isset($_SERVER['HTTPS'])) + { + show_error('This web site cannot work correctly without the HTTPS protocol enabled'); + } + } } From 0319d0cc2aead3884193e71c36157f07c5a75f5b Mon Sep 17 00:00:00 2001 From: Paolo Date: Tue, 26 Nov 2019 15:24:26 +0100 Subject: [PATCH 04/25] - Added new constants in config/constants.php: - LANG_SESSION_ACTIVE_LANGUAGES - LANG_SESSION_CURRENT_LANGUAGE - Added new functions in helper hlp_language_helper: - setUserLanguage - getDBActiveLanguages - getActiveLanguages - Adapted code to make use of them - Added new controller controllers/widgets/Language --- application/config/constants.php | 4 +- application/controllers/widgets/Language.php | 31 ++++++ application/helpers/hlp_language_helper.php | 99 ++++++++++++++++---- 3 files changed, 116 insertions(+), 18 deletions(-) create mode 100644 application/controllers/widgets/Language.php diff --git a/application/config/constants.php b/application/config/constants.php index ac2ecc649..621f58ecb 100644 --- a/application/config/constants.php +++ b/application/config/constants.php @@ -64,7 +64,9 @@ define('LDAP_TOO_MANY_USER_DN', 11); |-------------------------------------------------------------------------- */ define('LANG_SESSION_NAME', 'LANGUAGE'); -define('LANG_SESSION_INDEXES', 'LANGUAGE_INDEXES'); +define('LANG_SESSION_INDEXES', 'INDEXES'); +define('LANG_SESSION_ACTIVE_LANGUAGES', 'ACTIVE_LANGUAGES'); +define('LANG_SESSION_CURRENT_LANGUAGE', 'sprache'); // NOTE: it is not under LANG_SESSION_NAME /* |-------------------------------------------------------------------------- diff --git a/application/controllers/widgets/Language.php b/application/controllers/widgets/Language.php new file mode 100644 index 000000000..8269d3b2d --- /dev/null +++ b/application/controllers/widgets/Language.php @@ -0,0 +1,31 @@ +input->post('language'); + + $this->outputJson(setUserLanguage($language)); + } +} diff --git a/application/helpers/hlp_language_helper.php b/application/helpers/hlp_language_helper.php index 8090e1e8b..1678a4102 100644 --- a/application/helpers/hlp_language_helper.php +++ b/application/helpers/hlp_language_helper.php @@ -31,9 +31,9 @@ function getUserLanguage($language = null) $language = DEFAULT_LANGUAGE; // If the language is present in the session and it is valid - if (isset($_SESSION['sprache']) && !isEmptyString($_SESSION['sprache'])) + if (isset($_SESSION[LANG_SESSION_CURRENT_LANGUAGE]) && !isEmptyString($_SESSION[LANG_SESSION_CURRENT_LANGUAGE])) { - $language = $_SESSION['sprache']; // then use it + $language = $_SESSION[LANG_SESSION_CURRENT_LANGUAGE]; // then use it } // Otherwise checks if the user is authenticated to retrieve the users's language // NOTE: this helper could be called when the user is NOT logged in the system @@ -82,31 +82,21 @@ function getPhraseByLanguage($phraseLanguagesArray, $language) $langArray = getSessionElement(LANG_SESSION_NAME, LANG_SESSION_INDEXES); if ($langArray == null) // If not already loaded in session { - // Loads the Sprache_model to retrieve the language settings from the DB - // NOTE: Stores the loaded model with the alias SpracheModelLanguage to avoid to overwrite - // an already loaded SpracheModel used somewhere else - $ci->load->model('system/Sprache_model', 'SpracheModelLanguage'); - - // Add order clause by index and select only the sprache column - $ci->SpracheModelLanguage->addOrder('index'); - $ci->SpracheModelLanguage->addSelect('sprache'); - - // Retrieves from public.tbl_sprache - $dbLanguages = $ci->SpracheModelLanguage->load(); + // Retrieves active languages + $dbLanguages = getDBActiveLanguages(); if (hasData($dbLanguages)) // If everything is ok and contains data { $index = 0; // Incremental integer - $languageIndexes = array(); // Array that will contains languages and their indexes + $langArray = array(); // Array that will contains languages and their indexes // Loops through database results foreach (getData($dbLanguages) as $dbLanguage) { - $languageIndexes[$dbLanguage->sprache] = $index++; // set $languageIndexes array elements + $langArray[$dbLanguage->sprache] = $index++; // set $languageIndexes array elements } } - $langArray = $languageIndexes; // copy $languageIndexes to $langArray - // Set session element $_SESSION['LANG']['LANG_INDEXES'] with $languageIndexes + // Set session element $_SESSION['LANG']['LANG_INDEXES'] with $langArray setSessionElement(LANG_SESSION_NAME, LANG_SESSION_INDEXES, $langArray); } @@ -120,3 +110,78 @@ function getPhraseByLanguage($phraseLanguagesArray, $language) return $phrase; } + +/** + * Tries to load active languages from session, if not present then loads them from database and stores them in session + */ +function getActiveLanguages() +{ + $languagesArray = getSessionElement(LANG_SESSION_NAME, LANG_SESSION_ACTIVE_LANGUAGES); + if ($languagesArray == null) + { + $languagesArray = array(); + + // Retrieves from public.tbl_sprache + $dbLanguages = getDBActiveLanguages(); + if (hasData($dbLanguages)) + { + // Loops through database results + foreach (getData($dbLanguages) as $dbLanguage) + { + $languagesArray[$dbLanguage->sprache] = $dbLanguage->bezeichnung; // set $languageIndexes array elements + } + } + + // Set session element $_SESSION['LANG']['LANG_SESSION_ACTIVE_LANGUAGES'] with $languagesArray + setSessionElement(LANG_SESSION_NAME, LANG_SESSION_ACTIVE_LANGUAGES, $languagesArray); + } + + return $languagesArray; +} + +/** + * Loads active languages from database + */ +function getDBActiveLanguages() +{ + $ci =& get_instance(); // get CI instance + + // Loads the Sprache_model to retrieve the language settings from the DB + // NOTE: Stores the loaded model with the alias SpracheModelLanguage to avoid to overwrite + // an already loaded SpracheModel used somewhere else + $ci->load->model('system/Sprache_model', 'SpracheModelLanguage'); + + // Add order clause by index and select only the sprache column + $ci->SpracheModelLanguage->addOrder('index'); + $ci->SpracheModelLanguage->addSelect('sprache, bezeichnung'); + + // Retrieves from public.tbl_sprache + return $ci->SpracheModelLanguage->loadWhere(array('content' => true)); +} + +/** + * Sets the current language to render the GUI in session + */ +function setUserLanguage($language) +{ + $languageValid = false; + + // Checks if the given language is valid (present between active languages) + foreach (getActiveLanguages() as $languageName => $languageTranslation) + { + if ($language == $languageName) + { + $languageValid = true; + break; + } + } + + if ($languageValid) // if the provided language is valid + { + $_SESSION[LANG_SESSION_CURRENT_LANGUAGE] = $language; // stores it in session + + return success('Language successfully changed'); // return success!! + } + + return error('The given language is not valid'); // return an error +} From e910be58e31e964906c228652246cf11a55095ca Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 29 Nov 2019 16:37:33 +0100 Subject: [PATCH 05/25] Added phrases for account activation --- system/phrasesupdate.php | 140 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 4ec315575..10265f6f6 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -4074,6 +4074,146 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'title', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Account Aktivierung', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Account Activation', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'usage', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte wählen Sie ein Passwort für Ihren Account.
Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe, 1 Kleinbuchstabe und eine Ziffer.
Das Passwort darf keine Leerzeichen und Umlaute enthalten.
Erlaubte Sonderzeichen sind: -$#[]{}!().,*:;_', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please choose a password for your account
The password must contain at least 8 characters, of which 1 must be upper case, 1 lower case and 1 a numeral.
The password may not include spaces or umlauts.
The following special characters are allowed: -$#[]{}!().,*:;_', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'username', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Username', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Username', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'code', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Code', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Code', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'captcha', + 'phrase' => 'label', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Tippen Sie die angezeigten
Zeichen in das untere Feld.', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Enter the characters in
the field below.', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'captcha', + 'phrase' => 'reload', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Ich kann das Bild nicht lesen - neu laden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Reload picture', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'activate', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Abschicken', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Activate', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) ); From 5c3aed92f00c027ccabefd0c9e2332e2e29081a7 Mon Sep 17 00:00:00 2001 From: Paolo Date: Tue, 3 Dec 2019 16:07:45 +0100 Subject: [PATCH 06/25] Added missing phrase --- system/phrasesupdate.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 10265f6f6..8d36e8a43 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -3769,7 +3769,7 @@ When on hold, the date is only a reminder.', ), array( 'sprache' => 'English', - 'text' => 'Please enter the old an new password', + 'text' => 'Please enter the old and the new password', 'description' => '', 'insertvon' => 'system' ) @@ -4214,6 +4214,26 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) + ), + array( + 'app' => 'core', + 'category' => 'password', + 'phrase' => 'wrongCaptcha', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Captcha code falsch ', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Captcha code is wrong', + 'description' => '', + 'insertvon' => 'system' + ) + ) ) ); From 4cf6ed9e0c83942cba1011d267e57b403e1e2ae1 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 4 Dec 2019 13:27:49 +0100 Subject: [PATCH 07/25] Added new CryptLib as a collection of different encryption/hashing algorithms based on phpseclib --- application/libraries/CryptLib.php | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 application/libraries/CryptLib.php diff --git a/application/libraries/CryptLib.php b/application/libraries/CryptLib.php new file mode 100644 index 000000000..ea19f3e5b --- /dev/null +++ b/application/libraries/CryptLib.php @@ -0,0 +1,28 @@ +setBlockLength(256); + $cipher->setKey($key); + + if ($paddingDisabled === true) $cipher->disablePadding(); + + return $cipher->encrypt($value); + } +} From 64976c31df063a873341e669a6a1401881600d20 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 4 Dec 2019 13:56:10 +0100 Subject: [PATCH 08/25] Added new weblogservice type: API --- system/dbupdate_3.3.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index f73517090..0cc307bf2 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -3449,6 +3449,20 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_projekttyp LIMIT 1")) echo '
fue.tbl_projekttyp hinzugefuegt.'; } +// Add new webservice type in system.tbl_webservicetyp +if ($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webservicetyp_kurzbz = 'API';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_webservicetyp(webservicetyp_kurzbz, beschreibung) VALUES('API', 'Cronjob');"; + + if (!$db->db_query($qry)) + echo 'system.tbl_webservicetyp '.$db->db_last_error().'
'; + else + echo ' system.tbl_webservicetyp: Added webservice type "API"
'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From 6e89a917ae1293dab2d5f5fa5e3263667664eaf5 Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 4 Dec 2019 15:12:19 +0100 Subject: [PATCH 09/25] Added missing phrases --- system/phrasesupdate.php | 42 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 8d36e8a43..0ddd71019 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -4234,7 +4234,47 @@ When on hold, the date is only a reminder.', 'insertvon' => 'system' ) ) - ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'missingParameters', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Bitte geben Sie Benutzername, Code und Passwort ein', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Please enter username, code and password', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'core', + 'category' => 'account', + 'phrase' => 'wrongActivationCode', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Der angegebene Aktivierungscode ist falsch', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'The provided activation code is wrong', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ) ); From 29f923fb7138c1bf7851150b00390acaed72f2fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 6 Dec 2019 11:13:50 +0100 Subject: [PATCH 10/25] =?UTF-8?q?Statistiken=20korrigiert=20damit=20auch?= =?UTF-8?q?=20Stunden=20ohne=20Stundensatz=20aufscheinen=20Faktor=20aus=20?= =?UTF-8?q?Betragsberechnung=20f=C3=BCr=20Lehrauftr=C3=A4ge=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/fas.xul.php | 32 -- content/fasoverlay.js.php | 42 --- content/mitarbeiter/lehrtaetigkeit.pdf.php | 31 +- content/statistik/alvsstatistik.php | 7 +- content/statistik/koordinatorstunden.php | 137 ------- content/statistik/lehrauftragsgesamtliste.php | 283 --------------- .../statistik/lehrauftragsliste_gst.xls.php | 110 +++--- .../statistik/lehrauftragsliste_mail.xls.php | 208 ++++------- content/statistik/lektorenstatistik.php | 281 --------------- content/statistik/lvplanung.php | 92 +++-- content/statistik/lvplanung.xls.php | 15 +- content/statistik/lvplanunggesamtsj.php | 340 ------------------ content/statistik/projektarbeitexport.xls.php | 248 ++++++------- locale/de-AT/fas.dtd | 16 - 14 files changed, 340 insertions(+), 1502 deletions(-) delete mode 100644 content/statistik/koordinatorstunden.php delete mode 100644 content/statistik/lehrauftragsgesamtliste.php delete mode 100644 content/statistik/lektorenstatistik.php delete mode 100644 content/statistik/lvplanunggesamtsj.php diff --git a/content/fas.xul.php b/content/fas.xul.php index 2aecae047..3b273cd54 100644 --- a/content/fas.xul.php +++ b/content/fas.xul.php @@ -96,7 +96,6 @@ foreach($addon_obj->result as $addon) - @@ -115,14 +114,12 @@ foreach($addon_obj->result as $addon) - - @@ -317,12 +314,6 @@ foreach($addon_obj->result as $addon) - result as $addon) accesskey = "&menu-statistic-substatistik-alvsstatistik-html.accesskey;"/> - isBerechtigt('admin')) - { - echo ' - - - - - - '; - } - ?> result as $addon) command = "menu-statistic-studentenstatistik:command" accesskey = "&menu-statistic-studentenstatistik.accesskey;"/> - content/statistik/koordinatorstunden.php?oe_kurzbz='+oe_kurzbz,'Koordinatorstunden'); - } - catch(e) - { - alert('Bitte einen Fachbereich auswaehlen'); - return false; - } -} - // **** // * Erstellt das PDF File fuer die Lehrauftraege // * Studiengang muss ausgewaehlt sein @@ -1209,16 +1185,6 @@ function StatistikPrintStudentenstatistik() window.open('content/statistik/studentenstatistik.php?stsem='+stsem,'Studentenstatistik'); } -// **** -// * Liefert eine statistik ueber die Lektorenverteilung auf die Institute -// **** -function StatistikPrintLektorenstatistik() -{ - var stsem = getStudiensemester(); - - window.open('content/statistik/lektorenstatistik.php?stsem='+stsem,'Lektorenstatistik'); -} - // **** // * Liefert eine statistik ueber die Institutszuordnungen und Aufteilung auf intern/extern // **** @@ -1584,14 +1550,6 @@ function StatistikPrintALVSStatistik(format) window.open('content/statistik/alvsstatistik.php?format='+format,'ALVS-Statistik',''); } -// **** -// * Oeffnet die LVPlanunggesamtSJ Statistik -// **** -function StatistikPrintLvPlanungGesamtSJ() -{ - window.open('content/statistik/lvplanunggesamtsj.php','LVPlanungGesamtSJ',''); -} - // **** // * Oeffnet Studenten/Semester Statistik // **** diff --git a/content/mitarbeiter/lehrtaetigkeit.pdf.php b/content/mitarbeiter/lehrtaetigkeit.pdf.php index 1c5760531..28acffcf1 100644 --- a/content/mitarbeiter/lehrtaetigkeit.pdf.php +++ b/content/mitarbeiter/lehrtaetigkeit.pdf.php @@ -31,14 +31,12 @@ require_once('../../include/studiensemester.class.php'); require_once('../../include/phrasen.class.php'); require_once('../../include/benutzerberechtigung.class.php'); - $user = get_uid(); $sprache = getSprache(); $p = new phrasen($sprache); $doc = new dokument_export('Lehrtaetigkeit'); - if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -86,12 +84,12 @@ foreach($active_semester_arr as $active_semester) $studiensemester_start_date = $ss->start; $studiensemester_end_date = $ss->ende; - // * get total amount of semesterstunden of the lehreinheiten, where stundensatz > 0 + // * get total amount of semesterstunden of the lehreinheiten $total_semesterstunden = 0; foreach ($le_id_arr as $le_id) { $le_ma = new Lehreinheitmitarbeiter($le_id, $uid); - if ($le_ma && (!is_null ($le_ma->stundensatz) && $le_ma->stundensatz > 0)) + if ($le_ma) { $total_semesterstunden = $total_semesterstunden + $le_ma->semesterstunden; } @@ -140,15 +138,16 @@ foreach ($project_arr as $project) }, $projektstunden_per_semester )); - // * if studiensemester exists, sum up hours of projektarbeit, where stundensatz > 0 + // * if studiensemester exists, sum up hours of projektarbeit if ($studiensemester_index !== false) { - $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $projektstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $projektstunden; + $projektstunden_per_semester[$studiensemester_index]['total_semesterstunden'] = + $projektstunden_per_semester[$studiensemester_index]['total_semesterstunden'] + $projektstunden; } // * if not, create new index else { - $projektstunden_per_semester []= ( + $projektstunden_per_semester[] = ( array( 'studiensemester_kurzbz'=> $studiensemester_kurzbz, 'total_semesterstunden' => $projektstunden, @@ -171,7 +170,9 @@ foreach ($projektstunden_per_semester as $item) // * if studiensemester exists, merge lehreinheit- and projektarbeit hours if ($studiensemester_index !== false) { - $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] = $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + $item['total_semesterstunden']; + $semesterstunden_per_semester[$studiensemester_index]['total_semesterstunden'] = + $semesterstunden_per_semester [$studiensemester_index]['total_semesterstunden'] + + $item['total_semesterstunden']; } // * if not, create new index else @@ -202,12 +203,15 @@ $actual_studiensemester_index = array_search($actual_studiensemester, array_map( }, $semesterstunden_per_semester )); -// * if lector is teaching actually, split former teaching activities from actual teaching activities of actual studiensemester +// if lector is teaching actually, split former teaching activities +// from actual teaching activities of actual studiensemester $semesterstunden_of_actual_semester = array(); if ($actual_studiensemester_index !== false) { - $semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); // array with actual + future semester - $semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); // array with all former semester + // array with actual + future semester + $semesterstunden_of_actual_semester = array_slice($semesterstunden_per_semester, $actual_studiensemester_index); + // array with all former semester + $semesterstunden_per_semester = array_slice($semesterstunden_per_semester, 0, $actual_studiensemester_index); } // Semester begin and ending date of lehreinheit- and projektarbeit studiensemester @@ -257,7 +261,8 @@ if (!empty($semesterstunden_per_semester)) } else { - $data[]= array('total_ss_per_semester'=> ''); // empty if lector has no lehreinheit- or projektarbeitsstunden in the past (before the actual studiensemester) + // empty if lector has no lehreinheit- or projektarbeitsstunden in the past (before the actual studiensemester) + $data[]= array('total_ss_per_semester'=> ''); } // Add data to lehrtaetigkeit.xsl @@ -275,5 +280,3 @@ $doc->output(); // unlink doc from tmp-folder $doc->close(); - - diff --git a/content/statistik/alvsstatistik.php b/content/statistik/alvsstatistik.php index 982427c9a..ad2352896 100644 --- a/content/statistik/alvsstatistik.php +++ b/content/statistik/alvsstatistik.php @@ -64,7 +64,8 @@ $db = new basis_db(); $qry = " SELECT * FROM ( SELECT - lehrfach.oe_kurzbz as lehrfach_oe_kurzbz, tbl_lehrveranstaltung.studiengang_kz, geschlecht,sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semesterstunden + lehrfach.oe_kurzbz as lehrfach_oe_kurzbz, tbl_lehrveranstaltung.studiengang_kz, geschlecht, + sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semesterstunden FROM lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, @@ -79,8 +80,6 @@ SELECT * FROM ( tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND tbl_benutzer.person_id = tbl_person.person_id AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND - faktor<>0 AND - stundensatz<>0 AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id GROUP BY lehrfach.oe_kurzbz, geschlecht, tbl_lehrveranstaltung.studiengang_kz ) as a JOIN public.tbl_studiengang USING(studiengang_kz) @@ -116,9 +115,7 @@ WHERE tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektbetreuer.person_id=tbl_person.person_id AND - tbl_projektbetreuer.faktor<>0 AND tbl_projektbetreuer.stunden<>0 AND - tbl_projektbetreuer.stundensatz<>0 AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)." GROUP BY studiengang_kz,geschlecht"; diff --git a/content/statistik/koordinatorstunden.php b/content/statistik/koordinatorstunden.php deleted file mode 100644 index c9870a9e4..000000000 --- a/content/statistik/koordinatorstunden.php +++ /dev/null @@ -1,137 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Erstellt eine Liste der Koordinatoren eines Instituts und der Anzahl der Stunden - * die er in den jeweiligen Studiengaengen unterrichtet - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/studiengang.class.php'); - -echo ' - - -Koordinatorstunden - - - - - -'; - -$user = get_uid(); -loadVariables($user); -$db = new basis_db(); - -if(isset($_GET['oe_kurzbz'])) - $oe_kurzbz = $_GET['oe_kurzbz']; -else - die('Falsche Parameteruebergabe'); - -echo '

Koordinatorstunden - Organisationseinheit '.$oe_kurzbz.'

'; - -$stg_arr = array(); -$data = array(); -$name = array(); - -//alle Studiengaenge holen -$studiengang = new studiengang(); -$studiengang->getAll(); - -foreach ($studiengang->result as $row) - $stg_arr[$row->studiengang_kz]=$row->kuerzel; - -//Alle Fachbereichsleiter des uebergebenen Studienganges holen und -//Die Anzahl der Stunden die dieser in den einzelnen Studiengaengen haelt ermitteln -$qry = "SELECT - distinct on(tbl_lehreinheit.lehreinheit_id) - tbl_benutzerfunktion.uid, - tbl_lehreinheitmitarbeiter.semesterstunden, - tbl_lehrveranstaltung.studiengang_kz, - tbl_person.vorname, - tbl_person.nachname - FROM - public.tbl_benutzerfunktion - JOIN lehre.tbl_lehreinheitmitarbeiter ON(tbl_benutzerfunktion.uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - JOIN public.tbl_benutzer ON(tbl_benutzer.uid=tbl_benutzerfunktion.uid) - JOIN public.tbl_person ON(tbl_person.person_id=tbl_benutzer.person_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(tbl_benutzerfunktion.fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz) - WHERE - tbl_benutzerfunktion.funktion_kurzbz='fbk' AND - tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - ORDER BY tbl_lehreinheit.lehreinheit_id, nachname, vorname - "; - -if($db->db_query($qry)) -{ - while($row = $db->db_fetch_object()) - { - if(array_key_exists($row->uid, $data)) - { - if(array_key_exists($row->studiengang_kz, $data[$row->uid])) - { - $data[$row->uid][$row->studiengang_kz] += $row->semesterstunden; - } - else - $data[$row->uid][$row->studiengang_kz] = $row->semesterstunden; - } - else - $data[$row->uid][$row->studiengang_kz] = $row->semesterstunden; - - $name[$row->uid]['vorname']=$row->vorname; - $name[$row->uid]['nachname']=$row->nachname; - } -} - -echo '
- - - - - - - - '; - -$i=0; -foreach ($name as $uid=>$row) -{ - foreach ($data[$uid] as $stg=>$row2) - { - echo ' - - - - '; - $i++; - } -} -echo '
NameStudiengangStunden
'.$name[$uid]['vorname'].' '.$name[$uid]['nachname'].''.$stg_arr[$stg].''.$row2.'
'; -?> - - diff --git a/content/statistik/lehrauftragsgesamtliste.php b/content/statistik/lehrauftragsgesamtliste.php deleted file mode 100644 index 19a7fdd46..000000000 --- a/content/statistik/lehrauftragsgesamtliste.php +++ /dev/null @@ -1,283 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/** - * Erstellt ein Excel File mit allen Lektoren und den Studiengaengen in denen diese Unterrichten - * Diese Liste wird dann per Mail an die Geschaeftsstelle gesendet. - */ -require_once('../../config/vilesci.config.inc.php'); -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/mail.class.php'); - -$stsem = new studiensemester(); -$semester_aktuell = $stsem->getaktorNext(); - -$file = 'lehrauftragsgesamtliste.xls'; - -// Creating a workbook -$workbook = new Spreadsheet_Excel_Writer($file); -$workbook->setVersion(8); -// Creating a worksheet -$worksheet =& $workbook->addWorksheet("Lektoren"); -$worksheet->setInputEncoding('utf-8'); - -//Formate Definieren -$format_left =& $workbook->addFormat(); -$format_left->setLeft(2); - -$format_bold =& $workbook->addFormat(); -$format_bold->setBold(); - -$format_bold_border =& $workbook->addFormat(); -$format_bold_border->setBold(); -$format_bold_border->setBorder(2); - -$format_bold_center =& $workbook->addFormat(); -$format_bold_center->setBold(); -$format_bold_center->setAlign('center'); -$format_bold_center->setBorder(2); - -$format_number =& $workbook->addFormat(); -$format_number->setNumFormat('0,0.00'); - -$format_number_bold =& $workbook->addFormat(); -$format_number_bold->setNumFormat('0,0.00'); -$format_number_bold->setBold(); -$format_number_bold->setLeft(2); - -$i=0; -$studiensemester = new studiensemester(); -$stsem = $studiensemester->getNearest(); - -$worksheet->write(0,0,'Erstellt am '.date('d.m.Y')." Studiensemester: $stsem", $format_bold); -//Ueberschriften -$zeile=1; -$spalte=0; -$maxlength[$spalte]=10; -$worksheet->write($zeile+1,$spalte++,"Nachname", $format_bold); -$maxlength[$spalte]=10; -$worksheet->write($zeile+1,$spalte++,"Vorname", $format_bold); -$maxlength[$spalte]=10; -$worksheet->write($zeile+1,$spalte++,"UID", $format_bold); -$db = new basis_db(); -$qry = "SELECT - distinct tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel - FROM - lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem)." AND - tbl_lehreinheitmitarbeiter.faktor is not null AND - tbl_lehreinheitmitarbeiter.faktor<>0 AND - tbl_lehreinheitmitarbeiter.stundensatz is not null AND - tbl_lehreinheitmitarbeiter.stundensatz<>0 AND - tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - tbl_lehreinheitmitarbeiter.semesterstunden<>0 ORDER BY kuerzel"; -if(!$result = $db->db_query($qry)) - die('Fehler in qry'); - -while($row = $db->db_fetch_object($result)) -{ - $worksheet->write($zeile, $spalte,$row->kuerzel, $format_bold_center); - $worksheet->write($zeile, $spalte+1,$row->kuerzel, $format_bold_center); - $worksheet->write($zeile, $spalte+2,$row->kuerzel, $format_bold_center); - $worksheet->write($zeile, $spalte+3,$row->kuerzel, $format_bold_center); - $stg_spalte[$row->studiengang_kz]=$spalte; - $maxlength[$spalte]=7; - $worksheet->write($zeile+1, $spalte++,'Stunden', $format_bold_border); - $maxlength[$spalte]=5; - $worksheet->write($zeile+1, $spalte++,'Sätze', $format_bold_border); - $maxlength[$spalte]=6; - $worksheet->write($zeile+1, $spalte++,'Faktor', $format_bold_border); - $maxlength[$spalte]=6; - $worksheet->write($zeile+1, $spalte++,'Gesamt', $format_bold_border); - $worksheet->mergeCells($zeile,$spalte-4,$zeile,$spalte-1); -} -$maxlength[$spalte]=12; -$worksheet->write($zeile+1, $spalte,'Gesamtsumme', $format_bold); -$maxspalten = $spalte; - -function drawStg($stg) -{ - global $faktor_arr, $satz_arr, $stunden, $gesamt, $worksheet, $stg_spalte; - global $zeile, $gesamtsumme, $format_number, $maxlength, $format_left; - - $faktoren = ''; - $saetze = ''; - - foreach ($faktor_arr as $faktor) - { - if($faktoren!='') - $faktoren.=', '; - $faktoren.=$faktor; - } - - foreach ($satz_arr as $satz) - { - if($saetze!='') - $saetze.=', '; - $saetze.=$satz; - } - - if(strlen($stunden)>$maxlength[$stg_spalte[$stg]]) - $maxlength[$stg_spalte[$stg]]=strlen($stunden); - $worksheet->write($zeile, $stg_spalte[$stg], $stunden, $format_left); - - if(strlen($saetze)>$maxlength[$stg_spalte[$stg]+1]) - $maxlength[$stg_spalte[$stg]+1]=strlen($saetze); - $worksheet->write($zeile, $stg_spalte[$stg]+1, $saetze); - - if(strlen($faktoren)>$maxlength[$stg_spalte[$stg]+2]) - $maxlength[$stg_spalte[$stg]+2]=strlen($faktoren); - $worksheet->write($zeile, $stg_spalte[$stg]+2, $faktoren); - - if(strlen($gesamt)>$maxlength[$stg_spalte[$stg]+3]) - $maxlength[$stg_spalte[$stg]+3]=strlen($gesamt)+5; - $worksheet->write($zeile, $stg_spalte[$stg]+3, $gesamt, $format_number); - - $gesamtsumme += $gesamt; - $faktor_arr = array(); - $satz_arr = array(); - $stunden = 0; - $gesamt = 0; -} - -function drawGesamtsumme() -{ - global $maxspalten, $zeile, $gesamtsumme, $worksheet, $format_number_bold, $maxlength; - - if(strlen($gesamtsumme)>$maxlength[$maxspalten]) - $maxlength[$maxspalten]=strlen($gesamtsumme); - $worksheet->write($zeile, $maxspalten, $gesamtsumme, $format_number_bold); -} - -$qry = " -SELECT - mitarbeiter_uid, stundensatz, faktor, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as stunden, - stundensatz*sum(tbl_lehreinheitmitarbeiter.semesterstunden)*faktor AS gesamt, studiengang_kz, - nachname, vorname -FROM - lehre.tbl_lehreinheitmitarbeiter JOIN campus.vw_benutzer ON (mitarbeiter_uid=uid) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) -WHERE - studiensemester_kurzbz=".$db->db_add_param($stsem)." AND - tbl_lehreinheitmitarbeiter.faktor is not null AND - tbl_lehreinheitmitarbeiter.faktor<>0 AND - tbl_lehreinheitmitarbeiter.stundensatz is not null AND - tbl_lehreinheitmitarbeiter.stundensatz<>0 AND - tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - tbl_lehreinheitmitarbeiter.semesterstunden<>0 -GROUP BY mitarbeiter_uid, studiengang_kz, stundensatz, faktor, nachname, vorname ORDER BY nachname, vorname, studiengang_kz - "; - -if($result = $db->db_query($qry)) -{ - $lastuid=''; - $laststg=''; - $zeile++; - - while($row = $db->db_fetch_object($result)) - { - if($lastuid!=$row->mitarbeiter_uid) - { - if($lastuid!='') - { - // letzten Studiengang ausgeben - drawStg($laststg); - //Gesamtsumme ausgeben - drawGesamtsumme(); - } - $zeile++; - $lastuid=$row->mitarbeiter_uid; - $laststg=$row->studiengang_kz; - $faktor_arr = array(); - $satz_arr = array(); - $stunden = 0; - $gesamt = 0; - $gesamtsumme=0; - - if(strlen($row->nachname)>$maxlength[0]) - $maxlength[0]=strlen($row->nachname); - $worksheet->write($zeile, 0, $row->nachname); - - if(strlen($row->vorname)>$maxlength[1]) - $maxlength[1]=strlen($row->vorname); - $worksheet->write($zeile, 1, $row->vorname); - - if(strlen($row->mitarbeiter_uid)>$maxlength[2]) - $maxlength[2]=strlen($row->mitarbeiter_uid); - $worksheet->write($zeile, 2, $row->mitarbeiter_uid); - - foreach ($stg_spalte as $spalte) - { - $worksheet->write($zeile, $spalte, null, $format_left); - } - - } - - if($laststg!=$row->studiengang_kz && $laststg!='') - { - drawStg($laststg); - } - - if($row->faktor!='' && $row->faktor!='0' && $row->stunden!='' && $row->stunden!='0' && $row->stundensatz!='' && $row->stundensatz!='0') - { - if(!in_array($row->faktor, $faktor_arr)) - $faktor_arr[]=$row->faktor; - - if(!in_array($row->stundensatz, $satz_arr)) - $satz_arr[]=$row->stundensatz; - - $stunden += $row->stunden; - $gesamt += $row->gesamt; - } - $laststg = $row->studiengang_kz; - } - drawStg($laststg); - drawGesamtsumme(); -} -else - die('Fehler in qry'); - -$workbook->close(); - -//Mail versenden mit Excel File im Anhang - - $to = MAIL_GST; - - $subject = "Lehrauftragsgesamtliste ".date('d.m.Y'); - $message = "Dies ist eine automatische eMail!\nAnbei die Lehrauftragsgesamtliste vom ".date('d.m.Y'); - $fileatttype = "application/xls"; - $fileattname = "lehrauftragsgesamtliste_".date('Y_m_d').".xls"; - - $mail = new mail($to, 'vilesci@'.DOMAIN, $subject, $message); - $mail->addAttachmentBinary($file, $fileatttype, $fileattname); - - if($mail->send()) - echo "Email mit Lehrauftragsgesamtliste wurde versandt"; - else - echo "Fehler beim Versenden der Lehrauftragsgesamtliste"; -?> diff --git a/content/statistik/lehrauftragsliste_gst.xls.php b/content/statistik/lehrauftragsliste_gst.xls.php index b641ef05e..990216c09 100644 --- a/content/statistik/lehrauftragsliste_gst.xls.php +++ b/content/statistik/lehrauftragsliste_gst.xls.php @@ -30,12 +30,12 @@ require_once('../../include/studiengang.class.php'); if(isset($_GET['studiengang_kz']) && is_numeric($_GET['studiengang_kz'])) $studiengang_kz=$_GET['studiengang_kz']; -else +else die('studiengangs_kz muss uebergeben werden'); - + if(isset($_GET['semester']) && is_numeric($_GET['semester'])) $semester=$_GET['semester']; -else +else $semester=''; $user = get_uid(); @@ -78,46 +78,48 @@ $worksheet->write(2,++$i,"Kosten", $format_bold); $db = new basis_db(); //Daten holen $qry = "SELECT * FROM ( - SELECT - tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, - tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, tbl_mitarbeiter.fixangestellt, - tbl_lehreinheitmitarbeiter.faktor as faktor, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, + SELECT + tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, + tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, + tbl_mitarbeiter.fixangestellt, + tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden - FROM - lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter, + FROM + lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter, public.tbl_benutzer, public.tbl_person, lehre.tbl_lehrveranstaltung - WHERE - tbl_person.person_id = tbl_benutzer.person_id AND - tbl_benutzer.uid=tbl_mitarbeiter.mitarbeiter_uid AND - tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - studiengang_kz=".$db->db_add_param($studiengang_kz)." AND studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null - AND tbl_lehreinheitmitarbeiter.stundensatz<>0 AND tbl_lehreinheitmitarbeiter.faktor<>0 AND - EXISTS (SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)"; + WHERE + tbl_person.person_id = tbl_benutzer.person_id AND + tbl_benutzer.uid = tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_mitarbeiter.mitarbeiter_uid AND + tbl_lehreinheit.lehreinheit_id = tbl_lehreinheitmitarbeiter.lehreinheit_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND + studiengang_kz = ".$db->db_add_param($studiengang_kz)." + AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND + tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null + AND EXISTS (SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)"; if($semester!='') $qry.=" AND semester=".$db->db_add_param($semester); //Projektsbetreuungen -$qry.= " UNION - SELECT +$qry.= " UNION + SELECT tbl_lehreinheit.*, tbl_person.vorname, tbl_person.nachname, tbl_person.titelpre, - tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, tbl_mitarbeiter.fixangestellt, - 0 as faktor, 0 as stundensatz, + tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, + tbl_mitarbeiter.fixangestellt, + 0 as stundensatz, 0 as semesterstunden - FROM - lehre.tbl_lehreinheit, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, + FROM + lehre.tbl_lehreinheit, lehre.tbl_projektarbeit, lehre.tbl_projektbetreuer, public.tbl_mitarbeiter, public.tbl_benutzer, lehre.tbl_lehrveranstaltung, public.tbl_person WHERE - tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND - tbl_benutzer.person_id=tbl_projektbetreuer.person_id AND + tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND + tbl_benutzer.person_id = tbl_projektbetreuer.person_id AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND + tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND - tbl_person.person_id=tbl_projektbetreuer.person_id"; + tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + tbl_person.person_id = tbl_projektbetreuer.person_id"; if($semester!='') $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); $qry.=") as foo"; @@ -129,19 +131,19 @@ if($result = $db->db_query($qry)) $gesamtkosten = 0; $gesamtstunden = 0; $liste=array(); - + while($row = $db->db_fetch_object($result)) { //Gesamtstunden und Kosten ermitteln if(array_key_exists($row->mitarbeiter_uid, $liste)) { $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $liste[$row->mitarbeiter_uid]['gesamtstunden'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz*$row->faktor); + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz); } - else + else { $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz*$row->faktor; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz; } $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; @@ -149,18 +151,24 @@ if($result = $db->db_query($qry)) $liste[$row->mitarbeiter_uid]['vorname'] = $row->vorname; $liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname; } - + //Betreuungen fuer Projektarbeiten foreach ($liste as $uid=>$arr) { - $qry = "SELECT tbl_projektbetreuer.faktor, tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz - FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student - WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid - AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + $qry = " + SELECT + tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz + FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student + WHERE + tbl_projektbetreuer.person_id=tbl_benutzer.person_id + AND tbl_benutzer.uid=".$db->db_add_param($uid)." + AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id + AND student_uid=vw_student.uid + AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id + AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." + AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); if($semester!='') $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); if($result = $db->db_query($qry)) @@ -168,14 +176,14 @@ if($result = $db->db_query($qry)) while($row = $db->db_fetch_object($result)) { $liste[$uid]['gesamtstunden'] = $liste[$uid]['gesamtstunden'] + $row->stunden; - $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz*$row->faktor); + $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz); } } } - + //Daten ausgeben foreach ($liste as $row) - { + { $i=0; //Studiengang $worksheet->write($zeile,$i,$studiengang->kuerzel); @@ -186,24 +194,24 @@ if($result = $db->db_query($qry)) //Vorname $worksheet->write($zeile,++$i,$row['vorname']); //Nachname - $worksheet->write($zeile,++$i,$row['nachname']); + $worksheet->write($zeile,++$i,$row['nachname']); //Fixangestellt - $worksheet->write($zeile,++$i,($row['fixangestellt']=='t'?'Ja':'Nein')); + $worksheet->write($zeile,++$i,($row['fixangestellt']=='t'?'Ja':'Nein')); //Stunden $worksheet->write($zeile,++$i,$row['gesamtstunden']); //Kosten $worksheet->writeNumber($zeile,++$i,$row['gesamtkosten'], $format_number); - + //Kosten zu den Gesamtkosten hinzurechnen $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; $gesamtstunden = $gesamtstunden + $row['gesamtstunden']; $zeile++; } - + //Gesamtkosten und Gesamtstunden anzeigen $worksheet->writeNumber($zeile,6,$gesamtstunden, $format_bold); $worksheet->writeNumber($zeile,7,$gesamtkosten, $format_number_bold); } - + $workbook->close(); ?> diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 40ec7a616..be76221cc 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -91,9 +91,7 @@ $qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz WHERE lehre.tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND - tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - tbl_lehreinheitmitarbeiter.stundensatz<>0 AND - tbl_lehreinheitmitarbeiter.faktor<>0 + tbl_lehreinheitmitarbeiter.semesterstunden is not null UNION SELECT studiengang_kz @@ -189,7 +187,7 @@ if($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row,$i,"Gesamtstunden", $format_bold); $worksheet->write(2,++$i,"Gesamtkosten", $format_bold); $gesamt->write($gesamtsheet_row,$i,"Gesamtkosten", $format_bold); - + //Daten holen $qry = "SELECT tbl_lehreinheit.*, tbl_person.vorname, @@ -198,10 +196,9 @@ if($result_stg = $db->db_query($qry_stg)) tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, - tbl_lehreinheitmitarbeiter.faktor AS faktor, tbl_lehreinheitmitarbeiter.stundensatz AS stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden AS semesterstunden, - CASE + CASE WHEN tbl_mitarbeiter.fixangestellt = true THEN 'Ja' ELSE 'Nein' @@ -242,9 +239,9 @@ if($result_stg = $db->db_query($qry_stg)) AND tbl_benutzerfunktion.uid = tbl_benutzer.uid LIMIT 1 ) AND aktiv = true - + UNION ALL - + SELECT o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz @@ -258,7 +255,7 @@ if($result_stg = $db->db_query($qry_stg)) JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) WHERE meine_oes.organisationseinheittyp_kurzbz = 'Department' ) AS department, - CASE + CASE WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum) > now() - interval '31 days' THEN 't' ELSE 'f' @@ -278,8 +275,6 @@ if($result_stg = $db->db_query($qry_stg)) AND studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheitmitarbeiter.semesterstunden <> 0 AND tbl_lehreinheitmitarbeiter.semesterstunden IS NOT NULL - AND tbl_lehreinheitmitarbeiter.stundensatz <> 0 - AND tbl_lehreinheitmitarbeiter.faktor <> 0 AND EXISTS ( SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe @@ -301,16 +296,16 @@ if($result_stg = $db->db_query($qry_stg)) if(array_key_exists($row->mitarbeiter_uid, $liste)) { $liste[$row->mitarbeiter_uid]['lvstunden'] = $liste[$row->mitarbeiter_uid]['lvstunden'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['lvkosten'] = $liste[$row->mitarbeiter_uid]['lvkosten'] + ($row->semesterstunden*$row->stundensatz*$row->faktor); + $liste[$row->mitarbeiter_uid]['lvkosten'] = $liste[$row->mitarbeiter_uid]['lvkosten'] + ($row->semesterstunden*$row->stundensatz); $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $liste[$row->mitarbeiter_uid]['gesamtstunden'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz*$row->faktor); + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz); } else { $liste[$row->mitarbeiter_uid]['lvstunden'] = $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['lvkosten'] = $row->semesterstunden*$row->stundensatz*$row->faktor; + $liste[$row->mitarbeiter_uid]['lvkosten'] = $row->semesterstunden*$row->stundensatz; $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz*$row->faktor; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz; } $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; @@ -326,10 +321,10 @@ if($result_stg = $db->db_query($qry_stg)) } //Alle holen die eine Betreuung aber keinen Lehrauftrag haben - $qry = "SELECT + $qry = "SELECT distinct personalnummer, titelpre, vorname, nachname, uid, CASE WHEN fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt, (SELECT tbl_organisationseinheit.organisationseinheittyp_kurzbz||' '||tbl_organisationseinheit.bezeichnung - FROM public.tbl_benutzerfunktion + FROM public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING (oe_kurzbz) WHERE funktion_kurzbz='oezuordnung' AND (datum_von IS NULL OR datum_von <= now()) @@ -357,9 +352,9 @@ if($result_stg = $db->db_query($qry_stg)) AND tbl_benutzerfunktion.uid = tbl_benutzer.uid LIMIT 1 ) AND aktiv = true - + UNION ALL - + SELECT o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz @@ -373,11 +368,11 @@ if($result_stg = $db->db_query($qry_stg)) JOIN PUBLIC.tbl_organisationseinheit USING (oe_kurzbz) WHERE meine_oes.organisationseinheittyp_kurzbz = 'Department' ) AS department - FROM - lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer, - public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, + FROM + lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer, + public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung - WHERE + WHERE tbl_projektbetreuer.person_id=tbl_person.person_id AND tbl_person.person_id=tbl_benutzer.person_id AND tbl_mitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND @@ -385,23 +380,21 @@ if($result_stg = $db->db_query($qry_stg)) tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND - NOT EXISTS (SELECT - mitarbeiter_uid - FROM + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND + NOT EXISTS (SELECT + mitarbeiter_uid + FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung - WHERE + WHERE mitarbeiter_uid=tbl_benutzer.uid AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - tbl_lehreinheitmitarbeiter.stundensatz<>0 AND - tbl_lehreinheitmitarbeiter.faktor<>0 AND EXISTS (SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id) AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell).");"; - + if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) @@ -425,30 +418,41 @@ if($result_stg = $db->db_query($qry_stg)) } } } - + //Betreuungen fuer Projektarbeiten foreach ($liste as $uid=>$arr) { - $qry = "SELECT tbl_projektbetreuer.faktor, - tbl_projektbetreuer.stunden, - tbl_projektbetreuer.stundensatz, - CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert - FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student - WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND student_uid=vw_student.uid - AND tbl_lehreinheit.lehreinheit_id=tbl_projektarbeit.lehreinheit_id AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + $qry = " + SELECT + tbl_projektbetreuer.stunden, + tbl_projektbetreuer.stundensatz, + CASE WHEN + COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum) > now() - interval '31 days' + THEN + 't' + ELSE + 'f' + END as geaendert + FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student + WHERE + tbl_projektbetreuer.person_id = tbl_benutzer.person_id + AND tbl_benutzer.uid = ".$db->db_add_param($uid)." + AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id + AND student_uid = vw_student.uid + AND tbl_lehreinheit.lehreinheit_id = tbl_projektarbeit.lehreinheit_id + AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." + AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id + AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { $liste[$uid]['gesamtstunden'] = $liste[$uid]['gesamtstunden'] + $row->stunden; - $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz*$row->faktor); + $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz); $liste[$uid]['betreuergesamtstunden'] = $liste[$uid]['betreuergesamtstunden'] + $row->stunden; - $liste[$uid]['betreuergesamtkosten'] = $liste[$uid]['betreuergesamtkosten'] + ($row->stunden*$row->stundensatz*$row->faktor); + $liste[$uid]['betreuergesamtkosten'] = $liste[$uid]['betreuergesamtkosten'] + ($row->stunden*$row->stundensatz); if($row->geaendert=='t') { $liste[$uid]['geaendert']=true; @@ -459,14 +463,14 @@ if($result_stg = $db->db_query($qry_stg)) $vn = array(); $nn = array(); - foreach ($liste as $key => $row) + foreach ($liste as $key => $row) { $vn[$key] = $row['vorname']; $nn[$key] = $row['nachname']; } - + array_multisort($nn, SORT_ASC, $vn, SORT_ASC, $liste); - + //Daten ausgeben foreach ($liste as $uid=>$row) { @@ -529,25 +533,25 @@ if($result_stg = $db->db_query($qry_stg)) $gesamtkosten_row = str_replace(',', '.', $row['gesamtkosten']); $worksheet->writeNumber($zeile,++$i,$gesamtkosten_row, $formatnb); $gesamt->writeNumber($gesamtsheet_row,$i,$gesamtkosten_row, $formatnb); - - + + //Kosten zu den Gesamtkosten hinzurechnen $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; $zeile++; $gesamtsheet_row++; - + $liste_gesamt[$uid]['personalnummer']=$row['personalnummer']; $liste_gesamt[$uid]['titelpre']=$row['titelpre']; $liste_gesamt[$uid]['vorname']=$row['vorname']; $liste_gesamt[$uid]['nachname']=$row['nachname']; if(isset($liste_gesamt[$uid]['gesamtstunden'])) $liste_gesamt[$uid]['gesamtstunden']+=$row['gesamtstunden']; - else + else $liste_gesamt[$uid]['gesamtstunden']=$row['gesamtstunden']; - + if(isset($liste_gesamt[$uid]['gesamtkosten'])) $liste_gesamt[$uid]['gesamtkosten']+=$row['gesamtkosten']; - else + else $liste_gesamt[$uid]['gesamtkosten']=$row['gesamtkosten']; } @@ -556,83 +560,19 @@ if($result_stg = $db->db_query($qry_stg)) $gesamt->writeNumber($gesamtsheet_row,13,$gesamtkosten, $format_number_bold); } } - - /* - // Gesamtliste ueber alle Studiengaenge - $worksheet =& $workbook->addWorksheet('Gesamt'); - $i=0; - $gesamtkosten=0; - $zeile=3; - - $worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' Gesamtliste', $format_bold); - //Ueberschriften - //$worksheet->write(2,$i,"Studiengang", $format_bold); - $worksheet->write(2,++$i,"Personalnr", $format_bold); - $worksheet->write(2,++$i,"Titel", $format_bold); - $worksheet->write(2,++$i,"Vorname", $format_bold); - $worksheet->write(2,++$i,"Familienname", $format_bold); - $worksheet->write(2,++$i,"Stunden", $format_bold); - $worksheet->write(2,++$i,"Kosten", $format_bold); - - $vn = array(); - $nn = array(); - foreach ($liste_gesamt as $key => $row) - { - $vn[$key] = $row['vorname']; - $nn[$key] = $row['nachname']; - } - - array_multisort($nn, SORT_ASC, $vn, SORT_ASC, $liste_gesamt); - //Daten ausgeben - foreach ($liste_gesamt as $uid=>$row) - { - $i=0; - if(isset($row['geaendert']) && $row['geaendert']==true) - { - $format = $format_colored; - $formatnb = $format_number_colored; - } - else - { - $format = $format_normal; - $formatnb = $format_number; - } - - //Personalnummer - $worksheet->write($zeile,++$i,$row['personalnummer'], $format); - //Titel - $worksheet->write($zeile,++$i,$row['titelpre'], $format); - //Vorname - $worksheet->write($zeile,++$i,$row['vorname'], $format); - //Nachname - $worksheet->write($zeile,++$i,$row['nachname'], $format); - //Stunden - $worksheet->write($zeile,++$i,$row['gesamtstunden'], $format); - //Kosten - $worksheet->writeNumber($zeile,++$i,$row['gesamtkosten'], $formatnb); - - //Kosten zu den Gesamtkosten hinzurechnen - $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; - $zeile++; - } - - //Gesamtkosten anzeigen - $worksheet->writeNumber($zeile,6,$gesamtkosten, $format_number_bold); - */ - //Betreuerstunden $worksheet =& $workbook->addWorksheet('Betreuerstunden'); $worksheet->setInputEncoding('utf-8'); - $qry = "SELECT + $qry = "SELECT studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre, - sum(tbl_projektbetreuer.stundensatz*stunden*tbl_projektbetreuer.faktor)::numeric(8,2) AS euro, person_id - FROM - public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id) - JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) + sum(tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)::numeric(8,2) AS euro, person_id + FROM + public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id) + JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - WHERE + WHERE studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND stunden>0"; @@ -640,10 +580,10 @@ if($result_stg = $db->db_query($qry_stg)) $qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")"; $qry.=" - GROUP BY + GROUP BY studiensemester_kurzbz,person_id,nachname,vorname, titelpre - ORDER BY - nachname,vorname + ORDER BY + nachname,vorname "; $i=0; $gesamtkosten=0; @@ -656,7 +596,7 @@ if($result_stg = $db->db_query($qry_stg)) $worksheet->write(2,++$i,"Vorname", $format_bold); $worksheet->write(2,++$i,"Stunden", $format_bold); $worksheet->write(2,++$i,"Kosten", $format_bold); - + $format = $format_normal; $formatnb = $format_number; if($result = $db->db_query($qry)) @@ -676,14 +616,14 @@ if($result_stg = $db->db_query($qry_stg)) //Kosten $worksheet->writeNumber($zeile,++$i,$row->euro, $formatnb); $zeile++; - + $gesamtkosten = $gesamtkosten + $row->euro; } - + //Gesamtkosten anzeigen $worksheet->writeNumber($zeile,5,$gesamtkosten, $format_number_bold); } - + $workbook->close(); //Mail versenden mit Excel File im Anhang @@ -702,7 +642,7 @@ if($result_stg = $db->db_query($qry_stg)) $mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message); $mail->addAttachmentBinary($file, $fileatttype, $fileattname); - + if($mail->send()) echo 'Email mit Lehrauftragslisten wurde an '.$empfaenger.' versandt!'; else diff --git a/content/statistik/lektorenstatistik.php b/content/statistik/lektorenstatistik.php deleted file mode 100644 index 0d5af63e9..000000000 --- a/content/statistik/lektorenstatistik.php +++ /dev/null @@ -1,281 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Erstellt eine Tablle mit der Anzahl der Lektoren die im angegebenen - * StudienJAHR einen Lehrauftrag im jeweiligen Institut haben, getrennt nach Fixangestellten und Freien - * und der Anzahl der Stunden die in diesem Institut gehalten wurden - * Bei einem klick auf das Institut wird die Detailansicht angezeigt, in der die einzelnen - * Lektoren Namentlich aufscheinen. - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/studiensemester.class.php'); -require_once('../../include/benutzerberechtigung.class.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/fachbereich.class.php'); - -$ws=''; -$ss=''; -$db = new basis_db(); -if(isset($_GET['stsem'])) - $stsem = $_GET['stsem']; -else -{ - $stsem_obj = new studiensemester(); - $stsem = $stsem_obj->getaktorNext(); -} -echo ' - - - - - - - - '; - -if(isset($_GET['details']) && isset($_GET['fachbereich_kurzbz'])) -{ - $ss = (isset($_GET['ss'])?$_GET['ss']:''); - $ws = (isset($_GET['ws'])?$_GET['ws']:''); - $fachbereich = new fachbereich(); - if(!$fachbereich->load($_GET['fachbereich_kurzbz'])) - die('Institut existiert nicht'); - - echo "

LektorInnenstatistik (Lehrauftrag ohne Betreuungen) $ws / $ss - ".$fachbereich->bezeichnung.'

'; - $qry = "SELECT distinct mitarbeiter_uid, anrede, nachname, vorname, titelpre, titelpost, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND fixangestellt AND geschlecht='m') a) AS fix_m, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND fixangestellt AND geschlecht='w') a) AS fix_w - FROM lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) - JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - JOIN public.tbl_person USING(person_id) - WHERE studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).") - AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND fixangestellt - ORDER BY nachname, vorname"; - - if($db->db_query($qry)) - { - $ausgabe=''; - $fix_m=0; - $fix_w=0; - while($row = $db->db_fetch_object()) - { - $ausgabe.= ''; - $ausgabe.= "$row->anrede"; - $ausgabe.= "$row->titelpre"; - $ausgabe.= "$row->nachname"; - $ausgabe.= "$row->vorname"; - $ausgabe.= "$row->titelpost"; - $ausgabe.= ""; - $fix_w=$row->fix_w; - $fix_m=$row->fix_m; - } - echo (($fix_m)+($fix_w))." Fixangestellte
M: ".$fix_m."
W: ".$fix_w." - - - - - - - - - - - - "; - echo $ausgabe; - } - echo '
AnredeTitelPreNachnameVornameTitelpost
'; - - $qry = "SELECT distinct mitarbeiter_uid, anrede, nachname, vorname, titelpre, titelpost, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND NOT fixangestellt AND geschlecht='m') a) AS not_fix_m, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND NOT fixangestellt AND geschlecht='w') a) AS not_fix_w - FROM lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) - JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) - JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) - JOIN public.tbl_person USING(person_id) - WHERE studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).") - AND fachbereich_kurzbz=".$db->db_add_param($fachbereich->fachbereich_kurzbz)." AND NOT fixangestellt - ORDER BY nachname, vorname"; - - if($db->db_query($qry)) - { - $ausgabe=''; - $not_fix_m=0; - $not_fix_w=0; - while($row = $db->db_fetch_object()) - { - $ausgabe.= ''; - $ausgabe.= "$row->anrede"; - $ausgabe.= "$row->titelpre"; - $ausgabe.= "$row->nachname"; - $ausgabe.= "$row->vorname"; - $ausgabe.= "$row->titelpost"; - $ausgabe.= ""; - $not_fix_w=$row->not_fix_w; - $not_fix_m=$row->not_fix_m; - } - echo "

".(($not_fix_m)+($not_fix_w))." Freiangestellte
M: ".$not_fix_m."
W: ".$not_fix_w." - - - - - - - - - - - - "; - echo $ausgabe; - } - echo '
AnredeTitelPreNachnameVornameTitelpost
'; -} -else -{ - if(substr($stsem, 0, 2)=='WS') - { - $stsem_obj = new studiensemester(); - $ss = $stsem_obj->getNextFrom($stsem); - $ws = $stsem; - } - else - { - $stsem_obj = new studiensemester(); - $ws = $stsem_obj->getPreviousFrom($stsem); - $ss = $stsem; - } - echo "

LektorInnenstatistik (Lehrauftrag ohne Betreuungen) $ws / $ss"; - echo ''.date('d.m.Y').'


'; - echo ''; - echo '
Studiensemester: -


'; - - if($stsem!='') - { - - echo " - - - - - - - - - - - - - - - - - - - - - - - - - "; - - $qry = "SELECT - bezeichnung, fachbereich_kurzbz, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=a.fachbereich_kurzbz AND fixangestellt AND geschlecht='m') a) AS fix_m, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=a.fachbereich_kurzbz AND fixangestellt AND geschlecht='w') a) AS fix_w, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=a.fachbereich_kurzbz AND NOT fixangestellt AND geschlecht='m') a) AS extern_m, - (SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz) JOIN campus.vw_mitarbeiter ON(uid=mitarbeiter_uid) WHERE studiensemester_kurzbz IN(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND fachbereich_kurzbz=a.fachbereich_kurzbz AND NOT fixangestellt AND geschlecht='w') a) AS extern_w, - (SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) WHERE studiensemester_kurzbz=".$db->db_add_param($ws)." AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) AS ws, - (SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) WHERE studiensemester_kurzbz=".$db->db_add_param($ss)." AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) AS ss - FROM public.tbl_fachbereich a WHERE aktiv ORDER BY bezeichnung"; - - if($db->db_query($qry)) - { - //$gesamt_fix=0; - //$gesamt_extern=0; - $gesamt_ws=0; - $gesamt_ss=0; - while($row = $db->db_fetch_object()) - { - if(($row->fix_m==0 && $row->fix_w==0) && ($row->extern_m==0 && $row->extern_w==0)) - { - continue; - } - echo ''; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - //$gesamt_fix+=$row->fix; - //$gesamt_extern+=$row->extern; - $gesamt_ws+=$row->ws; - $gesamt_ss+=$row->ss; - } - echo ''; - echo ''; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - } - echo '
AnzahlALVS
Institutefixextern$ws$ss
MWMW
fachbereich_kurzbz&ss=$ss&ws=$ws'>$row->bezeichnung$row->fix_m$row->fix_w$row->extern_m$row->extern_w$row->ws$row->ss
SUMME    $gesamt_ws$gesamt_ss
'; - } -} -?> - - diff --git a/content/statistik/lvplanung.php b/content/statistik/lvplanung.php index be06f5c12..a0d3544bc 100644 --- a/content/statistik/lvplanung.php +++ b/content/statistik/lvplanung.php @@ -107,12 +107,16 @@ elseif($oe_kurzbz!='') if($studiengang_kz!='') //Liste nach Studiengang { $qry = "SELECT - tbl_lehrveranstaltung.kurzbz as kurzbz, tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehrveranstaltung.kurzbz as kurzbz, tbl_lehrveranstaltung.bezeichnung as bezeichnung, + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.ects as ects, tbl_lehrveranstaltung.semesterstunden as semesterstunden, - lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, tbl_lehreinheit.lehreinheit_id as lehreinheit_id, - tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, - tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, tbl_lehreinheitmitarbeiter.faktor as lektor_faktor, - tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester + lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, + tbl_lehreinheit.lehreinheit_id as lehreinheit_id, + tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, + tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, + tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, + tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.semester FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzer, public.tbl_person @@ -126,17 +130,25 @@ if($studiengang_kz!='') //Liste nach Studiengang tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell); if($semester!='') $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); - $qry.=" ORDER BY tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehreinheit.lehreinheit_id"; + $qry.=" ORDER BY + tbl_lehrveranstaltung.semester, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehreinheit.lehreinheit_id"; } elseif($mitarbeiter_uid!='') // Liste nach Mitarbeiter { -$qry = "SELECT - tbl_lehrveranstaltung.kurzbz as kurzbz, tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, + $qry = "SELECT + tbl_lehrveranstaltung.kurzbz as kurzbz, + tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.ects as ects, tbl_lehrveranstaltung.semesterstunden as semesterstunden, - lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, tbl_lehreinheit.lehreinheit_id as lehreinheit_id, - tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, - tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, tbl_lehreinheitmitarbeiter.faktor as lektor_faktor, - tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester + lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, + tbl_lehreinheit.lehreinheit_id as lehreinheit_id, + tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, + tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, + tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, + tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.semester FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzer, public.tbl_person @@ -148,17 +160,25 @@ $qry = "SELECT tbl_person.person_id=tbl_benutzer.person_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell); - $qry.=" ORDER BY tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehreinheit.lehreinheit_id"; + $qry.=" ORDER BY + tbl_lehrveranstaltung.semester, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehreinheit.lehreinheit_id"; } elseif($oe_kurzbz!='') // Liste nach Organisationseinheit { -$qry = "SELECT - tbl_lehrveranstaltung.kurzbz as kurzbz, tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, + $qry = "SELECT + tbl_lehrveranstaltung.kurzbz as kurzbz, + tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.ects as ects, tbl_lehrveranstaltung.semesterstunden as semesterstunden, - lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, tbl_lehreinheit.lehreinheit_id as lehreinheit_id, - tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, - tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, tbl_lehreinheitmitarbeiter.faktor as lektor_faktor, - tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester + lehrfach.kurzbz as lf_kurzbz, lehrfach.bezeichnung as lf_bezeichnung, + tbl_lehreinheit.lehreinheit_id as lehreinheit_id, + tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, + tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, + tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, + tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.semester FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzer, public.tbl_person @@ -170,7 +190,12 @@ $qry = "SELECT tbl_person.person_id=tbl_benutzer.person_id AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell); - $qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehreinheit.lehreinheit_id"; + $qry.=" ORDER BY + tbl_lehrveranstaltung.studiengang_kz, + tbl_lehrveranstaltung.semester, + tbl_lehrveranstaltung.bezeichnung, + tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehreinheit.lehreinheit_id"; } else die('Fehlerhafte Parameteruebergabe'); @@ -248,10 +273,10 @@ if($result = $db->db_query($qry)) echo "$row->lektor_semesterstunden"; echo "$gruppen"; echo "$row->nachname $row->vorname"; - echo "".number_format(($row->lektor_stundensatz*$row->lektor_faktor*$row->lektor_semesterstunden),2,',','.')." €"; + echo "".number_format(($row->lektor_stundensatz*$row->lektor_semesterstunden),2,',','.')." €"; echo ' '; echo ''; - $kosten_lv +=($row->lektor_stundensatz*$row->lektor_faktor*$row->lektor_semesterstunden); + $kosten_lv +=($row->lektor_stundensatz*$row->lektor_semesterstunden); $stunden_lv +=$row->lektor_semesterstunden; } $gesamtkosten_lva +=$kosten_lv; @@ -273,15 +298,15 @@ if($studiengang_kz!='') $qry = "SELECT * FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + lehre.tbl_projektbetreuer, public.tbl_person WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER)." AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." "; if($semester!='') @@ -299,8 +324,7 @@ elseif($mitarbeiter_uid!='') tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_projektbetreuer.person_id=".$db->db_add_param($mitarbeiter->person_id, FHC_INTEGER)." AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." "; } elseif($oe_kurzbz!='') @@ -308,7 +332,8 @@ elseif($oe_kurzbz!='') $qry = "SELECT * FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, + public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach WHERE tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND @@ -316,8 +341,7 @@ elseif($oe_kurzbz!='') tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND tbl_person.person_id=tbl_projektbetreuer.person_id AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 + lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." "; } else @@ -332,8 +356,6 @@ if($result = $db->db_query($qry)) echo ''; echo ' '; echo "Titel"; - //echo " "; - //echo ' '; echo "Stunden"; echo "Student"; echo "Lektor"; @@ -348,17 +370,15 @@ if($result = $db->db_query($qry)) echo ''; echo ' '; echo "$row->titel"; - //echo " "; - //echo ' '; echo "".number_format($row->stunden,2).""; $benutzer = new benutzer(); $benutzer->load($row->student_uid); echo "$benutzer->nachname $benutzer->vorname"; echo "$row->nachname $row->vorname"; - echo "".number_format(($row->stundensatz*$row->faktor*$row->stunden),2,',','.')." €"; + echo "".number_format(($row->stundensatz*$row->stunden),2,',','.')." €"; echo ' '; echo ''; - $gesamtkosten_betreuung +=($row->stundensatz*$row->faktor*$row->stunden); + $gesamtkosten_betreuung +=($row->stundensatz*$row->stunden); $stunden_betreuung+=$row->stunden; } diff --git a/content/statistik/lvplanung.xls.php b/content/statistik/lvplanung.xls.php index 286554392..c933677af 100644 --- a/content/statistik/lvplanung.xls.php +++ b/content/statistik/lvplanung.xls.php @@ -108,7 +108,6 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.semester AS lv_semester, tbl_lehreinheit.lehreinheit_id, - tbl_lehreinheitmitarbeiter.faktor, tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden, @@ -154,7 +153,6 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung, FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id) ---JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) WHERE tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($studiengang_kz!='') @@ -227,8 +225,6 @@ $maxlength[$spalte]=15; $worksheet->write($zeile,++$spalte,"Anmerkung", $format_bold); $maxlength[$spalte]=9; -// Neu 13.11.2009 sequens - $worksheet->write($zeile,++$spalte,"LV-Leitung", $format_bold); $maxlength[$spalte]=9; @@ -248,7 +244,6 @@ if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { - $spalte=0; $zeile++; @@ -387,7 +382,6 @@ if($result = $db->db_query($qry)) student_uid, stunden, tbl_projektbetreuer.stundensatz, - tbl_projektbetreuer.faktor, tbl_projektbetreuer.person_id FROM lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, @@ -397,11 +391,8 @@ if($result = $db->db_query($qry)) WHERE tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_projektarbeit.projektarbeit_id = tbl_projektbetreuer.projektarbeit_id - --AND tbl_lehreinheit.lehrfach_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_person.person_id = tbl_projektbetreuer.person_id - AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)." - AND (tbl_projektbetreuer.stundensatz * tbl_projektbetreuer.stunden) > 0 - "; + AND tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz); if($uid!=='') { @@ -415,6 +406,9 @@ if($result = $db->db_query($qry)) if($studiengang_kz!='') $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); + if($semester!='') + $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); + if($result = $db->db_query($qry)) { $spalte=0; @@ -459,7 +453,6 @@ if($result = $db->db_query($qry)) $fixangestellt = 'Extern'; } - //Studiengang $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); if($maxlength[$spalte]kuerzel_arr[$row->studiengang_kz])) diff --git a/content/statistik/lvplanunggesamtsj.php b/content/statistik/lvplanunggesamtsj.php deleted file mode 100644 index 0a2defb5b..000000000 --- a/content/statistik/lvplanunggesamtsj.php +++ /dev/null @@ -1,340 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -require_once('../../config/vilesci.config.inc.php'); -require_once('../../include/functions.inc.php'); -require_once('../../include/lehrveranstaltung.class.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/person.class.php'); -require_once('../../include/benutzer.class.php'); -require_once('../../include/studiensemester.class.php'); -require_once('../../include/Excel/excel.php'); - -$user = get_uid(); -loadVariables($user); -$db = new basis_db(); - -$stg_arr = array(); -$studiengang = new studiengang(); -$studiengang->getAll(); - -foreach ($studiengang->result as $row) - $stg_arr[$row->studiengang_kz] = $row->kuerzel; - -// ****** FUNKTIONEN ******* // -function drawBetreuungen() -{ - global $gesamtkosten_lva, $zeile, $spalte, $stsem1, $stsem2, $last_fb, $worksheet; - global $format_bold, $format_colored, $gesamtkosten_betreuung; - global $gesamtkosten_fb, $format_number, $format_number1; - - $db = new basis_db(); - $qry_fb = "SELECT - * - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, lehre.tbl_projektbetreuer, - public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_fachbereich - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - tbl_person.person_id=tbl_projektbetreuer.person_id AND - (tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem1)." OR - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem2).") AND - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 AND - lehrfach.oe_kurzbz = tbl_fachbereich.oe_kurzbz AND - tbl_fachbereich.fachbereich_kurzbz=".$db->db_add_param($last_fb)." - "; - - $gesamtkosten_betreuung=0; - if($result_fb = $db->db_query($qry_fb)) - { - $spalte=11; - $worksheet->writeNumber($zeile, ++$spalte, $gesamtkosten_lva, $format_number); - - if($db->db_num_rows($result_fb)>0) - { - - $zeile++; - - $zeile++; - $worksheet->write($zeile, 1, "Betreuungen", $format_bold); - $spalte=2; - $worksheet->write($zeile, $spalte, "Titel", $format_colored); - $worksheet->write($zeile, ++$spalte, "", $format_colored); - $worksheet->write($zeile, ++$spalte, "", $format_colored); - $worksheet->write($zeile, ++$spalte, "", $format_colored); - $worksheet->write($zeile, ++$spalte, "Stunden", $format_colored); - $worksheet->write($zeile, ++$spalte, "Summe", $format_colored); - $worksheet->write($zeile, ++$spalte, "Student", $format_colored); - $worksheet->write($zeile, ++$spalte, "Lektor", $format_colored); - $worksheet->write($zeile, ++$spalte, "Kosten", $format_colored); - - - $stunden_betreuung=0; - while($row_fb = $db->db_fetch_object($result_fb)) - { - $zeile++; - $spalte=2; - $worksheet->write($zeile, $spalte, $row_fb->titel); - $spalte+=2; - $worksheet->write($zeile, ++$spalte, ''); - $worksheet->write($zeile, ++$spalte, number_format($row_fb->stunden,2)); - $worksheet->write($zeile, ++$spalte, ''); - - $benutzer = new benutzer(); - $benutzer->load($row_fb->student_uid); - $worksheet->write($zeile, ++$spalte, "$benutzer->nachname $benutzer->vorname"); - $worksheet->write($zeile, ++$spalte, "$row_fb->nachname $row_fb->vorname"); - $worksheet->writeNumber($zeile, ++$spalte, ($row_fb->stundensatz*$row_fb->faktor*$row_fb->stunden), $format_number1); - - $gesamtkosten_betreuung +=($row_fb->stundensatz*$row_fb->faktor*$row_fb->stunden); - $stunden_betreuung+=$row_fb->stunden; - } - - $zeile++; - $spalte=7; - $worksheet->writeNumber($zeile, $spalte, $stunden_betreuung, $format_number); - $spalte=11; - $worksheet->writeNumber($zeile, $spalte, $gesamtkosten_betreuung, $format_number); - - $spalte=12; - $worksheet->writeNumber($zeile, $spalte, $gesamtkosten_betreuung, $format_number); - - } - $gesamtkosten_fb += ($gesamtkosten_betreuung+$gesamtkosten_lva); - $gesamtkosten_lva=0; - } - else - echo 'Error'; -} -// ****** END FUNKTIONEN ******* // -$stsem1 = $semester_aktuell; -$stsem_obj = new studiensemester(); - -if(substr($stsem1,0,1)=='S') //Eigentlich gehoert =='W', nur kurzfristige aenderung - $stsem2 = $stsem_obj->getNextFrom($stsem1); -else - $stsem2 = $stsem_obj->getPreviousFrom($stsem1); - -$qry = "SELECT - tbl_lehrveranstaltung.kurzbz as kurzbz, tbl_lehrveranstaltung.bezeichnung as bezeichnung, - tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.ects as ects, - tbl_lehrveranstaltung.semesterstunden as semesterstunden, lehrfach.kurzbz as lf_kurzbz, - lehrfach.bezeichnung as lf_bezeichnung, tbl_lehreinheit.lehreinheit_id as lehreinheit_id, - tbl_lehreinheit.lehrform_kurzbz as lehrform_kurzbz, - tbl_lehreinheitmitarbeiter.semesterstunden as lektor_semesterstunden, - tbl_lehreinheitmitarbeiter.stundensatz as lektor_stundensatz, - tbl_lehreinheitmitarbeiter.faktor as lektor_faktor, - tbl_person.vorname, tbl_person.nachname, tbl_lehrveranstaltung.studiengang_kz, - tbl_lehrveranstaltung.semester, - tbl_fachbereich.fachbereich_kurzbz - FROM - lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, - lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzer, public.tbl_person, public.tbl_fachbereich - WHERE - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - lehrfach.lehrveranstaltung_id=tbl_lehreinheit.lehrfach_id AND - tbl_benutzer.uid=tbl_lehreinheitmitarbeiter.mitarbeiter_uid AND - tbl_person.person_id=tbl_benutzer.person_id AND - (tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem1)." OR - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem2).") AND - tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz - ORDER BY - tbl_fachbereich.fachbereich_kurzbz, - tbl_lehrveranstaltung.studiengang_kz, - tbl_lehrveranstaltung.semester, - tbl_lehrveranstaltung.bezeichnung, - tbl_lehrveranstaltung.lehrveranstaltung_id, - tbl_lehreinheit.lehreinheit_id"; - -// Creating a workbook -$workbook = new Spreadsheet_Excel_Writer(); -$workbook->setVersion(8); -// sending HTTP headers -$workbook->send("LVPlanungGesamtSJ". "_" . date("Y_m_d") . ".xls"); - -// Creating a worksheet -$worksheet =& $workbook->addWorksheet("LV-Planung Gesamt"); -$worksheet->setInputEncoding('utf-8'); -$format_bold =& $workbook->addFormat(); -$format_bold->setBold(); - -$format_bold =& $workbook->addFormat(); -$format_bold->setBold(); - -$format_colored =& $workbook->addFormat(); -$format_colored->setFgColor(22); -$format_colored->setBorder(1); -$format_colored->setBold(); - -$format_colored1 =& $workbook->addFormat(); -$format_colored1->setFgColor(22); -$format_colored1->setBorder(1); -$format_colored1->setBold(); - -$format_number =& $workbook->addFormat(); -$format_number->setNumFormat("#,##0.00"); -$format_number->setBold(); - -$format_number1 =& $workbook->addFormat(); -$format_number1->setNumFormat("#,##0.00"); - -$worksheet->write(0, 0,"LV-Planung für $stsem1/$stsem2", $format_bold); - -$zeile=3; -$spalte=0; - -$worksheet->write($zeile, $spalte,'Institut', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Kurzbz', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Bezeichnung', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Lehrform', $format_colored1); -$worksheet->write($zeile, ++$spalte,'ECTS', $format_colored1); -$worksheet->write($zeile, ++$spalte,'StudentenStunden', $format_colored1); -$worksheet->write($zeile, ++$spalte,'LektorenStunden', $format_colored1); -$worksheet->write($zeile, ++$spalte,'GesamtStunden', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Gruppen', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Lektor', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Kosten', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Summe', $format_colored1); -$worksheet->write($zeile, ++$spalte,'Gesamtkosten', $format_colored1); - -if($result = $db->db_query($qry)) -{ - $last_lva=''; - $stunden_lv=0; - $kosten_lv=0; - $gesamtkosten_lva=0; - $gesamtkosten_fb=0; - $last_fb=''; - while($row = $db->db_fetch_object($result)) - { - if($last_lva!=$row->lehrveranstaltung_id) - { - if($last_lva!='') - { - $zeile++; - $spalte=7; - $worksheet->write($zeile, $spalte,sprintf('%.2f',$stunden_lv), $format_bold); - $spalte=11; - $worksheet->writeNumber($zeile, $spalte, $kosten_lv, $format_number); - - $gesamtkosten_lva +=$kosten_lv; - $stunden_lv=0; - $kosten_lv=0; - } - - if($last_fb!=$row->fachbereich_kurzbz && $last_fb!='') - { - drawBetreuungen(); - } - - if($last_fb=='' || $last_fb!=$row->fachbereich_kurzbz) - { - $zeile++; - $worksheet->write($zeile, 0, $row->fachbereich_kurzbz, $format_bold); - $zeile++; - $last_fb = $row->fachbereich_kurzbz; - } - - $last_lva=$row->lehrveranstaltung_id; - $zeile++; - $spalte=0; - $worksheet->write($zeile, $spalte, $row->fachbereich_kurzbz, $format_colored); - $worksheet->write($zeile, ++$spalte, $stg_arr[$row->studiengang_kz].'-'.$row->semester.' '.$row->kurzbz, $format_colored); - $worksheet->write($zeile, ++$spalte,$row->bezeichnung, $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte, $row->ects, $format_colored); - $worksheet->write($zeile, ++$spalte,$row->semesterstunden, $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - $worksheet->write($zeile, ++$spalte,"", $format_colored); - } - - $gruppen=''; - $qry_grp = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id); - if($result_grp = $db->db_query($qry_grp)) - { - while($row_grp = $db->db_fetch_object($result_grp)) - { - if($gruppen=='') - $gruppen = ($row_grp->gruppe_kurzbz!=''?$row_grp->gruppe_kurzbz:trim($stg_arr[$row_grp->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe)); - else - $gruppen .= ','.($row_grp->gruppe_kurzbz!=''?$row_grp->gruppe_kurzbz:trim($stg_arr[$row_grp->studiengang_kz].'-'.$row_grp->semester.$row_grp->verband.$row_grp->gruppe)); - } - } - $zeile++; - $spalte=1; - $worksheet->write($zeile, ++$spalte, "$row->lf_bezeichnung ($row->lf_kurzbz)"); - $worksheet->write($zeile, ++$spalte, $row->lehrform_kurzbz); - $spalte++; - $worksheet->write($zeile, ++$spalte, ""); - $worksheet->write($zeile, ++$spalte, $row->lektor_semesterstunden); - $worksheet->write($zeile, ++$spalte, ""); - $worksheet->write($zeile, ++$spalte, $gruppen); - $worksheet->write($zeile, ++$spalte, "$row->nachname $row->vorname"); - $worksheet->writeNumber($zeile, ++$spalte, ($row->lektor_stundensatz*$row->lektor_faktor*$row->lektor_semesterstunden), $format_number1); - - $kosten_lv +=($row->lektor_stundensatz*$row->lektor_faktor*$row->lektor_semesterstunden); - $stunden_lv +=$row->lektor_semesterstunden; - } - $zeile++; - $spalte=7; - $worksheet->write($zeile, $spalte,sprintf('%.2f',$stunden_lv), $format_bold); - $spalte=11; - $worksheet->writeNumber($zeile, $spalte, $kosten_lv, $format_number); - - $gesamtkosten_lva +=$kosten_lv; - $stunden_lv=0; - $kosten_lv=0; - - - drawBetreuungen(); - -} - -$zeile++; -$spalte=8; -$worksheet->write($zeile, $spalte, 'Gesamt:', $format_bold); -$spalte=12; -$worksheet->writeNumber($zeile, $spalte, $gesamtkosten_fb, $format_number); - -$worksheet->setColumn(0, 0, 30); //FB -$worksheet->setColumn(0, 1, 15); //Kurzbz -$worksheet->setColumn(0, 2, 40); //bezeichnung -$worksheet->setColumn(0, 3, 5); //Lehrform -$worksheet->setColumn(0, 4, 5); //ECTS -$worksheet->setColumn(0, 5, 10); //Studentenstuden -$worksheet->setColumn(0, 6, 10); //LektorStunden -$worksheet->setColumn(0, 7, 10); //Gesamtstunden -$worksheet->setColumn(0, 8, 10); //Gruppen -$worksheet->setColumn(0, 9, 10); //Lektor -$worksheet->setColumn(0, 10, 10); //Kosten -$worksheet->setColumn(0, 11, 20); //Gesamtkosten - -$workbook->close(); -?> diff --git a/content/statistik/projektarbeitexport.xls.php b/content/statistik/projektarbeitexport.xls.php index 01376c591..213cb4b94 100644 --- a/content/statistik/projektarbeitexport.xls.php +++ b/content/statistik/projektarbeitexport.xls.php @@ -20,9 +20,7 @@ * Rudolf Hangl . */ /** - * Exportiert die Studentendaten in ein Excel File. - * Die zu exportierenden Spalten werden per GET uebergeben. - * Die Adressen werden immer dazugehaengt + * Exportiert die Projektarbeiten inklusive deren Betreuern */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -33,140 +31,150 @@ $db = new basis_db(); $user = get_uid(); $datum_obj = new datum(); loadVariables($user); - - //Parameter holen - $studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; - $semester = isset($_GET['semester'])?$_GET['semester']:''; - $verband = isset($_GET['verband'])?$_GET['verband']:''; - $gruppe = isset($_GET['gruppe'])?$_GET['gruppe']:''; - $gruppe_kurzbz = isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:''; - $studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; - - $maxlength= array(); - $zeile=1; - // Creating a workbook - $workbook = new Spreadsheet_Excel_Writer(); - $workbook->setVersion(8); - - // sending HTTP headers - $workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); +//Parameter holen +$studiengang_kz = isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:''; +$semester = isset($_GET['semester'])?$_GET['semester']:''; +$verband = isset($_GET['verband'])?$_GET['verband']:''; +$gruppe = isset($_GET['gruppe'])?$_GET['gruppe']:''; +$gruppe_kurzbz = isset($_GET['gruppe_kurzbz'])?$_GET['gruppe_kurzbz']:''; +$studiensemester_kurzbz = isset($_GET['studiensemester_kurzbz'])?$_GET['studiensemester_kurzbz']:''; - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Studenten"); - $worksheet->setInputEncoding('utf-8'); - - $format_bold =& $workbook->addFormat(); - $format_bold->setBold(); - - $format_title =& $workbook->addFormat(); - $format_title->setBold(); - // let's merge - $format_title->setAlign('merge'); +$maxlength = array(); +$zeile = 1; - //Zeilenueberschriften ausgeben - - $headline=array('Typ der Projektarbeit','Titel der Projektarbeit','Student', - 'Note','Punkte','Beginn','Ende','Freigegeben','Gesperrt bis','Gesamtstunden','Themenbereich', - 'Anmerkung','Projektarbeit ID'); - - $i=0; - foreach ($headline as $title) +// Creating a workbook +$workbook = new Spreadsheet_Excel_Writer(); +$workbook->setVersion(8); + +// sending HTTP headers +$workbook->send("Projektarbeit". "_" . date("d_m_Y") . ".xls"); + +// Creating a worksheet +$worksheet =& $workbook->addWorksheet("Studenten"); +$worksheet->setInputEncoding('utf-8'); + +$format_bold =& $workbook->addFormat(); +$format_bold->setBold(); + +$format_title =& $workbook->addFormat(); +$format_title->setBold(); +// let's merge +$format_title->setAlign('merge'); + +//Zeilenueberschriften ausgeben +$headline = array('Typ der Projektarbeit','Titel der Projektarbeit','Student', + 'Note','Punkte','Beginn','Ende','Freigegeben','Gesperrt bis','Gesamtstunden','Themenbereich', + 'Anmerkung','Projektarbeit ID'); + +$i = 0; +foreach ($headline as $title) +{ + $worksheet->write(0,$i,$title, $format_bold); + $maxlength[$i] = mb_strlen($title); + $i++; +} + +// Daten holen +$qry = "SELECT + tbl_projekttyp.bezeichnung, titel, + trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') + || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), + (SELECT anmerkung FROM lehre.tbl_note WHERE note=tbl_projektarbeit.note) as anmerkung, punkte, beginn, + ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, + tbl_projektarbeit.anmerkung, projektarbeit_id + FROM + lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, + public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp + WHERE + tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND + tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id AND + tbl_projektarbeit.student_uid = tbl_benutzer.uid AND + tbl_benutzer.person_id = tbl_person.person_id AND + tbl_projektarbeit.projekttyp_kurzbz = tbl_projekttyp.projekttyp_kurzbz AND + tbl_lehreinheit.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz)." AND + tbl_lehrveranstaltung.studiengang_kz = ".$db->db_add_param($studiengang_kz)." AND + tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; + +if ($semester != '') + $qry .= " AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester); + +//echo $qry; +$zeile=1; +if ($result = $db->db_query($qry)) +{ + while ($row = $db->db_fetch_array($result)) { - $worksheet->write(0,$i,$title, $format_bold); - $maxlength[$i]=mb_strlen($title); - $i++; - } - - // Daten holen - $qry = "SELECT - tbl_projekttyp.bezeichnung, titel, trim(COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,'')), - (SELECT anmerkung FROM lehre.tbl_note WHERE note=tbl_projektarbeit.note) as anmerkung, punkte, beginn, - ende, CASE WHEN freigegeben THEN 'Ja' ELSE 'Nein' END, gesperrtbis, gesamtstunden, themenbereich, tbl_projektarbeit.anmerkung, projektarbeit_id - FROM - lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, - public.tbl_benutzer, public.tbl_person, lehre.tbl_projekttyp - WHERE - tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_projektarbeit.student_uid=tbl_benutzer.uid AND - tbl_benutzer.person_id=tbl_person.person_id AND - tbl_projektarbeit.projekttyp_kurzbz=tbl_projekttyp.projekttyp_kurzbz AND - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND - tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND - tbl_projektarbeit.projekttyp_kurzbz IN ('Bachelor','Diplom','Projekt')"; - - if($semester!='') - $qry.= " AND tbl_lehrveranstaltung.semester='".addslashes($semester)."'"; - - //echo $qry; - $zeile=1; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_array($result)) + $zeile++; + $i = 0; + + //Projektarbeit + foreach ($row as $idx => $content) { - $zeile++; - $i=0; - - //Projektarbeit - foreach ($row as $idx=>$content) + if (is_numeric($idx)) { - if(is_numeric($idx)) + $worksheet->write($zeile, $i, $content); + if (mb_strlen($content) > $maxlength[$i]) + $maxlength[$i] = mb_strlen($content); + $i++; + } + } + $zeile++; + + //Betreuer + $qry_betreuer = " + SELECT + betreuerart_kurzbz, COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') + || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,''), + tbl_note.anmerkung, name, punkte, stunden, stundensatz + FROM + (lehre.tbl_projektbetreuer JOIN tbl_person USING(person_id)) + LEFT JOIN lehre.tbl_note USING(note) + WHERE + projektarbeit_id = ".$db->db_add_param($row['projektarbeit_id']); + + if ($result_betreuer = $db->db_query($qry_betreuer)) + { + if ($db->db_num_rows($result_betreuer) > 0) + { + $headline = array('Betreuerart','Betreuer','Note','Name','Punkte','Stunden','Stundensatz'); + + $i = 1; + + foreach ($headline as $title) { - $worksheet->write($zeile, $i, $content); - if(mb_strlen($content)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($content); + $worksheet->write($zeile,$i,$title, $format_bold); + if (mb_strlen($title) > $maxlength[$i]) + $maxlength[$i] = mb_strlen($title); $i++; } - } - $zeile++; - - //Betreuer - - $qry_betreuer = "SELECT betreuerart_kurzbz, COALESCE(titelpre,'') || ' ' || COALESCE(vorname,'') || ' ' || COALESCE(nachname,'') || ' ' || COALESCE(titelpost,''), tbl_note.anmerkung, faktor, name, punkte, stunden, stundensatz FROM (lehre.tbl_projektbetreuer JOIN tbl_person USING(person_id)) LEFT JOIN lehre.tbl_note USING(note) WHERE projektarbeit_id='".$row['projektarbeit_id']."'"; - - if($result_betreuer = $db->db_query($qry_betreuer)) - { - if($db->db_num_rows($result_betreuer)>0) + + $zeile++; + while ($row_betreuer = $db->db_fetch_array($result_betreuer)) { - $headline=array('Betreuerart','Betreuer','Note','Faktor','Name','Punkte','Stunden','Stundensatz'); - - $i=1; - - foreach ($headline as $title) + $i = 1; + + foreach ($row_betreuer as $idx => $content) { - $worksheet->write($zeile,$i,$title, $format_bold); - if(mb_strlen($title)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($title); - $i++; - } - - $zeile++; - while($row_betreuer = $db->db_fetch_array($result_betreuer)) - { - $i=1; - - foreach ($row_betreuer as $idx=>$content) + if (is_numeric($idx)) { - if(is_numeric($idx)) - { - $worksheet->write($zeile, $i, $content); - if(mb_strlen($content)>$maxlength[$i]) - $maxlength[$i]=mb_strlen($content); - $i++; - } + $worksheet->write($zeile, $i, $content); + if (mb_strlen($content) > $maxlength[$i]) + $maxlength[$i] = mb_strlen($content); + $i++; } - $zeile++; } + $zeile++; } } - } + } - //Die Breite der Spalten setzen - foreach($maxlength as $i=>$breite) - $worksheet->setColumn($i, $i, $breite+2); - - $workbook->close(); +} +//Die Breite der Spalten setzen +foreach ($maxlength as $i => $breite) + $worksheet->setColumn($i, $i, $breite + 2); + +$workbook->close(); ?> diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index afe6e7e27..7a0c47ca8 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -46,10 +46,6 @@ - - - - @@ -155,14 +151,6 @@ - - - - - - - - @@ -175,10 +163,6 @@ - - - - From 881fa5a58234237595b521e8beae0f24c33acbc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 6 Dec 2019 16:07:19 +0100 Subject: [PATCH 11/25] =?UTF-8?q?Summen=20der=20akzeptierten=20Lehrauftr?= =?UTF-8?q?=C3=A4ge=20werden=20getrennt=20ausgewiesen=20in=20der=20Lehrauf?= =?UTF-8?q?tragsliste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../statistik/lehrauftragsliste_mail.xls.php | 457 +++++++++++------- 1 file changed, 276 insertions(+), 181 deletions(-) diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index be76221cc..6c701c4f5 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -33,24 +33,24 @@ require_once('../../include/mail.class.php'); $stsem = new studiensemester(); -if(isset($_GET['stsem'])) +if (isset($_GET['stsem'])) { - if(check_stsem($_GET['stsem'])) + if (check_stsem($_GET['stsem'])) $semester_aktuell = $_GET['stsem']; else die('Studiensemester ist ungueltig'); } else - $semester_aktuell = $stsem->getaktorNext(); + $semester_aktuell = $stsem->getaktorNext(); //UID als Kommandozeilenparameter -if(isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1],'=')) +if (isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1], '=')) { $oe_kurzbz = $_SERVER['argv'][1]; } else { - if(isset($_GET['oe_kurzbz'])) + if (isset($_GET['oe_kurzbz'])) $oe_kurzbz = $_GET['oe_kurzbz']; else { @@ -61,7 +61,7 @@ else } $file = 'lehrauftragsliste.xls'; -$file = tempnam('/tmp','lehrauftragsliste_').'.xls'; +$file = tempnam('/tmp', 'lehrauftragsliste_').'.xls'; // Creating a workbook echo 'Lehrauftragslisten werden erstellt. Bitte warten!
'; @@ -72,10 +72,10 @@ $db = new basis_db(); $stg = new studiengang(); $stg->getStudiengaengeFromOe($oe_kurzbz); -$stg_arr=array(); -if(count($stg->result)>0) +$stg_arr = array(); +if (count($stg->result) > 0) { - foreach($stg->result as $row) + foreach ($stg->result as $row) { $stg_arr[] = $row->studiengang_kz; } @@ -105,16 +105,16 @@ $qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz ) as foo JOIN public.tbl_studiengang USING (studiengang_kz) "; -if(count($stg_arr)>0) - $qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")"; +if (count($stg_arr) > 0) + $qry_stg .= " WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")"; - $qry_stg.=" ORDER BY typ, kurzbz"; + $qry_stg .= " ORDER BY typ, kurzbz"; $liste_gesamt = array(); $gesamt =& $workbook->addWorksheet('Gesamt'); $gesamt->setInputEncoding('utf-8'); -$gesamtsheet_row=1; +$gesamtsheet_row = 1; //Formate Definieren $format_bold =& $workbook->addFormat(); @@ -125,68 +125,70 @@ $format_colored =& $workbook->addFormat(); $format_colored->setFgColor(10); $format_number_colored =& $workbook->addFormat(); -$format_number_colored->setNumFormat('0,0.00'); +$format_number_colored->setNumFormat('0, 0.00'); //$format_number_colored->setNumFormat('0.00'); $format_number_colored->setFgColor(10); $format_number =& $workbook->addFormat(); -$format_number->setNumFormat('0,0.00'); +$format_number->setNumFormat('0, 0.00'); $format_number_bold =& $workbook->addFormat(); -$format_number_bold->setNumFormat('0,0.00'); +$format_number_bold->setNumFormat('0, 0.00'); //$format_number_bold->setNumFormat('0.00'); $format_number_bold->setBold(); $format_normal = & $workbook->addFormat(); -if($result_stg = $db->db_query($qry_stg)) +if ($result_stg = $db->db_query($qry_stg)) { - while($row_stg = $db->db_fetch_object($result_stg)) + while ($row_stg = $db->db_fetch_object($result_stg)) { //Studiengang laden $studiengang = new studiengang($row_stg->studiengang_kz); - $studiengang_kz=$row_stg->studiengang_kz; + $studiengang_kz = $row_stg->studiengang_kz; // Creating a worksheet $worksheet =& $workbook->addWorksheet($studiengang->kuerzel); $worksheet->setInputEncoding('utf-8'); //echo "Writing $studiengang->kuerzel ...".microtime()."
"; - $i=0; + $i = 0; $gesamtsheet_row++; - //$gesamt->write(0,0,"", $format_colored); Mag er nicht. Wirft Fehler in MS Excel - //$gesamt->write(0,1,"Kennzeichnet Änderungen am Lehrauftrag innerhalb der letzten 31 Tage", $format_normal); Mag er nicht. Wirft Fehler in MS Excel - $worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); - $gesamt->write($gesamtsheet_row,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); - $gesamtsheet_row+=2; + $worksheet->write(0, 0, 'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); + $gesamt->write($gesamtsheet_row, 0, 'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); + $gesamtsheet_row += 2; //Ueberschriften - $worksheet->write(2,$i,"Studiengang", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Studiengang", $format_bold); - $worksheet->write(2,++$i,"Personalnr", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Personalnr", $format_bold); - $worksheet->write(2,++$i,"Titel", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Titel", $format_bold); - $worksheet->write(2,++$i,"Vorname", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Vorname", $format_bold); - $worksheet->write(2,++$i,"Familienname", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Familienname", $format_bold); - $worksheet->write(2,++$i,"Fixangestellt", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Fixangestellt", $format_bold); - $worksheet->write(2,++$i,"Disz. Zuordnung", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Disz. Zuordnung", $format_bold); - $worksheet->write(2,++$i,"Department", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Department", $format_bold); - $worksheet->write(2,++$i,"LV-Stunden", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"LV-Stunden", $format_bold); - $worksheet->write(2,++$i,"LV-Kosten", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"LV-Kosten", $format_bold); - $worksheet->write(2,++$i,"Betreuerstunden", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Betreuerstunden", $format_bold); - $worksheet->write(2,++$i,"Betreuerkosten", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Betreuer-Kosten", $format_bold); - $worksheet->write(2,++$i,"Gesamtstunden", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Gesamtstunden", $format_bold); - $worksheet->write(2,++$i,"Gesamtkosten", $format_bold); - $gesamt->write($gesamtsheet_row,$i,"Gesamtkosten", $format_bold); + $worksheet->write(2, $i, "Studiengang", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Studiengang", $format_bold); + $worksheet->write(2, ++$i, "Personalnr", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Personalnr", $format_bold); + $worksheet->write(2, ++$i, "Titel", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Titel", $format_bold); + $worksheet->write(2, ++$i, "Vorname", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Vorname", $format_bold); + $worksheet->write(2, ++$i, "Familienname", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Familienname", $format_bold); + $worksheet->write(2, ++$i, "Fixangestellt", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Fixangestellt", $format_bold); + $worksheet->write(2, ++$i, "Disz. Zuordnung", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Disz. Zuordnung", $format_bold); + $worksheet->write(2, ++$i, "Department", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Department", $format_bold); + $worksheet->write(2, ++$i, "LV-Stunden", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "LV-Stunden", $format_bold); + $worksheet->write(2, ++$i, "LV-Kosten", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "LV-Kosten", $format_bold); + $worksheet->write(2, ++$i, "Betreuerstunden", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Betreuerstunden", $format_bold); + $worksheet->write(2, ++$i, "Betreuerkosten", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Betreuer-Kosten", $format_bold); + $worksheet->write(2, ++$i, "Gesamtstunden", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden", $format_bold); + $worksheet->write(2, ++$i, "Gesamtkosten", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten", $format_bold); + $worksheet->write(2, ++$i, "Gesamtstunden angenommen", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtstunden angenommen", $format_bold); + $worksheet->write(2, ++$i, "Gesamtkosten angenommen", $format_bold); + $gesamt->write($gesamtsheet_row, $i, "Gesamtkosten angenommen", $format_bold); //Daten holen $qry = "SELECT tbl_lehreinheit.*, @@ -259,7 +261,15 @@ if($result_stg = $db->db_query($qry_stg)) WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum) > now() - interval '31 days' THEN 't' ELSE 'f' - END AS geaendert + END AS geaendert, + (SELECT + vertragsstatus_kurzbz + FROM + lehre.tbl_vertrag_vertragsstatus + WHERE + vertrag_id = tbl_lehreinheitmitarbeiter.vertrag_id + ORDER BY datum DESC + LIMIT 1) as vertragsstatus FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, PUBLIC.tbl_mitarbeiter, @@ -284,28 +294,62 @@ if($result_stg = $db->db_query($qry_stg)) vorname, tbl_mitarbeiter.mitarbeiter_uid"; - if($result = $db->db_query($qry)) + if ($result = $db->db_query($qry)) { - $zeile=3; + $zeile = 3; $gesamtkosten = 0; - $liste=array(); + $liste = array(); $gesamtsheet_row++; - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { //Gesamtstunden und Kosten ermitteln - if(array_key_exists($row->mitarbeiter_uid, $liste)) + if (array_key_exists($row->mitarbeiter_uid, $liste)) { - $liste[$row->mitarbeiter_uid]['lvstunden'] = $liste[$row->mitarbeiter_uid]['lvstunden'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['lvkosten'] = $liste[$row->mitarbeiter_uid]['lvkosten'] + ($row->semesterstunden*$row->stundensatz); - $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $liste[$row->mitarbeiter_uid]['gesamtstunden'] + $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden*$row->stundensatz); + $liste[$row->mitarbeiter_uid]['lvstunden'] = + $liste[$row->mitarbeiter_uid]['lvstunden'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['lvkosten'] = + $liste[$row->mitarbeiter_uid]['lvkosten'] + ($row->semesterstunden * $row->stundensatz); + $liste[$row->mitarbeiter_uid]['gesamtstunden'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten'] + ($row->semesterstunden * $row->stundensatz); + + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + } + + if ($row->vertragsstatus == 'akzeptiert') + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + + ($row->semesterstunden * $row->stundensatz); + } } else { $liste[$row->mitarbeiter_uid]['lvstunden'] = $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['lvkosten'] = $row->semesterstunden*$row->stundensatz; + $liste[$row->mitarbeiter_uid]['lvkosten'] = $row->semesterstunden * $row->stundensatz; $liste[$row->mitarbeiter_uid]['gesamtstunden'] = $row->semesterstunden; - $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden*$row->stundensatz; + $liste[$row->mitarbeiter_uid]['gesamtkosten'] = $row->semesterstunden * $row->stundensatz; + + if (!isset($liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'])) + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = 0; + } + + if ($row->vertragsstatus == 'akzeptiert') + { + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtstunden_akzeptiert'] + $row->semesterstunden; + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] = + $liste[$row->mitarbeiter_uid]['gesamtkosten_akzeptiert'] + + ($row->semesterstunden * $row->stundensatz); + } } $liste[$row->mitarbeiter_uid]['personalnummer'] = $row->personalnummer; $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; @@ -316,21 +360,27 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['department'] = $row->department; $liste[$row->mitarbeiter_uid]['betreuergesamtstunden'] = 0; $liste[$row->mitarbeiter_uid]['betreuergesamtkosten'] = 0; - if($row->geaendert=='t') - $liste[$row->mitarbeiter_uid]['geaendert']=true; + if ($row->geaendert == 't') + $liste[$row->mitarbeiter_uid]['geaendert'] = true; } //Alle holen die eine Betreuung aber keinen Lehrauftrag haben $qry = "SELECT - distinct personalnummer, titelpre, vorname, nachname, uid, CASE WHEN fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt, - (SELECT tbl_organisationseinheit.organisationseinheittyp_kurzbz||' '||tbl_organisationseinheit.bezeichnung - FROM public.tbl_benutzerfunktion - JOIN public.tbl_organisationseinheit USING (oe_kurzbz) - WHERE funktion_kurzbz='oezuordnung' - AND (datum_von IS NULL OR datum_von <= now()) - AND (datum_bis IS NULL OR datum_bis >= now()) - AND tbl_benutzerfunktion.uid = tbl_benutzer.uid - LIMIT 1) AS oezuordnung, + distinct personalnummer, titelpre, vorname, nachname, uid, + CASE WHEN fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt, + (SELECT + tbl_organisationseinheit.organisationseinheittyp_kurzbz + || ' ' || tbl_organisationseinheit.bezeichnung + FROM + public.tbl_benutzerfunktion + JOIN public.tbl_organisationseinheit USING (oe_kurzbz) + WHERE + funktion_kurzbz='oezuordnung' + AND (datum_von IS NULL OR datum_von <= now()) + AND (datum_bis IS NULL OR datum_bis >= now()) + AND tbl_benutzerfunktion.uid = tbl_benutzer.uid + LIMIT 1 + ) AS oezuordnung, ( WITH RECURSIVE meine_oes(oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz) AS ( SELECT oe_kurzbz, @@ -392,14 +442,19 @@ if($result_stg = $db->db_query($qry_stg)) tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden is not null AND - EXISTS (SELECT lehreinheit_id FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id) AND - tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell).");"; + EXISTS ( + SELECT lehreinheit_id + FROM + lehre.tbl_lehreinheitgruppe + WHERE + lehreinheit_id=tbl_lehreinheit.lehreinheit_id) AND + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell).");"; - if($result = $db->db_query($qry)) + if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { - if(!isset($liste[$row->uid])) + if (!isset($liste[$row->uid])) { $liste[$row->uid]['personalnummer'] = $row->personalnummer; $liste[$row->uid]['titelpre'] = $row->titelpre; @@ -408,7 +463,7 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->uid]['fixangestellt'] = $row->fixangestellt; $liste[$row->uid]['oezuordnung'] = $row->oezuordnung; $liste[$row->uid]['department'] = $row->department; - $liste[$row->uid]['geaendert']=false; + $liste[$row->uid]['geaendert'] = false; $liste[$row->uid]['gesamtstunden'] = 0; $liste[$row->uid]['gesamtkosten'] = 0; $liste[$row->uid]['lvstunden'] = 0; @@ -420,10 +475,10 @@ if($result_stg = $db->db_query($qry_stg)) } //Betreuungen fuer Projektarbeiten - foreach ($liste as $uid=>$arr) + foreach ($liste as $uid => $arr) { $qry = " - SELECT + SELECT tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz, CASE WHEN @@ -432,7 +487,17 @@ if($result_stg = $db->db_query($qry_stg)) 't' ELSE 'f' - END as geaendert + END as geaendert, + ( + SELECT + vertragsstatus_kurzbz + FROM + lehre.tbl_vertrag_vertragsstatus + WHERE + vertrag_id = tbl_projektbetreuer.vertrag_id + ORDER BY datum DESC + LIMIT 1 + ) as vertragsstatus FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE @@ -445,17 +510,32 @@ if($result_stg = $db->db_query($qry_stg)) AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); - if($result = $db->db_query($qry)) + if ($result = $db->db_query($qry)) { - while($row = $db->db_fetch_object($result)) + while ($row = $db->db_fetch_object($result)) { $liste[$uid]['gesamtstunden'] = $liste[$uid]['gesamtstunden'] + $row->stunden; - $liste[$uid]['gesamtkosten'] = $liste[$uid]['gesamtkosten'] + ($row->stunden*$row->stundensatz); + $liste[$uid]['gesamtkosten'] = + $liste[$uid]['gesamtkosten'] + ($row->stunden * $row->stundensatz); $liste[$uid]['betreuergesamtstunden'] = $liste[$uid]['betreuergesamtstunden'] + $row->stunden; - $liste[$uid]['betreuergesamtkosten'] = $liste[$uid]['betreuergesamtkosten'] + ($row->stunden*$row->stundensatz); - if($row->geaendert=='t') + $liste[$uid]['betreuergesamtkosten'] = + $liste[$uid]['betreuergesamtkosten'] + ($row->stunden * $row->stundensatz); + if ($row->geaendert == 't') { - $liste[$uid]['geaendert']=true; + $liste[$uid]['geaendert'] = true; + } + if (!isset($liste[$uid]['gesamtstunden_akzeptiert'])) + { + $liste[$uid]['gesamtstunden_akzeptiert'] = 0; + $liste[$uid]['gesamtkosten_akzeptiert'] = 0; + } + + if ($row->vertragsstatus == 'akzeptiert') + { + $liste[$uid]['gesamtstunden_akzeptiert'] = + $liste[$uid]['gesamtstunden_akzeptiert'] + $row->stunden; + $liste[$uid]['gesamtkosten_akzeptiert'] = + $liste[$uid]['gesamtkosten_akzeptiert'] + ($row->stunden * $row->stundensatz); } } } @@ -465,17 +545,17 @@ if($result_stg = $db->db_query($qry_stg)) $nn = array(); foreach ($liste as $key => $row) { - $vn[$key] = $row['vorname']; - $nn[$key] = $row['nachname']; + $vn[$key] = $row['vorname']; + $nn[$key] = $row['nachname']; } array_multisort($nn, SORT_ASC, $vn, SORT_ASC, $liste); //Daten ausgeben - foreach ($liste as $uid=>$row) + foreach ($liste as $uid => $row) { - $i=0; - if(isset($row['geaendert']) && $row['geaendert']==true) + $i = 0; + if (isset($row['geaendert']) && $row['geaendert'] == true) { $format = $format_colored; $formatnb = $format_number_colored; @@ -486,78 +566,95 @@ if($result_stg = $db->db_query($qry_stg)) $formatnb = $format_number; } //Studiengang - $worksheet->write($zeile,$i,$studiengang->kuerzel, $format); - $gesamt->write($gesamtsheet_row,$i,$studiengang->kuerzel, $format); + $worksheet->write($zeile, $i, $studiengang->kuerzel, $format); + $gesamt->write($gesamtsheet_row, $i, $studiengang->kuerzel, $format); //Personalnummer - $worksheet->write($zeile,++$i,$row['personalnummer'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['personalnummer'], $format); + $worksheet->write($zeile, ++$i, $row['personalnummer'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['personalnummer'], $format); //Titel - $worksheet->write($zeile,++$i,$row['titelpre'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['titelpre'], $format); + $worksheet->write($zeile, ++$i, $row['titelpre'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['titelpre'], $format); //Vorname - $worksheet->write($zeile,++$i,$row['vorname'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['vorname'], $format); + $worksheet->write($zeile, ++$i, $row['vorname'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['vorname'], $format); //Nachname - $worksheet->write($zeile,++$i,$row['nachname'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['nachname'], $format); + $worksheet->write($zeile, ++$i, $row['nachname'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['nachname'], $format); //Fixangestellt - $worksheet->write($zeile,++$i,$row['fixangestellt'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['fixangestellt'], $format); + $worksheet->write($zeile, ++$i, $row['fixangestellt'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['fixangestellt'], $format); //OE-Zuordnung - $worksheet->write($zeile,++$i,$row['oezuordnung'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['oezuordnung'], $format); + $worksheet->write($zeile, ++$i, $row['oezuordnung'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['oezuordnung'], $format); //Department der OE-Zuordnung - $worksheet->write($zeile,++$i,$row['department'], $format); - $gesamt->write($gesamtsheet_row,$i,$row['department'], $format); + $worksheet->write($zeile, ++$i, $row['department'], $format); + $gesamt->write($gesamtsheet_row, $i, $row['department'], $format); //LVStunden - $lvstunden = str_replace(',', '.', $row['lvstunden']); - $worksheet->write($zeile,++$i,$lvstunden, $format); - $gesamt->write($gesamtsheet_row,$i,$lvstunden, $format); + $lvstunden = str_replace(', ', '.', $row['lvstunden']); + $worksheet->write($zeile, ++$i, $lvstunden, $format); + $gesamt->write($gesamtsheet_row, $i, $lvstunden, $format); //LVKosten - $lvkosten = str_replace(',', '.', $row['lvkosten']); - $worksheet->writeNumber($zeile,++$i,$lvkosten, $formatnb); - $gesamt->writeNumber($gesamtsheet_row,$i,$lvkosten, $formatnb); + $lvkosten = str_replace(', ', '.', $row['lvkosten']); + $worksheet->writeNumber($zeile, ++$i, $lvkosten, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $lvkosten, $formatnb); //Betreuerstunden - $betreuergesamtstunden = str_replace(',', '.', $row['betreuergesamtstunden']); - $worksheet->write($zeile,++$i,$betreuergesamtstunden, $formatnb); - $gesamt->write($gesamtsheet_row,$i,$betreuergesamtstunden, $formatnb); + $betreuergesamtstunden = str_replace(', ', '.', $row['betreuergesamtstunden']); + $worksheet->write($zeile, ++$i, $betreuergesamtstunden, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $betreuergesamtstunden, $formatnb); //Betreuerkosten - $betreuergesamtkosten = str_replace(',', '.', $row['betreuergesamtkosten']); - $worksheet->write($zeile,++$i,$betreuergesamtkosten, $formatnb); - $gesamt->write($gesamtsheet_row,$i,$betreuergesamtkosten, $formatnb); + $betreuergesamtkosten = str_replace(', ', '.', $row['betreuergesamtkosten']); + $worksheet->write($zeile, ++$i, $betreuergesamtkosten, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $betreuergesamtkosten, $formatnb); //Gesamtstunden - $gesamtstunden = str_replace(',', '.', $row['gesamtstunden']); - $worksheet->write($zeile,++$i,$gesamtstunden, $formatnb); - $gesamt->write($gesamtsheet_row,$i,$gesamtstunden, $formatnb); + $gesamtstunden = str_replace(', ', '.', $row['gesamtstunden']); + $worksheet->write($zeile, ++$i, $gesamtstunden, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $gesamtstunden, $formatnb); //Gesamtkosten - $gesamtkosten_row = str_replace(',', '.', $row['gesamtkosten']); - $worksheet->writeNumber($zeile,++$i,$gesamtkosten_row, $formatnb); - $gesamt->writeNumber($gesamtsheet_row,$i,$gesamtkosten_row, $formatnb); - + $gesamtkosten_row = str_replace(', ', '.', $row['gesamtkosten']); + $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_row, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_row, $formatnb); + //Gesamtstunden akzeptiert + $gesamtstunden_akzeptiert = str_replace(', ', '.', $row['gesamtstunden_akzeptiert']); + $worksheet->write($zeile, ++$i, $gesamtstunden_akzeptiert, $formatnb); + $gesamt->write($gesamtsheet_row, $i, $gesamtstunden_akzeptiert, $formatnb); + //Gesamtkosten akzeptiert + $gesamtkosten_akzeptiert_row = str_replace(', ', '.', $row['gesamtkosten_akzeptiert']); + $worksheet->writeNumber($zeile, ++$i, $gesamtkosten_akzeptiert_row, $formatnb); + $gesamt->writeNumber($gesamtsheet_row, $i, $gesamtkosten_akzeptiert_row, $formatnb); //Kosten zu den Gesamtkosten hinzurechnen $gesamtkosten = $gesamtkosten + $row['gesamtkosten']; $zeile++; $gesamtsheet_row++; - $liste_gesamt[$uid]['personalnummer']=$row['personalnummer']; - $liste_gesamt[$uid]['titelpre']=$row['titelpre']; - $liste_gesamt[$uid]['vorname']=$row['vorname']; - $liste_gesamt[$uid]['nachname']=$row['nachname']; - if(isset($liste_gesamt[$uid]['gesamtstunden'])) - $liste_gesamt[$uid]['gesamtstunden']+=$row['gesamtstunden']; + $liste_gesamt[$uid]['personalnummer'] = $row['personalnummer']; + $liste_gesamt[$uid]['titelpre'] = $row['titelpre']; + $liste_gesamt[$uid]['vorname'] = $row['vorname']; + $liste_gesamt[$uid]['nachname'] = $row['nachname']; + if (isset($liste_gesamt[$uid]['gesamtstunden'])) + $liste_gesamt[$uid]['gesamtstunden'] += $row['gesamtstunden']; else - $liste_gesamt[$uid]['gesamtstunden']=$row['gesamtstunden']; + $liste_gesamt[$uid]['gesamtstunden'] = $row['gesamtstunden']; - if(isset($liste_gesamt[$uid]['gesamtkosten'])) - $liste_gesamt[$uid]['gesamtkosten']+=$row['gesamtkosten']; + if (isset($liste_gesamt[$uid]['gesamtkosten'])) + $liste_gesamt[$uid]['gesamtkosten'] += $row['gesamtkosten']; else - $liste_gesamt[$uid]['gesamtkosten']=$row['gesamtkosten']; + $liste_gesamt[$uid]['gesamtkosten'] = $row['gesamtkosten']; + + if (isset($liste_gesamt[$uid]['gesamtstunden_akzeptiert'])) + $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] += $row['gesamtstunden_akzeptiert']; + else + $liste_gesamt[$uid]['gesamtstunden_akzeptiert'] = $row['gesamtstunden_akzeptiert']; + + if (isset($liste_gesamt[$uid]['gesamtkosten_akzeptiert'])) + $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] += $row['gesamtkosten_akzeptiert']; + else + $liste_gesamt[$uid]['gesamtkosten_akzeptiert'] = $row['gesamtkosten_akzeptiert']; } //Gesamtkosten anzeigen - $worksheet->writeNumber($zeile,13,$gesamtkosten, $format_number_bold); - $gesamt->writeNumber($gesamtsheet_row,13,$gesamtkosten, $format_number_bold); + $worksheet->writeNumber($zeile, 13, $gesamtkosten, $format_number_bold); + $gesamt->writeNumber($gesamtsheet_row, 13, $gesamtkosten, $format_number_bold); } } @@ -566,62 +663,62 @@ if($result_stg = $db->db_query($qry_stg)) $worksheet->setInputEncoding('utf-8'); $qry = "SELECT studiensemester_kurzbz, nachname, vorname, sum(stunden) AS stunden, titelpre, - sum(tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)::numeric(8,2) AS euro, person_id + sum(tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)::numeric(8, 2) AS euro, person_id FROM public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id) JOIN lehre.tbl_projektarbeit USING (projektarbeit_id) JOIN lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE - studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND - stunden>0"; + studiensemester_kurzbz = ".$db->db_add_param($semester_aktuell)." AND + stunden > 0"; - if(count($stg_arr)>0) - $qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")"; + if (count($stg_arr) > 0) + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")"; - $qry.=" + $qry .= " GROUP BY - studiensemester_kurzbz,person_id,nachname,vorname, titelpre + studiensemester_kurzbz, person_id, nachname, vorname, titelpre ORDER BY - nachname,vorname + nachname, vorname "; - $i=0; - $gesamtkosten=0; + $i = 0; + $gesamtkosten = 0; - $worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' Betreuerstunden', $format_bold); + $worksheet->write(0, 0, 'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' Betreuerstunden', $format_bold); //Ueberschriften - //$worksheet->write(2,$i,"Studiengang", $format_bold); - $worksheet->write(2,++$i,"Titel", $format_bold); - $worksheet->write(2,++$i,"Familienname", $format_bold); - $worksheet->write(2,++$i,"Vorname", $format_bold); - $worksheet->write(2,++$i,"Stunden", $format_bold); - $worksheet->write(2,++$i,"Kosten", $format_bold); + //$worksheet->write(2, $i, "Studiengang", $format_bold); + $worksheet->write(2, ++$i, "Titel", $format_bold); + $worksheet->write(2, ++$i, "Familienname", $format_bold); + $worksheet->write(2, ++$i, "Vorname", $format_bold); + $worksheet->write(2, ++$i, "Stunden", $format_bold); + $worksheet->write(2, ++$i, "Kosten", $format_bold); $format = $format_normal; $formatnb = $format_number; - if($result = $db->db_query($qry)) + if ($result = $db->db_query($qry)) { - $zeile=3; - while($row = $db->db_fetch_object($result)) + $zeile = 3; + while ($row = $db->db_fetch_object($result)) { - $i=0; + $i = 0; //Studiensemester - $worksheet->write($zeile,++$i,$row->titelpre, $format); + $worksheet->write($zeile, ++$i, $row->titelpre, $format); //Vorname - $worksheet->write($zeile,++$i,$row->nachname, $format); + $worksheet->write($zeile, ++$i, $row->nachname, $format); //Nachname - $worksheet->write($zeile,++$i,$row->vorname, $format); + $worksheet->write($zeile, ++$i, $row->vorname, $format); //Stunden - $worksheet->writeNumber($zeile,++$i,$row->stunden, $formatnb); + $worksheet->writeNumber($zeile, ++$i, $row->stunden, $formatnb); //Kosten - $worksheet->writeNumber($zeile,++$i,$row->euro, $formatnb); + $worksheet->writeNumber($zeile, ++$i, $row->euro, $formatnb); $zeile++; $gesamtkosten = $gesamtkosten + $row->euro; } //Gesamtkosten anzeigen - $worksheet->writeNumber($zeile,5,$gesamtkosten, $format_number_bold); + $worksheet->writeNumber($zeile, 5, $gesamtkosten, $format_number_bold); } $workbook->close(); @@ -629,24 +726,22 @@ if($result_stg = $db->db_query($qry_stg)) //Mail versenden mit Excel File im Anhang $subject = "Lehrauftragsliste ".date('d.m.Y'); $message = "Dies ist eine automatische eMail!\n\nAnbei die Lehrauftragslisten vom ".date('d.m.Y'); - $message.= "\n\nJederzeit abrufbar unter ".APP_ROOT.'content/statistik/lehrauftragsliste_mail.xls.php'; - if($oe_kurzbz!='') - $message.="?oe_kurzbz=".$oe_kurzbz; + $message .= "\n\nJederzeit abrufbar unter ".APP_ROOT.'content/statistik/lehrauftragsliste_mail.xls.php'; + if ($oe_kurzbz != '') + $message .= "?oe_kurzbz=".$oe_kurzbz; $fileatttype = "application/xls"; $fileattname = "lehrauftragsliste_".date('Y_m_d').".xls"; $empfaenger = MAIL_GST; - if($oe_kurzbz=='lehrgang') + if ($oe_kurzbz == 'lehrgang') $empfaenger = MAIL_LG; - $mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message); - $mail->addAttachmentBinary($file, $fileatttype, $fileattname); + $mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message); + $mail->addAttachmentBinary($file, $fileatttype, $fileattname); - if($mail->send()) + if ($mail->send()) echo 'Email mit Lehrauftragslisten wurde an '.$empfaenger.' versandt!'; - else - echo "Fehler beim Versenden der Lehrauftragsliste"; + else + echo "Fehler beim Versenden der Lehrauftragsliste"; } - -?> From 8dd860e7684df32f185bc03b0f13605803a915d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 11 Dec 2019 11:12:12 +0100 Subject: [PATCH 12/25] Faktor aus Lehrauftragsberechnung entfernt da dieser in Zukunft anderwertig verwendet wird --- content/lvplanung/lehrveranstaltungDBDML.php | 10 ++-------- .../lvplanung/lehrveranstaltungoverlay.js.php | 4 ++-- include/vertrag.class.php | 16 ++++++++-------- rdf/lehrauftrag.xml.php | 6 +++--- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 2b3090221..7039440cb 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -157,8 +157,6 @@ function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_ar WHERE mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).") GROUP BY tbl_studiengang.bezeichnung"; @@ -305,12 +303,12 @@ if(!$error) $le = new lehreinheit(); $le->load($lem->lehreinheit_id); - if($lem->stundensatz<=0 || $lem->faktor<=0 || $lem->bismelden==false) + if($lem->bismelden==false) $neue_stunden_eingerechnet=false; else $neue_stunden_eingerechnet=true; - if(($stundensatz_alt<=0 || $faktor_alt<=0 || $bismelden_alt==false)) + if($bismelden_alt==false) $alte_stunden_eingerechnet=false; else $alte_stunden_eingerechnet=true; @@ -337,8 +335,6 @@ if(!$error) WHERE mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden"; if(count($oe_arr)>0) @@ -559,8 +555,6 @@ if(!$error) WHERE mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND - faktor>0 AND - stundensatz>0 AND bismelden"; if(count($oe_arr)>0) diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php index 38091a33f..a2039666c 100644 --- a/content/lvplanung/lehrveranstaltungoverlay.js.php +++ b/content/lvplanung/lehrveranstaltungoverlay.js.php @@ -2545,8 +2545,8 @@ function LeMitarbeiterGesamtkosten() faktor = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-faktor').value stundensatz = document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-stundensatz').value - if(!isNaN(semesterstunden) && !isNaN(faktor) && !isNaN(stundensatz)) - gesamtkosten = semesterstunden*faktor*stundensatz; + if(!isNaN(semesterstunden) && !isNaN(stundensatz)) + gesamtkosten = semesterstunden*stundensatz; else gesamtkosten = 0; diff --git a/include/vertrag.class.php b/include/vertrag.class.php index 4116904ca..a1a0431fc 100644 --- a/include/vertrag.class.php +++ b/include/vertrag.class.php @@ -346,7 +346,7 @@ class vertrag extends basis_db mitarbeiter_uid, null as pruefung_id, null as projektarbeit_id, - (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, + (tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, tbl_lehreinheit.studiensemester_kurzbz, null as betreuerart_kurzbz, ( SELECT @@ -370,7 +370,7 @@ class vertrag extends basis_db null as mitarbeiter_uid, null::integer as pruefung_id, projektarbeit_id, - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, + (tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, tbl_lehreinheit.studiensemester_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz, (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) @@ -513,7 +513,7 @@ class vertrag extends basis_db mitarbeiter_uid, null as pruefung_id, null as projektarbeit_id, - (tbl_lehreinheitmitarbeiter.faktor*tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, + (tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz) as betrag, tbl_lehreinheit.studiensemester_kurzbz, null as betreuerart_kurzbz, ( SELECT @@ -529,7 +529,7 @@ class vertrag extends basis_db FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN lehre.tbl_vertrag USING (vertrag_id) + JOIN lehre.tbl_vertrag USING (vertrag_id) WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)." UNION @@ -539,7 +539,7 @@ class vertrag extends basis_db null as mitarbeiter_uid, null::integer as pruefung_id, projektarbeit_id, - (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, + (tbl_projektbetreuer.stunden*tbl_projektbetreuer.stundensatz) as betrag, tbl_lehreinheit.studiensemester_kurzbz, tbl_projektbetreuer.betreuerart_kurzbz, (SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid) @@ -1041,7 +1041,7 @@ class vertrag extends basis_db $qry = " UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."; - INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertamum, insertvon) + INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertamum, insertvon) VALUES(". $this->db_qoute('storno'). ", ". $this->db_add_param($vertrag_id, FHC_INTEGER). ", ". @@ -1123,7 +1123,7 @@ class vertrag extends basis_db */ public function getFalscheBetraege($studiensemester_kurzbz) { - $qry = "SELECT * FROM + $qry = "SELECT * FROM ( SELECT tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id, @@ -1136,7 +1136,7 @@ class vertrag extends basis_db WHERE studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." )x - WHERE + WHERE x.semesterstunden * x.stundensatz != x.betrag"; if($result = $this->db_query($qry)) diff --git a/rdf/lehrauftrag.xml.php b/rdf/lehrauftrag.xml.php index 5b47c70a9..8d65f0a38 100644 --- a/rdf/lehrauftrag.xml.php +++ b/rdf/lehrauftrag.xml.php @@ -338,7 +338,7 @@ function drawLehrauftrag($uid) $stunden = $row->semesterstunden; $satz = $row->stundensatz; $faktor = $row->faktor; - $brutto = $row->semesterstunden * $row->stundensatz * $row->faktor; + $brutto = $row->semesterstunden * $row->stundensatz; $last_le = $row->lehreinheit_id; } array_unique($gruppen); @@ -404,7 +404,7 @@ function drawLehrauftrag($uid) $stg->load($row->studiengang_kz); $stg_kuerzel = $stg->kuerzel; - $brutto = $row->stunden * $row->stundensatz * $row->faktor; + $brutto = $row->stunden * $row->stundensatz; if ($row->stunden != 0) { switch ($row->projekttyp_kurzbz) @@ -444,7 +444,7 @@ function drawLehrauftrag($uid) - '. $lv_row['einzelgruppe']. ' + '. $lv_row['einzelgruppe']. ' From 113fd0cc10aa36bed4efba1c23acba25434564a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 11 Dec 2019 15:44:58 +0100 Subject: [PATCH 13/25] =?UTF-8?q?Anpassungen=20f=C3=BCr=203.=20Geschlecht?= =?UTF-8?q?=20(x/divers)=20hinzugef=C3=BCgt=20-=20Eigene=20Tabelle=20f?= =?UTF-8?q?=C3=BCr=20Geschlecht=20-=20Mehrsprachige=20Bezeichnung=20f?= =?UTF-8?q?=C3=BCr=20Geschlecht=20-=20Diverse=20hartcodierte=20DropDowns?= =?UTF-8?q?=20ersetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mitarbeiterdetailoverlay.xul.php | 19 +-- content/student/studentdetailoverlay.xul.php | 18 +-- include/geschlecht.class.php | 116 ++++++++++++++++++ include/person.class.php | 7 +- rdf/geschlecht.rdf.php | 40 ++++++ system/dbupdate_3.3.php | 35 ++++++ .../personen/import/interessentenimport.php | 15 ++- vilesci/personen/import/mitarbeiterimport.php | 16 ++- vilesci/personen/personen_anlegen.php | 17 ++- vilesci/personen/personen_details.php | 43 +++---- 10 files changed, 270 insertions(+), 56 deletions(-) create mode 100644 include/geschlecht.class.php create mode 100644 rdf/geschlecht.rdf.php diff --git a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php index 8eb009473..1cc8fb34e 100644 --- a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php +++ b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php @@ -143,13 +143,18 @@ echo '';