diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index 6ed5e93bd..3c540ea65 100755 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -243,4 +243,6 @@ $config['fhc_acl'] = array 'PhrasesLib.getPhrase' => 'system/PhrasesLib' ); -$config['addons_aufnahme_url'] = 'http://debian.dev/build/addons/aufnahme/cis/index.php'; +// +$config['addons_aufnahme_url'] = array(); +$config['addons_aufnahme_url']['OE_ROOT'] = 'http://debian.dev/addons/aufnahme/OE_ROOT/cis/index.php'; diff --git a/application/config/rest.php b/application/config/rest.php index 1b6514abf..ec2d6f5ad 100644 --- a/application/config/rest.php +++ b/application/config/rest.php @@ -167,9 +167,9 @@ $config['auth_library_function'] = 'basicAuthentication'; | $config['auth_override_class_method']['accounts']['user'] = 'basic'; | $config['auth_override_class_method']['dashboard']['*'] = 'none|digest|basic'; | -| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. - * An asterisk may also be used to specify an authentication method for an entire classes methods. - * Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end +| Here 'deals', 'accounts' and 'dashboard' are controller names, 'view', 'insert' and 'user' are methods within. + * An asterisk may also be used to specify an authentication method for an entire classes methods. + * Ex: $config['auth_override_class_method']['dashboard']['*'] = 'basic'; (NOTE: leave off the '_get' or '_post' from the end * of the method name) | Acceptable values are; 'none', 'digest' and 'basic'. | @@ -223,7 +223,7 @@ $config['auth_library_function'] = 'basicAuthentication'; | restrict certain methods to IPs in your whitelist | */ -$config['rest_ip_whitelist_enabled'] = FALSE; +$config['rest_ip_whitelist_enabled'] = TRUE; /* |-------------------------------------------------------------------------- @@ -238,7 +238,7 @@ $config['rest_ip_whitelist_enabled'] = FALSE; | 127.0.0.1 and 0.0.0.0 are allowed by default | */ -$config['rest_ip_whitelist'] = ''; +$config['rest_ip_whitelist'] = '127.0.0.1'; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/Redirect.php b/application/controllers/Redirect.php index 136d2fc35..99d459771 100644 --- a/application/controllers/Redirect.php +++ b/application/controllers/Redirect.php @@ -25,13 +25,52 @@ class Redirect extends FHC_Controller // Loads config file fhcomplete $this->config->load('fhcomplete'); + + // Loads message helper + $this->load->helper('message'); + + // Loads model MessageTokenModel + $this->load->model('system/MessageToken_model', 'MessageTokenModel'); + + // Loads library OrganisationseinheitLib + $this->load->library('OrganisationseinheitLib'); } + /** + * redirectByToken + * + * - Loads the message using a token + * - Loads the root of the organisation unit tree using the oe_kurzbz present in the message + * - Redirect to the aufnahme related to the found organisation unit + */ public function redirectByToken($token) { - if (isset($token)) + $msg = $this->MessageTokenModel->getMessageByToken($token); + if ($msg->error) { - redirect($this->config->item('addons_aufnahme_url') . '?token=' . $token); + show_error($msg->retval); + } + + $oe_kurzbz = $msg->retval[0]->oe_kurzbz; + + if ($oe_kurzbz != null && $oe_kurzbz != '') + { + $rootOE = $this->organisationseinheitlib->getRoot($oe_kurzbz); + if ($rootOE->error) + { + show_error($rootOE->retval); + } + + $addonAufnahmeUrls = $this->config->item('addons_aufnahme_url'); + + if (isset($token) + && hasData($msg) + && is_array($addonAufnahmeUrls) + && hasData($rootOE) + && isset($addonAufnahmeUrls[$rootOE->retval[0]->oe_kurzbz])) + { + redirect($addonAufnahmeUrls[$rootOE->retval[0]->oe_kurzbz] . '?token=' . $token); + } } } -} \ No newline at end of file +} diff --git a/application/controllers/api/v1/organisation/Studiengang2.php b/application/controllers/api/v1/organisation/Studiengang2.php index 097cd64b3..bea2f218e 100644 --- a/application/controllers/api/v1/organisation/Studiengang2.php +++ b/application/controllers/api/v1/organisation/Studiengang2.php @@ -11,28 +11,32 @@ * @filesource */ // ------------------------------------------------------------------------ -if (!defined("BASEPATH")) exit("No direct script access allowed"); +if (!defined('BASEPATH')) exit('No direct script access allowed'); class Studiengang2 extends APIv1_Controller { /** - * Course API constructor. + * */ public function __construct() { parent::__construct(); + // Load model PersonModel - $this->load->model("organisation/studiengang_model", "StudiengangModel"); + $this->load->model('organisation/studiengang_model', 'StudiengangModel'); } - + + /** + * getStudiengang + */ public function getStudiengang() { - $studiengang_kz = $this->get("studiengang_kz"); - + $studiengang_kz = $this->get('studiengang_kz'); + if (isset($studiengang_kz)) { $result = $this->StudiengangModel->load($studiengang_kz); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -40,32 +44,35 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + + /** + * getAllForBewerbung + */ public function getAllForBewerbung() { $this->response($this->StudiengangModel->getAllForBewerbung(), REST_Controller::HTTP_OK); } - + /** - * Method getStudiengangStudienplan + * getStudiengangStudienplan */ public function getStudiengangStudienplan() { // Getting HTTP GET parameters - $studiensemester_kurzbz = $this->get("studiensemester_kurzbz"); - $ausbildungssemester = $this->get("ausbildungssemester"); - $aktiv = $this->get("aktiv"); - $onlinebewerbung = $this->get("onlinebewerbung"); - + $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); + $ausbildungssemester = $this->get('ausbildungssemester'); + $aktiv = $this->get('aktiv'); + $onlinebewerbung = $this->get('onlinebewerbung'); + // If $studiensemester_kurzbz and $ausbildungssemester are present if (isset($studiensemester_kurzbz) && isset($ausbildungssemester)) { // Check & set - if (!isset($aktiv)) $aktiv = "TRUE"; - if (!isset($onlinebewerbung)) $onlinebewerbung = "TRUE"; - + if (!isset($aktiv)) $aktiv = 'TRUE'; + if (!isset($onlinebewerbung)) $onlinebewerbung = 'TRUE'; + $result = $this->StudiengangModel->getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -73,33 +80,38 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + + /** + * getStudiengangBewerbung + */ public function getStudiengangBewerbung() { - $result = $this->StudiengangModel->getStudiengangBewerbung(); - + $oe_kurzbz = $this->get('oe_kurzbz'); + + $result = $this->StudiengangModel->getStudiengangBewerbung($oe_kurzbz); + $this->response($result, REST_Controller::HTTP_OK); } - + /** - * @return void + * getAppliedStudiengang */ public function getAppliedStudiengang() { $person_id = $this->get('person_id'); $studiensemester_kurzbz = $this->get('studiensemester_kurzbz'); $titel = $this->get('titel'); - + if (isset($person_id) && isset($studiensemester_kurzbz) && isset($titel)) { $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - + $result = $this->StudiengangModel->getAppliedStudiengang( $person_id, $studiensemester_kurzbz, $titel ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -107,24 +119,24 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getAppliedStudiengangFromNow */ public function getAppliedStudiengangFromNow() { $person_id = $this->get('person_id'); $titel = $this->get('titel'); - + if (isset($person_id) && isset($titel)) { $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - + $result = $this->StudiengangModel->getAppliedStudiengangFromNow( $person_id, $titel ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -132,4 +144,31 @@ class Studiengang2 extends APIv1_Controller $this->response(); } } -} \ No newline at end of file + + /** + * getAppliedStudiengangFromNowOE + */ + public function getAppliedStudiengangFromNowOE() + { + $person_id = $this->get('person_id'); + $titel = $this->get('titel'); + $oe_kurzbz = $this->get('oe_kurzbz'); + + if (isset($person_id) && isset($titel) && isset($oe_kurzbz)) + { + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); + + $result = $this->StudiengangModel->getAppliedStudiengangFromNowOE( + $person_id, + $titel, + $oe_kurzbz + ); + + $this->response($result, REST_Controller::HTTP_OK); + } + else + { + $this->response(); + } + } +} diff --git a/application/controllers/api/v1/system/Message.php b/application/controllers/api/v1/system/Message.php index 3302e7c6b..0f3f79855 100644 --- a/application/controllers/api/v1/system/Message.php +++ b/application/controllers/api/v1/system/Message.php @@ -27,17 +27,18 @@ class Message extends APIv1_Controller } /** - * @return void + * getMessagesByPersonID */ public function getMessagesByPersonID() { $person_id = $this->get('person_id'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($person_id)) { - $result = $this->messagelib->getMessagesByPerson($person_id, $all); - + $result = $this->messagelib->getMessagesByPerson($person_id, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -45,19 +46,20 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getMessagesByUID */ public function getMessagesByUID() { $uid = $this->get('uid'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($uid)) { - $result = $this->messagelib->getMessagesByUID($uid, $all); - + $result = $this->messagelib->getMessagesByUID($uid, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -65,18 +67,18 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getMessagesByToken */ public function getMessagesByToken() { $token = $this->get('token'); - + if (isset($token)) { $result = $this->messagelib->getMessageByToken($token); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -84,19 +86,20 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getSentMessagesByPerson */ public function getSentMessagesByPerson() { $person_id = $this->get('person_id'); + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit $all = $this->get('all'); - + if (isset($person_id)) { - $result = $this->messagelib->getSentMessagesByPerson($person_id, $all); - + $result = $this->messagelib->getSentMessagesByPerson($person_id, $oe_kurzbz, $all); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -104,18 +107,19 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * getCountUnreadMessages */ public function getCountUnreadMessages() { $person_id = $this->get('person_id'); - + $oe_kurzbz = $this->get('oe_kurzbz'); // root organisation unit + if (isset($person_id)) { - $result = $this->messagelib->getCountUnreadMessages($person_id); - + $result = $this->messagelib->getCountUnreadMessages($person_id, $oe_kurzbz); + $this->response($result, REST_Controller::HTTP_OK); } else @@ -123,14 +127,14 @@ class Message extends APIv1_Controller $this->response(); } } - + /** - * @return void + * postMessage */ public function postMessage() { $validation = $this->_validatePostMessage($this->post()); - + if (isSuccess($validation)) { $result = $this->messagelib->sendMessage( @@ -140,10 +144,10 @@ class Message extends APIv1_Controller $this->post()['body'], PRIORITY_NORMAL, isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, - isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, + isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // Sender organisation unit isset($this->post()['multiPartMime']) ? $this->post()['multiPartMime'] : true ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -151,27 +155,27 @@ class Message extends APIv1_Controller $this->response($validation, REST_Controller::HTTP_OK); } } - + /** - * @return void + * postMessageVorlage */ public function postMessageVorlage() { $validation = $this->_validatePostMessageVorlage($this->post()); - + if (isSuccess($validation)) { $result = $this->messagelib->sendMessageVorlage( isset($this->post()['sender_id']) ? $this->post()['sender_id'] : null, isset($this->post()['receiver_id']) ? $this->post()['receiver_id'] : null, $this->post()['vorlage_kurzbz'], - isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, + isset($this->post()['oe_kurzbz']) ? $this->post()['oe_kurzbz'] : null, // Sender organisation unit $this->post()['data'], isset($this->post()['relationmessage_id']) ? $this->post()['relationmessage_id'] : null, isset($this->post()['orgform_kurzbz']) ? $this->post()['orgform_kurzbz'] : null, isset($this->post()['multiPartMime']) ? $this->post()['multiPartMime'] : true ); - + $this->response($result, REST_Controller::HTTP_OK); } else @@ -179,16 +183,16 @@ class Message extends APIv1_Controller $this->response($validation, REST_Controller::HTTP_OK); } } - + /** - * @return void + * postChangeStatus */ public function postChangeStatus() { $person_id = $this->post()['person_id']; $message_id = $this->post()['message_id']; $status = $this->post()['status']; - + if (isset($person_id) && isset($message_id) && isset($status) && in_array($status, array(MSG_STATUS_UNREAD, MSG_STATUS_READ, MSG_STATUS_ARCHIVED, MSG_STATUS_DELETED))) { @@ -201,7 +205,10 @@ class Message extends APIv1_Controller $this->response(); } } - + + /** + * _validatePostMessage + */ private function _validatePostMessage($message = null) { if (!isset($message)) @@ -220,10 +227,13 @@ class Message extends APIv1_Controller { return error('If a receiver_id is not given a oe_kurzbz must be specified'); } - + return success('Input data are valid'); } - + + /** + * _validatePostMessageVorlage + */ private function _validatePostMessageVorlage($message = null) { if (!isset($message)) @@ -242,7 +252,7 @@ class Message extends APIv1_Controller { return error('If a receiver_id is not given a oe_kurzbz must be specified'); } - + return success('Input data are valid'); } -} \ No newline at end of file +} diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index 472f818d5..73d405dcc 100755 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -2,29 +2,32 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); -class Messages extends VileSci_Controller +class Messages extends VileSci_Controller { + /** + * + */ public function __construct() { parent::__construct(); - + // Loads the message library $this->load->library('MessageLib'); - + // Loads the widget library $this->load->library('WidgetLib'); - + $this->load->model('person/Person_model', 'PersonModel'); } - + /** - * + * write */ public function write($sender_id, $msg_id = null, $receiver_id = null) { $prestudent_id = $this->input->post('prestudent_id'); $msg = null; - + // Get message data if possible if (is_numeric($msg_id) && is_numeric($receiver_id)) { @@ -38,7 +41,7 @@ class Messages extends VileSci_Controller $msg = $msg->retval[0]; } } - + // Get variables $this->load->model('system/Message_model', 'MessageModel'); $msgVarsDataByPrestudentId = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); @@ -46,7 +49,7 @@ class Messages extends VileSci_Controller { show_error($msgVarsDataByPrestudentId->retval); } - + if (!hasData($variables = $this->MessageModel->getMessageVars())) { unset($variables); @@ -60,11 +63,11 @@ class Messages extends VileSci_Controller $variablesArray['{'.str_replace(" ", "_", strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; } } - + array_shift($variables->retval); // Remove person_id array_shift($variables->retval); // Remove prestudent_id - - // Organisation units + + // Organisation units used to get the templates $oe_kurzbz = array(); // A person can have more organisation units $this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); $benutzerResult = $this->BenutzerfunktionModel->getByPersonId($sender_id); @@ -75,7 +78,7 @@ class Messages extends VileSci_Controller $oe_kurzbz[] = $val->oe_kurzbz; } } - + // Admin or commoner? $this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); $isAdmin = $this->BenutzerrolleModel->isAdminByPersonId($sender_id); @@ -83,38 +86,45 @@ class Messages extends VileSci_Controller { show_error($isAdmin->retval); } - + $data = array ( 'sender_id' => $sender_id, 'receivers' => $msgVarsDataByPrestudentId->retval, 'message' => $msg, 'variables' => $variablesArray, - 'oe_kurzbz' => $oe_kurzbz, + 'oe_kurzbz' => $oe_kurzbz, // used to get the templates 'isAdmin' => $isAdmin->retval ); - + $v = $this->load->view('system/messageWrite', $data); } - + /** - * + * send */ public function send($sender_id) { $error = false; - + $subject = $this->input->post('subject'); $body = $this->input->post('body'); $prestudents = $this->input->post('prestudents'); $relationmessage_id = $this->input->post('relationmessage_id'); - + if (!isset($relationmessage_id) || $relationmessage_id == '') { $relationmessage_id = null; } - + + // $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudents); - if (hasData($data)) + + // + $this->load->model('crm/Prestudent_model', 'PrestudentModel'); + $prestudentsData = $this->PrestudentModel->getOrganisationunits($prestudents); + + // + if (hasData($data) && hasData($prestudentsData)) { for ($i = 0; $i < count($data->retval); $i++) { @@ -125,10 +135,19 @@ class Messages extends VileSci_Controller $newKey = str_replace(" ", "_", strtolower($key)); $dataArray[$newKey] = $dataArray[$key]; } - + $parsedText = $this->messagelib->parseMessageText($body, $dataArray); - - $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id); + + $oe_kurzbz = ''; + for ($p = 0; $p < count($prestudentsData->retval); $p++) + { + if ($prestudentsData->retval[$p]->prestudent_id == $data->retval[$i]->prestudent_id) + { + $oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz; + } + } + + $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); if ($msg->error) { show_error($msg->retval); @@ -137,20 +156,20 @@ class Messages extends VileSci_Controller } } } - + if (!$error) { echo "Messages sent successfully"; } } - + /** - * + * getPersonId */ private function getPersonId() { $person_id = null; - + if ($this->input->get('person_id') !== null) { $person_id = $this->input->get('person_id'); @@ -159,45 +178,45 @@ class Messages extends VileSci_Controller { $person_id = $this->input->get('person_id'); } - + if (!is_numeric($person_id)) { show_error('Person_id is not numeric'); } - + return $person_id; } - + /** - * + * getVorlage */ public function getVorlage() { $vorlage_kurzbz = $this->input->get('vorlage_kurzbz'); - + if (isset($vorlage_kurzbz)) { $this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel'); $result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz)); - + $this->output ->set_content_type('application/json') ->set_output(json_encode($result)); } } - + /** - * + * parseMessageText */ public function parseMessageText() { $prestudent_id = $this->input->get('prestudent_id'); $text = $this->input->get('text'); - + if (isset($prestudent_id)) { $data = $this->MessageModel->getMsgVarsDataByPrestudentId($prestudent_id); - + $parsedText = ""; if (hasData($data)) { @@ -207,13 +226,13 @@ class Messages extends VileSci_Controller $newKey = str_replace(" ", "_", strtolower($key)); $dataArray[$newKey] = $dataArray[$key]; } - + $parsedText = $this->messagelib->parseMessageText($text, $dataArray); } - + $this->output ->set_content_type('application/json') ->set_output(json_encode($parsedText)); } } -} \ No newline at end of file +} diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index 3b18874eb..d5daca634 100755 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -62,12 +62,12 @@ class MessageLib /** * getMessagesByUID() - will return all messages, including the latest status for specified user. It don´t returns Attachments. */ - public function getMessagesByUID($uid, $all = false) + public function getMessagesByUID($uid, $oe_kurzbz = null, $all = false) { if (empty($uid)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByUID($uid, $all); + $msg = $this->ci->RecipientModel->getMessagesByUID($uid, $oe_kurzbz, $all); return $msg; } @@ -75,12 +75,12 @@ class MessageLib /** * getMessagesByPerson() - will return all messages, including the latest status for specified user. It don´t returns Attachments. */ - public function getMessagesByPerson($person_id, $all = false) + public function getMessagesByPerson($person_id, $oe_kurzbz = null, $all = false) { if (empty($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $all); + $msg = $this->ci->RecipientModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); return $msg; } @@ -88,12 +88,12 @@ class MessageLib /** * getSentMessagesByPerson() - Get all sent messages from a person identified by person_id */ - public function getSentMessagesByPerson($person_id, $all = false) + public function getSentMessagesByPerson($person_id, $oe_kurzbz = null, $all = false) { if (empty($person_id)) return $this->_error('', MSG_ERR_INVALID_MSG_ID); - $msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $all); + $msg = $this->ci->MessageModel->getMessagesByPerson($person_id, $oe_kurzbz, $all); return $msg; } @@ -144,12 +144,12 @@ class MessageLib /** * getCountUnreadMessages */ - public function getCountUnreadMessages($person_id) + public function getCountUnreadMessages($person_id, $oe_kurzbz = null) { if (!is_numeric($person_id)) return $this->_error('', MSG_ERR_INVALID_RECIPIENTS); - $msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id); + $msg = $this->ci->RecipientModel->getCountUnreadMessages($person_id, $oe_kurzbz); return $msg; } diff --git a/application/libraries/OrganisationseinheitLib.php b/application/libraries/OrganisationseinheitLib.php index e70e8cb76..b98e8c2c0 100644 --- a/application/libraries/OrganisationseinheitLib.php +++ b/application/libraries/OrganisationseinheitLib.php @@ -10,14 +10,14 @@ class OrganisationseinheitLib public function __construct() { $this->ci =& get_instance(); - + // Loads model Organisationseinheit_model $this->ci->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel'); - + // Loads helper message to manage returning messages $this->ci->load->helper('Message'); } - + /** * treeSearch * @@ -54,7 +54,7 @@ class OrganisationseinheitLib } $result = $this->ci->OrganisationseinheitModel->getOneLevel($schema, $table, $select, $where, $orderby, $oe_kurzbz); - + if (hasData($result)) { if ($result->retval[0]->_ppk != null && $result->retval[0]->oe_kurzbz == null) @@ -62,12 +62,14 @@ class OrganisationseinheitLib return $this->treeSearch($schema, $table, $select, $where, $orderby, $result->retval[0]->_ppk); } } - + return $result; } - + /** * treeSearchEntire + * + * Like tree search, but it returns all the results found while travelling through the tree structure */ public function treeSearchEntire($table, $alias, $fields, $where, $orderby, $oe_kurzbz) { @@ -89,13 +91,13 @@ class OrganisationseinheitLib } $result = $this->ci->OrganisationseinheitModel->getOneLevelAlias($table, $alias, $select, $where, $orderby, $oe_kurzbz); - + if (hasData($result)) { if ($result->retval[0]->_pk != null && $result->retval[0]->_ppk != null && $result->retval[0]->_jtpk != null) { $tmpResult = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk); - + if (hasData($tmpResult) && $tmpResult->retval[0]->_pk != null && $tmpResult->retval[0]->_ppk != null @@ -109,7 +111,25 @@ class OrganisationseinheitLib $result = $this->treeSearchEntire($table, $alias, $select, $where, $orderby, $result->retval[0]->_ppk); } } - + + return $result; + } + + /** + * getRoot - Get the root of the organisation unit tree which belongs the given organisation unit parameter + */ + public function getRoot($oe_kurzbz) + { + $result = $this->ci->OrganisationseinheitModel->load($oe_kurzbz); + + if (hasData($result)) + { + if ($result->retval[0]->oe_parent_kurzbz != null) + { + $result = $this->getRoot($result->retval[0]->oe_parent_kurzbz); + } + } + return $result; } } diff --git a/application/libraries/UDFLib.php b/application/libraries/UDFLib.php index ad0e14c03..1e16c11ac 100644 --- a/application/libraries/UDFLib.php +++ b/application/libraries/UDFLib.php @@ -210,7 +210,7 @@ class UDFLib { // Get udf values from $data & clean udf values from $data // NOTE: Must be performed here because the load method populates the property UDFs too - $this->_popUDFParameters($data); + $udfsParameters = $this->_popUDFParameters($data); $requiredUDFsArray = array(); // contains a list of required UDFs // Contains the UDFs values to be stored @@ -228,7 +228,7 @@ class UDFLib $decodedUDFDefinition = $decodedUDFDefinitions[$i]; // Definition of a single UDF // Loops through the UDFs values that should be stored - foreach ($this->UDFs as $key => $val) + foreach ($udfsParameters as $key => $val) { $tmpValidate = success(true); // temporary variable used to store the returned value from _validateUDFs @@ -378,14 +378,18 @@ class UDFLib */ private function _popUDFParameters(&$data) { + $udfsParameters = array(); + foreach ($data as $key => $val) { if (substr($key, 0, 4) == UDFLib::COLUMN_PREFIX) { - $this->UDFs[$key] = $val; // stores UDF value into property UDFs + $udfsParameters[$key] = $val; // stores UDF value into property UDFs unset($data[$key]); // remove from data } } + + return $udfsParameters; } /** diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 7e05eeccd..2919036e9 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -88,7 +88,7 @@ class Prestudent_model extends DB_Model ) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $this->addSelect( 'p.person_id, prestudent_id, @@ -179,4 +179,17 @@ class Prestudent_model extends DB_Model return $this->loadWhere($parametersArray); } + + /** + * getOrganisationunits + */ + public function getOrganisationunits($prestudent_id) + { + $query = 'SELECT p.prestudent_id, s.oe_kurzbz + FROM public.tbl_prestudent p + INNER JOIN public.tbl_studiengang s USING(studiengang_kz) + WHERE prestudent_id %s ?'; + + return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id)); + } } diff --git a/application/models/organisation/Organisationseinheit_model.php b/application/models/organisation/Organisationseinheit_model.php index 0414cd560..37b269f79 100755 --- a/application/models/organisation/Organisationseinheit_model.php +++ b/application/models/organisation/Organisationseinheit_model.php @@ -1,4 +1,5 @@ pk = 'oe_kurzbz'; } + /** + * getRecursiveList + */ public function getRecursiveList($typ = null) { $qry = "WITH RECURSIVE tree (oe_kurzbz, bezeichnung, path, organisationseinheittyp_kurzbz) AS ( @@ -31,17 +35,17 @@ class Organisationseinheit_model extends DB_Model SELECT oe_kurzbz AS id, SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description FROM tree"; - + $parametersArray = array(); - + if (is_array($typ) && count($typ) > 0) { $parametersArray[] = $typ; $qry .= ' WHERE organisationseinheittyp_kurzbz IN ?'; } - + $qry .= ' ORDER BY path'; - + return $this->execQuery($qry, $parametersArray); } @@ -78,12 +82,15 @@ class Organisationseinheit_model extends DB_Model ) _joined_table ON (orgs._pk = _joined_table._pk) WHERE orgs._pk = ? ORDER BY %s"; - + $query = sprintf($query, $table, $fields, $schema, $table, $where, $orderby); - + return $this->execQuery($query, array($oe_kurzbz)); } - + + /** + * getOneLevelAlias + */ public function getOneLevelAlias($table, $alias, $fields, $where, $orderby, $oe_kurzbz) { $query = "WITH RECURSIVE organizations(_pk, _ppk) AS @@ -103,9 +110,9 @@ class Organisationseinheit_model extends DB_Model ) _joined_table ON (orgs._pk = _joined_table._jtpk) WHERE orgs._pk = ? ORDER BY %s"; - + $query = sprintf($query, $alias, $fields, $table, $where, $orderby); - + return $this->execQuery($query, array($oe_kurzbz)); } -} \ No newline at end of file +} diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php index a15191eab..36e4b6992 100644 --- a/application/models/organisation/Studiengang_model.php +++ b/application/models/organisation/Studiengang_model.php @@ -104,7 +104,7 @@ class Studiengang_model extends DB_Model public function getStudienplan($studiensemester_kurzbz, $ausbildungssemester, $aktiv, $onlinebewerbung) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Join table public.tbl_studiengang with table lehre.tbl_studienordnung on column studiengang_kz $this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz'); // Then join with table lehre.tbl_studienplan on column studienordnung_id @@ -138,10 +138,10 @@ class Studiengang_model extends DB_Model /** * getStudiengangBewerbung */ - public function getStudiengangBewerbung() + public function getStudiengangBewerbung($oe_kurzbz = null) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Join table public.tbl_studiengang with table lehre.tbl_studienordnung on column studiengang_kz $this->addJoin('lehre.tbl_studienordnung', 'studiengang_kz'); // Join table lehre.tbl_studienordnung with table lehre.tbl_akadgrad on column akadgrad_id @@ -161,21 +161,45 @@ class Studiengang_model extends DB_Model $this->addOrder('public.tbl_studiengang.bezeichnung'); $this->addOrder('lehre.tbl_studienplan.studienplan_id'); + $where = 'public.tbl_studiengang.aktiv = TRUE + AND public.tbl_studiengang.onlinebewerbung = TRUE + AND ( + (tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW()) + OR tbl_bewerbungstermine.beginn IS NULL + ) + AND ss.studiensemester_kurzbz IN ( + SELECT DISTINCT studiensemester_kurzbz + FROM public.tbl_bewerbungstermine + WHERE beginn <= NOW() AND ende >= NOW() + ) + AND ss.semester = 1 + AND lehre.tbl_studienplan.aktiv = TRUE'; + + if ($oe_kurzbz != null) + { + $where .= ' AND public.tbl_studiengang.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = '.$this->escape($oe_kurzbz).' + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + $result = $this->loadTree( 'public.tbl_studiengang', array( 'lehre.tbl_studienplan', 'lehre.tbl_akadgrad' ), - 'public.tbl_studiengang.aktiv = TRUE - AND public.tbl_studiengang.onlinebewerbung = TRUE - AND ((tbl_bewerbungstermine.beginn <= NOW() AND tbl_bewerbungstermine.ende >= NOW()) OR tbl_bewerbungstermine.beginn IS NULL) - AND ss.studiensemester_kurzbz IN ( - SELECT DISTINCT studiensemester_kurzbz FROM public.tbl_bewerbungstermine WHERE beginn <= NOW() AND ende >= NOW() - ) - AND ss.semester = 1 - AND lehre.tbl_studienplan.aktiv = TRUE' - , + $where, array( 'studienplaene', 'akadgrad' @@ -191,7 +215,7 @@ class Studiengang_model extends DB_Model public function getAppliedStudiengang($person_id, $studiensemester_kurzbz, $titel) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Then join with table public.tbl_prestudent $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); // Join table public.tbl_prestudentstatus @@ -233,14 +257,14 @@ class Studiengang_model extends DB_Model return $result; } - + /** * getAppliedStudiengangFromNow */ public function getAppliedStudiengangFromNow($person_id, $titel) { if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + // Then join with table public.tbl_prestudent $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); // Join table public.tbl_prestudentstatus @@ -257,10 +281,10 @@ class Studiengang_model extends DB_Model 'prestudent_id', 'LEFT' ); - + // Ordering by studiengang_kz and studienplan_id $this->addOrder('public.tbl_studiengang.bezeichnung'); - + $result = $this->loadTree( 'public.tbl_studiengang', array( @@ -283,7 +307,74 @@ class Studiengang_model extends DB_Model 'notizen' ) ); - + + return $result; + } + + /** + * getAppliedStudiengangFromNowOE + */ + public function getAppliedStudiengangFromNowOE($person_id, $titel, $oe_kurzbz) + { + if (isError($ent = $this->isEntitled($this->dbTable, PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; + + // Then join with table public.tbl_prestudent + $this->addJoin('public.tbl_prestudent', 'studiengang_kz'); + // Join table public.tbl_prestudentstatus + $this->addJoin('public.tbl_prestudentstatus', 'prestudent_id'); + // Then join with table lehre.tbl_studienplan + $this->addJoin('lehre.tbl_studienplan', 'studienplan_id'); + // Then join with table public.tbl_notizzuordnung + public.tbl_notiz + $this->addJoin( + '( + SELECT public.tbl_notiz.*, public.tbl_notizzuordnung.prestudent_id + FROM public.tbl_notiz JOIN public.tbl_notizzuordnung USING(notiz_id) + WHERE titel = '.$this->escape($titel). + ') tbl_notiz', + 'prestudent_id', + 'LEFT' + ); + + // Ordering by studiengang_kz and studienplan_id + $this->addOrder('public.tbl_studiengang.bezeichnung'); + + $result = $this->loadTree( + 'public.tbl_studiengang', + array( + 'public.tbl_prestudent', + 'public.tbl_prestudentstatus', + 'lehre.tbl_studienplan', + 'public.tbl_notiz' + ), + 'public.tbl_prestudent.person_id = '.$this->escape($person_id). + ' AND public.tbl_prestudentstatus.studiensemester_kurzbz IN ( + SELECT studiensemester_kurzbz + FROM public.tbl_studiensemester + WHERE ende >= NOW() + ) + AND (public.tbl_prestudentstatus.status_kurzbz = \'Interessent\') + AND public.tbl_studiengang.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = '.$this->escape($oe_kurzbz).' + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )', + array( + 'prestudenten', + 'prestudentstatus', + 'studienplaene', + 'notizen' + ) + ); + return $result; } diff --git a/application/models/system/Message_model.php b/application/models/system/Message_model.php index 76e86b356..b94bc3861 100644 --- a/application/models/system/Message_model.php +++ b/application/models/system/Message_model.php @@ -1,4 +1,4 @@ -dbTable = 'public.tbl_msg_message'; $this->pk = 'message_id'; } - + /** * Get all sent messages from a person identified by person_id */ - public function getMessagesByPerson($person_id, $all) + public function getMessagesByPerson($person_id, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_person', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) @@ -26,7 +26,7 @@ class Message_model extends DB_Model return $ent; if (isError($ent = $this->isEntitled('public.tbl_msg_message', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) return $ent; - + $sql = 'SELECT m.message_id, m.person_id, m.subject, @@ -52,9 +52,9 @@ class Message_model extends DB_Model ORDER BY insertamum DESC ) s ON (m.message_id = s.message_id AND m.person_id = s.person_id) WHERE m.person_id = ?'; - + $parametersArray = array($person_id); - + if ($all == 'true') { $sql = sprintf($sql, ''); @@ -63,17 +63,36 @@ class Message_model extends DB_Model { $sql = sprintf($sql, 'WHERE status >= 3'); } - + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + return $this->execQuery($sql, $parametersArray); } - + /** * getMessageVars */ public function getMessageVars() { $result = $this->db->query('SELECT * FROM public.vw_msg_vars WHERE 0 = 1'); - + if ($result) { return success($result->list_fields()); @@ -83,14 +102,14 @@ class Message_model extends DB_Model return error($this->db->error(), FHC_DB_ERROR); } } - + /** * getMsgVarsDataByPrestudentId */ public function getMsgVarsDataByPrestudentId($prestudent_id) { $query = 'SELECT * FROM public.vw_msg_vars WHERE prestudent_id %s ?'; - + return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id)); } } diff --git a/application/models/system/Recipient_model.php b/application/models/system/Recipient_model.php index b8ffecab3..c0fa75da2 100644 --- a/application/models/system/Recipient_model.php +++ b/application/models/system/Recipient_model.php @@ -87,7 +87,7 @@ class Recipient_model extends DB_Model /** * Get all received messages for a person identified by person_id */ - public function getMessagesByPerson($person_id, $all) + public function getMessagesByPerson($person_id, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) @@ -124,8 +124,7 @@ class Recipient_model extends DB_Model %s ORDER BY insertamum DESC ) s ON (m.message_id = s.message_id AND r.person_id = s.person_id) - WHERE r.person_id = ? - ORDER BY r.message_id DESC, s.status DESC'; + WHERE r.person_id = ?'; $parametersArray = array($person_id); @@ -139,16 +138,37 @@ class Recipient_model extends DB_Model $sql = sprintf($sql, 'WHERE person_id = ? AND message_id NOT IN (SELECT message_id FROM public.tbl_msg_status WHERE status >= 3 AND person_id = ?)'); } + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + + $sql .= ' ORDER BY r.message_id DESC, s.status DESC'; + return $this->execQuery($sql, $parametersArray); } /** * Get all received messages for a person identified by uid */ - public function getMessagesByUID($uid, $all) + public function getMessagesByUID($uid, $oe_kurzbz, $all) { // Checks if the operation is permitted by the API caller - // @ToDo: Define the special right for reading own messages 'basis/message:own' + // TODO: Define the special right for reading own messages 'basis/message:own' // if same user if ($uid === getAuthUID()) { @@ -163,15 +183,14 @@ class Recipient_model extends DB_Model } // get Data - $sql = 'SELECT b.uid, + $sql = 'SELECT DISTINCT ON (r.message_id) r.message_id, m.person_id, - m.message_id, m.subject, m.body, m.priority, + m.insertamum, m.relationmessage_id, m.oe_kurzbz, - m.insertamum, p.anrede, p.titelpost, p.titelpre, @@ -185,14 +204,39 @@ class Recipient_model extends DB_Model JOIN public.tbl_person p ON (r.person_id = p.person_id) JOIN public.tbl_benutzer b ON (r.person_id = b.person_id) JOIN ( - SELECT * FROM public.tbl_msg_status ORDER BY insertamum DESC LIMIT 1 - ) s ON (r.message_id = s.message_id AND r.person_id = s.person_id) + SELECT message_id, person_id, status, statusinfo, insertamum + FROM public.tbl_msg_status + ORDER BY insertamum DESC + ) s ON (m.message_id = s.message_id AND r.person_id = s.person_id) WHERE b.uid = ?'; - if (! $all) - $sql .= ' AND (status < 3 OR status IS NULL)'; + $parametersArray = array($uid); - return $this->execQuery($sql, array($uid)); + if ($all == 'true') + { + $sql .= ' AND (status < 3 OR status IS NULL)'; + } + + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + + return $this->execQuery($sql, $parametersArray); } /** @@ -270,7 +314,7 @@ class Recipient_model extends DB_Model /** * Get all unread messages for a person identified by person_id */ - public function getCountUnreadMessages($person_id) + public function getCountUnreadMessages($person_id, $oe_kurzbz) { // Checks if the operation is permitted by the API caller if (isError($ent = $this->isEntitled('public.tbl_msg_recipient', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR))) @@ -279,8 +323,9 @@ class Recipient_model extends DB_Model return $ent; $sql = 'SELECT COUNT(r.message_id) AS unreadMessages - FROM public.tbl_msg_recipient r JOIN public.tbl_msg_status s - ON (r.message_id = s.message_id AND r.person_id = s.person_id) + FROM public.tbl_msg_recipient r + JOIN public.tbl_msg_status s ON (r.message_id = s.message_id AND r.person_id = s.person_id) + JOIN public.tbl_msg_message m ON (r.message_id = m.message_id) WHERE r.person_id = ? AND s.status = ? AND r.message_id NOT IN ( @@ -293,6 +338,25 @@ class Recipient_model extends DB_Model $parametersArray = array($person_id, MSG_STATUS_UNREAD, $person_id, MSG_STATUS_UNREAD); + if ($oe_kurzbz != null) + { + array_push($parametersArray, $oe_kurzbz); + $sql .= ' AND m.oe_kurzbz IN ( + WITH RECURSIVE organizations(_pk, _ppk) AS + ( + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o + WHERE o.oe_parent_kurzbz IS NULL + AND o.oe_kurzbz = ? + UNION ALL + SELECT o.oe_kurzbz, o.oe_parent_kurzbz + FROM public.tbl_organisationseinheit o INNER JOIN organizations orgs ON (o.oe_parent_kurzbz = orgs._pk) + ) + SELECT orgs._pk + FROM organizations orgs + )'; + } + return $this->execQuery($sql, $parametersArray); } } diff --git a/cis/testtool/login.php b/cis/testtool/login.php index ef3caf338..4b422f26a 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -1,411 +1,412 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl , - * Manfred Kindl - */ - -require_once('../../config/cis.config.inc.php'); -require_once('../../config/global.config.inc.php'); -require_once('../../include/person.class.php'); -require_once('../../include/prestudent.class.php'); -require_once('../../include/pruefling.class.php'); -require_once('../../include/studiengang.class.php'); -require_once('../../include/reihungstest.class.php'); -require_once('../../include/sprache.class.php'); -require_once '../../include/phrasen.class.php'; -require_once '../../include/datum.class.php'; - -if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); - -//if(isset($_GET['lang'])) -// setSprache($_GET['lang']); - -$date = new datum(); - -function getSpracheUser() -{ - if(isset($_SESSION['sprache_user'])) - { - $sprache_user=$_SESSION['sprache_user']; - } - else - { - if(isset($_COOKIE['sprache_user'])) - { - $sprache_user=$_COOKIE['sprache_user']; - } - else - { - $sprache_user=DEFAULT_LANGUAGE; - } - setSpracheUser($sprache_user); - } - return $sprache_user; -} - -function setSpracheUser($sprache) -{ - $_SESSION['sprache_user']=$sprache; - setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); -} - -if(isset($_GET['sprache_user'])) -{ - $sprache_user = new sprache(); - if($sprache_user->load($_GET['sprache_user'])) - { - setSpracheUser($_GET['sprache_user']); - } - else - setSpracheUser(DEFAULT_LANGUAGE); -} - -$sprache_user = getSpracheUser(); -$p = new phrasen($sprache_user); - -$gebdatum=''; - -session_start(); -$reload=false; -$reload_parent=false; - -$sg_var = new studiengang(); - -if (isset($_GET['logout'])) -{ - if(isset($_SESSION['prestudent_id'])) - { - $reload = true; - session_destroy(); - } -} - -if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='') -{ - $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); -} -else - $gebdatum=''; - -if (isset($_POST['prestudent']) && isset($gebdatum)) -{ - $ps=new prestudent($_POST['prestudent']); - - //Geburtsdatum Pruefen - if ($gebdatum==$ps->gebdatum) - { - $reihungstest_id=''; - //Freischaltung fuer zugeteilten Reihungstest pruefen - $rt = new reihungstest(); - - // Wenns der Dummy ist dann extra laden - $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); - if($prestudent_id_dummy_student==$ps->prestudent_id) - { - $rt->getReihungstestPerson($ps->person_id); - if(isset($rt->result[0])) - $reihungstest_id = $rt->result[0]->reihungstest_id; - else - { - echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; - } - } - else - { - if($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) - { - // TODO Was ist wenn da mehrere Zurueckkommen?! - if(isset($rt->result[0])) - $reihungstest_id = $rt->result[0]->reihungstest_id; - else - { - echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; - } - } - else - { - echo 'Failed:'.$rt->errormsg; - } - } - //echo "Reihungstest $reihungstest_id"; - if($reihungstest_id != '' && $rt->load($reihungstest_id)) - { - if($rt->freigeschaltet) - { - $pruefling = new pruefling(); - if($pruefling->getPruefling($ps->prestudent_id)) - { - $studiengang = $pruefling->studiengang_kz; - $semester = $pruefling->semester; - } - else - { - $studiengang = $ps->studiengang_kz; - $ps->getLastStatus($ps->prestudent_id); - $semester = $ps->ausbildungssemester; - } - if($semester=='') - $semester=1; - - $_SESSION['prestudent_id']=$_POST['prestudent']; - $_SESSION['studiengang_kz']=$studiengang; - $_SESSION['nachname']=$ps->nachname; - $_SESSION['vorname']=$ps->vorname; - $_SESSION['gebdatum']=$ps->gebdatum; - $stg_obj = new studiengang($studiengang); - $_SESSION['sprache']=$stg_obj->sprache; - - $_SESSION['semester']=$semester; - } - else - { - echo ''.$p->t('testtool/reihungstestNichtFreigeschalten').''; - } - } - else - { - echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; - } - } - else - { - echo ''.$p->t('testtool/geburtsdatumStimmtNichtUeberein').''; - } -} - -if (isset($_SESSION['prestudent_id'])) - $prestudent_id=$_SESSION['prestudent_id']; -else -{ - //$prestudent_id=null; - $ps=new prestudent(); - $datum=date('Y-m-d'); - $ps->getPrestudentRT($datum); -} - -if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache'])) -{ - setSprache($_GET['sprache']); -} - -if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) -{ - $pruefling = new pruefling(); - - if(!$pruefling->getPruefling($_SESSION['prestudent_id'])) - { - $pruefling->new = true; - - $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; - $pruefling->semester = $_SESSION['semester']; - - $pruefling->idnachweis = ''; - $pruefling->registriert = date('Y-m-d H:i:s'); - $pruefling->prestudent_id = $_SESSION['prestudent_id']; - if($pruefling->save()) - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - $reload_parent=true; - } - } -} - -if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) -{ - $pruefling = new pruefling(); - if($_POST['pruefling_id']!='') - if(!$pruefling->load($_POST['pruefling_id'])) - die('Pruefling wurde nicht gefunden'); - else - $pruefling->new=false; - else - $pruefling->new=true; - - $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; - $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; - $pruefling->registriert = date('Y-m-d H:i:s'); - $pruefling->prestudent_id = $_SESSION['prestudent_id']; - $pruefling->semester = $_POST['semester']; - if($pruefling->save()) - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - $_SESSION['semester']=$pruefling->semester; - $reload_parent=true; - } -} -?> - - - - - - - - - - - -parent.menu.location.reload()'; - if($reload) - echo ""; -?> - - - -'.$p->t('testtool/startseite').''; - - if (isset($prestudent_id)) - { - - $prestudent = new prestudent($prestudent_id); - $stg_obj = new studiengang($prestudent->studiengang_kz); - $pruefling = new pruefling(); - $typ = new studiengang($prestudent->studiengang_kz); - $typ->getStudiengangTyp($stg_obj->typ); - - //Sprachwahl des Studiengangs - $qry = "SELECT sprachwahl FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$db->db_add_param($prestudent->studiengang_kz)." LIMIT 1"; - $result = $db->db_query($qry); - $sprachwahl = $db->db_fetch_object($result); - $sprachwahl = $db->db_parse_bool($sprachwahl->sprachwahl); - - echo '
'; - echo '
'.$p->t('testtool/begruessungstext').'

