mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
@@ -58,7 +58,7 @@ $autoload['packages'] = array();
|
||||
|
|
||||
| $autoload['libraries'] = array('user_agent' => 'ua');
|
||||
*/
|
||||
$autoload['libraries'] = array('Session', 'FHC_Auth');
|
||||
$autoload['libraries'] = array('Session', 'AuthLib');
|
||||
|
||||
/*
|
||||
| -------------------------------------------------------------------
|
||||
|
||||
@@ -143,7 +143,7 @@ $config['auth_source'] = 'library';
|
||||
| password for that username, even if it is hashed
|
||||
|
|
||||
*/
|
||||
$config['auth_library_class'] = 'FHC_Auth';
|
||||
$config['auth_library_class'] = 'AuthLib';
|
||||
|
||||
// rest_auth is basic
|
||||
$config['auth_library_function'] = 'basicAuthentication';
|
||||
|
||||
@@ -22,18 +22,23 @@ class CheckUserAuth extends APIv1_Controller
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->model('CheckUserAuth_model', 'CheckUserAuthModel');
|
||||
|
||||
// Loads the authentication library
|
||||
$this->load->library('AuthLib');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if username and password of a final user are valid
|
||||
*/
|
||||
public function getCheckByUsernamePassword()
|
||||
{
|
||||
$username = $this->get("username");
|
||||
$password = $this->get("password");
|
||||
|
||||
$username = $this->get('username');
|
||||
$password = $this->get('password');
|
||||
|
||||
if (isset($username) && isset($password))
|
||||
{
|
||||
$result = $this->CheckUserAuthModel->checkByUsernamePassword($username, $password);
|
||||
|
||||
$result = $this->authlib->CheckUserAuthByUsernamePassword($username, $password);
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -41,4 +46,45 @@ class CheckUserAuth extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if username and password of a final user are valid
|
||||
* Returns all the keys with which is possible to obtain all the personal data about a final user
|
||||
*/
|
||||
public function getCheckUserAuth()
|
||||
{
|
||||
$code = $this->get('code');
|
||||
$email = $this->get('email');
|
||||
$username = $this->get('username');
|
||||
$password = $this->get('password');
|
||||
|
||||
$result = null;
|
||||
$httpCode = null;
|
||||
|
||||
// If username and password are given then check authentication using them
|
||||
if (isset($username) && isset($password))
|
||||
{
|
||||
$result = $this->authlib->CheckUserAuthByUsernamePassword($username, $password, true);
|
||||
}
|
||||
elseif (isset($code) || isset($email))
|
||||
{
|
||||
// If code and email are given then check authentication using them
|
||||
if (isset($code) && isset($email))
|
||||
{
|
||||
$result = $this->authlib->CheckUserAuthByCodeEmail($code, $email);
|
||||
}
|
||||
else // otherwise check authentication using only code
|
||||
{
|
||||
$result = $this->authlib->CheckUserAuthByCode($code);
|
||||
}
|
||||
}
|
||||
|
||||
// If is a success and contains data
|
||||
if (hasData($result))
|
||||
{
|
||||
$httpCode = REST_Controller::HTTP_OK;
|
||||
}
|
||||
|
||||
$this->response($result, $httpCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,190 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-Helper
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016 fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link https://fhcomplete.org
|
||||
* @since Version 1.0.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* FHC-Auth Helpers
|
||||
*
|
||||
* @package FH-Complete
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author FHC-Team
|
||||
* @link http://fhcomplete.org/user_guide/helpers/fhcauth_helper.html
|
||||
*/
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once FHCPATH.'include/authentication.class.php';
|
||||
|
||||
class AuthLib extends authentication
|
||||
{
|
||||
/**
|
||||
* Construct
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Gets CI instance
|
||||
$this->ci =& get_instance();
|
||||
|
||||
// Loads helper message to manage returning messages
|
||||
$this->ci->load->helper('Message');
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the authentication of an addon
|
||||
* returns TRUE if valid, otherwise FALSE
|
||||
*/
|
||||
public function basicAuthentication($username, $password)
|
||||
{
|
||||
return $this->checkpassword($username, $password);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given username and password of a final user are valid
|
||||
*/
|
||||
public function CheckUserAuthByUsernamePassword($username, $password, $keys = false)
|
||||
{
|
||||
$result = error(false);
|
||||
|
||||
if (isset($username) && isset($password))
|
||||
{
|
||||
if ($this->checkpassword($username, $password) === true)
|
||||
{
|
||||
if ($keys === true)
|
||||
{
|
||||
$result = $this->_getFinalUserBasicDataByUID($username);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = success(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given code of a final user is valid
|
||||
*/
|
||||
public function CheckUserAuthByCode($code)
|
||||
{
|
||||
$result = error(false);
|
||||
|
||||
// Load model PersonModel
|
||||
$this->ci->load->model('person/person_model', 'PersonModel');
|
||||
|
||||
$person = $this->ci->PersonModel->loadWhere(array('zugangscode' => $code));
|
||||
|
||||
if (hasData($person))
|
||||
{
|
||||
$result = $this->_getFinalUserBasicDataByPersonID($person->retval[0]->person_id);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given code and email of a final user are valid
|
||||
*/
|
||||
public function CheckUserAuthByCodeEmail($code, $email)
|
||||
{
|
||||
$result = error(false);
|
||||
|
||||
// Load model PersonModel
|
||||
$this->ci->load->model('person/person_model', 'PersonModel');
|
||||
|
||||
$person = $this->ci->PersonModel->getPersonKontaktByZugangscode($code, $email);
|
||||
|
||||
if (hasData($person))
|
||||
{
|
||||
$result = $this->_getFinalUserBasicDataByPersonID($person->retval[0]->person_id);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all the keys with which is possible to obtain personal data about a final user
|
||||
* using the given username (uid)
|
||||
*/
|
||||
private function _getFinalUserBasicDataByUID($uid)
|
||||
{
|
||||
$finalUserBasicDataByUID = null;
|
||||
|
||||
// Load model BenutzerModel
|
||||
$this->ci->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
|
||||
$benutzer = $this->ci->BenutzerModel->load($uid);
|
||||
|
||||
if (hasData($benutzer))
|
||||
{
|
||||
$finalUserBasicDataByUID = $this->_getFinalUserBasicDataByPersonID($benutzer->retval[0]->person_id, $uid);
|
||||
}
|
||||
|
||||
return $finalUserBasicDataByUID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all the keys with which is possible to obtain personal data about a final user
|
||||
* using the given person_id. The uid is optional
|
||||
*/
|
||||
private function _getFinalUserBasicDataByPersonID($person_id, $uid = null)
|
||||
{
|
||||
$finalUserBasicDataByPersonID = new stdClass(); // returned object
|
||||
|
||||
// Store the person_id and eventually all the uids and prestudent_ids related to this final user
|
||||
$finalUserBasicDataByPersonID->person_id = $person_id;
|
||||
$finalUserBasicDataByPersonID->uids = array();
|
||||
$finalUserBasicDataByPersonID->prestudent_ids = array();
|
||||
|
||||
// If the UID has not been given as a parameter
|
||||
if ($uid != null)
|
||||
{
|
||||
$finalUserBasicDataByPersonID->uid[0] = $uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Load model BenutzerModel
|
||||
$this->ci->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
|
||||
// Loads all the benutzer whith that person_id
|
||||
$benutzer = $this->ci->BenutzerModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if (hasData($benutzer)) // store all the uids
|
||||
{
|
||||
foreach ($benutzer->retval as $rownum => $rowdata)
|
||||
{
|
||||
$finalUserBasicDataByPersonID->uids[$rownum] = $rowdata->uid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Load model PrestudentModel
|
||||
$this->ci->load->model('crm/Prestudent_model', 'PrestudentModel');
|
||||
|
||||
// Loads all the prestudent whith that person_id
|
||||
$prestudent = $this->ci->PrestudentModel->loadWhere(array('person_id' => $person_id));
|
||||
|
||||
if (hasData($prestudent)) // store all the prestudent_ids
|
||||
{
|
||||
foreach ($prestudent->retval as $rownum => $rowdata)
|
||||
{
|
||||
$finalUserBasicDataByPersonID->prestudent_ids[$rownum] = $rowdata->prestudent_id;
|
||||
}
|
||||
}
|
||||
|
||||
return success($finalUserBasicDataByPersonID);
|
||||
}
|
||||
}
|
||||
@@ -1,69 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-Helper
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016 fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link https://fhcomplete.org
|
||||
* @since Version 1.0.0
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* FHC-Auth Helpers
|
||||
*
|
||||
* @package FH-Complete
|
||||
* @subpackage Helpers
|
||||
* @category Helpers
|
||||
* @author FHC-Team
|
||||
* @link http://fhcomplete.org/user_guide/helpers/fhcauth_helper.html
|
||||
*/
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
require_once FHCPATH.'include/authentication.class.php';
|
||||
require_once FHCPATH.'include/AddonAuthentication.php';
|
||||
|
||||
class FHC_Auth extends authentication
|
||||
{
|
||||
/**
|
||||
* Construct
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Auth Username, Password over FH-Complete
|
||||
*/
|
||||
public function basicAuthentication($username, $password)
|
||||
{
|
||||
if ($this->checkpassword($username, $password))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* TO BE UPDATED
|
||||
*
|
||||
* Get the md5 hashed password by the addon username
|
||||
*
|
||||
* @param string $username addon username
|
||||
* @return string md5 hashed string
|
||||
*/
|
||||
public function digestAuthentication($username)
|
||||
{
|
||||
$aam = new AddonAuthentication();
|
||||
|
||||
return md5($aam->getPasswordByUsername($username));
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
<?php
|
||||
|
||||
class CheckUserAuth_model extends FHC_Model
|
||||
{
|
||||
/**
|
||||
* Construct
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->load->library('fhc_auth');
|
||||
}
|
||||
|
||||
public function checkByUsernamePassword($username, $password)
|
||||
{
|
||||
return success($this->fhc_auth->checkpassword($username, $password));
|
||||
}
|
||||
}
|
||||
@@ -139,7 +139,7 @@ echo ']>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="aufnahmetermine-tree-anmeldedatum" label="Anmeldedatum" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#anmeldedatum"/>
|
||||
sort="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#anmeldedatum_iso"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="aufnahmetermine-tree-ort" label="Ort" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
@@ -181,6 +181,14 @@ echo ']>
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#studienplan_studiengang" />
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="aufnahmetermine-tree-datum_iso" label="DatumISO" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#datum_iso"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="aufnahmetermine-tree-anmeldedatum_iso" label="AnmeldedatumISO" flex="2" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#anmeldedatum_iso"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -202,6 +210,8 @@ echo ']>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#studienplan_bezeichnung"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#studienplan_id"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#studienplan_studiengang"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#datum_iso"/>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/aufnahmetermine/rdf#anmeldedatum_iso"/>
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -383,6 +383,9 @@ else
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/student/rdf#aktiv" onclick="StudentTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-treecol-geburtsdatum_iso" label="GeburtsdatumISO" flex="1" hidden="false" persist="hidden, width, ordinal"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/student/rdf#geburtsdatum_iso" onclick="StudentTreeSort()"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -433,6 +436,7 @@ else
|
||||
<treecell label="rdf:http://www.technikum-wien.at/student/rdf#studienplan_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/student/rdf#mentor" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/student/rdf#aktiv" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/student/rdf#geburtsdatum_iso" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
@@ -484,7 +488,7 @@ else
|
||||
if(!defined('FAS_MESSAGES') || FAS_MESSAGES==true)
|
||||
echo '<tab id="student-tab-messages" label="Messages" onclick="StudentMessagesIFrameLoad();"/>';
|
||||
?>
|
||||
|
||||
|
||||
<?php
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<tab id="student-tab-udf" label="Zusatzfelder" onclick="StudentUDFIFrameLoad();"/>';
|
||||
@@ -523,11 +527,11 @@ else
|
||||
<?php
|
||||
if(!defined('FAS_MESSAGES') || FAS_MESSAGES==true)
|
||||
echo '<iframe id="student-messages" style="margin: 0px;" src="" />';
|
||||
|
||||
|
||||
if (!defined('FAS_UDF') || FAS_UDF == true)
|
||||
echo '<iframe id="student-udf" style="margin: 0px;" src="" />';
|
||||
?>
|
||||
|
||||
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
<?php
|
||||
|
||||
// TO BE UPDATED
|
||||
|
||||
/*
|
||||
* This class requires only DB functionalities from CI
|
||||
* CI_Hack couldn't be included here because this class is called every time an addon
|
||||
* makes an API call, so it would raise a lot of "already declared" errors
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../vendor/codeigniter/framework/system/core/Model.php');
|
||||
require_once(dirname(__FILE__).'/../application/core/FHC_Model.php');
|
||||
require_once(dirname(__FILE__).'/../application/core/DB_Model.php');
|
||||
|
||||
/**
|
||||
* This class is used to authenticate the addons on the core system
|
||||
*/
|
||||
class AddonAuthentication extends DB_Model
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
* It retrieves the password with the given username from ci_addons table
|
||||
* CREATE TABLE ci_addons (
|
||||
* username varchar(10),
|
||||
* password varchar(40),
|
||||
* enabled integer,
|
||||
* CONSTRAINT ci_addons_pk UNIQUE(username));
|
||||
*/
|
||||
public function getPasswordByUsername($username)
|
||||
{
|
||||
$password = NULL;
|
||||
$sql = "SELECT password FROM public.ci_addons WHERE enabled = 1 AND username = ?";
|
||||
|
||||
$result = $this->db->query($sql, array($username));
|
||||
|
||||
if(!is_null($result) && $result->num_rows() > 0)
|
||||
{
|
||||
$password = $result->row()->password;
|
||||
}
|
||||
|
||||
return $password;
|
||||
}
|
||||
}
|
||||
@@ -406,7 +406,8 @@ class basis_db extends db
|
||||
|
||||
foreach ($matches as $mk => $match)
|
||||
{
|
||||
$values[$languages[$mk+1]] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
|
||||
if(isset($languages[$mk+1]))
|
||||
$values[$languages[$mk+1]] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
|
||||
}
|
||||
return $values;
|
||||
}
|
||||
|
||||
+40
-10
@@ -138,7 +138,7 @@ $rdf_url='http://www.technikum-wien.at/lehrstunde';
|
||||
|
||||
<?php
|
||||
$db = new basis_db();
|
||||
function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz)
|
||||
function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz, $studiensemester_kurzbz, $lehreinheit_id, $mitschwund)
|
||||
{
|
||||
global $db;
|
||||
|
||||
@@ -147,20 +147,49 @@ function getAnzahl($studiengang_kz, $semester, $verband, $gruppe, $gruppe_kurzbz
|
||||
if($gruppe_kurzbz=='')
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_studentlehrverband
|
||||
WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
|
||||
AND studiengang_kz='".addslashes($studiengang_kz)."' AND
|
||||
semester='".addslashes($semester)."'";
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
|
||||
AND studiengang_kz=".$db->db_add_param($studiengang_kz)." AND
|
||||
semester=".$db->db_add_param($semester);
|
||||
if(trim($verband)!='')
|
||||
$qry.=" AND trim(verband)=trim('".addslashes($verband)."')";
|
||||
$qry.=" AND trim(verband)=trim(".$db->db_add_param($verband).")";
|
||||
if(trim($gruppe)!='')
|
||||
$qry.=" AND trim(gruppe)=trim('".addslashes($gruppe)."')";
|
||||
$qry.=" AND trim(gruppe)=trim(".$db->db_add_param($gruppe).")";
|
||||
|
||||
if($mitschwund)
|
||||
{
|
||||
// Studierende mit Anrechnungen herausnehmen
|
||||
$qry.=" AND NOT EXISTS(
|
||||
SELECT 1 FROM lehre.tbl_zeugnisnote
|
||||
WHERE student_uid=tbl_studentlehrverband.student_uid
|
||||
AND lehrveranstaltung_id=(SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER).")
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
|
||||
AND note=6)";
|
||||
// Abbrecher und Unterbrecher herausnehmen
|
||||
$qry.=" AND get_rolle_prestudent((SELECT prestudent_id FROM public.tbl_student
|
||||
WHERE student_uid=tbl_studentlehrverband.student_uid),null) NOT IN('Abbrecher','Unterbrecher') ";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_benutzergruppe
|
||||
WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
|
||||
AND gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'";
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
|
||||
AND gruppe_kurzbz=".$db->db_add_param($gruppe_kurzbz);
|
||||
|
||||
if($mitschwund)
|
||||
{
|
||||
// Studierende mit Anrechnungen herausnehmen
|
||||
$qry.=" AND NOT EXISTS(
|
||||
SELECT 1 FROM lehre.tbl_zeugnisnote
|
||||
WHERE student_uid=tbl_benutzergruppe.uid
|
||||
AND lehrveranstaltung_id=(SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER).")
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)."
|
||||
AND note=6)";
|
||||
// Abbrecher und Unterbrecher herausnehmen
|
||||
$qry.=" AND get_rolle_prestudent((SELECT prestudent_id FROM public.tbl_student
|
||||
WHERE student_uid=tbl_benutzergruppe.uid),null) NOT IN('Abbrecher','Unterbrecher') ";
|
||||
}
|
||||
}
|
||||
|
||||
if($res_anz = $db->db_query($qry))
|
||||
@@ -180,7 +209,8 @@ if (is_array($lehrstunden->lehrstunden))
|
||||
{
|
||||
//Anzahl der Studenten in der Gruppe ermitteln
|
||||
$stsem = getStudiensemesterFromDatum($ls->datum);
|
||||
$anzahl = getAnzahl($ls->studiengang_kz, $ls->sem, $ls->ver, $ls->grp, $ls->gruppe_kurzbz, $stsem);
|
||||
$anzahl = getAnzahl($ls->studiengang_kz, $ls->sem, $ls->ver, $ls->grp, $ls->gruppe_kurzbz, $stsem, $ls->lehreinheit_id, false);
|
||||
$anzahl_mitschwund = getAnzahl($ls->studiengang_kz, $ls->sem, $ls->ver, $ls->grp, $ls->gruppe_kurzbz, $stsem, $ls->lehreinheit_id, true);
|
||||
$gruppenbezeichnung = '';
|
||||
$gruppenbeschreibung = '';
|
||||
|
||||
@@ -225,7 +255,7 @@ if (is_array($lehrstunden->lehrstunden))
|
||||
<LEHRSTUNDE:anmerkung><![CDATA[<?php echo $ls->anmerkung; ?>]]></LEHRSTUNDE:anmerkung>
|
||||
<LEHRSTUNDE:anmerkung_lehreinheit><![CDATA[<?php echo $ls->anmerkung_lehreinheit; ?>]]></LEHRSTUNDE:anmerkung_lehreinheit>
|
||||
<LEHRSTUNDE:titel><![CDATA[<?php echo $ls->titel; ?>]]></LEHRSTUNDE:titel>
|
||||
<LEHRSTUNDE:anzahlstudenten><![CDATA[<?php echo $anzahl; ?>]]></LEHRSTUNDE:anzahlstudenten>
|
||||
<LEHRSTUNDE:anzahlstudenten><![CDATA[<?php echo $anzahl_mitschwund.' ('.$anzahl.')'; ?>]]></LEHRSTUNDE:anzahlstudenten>
|
||||
<LEHRSTUNDE:gruppe_bezeichnung><![CDATA[<?php echo $gruppenbezeichnung; ?>]]></LEHRSTUNDE:gruppe_bezeichnung>
|
||||
<LEHRSTUNDE:gruppe_beschreibung><![CDATA[<?php echo $gruppenbeschreibung; ?>]]></LEHRSTUNDE:gruppe_beschreibung>
|
||||
</RDF:Description>
|
||||
|
||||
@@ -624,7 +624,7 @@ $tabellen=array(
|
||||
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
|
||||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"),
|
||||
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr","zugangscode_timestamp","udf_values"),
|
||||
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_personfunktionstandort" => array("personfunktionstandort_id","funktion_kurzbz","person_id","standort_id","position","anrede"),
|
||||
"public.tbl_preincoming" => array("preincoming_id","person_id","mobilitaetsprogramm_code","zweck_code","firma_id","universitaet","aktiv","bachelorthesis","masterthesis","von","bis","uebernommen","insertamum","insertvon","updateamum","updatevon","anmerkung","zgv","zgv_ort","zgv_datum","zgv_name","zgvmaster","zgvmaster_datum","zgvmaster_ort","zgvmaster_name","program_name","bachelor","master","jahre","person_id_emergency","person_id_coordinator_dep","person_id_coordinator_int","code","deutschkurs1","deutschkurs2","research_area","deutschkurs3","ext_id"),
|
||||
@@ -636,7 +636,7 @@ $tabellen=array(
|
||||
"public.tbl_preoutgoing_lehrveranstaltung" => array("preoutgoing_lehrveranstaltung_id","preoutgoing_id","bezeichnung","ects","endversion","insertamum","insertvon","updateamum","updatevon","wochenstunden","unitcode"),
|
||||
"public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"),
|
||||
"public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"),
|
||||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz"),
|
||||
"public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values"),
|
||||
"public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"),
|
||||
"public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"),
|
||||
"public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"),
|
||||
@@ -686,7 +686,7 @@ $tabellen=array(
|
||||
"system.tbl_webservicerecht" => array("webservicerecht_id","berechtigung_kurzbz","methode","attribut","insertamum","insertvon","updateamum","updatevon","klasse"),
|
||||
"system.tbl_webservicetyp" => array("webservicetyp_kurzbz","beschreibung"),
|
||||
"system.tbl_server" => array("server_kurzbz","beschreibung"),
|
||||
"system.tbl_udf" => array("schema", "tbl_udf.table", "jsons"),
|
||||
"system.tbl_udf" => array("schema", "table", "jsons"),
|
||||
"wawi.tbl_betriebsmittelperson" => array("betriebsmittelperson_id","betriebsmittel_id","person_id", "anmerkung", "kaution", "ausgegebenam", "retouram","insertamum", "insertvon","updateamum", "updatevon","ext_id","uid"),
|
||||
"wawi.tbl_betriebsmittel" => array("betriebsmittel_id","betriebsmitteltyp","oe_kurzbz", "ort_kurzbz", "beschreibung", "nummer", "hersteller","seriennummer", "bestellung_id","bestelldetail_id", "afa","verwendung","anmerkung","reservieren","updateamum","updatevon","insertamum","insertvon","ext_id","inventarnummer","leasing_bis","inventuramum","inventurvon","anschaffungsdatum","anschaffungswert","hoehe","breite","tiefe","nummer2","verplanen"),
|
||||
"wawi.tbl_betriebsmittel_betriebsmittelstatus" => array("betriebsmittelbetriebsmittelstatus_id","betriebsmittel_id","betriebsmittelstatus_kurzbz", "datum", "updateamum", "updatevon", "insertamum", "insertvon","anmerkung"),
|
||||
@@ -720,7 +720,7 @@ foreach ($tabellen AS $attribute)
|
||||
{
|
||||
$sql_attr='';
|
||||
foreach($attribute AS $attr)
|
||||
$sql_attr.=$attr.',';
|
||||
$sql_attr.='"'.$attr.'",';
|
||||
$sql_attr=substr($sql_attr, 0, -1);
|
||||
|
||||
if (!@$db->db_query('SELECT '.$sql_attr.' FROM '.$tabs[$i].' LIMIT 1;'))
|
||||
|
||||
@@ -76,55 +76,55 @@ $error_msg='';
|
||||
$qry = "UPDATE public.tbl_gruppe SET generiert=true WHERE UPPER(gruppe_kurzbz)=UPPER('".addslashes($gruppe)."')";
|
||||
$db->db_query($qry);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Einfache Verteiler, deren Erstellung ohne Schleifen-Logik moeglich ist, werden ueber dieses Array erstellt
|
||||
* Benoetigt werden die 3 Attribute:
|
||||
* $verteilerArray['name_des_verteilers']['bezeichnung'] = 'Bezeichnung des Verteilers (32 Zeichen)';
|
||||
* $verteilerArray['name_des_verteilers']['beschreibung'] = 'Beschreibung des Verteilers (Anzeige im CIS)(128 Zeichen)';
|
||||
* $verteilerArray['name_des_verteilers']['sql'] = 'UIDs, die im Verteiler enthalten sein sollen (kein Semikolon am Ende)';
|
||||
*
|
||||
*
|
||||
* Die Verteiler werden dann alle gleich erstellt:
|
||||
* - Pruefen, ob Gruppe existiert, wenn nicht, anlegen mit Default-Werten
|
||||
* - Gruppe auf generiert setzen
|
||||
* - UIDs loeschen, die nicht mehr in den Verteiler gehoeren
|
||||
* - UIDs hinzufuegen, die im Verteiler fehlen
|
||||
*/
|
||||
|
||||
|
||||
$verteilerArray = array();
|
||||
|
||||
|
||||
// Sql-Schema: SELECT foo AS uid FROM bar WHERE foobar
|
||||
|
||||
|
||||
//Aktive MitarbeiterInnen mit Personalnummer > 0
|
||||
$verteilerArray['tw_ma']['bezeichnung'] = 'Alle aktiven MitarbeiterInnen';
|
||||
$verteilerArray['tw_ma']['beschreibung'] = 'Alle aktiven MitarbeiterInnen';
|
||||
$verteilerArray['tw_ma']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
WHERE aktiv
|
||||
$verteilerArray['tw_ma']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
WHERE aktiv
|
||||
AND personalnummer >= 0";
|
||||
//Aktive weibliche MitarbeiterInnen mit Personalnummer > 0
|
||||
$verteilerArray['tw_ma_w']['bezeichnung'] = 'Weibliche Mitarbeiterinnen';
|
||||
$verteilerArray['tw_ma_w']['beschreibung'] = 'Weibliche Mitarbeiterinnen';
|
||||
$verteilerArray['tw_ma_w']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE tbl_benutzer.aktiv
|
||||
AND geschlecht='w'
|
||||
$verteilerArray['tw_ma_w']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE tbl_benutzer.aktiv
|
||||
AND geschlecht='w'
|
||||
AND personalnummer >=0";
|
||||
//Alle aktiven MitarbeiterInnen mit Attribut lektor=true
|
||||
$verteilerArray['tw_lkt']['bezeichnung'] = 'Alle LektorInnen';
|
||||
$verteilerArray['tw_lkt']['beschreibung'] = 'Alle LektorInnen an der FH Technikum Wien';
|
||||
$verteilerArray['tw_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
WHERE lektor
|
||||
$verteilerArray['tw_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
WHERE lektor
|
||||
AND aktiv";
|
||||
//MitarbeiterInnen mit gueltiger Funktion "ass" (assistenz)
|
||||
$verteilerArray['tw_sek']['bezeichnung'] = 'Alle Sekretariate';
|
||||
$verteilerArray['tw_sek']['beschreibung'] = 'Alle Sekretariate an der FH Technikum Wien';
|
||||
$verteilerArray['tw_sek']['sql'] = " SELECT mitarbeiter_uid AS uid
|
||||
$verteilerArray['tw_sek']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM
|
||||
public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
@@ -147,7 +147,7 @@ $error_msg='';
|
||||
AND (tbl_benutzerfunktion.funktion_kurzbz='Leitung' OR funktion_kurzbz='gLtg' OR funktion_kurzbz='stvLtg')
|
||||
AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
|
||||
AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'
|
||||
AND tbl_studiengang.aktiv=true";
|
||||
//Aktive MitarbeiterInnen mit gueltiger Funktion "Leitung", "gLtg" oder "stvLtg" in aktiven Bachelor- oder Master-Studiengaengen mit Kennzahl>0 und Kennzahl<10000
|
||||
$verteilerArray['tw_stgl_bama']['bezeichnung'] = 'Studiengangsleitung BAMA';
|
||||
@@ -171,36 +171,36 @@ $error_msg='';
|
||||
//Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true
|
||||
$verteilerArray['tw_fix']['bezeichnung'] = 'Alle Fix-Angestellten';
|
||||
$verteilerArray['tw_fix']['beschreibung'] = 'Alle Fix-Angestellten an der FH Technikum Wien';
|
||||
$verteilerArray['tw_fix']['sql'] = " SELECT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE fixangestellt
|
||||
AND aktiv
|
||||
$verteilerArray['tw_fix']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE fixangestellt
|
||||
AND aktiv
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'";
|
||||
//Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=true und lektor=true
|
||||
$verteilerArray['tw_fix_lkt']['bezeichnung'] = 'Alle fixangestellten LektorInnen';
|
||||
$verteilerArray['tw_fix_lkt']['beschreibung'] = 'Alle fixangestellten LektorInnen an der FH Technikum Wien';
|
||||
$verteilerArray['tw_fix_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE fixangestellt
|
||||
AND lektor
|
||||
AND aktiv
|
||||
$verteilerArray['tw_fix_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE fixangestellt
|
||||
AND lektor
|
||||
AND aktiv
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'";
|
||||
//Alle aktiven MitarbeiterInnen mit Attribut fixangestellt=false und lektor=true
|
||||
$verteilerArray['tw_ext_lkt']['bezeichnung'] = 'Externe LektorInnen';
|
||||
$verteilerArray['tw_ext_lkt']['beschreibung'] = 'Alle externen LektorInnen an der FH Technikum Wien';
|
||||
$verteilerArray['tw_ext_lkt']['sql'] = " SELECT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE NOT fixangestellt
|
||||
AND lektor
|
||||
AND aktiv
|
||||
$verteilerArray['tw_ext_lkt']['sql'] = " SELECT DISTINCT mitarbeiter_uid AS uid
|
||||
FROM public.tbl_mitarbeiter
|
||||
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
|
||||
WHERE NOT fixangestellt
|
||||
AND lektor
|
||||
AND aktiv
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'";
|
||||
//Hochschulvertretung. Studierende mit gueltiger Funktion 'hsv'.
|
||||
$verteilerArray['tw_hsv']['bezeichnung'] = 'Hochschulvertretung FHTW';
|
||||
$verteilerArray['tw_hsv']['beschreibung'] = 'Hochschulvertretung FHTW';
|
||||
$verteilerArray['tw_hsv']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_hsv']['sql'] = " SELECT DISTINCT uid
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -212,7 +212,7 @@ $error_msg='';
|
||||
//Studienvertretung. Studierende mit gueltiger Funktion 'stdv'.
|
||||
$verteilerArray['tw_stdv']['bezeichnung'] = 'Alle StudierendenvertreterInnen';
|
||||
$verteilerArray['tw_stdv']['beschreibung'] = 'Alle StudierendenvertreterInnen';
|
||||
$verteilerArray['tw_stdv']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_stdv']['sql'] = " SELECT DISTINCT uid
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -224,7 +224,7 @@ $error_msg='';
|
||||
//Jahrgangsvertretung. Studierende mit gueltiger Funktion 'jgv'.
|
||||
$verteilerArray['tw_jgv']['bezeichnung'] = 'Alle JahrgangsvertreterInnen';
|
||||
$verteilerArray['tw_jgv']['beschreibung'] = 'Alle JahrgangsvertreterInnen';
|
||||
$verteilerArray['tw_jgv']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_jgv']['sql'] = " SELECT DISTINCT uid
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
@@ -233,12 +233,12 @@ $error_msg='';
|
||||
AND tbl_benutzer.aktiv AND
|
||||
(tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von<=now()) AND
|
||||
(tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis>=now())";
|
||||
//Alle aktiven Studierenden
|
||||
//Alle aktiven Studierenden
|
||||
//Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen
|
||||
//damit im CIS die Menuepunkte fuer Studierende richtig angezeigt werden
|
||||
$verteilerArray['tw_std']['bezeichnung'] = 'Alle Studierenden';
|
||||
$verteilerArray['tw_std']['beschreibung'] = 'Alle ordentlichen, außerordentlichen und fiktiven Studierenden';
|
||||
$verteilerArray['tw_std']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_std']['sql'] = " SELECT DISTINCT uid
|
||||
FROM campus.vw_student
|
||||
WHERE (
|
||||
aktiv
|
||||
@@ -251,7 +251,7 @@ $error_msg='';
|
||||
//Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen
|
||||
$verteilerArray['tw_std_m']['bezeichnung'] = 'Alle männlichen Studenten';
|
||||
$verteilerArray['tw_std_m']['beschreibung'] = 'Alle männlichen Studenten an der FHTW';
|
||||
$verteilerArray['tw_std_m']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_std_m']['sql'] = " SELECT DISTINCT uid
|
||||
FROM campus.vw_student
|
||||
WHERE (
|
||||
aktiv
|
||||
@@ -265,7 +265,7 @@ $error_msg='';
|
||||
//Abbrecher bleiben noch 3 Wochen im Verteiler andere inaktive noch fuer 20 Wochen
|
||||
$verteilerArray['tw_std_w']['bezeichnung'] = 'Alle weiblichen Studentinnen';
|
||||
$verteilerArray['tw_std_w']['beschreibung'] = 'Alle weiblichen Studentinnen an der FHTW';
|
||||
$verteilerArray['tw_std_w']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_std_w']['sql'] = " SELECT DISTINCT uid
|
||||
FROM campus.vw_student
|
||||
WHERE (
|
||||
aktiv
|
||||
@@ -279,7 +279,7 @@ $error_msg='';
|
||||
//Absolventen bleiben noch 20 Wochen im Verteiler
|
||||
$verteilerArray['tw_bama']['bezeichnung'] = 'Alle BaMa-Studierenden';
|
||||
$verteilerArray['tw_bama']['beschreibung'] = 'Alle ordentlichen Bachelor- und Master-Studierenden';
|
||||
$verteilerArray['tw_bama']['sql'] = " SELECT uid
|
||||
$verteilerArray['tw_bama']['sql'] = " SELECT DISTINCT uid
|
||||
FROM campus.vw_student
|
||||
WHERE (
|
||||
aktiv
|
||||
@@ -287,7 +287,7 @@ $error_msg='';
|
||||
(aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)='Absolvent' AND updateaktivam>now()-'20 weeks'::interval)
|
||||
AND studiengang_kz IN (SELECT studiengang_kz FROM public.tbl_studiengang WHERE typ IN ('b','m'))
|
||||
)";
|
||||
//Moodle-LektorenVerteiler
|
||||
//Moodle-LektorenVerteiler
|
||||
$verteilerArray['moodle_lkt']['bezeichnung'] = 'Moodle Lektoren';
|
||||
$verteilerArray['moodle_lkt']['beschreibung'] = 'Moodle Lektoren';
|
||||
$verteilerArray['moodle_lkt']['sql'] = " SELECT distinct mitarbeiter_uid AS uid
|
||||
@@ -310,7 +310,7 @@ $error_msg='';
|
||||
JOIN public.tbl_benutzer ON (mitarbeiter_uid=uid)
|
||||
JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung')
|
||||
WHERE tbl_benutzer.aktiv AND (funktion_kurzbz='Leitung')
|
||||
AND (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())
|
||||
AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND tbl_organisationseinheit.organisationseinheittyp_kurzbz='Abteilung'";
|
||||
@@ -387,10 +387,10 @@ $error_msg='';
|
||||
//Alle aktiven MitarbeiterInnen mit Funktion Leitung oder stvLeitung oder gfLtg
|
||||
$verteilerArray['tw_leitung']['bezeichnung'] = 'Alle MA mit Leitungsfunktion';
|
||||
$verteilerArray['tw_leitung']['beschreibung'] = 'Alle MA mit Funktion Leitung, stellvertretende Leitung oder geschäftsführende Leitung';
|
||||
$verteilerArray['tw_leitung']['sql'] = " SELECT DISTINCT uid
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING (person_id)
|
||||
$verteilerArray['tw_leitung']['sql'] = " SELECT DISTINCT uid
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING (person_id)
|
||||
JOIN tbl_benutzerfunktion USING (uid)
|
||||
WHERE funktion_kurzbz IN('Leitung','stvLtg','gLtg')
|
||||
AND tbl_benutzer.aktiv
|
||||
@@ -412,7 +412,21 @@ $error_msg='';
|
||||
(vw_student.aktiv=false AND get_rolle_prestudent(vw_student.prestudent_id, null)!='Abbrecher' AND vw_student.updateaktivam>now()-'20 weeks'::interval))
|
||||
AND tbl_organisationseinheit.oe_parent_kurzbz='lehrgang'
|
||||
AND organisationseinheittyp_kurzbz='Lehrgang'";
|
||||
|
||||
//Alle aktiven Lektoren von BIF DUA
|
||||
$verteilerArray['bif_lkt_dua']['bezeichnung'] = 'Alle Lektoren von BIF DUAL';
|
||||
$verteilerArray['bif_lkt_dua']['beschreibung'] = 'Alle Lektoren von BIF DUAL';
|
||||
$verteilerArray['bif_lkt_dua']['sql'] = "SELECT distinct mitarbeiter_uid as uid
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE
|
||||
(studiensemester_kurzbz='$studiensemester' OR
|
||||
studiensemester_kurzbz='$stsem2')
|
||||
AND mitarbeiter_uid NOT LIKE '\\\\_%'
|
||||
AND tbl_lehrveranstaltung.studiengang_kz=257
|
||||
AND tbl_lehrveranstaltung.orgform_kurzbz='DUA'
|
||||
";
|
||||
$bezeichnung = '';
|
||||
$beschreibung = '';
|
||||
foreach ($verteilerArray AS $listname => $data)
|
||||
@@ -423,14 +437,14 @@ $error_msg='';
|
||||
{
|
||||
if (strlen($data['bezeichnung']) > 32)
|
||||
$bezeichnung = substr($data['bezeichnung'], 0, 32);
|
||||
else
|
||||
else
|
||||
$bezeichnung = $data['bezeichnung'];
|
||||
|
||||
|
||||
if (strlen($data['beschreibung']) > 128)
|
||||
$beschreibung = substr($data['beschreibung'], 0, 128);
|
||||
else
|
||||
$beschreibung = $data['beschreibung'];
|
||||
|
||||
|
||||
$grp->gruppe_kurzbz = $listname;
|
||||
$grp->studiengang_kz = '0';
|
||||
$grp->semester = '0';
|
||||
@@ -447,7 +461,7 @@ $error_msg='';
|
||||
$grp->aufnahmegruppe = false;
|
||||
$grp->insertamum = date('Y-m-d H:i:s');
|
||||
$grp->insertvon = 'mlists_generate';
|
||||
|
||||
|
||||
if(!$grp->save(true, true))
|
||||
{
|
||||
$error_msg .= 'Fehler beim Anlegen der Gruppe '.$listname.': '.$grp->errormsg;
|
||||
@@ -464,36 +478,36 @@ $error_msg='';
|
||||
if (substr($data['sql'], -1) == ';')
|
||||
$data['sql'] = substr($data['sql'], 0, strlen($data['sql'])-1);
|
||||
|
||||
$qry_delete = " DELETE FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname).")
|
||||
AND
|
||||
$qry_delete = " DELETE FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname).")
|
||||
AND
|
||||
uid NOT IN (".$data['sql'].");";
|
||||
|
||||
if(!($result = $db->db_query($qry_delete)))
|
||||
$error_msg .= $db->db_last_error().$qry_delete.'<br><br>';
|
||||
|
||||
|
||||
echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge gelöscht<BR>';
|
||||
|
||||
|
||||
flush();
|
||||
|
||||
$qry_insert = " WITH
|
||||
$qry_insert = " WITH
|
||||
uids AS (".$data['sql'].")
|
||||
INSERT INTO
|
||||
public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon)
|
||||
SELECT
|
||||
*, UPPER(".$db->db_add_param($listname)."), now(), 'mlists_generate'
|
||||
FROM
|
||||
uids
|
||||
WHERE
|
||||
INSERT INTO
|
||||
public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon)
|
||||
SELECT
|
||||
*, UPPER(".$db->db_add_param($listname)."), now(), 'mlists_generate'
|
||||
FROM
|
||||
uids
|
||||
WHERE
|
||||
uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE UPPER(gruppe_kurzbz)=UPPER(".$db->db_add_param($listname)."));";
|
||||
|
||||
if(!($result = $db->db_query($qry_insert)))
|
||||
$error_msg .= $db->db_last_error().$qry_insert.'<br><br>';
|
||||
|
||||
|
||||
echo strtoupper($listname).' '.$db->db_affected_rows($result).' Einträge hinzugefügt<BR><BR>';
|
||||
|
||||
|
||||
flush();
|
||||
}
|
||||
|
||||
@@ -501,7 +515,7 @@ $error_msg='';
|
||||
// Erstellen der Mailinglisten mit Schleifen-Logik
|
||||
// **************************************************************
|
||||
|
||||
|
||||
|
||||
// **************************************************************
|
||||
// Lektoren-Verteiler innerhalb der Studiengaenge abgleichen
|
||||
// Lektoren holen die nicht mehr in den Verteiler gehoeren
|
||||
@@ -998,7 +1012,7 @@ $error_msg='';
|
||||
}
|
||||
}
|
||||
echo '<br>';
|
||||
|
||||
|
||||
// **************************************************************
|
||||
// Studierendenverteiler fuer die einzelnen Organisationseinheiten bei Mischformen
|
||||
echo '<br>Abgleich der Mischformverteiler';
|
||||
@@ -1103,7 +1117,7 @@ $error_msg='';
|
||||
$error_msg.=$db->db_last_error().' '.$sql_query;
|
||||
|
||||
echo $error_msg;
|
||||
|
||||
|
||||
// Send Mail to admin if error occurs
|
||||
if ($error_msg != '')
|
||||
{
|
||||
|
||||
@@ -803,6 +803,7 @@ function GenerateXMLStudentBlock($row)
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($aktstatus_stsem)."
|
||||
ORDER BY tbl_mobilitaet.insertamum DESC limit 1;";
|
||||
|
||||
$studtyp = '';
|
||||
if($resultgs = $db->db_query($qrygs))
|
||||
{
|
||||
while($rowgs = $db->db_fetch_object($resultgs))
|
||||
@@ -1021,7 +1022,7 @@ function GenerateXMLStudentBlock($row)
|
||||
}
|
||||
}
|
||||
|
||||
if($beginndatum!='' && !$ausserordentlich)
|
||||
if($beginndatum!='' && !$ausserordentlich && $studtyp!='E')
|
||||
{
|
||||
$datei.="
|
||||
<BeginnDatum>".date("dmY", $datumobj->mktime_fromdate($beginndatum))."</BeginnDatum>";
|
||||
@@ -1037,14 +1038,17 @@ function GenerateXMLStudentBlock($row)
|
||||
Incoming
|
||||
Ausserordentlich Studierender
|
||||
*/
|
||||
if($aktstatus!='Incoming' && !$ausserordentlich)
|
||||
if($aktstatus!='Incoming' && !$ausserordentlich && $studtyp!='E')
|
||||
{
|
||||
$datei.="
|
||||
<Ausbildungssemester>".$sem."</Ausbildungssemester>";
|
||||
}
|
||||
|
||||
$datei.="
|
||||
<StudStatusCode>".$status."</StudStatusCode>";
|
||||
if($studtyp!='E')
|
||||
{
|
||||
$datei.="
|
||||
<StudStatusCode>".$status."</StudStatusCode>";
|
||||
}
|
||||
|
||||
if($orgform_code_array[$storgform]!=1 && !$ausserordentlich) // Wenn nicht Vollzeit und nicht Ausserordentlich
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user