'; - echo ''.$p->t('zeitaufzeichnung/id').': '.$_SESSION['prestudent_id'].'
'; - echo ''.$p->t('global/name').': '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'; - echo ''.$p->t('global/geburtsdatum').': '.$date->formatDatum($_SESSION['gebdatum'],'d.m.Y').'
'; - echo ''.$p->t('global/studiengang').': '.$typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'

'; - echo ''; - echo '
'; - echo '

'; - - if($pruefling->getPruefling($prestudent_id)) - { - - echo '
'; - echo ''; - echo ''; - //echo ''; - //echo ''; - //echo ''; - echo '
'.$p->t('global/semester').': 
ID Nachweis:
'; - echo '
'; - - //Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen - if($sprachwahl==true) - { - //Liste der Sprachen, die in den Gebieten vorkommen koennen - $qry = "SELECT distinct sprache - FROM - testtool.tbl_pruefling - JOIN testtool.tbl_ablauf USING(studiengang_kz) - JOIN testtool.tbl_frage USING(gebiet_id) - JOIN testtool.tbl_frage_sprache USING(frage_id) - WHERE - tbl_pruefling.pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." - ORDER BY sprache DESC"; - echo $p->t('testtool/spracheDerTestfragen').':'; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - if($_SESSION['sprache']==$row->sprache) - $selected='style="border:1px solid black;"'; - else - $selected=''; - echo " sprache' class='Item' $selected>$row->sprache"; - } - } - } - echo '


'.$p->t('testtool/klickenSieAufEinTeilgebiet').''; - if($pruefling->pruefling_id!='') - { - $_SESSION['pruefling_id']=$pruefling->pruefling_id; - echo ''; - } - } - else - { - echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; - } - } - else - { - $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); - - echo '
- '; - echo '  '.$p->t('global/geburtsdatum').': '; - echo ''; - echo '  '; - echo '
'; - - echo '


-
- '.$p->t('testtool/willkommenstext').' -
'; - } -?> - - - +, + * Andreas Oesterreicher , + * Rudolf Hangl , + * Manfred Kindl + */ + +require_once('../../config/cis.config.inc.php'); +require_once('../../config/global.config.inc.php'); +require_once('../../include/person.class.php'); +require_once('../../include/prestudent.class.php'); +require_once('../../include/pruefling.class.php'); +require_once('../../include/studiengang.class.php'); +require_once('../../include/reihungstest.class.php'); +require_once('../../include/sprache.class.php'); +require_once '../../include/phrasen.class.php'; +require_once '../../include/datum.class.php'; + +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); + +//if(isset($_GET['lang'])) +// setSprache($_GET['lang']); + +$date = new datum(); + +function getSpracheUser() +{ + if(isset($_SESSION['sprache_user'])) + { + $sprache_user=$_SESSION['sprache_user']; + } + else + { + if(isset($_COOKIE['sprache_user'])) + { + $sprache_user=$_COOKIE['sprache_user']; + } + else + { + $sprache_user=DEFAULT_LANGUAGE; + } + setSpracheUser($sprache_user); + } + return $sprache_user; +} + +function setSpracheUser($sprache) +{ + $_SESSION['sprache_user']=$sprache; + setcookie('sprache_user',$sprache,time()+60*60*24*30,'/'); +} + +if(isset($_GET['sprache_user'])) +{ + $sprache_user = new sprache(); + if($sprache_user->load($_GET['sprache_user'])) + { + setSpracheUser($_GET['sprache_user']); + } + else + setSpracheUser(DEFAULT_LANGUAGE); +} + +$sprache_user = getSpracheUser(); +$p = new phrasen($sprache_user); + +$gebdatum=''; + +session_start(); +$reload=false; +$reload_parent=false; + +$sg_var = new studiengang(); + +if (isset($_GET['logout'])) +{ + if(isset($_SESSION['prestudent_id'])) + { + $reload = true; + session_destroy(); + } +} + +if(isset($_POST['gebdatum']) && $_POST['gebdatum']!='') +{ + $gebdatum = $date->formatDatum($_POST['gebdatum'],'Y-m-d'); +} +else + $gebdatum=''; + +if (isset($_POST['prestudent']) && isset($gebdatum)) +{ + $ps=new prestudent($_POST['prestudent']); + + //Geburtsdatum Pruefen + if ($gebdatum==$ps->gebdatum) + { + $reihungstest_id=''; + //Freischaltung fuer zugeteilten Reihungstest pruefen + $rt = new reihungstest(); + + // Wenns der Dummy ist dann extra laden + $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); + if($prestudent_id_dummy_student==$ps->prestudent_id) + { + $rt->getReihungstestPerson($ps->person_id); + if(isset($rt->result[0])) + $reihungstest_id = $rt->result[0]->reihungstest_id; + else + { + echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; + } + } + else + { + if($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) + { + // TODO Was ist wenn da mehrere Zurueckkommen?! + if(isset($rt->result[0])) + $reihungstest_id = $rt->result[0]->reihungstest_id; + else + { + echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; + } + } + else + { + echo 'Failed:'.$rt->errormsg; + } + } + //echo "Reihungstest $reihungstest_id"; + if($reihungstest_id != '' && $rt->load($reihungstest_id)) + { + if($rt->freigeschaltet) + { + $pruefling = new pruefling(); + if($pruefling->getPruefling($ps->prestudent_id)) + { + $studiengang = $pruefling->studiengang_kz; + $semester = $pruefling->semester; + } + else + { + $studiengang = $ps->studiengang_kz; + $ps->getLastStatus($ps->prestudent_id); + $semester = $ps->ausbildungssemester; + } + if($semester=='') + $semester=1; + + $_SESSION['prestudent_id']=$_POST['prestudent']; + $_SESSION['studiengang_kz']=$studiengang; + $_SESSION['nachname']=$ps->nachname; + $_SESSION['vorname']=$ps->vorname; + $_SESSION['gebdatum']=$ps->gebdatum; + $stg_obj = new studiengang($studiengang); + $_SESSION['sprache']=$stg_obj->sprache; + + $_SESSION['semester']=$semester; + } + else + { + echo ''.$p->t('testtool/reihungstestNichtFreigeschalten').''; + } + } + else + { + echo ''.$p->t('testtool/reihungstestKannNichtGeladenWerden').''; + } + } + else + { + echo ''.$p->t('testtool/geburtsdatumStimmtNichtUeberein').''; + } +} + +if (isset($_SESSION['prestudent_id'])) + $prestudent_id=$_SESSION['prestudent_id']; +else +{ + //$prestudent_id=null; + $ps=new prestudent(); + $datum=date('Y-m-d'); + $ps->getPrestudentRT($datum); +} + +if(isset($_GET['type']) && $_GET['type']=='sprachechange' && isset($_GET['sprache'])) +{ + setSprache($_GET['sprache']); +} + +if(isset($_SESSION['prestudent_id']) && !isset($_SESSION['pruefling_id'])) +{ + $pruefling = new pruefling(); + + //wenn kein Prüfling geladen werden kann + if(!$pruefling->getPruefling($_SESSION['prestudent_id'])) + $pruefling->new = true; + else + $pruefling->new = false; + + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; + $pruefling->semester = $_SESSION['semester']; + + $pruefling->idnachweis = ''; + $pruefling->registriert = date('Y-m-d H:i:s'); + $pruefling->prestudent_id = $_SESSION['prestudent_id']; + if($pruefling->save()) + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + $reload_parent=true; + } +} + +if(isset($_POST['save']) && isset($_SESSION['prestudent_id'])) +{ + $pruefling = new pruefling(); + if($_POST['pruefling_id']!='') + if(!$pruefling->load($_POST['pruefling_id'])) + die('Pruefling wurde nicht gefunden'); + else + $pruefling->new=false; + else + $pruefling->new=true; + + $pruefling->studiengang_kz = $_SESSION['studiengang_kz']; + $pruefling->idnachweis = isset($_POST['idnachweis'])?$_POST['idnachweis']:''; + $pruefling->registriert = date('Y-m-d H:i:s'); + $pruefling->prestudent_id = $_SESSION['prestudent_id']; + $pruefling->semester = $_POST['semester']; + if($pruefling->save()) + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + $_SESSION['semester']=$pruefling->semester; + $reload_parent=true; + } +} +?> + + + + + + + + +parent.menu.location.reload();'; //CRIS: nach reload()ein ; ergänzt + + if($reload) + echo ""; +?> + + + +'.$p->t('testtool/startseite').''; + +//REIHUNGSTEST STARTSEITE (nach Login) + if (isset($prestudent_id)) + { + + $prestudent = new prestudent($prestudent_id); + $stg_obj = new studiengang($prestudent->studiengang_kz); + $pruefling = new pruefling(); + $typ = new studiengang($prestudent->studiengang_kz); + $typ->getStudiengangTyp($stg_obj->typ); + + //Sprachwahl des Studiengangs + $qry = "SELECT sprachwahl FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$db->db_add_param($prestudent->studiengang_kz)." LIMIT 1"; + $result = $db->db_query($qry); + $sprachwahl = $db->db_fetch_object($result); + $sprachwahl = $db->db_parse_bool($sprachwahl->sprachwahl); + + //Prestudent Informationen und Logout + echo '
'; + echo '
'.$p->t('testtool/begruessungstext').'

'; + echo ''.$p->t('zeitaufzeichnung/id').': '.$_SESSION['prestudent_id'].'
'; + echo ''.$p->t('global/name').': '.$_SESSION['vorname'].' '.$_SESSION['nachname'].'
'; + echo ''.$p->t('global/geburtsdatum').': '.$date->formatDatum($_SESSION['gebdatum'],'d.m.Y').'
'; + echo ''.$p->t('global/studiengang').': '.$typ->bezeichnung.' '.($sprache_user=='English'?$stg_obj->english:$stg_obj->bezeichnung).'

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

'; + + if($pruefling->getPruefling($prestudent_id)) + { + echo '
'; + echo ''; + echo ''; + //echo ''; + //echo ''; + //echo ''; + echo '
'.$p->t('global/semester').': 
ID Nachweis:
'; + echo '
'; + + //Wenn die Sprachwahl fuer diesen Studiengang aktiviert ist, dann die Sprachen anzeigen + if($sprachwahl==true) + { + //Liste der Sprachen, die in den Gebieten vorkommen koennen + $qry = "SELECT distinct sprache + FROM + testtool.tbl_pruefling + JOIN testtool.tbl_ablauf USING(studiengang_kz) + JOIN testtool.tbl_frage USING(gebiet_id) + JOIN testtool.tbl_frage_sprache USING(frage_id) + WHERE + tbl_pruefling.pruefling_id=".$db->db_add_param($pruefling->pruefling_id)." + ORDER BY sprache DESC"; + echo $p->t('testtool/spracheDerTestfragen').':'; + if($result = $db->db_query($qry)) + { + while($row = $db->db_fetch_object($result)) + { + if($_SESSION['sprache']==$row->sprache) + $selected='style="border:1px solid black;"'; + else + $selected=''; + echo " sprache' class='Item' $selected>$row->sprache"; + } + } + } + echo '


'.$p->t('testtool/klickenSieAufEinTeilgebiet').''; + if($pruefling->pruefling_id!='') + { + $_SESSION['pruefling_id']=$pruefling->pruefling_id; + echo ''; + } + } + else + { + echo ''.$p->t('testtool/keinPrueflingseintragVorhanden').''; + } + } + else + { + //LOGIN FORM (Startseite vor Login) + $prestudent_id_dummy_student = (defined('PRESTUDENT_ID_DUMMY_STUDENT')?PRESTUDENT_ID_DUMMY_STUDENT:''); + + echo '
+ '; + echo '  '.$p->t('global/geburtsdatum').': '; + echo ''; + echo '  '; + echo '
'; + + echo '


+
+ '.$p->t('testtool/willkommenstext').' +
'; + } +?> + + + \ No newline at end of file diff --git a/content/statistik/studentenstatistik.php b/content/statistik/studentenstatistik.php index 959cf951d..330e67995 100644 --- a/content/statistik/studentenstatistik.php +++ b/content/statistik/studentenstatistik.php @@ -21,7 +21,7 @@ */ /* * Erstellt eine Liste der Studenten eines Studiensemesters - * Aufteilung in + * Aufteilung in * - Anzahl Gesamt * - Prozent Anteil * - Vollzeit/Berufsbegleitend @@ -32,6 +32,7 @@ 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/organisationsform.class.php'); $db = new basis_db(); $stsem_obj = new studiensemester(); @@ -42,10 +43,19 @@ else $stsem = $stsem_obj->getaktorNext(); } $stsem_obj->load($stsem); -echo ' + +$orgform = new organisationsform(); +$orgform->getAll(); +$orgform_arr = array(); + +foreach($orgform->result as $row_orgform) + if($row_orgform->rolle==true) + $orgform_arr[] = $row_orgform->orgform_kurzbz; + +echo ' - + @@ -64,9 +74,9 @@ echo 'studiensemester_kurzbz==$stsem) $selected='selected'; - else + else $selected=''; - + echo ''; } echo ' @@ -81,7 +91,7 @@ if($stsem!='') Anteil an Gesamt Extern - Studienart + Studienart Geschlecht Staatsbürgerschaft @@ -91,8 +101,10 @@ if($stsem!='') Bachelor Studiengänge Absolut / % - In / Out - BB / VZ / DL / DDP / PT + In / Out"; + foreach($orgform_arr as $row_orgform) + echo "".$row_orgform.""; + echo " m w Österreich @@ -105,45 +117,38 @@ if($stsem!='') (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='$stsem' ) a) AS gesamt_stg, - + (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='b' + WHERE status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='b' ) a) AS gesamt_alle, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Incoming' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Incoming' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) a) AS inc, (SELECT count(*) FROM (SELECT distinct student_uid FROM public.tbl_student JOIN bis.tbl_bisio USING (student_uid) - WHERE studiengang_kz=stg.studiengang_kz AND (bis>='".addslashes($stsem_obj->start)."' OR bis is null) AND von<='".addslashes($stsem_obj->ende)."' - ) a) AS out, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB' - ) a) AS bb, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ' - ) a) AS vz, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='DL' - ) a) AS fs, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='DDP' - ) a) AS ddp, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='PT' - ) a) AS pt, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w' + WHERE studiengang_kz=stg.studiengang_kz AND (bis>=".$db->db_add_param($stsem_obj->start)." OR bis is null) AND von<=".$db->db_add_param($stsem_obj->ende)." + ) a) AS out,"; + + foreach($orgform_arr as $row_orgform) + { + $qry.=" (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz=".$db->db_add_param($row_orgform)." + ) a) AS orgform_".$row_orgform.","; + } + + $qry.=" (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w' ) a) AS w, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' ) a) AS m, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND nation_code='A' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND nation_code='A' ) a) AS herkunft_at, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND eu AND nation_code<>'A' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND eu AND nation_code<>'A' ) a) AS herkunft_eu, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND NOT eu + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND NOT eu ) a) AS herkunft_noteu, true FROM @@ -151,17 +156,14 @@ if($stsem!='') WHERE studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='b' ORDER BY typ, kurzbzlang; "; - + if($result = $db->db_query($qry)) { - + $gesamt=0; $gesamt_prozent=0; - $gesamt_bb=0; - $gesamt_vz=0; - $gesamt_fs=0; - $gesamt_ddp=0; - $gesamt_pt=0; + foreach($orgform_arr as $row_orgform) + $gesamt_orgform[$row_orgform] = 0; $gesamt_m=0; $gesamt_w=0; $gesamt_at=0; @@ -177,65 +179,23 @@ if($stsem!='') $prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0); echo "$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %"; echo "$row->inc / $row->out"; - if($row->orgform_kurzbz=='BB' && $db->db_parse_bool($row->mischform)==false) + + foreach($orgform_arr as $row_orgform) { - //berufsbegleitend: gesamtzahl in spalte bb - echo "$row->gesamt_stg / $row->vz / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->gesamt_stg; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='VZ' && $db->db_parse_bool($row->mischform)==false) - { - //vollzeit: gesamtzahl in spalte vz - echo "$row->bb / $row->gesamt_stg / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->gesamt_stg; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='DL' && $db->db_parse_bool($row->mischform)==false) - { - //fernlehre: gesamtzahl in spalte DL - echo "$row->bb / $row->vz / $row->gesamt_stg / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->gesamt_stg; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='DDP' && $db->db_parse_bool($row->mischform)==false) - { - //doubledegree: gesamtzahl in spalte DDP - echo "$row->bb / $row->vz / $row->fs / $row->gesamt_stg / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_pt += $row->gesamt_stg; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='PT' && $db->db_parse_bool($row->mischform)==false) - { - //parttime: gesamtzahl in spalte PT - echo "$row->bb / $row->vz / $row->fs / $row->ddp / $row->gesamt_stg"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->gesamt_stg; - } - else - { - echo "$row->bb / $row->vz / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; + echo ""; + if($row->orgform_kurzbz == $row_orgform && $db->db_parse_bool($row->mischform) == false) + { + echo $row->gesamt_stg; + $gesamt_orgform[$row_orgform] += $row->gesamt_stg; + } + else + { + echo $row->{'orgform_'.mb_strtolower($row_orgform)}; + $gesamt_orgform[$row_orgform] += $row->{'orgform_'.mb_strtolower($row_orgform)}; + } + echo ""; } + echo "$row->m"; echo "$row->w"; echo "$row->herkunft_at"; @@ -257,23 +217,25 @@ if($stsem!='') echo " "; echo "$gesamt / ".sprintf('%0.2f', $gesamt_prozent)." %"; echo "$gesamt_inc / $gesamt_out"; - echo "$gesamt_bb / $gesamt_vz / $gesamt_fs / $gesamt_ddp / $gesamt_pt"; + foreach($orgform_arr as $row_orgform) + echo "".$gesamt_orgform[$row_orgform].""; echo "$gesamt_m"; echo "$gesamt_w"; echo "$gesamt_at"; echo "$gesamt_eu"; echo "$gesamt_noteu"; echo ""; - + } - + $gesamtsumme = $gesamt; $gesamtsumme_prozent = $gesamt_prozent; - $gesamtsumme_bb = $gesamt_bb; - $gesamtsumme_vz = $gesamt_vz; - $gesamtsumme_fs = $gesamt_fs; - $gesamtsumme_ddp = $gesamt_ddp; - $gesamtsumme_pt = $gesamt_pt; + $gesamtsumme_orgform = array(); + + foreach($orgform_arr as $row_orgform) + { + $gesamtsumme_orgform[$row_orgform] = $gesamt_orgform[$row_orgform]; + } $gesamtsumme_m = $gesamt_m; $gesamtsumme_w = $gesamt_w; $gesamtsumme_at = $gesamt_at; @@ -281,15 +243,18 @@ if($stsem!='') $gesamtsumme_noteu = $gesamt_noteu; $gesamtsumme_inc = $gesamt_inc; $gesamtsumme_out = $gesamt_out; - + //Master echo ' Master Studiengänge Absolut / % - In / Out - BB / VZ / DL / DDP / PT + In / Out'; + foreach($orgform_arr as $row_orgform) + echo ''.$row_orgform.''; + + echo ' m w Österreich @@ -300,45 +265,39 @@ if($stsem!='') (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' ) AS gesamt_stg, - + (SELECT count(*) FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND typ='m' + WHERE status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND typ='m' ) AS gesamt_alle, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Incoming' AND studiensemester_kurzbz='".addslashes($stsem)."' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Incoming' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ) a) AS inc, (SELECT count(*) FROM (SELECT distinct student_uid FROM public.tbl_student JOIN bis.tbl_bisio USING (student_uid) - WHERE studiengang_kz=stg.studiengang_kz AND (bis>='".addslashes($stsem_obj->start)."' OR bis is null) AND von<='".addslashes($stsem_obj->ende)."' - ) a) AS out, + WHERE studiengang_kz=stg.studiengang_kz AND (bis>=".$db->db_add_param($stsem_obj->start)." OR bis is null) AND von<=".$db->db_add_param($stsem_obj->ende)." + ) a) AS out,"; + + foreach($orgform_arr as $row_orgform) + { + $qry .= " (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='BB' - ) a) AS bb, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='VZ' - ) a) AS vz, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='DL' - ) a) AS fs, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='DDP' - ) a) AS ddp, - (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND orgform_kurzbz='PT' - ) a) AS pt, + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND orgform_kurzbz=".$db->db_add_param($row_orgform)." + ) a) AS orgform_".$row_orgform.","; + } + $qry .= " (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='w' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='w' ) a) AS w, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND geschlecht='m' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND geschlecht='m' ) a) AS m, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND nation_code='A' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND nation_code='A' ) a) AS herkunft_at, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND eu AND nation_code<>'A' + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND eu AND nation_code<>'A' ) a) AS herkunft_eu, (SELECT count(*) FROM (SELECT distinct prestudent_id FROM public.tbl_prestudent JOIN public.tbl_prestudentstatus USING (prestudent_id) JOIN public.tbl_person USING(person_id) JOIN bis.tbl_nation on(staatsbuergerschaft=nation_code) - WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz='".addslashes($stsem)."' AND NOT eu + WHERE studiengang_kz=stg.studiengang_kz AND status_kurzbz='Student' AND studiensemester_kurzbz=".$db->db_add_param($stsem)." AND NOT eu ) a) AS herkunft_noteu, true FROM @@ -346,17 +305,14 @@ if($stsem!='') WHERE studiengang_kz>0 AND studiengang_kz<10000 AND aktiv AND typ='m' ORDER BY typ, kurzbzlang; "; - + if($result = $db->db_query($qry)) { - + $gesamt=0; $gesamt_prozent=0; - $gesamt_bb=0; - $gesamt_vz=0; - $gesamt_fs=0; - $gesamt_ddp=0; - $gesamt_pt=0; + foreach($orgform_arr as $row_orgform) + $gesamt_orgform[$row_orgform] = 0; $gesamt_m=0; $gesamt_w=0; $gesamt_at=0; @@ -372,65 +328,23 @@ if($stsem!='') $prozent = ($row->gesamt_alle!=0?$row->gesamt_stg/$row->gesamt_alle*100:0); echo "$row->gesamt_stg / ".sprintf('%0.2f', $prozent)." %"; echo "$row->inc / $row->out"; - if($row->orgform_kurzbz=='BB' && $db->db_parse_bool($row->mischform)==false) + + foreach($orgform_arr as $row_orgform) { - //berufsbegleitend: gesamtzahl in spalte bb - echo "$row->gesamt_stg / $row->vz / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->gesamt_stg; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='VZ' && $db->db_parse_bool($row->mischform)==false) - { - //vollzeit: gesamtzahl in spalte vz - echo "$row->bb / $row->gesamt_stg / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->gesamt_stg; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='DL' && $db->db_parse_bool($row->mischform)==false) - { - //fernlehre: gesamtzahl in spalte DL - echo "$row->bb / $row->vz / $row->gesamt_stg / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->gesamt_stg; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='DDP' && $db->db_parse_bool($row->mischform)==false) - { - //doubledegree: gesamtzahl in spalte DDP - echo "$row->bb / $row->vz / $row->fs / $row->gesamt_stg / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_pt += $row->gesamt_stg; - $gesamt_pt += $row->pt; - } - else if($row->orgform_kurzbz=='PT' && $db->db_parse_bool($row->mischform)==false) - { - //parttime: gesamtzahl in spalte PT - echo "$row->bb / $row->vz / $row->fs / $row->ddp / $row->gesamt_stg"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->gesamt_stg; - } - else - { - echo "$row->bb / $row->vz / $row->fs / $row->ddp / $row->pt"; - $gesamt_bb += $row->bb; - $gesamt_vz += $row->vz; - $gesamt_fs += $row->fs; - $gesamt_ddp += $row->ddp; - $gesamt_pt += $row->pt; + echo ""; + if($row->orgform_kurzbz == $row_orgform && $db->db_parse_bool($row->mischform) == false) + { + echo $row->gesamt_stg; + $gesamt_orgform[$row_orgform] += $row->gesamt_stg; + } + else + { + echo $row->{'orgform_'.mb_strtolower($row_orgform)}; + $gesamt_orgform[$row_orgform] += $row->{'orgform_'.mb_strtolower($row_orgform)}; + } + echo ""; } + echo "$row->m"; echo "$row->w"; echo "$row->herkunft_at"; @@ -452,22 +366,24 @@ if($stsem!='') echo " "; echo "$gesamt / ".sprintf('%0.2f', $gesamt_prozent)." %"; echo "$gesamt_inc / $gesamt_out"; - echo "$gesamt_bb / $gesamt_vz / $gesamt_fs / $gesamt_ddp / $gesamt_pt"; + foreach($orgform_arr as $row_orgform) + { + echo "".$gesamt_orgform[$row_orgform].""; + } echo "$gesamt_m"; echo "$gesamt_w"; echo "$gesamt_at"; echo "$gesamt_eu"; echo "$gesamt_noteu"; echo ""; - + } $gesamtsumme += $gesamt; $gesamtsumme_prozent = 100; - $gesamtsumme_bb += $gesamt_bb; - $gesamtsumme_vz += $gesamt_vz; - $gesamtsumme_fs += $gesamt_fs; - $gesamtsumme_ddp += $gesamt_ddp; - $gesamtsumme_pt += $gesamt_pt; + + foreach($orgform_arr as $row_orgform) + $gesamtsumme_orgform[$row_orgform] += $gesamt_orgform[$row_orgform]; + $gesamtsumme_m += $gesamt_m; $gesamtsumme_w += $gesamt_w; $gesamtsumme_at += $gesamt_at; @@ -480,7 +396,8 @@ if($stsem!='') echo " "; echo "$gesamtsumme / ".sprintf('%0.2f', $gesamtsumme_prozent)." %"; echo "$gesamtsumme_inc / $gesamtsumme_out"; - echo "$gesamtsumme_bb / $gesamtsumme_vz / $gesamtsumme_fs / $gesamtsumme_ddp / $gesamtsumme_pt"; + foreach($orgform_arr as $row_orgform) + echo "".$gesamtsumme_orgform[$row_orgform].""; echo "$gesamtsumme_m"; echo "$gesamtsumme_w"; echo "$gesamtsumme_at"; @@ -491,4 +408,4 @@ if($stsem!='') } ?> - \ No newline at end of file + diff --git a/include/ablauf.class.php b/include/ablauf.class.php index fe3492617..03d6b733c 100644 --- a/include/ablauf.class.php +++ b/include/ablauf.class.php @@ -1,657 +1,657 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl , - * Andreas Moik , - * Simon Schwebler , - * Manfred Kindl - */ -/** - * Klasse zur Verwaltung der Ablaeufe der Raihungstests - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class ablauf extends basis_db -{ - public $new; - public $result = array(); - - //Tabellenspalten - public $studiengang_kz; - public $gebiet_id; - public $reihung; - public $gewicht; - public $ablauf_id; - public $insertamum; - public $insertvon; - public $updateamum; - public $updatevon; - public $semester; - public $ablauf_vorgaben_id; - public $studienplan_id; - public $sprachwahl; - public $sprache; - public $content_id; - - /** - * Konstruktor - * @param $ablauf_id ID des zu ladenden Datensatzes - */ - public function __construct($ablauf_id=null) - { - parent::__construct(); - - if(!is_null($ablauf_id)) - $this->load($ablauf_id); - } - - /** - * Laedt einen Datensatz - * @param abschlusspruefung_id ID des zu ladenden Datensatzes - */ - public function load($ablauf_id) - { - //id auf Gueltigkeit pruefen - if(!is_numeric($ablauf_id)) - { - $this->errormsg = 'ablauf_id muss eine gueltige Zahl sein'; - return false; - } - - //laden des Datensatzes - $qry = "SELECT - tbl_ablauf.*, - tbl_ablauf_vorgaben.sprache, - tbl_ablauf_vorgaben.sprachwahl, - tbl_ablauf_vorgaben.content_id - FROM - testtool.tbl_ablauf - LEFT JOIN - testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id) - WHERE - ablauf_id=".$this->db_add_param($ablauf_id, FHC_INTEGER, false).";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $obj = new ablauf(); - - $obj->studiengang_kz = $row->studiengang_kz; - $obj->gebiet_id = $row->gebiet_id; - $obj->reihung = $row->reihung; - $obj->gewicht = $row->gewicht; - $obj->ablauf_id = $row->ablauf_id; - $obj->semester = $row->semester; - $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; - $obj->studienplan_id = $row->studienplan_id; - $obj->updateamum = $row->updateamum; - $obj->updatevon = $row->updatevon; - $obj->insertamum = $row->insertamum; - $obj->insertvon = $row->insertvon; - $obj->sprache = $row->sprache; - $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); - $obj->content_id = $row->content_id; - - $this->result[] = $obj; - return true; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - - /** - * Loescht einen Datensatz - * @param abschlusspruefung_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - public function delete($ablauf_id) - { - //abschlusspruefung_id auf Gueltigkeit pruefen - if(!is_numeric($ablauf_id)) - { - $this->errormsg = 'ablauf_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM testtool.tbl_ablauf - WHERE ablauf_id=".$this->db_add_param($ablauf_id, FHC_INTEGER, false).";"; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Loeschen'; - return false; - } - } - - /** - * Loescht einen Ablauf-Vorgabe Datensatz - * @param $ablauf_vorgabe_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - public function deleteAblaufVorgabe($ablauf_vorgabe_id) - { - //$ablauf_vorgabe_id auf Gueltigkeit pruefen - if(!is_numeric($ablauf_vorgabe_id)) - { - $this->errormsg = 'ablauf_vorgabe_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM testtool.tbl_ablauf_vorgaben - WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgabe_id, FHC_INTEGER).";"; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Loeschen der Ablauf-Vorgabe mit der ID '.$ablauf_vorgabe_id; - return false; - } - } - - /** - * Prueft die Daten vor dem Speichern - * - * @return true wenn ok, false wenn Fehler - */ - protected function validate() - { - if($this->studiengang_kz=='') - { - $this->errormsg = 'studiengang_kz muss eingegeben werden'; - return false; - } - if($this->gebiet_id=='') - { - $this->errormsg = 'gebiet_id muss eingetragen werden'; - return false; - } - if($this->reihung=='') - { - $this->errormsg = 'reihung muss eingetragen werden'; - return false; - } - if($this->gewicht=='') - { - $this->errormsg = 'gewicht muss eingetragen werden'; - return false; - } - if($this->semester=='') - { - $this->errormsg = 'semester muss eingetragen werden'; - return false; - } - return true; - } - - /** - * Speichert den aktuellen Datensatz - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function save($new=null) - { - if(!$this->validate()) - return false; - if($new==null) - $new = $this->new; - - if($new) - { - //Neuen Datensatz anlegen - $qry = "BEGIN;INSERT INTO testtool.tbl_ablauf (studiengang_kz, gebiet_id, reihung, - gewicht, semester, ablauf_vorgaben_id, studienplan_id, - updateamum, updatevon, insertamum, insertvon) VALUES (". - $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. - $this->db_add_param($this->gebiet_id, FHC_INTEGER).', '. - $this->db_add_param($this->reihung, FHC_INTEGER).', '. - $this->db_add_param($this->gewicht, FHC_INTEGER).', '. - $this->db_add_param($this->semester, FHC_INTEGER).', '. - $this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER).', '. - $this->db_add_param($this->studienplan_id).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).');'; - - } - else - { - //Bestehenden Datensatz aktualisieren - $qry= "UPDATE testtool.tbl_ablauf SET". - " studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",". - " gebiet_id=".$this->db_add_param($this->gebiet_id, FHC_INTEGER).",". - " reihung=".$this->db_add_param($this->reihung, FHC_INTEGER).",". - " gewicht=".$this->db_add_param($this->gewicht, FHC_INTEGER).",". - " semester=".$this->db_add_param($this->semester, FHC_INTEGER).",". - " ablauf_vorgaben_id=".$this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER).",". - " studienplan_id=".$this->db_add_param($this->studienplan_id).",". - " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon). - " WHERE ablauf_id=".$this->db_add_param($this->ablauf_id, FHC_INTEGER); - } - - if($this->db_query($qry)) - { - if($new) - { - $qry = "SELECT currval('testtool.tbl_ablauf_ablauf_id_seq') as id"; - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->ablauf_id = $row->id; - $this->db_query('COMMIT;'); - return true; - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - else - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; - } - } - - /** - * Laedt die zugehoerigen Gebiete zum angegebenen Studiengang (gegebenfalls auch Studienplan) - * @param $studiengang_kz ID des Studiengang - * @param $studienplan_id ID des Studienplans - * @param $semester - * @return boolean true wenn ok sonst false - */ - public function getAblaufGebiete($studiengang_kz, $studienplan_id=null, $semester=null) - { - $qry = "SELECT - tbl_ablauf.*, - tbl_ablauf_vorgaben.sprache, - tbl_ablauf_vorgaben.sprachwahl, - tbl_ablauf_vorgaben.content_id - FROM - testtool.tbl_ablauf - LEFT JOIN - testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id) - WHERE - tbl_ablauf.studiengang_kz=".$studiengang_kz; - if (!is_null($studienplan_id)) - $qry .= " AND studienplan_id=".$studienplan_id; - if (!is_null($semester)) - $qry .= " AND semester=".$semester; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new stdClass(); - - $obj->ablauf_id = $row->ablauf_id; - $obj->gebiet_id = $row->gebiet_id; - $obj->reihung = $row->reihung; - $obj->gewicht = $row->gewicht; - $obj->semester = $row->semester; - $obj->studienplan_id = $row->studienplan_id; - $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; - $obj->sprache = $row->sprache; - $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); - $obj->content_id = $row->content_id; - - $this->result[]= $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Leadt die ablauf_id zu einer Kombination aus Studiengang und Gebiet - * @param $studiengang_kz Studiengang - * @param $gebiet_id Gebiet - * @return boolean true wenn ok sonst false - */ - public function getAblaufId($studiengang_kz, $gebiet_id) - { - $qry = "SELECT - * - FROM - testtool.tbl_ablauf - WHERE studiengang_kz=".$studiengang_kz." AND gebiet_id=".$gebiet_id.";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->result[] = $row->ablauf_id; - return true; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - } - - /** - * Laedt eine Ablauf-Vorgabe - * @param $ablauf_vorgaben_id ID des zu ladenden Datensatzes - */ - public function loadAblaufVorgabe($ablauf_vorgaben_id) - { - //id auf Gueltigkeit pruefen - if(!is_numeric($ablauf_vorgaben_id)) - { - $this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein'; - return false; - } - - //laden des Datensatzes - $qry = "SELECT - * - FROM - testtool.tbl_ablauf_vorgaben - WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER, false).";"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->studiengang_kz = $row->studiengang_kz; - $this->sprache = $row->sprache; - $this->sprachwahl = $this->db_parse_bool($row->sprachwahl); - $this->content_id = $row->content_id; - $this->updateamum = $row->updateamum; - $this->updatevon = $row->updatevon; - $this->insertamum = $row->insertamum; - $this->insertvon = $row->insertvon; - - return true; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - - /** - * Speichert eine Ablauf-Vorgabe - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz mit der ID in $ablauf_vorgaben_id aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function saveAblaufVorgabe($new=null) - { - if($new==null) - $new = $this->new; - - if($new) - { - //Neuen Datensatz anlegen - $qry = "BEGIN;INSERT INTO testtool.tbl_ablauf_vorgaben (studiengang_kz, sprache, sprachwahl, - content_id, updateamum, updatevon, insertamum, insertvon) VALUES (". - $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. - $this->db_add_param($this->sprache).', '. - $this->db_add_param($this->sprachwahl, FHC_BOOLEAN).', '. - $this->db_add_param($this->content_id, FHC_INTEGER).', '. - $this->db_add_param($this->updateamum).', '. - $this->db_add_param($this->updatevon).', '. - $this->db_add_param($this->insertamum).', '. - $this->db_add_param($this->insertvon).');'; - - } - else - { - //Bestehenden Datensatz aktualisieren - $qry= "UPDATE testtool.tbl_ablauf_vorgaben SET". - " studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",". - " sprache=".$this->db_add_param($this->sprache).",". - " sprachwahl=".$this->db_add_param($this->sprachwahl, FHC_BOOLEAN).",". - " content_id=".$this->db_add_param($this->content_id, FHC_INTEGER).",". - " updateamum=".$this->db_add_param($this->updateamum).",". - " updatevon=".$this->db_add_param($this->updatevon). - " WHERE ablauf_vorgaben_id=".$this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER); - } - - if($this->db_query($qry)) - { - if($new) - { - $qry = "SELECT currval('testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq') as id"; - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->ablauf_vorgaben_id = $row->id; - $this->db_query('COMMIT;'); - return true; - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Sequence'; - $this->db_query('ROLLBACK'); - return false; - } - } - else - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; - } - } - - /** - * Laedt alle Ablauf-Vorgaben Eintraege - * @return boolean true wenn ok sonst false - */ - public function getAllAblaufVorgaben() - { - $qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben"; - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new ablauf(); - - $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; - $obj->studiengang_kz = $row->studiengang_kz; - $obj->sprache = $row->sprache; - $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); - $obj->content_id = $row->content_id; - - $this->result[]= $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt einen Ablauf-Vorgabe Eintrag anhand der uebergebenen Studiengangskennzahl - * @param $studiengang_kz ID des Studiengang - * @return boolean true wenn ok sonst false - */ - public function getAblaufVorgabeStudiengang($studiengang_kz) - { - //id auf Gueltigkeit pruefen - if(!is_numeric($studiengang_kz)) - { - $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false); - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new ablauf(); - - $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; - $obj->studiengang_kz = $row->studiengang_kz; - $obj->sprache = $row->sprache; - $obj->sprachwahl = $row->sprachwahl; - $obj->content_id = $row->content_id; - - $this->result[]= $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Zaehlt, wie of die ablauf_vorgabe_id noch in tbl_ablauf verwendet wird - * @param integer $ablauf_vorgaben_id Ablauf-Vorlage-ID - * @return boolean true wenn ok sonst false - */ - public function countAblaufVorgabe($ablauf_vorgaben_id) - { - //id auf Gueltigkeit pruefen - if(!is_numeric($ablauf_vorgaben_id)) - { - $this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT count(*) FROM testtool.tbl_ablauf WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - return $row->count; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Berechnet die Dauer eines Tests - * @param integer $studiengang_kz Kennzahl des Studiengangs - * @param integer $studienplan_id Optional. Default NULL. ID des Studienplans - * @param integer $semester Optional. Default NULL. - * @return boolean true wenn ok sonst false - */ - public function getDauer($studiengang_kz, $studienplan_id=null, $semester=null) - { - $qry = "SELECT - SUM (zeit) as dauer - FROM - testtool.tbl_ablauf - JOIN - testtool.tbl_gebiet USING (gebiet_id) - WHERE - studiengang_kz=".$studiengang_kz; - if (!is_null($studienplan_id)) - $qry .= " AND studienplan_id=".$studienplan_id; - if (!is_null($semester)) - $qry .= " AND semester=".$semester; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - - return $row->dauer; - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } - else - { - $this->errormsg = 'Fehler bei der Datenbankabfrage'; - return false; - } - } -} -?> +, + * Andreas Oesterreicher , + * Rudolf Hangl , + * Andreas Moik , + * Simon Schwebler , + * Manfred Kindl + */ +/** + * Klasse zur Verwaltung der Ablaeufe der Raihungstests + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class ablauf extends basis_db +{ + public $new; + public $result = array(); + + //Tabellenspalten + public $studiengang_kz; + public $gebiet_id; + public $reihung; + public $gewicht; + public $ablauf_id; + public $insertamum; + public $insertvon; + public $updateamum; + public $updatevon; + public $semester; + public $ablauf_vorgaben_id; + public $studienplan_id; + public $sprachwahl; + public $sprache; + public $content_id; + + /** + * Konstruktor + * @param $ablauf_id ID des zu ladenden Datensatzes + */ + public function __construct($ablauf_id=null) + { + parent::__construct(); + + if(!is_null($ablauf_id)) + $this->load($ablauf_id); + } + + /** + * Laedt einen Datensatz + * @param abschlusspruefung_id ID des zu ladenden Datensatzes + */ + public function load($ablauf_id) + { + //id auf Gueltigkeit pruefen + if(!is_numeric($ablauf_id)) + { + $this->errormsg = 'ablauf_id muss eine gueltige Zahl sein'; + return false; + } + + //laden des Datensatzes + $qry = "SELECT + tbl_ablauf.*, + tbl_ablauf_vorgaben.sprache, + tbl_ablauf_vorgaben.sprachwahl, + tbl_ablauf_vorgaben.content_id + FROM + testtool.tbl_ablauf + LEFT JOIN + testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id) + WHERE + ablauf_id=".$this->db_add_param($ablauf_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $obj = new ablauf(); + + $obj->studiengang_kz = $row->studiengang_kz; + $obj->gebiet_id = $row->gebiet_id; + $obj->reihung = $row->reihung; + $obj->gewicht = $row->gewicht; + $obj->ablauf_id = $row->ablauf_id; + $obj->semester = $row->semester; + $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; + $obj->studienplan_id = $row->studienplan_id; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->sprache = $row->sprache; + $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); + $obj->content_id = $row->content_id; + + $this->result[] = $obj; + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + + /** + * Loescht einen Datensatz + * @param abschlusspruefung_id ID des zu loeschenden Datensatzes + * @return true wenn ok, false im Fehlerfall + */ + public function delete($ablauf_id) + { + //abschlusspruefung_id auf Gueltigkeit pruefen + if(!is_numeric($ablauf_id)) + { + $this->errormsg = 'ablauf_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM testtool.tbl_ablauf + WHERE ablauf_id=".$this->db_add_param($ablauf_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Loeschen'; + return false; + } + } + + /** + * Loescht einen Ablauf-Vorgabe Datensatz + * @param $ablauf_vorgabe_id ID des zu loeschenden Datensatzes + * @return true wenn ok, false im Fehlerfall + */ + public function deleteAblaufVorgabe($ablauf_vorgabe_id) + { + //$ablauf_vorgabe_id auf Gueltigkeit pruefen + if(!is_numeric($ablauf_vorgabe_id)) + { + $this->errormsg = 'ablauf_vorgabe_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "DELETE FROM testtool.tbl_ablauf_vorgaben + WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgabe_id, FHC_INTEGER).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Loeschen der Ablauf-Vorgabe mit der ID '.$ablauf_vorgabe_id; + return false; + } + } + + /** + * Prueft die Daten vor dem Speichern + * + * @return true wenn ok, false wenn Fehler + */ + protected function validate() + { + if($this->studiengang_kz=='') + { + $this->errormsg = 'studiengang_kz muss eingegeben werden'; + return false; + } + if($this->gebiet_id=='') + { + $this->errormsg = 'gebiet_id muss eingetragen werden'; + return false; + } + if($this->reihung=='') + { + $this->errormsg = 'reihung muss eingetragen werden'; + return false; + } + if($this->gewicht=='') + { + $this->errormsg = 'gewicht muss eingetragen werden'; + return false; + } + if($this->semester=='') + { + $this->errormsg = 'semester muss eingetragen werden'; + return false; + } + return true; + } + + /** + * Speichert den aktuellen Datensatz + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $akte_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function save($new=null) + { + if(!$this->validate()) + return false; + if($new==null) + $new = $this->new; + + if($new) + { + //Neuen Datensatz anlegen + $qry = "BEGIN;INSERT INTO testtool.tbl_ablauf (studiengang_kz, gebiet_id, reihung, + gewicht, semester, ablauf_vorgaben_id, studienplan_id, + updateamum, updatevon, insertamum, insertvon) VALUES (". + $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + $this->db_add_param($this->gebiet_id, FHC_INTEGER).', '. + $this->db_add_param($this->reihung, FHC_INTEGER).', '. + $this->db_add_param($this->gewicht, FHC_INTEGER).', '. + $this->db_add_param($this->semester, FHC_INTEGER).', '. + $this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER).', '. + $this->db_add_param($this->studienplan_id).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).');'; + + } + else + { + //Bestehenden Datensatz aktualisieren + $qry= "UPDATE testtool.tbl_ablauf SET". + " studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",". + " gebiet_id=".$this->db_add_param($this->gebiet_id, FHC_INTEGER).",". + " reihung=".$this->db_add_param($this->reihung, FHC_INTEGER).",". + " gewicht=".$this->db_add_param($this->gewicht, FHC_INTEGER).",". + " semester=".$this->db_add_param($this->semester, FHC_INTEGER).",". + " ablauf_vorgaben_id=".$this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER).",". + " studienplan_id=".$this->db_add_param($this->studienplan_id).",". + " updateamum=".$this->db_add_param($this->updateamum).",". + " updatevon=".$this->db_add_param($this->updatevon). + " WHERE ablauf_id=".$this->db_add_param($this->ablauf_id, FHC_INTEGER); + } + + if($this->db_query($qry)) + { + if($new) + { + $qry = "SELECT currval('testtool.tbl_ablauf_ablauf_id_seq') as id"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->ablauf_id = $row->id; + $this->db_query('COMMIT;'); + return true; + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + } + + /** + * Laedt die zugehoerigen Gebiete zum angegebenen Studiengang (gegebenfalls auch Studienplan) + * @param $studiengang_kz ID des Studiengang + * @param $studienplan_id ID des Studienplans + * @param $semester + * @return boolean true wenn ok sonst false + */ + public function getAblaufGebiete($studiengang_kz, $studienplan_id=null, $semester=null) + { + $qry = "SELECT + tbl_ablauf.*, + tbl_ablauf_vorgaben.sprache, + tbl_ablauf_vorgaben.sprachwahl, + tbl_ablauf_vorgaben.content_id + FROM + testtool.tbl_ablauf + LEFT JOIN + testtool.tbl_ablauf_vorgaben USING (ablauf_vorgaben_id) + WHERE + tbl_ablauf.studiengang_kz=".$studiengang_kz; + if (!is_null($studienplan_id)) + $qry .= " AND studienplan_id=".$studienplan_id; + if (!is_null($semester)) + $qry .= " AND semester=".$semester; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new stdClass(); + + $obj->ablauf_id = $row->ablauf_id; + $obj->gebiet_id = $row->gebiet_id; + $obj->reihung = $row->reihung; + $obj->gewicht = $row->gewicht; + $obj->semester = $row->semester; + $obj->studienplan_id = $row->studienplan_id; + $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; + $obj->sprache = $row->sprache; + $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); + $obj->content_id = $row->content_id; + + $this->result[]= $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Leadt die ablauf_id zu einer Kombination aus Studiengang und Gebiet + * @param $studiengang_kz Studiengang + * @param $gebiet_id Gebiet + * @return boolean true wenn ok sonst false + */ + public function getAblaufId($studiengang_kz, $gebiet_id) + { + $qry = "SELECT + * + FROM + testtool.tbl_ablauf + WHERE studiengang_kz=".$studiengang_kz." AND gebiet_id=".$gebiet_id.";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->result[] = $row->ablauf_id; + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + } + + /** + * Laedt eine Ablauf-Vorgabe + * @param $ablauf_vorgaben_id ID des zu ladenden Datensatzes + */ + public function loadAblaufVorgabe($ablauf_vorgaben_id) + { + //id auf Gueltigkeit pruefen + if(!is_numeric($ablauf_vorgaben_id)) + { + $this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein'; + return false; + } + + //laden des Datensatzes + $qry = "SELECT + * + FROM + testtool.tbl_ablauf_vorgaben + WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER, false).";"; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->studiengang_kz = $row->studiengang_kz; + $this->sprache = $row->sprache; + $this->sprachwahl = $this->db_parse_bool($row->sprachwahl); + $this->content_id = $row->content_id; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + + return true; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + + /** + * Speichert eine Ablauf-Vorgabe + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $ablauf_vorgaben_id aktualisiert + * @return true wenn ok, false im Fehlerfall + */ + public function saveAblaufVorgabe($new=null) + { + if($new==null) + $new = $this->new; + + if($new) + { + //Neuen Datensatz anlegen + $qry = "BEGIN;INSERT INTO testtool.tbl_ablauf_vorgaben (studiengang_kz, sprache, sprachwahl, + content_id, updateamum, updatevon, insertamum, insertvon) VALUES (". + $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. + $this->db_add_param($this->sprache).', '. + $this->db_add_param($this->sprachwahl, FHC_BOOLEAN).', '. + $this->db_add_param($this->content_id, FHC_INTEGER).', '. + $this->db_add_param($this->updateamum).', '. + $this->db_add_param($this->updatevon).', '. + $this->db_add_param($this->insertamum).', '. + $this->db_add_param($this->insertvon).');'; + + } + else + { + //Bestehenden Datensatz aktualisieren + $qry= "UPDATE testtool.tbl_ablauf_vorgaben SET". + " studiengang_kz=".$this->db_add_param($this->studiengang_kz, FHC_INTEGER).",". + " sprache=".$this->db_add_param($this->sprache).",". + " sprachwahl=".$this->db_add_param($this->sprachwahl, FHC_BOOLEAN).",". + " content_id=".$this->db_add_param($this->content_id, FHC_INTEGER).",". + " updateamum=".$this->db_add_param($this->updateamum).",". + " updatevon=".$this->db_add_param($this->updatevon). + " WHERE ablauf_vorgaben_id=".$this->db_add_param($this->ablauf_vorgaben_id, FHC_INTEGER); + } + + if($this->db_query($qry)) + { + if($new) + { + $qry = "SELECT currval('testtool.tbl_ablauf_vorgaben_ablauf_vorgaben_id_seq') as id"; + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + $this->ablauf_vorgaben_id = $row->id; + $this->db_query('COMMIT;'); + return true; + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Auslesen der Sequence'; + $this->db_query('ROLLBACK'); + return false; + } + } + else + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + } + + /** + * Laedt alle Ablauf-Vorgaben Eintraege + * @return boolean true wenn ok sonst false + */ + public function getAllAblaufVorgaben() + { + $qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben"; + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new ablauf(); + + $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->sprache = $row->sprache; + $obj->sprachwahl = $this->db_parse_bool($row->sprachwahl); + $obj->content_id = $row->content_id; + + $this->result[]= $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt einen Ablauf-Vorgabe Eintrag anhand der uebergebenen Studiengangskennzahl + * @param $studiengang_kz ID des Studiengang + * @return boolean true wenn ok sonst false + */ + public function getAblaufVorgabeStudiengang($studiengang_kz) + { + //id auf Gueltigkeit pruefen + if(!is_numeric($studiengang_kz)) + { + $this->errormsg = 'studiengang_kz muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM testtool.tbl_ablauf_vorgaben WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER, false); + + if($result = $this->db_query($qry)) + { + while($row = $this->db_fetch_object($result)) + { + $obj = new ablauf(); + + $obj->ablauf_vorgaben_id = $row->ablauf_vorgaben_id; + $obj->studiengang_kz = $row->studiengang_kz; + $obj->sprache = $row->sprache; + $obj->sprachwahl = $row->sprachwahl; + $obj->content_id = $row->content_id; + + $this->result[]= $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Zaehlt, wie of die ablauf_vorgabe_id noch in tbl_ablauf verwendet wird + * @param integer $ablauf_vorgaben_id Ablauf-Vorlage-ID + * @return boolean true wenn ok sonst false + */ + public function countAblaufVorgabe($ablauf_vorgaben_id) + { + //id auf Gueltigkeit pruefen + if(!is_numeric($ablauf_vorgaben_id)) + { + $this->errormsg = 'ablauf_vorgaben_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = "SELECT count(*) FROM testtool.tbl_ablauf WHERE ablauf_vorgaben_id=".$this->db_add_param($ablauf_vorgaben_id, FHC_INTEGER); + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + return $row->count; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Berechnet die Dauer eines Tests + * @param integer $studiengang_kz Kennzahl des Studiengangs + * @param integer $studienplan_id Optional. Default NULL. ID des Studienplans + * @param integer $semester Optional. Default NULL. + * @return boolean true wenn ok sonst false + */ + public function getDauer($studiengang_kz, $studienplan_id=null, $semester=null) + { + $qry = "SELECT + SUM (zeit) as dauer + FROM + testtool.tbl_ablauf + JOIN + testtool.tbl_gebiet USING (gebiet_id) + WHERE + studiengang_kz=".$studiengang_kz; + if (!is_null($studienplan_id)) + $qry .= " AND studienplan_id=".$studienplan_id; + if (!is_null($semester)) + $qry .= " AND semester=".$semester; + + if($this->db_query($qry)) + { + if($row = $this->db_fetch_object()) + { + + return $row->dauer; + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } + else + { + $this->errormsg = 'Fehler bei der Datenbankabfrage'; + return false; + } + } +} +?> diff --git a/include/organisationsform.class.php b/include/organisationsform.class.php index d288bfeef..5497621ad 100644 --- a/include/organisationsform.class.php +++ b/include/organisationsform.class.php @@ -19,111 +19,111 @@ * Andreas Oesterreicher and * Karl Burkhart . */ - + /** * Klasse Organisationsform */ class organisationsform extends basis_db { - public $orgform_kurzbz; - public $code; - public $bezeichnung; - public $rolle; - - public $result = array(); - + public $orgform_kurzbz; + public $code; + public $bezeichnung; + public $rolle; + + public $result = array(); + /** - * - * Konstruktor + * + * Konstruktor */ - public function __construct() + public function __construct() { - parent::__construct(); + parent::__construct(); } - + /** * Laedt eine Organisationsform * @param $orgform_kurzbz */ public function load($orgform_kurzbz) { - $qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz=".$this->db_add_param($orgform_kurzbz).';'; - + $qry = "SELECT * FROM bis.tbl_orgform WHERE orgform_kurzbz=".$this->db_add_param($orgform_kurzbz).';'; + if($this->db_query($qry)) { if($row = $this->db_fetch_object()) - { - $this->orgform_kurzbz = $row->orgform_kurzbz; - $this->code = $row->code; - $this->bezeichnung = $row->bezeichnung; - $this->rolle = $row->rolle; + { + $this->orgform_kurzbz = $row->orgform_kurzbz; + $this->code = $row->code; + $this->bezeichnung = $row->bezeichnung; + $this->rolle = $this->db_parse_bool($row->rolle); } } else { - $this->errormsg ="Fehler bei der Abfrage aufgetreten"; - return false; + $this->errormsg ="Fehler bei der Abfrage aufgetreten"; + return false; } } - + /** - * + * * Liefert alle Organisationsformen zurück */ public function getAll() { - $qry = "SELECT * FROM bis.tbl_orgform"; - + $qry = "SELECT * FROM bis.tbl_orgform"; + if($this->db_query($qry)) { while($row = $this->db_fetch_object()) { - $orgform = new organisationsform(); - - $orgform->orgform_kurzbz = $row->orgform_kurzbz; - $orgform->code = $row->code; - $orgform->bezeichnung = $row->bezeichnung; - $orgform->rolle = $row->rolle; - - $this->result[] = $orgform; + $orgform = new organisationsform(); + + $orgform->orgform_kurzbz = $row->orgform_kurzbz; + $orgform->code = $row->code; + $orgform->bezeichnung = $row->bezeichnung; + $orgform->rolle = $this->db_parse_bool($row->rolle); + + $this->result[] = $orgform; } return true; } else { - $this->errormsg ="Fehler bei der Abfrage aufgetreten"; - return false; + $this->errormsg ="Fehler bei der Abfrage aufgetreten"; + return false; } } /** - * + * * Orgform Kurzbezeichnung wird übergeben und alle passenden Kurzbezeichnungen werden zurückgegeben * @param $orgform_kurzbz */ public function checkOrgForm($orgform_kurzbz) - { + { if(is_null($orgform_kurzbz)) { - $this->errormsg ="Kein gültiger Wert für Orgform Kurzbz."; - return false; + $this->errormsg ="Kein gültiger Wert für Orgform Kurzbz."; + return false; } - - switch ($orgform_kurzbz) + + switch ($orgform_kurzbz) { case "VZ": $vzArray= array('VZ', ''); - return $vzArray; + return $vzArray; case "BB": $bbArray=array('BB','DL','DDP',''); - return $bbArray; + return $bbArray; case "VBB": $vbbArray = array('VZ','BB','DDP','DL'); - return $vbbArray; + return $vbbArray; default: - return false; + return false; } } @@ -137,19 +137,19 @@ class organisationsform extends basis_db FROM bis.tbl_orgform WHERE orgform_kurzbz NOT IN ('VBB', 'ZGS') ORDER BY orgform_kurzbz"; - + if ($result = $this->db_query($qry)) { - while ($row = $this->db_fetch_object($result)) + while ($row = $this->db_fetch_object($result)) { - $orgform = new organisationsform(); - - $orgform->orgform_kurzbz = $row->orgform_kurzbz; - $orgform->code = $row->code; - $orgform->bezeichnung = $row->bezeichnung; - $orgform->rolle = $row->rolle; - - $this->result[] = $orgform; + $orgform = new organisationsform(); + + $orgform->orgform_kurzbz = $row->orgform_kurzbz; + $orgform->code = $row->code; + $orgform->bezeichnung = $row->bezeichnung; + $orgform->rolle = $row->rolle; + + $this->result[] = $orgform; } return true; } @@ -159,4 +159,4 @@ class organisationsform extends basis_db return false; } } -} \ No newline at end of file +} diff --git a/include/pruefling.class.php b/include/pruefling.class.php index c72e7bdd4..47a5b9a7c 100644 --- a/include/pruefling.class.php +++ b/include/pruefling.class.php @@ -110,7 +110,7 @@ class pruefling extends basis_db $this->db_add_param($this->idnachweis).",". $this->db_add_param($this->registriert).",". $this->db_add_param($this->prestudent_id).",". - $this->db_add_param($this->semester).");"; + $this->db_add_param($this->semester).");"; } else { @@ -318,17 +318,21 @@ class pruefling extends basis_db { $qry = "SELECT * FROM testtool.vw_auswertung WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER); + $ergebnis=0; + if(!is_null($reihungstest_id)) $qry.=" AND reihungstest_id=".$this->db_add_param($reihungstest_id, FHC_INTEGER); - $ergebnis=0; + if($result = $this->db_query($qry)) { // Wenn keine Eintraege vorhanden dann false if($this->db_num_rows($result)==0) return false; + + while($row = $this->db_fetch_object($result)) { @@ -342,7 +346,10 @@ class pruefling extends basis_db $prozent = ($row->punkte/$row->maxpunkte)*100; if($punkte) + { $ergebnis +=$row->punkte; + } + else $ergebnis+=$prozent*$row->gewicht; } diff --git a/locale/it-IT/lehre.php b/locale/it-IT/lehre.php index c4741a14d..578b01a9f 100755 --- a/locale/it-IT/lehre.php +++ b/locale/it-IT/lehre.php @@ -3,7 +3,7 @@ $this->phrasen['lehre/abmelden']='esci'; $this->phrasen['lehre/abmeldung']='uscita'; $this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']='Non è possibile cancellare la propria iscrizione al corso'; $this->phrasen['lehre/AbmeldungErfolgreich']='Cancellamento iscrizione avvenuto con successo'; -$this->phrasen['lehre/anwesenheitsUndNotenlisten']='Elenco frequenze e votazioni'; +$this->phrasen['lehre/anwesenheitsUndNotenlisten']='Elenco studenti'; $this->phrasen['lehre/benotungstoolHandbuch']='Handbook'; $this->phrasen['lehre/confirmAbmeldung']='Cancellare veramente la propria iscrizione al corso "%s" ?'; $this->phrasen['lehre/download']='Download'; @@ -19,7 +19,7 @@ $this->phrasen['lehre/lvInfoBearbeiten']='Modificare'; $this->phrasen['lehre/mail']='E-Mail agli studenti'; $this->phrasen['lehre/newsgroups']='Newsgroups'; $this->phrasen['lehre/nichtzugeteilt']='Lei non è stato/a associato/a a questo insegnamento'; -$this->phrasen['lehre/pinboard']='Bacheca'; +$this->phrasen['lehre/pinboard']='Bacheca notizie'; $this->phrasen['lehre/semesterplan']='Calendario del corso'; $this->phrasen['lehre/semesterplanUpload']='Upload'; $this->phrasen['lehre/semesterplanVorlage']='Schema'; diff --git a/locale/it-IT/profil.php b/locale/it-IT/profil.php index 3b141a687..bf3c0cc7b 100755 --- a/locale/it-IT/profil.php +++ b/locale/it-IT/profil.php @@ -1,6 +1,6 @@ phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo'; -$this->phrasen['profil/adminstration']='Amministrazione'; +$this->phrasen['profil/adminstration']='Gestione notizie'; $this->phrasen['profil/alias']='alias'; $this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di'; $this->phrasen['profil/ausgegebenAm']=''; diff --git a/locale/it-IT/upload.php b/locale/it-IT/upload.php index 9f8ff1bec..1c842a4aa 100755 --- a/locale/it-IT/upload.php +++ b/locale/it-IT/upload.php @@ -1,6 +1,6 @@ phrasen['upload/aktionen']='azioni'; -$this->phrasen['upload/auswaehlen']='Sfoglia'; +$this->phrasen['upload/aktionen']='Azione'; +$this->phrasen['upload/auswaehlen']='Selezione'; $this->phrasen['upload/benutzerKonnteNichtZugeordnetWerden']='Non è stato potuto assegnare l’utente %s'; $this->phrasen['upload/dateiAufServerDateiformat']='Errore: il formato del file che si vuole caricare non è supportato'; $this->phrasen['upload/dateien']='File'; @@ -14,7 +14,7 @@ $this->phrasen['upload/esWurdeKeinPfadDefiniert']='Non è stato definito un perc $this->phrasen['upload/fehlerBeimLadenDerLv']='errore di caricamento del corso'; $this->phrasen['upload/fehlerBeimLoeschenDesOrdners']='errore nella cancellazione della cartella'; $this->phrasen['upload/formattributInEinNeues ']='Errore: si è tentato di cambiare il formato del file in un formato non supportato'; -$this->phrasen['upload/kbGespeichert']='KB salvati'; +$this->phrasen['upload/kbGespeichert']='Data salvataggio'; $this->phrasen['upload/keineDateienGefunden']='Nessun file trovtato'; $this->phrasen['upload/keineGegenstaendeDefiniert']='Non è stato possibile definire gli oggetti'; $this->phrasen['upload/keineOrdnerGefunden']='Nessuna cartella trovata'; @@ -28,8 +28,8 @@ $this->phrasen['upload/studentenUploadEinsehen']='Visualizza upload studenti'; $this->phrasen['upload/studentenUploadVerwalten']='Gestisci upload studenti'; $this->phrasen['upload/studentenUploadverzeichnis']='Registro degli upload'; $this->phrasen['upload/studentenUploadverzeichnisLeeren']='Cancella registro degli upload'; -$this->phrasen['upload/umEinenOrdnerOderEineDatei']='Per cancellare o modificare un file/cartella barrare la corrispettiva casella.'; -$this->phrasen['upload/unterordnerVon']='sottocartella di'; +$this->phrasen['upload/umEinenOrdnerOderEineDatei']='Per cancellare o modificare un file o cartella barrare prima la rispettiva casella.'; +$this->phrasen['upload/unterordnerVon']='Sottocartelle di '; $this->phrasen['upload/upload']='Upload'; $this->phrasen['upload/verzeichnisErstellen']='Genera un registro degli upload'; $this->phrasen['upload/verzeichnisname']='Nome cartella'; diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index ed0a1902a..830554753 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -20,6 +20,7 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > * Manfred Kindl < manfred.kindl@technikum-wien.at > + * Cristina Hainberger < hainberg@technikum-wien.at > */ /** * Reihungstest @@ -286,222 +287,257 @@ if(isset($_GET['excel'])) if($result = $db->db_query($qry)) { - $ort_kurzbz = '0'; - // Wenn Daten vorhanden - if ($db->db_num_rows($result) > 0) - { - while($row = $db->db_fetch_object($result)) - { - if ($ort_kurzbz == '0' || $ort_kurzbz != $row->ort_kurzbz) - { - // Creating a worksheet - if ($row->ort_kurzbz=='') - $worksheet =& $workbook->addWorksheet("Ohne Raumzuteilung"); - else - $worksheet =& $workbook->addWorksheet("Raum ".$row->ort_kurzbz); - $worksheet->setInputEncoding('utf-8'); - //$worksheet->setZoom (85); - $worksheet->hideScreenGridlines(); - $worksheet->hideGridlines(); - $worksheet->setLandscape(); - $worksheet->centerHorizontally(1); - $worksheet->fitToPages ( 1, 1); - $worksheet->setMargins_LR (0.4); - $worksheet->setMarginTop (0.79); - $worksheet->setMarginBottom (0.59); + $ort_kurzbz = '0'; + // Wenn Daten vorhanden + if ($db->db_num_rows($result) > 0) + { + while($row = $db->db_fetch_object($result)) + { + if ($ort_kurzbz == '0' || $ort_kurzbz != $row->ort_kurzbz) + { + // Creating a worksheet + if ($row->ort_kurzbz=='') + $worksheet =& $workbook->addWorksheet("Ohne Raumzuteilung"); + else + $worksheet =& $workbook->addWorksheet("Raum ".$row->ort_kurzbz); + $worksheet->setInputEncoding('utf-8'); + //$worksheet->setZoom (85); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); - // Titelzeilen - $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); - if ($row->ort_kurzbz=='') - $worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold); - else - $worksheet->write(1,0,'Raum '.$row->ort_kurzbz, $format_bold); - $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); - $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); - $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + if ($row->ort_kurzbz=='') + $worksheet->write(1,0,'Ohne Raumzuteilung', $format_bold); + else + $worksheet->write(1,0,'Raum '.$row->ort_kurzbz, $format_bold); + $worksheet->write(2,0,'Studienpläne: '.implode(', ', $studienplaene_arr)); + $worksheet->write(3,0,'Stufe: '.$reihungstest->stufe); + $worksheet->write(4,0,'Testmodule: '.implode(', ', $gebietbezeichnungen)); - //Ueberschriften - $zeile=6; - $col=0; - $worksheet->write($zeile,$col,"Nachname", $format_bold); - $maxlength[$col] = 8; - $worksheet->write($zeile,++$col,"Vorname", $format_bold); - $maxlength[$col] = 7; - $worksheet->write($zeile,++$col,"G", $format_bold); - $maxlength[$col] = 2; - $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); - $maxlength[$col] = 12; - $worksheet->write($zeile,++$col,"Studiengang", $format_bold); - $maxlength[$col] = 11; - $worksheet->write($zeile,++$col,"OrgForm", $format_bold); - $maxlength[$col] = 7; - $worksheet->write($zeile,++$col,"S", $format_bold); - $maxlength[$col] = 2; - $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); - $maxlength[$col] = 20; - $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); - $maxlength[$col] = 20; - $worksheet->write($zeile,++$col,"EMail", $format_bold); - $maxlength[$col] = 5; - $worksheet->write($zeile,++$col,"Strasse", $format_bold); - $maxlength[$col] = 6; - $worksheet->write($zeile,++$col,"PLZ", $format_bold); - $maxlength[$col] = 3; - $worksheet->write($zeile,++$col,"Ort", $format_bold); - $maxlength[$col] = 3; - $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); - $maxlength[$col] = 30; + //Ueberschriften + $zeile=6; + $col=0; + $worksheet->write($zeile,$col,"Nachname", $format_bold); + $maxlength[$col] = 8; + $worksheet->write($zeile,++$col,"Vorname", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"G", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Geburtsdatum", $format_bold); + $maxlength[$col] = 12; + $worksheet->write($zeile,++$col,"Studiengang", $format_bold); + $maxlength[$col] = 11; + $worksheet->write($zeile,++$col,"OrgForm", $format_bold); + $maxlength[$col] = 7; + $worksheet->write($zeile,++$col,"S", $format_bold); + $maxlength[$col] = 2; + $worksheet->write($zeile,++$col,"Bereits absolvierte RTs", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"Sonstige Termine", $format_bold); + $maxlength[$col] = 20; + $worksheet->write($zeile,++$col,"EMail", $format_bold); + $maxlength[$col] = 5; + $worksheet->write($zeile,++$col,"Strasse", $format_bold); + $maxlength[$col] = 6; + $worksheet->write($zeile,++$col,"PLZ", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Ort", $format_bold); + $maxlength[$col] = 3; + $worksheet->write($zeile,++$col,"Unterschrift", $format_bold); + $maxlength[$col] = 30; - $ort_kurzbz = $row->ort_kurzbz; - $zeile++; - } + $ort_kurzbz = $row->ort_kurzbz; + $zeile++; + } - $pruefling = new pruefling(); + $pruefling = new pruefling(); + $rt_in_anderen_stg=''; + $erg = ''; + $rt_prestudent_arr = array(); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); - $rt_in_anderen_stg=''; - $erg = ''; - //if($punkteberechnung == 'true') Punktebrechnung im Excel wird immer ausgefuehrt - { - foreach($prestudent->result as $item) - { - if($item->prestudent_id!=$row->prestudent_id) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); - if($erg!==false) - { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz]."; "; - } - } - } - } - $weitere_zuteilungen = array(); - $qry_zuteilungen = " - SELECT - DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id - FROM - public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) - JOIN lehre.tbl_studienplan USING (studienplan_id) - JOIN testtool.tbl_ablauf USING (studienplan_id) - WHERE - person_id=".$db->db_add_param($row->person_id)." - AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." - ORDER BY bezeichnung"; + //Daten ermitteln für Spalte absolvierte Verfahren + $qry_absolvierte_Verfahren = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); - if($result_zuteilungen = $db->db_query($qry_zuteilungen)) - { - while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) - { - $testmodule = array(); - $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; - if($result_gebiete = $db->db_query($qry_gebiete)) - { - while($row_gebiete = $db->db_fetch_object($result_gebiete)) - { - $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; - } - } - $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; - } - } + if($result_rt_prestudent = $db->db_query($qry_absolvierte_Verfahren)) + { + while($obj = $db->db_fetch_object($result_rt_prestudent)) + { + array_push($rt_prestudent_arr, $obj); + } + } - $col=0; + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); - $worksheet->write($zeile,$col,$row->nachname, $format_border); - if(strlen($row->nachname)>$maxlength[$col]) - $maxlength[$col] = strlen($row->nachname); + if($item->prestudent_id!=$row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); - $worksheet->write($zeile,++$col, $row->vorname, $format_border); - if(strlen($row->vorname)>$maxlength[$col]) - $maxlength[$col] = strlen($row->vorname); + if($erg!==false) + { + $rt_in_anderen_stg.=number_format($erg,2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz]."\n"; - $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); - if(strlen($row->geschlecht)>$maxlength[$col]) - $maxlength[$col] = strlen($row->geschlecht); + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').'), '; + } + } + } + } - $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); - if(strlen($row->gebdatum)>$maxlength[$col]) - $maxlength[$col] = strlen($row->gebdatum); + $weitere_zuteilungen = array(); + $qry_zuteilungen = " + SELECT + DISTINCT tbl_studienplan.bezeichnung, tbl_reihungstest.datum, tbl_rt_person.studienplan_id + FROM + public.tbl_rt_person JOIN public.tbl_reihungstest ON (rt_id = reihungstest_id) + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN testtool.tbl_ablauf USING (studienplan_id) + WHERE + person_id=".$db->db_add_param($row->person_id)." + AND studiensemester_kurzbz=".$db->db_add_param($reihungstest->studiensemester_kurzbz)." + ORDER BY bezeichnung"; - $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); - if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) - $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); + if($result_zuteilungen = $db->db_query($qry_zuteilungen)) + { + while($row_zuteilungen = $db->db_fetch_object($result_zuteilungen)) + { + $testmodule = array(); + $qry_gebiete = "SELECT gebiet_id, bezeichnung, reihung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row_zuteilungen->studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) + { + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $testmodule[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } + } + $weitere_zuteilungen[] = $row_zuteilungen->bezeichnung.' am '.$datum_obj->formatDatum($row_zuteilungen->datum, 'd.m.Y').' ('.implode(', ', $testmodule).')'; + } + } - $worksheet->write($zeile,++$col,$row->orgform_kurzbz, $format_border); - if(strlen($row->orgform_kurzbz)>$maxlength[$col]) - $maxlength[$col] = strlen($row->orgform_kurzbz); + $col=0; - $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); - if(strlen($row->ausbildungssemester)>$maxlength[$col]) - $maxlength[$col] = strlen($row->ausbildungssemester); + $worksheet->write($zeile,$col,$row->nachname, $format_border); + if(strlen($row->nachname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->nachname); - $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); - if(strlen($rt_in_anderen_stg)>$maxlength[$col]) - $maxlength[$col] = strlen($rt_in_anderen_stg); + $worksheet->write($zeile,++$col, $row->vorname, $format_border); + if(strlen($row->vorname)>$maxlength[$col]) + $maxlength[$col] = strlen($row->vorname); - $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); - foreach ($weitere_zuteilungen as $items) - { - if (strlen($items)>$maxlength[$col]) - $maxlength[$col] = strlen($items); - } + $worksheet->write($zeile,++$col, $row->geschlecht, $format_border_center); + if(strlen($row->geschlecht)>$maxlength[$col]) + $maxlength[$col] = strlen($row->geschlecht); - $worksheet->write($zeile,++$col,$row->email, $format_border); - if(strlen($row->email)>$maxlength[$col]) - $maxlength[$col] = strlen($row->email); + $worksheet->write($zeile,++$col,$datum_obj->convertISODate($row->gebdatum), $format_border); + if(strlen($row->gebdatum)>$maxlength[$col]) + $maxlength[$col] = strlen($row->gebdatum); - $adresse = new adresse(); - $adresse->loadZustellAdresse($row->person_id); + $worksheet->write($zeile,++$col,$studiengang->kuerzel_arr[$row->studiengang_kz], $format_border); + if(strlen($studiengang->kuerzel_arr[$row->studiengang_kz])>$maxlength[$col]) + $maxlength[$col] = strlen($studiengang->kuerzel_arr[$row->studiengang_kz]); - $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); - if(strlen($adresse->strasse)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->strasse); + $worksheet->write($zeile,++$col,$row->orgform_kurzbz, $format_border); + if(strlen($row->orgform_kurzbz)>$maxlength[$col]) + $maxlength[$col] = strlen($row->orgform_kurzbz); - $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); - if(strlen($adresse->plz)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->plz); + $worksheet->write($zeile,++$col,$row->ausbildungssemester, $format_border_center); + if(strlen($row->ausbildungssemester)>$maxlength[$col]) + $maxlength[$col] = strlen($row->ausbildungssemester); - $worksheet->write($zeile,++$col,$adresse->ort, $format_border); - if(strlen($adresse->ort)>$maxlength[$col]) - $maxlength[$col] = strlen($adresse->ort); + $worksheet->write($zeile,++$col,$rt_in_anderen_stg, $format_border); + if(strlen($rt_in_anderen_stg)>$maxlength[$col]) + $maxlength[$col] = strlen($rt_in_anderen_stg); - $worksheet->write($zeile,++$col,'', $format_border); + $worksheet->write($zeile,++$col,implode("\n", $weitere_zuteilungen), $format_border); + foreach ($weitere_zuteilungen as $items) + { + if (strlen($items)>$maxlength[$col]) + $maxlength[$col] = strlen($items); + } - if(count($weitere_zuteilungen)>2) - $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); - else - $worksheet->setRow($zeile, 35); + $worksheet->write($zeile,++$col,$row->email, $format_border); + if(strlen($row->email)>$maxlength[$col]) + $maxlength[$col] = strlen($row->email); - $zeile++; + $adresse = new adresse(); + $adresse->loadZustellAdresse($row->person_id); - //Die Breite der Spalten setzen - foreach($maxlength as $col=>$breite) - $worksheet->setColumn($col, $col, $breite+2); - } - } - else - { - // Creating a worksheet - $worksheet =& $workbook->addWorksheet("Keine Daten"); - $worksheet->setInputEncoding('utf-8'); - $worksheet->hideScreenGridlines(); - $worksheet->hideGridlines(); - $worksheet->setLandscape(); - $worksheet->centerHorizontally(1); - $worksheet->fitToPages ( 1, 1); - $worksheet->setMargins_LR (0.4); - $worksheet->setMarginTop (0.79); - $worksheet->setMarginBottom (0.59); + $worksheet->write($zeile,++$col,$adresse->strasse, $format_border); + if(strlen($adresse->strasse)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->strasse); - // Titelzeilen - $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + $worksheet->write($zeile,++$col,$adresse->plz, $format_border_left); + if(strlen($adresse->plz)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->plz); - $worksheet->write(3,0,'Keine BewerberInnen zugeteilt', $format_bold); - } + $worksheet->write($zeile,++$col,$adresse->ort, $format_border); + if(strlen($adresse->ort)>$maxlength[$col]) + $maxlength[$col] = strlen($adresse->ort); + + $worksheet->write($zeile,++$col,'', $format_border); + + if(count($weitere_zuteilungen)>2) + $worksheet->setRow($zeile, count($weitere_zuteilungen)*14); + else + $worksheet->setRow($zeile, 35); + + $zeile++; + + //Die Breite der Spalten setzen + foreach($maxlength as $col=>$breite) + $worksheet->setColumn($col, $col, $breite+2); + } + } + else + { + // Creating a worksheet + $worksheet =& $workbook->addWorksheet("Keine Daten"); + $worksheet->setInputEncoding('utf-8'); + $worksheet->hideScreenGridlines(); + $worksheet->hideGridlines(); + $worksheet->setLandscape(); + $worksheet->centerHorizontally(1); + $worksheet->fitToPages ( 1, 1); + $worksheet->setMargins_LR (0.4); + $worksheet->setMarginTop (0.79); + $worksheet->setMarginBottom (0.59); + + // Titelzeilen + $worksheet->write(0,0,'Anwesenheitsliste Aufnahmetermin vom '.$datum_obj->convertISODate($reihungstest->datum).' '.$reihungstest->uhrzeit.' Uhr, '.$reihungstest->anmerkung.', erstellt am '.date('d.m.Y'), $format_bold); + + $worksheet->write(3,0,'Keine BewerberInnen zugeteilt', $format_bold); + } } $workbook->close(); } @@ -517,19 +553,17 @@ if(isset($_GET['excel'])) Reihungstest - - - - - - + + + + + + + - - - - + @@ -1731,7 +1765,7 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); } else { - echo 'Studienpläne'; + echo 'Studienpläne'; if(!$neu) { @@ -1853,12 +1887,6 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr)); (Kurz vor Testbeginn aktivieren) -   @@ -2012,16 +2040,18 @@ if($reihungstest_id!='') echo '
Ergebnis
'; echo '
FAS
'; echo ''; + echo ''; echo '
'; - echo ''; $pruefling = new pruefling(); $cnt = 0; + + //TABLE OHNE RAUMZUTEILUNG if ($orte_zuteilung_array['ohne']>0) { - echo ''; + foreach ($result_arr AS $row) { - $rt_in_anderen_stg=''; - $rtergebnis = ''; - if($punkteberechnung == 'true') - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); - else - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); - $rt_in_anderen_stg=''; - foreach($prestudent->result as $item) - { - if($item->prestudent_id!=$row->prestudent_id) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); - if($erg!==false) - { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; - } - } - } - } - if ($row->ort_kurzbz == '') - { - if(isset($studienplaene_arr[$row->studienplan_id])) - $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; - else - { - $studienplan_obj = new studienplan(); - $studienplan_obj->loadStudienplan($row->studienplan_id); - $studienplan_bezeichnung = $studienplan_obj->bezeichnung; - $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; - } - echo ' - - - - - - - - - - - - - - - - - '; + $rt_in_anderen_stg=''; + $rtergebnis = ''; + $rt_prestudent_arr = array(); - $mailto.= ($mailto!=''?',':'').$row->email; - } + if($punkteberechnung == 'true') + { + //Daten für Spalte bereits absolvierte Verfahren + $qry = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + while($obj = $db->db_fetch_object($result)) + { + array_push($rt_prestudent_arr, $obj); + } + } + + //Ergebnis ermitteln + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, true, $reihungstest->reihungstest_id); + else + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, false, $reihungstest->reihungstest_id); + + + //Ausgabe für bereits absolvierte Verfahren + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + + //Wenn bereits absolvierte Verfahren vorhanden + if($item->prestudent_id != $row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + + if($erg !== false) + { + $rt_in_anderen_stg .= number_format($erg, 2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'
'; + + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').',
'; + $rt_in_anderen_stg .= 'absolvierte RT-Gebiete entsperren)
'; + } + } + } + } + } + + if ($row->ort_kurzbz == '') + { + if(isset($studienplaene_arr[$row->studienplan_id])) + $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; + else + { + $studienplan_obj = new studienplan(); + $studienplan_obj->loadStudienplan($row->studienplan_id); + $studienplan_bezeichnung = $studienplan_obj->bezeichnung; + $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; + } + echo ' + + + + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } } echo '
'; + echo '
'; echo '
Ohne Raumzuteilung ('.$orte_zuteilung_array['ohne'].')
'; echo ''; @@ -2053,80 +2083,124 @@ if($reihungstest_id!='')
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis == '' || $rtergebnis===false?'-':number_format($rtergebnis,2,'.','')).''; - if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') - echo 'übertragen'; - else - { - if($row->punkte!='') - echo number_format($row->punkte,2,'.',''); - } - echo '
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis == '' || $rtergebnis===false?'-':number_format($rtergebnis,2,'.','')).' %'; + if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') + echo 'übertragen'; + else + { + if($row->punkte!='') + echo number_format($row->punkte,2,'.',''); + } + echo '
'; echo ''; echo ''; + echo ''; - echo ''; - } - foreach ($orte->result AS $ort) - { - $cnt++; + echo ''; - echo ''; - if ($orte_array[$ort->ort_kurzbz] - $orte_zuteilung_array[$ort->ort_kurzbz] < 0) - $style = 'text-align: center; margin: 0 5px 0 5px; color: red'; - else - $style = 'text-align: center; margin: 0 5px 0 5px;'; - echo '
'.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
'; - - if ($orte_zuteilung_array[$ort->ort_kurzbz]>0) - { - echo '
'; - echo ''; - echo ' - - - - - - - - - - - - - - - - - - - - '; - $cnt_personen = 0; - foreach ($result_arr AS $row) - { - $rt_in_anderen_stg=''; - $rtergebnis = ''; - if($punkteberechnung == 'true') - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id,true, $reihungstest->reihungstest_id); - else - $rtergebnis = $pruefling->getReihungstestErgebnisPerson($row->person_id, false, $reihungstest->reihungstest_id); - $prestudent = new prestudent(); - $prestudent->getPrestudenten($row->person_id); - $rt_in_anderen_stg=''; - foreach($prestudent->result as $item) - { - if($item->prestudent_id!=$row->prestudent_id) - { - if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true); - else - $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id); - if($erg!==false) - { - $rt_in_anderen_stg.=number_format($erg,2).' Punkte im Studiengang '.$studiengang->kuerzel_arr[$item->studiengang_kz].'
'; - } - } - } - } - if ($row->ort_kurzbz == $ort->ort_kurzbz) - { - - if(isset($studienplaene_arr[$row->studienplan_id])) - $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; - else - { - $studienplan_obj = new studienplan(); - $studienplan_obj->loadStudienplan($row->studienplan_id); - $studienplan_bezeichnung = $studienplan_obj->bezeichnung; - $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; - } - - $cnt_personen++; - echo ' - - - - - - - - - - - - - - - - - '; - - $mailto.= ($mailto!=''?',':'').$row->email; - } - } - echo '
- - - - - Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).''.($rtergebnis!=0 && $row->punkte==''?'übertragen':$row->punkte).'
'; - - echo ''; - echo ''; - echo '
'; - } - else - echo '
Leer
'; - - echo ''; + echo '
'; } - echo ''; + foreach ($orte->result AS $ort) + { + $cnt++; + if ($orte_array[$ort->ort_kurzbz] - $orte_zuteilung_array[$ort->ort_kurzbz] < 0) + $style = 'text-align: center; margin: 0 5px 0 5px; color: red'; + else + $style = 'text-align: center; margin: 0 5px 0 5px;'; + + //TABLE MIT RAUMZUTEILUNG + if ($orte_zuteilung_array[$ort->ort_kurzbz] > 0) + { + echo '
'; + echo '
Mit Raumzuteilung in '.$ort->ort_kurzbz.' ('.$orte_zuteilung_array[$ort->ort_kurzbz].'/'.$orte_array[$ort->ort_kurzbz].')
'; + echo '
'; + echo ''; + echo ' + + + + + + + + + + + + + + + + + + + + '; + + $cnt_personen = 0; + + foreach ($result_arr AS $row) + { + $rt_in_anderen_stg=''; + $rtergebnis = ''; + $rt_prestudent_arr = array(); + + if($punkteberechnung == 'true') + { + //Daten für Spalte bereits absolvierte Verfahren + $qry = "SELECT + distinct tbl_reihungstest.reihungstest_id, + tbl_pruefling.pruefling_id, + tbl_prestudent.prestudent_id, + tbl_rt_person.person_id + FROM + public.tbl_rt_person + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_prestudent USING(person_id) + JOIN public.tbl_prestudentstatus USING(studienplan_id, prestudent_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + LEFT JOIN testtool.tbl_pruefling using(prestudent_id) WHERE + (tbl_rt_person.anmeldedatum is null OR tbl_rt_person.anmeldedatum<=tbl_reihungstest.datum) + AND tbl_reihungstest.datum >=(SELECT min(begintime)::date FROM testtool.tbl_pruefling_frage WHERE pruefling_id=tbl_pruefling.pruefling_id AND tbl_reihungstest.datum>=begintime-'1 days'::interval) AND (tbl_reihungstest.stufe is null or tbl_reihungstest.stufe=1) + AND person_id=".$db->db_add_param($row->person_id, FHC_INTEGER); + + if($result = $db->db_query($qry)) + { + while($obj = $db->db_fetch_object($result)) + { + array_push($rt_prestudent_arr, $obj); + } + } + + //Ergebnis ermitteln + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, true, $reihungstest->reihungstest_id); + else + $rtergebnis = $pruefling->getReihungstestErgebnisPrestudent($row->prestudent_id, false, $reihungstest->reihungstest_id); + + //Ausgabe für bereits absolvierte Verfahren + foreach($rt_prestudent_arr as $item) + { + $pruefling->getPruefling($item->prestudent_id); + $rt = new Reihungstest(); + $rt->load($item->reihungstest_id); + $rt_letztes_login = $datum_obj->formatDatum($pruefling->registriert, 'Y-m-d'); + $rt_antrittstermin = $datum_obj->formatDatum($rt->datum, 'Y-m-d'); + + //Wenn bereits absolvierte Verfahren vorhanden + if($item->prestudent_id != $row->prestudent_id || $rt_letztes_login < $rt_antrittstermin) + { + if(defined('FAS_REIHUNGSTEST_PUNKTE') && FAS_REIHUNGSTEST_PUNKTE) + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, true, $item->reihungstest_id); + else + $erg = $pruefling->getReihungstestErgebnisPrestudent($item->prestudent_id, false, $item->reihungstest_id); + + if($erg!==false) + { + $rt_in_anderen_stg .= number_format($erg, 2).((FAS_REIHUNGSTEST_PUNKTE) ? ' Punkte' : ' %').' im Studiengang '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'
'; + + if ($item->prestudent_id == $row->prestudent_id && $rt_letztes_login < $rt_antrittstermin) + { + $rt_in_anderen_stg .= '(Letzter '.$studiengang->kuerzel_arr[$pruefling->studiengang_kz].'-Antritt: '.$datum_obj->formatDatum($rt_letztes_login, 'd.m.Y').',
'; + $rt_in_anderen_stg .= 'absolvierte RT-Gebiete entsperren)
'; + } + } + } + } + } + if ($row->ort_kurzbz == $ort->ort_kurzbz) + { + if(isset($studienplaene_arr[$row->studienplan_id])) + $studienplan_bezeichnung = $studienplaene_arr[$row->studienplan_id]; + else + { + $studienplan_obj = new studienplan(); + $studienplan_obj->loadStudienplan($row->studienplan_id); + $studienplan_bezeichnung = $studienplan_obj->bezeichnung; + $studienplaene_arr[$row->studienplan_id]=$studienplan_obj->bezeichnung; + } + + $cnt_personen++; + echo ' + + + + + + + + + + + + + + + + + '; + + $mailto.= ($mailto!=''?',':'').$row->email; + } + } + echo '
+ + + + + Prestudent IDPerson IDNachnameVornameGeschlechtStudiengangOrgFormStudienplanEinstiegssemesterGeburtsdatumEMailbereits absolvierte VerfahrenErgebnisFAS
'.$db->convert_html_chars($row->prestudent_id).''.$db->convert_html_chars($row->person_id).''.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->geschlecht).''.$db->convert_html_chars($stg_arr[$row->studiengang_kz]).''.$db->convert_html_chars($row->orgform_kurzbz!=''?$row->orgform_kurzbz:' ').''.$db->convert_html_chars($studienplan_bezeichnung).' ('.$row->studienplan_id.')'.$db->convert_html_chars($row->ausbildungssemester).''.$db->convert_html_chars($row->gebdatum!=''?$datum_obj->convertISODate($row->gebdatum):' ').''.$rt_in_anderen_stg.''.($rtergebnis==0?'-':number_format($rtergebnis,2,'.','')).' %'; + if($rtergebnis!==false && $rtergebnis != '' && $row->punkte=='') + echo 'übertragen'; + else + { + if($row->punkte!='') + echo number_format($row->punkte,2,'.',''); + } + echo '
'; + + echo ''; + echo ''; + + echo '
'; + echo '
'; + } + } } ?>