mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'master' into Sonstiges-Sprint-176/Anrechnungen_Bugfixes
This commit is contained in:
@@ -23,6 +23,14 @@ $config['navigation_header'] = array(
|
||||
'expand' => true,
|
||||
'sort' => 10,
|
||||
'requiredPermissions' => 'basis/vilesci:r'
|
||||
),
|
||||
'oehbeitragsverwaltung' => array(
|
||||
'link' => site_url('codex/Oehbeitrag'),
|
||||
'icon' => '',
|
||||
'description' => 'ÖH-Beitragsverwaltung',
|
||||
'expand' => true,
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'admin:w'
|
||||
)
|
||||
)
|
||||
),
|
||||
@@ -94,6 +102,13 @@ $config['navigation_header'] = array(
|
||||
'description' => 'BPK Wartung',
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'admin:r'
|
||||
),
|
||||
'errormonitoring' => array(
|
||||
'link' => site_url('system/issues/Issues'),
|
||||
'description' => 'Fehler Monitoring',
|
||||
'expand' => true,
|
||||
'sort' => 30,
|
||||
'requiredPermissions' => 'system/issues_verwalten:r'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
<?php
|
||||
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
class Oehbeitrag extends Auth_Controller
|
||||
{
|
||||
const STUDIENSEMESTER_START = 'WS2020'; // Öhbeitrage can be assigned beginning with this Studiensemester
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'admin:r',// TODO which Berechtigung?
|
||||
'getOehbeitraege' => 'admin:r',
|
||||
'getValidStudiensemester' => 'admin:r',
|
||||
'addOehbeitrag' => 'admin:rw',
|
||||
'updateOehbeitrag' => 'admin:rw',
|
||||
'deleteOehbeitrag' => 'admin:rw'
|
||||
)
|
||||
);
|
||||
|
||||
$this->load->model('codex/Oehbeitrag_model', 'OehbeitragModel');
|
||||
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'oehbeitrag'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$oehbeitraege = array();
|
||||
|
||||
$oehbeitragRes = $this->_loadOehbeitraege();
|
||||
|
||||
if (isError($oehbeitragRes))
|
||||
show_error(getError($oehbeitragRes));
|
||||
|
||||
if (hasData($oehbeitragRes))
|
||||
$oehbeitraege = getData($oehbeitragRes);
|
||||
|
||||
$this->load->view("codex/oehbeitrag.php", array('oehbeitraege' => $oehbeitraege));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all valid, i.e. unassigned, Studiensemester.
|
||||
*/
|
||||
public function getValidStudiensemester()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->get('oehbeitrag_id');
|
||||
$oehbeitrag_id_arr = isset($oehbeitrag_id) ? array($oehbeitrag_id) : null;
|
||||
|
||||
$studiensemester = array();
|
||||
|
||||
$studiensemesterres = $this->OehbeitragModel->getUnassignedStudiensemester(self::STUDIENSEMESTER_START, $oehbeitrag_id_arr);
|
||||
if (isError($studiensemesterres))
|
||||
{
|
||||
$this->outputJsonError(getError($studiensemesterres));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hasData($studiensemesterres))
|
||||
$studiensemester = getData($studiensemesterres);
|
||||
|
||||
$this->outputJsonSuccess($studiensemester);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Öhbeiträge. Wrapper function for output as JSON.
|
||||
*/
|
||||
public function getOehbeitraege()
|
||||
{
|
||||
$this->outputJson($this->_loadOehbeitraege());
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an Öhbeitrag. Checks for errors beforehand.
|
||||
*/
|
||||
public function addOehbeitrag()
|
||||
{
|
||||
$studierendenbeitrag = $this->input->post('studierendenbeitrag');
|
||||
$versicherung = $this->input->post('versicherung');
|
||||
$von_studiensemester_kurzbz = $this->input->post('von_studiensemester_kurzbz');
|
||||
$bis_studiensemester_kurzbz = $this->input->post('bis_studiensemester_kurzbz');
|
||||
if ($bis_studiensemester_kurzbz == 'null')
|
||||
$bis_studiensemester_kurzbz = null;
|
||||
|
||||
if (!$this->_checkAmount($studierendenbeitrag))
|
||||
$this->outputJsonError('Ungültiger Studierendenbeitrag');
|
||||
elseif (!$this->_checkAmount($versicherung))
|
||||
$this->outputJsonError('Ungültige Versicherung');
|
||||
else
|
||||
{
|
||||
$vonBisCheck = $this->_checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz);
|
||||
|
||||
if (isError($vonBisCheck))
|
||||
$this->outputJsonError(getError($vonBisCheck));
|
||||
else
|
||||
{
|
||||
$data = array(
|
||||
'studierendenbeitrag' => $studierendenbeitrag,
|
||||
'versicherung' => $versicherung,
|
||||
'von_studiensemester_kurzbz' => $von_studiensemester_kurzbz,
|
||||
'bis_studiensemester_kurzbz' => $bis_studiensemester_kurzbz
|
||||
);
|
||||
|
||||
$this->outputJson($this->OehbeitragModel->insert($data));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates an Öhbeitrag. Checks for errors beforehand.
|
||||
*/
|
||||
public function updateOehbeitrag()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->post("oehbeitrag_id");
|
||||
$data = $this->input->post("data");
|
||||
|
||||
if (!is_numeric($oehbeitrag_id) || isEmptyArray($data))
|
||||
{
|
||||
$this->outputJsonError("Ungültige Parameter");
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($data as $idx => $value)
|
||||
{
|
||||
if ($idx == 'studierendenbeitrag' || $idx == 'versicherung')
|
||||
{
|
||||
if (!$this->_checkAmount($value))
|
||||
{
|
||||
$this->outputJsonError("Ungültige(r) $idx");
|
||||
return;
|
||||
}
|
||||
}
|
||||
elseif ($idx == 'von_studiensemester_kurzbz' || $idx == 'bis_studiensemester_kurzbz')
|
||||
{
|
||||
$this->OehbeitragModel->addSelect('von_studiensemester_kurzbz, bis_studiensemester_kurzbz');
|
||||
$vonBisStudiensemesterRes = $this->OehbeitragModel->load($oehbeitrag_id);
|
||||
|
||||
if (!hasData($vonBisStudiensemesterRes))
|
||||
{
|
||||
$this->outputJsonError("Fehler beim Holen des Öhbeitrags");
|
||||
return;
|
||||
}
|
||||
|
||||
$vonBisStudiensemester = getData($vonBisStudiensemesterRes);
|
||||
|
||||
$von_studiensemester_kurzbz = isset($data['von_studiensemester_kurzbz'])
|
||||
? $data['von_studiensemester_kurzbz']
|
||||
: $vonBisStudiensemester[0]->von_studiensemester_kurzbz;
|
||||
|
||||
if (isset($data['bis_studiensemester_kurzbz']))
|
||||
{
|
||||
$bis_studiensemester_kurzbz = $data['bis_studiensemester_kurzbz'] = $data['bis_studiensemester_kurzbz'] == 'null' ? null : $data['bis_studiensemester_kurzbz'];
|
||||
}
|
||||
else
|
||||
$bis_studiensemester_kurzbz = $vonBisStudiensemester[0]->bis_studiensemester_kurzbz;
|
||||
|
||||
$checkStudiensemester = $this->_checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz, $oehbeitrag_id);
|
||||
|
||||
if (isError($checkStudiensemester))
|
||||
{
|
||||
$this->outputJsonError(getError($checkStudiensemester));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->outputJson($this->OehbeitragModel->update($oehbeitrag_id, $data));
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes an Öhbeitrag.
|
||||
*/
|
||||
public function deleteOehbeitrag()
|
||||
{
|
||||
$oehbeitrag_id = $this->input->post("oehbeitrag_id");
|
||||
|
||||
$this->outputJson($this->OehbeitragModel->delete($oehbeitrag_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads all Öhbeiträge sorted by date descending.
|
||||
* @return object
|
||||
*/
|
||||
private function _loadOehbeitraege()
|
||||
{
|
||||
$this->OehbeitragModel->addSelect('oehbeitrag_id, von_studiensemester_kurzbz, bis_studiensemester_kurzbz, studierendenbeitrag, versicherung, sem_von.start as von_datum, sem_bis.ende as bis_datum');
|
||||
$this->OehbeitragModel->addJoin('public.tbl_studiensemester sem_von', 'tbl_oehbeitrag.von_studiensemester_kurzbz = sem_von.studiensemester_kurzbz');
|
||||
$this->OehbeitragModel->addJoin('public.tbl_studiensemester sem_bis', 'tbl_oehbeitrag.bis_studiensemester_kurzbz = sem_bis.studiensemester_kurzbz', 'LEFT');
|
||||
$this->OehbeitragModel->addOrder('sem_von.start', 'DESC');
|
||||
return $this->OehbeitragModel->load();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if an amount is numeric and not too big.
|
||||
* @param $amount
|
||||
* @return bool true if valid amount, false otherwise
|
||||
*/
|
||||
private function _checkAmount($amount)
|
||||
{
|
||||
return is_numeric($amount) && (float) $amount <= 99999.99;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a certain Von-Studiensemester is valid together with a Bis-Studiensemester.
|
||||
* Checks for correct format, Von-Studiensemester cannot be after the Bis-Studiensemester,
|
||||
* checks that semester are not overlapping with semester for existent Öhbeiträge.
|
||||
* @param string $von_studiensemester_kurzbz
|
||||
* @param string $bis_studiensemester_kurzbz
|
||||
* @param int $oehbeitrag_id öhbeitrag to ignore, i.e. which is assignable (id of Öhbeitrag of the passed semesters)
|
||||
* @return object array with true if assignable, with false if not
|
||||
*/
|
||||
private function _checkVonBisStudiensemester($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz, $oehbeitrag_id = null)
|
||||
{
|
||||
$regex = "/^(WS|SS)\d{4}$/";
|
||||
if (!preg_match($regex, $von_studiensemester_kurzbz))
|
||||
return error("Ungültiges Von-Studiensemester");
|
||||
|
||||
if (!preg_match($regex, $bis_studiensemester_kurzbz) && $bis_studiensemester_kurzbz != null)
|
||||
return error("Ungültiges Bis-Studiensemester");
|
||||
|
||||
$this->StudiensemesterModel->addSelect("start");
|
||||
$vonStudiensemesterRes = $this->StudiensemesterModel->load($von_studiensemester_kurzbz);
|
||||
|
||||
if (!hasData($vonStudiensemesterRes))
|
||||
return error("Fehler beim Holen von Von-Studiensemester");
|
||||
|
||||
$this->StudiensemesterModel->addSelect("start");
|
||||
$bisStudiensemesterRes = $this->StudiensemesterModel->load($bis_studiensemester_kurzbz);
|
||||
|
||||
if (!hasData($bisStudiensemesterRes))
|
||||
return error("Fehler beim Holen von Bis-Studiensemester");
|
||||
|
||||
$vonStudiensemester = getData($vonStudiensemesterRes)[0]->start;
|
||||
$bisStudiensemester = getData($bisStudiensemesterRes)[0]->start;
|
||||
|
||||
if ($bis_studiensemester_kurzbz != null && new DateTime($vonStudiensemester) > new DateTime($bisStudiensemester))
|
||||
return error("Von-Studiensemester größer als Bis-Studiensemester");
|
||||
|
||||
$oehbeitrag_id_arr = isset($oehbeitrag_id) ? array($oehbeitrag_id) : null;
|
||||
|
||||
$assignableRes = $this->OehbeitragModel->checkIfStudiensemesterAssignable(
|
||||
$von_studiensemester_kurzbz,
|
||||
$bis_studiensemester_kurzbz,
|
||||
$oehbeitrag_id_arr
|
||||
);
|
||||
|
||||
if (isError($assignableRes))
|
||||
return $assignableRes;
|
||||
|
||||
if (hasData($assignableRes))
|
||||
{
|
||||
$assignable = getData($assignableRes)[0];
|
||||
|
||||
if (!$assignable)
|
||||
return error("Keine Zuweisung möglich, Semesterüberschneidung");
|
||||
}
|
||||
|
||||
return success("Studiensemester gültig");
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,7 @@ class InfoCenter extends Auth_Controller
|
||||
const INDEX_PAGE = 'index';
|
||||
const FREIGEGEBEN_PAGE = 'freigegeben';
|
||||
const REIHUNGSTESTABSOLVIERT_PAGE = 'reihungstestAbsolviert';
|
||||
const ABGEWIESEN_PAGE = 'abgewiesen';
|
||||
const SHOW_DETAILS_PAGE = 'showDetails';
|
||||
const SHOW_ZGV_DETAILS_PAGE = 'showZGVDetails';
|
||||
const ZGV_UBERPRUEFUNG_PAGE = 'ZGVUeberpruefung';
|
||||
@@ -107,6 +108,7 @@ class InfoCenter extends Auth_Controller
|
||||
array(
|
||||
'index' => 'infocenter:r',
|
||||
'freigegeben' => 'infocenter:r',
|
||||
'abgewiesen' => 'infocenter:r',
|
||||
'reihungstestAbsolviert' => 'infocenter:r',
|
||||
'showDetails' => 'infocenter:r',
|
||||
'showZGVDetails' => 'lehre/zgvpruefung:r',
|
||||
@@ -203,6 +205,16 @@ class InfoCenter extends Auth_Controller
|
||||
$this->load->view('system/infocenter/infocenterFreigegeben.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Abgewiesen page of the InfoCenter tool
|
||||
*/
|
||||
public function abgewiesen()
|
||||
{
|
||||
$this->_setNavigationMenu(self::ABGEWIESEN_PAGE); // define the navigation menu for this page
|
||||
|
||||
$this->load->view('system/infocenter/infocenterAbgewiesen.php');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -297,6 +309,13 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
|
||||
$persondata = $this->_loadPersonData($person_id);
|
||||
|
||||
$checkPerson = $this->PersonModel->checkDuplicate($person_id);
|
||||
|
||||
if (isError($checkPerson)) show_error(getError($checkPerson));
|
||||
|
||||
$duplicate = array('duplicated' => getData($checkPerson));
|
||||
|
||||
$prestudentdata = $this->_loadPrestudentData($person_id);
|
||||
|
||||
$this->DokumentModel->addOrder('bezeichnung');
|
||||
@@ -305,7 +324,8 @@ class InfoCenter extends Auth_Controller
|
||||
$data = array_merge(
|
||||
$persondata,
|
||||
$prestudentdata,
|
||||
$dokumentdata
|
||||
$dokumentdata,
|
||||
$duplicate
|
||||
);
|
||||
|
||||
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
|
||||
@@ -734,7 +754,7 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
if (hasData($lastStatus) && hasData($statusgrresult))
|
||||
{
|
||||
//check if still Interessent
|
||||
//check if still Interessent, Bewerber or Wartender
|
||||
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS
|
||||
|| $lastStatus->retval[0]->status_kurzbz === self::BEWERBERSTATUS
|
||||
|| $lastStatus->retval[0]->status_kurzbz === self::WARTENDER)
|
||||
@@ -913,7 +933,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$this->_log($person_id, 'freigegeben', $logparams);
|
||||
|
||||
$this->_sendFreigabeMail($prestudent_id);
|
||||
if (is_numeric($statusgrund_id) || $logdata['studiengang_typ'] === 'm')
|
||||
$this->_sendFreigabeMail($prestudent_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1191,6 +1212,10 @@ class InfoCenter extends Auth_Controller
|
||||
{
|
||||
$this->_setNavigationMenu(self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
}
|
||||
elseif (strpos($navigation_page, self::ABGEWIESEN_PAGE) !== false)
|
||||
{
|
||||
$this->_setNavigationMenu(self::ABGEWIESEN_PAGE);
|
||||
}
|
||||
|
||||
$this->outputJsonSuccess('success');
|
||||
}
|
||||
@@ -1414,12 +1439,14 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$reihungstestAbsolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$abgewiesenLink = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
|
||||
$currentFilterId = $this->input->get(self::FILTER_ID);
|
||||
if (isset($currentFilterId))
|
||||
{
|
||||
$freigegebenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$reihungstestAbsolviertLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
$abgewiesenLink .= '?'.self::PREV_FILTER_ID.'='.$currentFilterId;
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
@@ -1458,6 +1485,18 @@ class InfoCenter extends Auth_Controller
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
20 // sort
|
||||
),
|
||||
'abgewiesen' => $this->navigationlib->oneLevel(
|
||||
'Abgewiesene', // description
|
||||
$abgewiesenLink, // link
|
||||
null, // children
|
||||
'close', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
30 // sort
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -1483,6 +1522,8 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
if ($origin_page === self::ZGV_UBERPRUEFUNG_PAGE)
|
||||
$link = site_url(self::ZGV_UEBERPRUEFUNG_URI);
|
||||
if ($origin_page === self::ABGEWIESEN_PAGE)
|
||||
$link = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
@@ -1520,6 +1561,7 @@ class InfoCenter extends Auth_Controller
|
||||
$homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE);
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$abgewiesenLink = site_url(self::INFOCENTER_URI.'/'.self::ABGEWIESEN_PAGE);
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
@@ -1578,6 +1620,24 @@ class InfoCenter extends Auth_Controller
|
||||
)
|
||||
);
|
||||
}
|
||||
if($page == self::ABGEWIESEN_PAGE)
|
||||
{
|
||||
$this->navigationlib->setSessionElementMenu(
|
||||
'abgewiesen',
|
||||
$this->navigationlib->oneLevel(
|
||||
'Abgewiesene', // description
|
||||
$abgewiesenLink, // link
|
||||
null, // children
|
||||
'close', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
40 // sort
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2134,17 +2194,18 @@ class InfoCenter extends Auth_Controller
|
||||
{
|
||||
$statusgrund = $this->input->post('statusgrund');
|
||||
$studiengang = $this->input->post('studiengang');
|
||||
$abgeschickt = $this->input->post('abgeschickt');
|
||||
$personen = $this->input->post('personen');
|
||||
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
|
||||
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte Statusgrund, Studiengang und Personen auswählen.");
|
||||
if ($statusgrund === 'null' || $studiengang === 'null' || $abgeschickt === 'null' || empty($personen))
|
||||
$this->terminateWithJsonError("Bitte füllen Sie alle Felder aus");
|
||||
|
||||
foreach($personen as $person)
|
||||
{
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester);
|
||||
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt);
|
||||
|
||||
if(!hasData($prestudent))
|
||||
if (!hasData($prestudent))
|
||||
continue;
|
||||
|
||||
$prestudentData = getData($prestudent);
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Issues extends Auth_Controller
|
||||
{
|
||||
private $_uid;
|
||||
|
||||
const FUNKTION_KURZBZ = 'ass'; // // user having this funktion can see issues for oes assigned with this funktion
|
||||
const BERECHTIGUNG_KURZBZ = 'system/issues_verwalten'; // user having this permission can see issues for oes assigned with this permission
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => array(self::BERECHTIGUNG_KURZBZ.':r'),
|
||||
'changeIssueStatus' => array(self::BERECHTIGUNG_KURZBZ.':rw')
|
||||
)
|
||||
);
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('IssuesLib');
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
// Load models
|
||||
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
|
||||
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'filter',
|
||||
'lehre',
|
||||
'person',
|
||||
'fehlermonitoring'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
$oes_for_issues = $this->_getOesForIssues();
|
||||
|
||||
$this->load->view(
|
||||
'system/issues/issues',
|
||||
$oes_for_issues
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes issues status change
|
||||
*/
|
||||
public function changeIssueStatus()
|
||||
{
|
||||
$issue_ids = $this->input->post('issue_ids');
|
||||
$status_kurzbz = $this->input->post('status_kurzbz');
|
||||
$verarbeitetvon = $this->_uid;
|
||||
|
||||
$errors = array();
|
||||
foreach ($issue_ids as $issue_id)
|
||||
{
|
||||
$issueRes = $this->issueslib->changeIssueStatus($issue_id, $status_kurzbz, $verarbeitetvon);
|
||||
|
||||
if (isError($issueRes))
|
||||
$errors[] = getError($issueRes);
|
||||
}
|
||||
|
||||
if (!isEmptyArray($errors))
|
||||
$this->outputJsonError(implode(", ", $errors));
|
||||
else
|
||||
$this->outputJsonSuccess("Status erfolgreich aktualisiert");
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the UID of the logged user and checks if it is valid
|
||||
*/
|
||||
private function _setAuthUID()
|
||||
{
|
||||
$this->_uid = getAuthUID();
|
||||
|
||||
if (!$this->_uid) show_error('User authentification failed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets oes of logged in user, which are needed to display issues of the user.
|
||||
* This includes oes assigned by a funktio and as the issue permission.
|
||||
* @return array
|
||||
*/
|
||||
private function _getOesForIssues()
|
||||
{
|
||||
// get oes of uid for which there is a current funktion
|
||||
$all_funktionen_oe_kurzbz = array();
|
||||
$oe_kurzbz_for_funktion = array();
|
||||
$benutzerfunktionRes = $this->BenutzerfunktionModel->getBenutzerFunktionByUid($this->_uid, null, date('Y-m-d'), date('Y-m-d'));
|
||||
|
||||
if (isError($benutzerfunktionRes))
|
||||
show_error(getError($benutzerfunktionRes));
|
||||
|
||||
if (hasData($benutzerfunktionRes))
|
||||
{
|
||||
foreach (getData($benutzerfunktionRes) as $benutzerfunktion)
|
||||
{
|
||||
$all_funktionen_oe_kurzbz[$benutzerfunktion->oe_kurzbz][] = $benutzerfunktion->funktion_kurzbz;
|
||||
|
||||
// separate oes for the funktion needed for displaying issues
|
||||
if ($benutzerfunktion->funktion_kurzbz == self::FUNKTION_KURZBZ)
|
||||
{
|
||||
$oe_kurzbz_for_funktion[] = $benutzerfunktion->oe_kurzbz;
|
||||
|
||||
// permission also for all oes under the oe for which funktion is assigend
|
||||
$childOesFunktionRes = $this->OrganisationseinheitModel->getChilds($benutzerfunktion->oe_kurzbz);
|
||||
|
||||
if (isError($childOesFunktionRes))
|
||||
show_error(getError($childOesFunktionRes));
|
||||
|
||||
if (hasData($childOesFunktionRes))
|
||||
{
|
||||
$childOesFunktion = getData($childOesFunktionRes);
|
||||
|
||||
foreach ($childOesFunktion as $childOeFunktion)
|
||||
{
|
||||
if (!in_array($childOeFunktion->oe_kurzbz, $oe_kurzbz_for_funktion))
|
||||
$oe_kurzbz_for_funktion[] = $childOeFunktion->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add oes for which there is the "manage issues" Berechtigung
|
||||
if (!$oe_kurzbz_berechtigt = $this->permissionlib->getOE_isEntitledFor(self::BERECHTIGUNG_KURZBZ))
|
||||
show_error('Keine Berechtigung oder Fehler bei Berechtigungsprüfung');
|
||||
|
||||
$all_oe_kurzbz_berechtigt = array_unique(array_merge($oe_kurzbz_for_funktion, $oe_kurzbz_berechtigt));
|
||||
|
||||
return array(
|
||||
'all_funktionen_oe_kurzbz' => $all_funktionen_oe_kurzbz,
|
||||
'all_oe_kurzbz_berechtigt' => $all_oe_kurzbz_berechtigt
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -70,6 +70,19 @@ abstract class JQW_Controller extends JOB_Controller
|
||||
return $jobs;
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
protected function getJobsByTypeStatus($type, $status)
|
||||
{
|
||||
$jobs = $this->jobsqueuelib->getJobsByTypeStatus($type, $status);
|
||||
|
||||
// If an error occurred then log it in database
|
||||
if (isError($jobs)) $this->logError(getError($jobs), array($type, $status));
|
||||
|
||||
return $jobs;
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
|
||||
@@ -203,7 +203,7 @@ class FilterWidgetLib
|
||||
// Loops in the session for all the filter widgets
|
||||
foreach ($filterWidgetsSession as $filterWidget => $filterWidgetData)
|
||||
{
|
||||
// If this filter widget is not the currrent used filter widget and the it is expired...
|
||||
// If this filter widget is not the current used filter widget and the it is expired...
|
||||
if ($this->_filterUniqueId != $filterWidget && $filterWidgetData[self::SESSION_TIMEOUT] <= time())
|
||||
{
|
||||
cleanSessionElement(self::SESSION_NAME, $filterWidget); // ...remove it
|
||||
@@ -232,7 +232,7 @@ class FilterWidgetLib
|
||||
if ($filterId != null && is_numeric($filterId) && $filterId > 0)
|
||||
{
|
||||
$whereParameters = array(
|
||||
'filter_id' => $filterId
|
||||
self::FILTER_ID => $filterId
|
||||
);
|
||||
}
|
||||
else
|
||||
@@ -279,6 +279,18 @@ class FilterWidgetLib
|
||||
if ($definition == null && $whereParameters != null)
|
||||
{
|
||||
$definition = $this->_ci->FiltersModel->loadWhere($whereParameters);
|
||||
|
||||
// Last chance!!!
|
||||
if (!hasData($definition)) // If no data have been found until now the tries the most desperate query
|
||||
{
|
||||
$this->_ci->FiltersModel->addOrder('filter_id', 'ASC'); // sort on column filter_id to get the oldest
|
||||
$whereParameters = array(
|
||||
'app' => $app,
|
||||
'dataset_name' => $datasetName
|
||||
);
|
||||
|
||||
$definition = $this->_ci->FiltersModel->loadWhere($whereParameters);
|
||||
}
|
||||
}
|
||||
|
||||
return $definition;
|
||||
@@ -712,8 +724,11 @@ class FilterWidgetLib
|
||||
{
|
||||
$this->_ci->load->model('system/Filters_model', 'FiltersModel'); // to remove the filter definitions from DB
|
||||
|
||||
// delete it!
|
||||
$this->_ci->FiltersModel->delete(array('filter_id' => $filterId));
|
||||
// Delete it from database
|
||||
$this->_ci->FiltersModel->delete(array(self::FILTER_ID => $filterId));
|
||||
|
||||
// Delete it from session
|
||||
$this->_dropFromSessionFilterWidgetById($filterId);
|
||||
|
||||
$removeCustomFilter = true;
|
||||
}
|
||||
@@ -735,7 +750,7 @@ class FilterWidgetLib
|
||||
$session = $this->getSession(); // The filter currently stored in session (the one that is currently used)
|
||||
if ($session != null)
|
||||
{
|
||||
// Loads the Fitlers model
|
||||
// Loads the Filters model
|
||||
$this->_ci->load->model('system/Filters_model', 'FiltersModel');
|
||||
|
||||
// Loads all the filters related to this page (same dataset_name and same app name)
|
||||
@@ -761,7 +776,7 @@ class FilterWidgetLib
|
||||
'%s?%s=%s',
|
||||
site_url($navigationPage),
|
||||
self::FILTER_ID,
|
||||
$filter->filter_id
|
||||
$filter->{self::FILTER_ID}
|
||||
) // link
|
||||
);
|
||||
|
||||
@@ -774,7 +789,7 @@ class FilterWidgetLib
|
||||
{
|
||||
$menuEntry['subscriptDescription'] = 'Remove';
|
||||
$menuEntry['subscriptLinkClass'] = 'remove-custom-filter';
|
||||
$menuEntry['subscriptLinkValue'] = $filter->filter_id;
|
||||
$menuEntry['subscriptLinkValue'] = $filter->{self::FILTER_ID};
|
||||
$childrenPersonalArray[] = $menuEntry; // adds to personal filters menu array
|
||||
}
|
||||
}
|
||||
@@ -974,5 +989,29 @@ class FilterWidgetLib
|
||||
|
||||
return $pos;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove from the session the given filter widget
|
||||
*/
|
||||
private function _dropFromSessionFilterWidgetById($filterId)
|
||||
{
|
||||
// Loads the session for all the filter widgets
|
||||
$filterWidgetsSession = getSession(self::SESSION_NAME);
|
||||
|
||||
// If something is present in session
|
||||
if ($filterWidgetsSession != null)
|
||||
{
|
||||
// Loops in the session for all the filter widgets
|
||||
foreach ($filterWidgetsSession as $filterWidget => $filterWidgetData)
|
||||
{
|
||||
// If this filter widget is not the one that we are looking for
|
||||
if ($filterWidgetData[self::FILTER_ID] == $filterId)
|
||||
{
|
||||
cleanSessionElement(self::SESSION_NAME, $filterWidget); // ...remove it
|
||||
break; // stop to search
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Library for writing and reading issues (problems in fhcomplete system which need resolving)
|
||||
*/
|
||||
class IssuesLib
|
||||
{
|
||||
private $_ci; // Code igniter instance
|
||||
|
||||
const APP_INDEX = 'app';
|
||||
const INSERTVON_INDEX = 'insertvon';
|
||||
const FALLBACK_FEHLERCODE_INDEX = 'fallbackFehlercode';
|
||||
|
||||
const STATUS_NEU = 'new';
|
||||
const STATUS_IN_BEARBEITUNG = 'inProgress';
|
||||
const STATUS_BEHOBEN = 'resolved';
|
||||
|
||||
const ERRORTYPE_CODE = 'error';
|
||||
const WARNINGTYPE_CODE = 'warning';
|
||||
|
||||
public function __construct($params = null)
|
||||
{
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
// Properties default values
|
||||
$this->_app = 'core';
|
||||
$this->_insertvon = 'system';
|
||||
$this->_fallbackFehlercode = 'UNKNOWN_ERROR';
|
||||
|
||||
// If parameters are given then overwrite the default values
|
||||
if (!isEmptyArray($params)) $this->setConfigs($params);
|
||||
|
||||
// load models
|
||||
$this->_ci->load->model('system/Issue_model', 'IssueModel');
|
||||
$this->_ci->load->model('system/Fehler_model', 'FehlerModel');
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Store configuration parameters for this lib
|
||||
*/
|
||||
public function setConfigs($params)
|
||||
{
|
||||
// If parameters are given then overwrite the default values
|
||||
if (!isEmptyArray($params))
|
||||
{
|
||||
if (isset($params[self::APP_INDEX])) $this->_app = $params[self::APP_INDEX];
|
||||
if (isset($params[self::INSERTVON_INDEX])) $this->_insertvon = $params[self::INSERTVON_INDEX];
|
||||
if (isset($params[self::FALLBACK_FEHLERCODE_INDEX])) $this->_fallbackFehlercode = $params[self::FALLBACK_FEHLERCODE_INDEX];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an Fhc issue, i.e. an internal, self-defined issue.
|
||||
* @param string $fehler_kurzbz short unique text name of the issue
|
||||
* @param int $person_id
|
||||
* @param string $oe_kurzbz
|
||||
* @param array $fehlertext_params params for sprint replace of error text in system.tbl_fehler
|
||||
* @return object success or error
|
||||
*/
|
||||
public function addFhcIssue($fehler_kurzbz, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null)
|
||||
{
|
||||
$fehlerRes = $this->_ci->FehlerModel->loadWhere(array('fehler_kurzbz' => $fehler_kurzbz));
|
||||
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
$fehlercode = getData($fehlerRes)[0]->fehlercode;
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params);
|
||||
}
|
||||
else
|
||||
return error("Fehler $fehler_kurzbz nicht gefunden");
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an external issue, already defined externally by another system.
|
||||
* @param string $fehlercode_extern the error code in the external system
|
||||
* @param string $inhalt_extern error text in external system
|
||||
* @param int $person_id
|
||||
* @param int $oe_kurzbz
|
||||
* @param array $fehlertext_params params for replacement of parts of error text
|
||||
* @param bool $force_predefined if true, only predefined external issues are added
|
||||
* @return object success or error
|
||||
*/
|
||||
public function addExternalIssue($fehlercode_extern, $inhalt_extern, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $force_predefined = false)
|
||||
{
|
||||
if (isEmptyString($fehlercode_extern))
|
||||
return error("fehlercode_extern fehlt");
|
||||
|
||||
// get external fehlercode (unique for each app)
|
||||
$this->_ci->FehlerModel->addSelect('fehlercode');
|
||||
$fehlerRes = $this->_ci->FehlerModel->loadWhere(
|
||||
array(
|
||||
'fehlercode_extern' => $fehlercode_extern,
|
||||
'app' => $this->_app
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($fehlerRes))
|
||||
return $fehlerRes;
|
||||
|
||||
$fehlerData = getData($fehlerRes)[0];
|
||||
|
||||
// check if there is a predefined custom error for the external issue
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
// if found, use the code
|
||||
$fehlercode = $fehlerData->fehlercode;
|
||||
}
|
||||
elseif ($force_predefined === true)
|
||||
{
|
||||
// only added if predefined
|
||||
return success("No definition found - not added");
|
||||
}
|
||||
else
|
||||
{
|
||||
// if predefined error is not found, insert with fallback code
|
||||
$fehlercode = $this->_fallbackFehlercode;
|
||||
}
|
||||
|
||||
// add external issue
|
||||
return $this->_addIssue($fehlercode, $person_id, $oe_kurzbz, $fehlertext_params, $fehlercode_extern, $inhalt_extern);
|
||||
}
|
||||
|
||||
/**
|
||||
* Changes status of an issue.
|
||||
* @param int $issue_id
|
||||
* @param string $status_kurzbz the new status
|
||||
* @param string $verarbeitetvon uid of person changing the status (needed for in Bearbeitung and behoben)
|
||||
* @return success or error
|
||||
*/
|
||||
public function changeIssueStatus($issue_id, $status_kurzbz, $verarbeitetvon = null)
|
||||
{
|
||||
if (!isset($issue_id) || !is_numeric($issue_id))
|
||||
return error("Issue Id muss korrekt gesetzt sein.");
|
||||
|
||||
// check if given status is same as existing
|
||||
$this->_ci->IssueModel->addSelect('status_kurzbz');
|
||||
$currStatus = $this->_ci->IssueModel->load($issue_id);
|
||||
|
||||
if (hasData($currStatus))
|
||||
{
|
||||
if (getData($currStatus)[0]->status_kurzbz == $status_kurzbz)
|
||||
return success("Gleicher Status bereits gesetzt");
|
||||
}
|
||||
else
|
||||
return error("Fehler beim Holen des Status");
|
||||
|
||||
$data = array(
|
||||
'status_kurzbz' => $status_kurzbz,
|
||||
'updatevon' => $verarbeitetvon,
|
||||
'updateamum' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
if ($status_kurzbz == self::STATUS_NEU)
|
||||
{
|
||||
|
||||
$data['verarbeitetvon'] = null;
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_NEU || $status_kurzbz == self::STATUS_IN_BEARBEITUNG)
|
||||
{
|
||||
$data['verarbeitetamum'] = null;
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_IN_BEARBEITUNG || $status_kurzbz == self::STATUS_BEHOBEN)
|
||||
{
|
||||
if (isset($verarbeitetvon))
|
||||
$data['verarbeitetvon'] = $verarbeitetvon;
|
||||
else
|
||||
return error("Verarbeitetvon nicht gesetzt");
|
||||
}
|
||||
|
||||
if ($status_kurzbz == self::STATUS_BEHOBEN)
|
||||
$data['verarbeitetamum'] = date('Y-m-d H:i:s');
|
||||
|
||||
return $this->_ci->IssueModel->update(
|
||||
array(
|
||||
'issue_id' => $issue_id
|
||||
),
|
||||
$data
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an issue.
|
||||
* @param $fehlercode
|
||||
* @param int $person_id
|
||||
* @param string $oe_kurzbz
|
||||
* @param array $fehlertext_params
|
||||
* @param string $fehlercode_extern
|
||||
* @param string $inhalt_extern
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _addIssue($fehlercode, $person_id = null, $oe_kurzbz = null, $fehlertext_params = null, $fehlercode_extern = null, $inhalt_extern = null)
|
||||
{
|
||||
if (isEmptyString($person_id) && isEmptyString($oe_kurzbz))
|
||||
return error("Person_id oder oe_kurzbz muss gesetzt sein.");
|
||||
|
||||
// get fehlertextVorlage and replace it with params
|
||||
$fehlerRes = $this->_ci->FehlerModel->load($fehlercode);
|
||||
|
||||
if (hasData($fehlerRes))
|
||||
{
|
||||
$fehlertextVorlage = getData($fehlerRes)[0]->fehlertext;
|
||||
$fehlertext = isEmptyArray($fehlertext_params) ? $fehlertextVorlage : vsprintf($fehlertextVorlage, $fehlertext_params);
|
||||
|
||||
$openIssuesCountRes = $this->_ci->IssueModel->getOpenIssueCount($fehlercode, $person_id, $oe_kurzbz, $fehlercode_extern);
|
||||
|
||||
if (hasData($openIssuesCountRes))
|
||||
{
|
||||
// don't insert if issue is already open
|
||||
// already open - status new with same fehlercode or same fehlercode-extern (if set)
|
||||
$openIssueCount = getData($openIssuesCountRes)[0]->anzahl_open_issues;
|
||||
|
||||
if ($openIssueCount == 0)
|
||||
{
|
||||
return $this->_ci->IssueModel->insert(
|
||||
array(
|
||||
'fehlercode' => $fehlercode,
|
||||
'fehlercode_extern' => $fehlercode_extern,
|
||||
'inhalt' => $fehlertext,
|
||||
'inhalt_extern' => $inhalt_extern,
|
||||
'person_id' => $person_id,
|
||||
'oe_kurzbz' => $oe_kurzbz,
|
||||
'datum' => date('Y-m-d H:i:s'),
|
||||
'status_kurzbz' => self::STATUS_NEU,
|
||||
'insertvon' => $this->_insertvon
|
||||
)
|
||||
);
|
||||
}
|
||||
else
|
||||
return success($openIssueCount);
|
||||
}
|
||||
else
|
||||
return error("Anzahl offener Issues konnte nicht ermittelt werden.");
|
||||
}
|
||||
else
|
||||
return error("Fehler $fehlercode nicht gefunden");
|
||||
}
|
||||
}
|
||||
@@ -72,6 +72,18 @@ class JobsQueueLib
|
||||
return $this->_ci->JobsQueueModel->loadWhere(array('status' => self::STATUS_NEW, 'type' => $type));
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
public function getJobsByTypeStatus($type, $status)
|
||||
{
|
||||
$this->_ci->JobsQueueModel->resetQuery();
|
||||
|
||||
$this->_ci->JobsQueueModel->addOrder('creationtime', 'DESC');
|
||||
|
||||
return $this->_ci->JobsQueueModel->loadWhere(array('status' => $status, 'type' => $type));
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
|
||||
@@ -312,10 +312,10 @@ class UDFLib
|
||||
{
|
||||
$resultElement->{$columnName} = $columnValue;
|
||||
}
|
||||
}
|
||||
|
||||
// And finally remove the UDFs column
|
||||
unset($resultElement->{self::COLUMN_NAME});
|
||||
// And finally remove the UDFs column
|
||||
unset($resultElement->{self::COLUMN_NAME});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -114,7 +114,7 @@ class VorlageLib
|
||||
if (!hasData($vorlage))
|
||||
{
|
||||
// Builds where clause
|
||||
$where = $this->_where($vorlage_kurzbz, $orgform_kurzbz, $sprache);
|
||||
$where = $this->_where($vorlage_kurzbz);
|
||||
|
||||
$vorlage = $this->ci->organisationseinheitlib->treeSearch(
|
||||
'public',
|
||||
@@ -134,20 +134,11 @@ class VorlageLib
|
||||
/**
|
||||
* _where
|
||||
*/
|
||||
private function _where($vorlage_kurzbz, $orgform_kurzbz, $sprache)
|
||||
private function _where($vorlage_kurzbz)
|
||||
{
|
||||
// Builds where clause
|
||||
$where = "vorlage_kurzbz = ".$this->ci->VorlageModel->escape($vorlage_kurzbz);
|
||||
|
||||
if (is_null($sprache))
|
||||
{
|
||||
$where .= " AND sprache IS NULL";
|
||||
}
|
||||
else
|
||||
{
|
||||
$where .= " AND sprache = ".$this->ci->VorlageModel->escape($sprache);
|
||||
}
|
||||
|
||||
$where .= " AND aktiv = true";
|
||||
|
||||
return $where;
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
class Aufenthaltfoerderung_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_aufenthaltfoerderung';
|
||||
$this->pk = 'aufenthaltfoerderung_code';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
class Oehbeitrag_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'bis.tbl_oehbeitrag';
|
||||
$this->pk = 'oehbeitrag_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets oehbeitrag data valid for a certain Studiensemester.
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @return object
|
||||
*/
|
||||
public function getByStudiensemester($studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "WITH semstart AS (
|
||||
SELECT start FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz = ?
|
||||
)
|
||||
SELECT * FROM bis.tbl_oehbeitrag oehb
|
||||
JOIN public.tbl_studiensemester semvon ON oehb.von_studiensemester_kurzbz = semvon.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester sembis ON oehb.bis_studiensemester_kurzbz = sembis.studiensemester_kurzbz
|
||||
JOIN semstart ON semstart.start::date >= semvon.start::date AND (sembis.studiensemester_kurzbz IS NULL OR semstart.start::date <= sembis.start::date)
|
||||
ORDER BY semvon.start
|
||||
LIMIT 1";
|
||||
|
||||
return $this->execQuery($qry, array($studiensemester_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Studiensemester for which no Oehbeitrag value assignment exists.
|
||||
* @param string $start_studiensemester_kurzbz semester before the given semester are ignored
|
||||
* @param array $excluded_oehbeitrag_id oehbeitraege to be ignored, i.e. which are assigned
|
||||
* @return object
|
||||
*/
|
||||
public function getUnassignedStudiensemester($start_studiensemester_kurzbz, $excluded_oehbeitrag_id = array())
|
||||
{
|
||||
$params = array($start_studiensemester_kurzbz);
|
||||
|
||||
$qry = "SELECT * FROM public.tbl_studiensemester sem
|
||||
WHERE sem.start >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = ?)
|
||||
AND NOT EXISTS (SELECT 1 FROM bis.tbl_oehbeitrag oeh
|
||||
JOIN public.tbl_studiensemester oeh_von ON oeh.von_studiensemester_kurzbz = oeh_von.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester oeh_bis ON oeh.bis_studiensemester_kurzbz = oeh_bis.studiensemester_kurzbz
|
||||
WHERE sem.start::date >= oeh_von.start::date AND (sem.start::date <= oeh_bis.start::date OR oeh_bis.studiensemester_kurzbz IS NULL)";
|
||||
|
||||
if (!isEmptyArray($excluded_oehbeitrag_id))
|
||||
{
|
||||
$qry .= " AND oehbeitrag_id NOT IN ?";
|
||||
$params[] = $excluded_oehbeitrag_id;
|
||||
}
|
||||
|
||||
$qry .= ") ORDER BY sem.start";
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a Öhbeitrag can be assigned for a Studiensemester range.
|
||||
* @param string $von_studiensemester_kurzbz
|
||||
* @param string $bis_studiensemester_kurzbz
|
||||
* @param array $excluded_oehbeitrag_id oehbeitraege to ignore, i.e. which are assignable
|
||||
* @return object array with true if assignable, with false if not
|
||||
*/
|
||||
public function checkIfStudiensemesterAssignable($von_studiensemester_kurzbz, $bis_studiensemester_kurzbz = null, $excluded_oehbeitrag_id = array())
|
||||
{
|
||||
$params = array($von_studiensemester_kurzbz);
|
||||
|
||||
$allStdSemSpanQry = "SELECT count(studiensemester_kurzbz) as number_assigned FROM public.tbl_studiensemester sem
|
||||
WHERE start >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = ?)";
|
||||
|
||||
if ($bis_studiensemester_kurzbz != null)
|
||||
{
|
||||
$allStdSemSpanQry .= " AND (start <= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = ?))";
|
||||
$params[] = $bis_studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
$allStdSemSpanQry .= " AND EXISTS (SELECT 1 FROM bis.tbl_oehbeitrag
|
||||
JOIN public.tbl_studiensemester sem_von ON tbl_oehbeitrag.von_studiensemester_kurzbz = sem_von.studiensemester_kurzbz
|
||||
LEFT JOIN public.tbl_studiensemester sem_bis ON tbl_oehbeitrag.bis_studiensemester_kurzbz = sem_bis.studiensemester_kurzbz
|
||||
WHERE sem.start >= sem_von.start AND (sem.start <= sem_bis.start OR sem_bis.studiensemester_kurzbz IS NULL)";
|
||||
|
||||
if (!isEmptyArray($excluded_oehbeitrag_id))
|
||||
{
|
||||
$allStdSemSpanQry .= " AND oehbeitrag_id NOT IN ?";
|
||||
$params[] = $excluded_oehbeitrag_id;
|
||||
}
|
||||
|
||||
$allStdSemSpanQry .= ")";
|
||||
|
||||
$nrAssigned = $this->execQuery($allStdSemSpanQry, $params);
|
||||
|
||||
if (isError($nrAssigned))
|
||||
return $nrAssigned;
|
||||
|
||||
if (!hasData($nrAssigned))
|
||||
return error("Fehler bei Überprüfung der Möglichkeit der Semesterzuweisung");
|
||||
|
||||
return success(array(getData($nrAssigned)[0]->number_assigned == 0));
|
||||
}
|
||||
}
|
||||
@@ -611,7 +611,7 @@ class Prestudent_model extends DB_Model
|
||||
));
|
||||
}
|
||||
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
|
||||
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt)
|
||||
{
|
||||
$query = "SELECT ps.prestudent_id
|
||||
FROM public.tbl_prestudentstatus pss
|
||||
@@ -621,8 +621,49 @@ class Prestudent_model extends DB_Model
|
||||
WHERE ps.person_id = ?
|
||||
AND UPPER((sg.typ || sg.kurzbz) || ':' || sp.orgform_kurzbz) = ?
|
||||
AND pss.studiensemester_kurzbz = ?
|
||||
";
|
||||
AND";
|
||||
|
||||
if ($abgeschickt === 'true')
|
||||
$query .= " EXISTS";
|
||||
else
|
||||
$query .= " NOT EXISTS";
|
||||
|
||||
$query .= " (SELECT 1 FROM public.tbl_prestudentstatus spss
|
||||
JOIN public.tbl_prestudent sps USING(prestudent_id)
|
||||
WHERE sps.prestudent_id = ps.prestudent_id
|
||||
AND spss.bewerbung_abgeschicktamum IS NOT NULL)";
|
||||
|
||||
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets förderrelevant flag for a prestudent, from prestudent, or, if not set on prestudent level, from studiengang
|
||||
* @param int $prestudent_id
|
||||
* @return object
|
||||
*/
|
||||
public function getFoerderrelevant($prestudent_id)
|
||||
{
|
||||
$query = 'SELECT COALESCE (ps.foerderrelevant, stg.foerderrelevant) AS foerderrelevant
|
||||
FROM public.tbl_prestudent ps
|
||||
LEFT JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
WHERE prestudent_id = ?';
|
||||
|
||||
return $this->execQuery($query, array($prestudent_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets bis standort_code for a prestudent, from prestudent, or, if not set on prestudent level, from studiengang
|
||||
* @param int $prestudent_id
|
||||
* @return object
|
||||
*/
|
||||
public function getStandortCode($prestudent_id)
|
||||
{
|
||||
$query = 'SELECT COALESCE (ps.standort_code, stg.standort_code) AS standort_code
|
||||
FROM public.tbl_prestudent ps
|
||||
LEFT JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
WHERE prestudent_id = ?';
|
||||
|
||||
return $this->execQuery($query, array($prestudent_id));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,4 +11,29 @@ class Pruefung_model extends DB_Model
|
||||
$this->dbTable = 'campus.tbl_pruefung';
|
||||
$this->pk = 'pruefung_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Pruefungen of a person for a Studiensemester.
|
||||
* @param int $person_id
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @return object
|
||||
*/
|
||||
public function getByPerson($person_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = '
|
||||
SELECT prfg.*, pers.matr_nr, lv.ects, stg.studiengang_kz, prst.prestudent_id,
|
||||
UPPER(stg.typ||stg.kurzbz) AS studiengang, stg.bezeichnung AS studiengang_bezeichnung
|
||||
FROM public.tbl_person pers
|
||||
JOIN public.tbl_prestudent prst USING (person_id)
|
||||
JOIN public.tbl_student USING (prestudent_id)
|
||||
JOIN lehre.tbl_pruefung prfg USING (student_uid)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
|
||||
WHERE pers.person_id = ?
|
||||
AND le.studiensemester_kurzbz = ?
|
||||
ORDER BY prfg.datum, pruefung_id';
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $studiensemester_kurzbz));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,4 +12,125 @@ class Zeugnisnote_model extends DB_Model
|
||||
$this->pk = array('studiensemester_kurzbz', 'student_uid', 'lehrveranstaltung_id');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets ECTS sums of completed courses (Zeugnisnoten) of a person for a Studiensemester.
|
||||
* If no valid Noten for the course were entered, 0 ects is returned.
|
||||
* @param int $person_id
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @param bool $aktiv
|
||||
* @param bool $lehre
|
||||
* @param bool $offiziell
|
||||
* @param bool $positiv
|
||||
* @return object
|
||||
*/
|
||||
public function getEctsSumsByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null)
|
||||
{
|
||||
$params = array();
|
||||
|
||||
$qry = "SELECT DISTINCT ON (prst.prestudent_id) pers.matr_nr, stg.studiengang_kz, prst.prestudent_id, stg.erhalter_kz,
|
||||
UPPER(stg.typ||stg.kurzbz) AS studiengang, stg.bezeichnung AS studiengang_bezeichnung, COALESCE(summen.summe_ects, 0) AS summe_ects
|
||||
FROM public.tbl_person pers
|
||||
JOIN public.tbl_prestudent prst USING (person_id)
|
||||
JOIN public.tbl_prestudentstatus prstst USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
|
||||
LEFT JOIN (
|
||||
SELECT zgnisnote.student_uid, prestudent_id, zgnisnote.studiensemester_kurzbz, sum(ects) AS summe_ects
|
||||
FROM public.tbl_student
|
||||
LEFT JOIN lehre.tbl_zeugnisnote zgnisnote USING(student_uid)
|
||||
LEFT JOIN lehre.tbl_note note ON zgnisnote.note = note.note
|
||||
LEFT JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
WHERE TRUE";
|
||||
|
||||
if (isset($aktiv))
|
||||
{
|
||||
$qry .= ' AND (note.aktiv = ?)';
|
||||
$params[] = $aktiv;
|
||||
}
|
||||
|
||||
if (isset($lehre))
|
||||
{
|
||||
$qry .= ' AND (note.lehre = ?)';
|
||||
$params[] = $lehre;
|
||||
}
|
||||
|
||||
if (isset($offiziell))
|
||||
{
|
||||
$qry .= ' AND (note.offiziell = ?)';
|
||||
$params[] = $offiziell;
|
||||
}
|
||||
|
||||
if (isset($positiv))
|
||||
{
|
||||
$qry .= ' AND (note.positiv = ?)';
|
||||
$params[] = $positiv;
|
||||
}
|
||||
|
||||
$qry .= " GROUP BY zgnisnote.studiensemester_kurzbz, zgnisnote.student_uid, prestudent_id
|
||||
) summen ON prst.prestudent_id = summen.prestudent_id AND prstst.studiensemester_kurzbz = summen.studiensemester_kurzbz
|
||||
WHERE pers.person_id = ?
|
||||
AND prstst.studiensemester_kurzbz = ?
|
||||
ORDER BY prst.prestudent_id";
|
||||
|
||||
$params[] = $person_id;
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets courses (Zeugnisnoten) of a person for a Studiensemester.
|
||||
* @param int $person_id
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @param bool $aktiv
|
||||
* @param bool $lehre
|
||||
* @param bool $offiziell
|
||||
* @param bool $positiv
|
||||
* @return object
|
||||
*/
|
||||
public function getByPerson($person_id, $studiensemester_kurzbz, $aktiv = true, $lehre = null, $offiziell = null, $positiv = null)
|
||||
{
|
||||
$params = array($person_id, $studiensemester_kurzbz);
|
||||
|
||||
$qry = "SELECT zgnisnote.*, pers.matr_nr, lv.ects, stg.studiengang_kz, prst.prestudent_id, stg.erhalter_kz,
|
||||
UPPER(stg.typ||stg.kurzbz) AS studiengang, stg.bezeichnung AS studiengang_bezeichnung, note.note,
|
||||
note.bezeichnung AS note_bezeichnung
|
||||
FROM public.tbl_person pers
|
||||
JOIN public.tbl_prestudent prst USING (person_id)
|
||||
JOIN public.tbl_student USING (prestudent_id)
|
||||
JOIN lehre.tbl_zeugnisnote zgnisnote USING (student_uid)
|
||||
JOIN lehre.tbl_note note ON zgnisnote.note = note.note
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang stg ON prst.studiengang_kz = stg.studiengang_kz
|
||||
WHERE pers.person_id = ?
|
||||
AND zgnisnote.studiensemester_kurzbz = ?";
|
||||
|
||||
if (isset($aktiv))
|
||||
{
|
||||
$qry .= ' AND note.aktiv = ?';
|
||||
$params[] = $aktiv;
|
||||
}
|
||||
|
||||
if (isset($lehre))
|
||||
{
|
||||
$qry .= ' AND note.lehre = ?';
|
||||
$params[] = $lehre;
|
||||
}
|
||||
|
||||
if (isset($offiziell))
|
||||
{
|
||||
$qry .= ' AND note.offiziell = ?';
|
||||
$params[] = $offiziell;
|
||||
}
|
||||
|
||||
if (isset($positiv))
|
||||
{
|
||||
$qry .= ' AND note.positiv = ?';
|
||||
$params[] = $positiv;
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY zgnisnote.benotungsdatum';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,34 +152,36 @@ class Person_model extends DB_Model
|
||||
*/
|
||||
public function getPersonStammdaten($person_id, $zustellung_only = false)
|
||||
{
|
||||
$this->addSelect('public.tbl_person.*, s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
|
||||
$this->addSelect('public.tbl_person.*, tbl_person.staatsbuergerschaft AS staatsbuergerschaft_code, tbl_person.geburtsnation AS geburtsnation_code,
|
||||
s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
|
||||
$this->addJoin('bis.tbl_nation s', 'public.tbl_person.staatsbuergerschaft = s.nation_code', 'LEFT');
|
||||
$this->addJoin('bis.tbl_nation g', 'public.tbl_person.geburtsnation = g.nation_code', 'LEFT');
|
||||
|
||||
$person = $this->load($person_id);
|
||||
|
||||
if($person->error) return $person;
|
||||
if (isError($person)) return $person;
|
||||
|
||||
//return null if not found
|
||||
if(count($person->retval) < 1)
|
||||
if (!hasData($person))
|
||||
return success(null);
|
||||
|
||||
$this->KontaktModel->addDistinct();
|
||||
$this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
|
||||
$this->KontaktModel->addOrder('kontakttyp');
|
||||
$this->KontaktModel->addOrder('insertamum', 'DESC');
|
||||
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustellung' => true) : array('person_id' => $person_id);
|
||||
$kontakte = $this->KontaktModel->loadWhere($where);
|
||||
if($kontakte->error) return $kontakte;
|
||||
if (isError($kontakte)) return $kontakte;
|
||||
|
||||
$where = $zustellung_only === true ? array('person_id' => $person_id, 'zustelladresse' => true) : array('person_id' => $person_id);
|
||||
$this->AdresseModel->addSelect('public.tbl_adresse.*, bis.tbl_nation.kurztext AS nationkurztext');
|
||||
$this->AdresseModel->addJoin('bis.tbl_nation', 'tbl_adresse.nation = tbl_nation.nation_code', 'LEFT');
|
||||
$this->AdresseModel->addOrder('insertamum', 'DESC');
|
||||
$adressen = $this->AdresseModel->loadWhere($where);
|
||||
if($adressen->error) return $adressen;
|
||||
if (isError($adressen)) return $adressen;
|
||||
|
||||
$stammdaten = $person->retval[0];
|
||||
$stammdaten->kontakte = $kontakte->retval;
|
||||
$stammdaten->adressen = $adressen->retval;
|
||||
$stammdaten = getData($person)[0];
|
||||
$stammdaten->kontakte = hasData($kontakte) ? getData($kontakte) : array();
|
||||
$stammdaten->adressen = hasData($adressen) ? getData($adressen) : array();
|
||||
|
||||
return success($stammdaten);
|
||||
}
|
||||
@@ -263,4 +265,19 @@ class Person_model extends DB_Model
|
||||
|
||||
return success($result->vorname. ' '. $result->nachname);
|
||||
}
|
||||
|
||||
public function checkDuplicate($person_id)
|
||||
{
|
||||
$qry = "SELECT sp.person_id
|
||||
FROM public.tbl_person p
|
||||
LEFT JOIN public.tbl_person sp ON p.vorname = sp.vorname
|
||||
AND p.nachname = sp.nachname
|
||||
AND p.gebdatum = sp.gebdatum
|
||||
JOIN public.tbl_prestudent ps ON sp.person_id = ps.person_id
|
||||
JOIN public.tbl_prestudentstatus pss ON ps.prestudent_id = pss.prestudent_id
|
||||
WHERE p.person_id = ? AND sp.person_id != ? AND pss.status_kurzbz = ?";
|
||||
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $person_id, 'Abbrecher'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ class Betriebsmittelperson_model extends DB_Model
|
||||
* @param bool $isRetourniert False to retrieve only active Betriebsmittel.
|
||||
* @return array|bool
|
||||
*/
|
||||
public function getBetriebsmittel($person_id, $betriebsmitteltyp = null, $isRetourniert = null)
|
||||
public function getBetriebsmittel($person_id, $betriebsmitteltyp = null, $isRetourniert = null, $onlyAktiveBenutzer=false)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
@@ -28,8 +28,12 @@ class Betriebsmittelperson_model extends DB_Model
|
||||
|
||||
$this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
|
||||
|
||||
if( $onlyAktiveBenutzer ) {
|
||||
$this->addJoin('public.tbl_benutzer b', 'b.uid = wawi.tbl_betriebsmittelperson.uid AND b.aktiv = \'t\'');
|
||||
}
|
||||
|
||||
$condition = '
|
||||
person_id = '. $this->escape($person_id). '
|
||||
wawi.tbl_betriebsmittelperson.person_id = '. $this->escape($person_id). '
|
||||
';
|
||||
|
||||
if (is_string($betriebsmitteltyp)) {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
class Fehler_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'system.tbl_fehler';
|
||||
$this->pk = 'fehlercode';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
class Issue_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'system.tbl_issue';
|
||||
$this->pk = 'issue_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets number of open (non-resolved) issues.
|
||||
* @param string $fehlercode unique error code
|
||||
* @param int $person_id if provided, only issues with this person_id are counted.
|
||||
* @param string $oe_kurzbz if provided, only issues with this oe_kurzbz are counted.
|
||||
* @param string $fehlercode_extern if provided, only issues with this external fehlercode are counted (for identifying issues from external systems).
|
||||
* @return Object success with number of issues or error
|
||||
*/
|
||||
public function getOpenIssueCount($fehlercode, $person_id = null, $oe_kurzbz = null, $fehlercode_extern = null)
|
||||
{
|
||||
$params = array($fehlercode);
|
||||
// issue exists for a fehlercode (or fehlercode_extern), person_id, oe_kurzbz, if not verarbeitet yet
|
||||
$qry = 'SELECT count(*) as anzahl_open_issues FROM system.tbl_issue
|
||||
WHERE fehlercode = ?
|
||||
AND verarbeitetamum IS NULL';
|
||||
|
||||
if (!isEmptyString($fehlercode_extern))
|
||||
{
|
||||
$qry .= ' AND fehlercode_extern = ?';
|
||||
$params[] = $fehlercode_extern;
|
||||
}
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$qry .= ' AND person_id = ?';
|
||||
$params[] = $person_id;
|
||||
}
|
||||
|
||||
if (isset($oe_kurzbz))
|
||||
{
|
||||
$qry .= ' AND oe_kurzbz = ?';
|
||||
$params[] = $oe_kurzbz;
|
||||
}
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'ÖH-Beitragsverwaltung',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('unbeschraenkt'),
|
||||
'ui' => array('bearbeiten', 'loeschen', 'speichern', 'entfernen'),
|
||||
'oehbeitrag' => array('oehbeitraegeFestgelegt', 'fehlerHolenOehbeitraege', 'fehlerHolenSemester',
|
||||
'fehlerHinzufuegenOehbeitrag', 'fehlerAktualisierenOehbeitrag',
|
||||
'fehlerLoeschenOehbeitrag')
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/codex/oehbeitrag.css'),
|
||||
'customJSs' => array('public/js/tablesort/tablesort.js', 'public/js/codex/oehbeitrag.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('oehbeitrag', 'oehbeitragsVerwaltung') ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<button class="btn btn-default" id="addNewOeh"><?php echo $this->p->t('oehbeitrag', 'oehbeitragHinzufuegen') ?></button>
|
||||
<br />
|
||||
<br />
|
||||
<table class="table table-bordered table-condensed" id="oehbeitraegeTbl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo ucfirst($this->p->t('global', 'gueltigVon')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('global', 'gueltigBis')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('oehbeitrag', 'studierendenbetrag')) ?></th>
|
||||
<th><?php echo ucfirst($this->p->t('oehbeitrag', 'versicherungsbetrag')) ?></th>
|
||||
<th id="actionHeading"><?php echo ucfirst($this->p->t('ui', 'aktion')) ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$ORGANISATIONSEINHEIT = (isset($organisationseinheit_selected) && !is_null($organisationseinheit_selected)) ? array($organisationseinheit_selected) : $organisationseinheit;
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8,9,10';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -187,7 +187,7 @@ FROM
|
||||
(SELECT
|
||||
uid
|
||||
FROM
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
|
||||
ON tbl_benutzer.uid = ma.mitarbeiter_uid
|
||||
WHERE
|
||||
person_id = tmp_projektbetreuung.person_id
|
||||
@@ -268,7 +268,7 @@ FROM
|
||||
ELSE (oe.organisationseinheittyp_kurzbz ||
|
||||
\' \' || oe.bezeichnung)
|
||||
END AS "lv_oe_kurzbz",
|
||||
(vorname || \' \' || nachname) AS "lektor",
|
||||
(nachname || \' \' || vorname) AS "lektor",
|
||||
TRUNC(pb.stunden, 1) AS "stunden",
|
||||
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
|
||||
vertrag_id,
|
||||
|
||||
@@ -160,7 +160,7 @@ $this->load->view(
|
||||
'Ausbildungssemester_widget',
|
||||
array(
|
||||
DropdownWidget::SELECTED_ELEMENT => $ausbildungssemester_selected,
|
||||
'number_semester' => 6
|
||||
'number_semester' => 10
|
||||
),
|
||||
array(
|
||||
'name' => 'ausbildungssemester',
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
$STUDIENSEMESTER = $studiensemester_selected;
|
||||
$STUDIENGANG = (isset($studiengang_selected) && !is_null($studiengang_selected)) ? array($studiengang_selected) : $studiengang;
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
|
||||
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8,9,10';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<a href="outputAkteContent/<?php echo $dokument->akte_id ?>"><?php echo isEmptyString($dokument->titel) ? $dokument->bezeichnung : $dokument->titel ?></a>
|
||||
</td>
|
||||
<td>
|
||||
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?>>
|
||||
<select class="aktenid" id="aktenid_<?php echo $dokument->akte_id?>" <?php echo (isset($formalReadonly) ? 'disabled' : '') ?> autocomplete="off">
|
||||
<?php
|
||||
foreach($dokumententypen as $dokumenttyp)
|
||||
echo "<option " . ($dokumenttyp->bezeichnung === $dokument->dokument_bezeichnung ? 'selected' : '') . " value = " . $dokumenttyp->dokument_kurzbz . ">" . $dokumenttyp->bezeichnung . "</option>"
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Info Center',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'person' => array('vorname', 'nachname'),
|
||||
'global' => array('mailAnXversandt'),
|
||||
'ui' => array('bitteEintragWaehlen')
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css', 'public/css/infocenter/infocenterPersonDataset.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js', 'public/js/infocenter/infocenterPersonDataset.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
Abgewiesene
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/infocenter/infocenterAbgewiesenData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,87 @@
|
||||
<?php
|
||||
|
||||
$this->config->load('infocenter');
|
||||
$ABGEWIESENEN_STATUS = '\'Abgewiesener\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$LOGDATA_NAME = '\'Message sent\'';
|
||||
$LOGDATA_VON = '\'online\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
p.person_id AS "PersonID",
|
||||
ps.prestudent_id AS "PreStudentID",
|
||||
p.vorname AS "Vorname",
|
||||
p.nachname AS "Nachname",
|
||||
sg.kurzbzlang as "Studiengang",
|
||||
pss.insertamum AS "AbgewiesenAm",
|
||||
(
|
||||
SELECT l.zeitpunkt
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
AND '. $LOGDATA_NAME .' = (
|
||||
SELECT l.logdata->>\'name\'
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND '. $LOGDATA_VON .' = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.person_id = p.person_id
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
AND l.zeitpunkt >= pss.insertamum
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "Nachricht"
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
JOIN public.tbl_person p USING(person_id)
|
||||
JOIN public.tbl_studiengang sg USING(studiengang_kz)
|
||||
WHERE pss.status_kurzbz = '. $ABGEWIESENEN_STATUS .'
|
||||
AND pss.studiensemester_kurzbz = '. $STUDIENSEMESTER .'
|
||||
AND (sg.typ IN ('. $STUDIENGANG_TYP .')
|
||||
OR
|
||||
sg.studiengang_kz IN ('. $ADDITIONAL_STG .')
|
||||
)
|
||||
ORDER BY "AbgewiesenAm" DESC';
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'app' => InfoCenter::APP,
|
||||
'datasetName' => 'abgewiesen',
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'requiredPermissions' => 'infocenter',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
'PersonID',
|
||||
'PreStudentID',
|
||||
'Vorname',
|
||||
'Nachname',
|
||||
'Studiengang',
|
||||
'Abgewiesen am',
|
||||
'Nachricht'
|
||||
),
|
||||
|
||||
'formatRow' => function($datasetRaw) {
|
||||
if ($datasetRaw->{'Nachricht'} === null)
|
||||
{
|
||||
$datasetRaw->{'Nachricht'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'Nachricht'} = 'Ja';
|
||||
}
|
||||
|
||||
$datasetRaw->{'AbgewiesenAm'} = date_format(date_create($datasetRaw->{'AbgewiesenAm'}),'Y-m-d H:i');
|
||||
return $datasetRaw;
|
||||
}
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -6,7 +6,7 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\', \'Interessent rejected\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\'';
|
||||
$LOGDATA_NAME_PARKED = '\'Parked\'';
|
||||
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
|
||||
$LOGTYPE_KURZBZ = '\'Processstate\'';
|
||||
@@ -14,6 +14,7 @@
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
@@ -33,7 +34,7 @@
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "LastAction",
|
||||
(
|
||||
@@ -42,7 +43,7 @@
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "LastActionType",
|
||||
(
|
||||
@@ -54,12 +55,14 @@
|
||||
a.dokument_kurzbz in ('.$AKTE_TYP.')
|
||||
) AS "AnzahlAkte",
|
||||
(
|
||||
SELECT l.insertvon
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "User/Operator",
|
||||
(
|
||||
@@ -254,13 +257,14 @@
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE (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.bezeichnung = '.$ORG_NAME.'
|
||||
AND tbl_benutzerfunktion.uid = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1
|
||||
@@ -269,8 +273,10 @@
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
tpl.zeitpunkt,
|
||||
tpl.uid AS lockuser
|
||||
sp.nachname AS lockuser
|
||||
FROM system.tbl_person_lock tpl
|
||||
JOIN public.tbl_benutzer sb USING (uid)
|
||||
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
|
||||
WHERE tpl.app = '.$APP.'
|
||||
) pl USING(person_id)
|
||||
LEFT JOIN (
|
||||
@@ -439,13 +445,13 @@
|
||||
$datasetRaw->{'ZGVMNation'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
|
||||
@@ -101,6 +101,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (!is_null($duplicated)): ?>
|
||||
<div class="row alert-warning">
|
||||
<h3 class="header col-lg-12">
|
||||
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
|
||||
</h3>
|
||||
<div class="text-left col-lg-12">
|
||||
<?php
|
||||
foreach ($duplicated as $duplicate)
|
||||
{
|
||||
echo 'Person ID: ' . $duplicate->person_id . '<br />';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<br/>
|
||||
<section>
|
||||
<div class="row">
|
||||
|
||||
@@ -5,13 +5,14 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
|
||||
$REJECTED_STATUS = '\'Abgewiesener\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
|
||||
$query = '
|
||||
$query = '
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
@@ -27,7 +28,7 @@
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "LastAction",
|
||||
(
|
||||
@@ -36,16 +37,18 @@
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "LastActionType",
|
||||
(
|
||||
SELECT l.insertvon
|
||||
SELECT CASE WHEN sp.nachname IS NULL THEN l.insertvon ELSE sp.nachname END
|
||||
FROM system.tbl_log l
|
||||
LEFT JOIN public.tbl_benutzer on l.insertvon = tbl_benutzer.uid
|
||||
LEFT JOIN public.tbl_person sp on tbl_benutzer.person_id = sp.person_id
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "User/Operator",
|
||||
(
|
||||
@@ -231,13 +234,14 @@
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE (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.bezeichnung = '.$ORG_NAME.'
|
||||
AND tbl_benutzerfunktion.uid = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1
|
||||
@@ -246,8 +250,10 @@
|
||||
LEFT JOIN (
|
||||
SELECT tpl.person_id,
|
||||
tpl.zeitpunkt,
|
||||
tpl.uid AS lockuser
|
||||
sp.nachname AS lockuser
|
||||
FROM system.tbl_person_lock tpl
|
||||
JOIN public.tbl_benutzer sb USING (uid)
|
||||
JOIN public.tbl_person sp ON sb.person_id = sp.person_id
|
||||
WHERE tpl.app = '.$APP.'
|
||||
) pl USING(person_id)
|
||||
WHERE
|
||||
@@ -410,13 +416,13 @@
|
||||
$datasetRaw->{'ZGVMNation'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
$INTERESSENT_STATUS = '\'Interessent\'';
|
||||
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
|
||||
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
|
||||
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\'';
|
||||
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
|
||||
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
|
||||
$ORG_NAME = '\'InfoCenter\'';
|
||||
|
||||
$query = '
|
||||
$query = '
|
||||
SELECT
|
||||
p.person_id AS "PersonId",
|
||||
p.vorname AS "Vorname",
|
||||
@@ -25,7 +26,7 @@
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "LastAction",
|
||||
(
|
||||
@@ -34,7 +35,7 @@
|
||||
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
) AS "User/Operator",
|
||||
(
|
||||
@@ -182,13 +183,14 @@
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE (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.bezeichnung = '.$ORG_NAME.'
|
||||
AND tbl_benutzerfunktion.uid = (
|
||||
SELECT l.insertvon
|
||||
FROM system.tbl_log l
|
||||
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
|
||||
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
|
||||
AND l.person_id = p.person_id
|
||||
ORDER BY l.zeitpunkt DESC
|
||||
ORDER BY l.log_id DESC
|
||||
LIMIT 1
|
||||
)
|
||||
LIMIT 1
|
||||
@@ -347,13 +349,13 @@
|
||||
$datasetRaw->{'ZGVMNation'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
|
||||
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
|
||||
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Fehler Monitoring',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'dialoglib' => true,
|
||||
'phrases' => array(
|
||||
'ui',
|
||||
'fehlermonitoring'
|
||||
),
|
||||
'customCSSs' => array('public/css/issues/issuesDataset.css', 'public/css/sbadmin2/tablesort_bootstrap.css'),
|
||||
'customJSs' => array('public/js/issues/issuesDataset.js', 'public/js/bootstrapper.js'),
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
|
||||
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
|
||||
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('fehlermonitoring', 'fehlerMonitoring') ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/issues/issuesData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
$PERSON_ID = getAuthPersonId();
|
||||
$ALL_FUNKTIONEN_OE_KURZBZ = "('" . implode("','", array_keys($all_funktionen_oe_kurzbz)) . "')";
|
||||
$ALL_OE_KURZBZ_BERECHTIGT = "('" . implode("','", $all_oe_kurzbz_berechtigt) . "')";
|
||||
$RELEVANT_PRESTUDENT_STATUS = "('Aufgenommener', 'Student', 'Incoming', 'Diplomand', 'Abbrecher', 'Unterbrecher', 'Absolvent')";
|
||||
$LANGUAGE_INDEX = getUserLanguage() == 'German' ? '1' : '2';
|
||||
|
||||
// get issues for the oes of the logged user or for the persons (students, oe-zuordnung) of the oes
|
||||
$query = "WITH zustaendigkeiten AS (
|
||||
SELECT fehlercode,
|
||||
CASE
|
||||
WHEN zst.person_id = ".$PERSON_ID;
|
||||
|
||||
if (!isEmptyArray($all_funktionen_oe_kurzbz))
|
||||
{
|
||||
$query .= " OR (zst.oe_kurzbz IN $ALL_FUNKTIONEN_OE_KURZBZ AND zst.funktion_kurzbz IS NULL) /* if oe is specified in fehler_zustaendigkeiten */";
|
||||
|
||||
// check for each oe for each function if zustaendig
|
||||
foreach ($all_funktionen_oe_kurzbz as $oe_kurzbz => $funktionen_kurzbz)
|
||||
{
|
||||
foreach ($funktionen_kurzbz as $funktion_kurzbz)
|
||||
{
|
||||
$query .= " OR (zst.oe_kurzbz = '$oe_kurzbz' AND zst.funktion_kurzbz = '$funktion_kurzbz')";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$query .= " THEN TRUE
|
||||
ELSE FALSE
|
||||
END AS \"zustaendig\"
|
||||
FROM system.tbl_fehler_zustaendigkeiten zst
|
||||
)";
|
||||
|
||||
$query .= "SELECT issue_id, fehlercode AS \"Fehlercode\", iss.fehlercode_extern AS \"Fehlercode extern\", datum AS \"Datum\",
|
||||
inhalt AS \"Inhalt\", inhalt_extern AS \"Inhalt extern\", iss.person_id AS \"PersonId\", iss.oe_kurzbz AS \"OE\",
|
||||
ftyp.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlertyp\", stat.bezeichnung_mehrsprachig[".$LANGUAGE_INDEX."] AS \"Fehlerstatus\",
|
||||
verarbeitetvon AS \"Verarbeitet von\",verarbeitetamum AS \"Verarbeitet am\", fr.app AS \"Applikation\",
|
||||
fr.fehlertyp_kurzbz AS \"Fehlertypcode\", iss.status_kurzbz AS \"Statuscode\",
|
||||
pers.vorname AS \"Vorname\", pers.nachname AS \"Nachname\",
|
||||
CASE
|
||||
WHEN
|
||||
EXISTS(SELECT 1
|
||||
FROM zustaendigkeiten
|
||||
WHERE fehlercode = iss.fehlercode
|
||||
AND zustaendig = TRUE) /* If Zuständigkeit is defined for the oe/person, zustaendig. */
|
||||
THEN 'Ja'
|
||||
WHEN
|
||||
EXISTS(SELECT 1
|
||||
FROM zustaendigkeiten
|
||||
WHERE fehlercode = iss.fehlercode
|
||||
AND zustaendig = FALSE) /* If Zuständigkeit is defined for different oe/person, not zustaendig. */
|
||||
THEN 'Nein'
|
||||
ELSE 'Ja' /* If no Zuständigkeit defined, zustaendig by default. */
|
||||
END AS \"Hauptzuständig\"
|
||||
FROM system.tbl_issue iss
|
||||
JOIN system.tbl_fehler fr USING (fehlercode)
|
||||
JOIN system.tbl_fehlertyp ftyp USING (fehlertyp_kurzbz)
|
||||
JOIN system.tbl_issue_status stat USING (status_kurzbz)
|
||||
LEFT JOIN public.tbl_person pers ON iss.person_id = pers.person_id
|
||||
WHERE EXISTS ( /* if oe or person is specified in fehler_zustaendigkeiten */
|
||||
SELECT 1 FROM zustaendigkeiten
|
||||
WHERE fehlercode = iss.fehlercode
|
||||
AND zustaendig = TRUE)";
|
||||
|
||||
// show issue if it is assigend to oe of logged in user or to student of oe of logged in user
|
||||
if (!isEmptyArray($all_oe_kurzbz_berechtigt))
|
||||
{
|
||||
$query .= " OR iss.oe_kurzbz IN $ALL_OE_KURZBZ_BERECHTIGT /* if issue is for oe */";
|
||||
|
||||
$query .= " OR (iss.oe_kurzbz IS NULL AND EXISTS ( /* if person_id of issue is a student of studiengang oe */
|
||||
SELECT 1 FROM public.tbl_prestudent ps
|
||||
JOIN public.tbl_prestudentstatus pss USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang stg USING (studiengang_kz)
|
||||
WHERE person_id = iss.person_id
|
||||
AND stg.oe_kurzbz IN $ALL_OE_KURZBZ_BERECHTIGT
|
||||
AND pss.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
|
||||
AND NOT EXISTS (SELECT 1 /* irrelevant if already finished studies and studied a while ago */
|
||||
FROM public.tbl_prestudentstatus ps_finished
|
||||
JOIN public.tbl_studiensemester sem_finished USING (studiensemester_kurzbz)
|
||||
WHERE prestudent_id = ps.prestudent_id
|
||||
AND status_kurzbz IN ('Absolvent','Abbrecher','Abgewiesener')
|
||||
AND datum::date + interval '2 months' < NOW()
|
||||
AND EXISTS (SELECT 1 FROM public.tbl_prestudent /* if more recent prestudent exists, still display the issue */
|
||||
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN public.tbl_studiensemester USING (studiensemester_kurzbz)
|
||||
WHERE tbl_prestudentstatus.status_kurzbz IN $RELEVANT_PRESTUDENT_STATUS
|
||||
AND person_id = ps.person_id
|
||||
AND prestudent_id <> ps_finished.prestudent_id
|
||||
AND tbl_studiensemester.start::date > sem_finished.start::date)
|
||||
)
|
||||
)
|
||||
)";
|
||||
}
|
||||
|
||||
$query .= " ORDER BY CASE
|
||||
WHEN iss.status_kurzbz = '".IssuesLib::STATUS_NEU."' THEN 0
|
||||
WHEN iss.status_kurzbz = '".IssuesLib::STATUS_IN_BEARBEITUNG."' THEN 1
|
||||
ELSE 2
|
||||
END,
|
||||
CASE
|
||||
WHEN fehlertyp_kurzbz = '".IssuesLib::ERRORTYPE_CODE."' THEN 0
|
||||
WHEN fehlertyp_kurzbz = '".IssuesLib::WARNINGTYPE_CODE."' THEN 1
|
||||
ELSE 2
|
||||
END,
|
||||
datum DESC, fehlercode, issue_id DESC";
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'app' => 'core',
|
||||
'datasetName' => 'issues',
|
||||
'filter_id' => $this->input->get('filter_id'),
|
||||
'tableUniqueId' => 'issues',
|
||||
'requiredPermissions' => 'admin',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'checkboxes' => 'issue_id',
|
||||
'columnsAliases' => array(
|
||||
'ID',
|
||||
ucfirst($this->p->t('fehlermonitoring', 'fehlercode')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'fehlercodeExtern')),
|
||||
ucfirst($this->p->t('global', 'datum')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'inhalt')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'inhaltExtern')),
|
||||
'PersonId',
|
||||
ucfirst($this->p->t('lehre', 'organisationseinheit')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'fehlertyp')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'fehlerstatus')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'verarbeitetVon')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'verarbeitetAm')),
|
||||
ucfirst($this->p->t('global', 'applikation')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'fehlertypcode')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'statuscode')),
|
||||
ucfirst($this->p->t('person', 'vorname')),
|
||||
ucfirst($this->p->t('person', 'nachname')),
|
||||
ucfirst($this->p->t('fehlermonitoring', 'hauptzustaendig'))
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
if ($datasetRaw->{'Fehlercode extern'} == null)
|
||||
{
|
||||
$datasetRaw->{'Fehlercode extern'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Inhalt'} == null)
|
||||
{
|
||||
$datasetRaw->{'Inhalt'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Inhalt extern'} == null)
|
||||
{
|
||||
$datasetRaw->{'Inhalt extern'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'PersonId'} == null)
|
||||
{
|
||||
$datasetRaw->{'PersonId'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'OE'} == null)
|
||||
{
|
||||
$datasetRaw->{'OE'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Verarbeitet am'} == null)
|
||||
{
|
||||
$datasetRaw->{'Verarbeitet am'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'Verarbeitet von'} == null)
|
||||
{
|
||||
$datasetRaw->{'Verarbeitet von'} = '-';
|
||||
}
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
$mark = '';
|
||||
|
||||
if ($datasetRaw->Statuscode == IssuesLib::STATUS_BEHOBEN)
|
||||
$mark = "text-success";
|
||||
elseif ($datasetRaw->Statuscode == IssuesLib::STATUS_NEU || $datasetRaw->Statuscode == IssuesLib::STATUS_IN_BEARBEITUNG)
|
||||
{
|
||||
if ($datasetRaw->Fehlertypcode == IssuesLib::ERRORTYPE_CODE)
|
||||
{
|
||||
$mark = "text-danger";
|
||||
}
|
||||
elseif ($datasetRaw->Fehlertypcode == IssuesLib::WARNINGTYPE_CODE)
|
||||
{
|
||||
$mark = "text-warning";
|
||||
}
|
||||
}
|
||||
|
||||
return $mark;
|
||||
}
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
@@ -21,8 +21,6 @@
|
||||
<?php FilterWidget::loadViewSelectFilters(); ?>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- Filter save options -->
|
||||
<div>
|
||||
<?php FilterWidget::loadViewSaveFilter(); ?>
|
||||
|
||||
@@ -1,17 +1,28 @@
|
||||
<div class="up-down-border">
|
||||
|
||||
<br>
|
||||
<div>
|
||||
<span class="filter-span-label">
|
||||
<?php echo ucfirst($this->p->t('filter', 'filterHinzufuegen')); ?>:
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<select id="addFilter" class="drop-down-filters"></select>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="appliedFilters"></div>
|
||||
|
||||
<div class="margin-left-25">
|
||||
<span>
|
||||
<input id="applyFilter" type="button" value="<?php echo ucfirst($this->p->t('filter', 'filterApply')); ?>">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="appliedFilters"></div>
|
||||
|
||||
<div>
|
||||
<span class="filter-span-label">
|
||||
<?php echo ucfirst($this->p->t('filter', 'filterHinzufuegen')); ?>:
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<select id="addFilter" class="drop-down-filters"></select>
|
||||
</span>
|
||||
|
||||
<span>
|
||||
<input id="applyFilter" type="button" value="<?php echo ucfirst($this->p->t('global', 'hinzufuegen')); ?>">
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lehrelisthelper.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
@@ -64,183 +65,15 @@ if(isset($_GET['output']) && ($output='odt' || $output='doc'))
|
||||
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
|
||||
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
|
||||
|
||||
|
||||
|
||||
$doc = new dokument_export('Anwesenheitslist');
|
||||
|
||||
// Teilnehmende Gruppen laden
|
||||
$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
|
||||
UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
|
||||
semester,
|
||||
verband,
|
||||
gruppe,
|
||||
gruppe_kurzbz
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($studiensemester);
|
||||
if($lehreinheit!='')
|
||||
$qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
$gruppen_string = '';
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($gruppen_string!='')
|
||||
$gruppen_string.=', ';
|
||||
if($row->gruppe_kurzbz=='')
|
||||
$gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
|
||||
else
|
||||
$gruppen_string.=$row->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Verplante Räume laden
|
||||
$qry = "SELECT distinct(ort_kurzbz)
|
||||
FROM lehre.tbl_stundenplan
|
||||
WHERE lehreinheit_id in
|
||||
(
|
||||
SELECT lehreinheit_id
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)."
|
||||
)";
|
||||
if($lehreinheit!='')
|
||||
$qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
|
||||
$raum_string = '';
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($raum_string!='')
|
||||
$raum_string.=', ';
|
||||
if($row->ort_kurzbz!='')
|
||||
$raum_string.=$row->ort_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
$studiengang_bezeichnung=$stg->bezeichnung;
|
||||
$doc = new dokument_export('Anwesenheitslist');
|
||||
|
||||
$stg->getAllTypes();
|
||||
|
||||
$data = array(
|
||||
'gruppen'=>$gruppen_string,
|
||||
'bezeichnung'=>$lv->bezeichnung,
|
||||
'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id,
|
||||
'studiengang'=>$studiengang_bezeichnung,
|
||||
'studiengang_kz'=>$lv->studiengang_kz,
|
||||
'typ'=>$stg->studiengang_typ_arr[$stg->typ],
|
||||
'ects'=>$lv->ects,
|
||||
'sprache'=>$lv->sprache,
|
||||
'studiensemester'=>$studiensemester,
|
||||
'semester'=>$lv->semester,
|
||||
'orgform'=>$lv->orgform_kurzbz,
|
||||
'raum'=>$raum_string,
|
||||
);
|
||||
|
||||
//Lehrende der LV laden und in ein Array schreiben
|
||||
$lehrende = new lehreinheitmitarbeiter();
|
||||
$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit);
|
||||
$arr_lehrende = array();
|
||||
if (isset($lehrende->result))
|
||||
{
|
||||
foreach($lehrende->result AS $row)
|
||||
{
|
||||
$data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname));
|
||||
$arr_lehrende[]=mb_strtoupper($row->uid);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_note USING (note)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);
|
||||
|
||||
if($lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($studiensemester);
|
||||
$stsemdatumvon = $stsem_obj->start;
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$erhalter = new erhalter();
|
||||
$erhalter->getAll();
|
||||
|
||||
$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
|
||||
$anzahl_studierende = 0;
|
||||
$datum = new datum();
|
||||
$zusatz = '';
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($row->status!='Abbrecher' && $row->status!='Unterbrecher')
|
||||
{
|
||||
$anzahl_studierende++;
|
||||
|
||||
if($row->status=='Incoming') //Incoming
|
||||
$zusatz='(i)';
|
||||
else
|
||||
$zusatz='';
|
||||
|
||||
if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing
|
||||
$zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')';
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
|
||||
if($row->mitarbeiter_uid!='') //mitarbeiter
|
||||
$zusatz.='(ma)';
|
||||
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
$data[]=array('student'=>array(
|
||||
'vorname'=>$row->vorname,
|
||||
'nachname'=>$row->nachname,
|
||||
'personenkennzeichen'=>trim($row->matrikelnr),
|
||||
'matr_nr'=>$row->matr_nr,
|
||||
'semester'=>$row->semester,
|
||||
'verband'=>trim($row->verband),
|
||||
'gruppe'=>trim($row->gruppe),
|
||||
'zusatz'=>$zusatz,
|
||||
'studiengang_kurzbz'=>$row->kurzbzlang
|
||||
));
|
||||
}
|
||||
}
|
||||
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
|
||||
$data = array_reverse($data, true);
|
||||
$data['anzahl_studierende'] = $anzahl_studierende;
|
||||
$data = array_reverse($data, true);
|
||||
}
|
||||
$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit);
|
||||
$arr_lehrende = $lehrelisthelper->getArr_Lehrende();
|
||||
$data = $lehrelisthelper->getData();
|
||||
$studentuids = $lehrelisthelper->getStudentUids();
|
||||
|
||||
$doc->addDataArray($data,'anwesenheitsliste');
|
||||
if($lehreinheit!='')
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/vertrag.class.php');
|
||||
require_once '../../../include/covid/covidhelper.class.php';
|
||||
|
||||
$sprache = getSprache();
|
||||
$p=new phrasen($sprache);
|
||||
@@ -61,7 +62,8 @@
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('anwesenheitsliste/studiensemesterIstUngueltig'));
|
||||
|
||||
|
||||
$covidhelper = new CovidHelper();
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
@@ -69,6 +71,11 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<style type="text/css">
|
||||
.covidstatus {
|
||||
padding-left: 4em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -84,6 +91,7 @@
|
||||
<?php
|
||||
if($error==0)
|
||||
{
|
||||
$covid_content = '';
|
||||
$aw_content='';
|
||||
$awbild_content='';
|
||||
$nt_content='';
|
||||
@@ -98,6 +106,7 @@
|
||||
|
||||
$lv = new lehrveranstaltung($lvid);
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&stsem='.$stsem.'">' . $p->t('anwesenheitsliste/gesamtliste') . ' ' . $lv->bezeichnung . '</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&stsem=$stsem'>".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung</a></td></tr>";
|
||||
@@ -151,6 +160,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&lehreinheit_id='.$lastlehreinheit.'&stsem='.$stsem.'"> <img src="../../../skin/images/haken.gif" />' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
@@ -186,6 +196,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
$covid_content .= ($covidhelper->isUdfDefined()) ? '<tr><td><a href="covidstatusliste.php?stg='.$stg_kz.'.&sem='.$sem.'&lvid='.$lvid.'&lehreinheit_id='.$lastlehreinheit.'&stsem='.$stsem.'"> <img src="../../../skin/images/haken.gif" />' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')</a></td></tr>' : '';
|
||||
$aw_content .= "<tr><td><a class='Item' href='anwesenheitsliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$awbild_content .= "<tr><td><a class='Item' href='fotoliste.pdf.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
$nt_content .= "<tr><td><a class='Item' href='notenliste.xls.php?stg=$stg_kz&sem=$sem&lvid=$lvid&lehreinheit_id=$lastlehreinheit&stsem=$stsem'> <img src='../../../skin/images/haken.gif' />$kurzbz - $lehrform - $gruppen ($lektoren)</a></td></tr>";
|
||||
@@ -198,6 +209,11 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
if($covid_content!='')
|
||||
$covid_content = "<table border='0' cellspacing='0'><tr><td><h3>".$p->t('anwesenheitsliste/covidstatuslisten')."</h3></td></tr>".$covid_content."</table>";
|
||||
else
|
||||
$covid_content = ($covidhelper->isUdfDefined()) ? $p->t('anwesenheitsliste/keineStudentenVorhanden') : '';
|
||||
|
||||
if($aw_content!='')
|
||||
$aw_content = "<table border='0' cellspacing='0'><tr><td><h3>".$p->t('anwesenheitsliste/anwesenheitslisten')."</h3></td></tr>".$aw_content."</table>";
|
||||
else
|
||||
@@ -221,17 +237,20 @@
|
||||
$aw_content='';
|
||||
if(defined('CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN') && !CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN)
|
||||
$awbild_content='';
|
||||
|
||||
|
||||
echo "<table cellpadding='0' cellspacing='0'>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>$aw_content</td>
|
||||
<td class=\"covidstatus\">$covid_content</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>$awbild_content</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>$nt_content</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
</table>";
|
||||
|
||||
@@ -45,6 +45,8 @@ require_once ('../../../../include/note.class.php');
|
||||
require_once ('../../../../include/notenschluessel.class.php');
|
||||
require_once ('../../../../include/studienplan.class.php');
|
||||
require_once ('../../../../include/addon.class.php');
|
||||
require_once ('../../../../include/mobilitaet.class.php');
|
||||
require_once ('../../../../include/student.class.php');
|
||||
|
||||
$summe_stud = 0;
|
||||
$summe_t2 = 0;
|
||||
@@ -80,6 +82,8 @@ if (! $lv_obj->load($lvid))
|
||||
// Studiengang laden
|
||||
$stg_obj = new studiengang($lv_obj->studiengang_kz);
|
||||
|
||||
$stg_obj->studiengang_kz;
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
if (isset($_GET['stsem']))
|
||||
@@ -1113,8 +1117,8 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN campus.vw_student USING(uid)
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
|
||||
AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . "
|
||||
studiensemester_kurzbz = ". $db->db_add_param($stsem). "
|
||||
AND lehrveranstaltung_id = ". $db->db_add_param($lvid). "
|
||||
ORDER BY nachname, vorname ";
|
||||
|
||||
if ($result_stud = $db->db_query($qry_stud))
|
||||
@@ -1122,11 +1126,29 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
$i = 1;
|
||||
$errorshown = false;
|
||||
$summe_stud = $db->db_num_rows($result_stud);
|
||||
|
||||
//Ergänzung um Mobility-Eintrag (d.d.)
|
||||
while ($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
$grades[$row_stud->uid]['vorname'] = $row_stud->vorname;
|
||||
$grades[$row_stud->uid]['nachname'] = $row_stud->nachname;
|
||||
|
||||
$student = new student();
|
||||
$student->load($row_stud->uid);
|
||||
$student->result[]= $student;
|
||||
$prestudent_id = $student->prestudent_id;
|
||||
|
||||
$mobility = new mobilitaet();
|
||||
$mobility->loadPrestudent($prestudent_id);
|
||||
$output = $mobility->result;
|
||||
$eintrag = '';
|
||||
foreach ($output as $k)
|
||||
{
|
||||
if($k->mobilitaetstyp_kurzbz == 'GS')
|
||||
$eintrag = ' (d.d.)';
|
||||
}
|
||||
$grades[$row_stud->uid]['mobility'] = $eintrag;
|
||||
|
||||
// Noten aus Uebungstool
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lvid, $stsem);
|
||||
@@ -1167,12 +1189,13 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
|
||||
|
||||
$anzahlChanged = 0;
|
||||
foreach ($grades as $uid => $data)
|
||||
//Ausgabe Array
|
||||
{
|
||||
$htmlstring .= '<tr class="liste' . ($i % 2) . '">
|
||||
<td><a href="mailto:' . $uid . '@' . DOMAIN . '"><img src="../../../../skin/images/button_mail.gif"></a></td>
|
||||
<td>' . $db->convert_html_chars($uid) . '</td>
|
||||
<td id= '. $uid. "_nn". '>' . $db->convert_html_chars($data['nachname']) . '</td>
|
||||
<td id= '. $uid. "_vn". '>' . $db->convert_html_chars($data['vorname']) . '</td>';
|
||||
<td id= '. $uid. "_vn". '>' . $db->convert_html_chars($data['vorname']) . $db->convert_html_chars($data['mobility']) .'</td>';
|
||||
|
||||
// Bereits eingetragene Note ermitteln
|
||||
if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem))
|
||||
@@ -1619,5 +1642,11 @@ echo $htmlstring;
|
||||
|
||||
<div id="nachpruefung_div"></div>
|
||||
|
||||
<div id="legende">
|
||||
<hr>
|
||||
<h3>Legende</h2>
|
||||
<p>(d.d.)... Double Degree Program</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lehrelisthelper.class.php');
|
||||
require_once('../../../include/covid/covidhelper.class.php');
|
||||
|
||||
$debug = false;
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user=get_uid();
|
||||
|
||||
$berechtigung = new benutzerberechtigung();
|
||||
$berechtigung->getBerechtigungen($user);
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid = $_GET['lvid'];
|
||||
else
|
||||
die('Eine gueltige LvID muss uebergeben werden');
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$studiensemester = $_GET['stsem'];
|
||||
else
|
||||
die('Eine Studiensemester muss uebergeben werden');
|
||||
|
||||
if( !$berechtigung->isBerechtigt('admin')
|
||||
&& !$berechtigung->isBerechtigt('assistenz')
|
||||
&& !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's')
|
||||
&& !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester))
|
||||
die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen');
|
||||
|
||||
isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL;
|
||||
isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL;
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->load($lv->studiengang_kz);
|
||||
|
||||
$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit);
|
||||
$arr_lehrende = $lehrelisthelper->getArr_Lehrende();
|
||||
$data = $lehrelisthelper->getData();
|
||||
$studentuids = $lehrelisthelper->getStudentUids();
|
||||
|
||||
$covidhelper = new CovidHelper();
|
||||
$covidhelper->fetchCovidStatus($studentuids);
|
||||
$covidstatus = $covidhelper->getCovidStatus();
|
||||
|
||||
$now = new DateTime('now', new DateTimeZone('Europe/Vienna'));
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
?>
|
||||
<!<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<title>FHC - Nachweisliste</title>
|
||||
<link rel="stylesheet" type="text/css" href="../../../vendor/twbs/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link href="../../../vendor/components/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<h1>Nachweisliste "<?php echo $data['bezeichnung']; ?>"</h1>
|
||||
<ul>
|
||||
<li><strong>Gruppen</strong>: <?php echo $data['gruppen']; ?></li>
|
||||
<li><strong>Studiensemester</strong>: <?php echo $data['studiensemester']; ?></li>
|
||||
<li><strong>Lehrende</strong>: <?php echo $lehrelisthelper->getLehrende_String(); ?></li>
|
||||
<li><strong>generiert</strong>: <?php echo $now->format('d.m.Y H:i'); ?></li>
|
||||
<li><strong>Anzahl der Studierenden</strong>: <?php echo $data['anzahl_studierende']; ?></li>
|
||||
</ul>
|
||||
|
||||
<table class="table table-striped table-hover table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>lfd.Nr.</th>
|
||||
<th>Name</th>
|
||||
<th>Kennzeichen</th>
|
||||
<th>Gruppe</th>
|
||||
<th>Nachweis</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$len = strlen($data['anzahl_studierende']);
|
||||
$lfdnr = 1;
|
||||
foreach ($data as $value)
|
||||
{
|
||||
if( !(is_array($value) && isset($value['student'])) )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
$tmpstudent =& $value['student'];
|
||||
?>
|
||||
<tr class="<?php echo $covidhelper->getBootstrapClass($tmpstudent['uid'])?>" title="<?php echo $covidhelper->getTitle($tmpstudent['uid'])?>">
|
||||
<td><?php echo sprintf('%0' . $len . 'd', $lfdnr); ?></td>
|
||||
<td><?php echo $tmpstudent['nachname'] . ' ' . $tmpstudent['vorname'] . ' ' . $tmpstudent['zusatz']; ?></td>
|
||||
<td><?php echo $tmpstudent['personenkennzeichen']; ?></td>
|
||||
<td><?php echo $tmpstudent['semester'] . $tmpstudent['verband'] . $tmpstudent['gruppe']; ?></td>
|
||||
<td><?php echo $covidhelper->getIconHtml($tmpstudent['uid']); ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
$lfdnr++;
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if( $debug )
|
||||
{
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
|
||||
<div class="debug">
|
||||
<pre>
|
||||
<?php
|
||||
print_r($data);
|
||||
print_r($covidstatus);
|
||||
?>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,78 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p= new phrasen($sprache);
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title><?php echo $p->t('courseInformation/ectsLvInfo');?></title>
|
||||
|
||||
</head>
|
||||
<body style="padding: 10px">
|
||||
<h1><?php echo $p->t('courseInformation/lvInfoBeispiele');?></h1>
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td width="85%">
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<ul>
|
||||
<li> <a class="Item" href='index.php'><font size='3'><?php echo $p->t('global/bearbeiten');?></font></a></li>
|
||||
<li> <a class="Item" href='freigabe.php'><font size='3'><?php echo $p->t('courseInformation/freigabe')?></font></a></li>
|
||||
<li> <a class="Item" href='beispiele.php'><font size='3'><?php echo $p->t('global/beispiele');?></font></a></li>
|
||||
<li> <a class="Item" href='terminologie.php'><font size='3'><?php echo $p->t('courseInformation/terminologie')?></font></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td class="tdwidth10">
|
||||
<ul>
|
||||
<!--
|
||||
<li><a href='../../../../documents/lva_info/Beispiel__IT_Projektarbeit_6.pdf' target="_blank">Beispiel IT Projektarbeit (kommentiert und ausgefüllt)</a></li>
|
||||
<li><a href='../../../../documents/lva_info/Beispiel_Balog.pdf' target="_blank"">Beispiel Computerarchitektur (ausgefüllt)</a></li>
|
||||
<li><a href='../../../../documents/lva_info/Beispiel_Woletz.pdf' target="_blank">Beispiel Projektmanagement (ausgefüllt)</a></li>
|
||||
-->
|
||||
<li><a href='Beispiel_Projektmarketing.pdf' target='_blank' class='Item'><?php echo $p->t('courseInformation/beispielProjektmarketing');?></a></li>
|
||||
<li><a href='Beispiel_ITProjektarbeit_at.pdf' target='_blank' class='Item'><?php echo $p->t('courseInformation/beispielItProjektarbeitDeutsch');?></a></li>
|
||||
<li><a href='Beispiel_ITProjektarbeit_en.pdf' target='_blank' class='Item'><?php echo $p->t('courseInformation/beispielItProjektarbeitEnglisch');?></a></li>
|
||||
<li><a href='Beispiel_Computerarchitektur.pdf' target='_blank' class='Item'><?php echo $p->t('courseInformation/beispielComputerarchitektur');?></a></li>
|
||||
<li><a href='Beispiel_Change_Management.pdf' target='_blank' class='Item'><?php echo $p->t('courseInformation/beispielMSEChangeManagement');?></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,363 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*
|
||||
@author Andres Oesterreicher
|
||||
@date 20.10.2005
|
||||
@brief Formular zum Freigeben der LV Informationen aus der tabelle tbl_lvinfo
|
||||
|
||||
@edit 08-11-2006 Versionierung entfernt. Studiensemester = WS2007
|
||||
03-01-2006 Anpassung an neue DB
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/basis_db.class.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/lvinfo.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
//if(!check_lektor($user))
|
||||
// die('<center>'.$p->t('global/keineBerechtigungFuerDieseSeite').'</center>');
|
||||
|
||||
/* WriteLog($qry,$uid)
|
||||
* @brief Schreib die Querys im format: uid - datum - qry ins LogFile
|
||||
* @param $qry Query anweisung
|
||||
* $uid Username
|
||||
* @return true wenn ok false wenn fehler beim oeffnen
|
||||
*/
|
||||
function WriteLog($qry,$uid)
|
||||
{
|
||||
if($fp=fopen(LOG_PATH.'lvinfo.log',"a"))
|
||||
{
|
||||
fwrite($fp,"\n");
|
||||
fwrite($fp,$uid." ". date("d.m.Y - H:i:s") . " ". $qry);
|
||||
fclose($fp);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$lv=trim((isset($_REQUEST['lv']) ? $_REQUEST['lv']:''));
|
||||
|
||||
//Studiengang der Angezeigt werden soll
|
||||
$stg=trim((isset($_REQUEST['stg']) ? $_REQUEST['stg']:''));
|
||||
//Semester das angezeigt werden soll
|
||||
$sem=trim((isset($_REQUEST['sem']) ? $_REQUEST['sem']:''));
|
||||
|
||||
if (!$rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))
|
||||
die ($rechte->errormsg);
|
||||
|
||||
if(isset($_GET["lv"])) //Id des DS der freigegeben/nicht freigegeben werden soll
|
||||
$id=$_GET["lv"];
|
||||
|
||||
if(isset($_GET["del"])) //Wenn diese Variable gesetzt ist dann wird DS mit $idde und $iden geloescht
|
||||
$del=$_GET["del"];
|
||||
|
||||
if(isset($_GET["changestat"])) //Wenn diese Variable gesetzt ist dann wird DS mit $id freigegeben/nicht freigegeben
|
||||
$changestat=$_GET["changestat"];
|
||||
|
||||
if(isset($_POST["status"]) && $_POST["status"] =='changestg')
|
||||
unset($sem);
|
||||
|
||||
if(isset($del) && isset($lv))
|
||||
{
|
||||
//Loeschen der beiden Datensaetze
|
||||
|
||||
$lvinfo_obj = new lvinfo();
|
||||
$db->db_query('BEGIN');
|
||||
if($lvinfo_obj->delete($lv))
|
||||
{
|
||||
if(!WriteLog($lvinfo_obj->lastqry,$user))
|
||||
{
|
||||
echo "<br>".$p->t('courseInformation/fehlerBeimSchreibenDesLog')."<br>";
|
||||
}
|
||||
$db->db_query('COMMIT');
|
||||
}
|
||||
else
|
||||
{
|
||||
$db->db_query('ROLLBACK');
|
||||
echo "<br>".$p->t('global/fehleraufgetreten')."<br>";
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($changestat) && isset($lv) && isset($_GET['lang']))
|
||||
{
|
||||
//Setzt die Spalte genehmigt auf den entsprechenden Wert
|
||||
//=Wenn Hackerl angeklickt wird
|
||||
|
||||
$qry="SELECT genehmigt FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache=";
|
||||
if($_GET['lang']=='de')
|
||||
$qry.= $db->db_add_param(ATTR_SPRACHE_DE);
|
||||
else
|
||||
$qry.= $db->db_add_param(ATTR_SPRACHE_EN);
|
||||
|
||||
if($result=$db->db_query($qry))
|
||||
{
|
||||
if($row=$db->db_fetch_object($result))
|
||||
{
|
||||
$wert = $row->genehmigt=='t'?'false':'true';
|
||||
$qry="UPDATE campus.tbl_lvinfo SET genehmigt=$wert
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache=";
|
||||
if($_GET['lang']=='de')
|
||||
$qry .= $db->db_add_param(ATTR_SPRACHE_DE);
|
||||
else
|
||||
$qry .= $db->db_add_param(ATTR_SPRACHE_EN);
|
||||
|
||||
if($db->db_query($qry))
|
||||
WriteLog($qry,$user);
|
||||
else
|
||||
echo $p->t('global/fehlerBeimLesenAusDatenbank');
|
||||
}
|
||||
else
|
||||
echo $p->t('global/fehlerBeimLesenAusDatenbank');
|
||||
}
|
||||
else
|
||||
echo $p->t('global/fehlerBeimLesenAusDatenbank');
|
||||
}
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../../../skin/jquery.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<title><?php echo $p->t('courseInformation/ectsLvInfo');?></title>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
function ask() {
|
||||
return confirm("<?php echo $p->t('global/warnungWirklichLoeschen');?>");
|
||||
}
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[1,0]],
|
||||
widgets: ["zebra"],
|
||||
headers : {0:{sorter: false}}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body style="padding:10px">
|
||||
<h1><?php echo $p->t('courseInformation/lvInfoFreigabe');?></h1>
|
||||
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td width="85%">
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<ul>
|
||||
<li> <a href='index.php?<?php echo "stg=$stg&sem=".(isset($sem)?$sem:'')."&lvid=$lv"?>'><font size='3'><?php echo $p->t('global/bearbeiten');?></font></a></li>
|
||||
<li> <a href='freigabe.php?<?php echo "stg=$stg&sem=".(isset($sem)?$sem:'')."&lv=$lv"?>'><font size='3'><?php echo $p->t('courseInformation/freigabe');?></font></a></li>
|
||||
<li> <a href='beispiele.php'><font size='3'><?php echo $p->t('global/beispiele');?></font></a></li>
|
||||
<!--<li> <a href='terminologie.php'><font size='3'><?php echo $p->t('courseInformation/terminologie');?></font></a></li>-->
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<?php
|
||||
//DropDown Menues zur Auswahl von Studiengang und Semester anzeigen
|
||||
|
||||
echo "<form name='auswFrm' action='".$_SERVER['PHP_SELF']."' method='POST'>";
|
||||
echo "<input type='hidden' name='status' value='a'>";
|
||||
echo "<input type='hidden' name='lv' value='$lv'>";
|
||||
//stg Drop Down
|
||||
$qry = "SELECT distinct tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kurzbzlang FROM campus.tbl_lvinfo, lehre.tbl_lehrveranstaltung, public.tbl_studiengang
|
||||
WHERE tbl_lvinfo.aktiv=true
|
||||
AND tbl_lvinfo.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
|
||||
AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz
|
||||
ORDER by kurzbzlang";
|
||||
if(!$result=$db->db_query($qry))
|
||||
die ('<center>'.$p->t('global/fehlerBeimLesenAusDatenbank').'</center>');
|
||||
|
||||
echo $p->t('global/studiengang')." <SELECT name='stg' onChange='javascript:window.document.auswFrm.status.value=\"changestg\";window.document.auswFrm.submit();'>";
|
||||
//$firststg;
|
||||
$vorhanden=false;
|
||||
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$row->studiengang_kz))
|
||||
{
|
||||
if(!isset($firststg))
|
||||
$firststg=$row->studiengang_kz;
|
||||
if(!isset($stg))
|
||||
$stg=$row->studiengang_kz;
|
||||
if($stg==$row->studiengang_kz)
|
||||
{
|
||||
echo "<option value='$row->studiengang_kz' selected>$row->kurzbzlang</option>";
|
||||
$vorhanden=true;
|
||||
}
|
||||
else
|
||||
echo "<option value='$row->studiengang_kz'>$row->kurzbzlang</option>";
|
||||
}
|
||||
}
|
||||
echo "</SELECT>";
|
||||
|
||||
if(!$vorhanden) //Wenn $stg einen Wert enthaelt der nicht in der Liste vorkommt wird der erste Eintrag der Liste ausgewaehlt
|
||||
$stg=$firststg;
|
||||
|
||||
//Semester Drop Down
|
||||
$qry = "SELECT distinct semester FROM campus.tbl_lvinfo, lehre.tbl_lehrveranstaltung
|
||||
WHERE tbl_lvinfo.aktiv=true
|
||||
AND tbl_lvinfo.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
|
||||
AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($stg)."
|
||||
ORDER by semester";
|
||||
if(!$result=$db->db_query($qry))
|
||||
die ("<center>".$p->t('global/fehleraufgetreten')."</center>");
|
||||
|
||||
echo " ".$p->t('global/semester')." <SELECT name='sem' onChange='javascript:window.document.auswFrm.submit();'>";
|
||||
|
||||
//$firstsem;
|
||||
$vorhanden=false;
|
||||
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
if(!isset($firstsem))
|
||||
$firstsem = $row->semester;
|
||||
|
||||
if(!isset($sem))
|
||||
$sem=$row->semester;
|
||||
|
||||
if($sem==$row->semester)
|
||||
{
|
||||
echo "<option value='$row->semester' selected>$row->semester</option>";
|
||||
$vorhanden=true;
|
||||
}
|
||||
else
|
||||
echo "<option value='$row->semester'>$row->semester</option>";
|
||||
}
|
||||
echo "</SELECT>";
|
||||
if(!$vorhanden) //Wenn $sem einen Wert enthaelt der nicht in der Liste vorkommt wird der erste Eintrag der Liste ausgewaehlt
|
||||
$sem=$firstsem;
|
||||
|
||||
//Anzeigen der Liste mit den LV - Informationen
|
||||
?>
|
||||
<br><br>
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<table id="myTable" class="tablesorter">
|
||||
<thead>
|
||||
<tr class='liste'>
|
||||
<th></th>
|
||||
<th><?php echo $p->t('global/lehrveranstaltung');?></th>
|
||||
<th><?php echo $p->t('courseInformation/bearbeitetVon');?></th>
|
||||
<th><?php echo $p->t('courseInformation/updateAm');?></th>
|
||||
<th><?php echo $p->t('global/anzeigen');?></th>
|
||||
<th><?php echo $p->t('courseInformation/freigeben');?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<?php
|
||||
$qry="SELECT *, tbl_lehrveranstaltung.bezeichnung as bezeichnung,
|
||||
to_char(tbl_lvinfo.updateamum,'DD.MM.YYYY HH24:MI') as amum,
|
||||
tbl_lvinfo.updateamum as updateamum, tbl_lvinfo.updatevon as updatevon
|
||||
FROM
|
||||
campus.tbl_lvinfo
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
studiengang_kz=".$db->db_add_param($stg)."
|
||||
AND semester=".$db->db_add_param($sem)." AND tbl_lvinfo.aktiv=true
|
||||
AND tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_DE)."
|
||||
ORDER BY tbl_lehrveranstaltung.bezeichnung ASC";
|
||||
|
||||
if(!$result=$db->db_query($qry))
|
||||
die("<center>Fehler bei einer Datenbankabfrage</center>");
|
||||
|
||||
$i=-1;
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
$i++;
|
||||
$qry1="SELECT *,
|
||||
tbl_lehrveranstaltung.bezeichnung as bezeichnung,
|
||||
tbl_lvinfo.updatevon as updatevon
|
||||
FROM
|
||||
campus.tbl_lvinfo
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_EN)."
|
||||
AND lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id);
|
||||
|
||||
if(!$result1=$db->db_query($qry1))
|
||||
die("<center>Fehler bei einer Datenbankabfrage</center>");
|
||||
|
||||
if(!$row1=$db->db_fetch_object($result1))
|
||||
die("<center>Fehler bei einer Datenbankabfrage</center>");
|
||||
|
||||
$qry2="SELECT vorname, nachname FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($row->updatevon);
|
||||
|
||||
$style='';
|
||||
if ($lv==$row->lehrveranstaltung_id)
|
||||
$style='style="background-color: #AAA; border-top: 1px solid black; border-bottom: 1px solid black"';
|
||||
|
||||
$bearbeitet=$row->updatevon;
|
||||
if($result2=$db->db_query($qry2))
|
||||
if($row2=$db->db_fetch_object($result2))
|
||||
$bearbeitet=$row2->vorname.' '.$row2->nachname;
|
||||
echo "\n";
|
||||
echo "<tr class='liste".($i%2)."'>"."\n";
|
||||
echo "<td $style align='center'><a href='".$_SERVER['PHP_SELF']."?del=1&stg=$stg&sem=$sem&lv=$row->lehrveranstaltung_id' onClick='return ask();'>Delete</a></td>"."\n";
|
||||
echo "<td $style>$row->bezeichnung</td>"."\n";
|
||||
//echo "<td align='center'>$row->studiensemester_kurzbz</td>"."\n";
|
||||
echo "<td $style>$bearbeitet</td>"."\n";
|
||||
echo "<td $style>".$row->amum."</td>"."\n";
|
||||
echo "<td $style align='center'><a href='#' onClick='javascript:window.open(\"preview.php?lv=$row->lehrveranstaltung_id&language=de\",\"Preview\",\"width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes\");'>German</a> ";
|
||||
echo "<a href='#' onClick='javascript:window.open(\"preview.php?lv=$row1->lehrveranstaltung_id&language=en\",\"Preview\",\"width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes\");'>English</a></td>"."\n";
|
||||
echo "<td $style align='center'>DE <input type='checkbox' onClick='javascript:window.location.href=\"".$_SERVER['PHP_SELF']."?changestat=1&stg=$stg&sem=$sem&lv=$row->lehrveranstaltung_id&lang=de\";' ".($row->genehmigt=='t'?'checked':'').">"."\n";
|
||||
echo "<input type='checkbox' onClick='javascript:window.location.href=\"".$_SERVER['PHP_SELF']."?changestat=1&stg=$stg&sem=$sem&lv=$row->lehrveranstaltung_id&lang=en\";' ".($row1->genehmigt=='t'?'checked':'')."> EN</td>"."\n";
|
||||
echo "</tr>";
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,914 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/* @author Andres Oesterreicher
|
||||
@date 20.10.2005
|
||||
@brief Formular zum eintragen der ECTS Information auf Deutsch und Englisch
|
||||
Die Informationen werden in der Tabelle tbl_lvinfo gespeichert.
|
||||
|
||||
@edit 08-11-2006 Versionierung entfernt: Studiensemester=WS2007
|
||||
02-01-2007 Umstellung auf die neue DB
|
||||
*/
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../config/global.config.inc.php');
|
||||
require_once('../../../../include/basis_db.class.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/lvinfo.class.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
require_once('../../../../include/safehtml/safehtml.class.php');
|
||||
require_once('../../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../../include/mail.class.php');
|
||||
require_once('../../../../include/benutzer.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
$sprache1 = getSprache();
|
||||
$p=new phrasen($sprache1);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$output = '';
|
||||
$errormsg = '';
|
||||
$okmsg='';
|
||||
|
||||
$lv = '';
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title><?php echo $p->t('courseInformation/ectsInformation')?></title>
|
||||
<style type="text/css">
|
||||
textarea
|
||||
{
|
||||
font-size: 13px;
|
||||
}
|
||||
</style>
|
||||
<script language="JavaScript" type="text/javascript">
|
||||
function save()
|
||||
{
|
||||
window.document.editFrm.status.value="save";
|
||||
window.document.editFrm.action="<?php echo $_SERVER['PHP_SELF']; ?>";
|
||||
window.document.editFrm.target="_self";
|
||||
window.document.editFrm.submit();
|
||||
}
|
||||
function freigeben()
|
||||
{
|
||||
window.document.editFrm.status.value="freigeben";
|
||||
window.document.editFrm.action="<?php echo $_SERVER['PHP_SELF']; ?>";
|
||||
window.document.editFrm.target="_self";
|
||||
window.document.editFrm.submit();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body style="padding: 10px">
|
||||
<?php
|
||||
$oe_kurzbz='';
|
||||
function Cut($string)
|
||||
{
|
||||
if(strlen($string)>50)
|
||||
return substr($string,0,47)."...";
|
||||
else
|
||||
return $string;
|
||||
}
|
||||
|
||||
if(isset($_GET['lvid']))
|
||||
$lv=$_GET['lvid'];
|
||||
|
||||
//Variablenuebernahme
|
||||
if(isset($_POST['lv'])) //LehrveranstaltungsID
|
||||
{
|
||||
$lv = $_POST['lv'];
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
$lv_obj->load($lv);
|
||||
$oe_kurzbz = $lv_obj->oe_kurzbz;
|
||||
}
|
||||
|
||||
if(isset($_GET['lvid']))
|
||||
{
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
$lv_obj->load($lv);
|
||||
|
||||
if(!isset($stg))
|
||||
{
|
||||
$stg = $lv_obj->studiengang_kz;
|
||||
$oe_kurzbz = $lv_obj->oe_kurzbz;
|
||||
}
|
||||
if(!isset($sem))
|
||||
$sem = $lv_obj->semester;
|
||||
}
|
||||
else
|
||||
{
|
||||
$stg = '';
|
||||
}
|
||||
|
||||
if(isset($_POST['stg']))
|
||||
{
|
||||
$stg = $_POST['stg'];
|
||||
if(!isset($oe_kurzbz))
|
||||
{
|
||||
$oe = new studiengang();
|
||||
$oe->load($stg);
|
||||
$oe_kurzbz = $oe->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
if(!isset($sem) && isset($_POST['sem']))
|
||||
$sem = $_POST['sem'];
|
||||
|
||||
|
||||
if(isset($_POST['changed'])) //Gibt an welches der Auswahlfelder geaendert wurde
|
||||
$changed = $_POST['changed'];
|
||||
|
||||
if(isset($_POST['status']))
|
||||
$status = $_POST['status'];
|
||||
|
||||
// if(isset($_POST["freigeben"])) //Wird auf 'ja' gesetzt wenn gleich freigegebenwerden soll nach dem Speichern
|
||||
// $freigeben = $_POST["freigeben"];
|
||||
|
||||
if(isset($_POST['sprache'])) //Sprache fuer dieses Lehrfach
|
||||
$sprache = $_POST['sprache'];
|
||||
|
||||
// Berechtigungen ueberpruefen
|
||||
$lektor_der_lv = false;
|
||||
$lektor = new lehreinheitmitarbeiter();
|
||||
$lektor_der_lv = $lektor->existsLV($lv, null, $user);
|
||||
|
||||
// Bearbeiten nur moeglich, wenn Lektor der LV und bearbeiten fuer Lektoren aktiviert ist
|
||||
// Oder Berechtigung zum Bearbeiten eingetragen ist
|
||||
$berechtigt = true;
|
||||
if(!(
|
||||
(!defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && $lektor_der_lv)
|
||||
|| (defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT==true && $lektor_der_lv)
|
||||
|| $rechte->isBerechtigt('lehre/lvinfo',$oe_kurzbz)
|
||||
|| $rechte->isBerechtigt('lehre/lvinfo',$stg)
|
||||
)
|
||||
)
|
||||
{
|
||||
$berechtigt = false;
|
||||
}
|
||||
|
||||
//Variablen fuer das Formular
|
||||
$lehrziele_de = (isset($_POST['lehrziele_de'])?$_POST['lehrziele_de']:'');
|
||||
$lehrinhalte_de = (isset($_POST['lehrinhalte_de'])?$_POST['lehrinhalte_de']:'');
|
||||
$voraussetzungen_de = (isset($_POST['voraussetzungen_de'])?$_POST['voraussetzungen_de']:'');
|
||||
$unterlagen_de = (isset($_POST['unterlagen_de'])?$_POST['unterlagen_de']:'');
|
||||
$pruefungsordnung_de = (isset($_POST['pruefungsordnung_de'])?$_POST['pruefungsordnung_de']:'');
|
||||
$anmerkungen_de = (isset($_POST['anmerkungen_de'])?$_POST['anmerkungen_de']:'');
|
||||
$kurzbeschreibung_de = (isset($_POST['kurzbeschreibung_de'])?$_POST['kurzbeschreibung_de']:'');
|
||||
$anwesenheit_de = (isset($_POST['anwesenheit_de'])?$_POST['anwesenheit_de']:'');
|
||||
$freig_de = (isset($_POST['freig_de'])?($_POST['freig_de']=='on' && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false):'');
|
||||
$methodik_de = (isset($_POST['methodik_de'])?$_POST['methodik_de']:'');
|
||||
//$titel_de = (isset($_POST['titel_de'])?$_POST['titel_de']:'');
|
||||
|
||||
$parser = new SafeHTML();
|
||||
$lehrziele_de = $parser->parse($lehrziele_de);
|
||||
$parser = new SafeHTML();
|
||||
$lehrinhalte_de = $parser->parse($lehrinhalte_de);
|
||||
$parser = new SafeHTML();
|
||||
$voraussetzungen_de = $parser->parse($voraussetzungen_de);
|
||||
$parser = new SafeHTML();
|
||||
$unterlagen_de = $parser->parse($unterlagen_de);
|
||||
$parser = new SafeHTML();
|
||||
$pruefungsordnung_de = $parser->parse($pruefungsordnung_de);
|
||||
$parser = new SafeHTML();
|
||||
$anmerkungen_de = $parser->parse($anmerkungen_de);
|
||||
$parser = new SafeHTML();
|
||||
$kurzbeschreibung_de = $parser->parse($kurzbeschreibung_de);
|
||||
$parser = new SafeHTML();
|
||||
$anwesenheit_de = $parser->parse($anwesenheit_de);
|
||||
$parser = new SafeHTML();
|
||||
$freig_de = $parser->parse($freig_de);
|
||||
$parser = new SafeHTML();
|
||||
$methodik_de = $parser->parse($methodik_de);
|
||||
|
||||
$lehrziele_en = (isset($_POST['lehrziele_en'])?$_POST['lehrziele_en']:'');
|
||||
$lehrinhalte_en = (isset($_POST['lehrinhalte_en'])?$_POST['lehrinhalte_en']:'');
|
||||
$voraussetzungen_en = (isset($_POST['voraussetzungen_en'])?$_POST['voraussetzungen_en']:'');
|
||||
$unterlagen_en = (isset($_POST['unterlagen_en'])?$_POST['unterlagen_en']:'');
|
||||
$pruefungsordnung_en = (isset($_POST['pruefungsordnung_en'])?$_POST['pruefungsordnung_en']:'');
|
||||
$anmerkungen_en = (isset($_POST['anmerkungen_en'])?$_POST['anmerkungen_en']:'');
|
||||
$kurzbeschreibung_en = (isset($_POST['kurzbeschreibung_en'])?$_POST['kurzbeschreibung_en']:'');
|
||||
$anwesenheit_en = (isset($_POST['anwesenheit_en'])?$_POST['anwesenheit_en']:'');
|
||||
$freig_en = (isset($_POST['freig_en'])?($_POST['freig_en']=='on' && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false):'');
|
||||
$methodik_en = (isset($_POST['methodik_en'])?$_POST['methodik_en']:'');
|
||||
//$titel_en = (isset($_POST['titel_en'])?$_POST['titel_en']:'');
|
||||
|
||||
$parser = new SafeHTML();
|
||||
$lehrziele_en = $parser->parse($lehrziele_en);
|
||||
$parser = new SafeHTML();
|
||||
$lehrinhalte_en = $parser->parse($lehrinhalte_en);
|
||||
$parser = new SafeHTML();
|
||||
$voraussetzungen_en = $parser->parse($voraussetzungen_en);
|
||||
$parser = new SafeHTML();
|
||||
$unterlagen_en = $parser->parse($unterlagen_en);
|
||||
$parser = new SafeHTML();
|
||||
$pruefungsordnung_en = $parser->parse($pruefungsordnung_en);
|
||||
$parser = new SafeHTML();
|
||||
$anmerkungen_en = $parser->parse($anmerkungen_en);
|
||||
$parser = new SafeHTML();
|
||||
$kurzbeschreibung_en = $parser->parse($kurzbeschreibung_en);
|
||||
$parser = new SafeHTML();
|
||||
$anwesenheit_en = $parser->parse($anwesenheit_en);
|
||||
$parser = new SafeHTML();
|
||||
$freig_en = $parser->parse($freig_en);
|
||||
$parser = new SafeHTML();
|
||||
$methodik_en = $parser->parse($methodik_en);
|
||||
|
||||
/* WriteLog($qry,$uid)
|
||||
* @brief Schreib die Querys im format: uid - datum - qry ins LogFile
|
||||
* @param $qry Query anweisung
|
||||
* $uid Username
|
||||
* @return true wenn ok false wenn fehler beim oeffnen
|
||||
*/
|
||||
function WriteLog($qry,$uid)
|
||||
{
|
||||
|
||||
if($fp=fopen(LOG_PATH.'lvinfo.log',"a"))
|
||||
{
|
||||
fwrite($fp,"\n");
|
||||
fwrite($fp,$uid." ". date("d.m.Y - H:i:s") . " ". $qry);
|
||||
fclose($fp);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isset($status))
|
||||
{
|
||||
|
||||
if($status=='save') // Beim druecken auf "Speichern"
|
||||
{
|
||||
if ($berechtigt==false)
|
||||
die($p->t('global/keineBerechtigungFuerDieseSeite'));
|
||||
//Speichert die aenderungen in der Datenbank (de und en)
|
||||
$lv_obj_sav= new lvinfo();
|
||||
$save_error=false;
|
||||
$save_log_error=false;
|
||||
//Deutsch
|
||||
$lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "<br>", $lehrziele_de);
|
||||
$lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "<br>", $lehrinhalte_de);
|
||||
$lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "<br>", $voraussetzungen_de);
|
||||
$lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "<br>", $unterlagen_de);
|
||||
$lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "<br>", $pruefungsordnung_de);
|
||||
$lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "<br>", $anmerkungen_de);
|
||||
$lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "<br>", $kurzbeschreibung_de);
|
||||
$lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "<br>", $anwesenheit_de);
|
||||
|
||||
$lv_obj_sav->genehmigt = ($freig_de==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false);
|
||||
$lv_obj_sav->updateamum=date('Y-m-d H:i:s');
|
||||
$lv_obj_sav->updatevon=$user;
|
||||
$lv_obj_sav->aktiv=true;
|
||||
$lv_obj_sav->sprache=ATTR_SPRACHE_DE;
|
||||
$lv_obj_sav->lehrveranstaltung_id=$lv;
|
||||
$lv_obj_sav->methodik = mb_eregi_replace("\r\n", "<br>", $methodik_de);
|
||||
//$lv_obj_sav->titel = mb_eregi_replace("\r\n", "<br>", $titel_de);
|
||||
|
||||
$lv_obj1 = new lvinfo();
|
||||
$vorhanden=$lv_obj1->exists($lv, ATTR_SPRACHE_DE);
|
||||
|
||||
if(!$vorhanden)
|
||||
$lv_obj_sav->new=true;
|
||||
else
|
||||
$lv_obj_sav->new=false;
|
||||
|
||||
if(!$lv_obj_sav->save())
|
||||
$save_error=true;
|
||||
else
|
||||
if(!WriteLog($lv_obj_sav->lastqry,$user))
|
||||
$save_log_error=true;
|
||||
|
||||
//Englisch
|
||||
$lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "<br>", $lehrziele_en);
|
||||
$lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "<br>", $lehrinhalte_en);
|
||||
$lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "<br>", $voraussetzungen_en);
|
||||
$lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "<br>", $unterlagen_en);
|
||||
$lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "<br>", $pruefungsordnung_en);
|
||||
$lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "<br>", $anmerkungen_en);
|
||||
$lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "<br>", $kurzbeschreibung_en);
|
||||
$lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "<br>", $anwesenheit_en);
|
||||
$lv_obj_sav->genehmigt = ($freig_en==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false);
|
||||
$lv_obj_sav->aktiv=true;
|
||||
$lv_obj_sav->updateamum=date('Y-m-d H:i:s');
|
||||
$lv_obj_sav->updatevon=$user;
|
||||
$lv_obj_sav->sprache=ATTR_SPRACHE_EN;
|
||||
$lv_obj_sav->lehrveranstaltung_id=$lv;
|
||||
$lv_obj_sav->methodik = mb_eregi_replace("\r\n", "<br>", $methodik_en);
|
||||
//$lv_obj_sav->titel = mb_eregi_replace("\r\n", "<br>", $titel_en);
|
||||
|
||||
$lv_obj1 = new lvinfo();
|
||||
$vorhanden = $lv_obj1->exists($lv, ATTR_SPRACHE_EN);
|
||||
|
||||
if(!$vorhanden)
|
||||
$lv_obj_sav->new=true;
|
||||
else
|
||||
$lv_obj_sav->new=false;
|
||||
|
||||
if(!$lv_obj_sav->save())
|
||||
$save_error=true;
|
||||
else
|
||||
if(!WriteLog($lv_obj_sav->lastqry,$user))
|
||||
$save_log_error=true;
|
||||
|
||||
if($save_error)
|
||||
$errormsg.= $p->t('courseInformation/achtungFehlerBeimSpeichern');
|
||||
else
|
||||
$okmsg.= $p->t('global/erfolgreichgespeichert');
|
||||
|
||||
if($save_log_error)
|
||||
$errormsg.= $p->t('courseInformation/fehlerLogFile');
|
||||
}
|
||||
if($status=='freigeben') // Beim druecken auf "Zur Freigabe abschicken"
|
||||
{
|
||||
if ($berechtigt==false)
|
||||
die($p->t('global/keineBerechtigungFuerDieseSeite'));
|
||||
|
||||
//Speichert die aenderungen in der Datenbank (de und en)
|
||||
$lv_obj_sav= new lvinfo();
|
||||
$save_error=false;
|
||||
$save_log_error=false;
|
||||
//Deutsch
|
||||
$lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "<br>", $lehrziele_de);
|
||||
$lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "<br>", $lehrinhalte_de);
|
||||
$lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "<br>", $voraussetzungen_de);
|
||||
$lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "<br>", $unterlagen_de);
|
||||
$lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "<br>", $pruefungsordnung_de);
|
||||
$lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "<br>", $anmerkungen_de);
|
||||
$lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "<br>", $kurzbeschreibung_de);
|
||||
$lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "<br>", $anwesenheit_de);
|
||||
|
||||
$lv_obj_sav->genehmigt = ($freig_de==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false);
|
||||
$lv_obj_sav->updateamum=date('Y-m-d H:i:s');
|
||||
$lv_obj_sav->updatevon=$user;
|
||||
$lv_obj_sav->aktiv=true;
|
||||
$lv_obj_sav->sprache=ATTR_SPRACHE_DE;
|
||||
$lv_obj_sav->lehrveranstaltung_id=$lv;
|
||||
$lv_obj_sav->methodik = mb_eregi_replace("\r\n", "<br>", $methodik_de);
|
||||
//$lv_obj_sav->titel = mb_eregi_replace("\r\n", "<br>", $titel_de);
|
||||
|
||||
$lv_obj1 = new lvinfo();
|
||||
$vorhanden=$lv_obj1->exists($lv, ATTR_SPRACHE_DE);
|
||||
|
||||
if(!$vorhanden)
|
||||
$lv_obj_sav->new=true;
|
||||
else
|
||||
$lv_obj_sav->new=false;
|
||||
|
||||
if(!$lv_obj_sav->save())
|
||||
$save_error=true;
|
||||
else
|
||||
if(!WriteLog($lv_obj_sav->lastqry,$user))
|
||||
$save_log_error=true;
|
||||
|
||||
//Englisch
|
||||
$lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "<br>", $lehrziele_en);
|
||||
$lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "<br>", $lehrinhalte_en);
|
||||
$lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "<br>", $voraussetzungen_en);
|
||||
$lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "<br>", $unterlagen_en);
|
||||
$lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "<br>", $pruefungsordnung_en);
|
||||
$lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "<br>", $anmerkungen_en);
|
||||
$lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "<br>", $kurzbeschreibung_en);
|
||||
$lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "<br>", $anwesenheit_en);
|
||||
$lv_obj_sav->genehmigt = ($freig_en==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false);
|
||||
$lv_obj_sav->aktiv=true;
|
||||
$lv_obj_sav->updateamum=date('Y-m-d H:i:s');
|
||||
$lv_obj_sav->updatevon=$user;
|
||||
$lv_obj_sav->sprache=ATTR_SPRACHE_EN;
|
||||
$lv_obj_sav->lehrveranstaltung_id=$lv;
|
||||
$lv_obj_sav->methodik = mb_eregi_replace("\r\n", "<br>", $methodik_en);
|
||||
//$lv_obj_sav->titel = mb_eregi_replace("\r\n", "<br>", $titel_en);
|
||||
|
||||
$lv_obj1 = new lvinfo();
|
||||
$vorhanden = $lv_obj1->exists($lv, ATTR_SPRACHE_EN);
|
||||
|
||||
if(!$vorhanden)
|
||||
$lv_obj_sav->new=true;
|
||||
else
|
||||
$lv_obj_sav->new=false;
|
||||
|
||||
if(!$lv_obj_sav->save())
|
||||
$save_error=true;
|
||||
else
|
||||
if(!WriteLog($lv_obj_sav->lastqry,$user))
|
||||
$save_log_error=true;
|
||||
|
||||
if($save_error)
|
||||
$errormsg.= $p->t('courseInformation/achtungFehlerBeimSpeichern');
|
||||
else
|
||||
$okmsg.= $p->t('global/erfolgreichgespeichert');
|
||||
|
||||
if($save_log_error)
|
||||
$errormsg.= $p->t('courseInformation/fehlerLogFile');
|
||||
|
||||
//Mail an Studiengangsleiter
|
||||
$studiengangsleiter = new studiengang();
|
||||
$stgleiter = $studiengangsleiter->getLeitung($stg);
|
||||
|
||||
if($stgleiter)
|
||||
{
|
||||
$to='';
|
||||
foreach($stgleiter as $leiter)
|
||||
{
|
||||
if($to!='')
|
||||
{
|
||||
$to.=', '.$leiter.'@'.DOMAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to.=$leiter.'@'.DOMAIN;
|
||||
}
|
||||
}
|
||||
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($user);
|
||||
|
||||
$bezeichnung = new lehrveranstaltung();
|
||||
$bezeichnung->load($lv);
|
||||
|
||||
$message = $p->t('courseInformation/diesIstEineAutomatischeMail').".\n".
|
||||
$p->t('courseInformation/lvinfoWurdeUeberarbeitet',array($benutzer->nachname.' '.$benutzer->vorname,$bezeichnung->bezeichnung)).":\n";
|
||||
|
||||
$message.="\n".$p->t('courseInformation/sieKoennenDieseUnterFolgenderAdresseFreigeben').":\n".
|
||||
APP_ROOT."cis/private/lehre/ects/freigabe.php?stg=".$stg."&sem=".$sem."&lv=".$lv;
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('courseInformation/freigabeLvinfo'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$okmsg.="<br><span style='color:green;'>".$p->t('courseInformation/freigabemailWurdeVersandt',array($to))."</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$okmsg.="<br><span class='error'>".$p->t('courseInformation/fehlerBeimSendenAufgetreten',array($to))."!</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$okmsg.="<br><span class='error'>".$p->t('courseInformation/konnteKeinFreigabemailVersendetWerden')."</span>";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$output .= "\n";
|
||||
$output .= "<table class='tabcontent'><tr>";
|
||||
$output .= "<td width='85%'>";
|
||||
$output .= "<form action='".$_SERVER['PHP_SELF']."' name='auswahlFrm' method='POST'>";
|
||||
$stg_obj = new studiengang();
|
||||
|
||||
//Anzeigen des DropDown Menues mit Stg
|
||||
if($stg_obj->getAll('typ, kurzbz'))
|
||||
{
|
||||
$output .= $p->t('global/studiengang')." <SELECT name='stg' onChange='javascript:window.document.auswahlFrm.changed.value=\"stg\";window.document.auswahlFrm.submit();'>";
|
||||
|
||||
$stgselected=false;
|
||||
unset($firststg);
|
||||
//DropDown Menue mit den Stg fuellen
|
||||
foreach($stg_obj->result as $elem)
|
||||
{
|
||||
$lv_help_obj = new lehrveranstaltung();
|
||||
$lv_help_obj->load_lva($elem->studiengang_kz, null,null,true);
|
||||
|
||||
if(count($lv_help_obj->lehrveranstaltungen)>0)
|
||||
{
|
||||
if(!isset($firststg))
|
||||
$firststg = $elem->studiengang_kz;
|
||||
|
||||
if(!isset($stg))
|
||||
$stg=$elem->studiengang_kz;
|
||||
|
||||
if($elem->studiengang_kz == $stg)
|
||||
{
|
||||
$output .= "<option value='$elem->studiengang_kz' selected>$elem->kuerzel</option>";
|
||||
$stgselected=true;
|
||||
}
|
||||
else
|
||||
$output .= "<option value='$elem->studiengang_kz'>$elem->kuerzel</option>";
|
||||
}
|
||||
}
|
||||
$output .= "</SELECT>";
|
||||
if(!$stgselected)
|
||||
$stg=$firststg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg .= "$stg_obj->errormsg";
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Anzeigen des DropDown Menues mit Semester
|
||||
if(isset($changed) && $changed=='stg')
|
||||
{
|
||||
unset($sem);
|
||||
unset($lvid);
|
||||
}
|
||||
|
||||
if($stg_obj->load($stg))
|
||||
{
|
||||
$output .= $p->t('global/semester')." <SELECT name='sem' onChange='javascript:window.document.auswahlFrm.changed.value=\"sem\";window.document.auswahlFrm.submit();'>";
|
||||
|
||||
unset($firstsem);
|
||||
$semselected=false;
|
||||
|
||||
for($i=1;$i<=$stg_obj->max_semester;$i++)
|
||||
{
|
||||
$lv_help_obj = new lehrveranstaltung();
|
||||
$lv_help_obj->load_lva($stg, $i, null,true);
|
||||
|
||||
if(count($lv_help_obj->lehrveranstaltungen)>0)
|
||||
{
|
||||
|
||||
if(!isset($firstsem))
|
||||
$firstsem=$i;
|
||||
|
||||
if(!isset($sem) || (isset($sem) && $sem>$stg_obj->max_semester))
|
||||
{
|
||||
$sem = $i;
|
||||
}
|
||||
|
||||
if($i == $sem)
|
||||
{
|
||||
$output .= "<option value='$i' selected>$i</option>";
|
||||
$semselected=true;
|
||||
}
|
||||
else
|
||||
$output .= "<option value='$i'>$i</option>";
|
||||
}
|
||||
}
|
||||
$output .= "</SELECT>";
|
||||
|
||||
if(!$semselected)
|
||||
$sem=$firstsem;
|
||||
}
|
||||
else
|
||||
$errormsg .= "$stg_obj->errormsg";
|
||||
|
||||
//Anzeigen des DropDown Menues mit Lehrveranstaltungen
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
if($lv_obj->load_lva($stg,$sem,null,true,null,'orgform_kurzbz,semester, bezeichnung'))
|
||||
{
|
||||
$output .= $p->t('global/lehrveranstaltung')." <SELECT name='lv' onChange='javascript:window.document.auswahlFrm.changed.value=\"lv\";window.document.auswahlFrm.submit();'>";
|
||||
$vorhanden=false;
|
||||
unset($firstlv);
|
||||
|
||||
foreach($lv_obj->lehrveranstaltungen as $erg)
|
||||
{
|
||||
if(!isset($lv) || (isset($changed) && $changed=='sem') || (isset($changed) && $changed=='stg'))
|
||||
{
|
||||
$lv = $erg->lehrveranstaltung_id;
|
||||
$changed='';
|
||||
}
|
||||
if(!isset($firstlv))
|
||||
$firstlv=$erg->lehrveranstaltung_id;
|
||||
|
||||
if($lv == $erg->lehrveranstaltung_id)
|
||||
{
|
||||
$output .= "<option value='$erg->lehrveranstaltung_id' selected>".($erg->orgform_kurzbz!=''?$erg->orgform_kurzbz." - ":"").Cut($erg->bezeichnung)."</option>";
|
||||
$vorhanden=true;
|
||||
}
|
||||
else
|
||||
$output .= "<option value='$erg->lehrveranstaltung_id'>".($erg->orgform_kurzbz!=''?$erg->orgform_kurzbz." - ":"").Cut($erg->bezeichnung)."</option>";
|
||||
}
|
||||
$output .= "</SELECT>";
|
||||
if(!$vorhanden)
|
||||
$lv=$firstlv;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg .= "$lv_obj->errormsg";
|
||||
}
|
||||
|
||||
$output .= "<input type='hidden' name='changed' value=''>";
|
||||
$output .= "<input type='Submit' value='".$p->t('global/anzeigen')."'>";
|
||||
$output .= "</form>";
|
||||
$output .= "</td>";
|
||||
|
||||
$output .= "<td>";
|
||||
//Menue ausgeben
|
||||
$output .= "\n";
|
||||
$output .= "<ul>";
|
||||
$output .= "<li> <a class='Item' href='index.php?stg=$stg&sem=$sem&lvid=$lv'><font size='3'>".$p->t('global/bearbeiten')."</font></a></li>";
|
||||
if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))
|
||||
$output .= "<li> <a class='Item' href='freigabe.php?stg=$stg&sem=$sem&lv=$lv'><font size='3'>".$p->t('courseInformation/freigabe')."</font></a></li>";
|
||||
$output .= "<li> <a class='Item' href='beispiele.php'><font size='3'>".$p->t('global/beispiele')."</font></a></li>";
|
||||
//$output .= "<li> <a class='Item' href='terminologie.php'><font size='3'>".$p->t('courseInformation/terminologie')."</font></a></li>";
|
||||
$output .= "</ul>";
|
||||
$output .= "</td></tr></table>";
|
||||
|
||||
$stg_obj->load($stg);
|
||||
|
||||
//Kopfzeile hinausschreiben und $output ausgeben
|
||||
echo "<h1> ".$p->t('courseInformation/lvInfoSemester',array($stg_obj->kuerzel, $sem))."</h1>";
|
||||
echo $output;
|
||||
|
||||
if ($berechtigt==false)
|
||||
die($p->t('global/keineBerechtigungFuerDieseSeite'));
|
||||
|
||||
if(isset($lv) && isset($stg) && isset($sem)) // Wenn oben alles Ausgewaehlt wurde
|
||||
{
|
||||
//Anzeige des Formulares
|
||||
$stg_obj1 = new studiengang();
|
||||
$stg_obj1->load($stg);
|
||||
|
||||
if(isset($errormsg) && $okmsg!='')
|
||||
echo '<span class="error">'.$errormsg.'</span><br>';
|
||||
if(isset($okmsg) && $okmsg!='')
|
||||
echo '<span class="ok">'.$okmsg.'</span><br>';
|
||||
|
||||
$lv_obj_en = new lvinfo();
|
||||
$lv_obj_de = new lvinfo();
|
||||
|
||||
if($lv_obj_en->load($lv, ATTR_SPRACHE_EN))
|
||||
$lv_en=$lv_obj_en;
|
||||
|
||||
if($lv_obj_de->load($lv, ATTR_SPRACHE_DE))
|
||||
$lv_de=$lv_obj_de;
|
||||
|
||||
if(!isset($_POST['lehrziele_de']) && isset($lv_de))
|
||||
{
|
||||
$lehrziele_de = $lv_de->lehrziele;
|
||||
$lehrinhalte_de = $lv_de->lehrinhalte;
|
||||
$voraussetzungen_de = $lv_de->voraussetzungen;
|
||||
$unterlagen_de = $lv_de->unterlagen;
|
||||
$pruefungsordnung_de = $lv_de->pruefungsordnung;
|
||||
$anmerkungen_de = $lv_de->anmerkungen;
|
||||
$kurzbeschreibung_de = $lv_de->kurzbeschreibung;
|
||||
$anwesenheit_de = $lv_de->anwesenheit;
|
||||
$freig_de = $lv_de->genehmigt;
|
||||
$titel_de = $lv_de->titel;
|
||||
$methodik_de = $lv_de->methodik;
|
||||
|
||||
//Fuegt den Satz "Nach erfolgreichem Abschluss sind die Studierenden in der Lage, " vor den Lehrzielen ein, falls noch nicht vorhanden
|
||||
if (substr_count($lehrziele_de, 'Nach erfolgreichem Abschluss sind die Studierenden in der Lage')==0)
|
||||
$lehrziele_de = 'Nach erfolgreichem Abschluss sind die Studierenden in der Lage, '.$lehrziele_de;
|
||||
}
|
||||
|
||||
if(!isset($_POST['lehrziele_en']) && isset($lv_en))
|
||||
{
|
||||
$lehrziele_en = $lv_en->lehrziele;
|
||||
$lehrinhalte_en = $lv_en->lehrinhalte;
|
||||
$voraussetzungen_en = $lv_en->voraussetzungen;
|
||||
$unterlagen_en = $lv_en->unterlagen;
|
||||
$pruefungsordnung_en = $lv_en->pruefungsordnung;
|
||||
$anmerkungen_en = $lv_en->anmerkungen;
|
||||
$kurzbeschreibung_en = $lv_en->kurzbeschreibung;
|
||||
$anwesenheit_en = $lv_en->anwesenheit;
|
||||
$freig_en = $lv_en->genehmigt;
|
||||
$titel_en = $lv_en->titel;
|
||||
$methodik_en = $lv_en->methodik;
|
||||
|
||||
//Fuegt den Satz "Nach erfolgreichem Abschluss sind die Studierenden in der Lage, " vor den Lehrzielen ein, falls noch nicht vorhanden
|
||||
if (substr_count($lehrziele_en, 'After passing this course successfully students are able to')==0)
|
||||
$lehrziele_en = 'After passing this course successfully students are able to '.$lehrziele_en;
|
||||
}
|
||||
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
$lv_obj->load($lv);
|
||||
echo "<Form name='editFrm' action='".$_SERVER['PHP_SELF']."' method='POST'>";
|
||||
|
||||
echo "<table>";
|
||||
echo "<tr><td><b>".$p->t('courseInformation/ectsCredits')."</b></td><td width='100%'>".($lv_obj->ects!=''?number_format($lv_obj->ects,1,'.',''):'')."</td></tr>";
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem = $stsem_obj->getaktorNext();
|
||||
//Namen der Lehrenden Auslesen
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
campus.vw_mitarbeiter, lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)."
|
||||
AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
|
||||
AND studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." ORDER BY ende DESC LIMIT 1)
|
||||
AND mitarbeiter_uid=uid";
|
||||
|
||||
echo "<tr><td class='tdvertical' nowrap><b>".$p->t('courseInformation/lehrendeLautLehrauftrag')."</b></td><td nowrap>";
|
||||
$helparray = array();
|
||||
if($result=$db->db_query($qry))
|
||||
{
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
if(!in_array("$row->titelpre $row->vorname $row->nachname $row->titelpost",$helparray))//damit ein Name nicht doppelt vorkommt
|
||||
$helparray[] = "$row->titelpre $row->vorname $row->nachname $row->titelpost";
|
||||
}
|
||||
}
|
||||
|
||||
foreach($helparray as $elem)
|
||||
echo $elem."<br>";
|
||||
echo "</td></tr>";
|
||||
|
||||
//FB Leiter auslesen
|
||||
$qry = " SELECT
|
||||
distinct titelpre, titelpost, vorname, nachname
|
||||
FROM
|
||||
public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid)
|
||||
WHERE
|
||||
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
|
||||
oe_kurzbz in (SELECT distinct lehrfach.oe_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND
|
||||
studiensemester_kurzbz=(SELECT studiensemester_kurzbz
|
||||
FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)."
|
||||
ORDER BY ende DESC LIMIT 1
|
||||
)
|
||||
)";
|
||||
|
||||
echo "<tr><td class='tdvertical'><b>".$p->t('courseInformation/institutsleiter')."</b></td><td>";
|
||||
if($result=$db->db_query($qry))
|
||||
{
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
echo "$row->titelpre $row->vorname $row->nachname $row->titelpost<br>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "</td></tr>";
|
||||
|
||||
//FB Koordinator auslesen
|
||||
//$qry = "SELECT distinct vorname, nachname FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='fbk' AND studiengang_kz='$stg' AND fachbereich_kurzbz in (SELECT fachbereich_kurzbz FROM lehre.tbl_lehrfach, lehre.tbl_lehreinheit WHERE lehrveranstaltung_id='$lv' AND tbl_lehrfach.lehrfach_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE tbl_lehreinheit.lehrveranstaltung_id='$lv' ORDER BY ende DESC LIMIT 1))";
|
||||
$qry = "SELECT
|
||||
distinct titelpre, titelpost, vorname, nachname, tbl_fachbereich.fachbereich_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, campus.vw_mitarbeiter, public.tbl_fachbereich
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
|
||||
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
|
||||
tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk' 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
|
||||
vw_mitarbeiter.uid=COALESCE(tbl_lehrveranstaltung.koordinator, tbl_benutzerfunktion.uid) AND
|
||||
tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)";
|
||||
|
||||
echo "<tr><td class='tdvertical'><b>".$p->t('courseInformation/institutskoordinator')."</b></td><td>";
|
||||
if($result=$db->db_query($qry))
|
||||
{
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
echo "$row->titelpre $row->vorname $row->nachname $row->titelpost<br>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "</td></tr>";
|
||||
|
||||
//echo "</table>";
|
||||
echo "<tr><td>";
|
||||
|
||||
|
||||
echo "<input type='hidden' name='stg' value='$stg'>";
|
||||
echo "<input type='hidden' name='sem' value='$sem'>";
|
||||
echo "<input type='hidden' name='lv' value='$lv'>";
|
||||
echo "<input type='hidden' name='status' value=''>";
|
||||
|
||||
echo "</td></tr>";
|
||||
//Sprache ausgeben
|
||||
echo "<tr><td><b>".$p->t('courseInformation/unterrichtssprache')."</b></td><td>$lv_obj->sprache";
|
||||
echo "</td></tr>";
|
||||
|
||||
//Anz. Incoming ausgeben
|
||||
|
||||
if ($lv_obj->incoming > -1)
|
||||
{
|
||||
echo "<tr><td valign='top'><b>".$p->t('courseInformation/incomingplaetze')."</b></td><td valign='top'>$lv_obj->incoming";
|
||||
}
|
||||
else echo "<tr><td valign='top'><b>".$p->t('courseInformation/incomingplaetze')."</b></td><td>0";
|
||||
echo "</td></tr><tr><td colspan='2'><font style='font-size:smaller'>".$p->t('courseInformation/beiFehlernInDenFixfeldern',array($stg_obj1->email))."</font></td></tr>";
|
||||
echo "<tr><td align='left' colspan='2'><br/><br/><font style='color:black'>".$p->t('courseInformation/pflichtfelderWerdenAufDerExternenSeiteAngezeigt',array($stg_obj1->email))."</font>.</td></tr>";
|
||||
//echo "<tr><td align='left' colspan='4'><font style='color:black'>".$p->t('courseInformation/fallsSieAufzaehlungslistenVerwenden',array($stg_obj1->email))."</font></td></tr>"; --> Es sollten keine HTML-Tags gespeichert werden koennen. Hier muss eine andere Loesung gefunde werden.
|
||||
echo "</table><br><br>";
|
||||
|
||||
//Eingabefelder anzeigen
|
||||
echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
|
||||
|
||||
|
||||
echo '<tr>
|
||||
<td colspan="2" align="center"><h2>DEUTSCH</h2></td>
|
||||
<td rowspan="14" width="20"> </td>
|
||||
<td colspan="2" align="center"><h2>ENGLISH</h2></td>
|
||||
</tr>';
|
||||
echo '<tr>
|
||||
<td colspan="2" align="center">'.($lv_de->genehmigt==false?'<span style="color:red">'.$p->t('courseInformation/nochNichtFreigegeben').'</span>':$p->t('courseInformation/freigegeben')).'</td>
|
||||
<td colspan="2" align="center">'.($lv_en->genehmigt==false?'<span style="color:red">'.$p->t('courseInformation/nochNichtFreigegeben').'</span>':$p->t('courseInformation/freigegeben')).'</td>
|
||||
</tr>';
|
||||
echo '<tr>
|
||||
<td colspan="5"> </td>
|
||||
</tr>';
|
||||
|
||||
echo '
|
||||
<tr class="liste0">
|
||||
<td><i>'.$p->t('lvinfo/kurzbeschreibung').' <font style="color:black">(Pflichtfeld)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="kurzbeschreibung_de">'. (isset($kurzbeschreibung_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$kurzbeschreibung_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/kurzbeschreibungEN').' <font style="color:black">(Required)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="kurzbeschreibung_en">'. (isset($kurzbeschreibung_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$kurzbeschreibung_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td><i>'.$p->t('lvinfo/methodik').' <font style="color:black">(Pflichtfeld)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="methodik_de">'. (isset($methodik_de)?stripslashes(mb_eregi_replace("<br>","\r\n", $methodik_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/methodikEN').' <font style="color:black">(Required)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="methodik_en">'. (isset($methodik_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$methodik_en)):'').'</textarea></td>
|
||||
</tr>';
|
||||
echo '<tr class="liste0">
|
||||
<td><i>'.$p->t('lvinfo/lernergebnisse').' <font style="color:black">(Pflichtfeld)</font></i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="lehrziele_de">'. (isset($lehrziele_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$lehrziele_de)):'Nach erfolgreichem Abschluss sind die Studierenden in der Lage, ').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/lernergebnisseEN').' <font style="color:black">(Required)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="lehrziele_en">'. (isset($lehrziele_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$lehrziele_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td><i>'.$p->t('lvinfo/lehrinhalte').' <font style="color:black">(Pflichtfeld)</font></i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="lehrinhalte_de">'. (isset($lehrinhalte_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$lehrinhalte_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/lehrinhalteEN').' <font style="color:black">(Required)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="lehrinhalte_en">'. (isset($lehrinhalte_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$lehrinhalte_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td><i>'.$p->t('lvinfo/vorkenntnisse').' <font style="color:black">(Pflichtfeld)</font></i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="voraussetzungen_de">'. (isset($voraussetzungen_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$voraussetzungen_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/vorkenntnisseEN').' <font style="color:black">(Required)</font></i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="voraussetzungen_en">'. (isset($voraussetzungen_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$voraussetzungen_en)):'').'</textarea></td>
|
||||
</tr>';
|
||||
echo '<tr class="liste1">
|
||||
<td><i>'.$p->t('lvinfo/literatur').'</i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="unterlagen_de">'. (isset($unterlagen_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$unterlagen_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/literaturEN').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="unterlagen_en">'. (isset($unterlagen_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$unterlagen_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td><i>'.$p->t('lvinfo/leistungsbeurteilung').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="pruefungsordnung_de">'. (isset($pruefungsordnung_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$pruefungsordnung_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/leistungsbeurteilungEN').'</i> </td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="pruefungsordnung_en">'. (isset($pruefungsordnung_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$pruefungsordnung_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td><i>'.$p->t('lvinfo/anwesenheit').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="anwesenheit_de">'. (isset($anwesenheit_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$anwesenheit_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/anwesenheitEN').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="anwesenheit_en">'. (isset($anwesenheit_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$anwesenheit_en)):'').'</textarea></td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td><i>'.$p->t('lvinfo/anmerkungen').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="anmerkungen_de">'. (isset($anmerkungen_de)?stripslashes(mb_eregi_replace("<br>","\r\n",$anmerkungen_de)):'').'</textarea></td>
|
||||
<td><i>'.$p->t('lvinfo/anmerkungenEN').'</i></td>
|
||||
<td align="right"><textarea rows="5" cols="50" name="anmerkungen_en">'. (isset($anmerkungen_en)?stripslashes(mb_eregi_replace("<br>","\r\n",$anmerkungen_en)):'').'</textarea></td>
|
||||
</tr>';
|
||||
if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))
|
||||
echo ' <tr class="liste0">
|
||||
<td align=center colspan=2><br><input type="checkbox" name="freig_de" '. (isset($freig_de) && ($freig_de==true || $freig_de=='1')?'checked':'').'/><i>'.$p->t('courseInformation/deutschFreigeben').'</i><br><br></td>
|
||||
<td align=center colspan=2><input type="checkbox" name="freig_en" '. (isset($freig_en) && ($freig_en==true || $freig_en=='1')?'checked':'').'/><i>'.$p->t('courseInformation/englischFreigeben').'</i> </td>
|
||||
<td ></td>
|
||||
</tr>';
|
||||
|
||||
echo "</table><br>";
|
||||
echo "<div align='left'>";
|
||||
echo "<input type='button' value='".$p->t('global/speichern')."' onClick='save();'>";
|
||||
echo "<input type='button' value='".$p->t('courseInformation/voransicht')."' onClick='javascript:window.document.editFrm.action=\"preview.php\";window.document.editFrm.target=\"_blank\";window.document.editFrm.submit();'>";
|
||||
echo "<br><br>";
|
||||
if (!$berechtigt)
|
||||
echo "<input type='button' value='".$p->t('courseInformation/zurFreigabeAbschicken')."' onClick='freigeben();'>";
|
||||
echo "</div>";
|
||||
echo "</form>";
|
||||
echo "<br><br><br><br><br><br><br><br><br><br><br><br>";
|
||||
if(isset($error) && $error!='')
|
||||
echo $error;
|
||||
}
|
||||
?>
|
||||
<td></tr></table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,746 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/* @date 27.10.2005
|
||||
@brief Zeigt die Daten aus der tbl_lvinfo an
|
||||
|
||||
@edit 08-11-2006 Versionierung wurde entfernt. Alle eintraege werden jetzt im WS2007
|
||||
abgespeichert
|
||||
03-02-2006 Anpassung an die neue Datenbank
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../config/global.config.inc.php');
|
||||
require_once('../../../../include/studiensemester.class.php');
|
||||
require_once('../../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../../include/lvinfo.class.php');
|
||||
require_once('../../../../include/studiengang.class.php');
|
||||
require_once('../../../../include/safehtml/safehtml.class.php');
|
||||
require_once '../../../../include/phrasen.class.php';
|
||||
require_once '../../../../include/lehreinheit.class.php';
|
||||
require_once '../../../../include/lehrstunde.class.php';
|
||||
require_once '../../../../include/datum.class.php';
|
||||
require_once '../../../../include/stunde.class.php';
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Herstellen der Datenbankverbindung');
|
||||
|
||||
$phrasen = new phrasen();
|
||||
|
||||
function cmp($a, $b)
|
||||
{
|
||||
if($a->datum == $b->datum && $a->stunde == $b->stunde)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if($a->datum == $b->datum && $a->stunde < $b->stunde)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else if($a->datum == $b->datum && $a->stunde >= $b->stunde)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
return ($a->datum < $b->datum) ? -1 : 1;
|
||||
|
||||
}
|
||||
|
||||
function getLastStundeByDatum(Array $array, $filterDatum)
|
||||
{
|
||||
$callback = function($item) use ($filterDatum)
|
||||
{
|
||||
return ($filterDatum == $item->datum);
|
||||
};
|
||||
return array_filter($array,$callback);
|
||||
}
|
||||
|
||||
$titel_de = '';
|
||||
$methodik_de = '';
|
||||
$kurzbeschreibung_de = '';
|
||||
$anwesenheit_de = '';
|
||||
$lehrziele_de = '';
|
||||
$lehrinhalte_de = '';
|
||||
$voraussetzungen_de = '';
|
||||
$unterlagen_de = '';
|
||||
$pruefungsordnung_de = '';
|
||||
$anmerkungen_de = '';
|
||||
|
||||
$titel_en = '';
|
||||
$methodik_en = '';
|
||||
$kurzbeschreibung_en = '';
|
||||
$anwesenheit_en = '';
|
||||
$lehrziele_en = '';
|
||||
$lehrinhalte_en = '';
|
||||
$voraussetzungen_en = '';
|
||||
$unterlagen_en = '';
|
||||
$pruefungsordnung_en = '';
|
||||
$anmerkungen_en = '';
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>ECTS - European Course Credit Transfer Systems (ECTS)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../../skin/style.css.php" type="text/css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<table align="right">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="home_logo"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br><br><br><br><br><br>
|
||||
<table class="tabcontent" id="inhalt">
|
||||
|
||||
<tr>
|
||||
<td><div align="center">
|
||||
|
||||
<?php
|
||||
if(isset($_REQUEST['lv']))
|
||||
$lv = $_REQUEST['lv'];
|
||||
$language='';
|
||||
|
||||
if(isset($_GET['language']))
|
||||
$language=$_GET['language'];
|
||||
|
||||
if(isset($_POST['language']))
|
||||
$language=$_POST['language'];
|
||||
|
||||
if(!isset($language) || ($language!='de' && $language!='en'))
|
||||
{
|
||||
echo "<li><a class='Item' href=\"#de\">Deutsche Version</a></li><br>";
|
||||
echo "<li><a class='Item' href=\"#en\">Englische Version</a></li><br>";
|
||||
}
|
||||
|
||||
if(isset($_POST['methodik_de'])) //Alle Variablen werden per POST Methode uebergeben (zB bei Voransicht)
|
||||
{
|
||||
//$sprache = stripslashes($_POST['sprache']);
|
||||
//$semstunden = stripslashes($_POST["semstunden"]);
|
||||
$lehrveranstaltung_id = $_POST['lv'];
|
||||
|
||||
// german content variables
|
||||
//$titel_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['titel_de']));
|
||||
$methodik_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['methodik_de']));
|
||||
$kurzbeschreibung_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['kurzbeschreibung_de']));
|
||||
$anwesenheit_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['anwesenheit_de']));
|
||||
$lehrziele_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['lehrziele_de']));
|
||||
$lehrinhalte_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['lehrinhalte_de']));
|
||||
$voraussetzungen_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['voraussetzungen_de']));
|
||||
$unterlagen_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['unterlagen_de']));
|
||||
$pruefungsordnung_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['pruefungsordnung_de']));
|
||||
$anmerkungen_de = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['anmerkungen_de']));
|
||||
|
||||
$parser = new SafeHTML();
|
||||
$lehrziele_de = $parser->parse($lehrziele_de);
|
||||
$parser = new SafeHTML();
|
||||
$lehrinhalte_de = $parser->parse($lehrinhalte_de);
|
||||
$parser = new SafeHTML();
|
||||
$voraussetzungen_de = $parser->parse($voraussetzungen_de);
|
||||
$parser = new SafeHTML();
|
||||
$unterlagen_de = $parser->parse($unterlagen_de);
|
||||
$parser = new SafeHTML();
|
||||
$pruefungsordnung_de = $parser->parse($pruefungsordnung_de);
|
||||
$parser = new SafeHTML();
|
||||
$anmerkungen_de = $parser->parse($anmerkungen_de);
|
||||
$parser = new SafeHTML();
|
||||
$kurzbeschreibung_de = $parser->parse($kurzbeschreibung_de);
|
||||
$parser = new SafeHTML();
|
||||
$anwesenheit_de = $parser->parse($anwesenheit_de);
|
||||
$parser = new SafeHTML();
|
||||
$methodik_de = $parser->parse($methodik_de);
|
||||
|
||||
// Englisch content variables
|
||||
//$titel_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['titel_en']));
|
||||
$methodik_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['methodik_en']));
|
||||
$kurzbeschreibung_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['kurzbeschreibung_en']));
|
||||
$anwesenheit_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['anwesenheit_en']));
|
||||
$lehrziele_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['lehrziele_en']));
|
||||
$lehrinhalte_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['lehrinhalte_en']));
|
||||
$voraussetzungen_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['voraussetzungen_en']));
|
||||
$unterlagen_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['unterlagen_en']));
|
||||
$pruefungsordnung_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['pruefungsordnung_en']));
|
||||
$anmerkungen_en = mb_eregi_replace("\r\n","<br>",stripslashes($_POST['anmerkungen_en']));
|
||||
|
||||
$parser = new SafeHTML();
|
||||
$lehrziele_en = $parser->parse($lehrziele_en);
|
||||
$parser = new SafeHTML();
|
||||
$lehrinhalte_en = $parser->parse($lehrinhalte_en);
|
||||
$parser = new SafeHTML();
|
||||
$voraussetzungen_en = $parser->parse($voraussetzungen_en);
|
||||
$parser = new SafeHTML();
|
||||
$unterlagen_en = $parser->parse($unterlagen_en);
|
||||
$parser = new SafeHTML();
|
||||
$pruefungsordnung_en = $parser->parse($pruefungsordnung_en);
|
||||
$parser = new SafeHTML();
|
||||
$anmerkungen_en = $parser->parse($anmerkungen_en);
|
||||
$parser = new SafeHTML();
|
||||
$kurzbeschreibung_en = $parser->parse($kurzbeschreibung_en);
|
||||
$parser = new SafeHTML();
|
||||
$anwesenheit_en = $parser->parse($anwesenheit_en);
|
||||
$parser = new SafeHTML();
|
||||
$methodik_en = $parser->parse($methodik_en);
|
||||
}
|
||||
elseif(isset($_GET['lv'])) //LV Id wird uebergeben (zB bei Ansicht fuer alle von lesson.php)
|
||||
{
|
||||
$lehrveranstaltung_id=$_GET['lv'];
|
||||
|
||||
$stsemobj = new studiensemester();
|
||||
$stsem = $stsemobj->getaktorNext();
|
||||
|
||||
$lvinfo_obj = new lvinfo();
|
||||
if($lvinfo_obj->load($lehrveranstaltung_id, ATTR_SPRACHE_DE))
|
||||
{
|
||||
// german content variables
|
||||
//$titel_de = $lvinfo_obj->titel;
|
||||
$methodik_de = $lvinfo_obj->methodik;
|
||||
$kurzbeschreibung_de = $lvinfo_obj->kurzbeschreibung;
|
||||
$anwesenheit_de = $lvinfo_obj->anwesenheit;
|
||||
$lehrziele_de = $lvinfo_obj->lehrziele;
|
||||
$lehrinhalte_de = $lvinfo_obj->lehrinhalte;
|
||||
$voraussetzungen_de = $lvinfo_obj->voraussetzungen;
|
||||
$unterlagen_de = $lvinfo_obj->unterlagen;
|
||||
$pruefungsordnung_de = $lvinfo_obj->pruefungsordnung;
|
||||
$anmerkungen_de = $lvinfo_obj->anmerkungen;
|
||||
}
|
||||
|
||||
if($lvinfo_obj->load($lehrveranstaltung_id, ATTR_SPRACHE_EN))
|
||||
{
|
||||
// Englisch content variables
|
||||
//$titel_en = $lvinfo_obj->titel;
|
||||
$methodik_en = $lvinfo_obj->methodik;
|
||||
$kurzbeschreibung_en = $lvinfo_obj->kurzbeschreibung;
|
||||
$anwesenheit_en = $lvinfo_obj->anwesenheit;
|
||||
$lehrziele_en = $lvinfo_obj->lehrziele;
|
||||
$lehrinhalte_en = $lvinfo_obj->lehrinhalte;
|
||||
$voraussetzungen_en = $lvinfo_obj->voraussetzungen;
|
||||
$unterlagen_en = $lvinfo_obj->unterlagen;
|
||||
$pruefungsordnung_en = $lvinfo_obj->pruefungsordnung;
|
||||
$anmerkungen_en = $lvinfo_obj->anmerkungen;
|
||||
}
|
||||
}
|
||||
else
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
|
||||
$stsemobj = new studiensemester();
|
||||
$stsem = $stsemobj->getaktorNext();
|
||||
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
if(!$lv_obj->load($lehrveranstaltung_id))
|
||||
die($lv_obj->errormsg);
|
||||
|
||||
$ects_points = $lv_obj->ects;
|
||||
$stg = $lv_obj->studiengang_kz;
|
||||
$sem = $lv_obj->semester;
|
||||
$lang = $lv_obj->sprache;
|
||||
$titel_de = $lv_obj->bezeichnung;
|
||||
$titel_en = $lv_obj->bezeichnung_english;
|
||||
$anz_incoming = $lv_obj->incoming;
|
||||
|
||||
if (!isset($lv))
|
||||
$lv=0;
|
||||
|
||||
|
||||
//Zugeteilte Fachbereiche auslesen
|
||||
$qry = "SELECT distinct tbl_fachbereich.bezeichnung as bezeichnung, tbl_fachbereich.fachbereich_kurzbz as fachbereich_kurzbz
|
||||
FROM public.tbl_fachbereich, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
|
||||
WHERE tbl_lehreinheit.studiensemester_kurzbz=(
|
||||
SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." ORDER BY ende DESC LIMIT 1)
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
|
||||
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz";
|
||||
|
||||
if(!$result=$db->db_query($qry))
|
||||
die('Fehler beim Lesen aus der Datenbank');
|
||||
|
||||
$fachbereiche="'1'";
|
||||
$fachbereich['kurzbz']=array();
|
||||
$fachbereich['bezeichnung']=array();
|
||||
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
$fachbereiche .= ", ".$db->db_add_param($row->fachbereich_kurzbz);
|
||||
$fachbereich['kurzbz'][]=$row->fachbereich_kurzbz;
|
||||
$fachbereich['bezeichnung'][]=$row->bezeichnung;
|
||||
}
|
||||
|
||||
//Studiengangsbezeichnung auslesen
|
||||
$stg_hlp_obj = new studiengang();
|
||||
$stg_hlp_obj->load($stg);
|
||||
|
||||
$stg_kurzbz = $stg_hlp_obj->kuerzel;
|
||||
$stg_kurzbzlang = $stg_hlp_obj->kurzbzlang;
|
||||
|
||||
//Lehrform auslesen
|
||||
$qry = "Select distinct lehrform_kurzbz FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem);
|
||||
if(!$res = $db->db_query($qry))
|
||||
die('Fehler beim Lesen aus der Datenbank');
|
||||
//echo $fachbereiche;
|
||||
while($row = $db->db_fetch_object($res))
|
||||
$lehrform_kurzbz[] = $row->lehrform_kurzbz;
|
||||
//Fachbereichsleiter fuer alle FB ermitteln
|
||||
$qry="
|
||||
SELECT
|
||||
vorname, nachname, tbl_fachbereich.fachbereich_kurzbz
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
JOIN public.tbl_fachbereich USING(oe_kurzbz)
|
||||
JOIN campus.vw_mitarbeiter USING(uid)
|
||||
WHERE
|
||||
vw_mitarbeiter.aktiv AND
|
||||
funktion_kurzbz='Leitung' AND tbl_fachbereich.fachbereich_kurzbz in($fachbereiche) 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())";
|
||||
|
||||
if(!$res=$db->db_query($qry))
|
||||
die('Fehler '.$db->errormsg);
|
||||
|
||||
$fachbereichsleiter=array();
|
||||
while($row=$db->db_fetch_object($res))
|
||||
$fachbereichsleiter[$row->fachbereich_kurzbz] = $row->vorname." ".$row->nachname;
|
||||
|
||||
//Fachbereichskoordinatoren fuer alle FB ermitteln
|
||||
//$qry="SELECT * FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='fbk' AND studiengang_kz='$stg' AND fachbereich_kurzbz in($fachbereiche)";
|
||||
$qry = "SELECT
|
||||
distinct vorname, nachname, tbl_fachbereich.fachbereich_kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, campus.vw_mitarbeiter, public.tbl_fachbereich
|
||||
WHERE
|
||||
vw_mitarbeiter.aktiv AND
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id='$lv' AND
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
|
||||
lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND
|
||||
tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND
|
||||
tbl_benutzerfunktion.funktion_kurzbz='fbk' AND
|
||||
vw_mitarbeiter.uid=COALESCE(tbl_lehrveranstaltung.koordinator, tbl_benutzerfunktion.uid) 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_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) ";
|
||||
|
||||
if(!$res=$db->db_query($qry))
|
||||
die('Fehler ! '.$db->errormsg);
|
||||
|
||||
$fachbereichskoordinator=array();
|
||||
while($row=$db->db_fetch_object($res))
|
||||
{
|
||||
$name = $row->vorname." ".$row->nachname;
|
||||
|
||||
if(!isset($fachbereichskoordinator[$row->fachbereich_kurzbz]) ||
|
||||
!in_array($name, $fachbereichskoordinator[$row->fachbereich_kurzbz]))
|
||||
{
|
||||
$fachbereichskoordinator[$row->fachbereich_kurzbz][] = $name;
|
||||
}
|
||||
}
|
||||
|
||||
//Namen der Lehrenden Auslesen
|
||||
$qry = "SELECT distinct vorname, nachname FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter
|
||||
WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester JOIN lehre.tbl_lehreinheit USING(studiensemester_kurzbz) WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." ORDER BY ende DESC LIMIT 1)
|
||||
AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id
|
||||
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid";
|
||||
|
||||
$lehrendearray = array();
|
||||
if($result=$db->db_query($qry))
|
||||
{
|
||||
while($row=$db->db_fetch_object($result))
|
||||
$lehrendearray[] = "$row->vorname $row->nachname";
|
||||
}
|
||||
|
||||
//Ausgabe der LV-Information
|
||||
|
||||
//Deutsch Version
|
||||
if(!(isset($language) && $language=='en'))
|
||||
{
|
||||
echo "<a name=\"de\"></a><br><br>
|
||||
<table class='tabcontent'>
|
||||
<tr>
|
||||
<td align='center' valign='top'>
|
||||
|
||||
<h1>
|
||||
".stripslashes($titel_de)."</h1>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br>";
|
||||
echo '<table border="0" cellpadding="0">';
|
||||
echo "<tr><td>Studiengang:</td><td>$stg_kurzbz</td></tr>";
|
||||
echo "<tr><td>Semester:</td><td>$sem</td></tr>";
|
||||
echo '<tr><td> </td><td> </td></tr>';
|
||||
if(($anz=count($lehrendearray))>0)
|
||||
{
|
||||
echo "<tr valign='top'><td><nobr>".$phrasen->t('lehre/lehrbeauftragter').": </nobr></td><td>";
|
||||
|
||||
foreach($lehrendearray as $elem)
|
||||
{
|
||||
$anz--;
|
||||
echo " $elem";
|
||||
if($anz!=0)
|
||||
echo ',';
|
||||
}
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
if(isset($lehrform_kurzbz) && count($lehrform_kurzbz)>0)
|
||||
{
|
||||
echo "<tr valign='top'><td>Lehrform: </td><td>";
|
||||
foreach ($lehrform_kurzbz as $lehrform_kurz)
|
||||
echo "$lehrform_kurz<br />";
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
if ($lang > -1)
|
||||
echo '<tr><td>Sprache: </td><td>'.stripslashes($lang).'</td></tr>';
|
||||
|
||||
if ($ects_points)
|
||||
echo '<tr><td>ECTS: </td><td>'.number_format(stripslashes($ects_points),1,'.','').'</td></tr>';
|
||||
|
||||
if ($anz_incoming > -1)
|
||||
{
|
||||
echo '<tr><td>Incomingplätze: </td><td>'.stripslashes($anz_incoming).'</td></tr>';
|
||||
}
|
||||
else echo '<tr><td>Incomingplätze: </td><td>0</td></tr>';
|
||||
|
||||
echo '<tr><td> </td><td> </td></tr>';
|
||||
//Fachbereiche und Leiter/Koordinatoren anzeigen
|
||||
if (count($fachbereich['bezeichnung'])>0)
|
||||
{
|
||||
echo '<tr><td>Institut: </td><td>';
|
||||
//Fachbereiche durchlaufen
|
||||
for($i=0;$i<count($fachbereich['kurzbz']);$i++)
|
||||
{
|
||||
$help='';
|
||||
echo stripslashes($fachbereich['bezeichnung'][$i]);
|
||||
//zugehoerigen Leiter ausgeben
|
||||
if(isset($fachbereichsleiter[$fachbereich['kurzbz'][$i]]))
|
||||
$help.='Leitung: '.$fachbereichsleiter[$fachbereich['kurzbz'][$i]];
|
||||
if(isset($fachbereichskoordinator[$fachbereich['kurzbz'][$i]]))
|
||||
{
|
||||
$first=true;
|
||||
//zugehoerige Koordinatoren ausgeben
|
||||
foreach($fachbereichskoordinator[$fachbereich['kurzbz'][$i]] as $fbk)
|
||||
{
|
||||
if($help!='')
|
||||
{
|
||||
if($first)
|
||||
{
|
||||
$help.=' Koordination:';
|
||||
$first=false;
|
||||
}
|
||||
else
|
||||
$help.=',';
|
||||
}
|
||||
$help.=" $fbk";
|
||||
}
|
||||
}
|
||||
if($help!='')
|
||||
echo " ($help)";
|
||||
}
|
||||
|
||||
echo '</td></tr>';
|
||||
}
|
||||
echo "</table>";
|
||||
echo "<br /><br /></td></tr>";
|
||||
|
||||
if ($kurzbeschreibung_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/kurzbeschreibung')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($kurzbeschreibung_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($lehrziele_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/lernergebnisse')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($lehrziele_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($lehrinhalte_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/lehrinhalte')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($lehrinhalte_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($voraussetzungen_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/vorkenntnisse')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($voraussetzungen_de)."<br><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($methodik_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/methodik')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($methodik_de)."<br><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($pruefungsordnung_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/leistungsbeurteilung')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($pruefungsordnung_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($unterlagen_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/literatur')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($unterlagen_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($anwesenheit_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/anwesenheit')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($anwesenheit_de)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($anmerkungen_de)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/anmerkungen')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($anmerkungen_de)." <br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
echo "</td></tr></table>";
|
||||
}
|
||||
|
||||
//Englische Version
|
||||
if(!(isset($language) && $language=='de'))
|
||||
{
|
||||
echo "<a name=\"en\"></a><br><br>";
|
||||
echo "<table class='tabcontent'>
|
||||
<tr>
|
||||
<td align='center' valign='top'>
|
||||
<h1>
|
||||
".stripslashes($titel_en)."
|
||||
</h1>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td><br />";
|
||||
|
||||
echo '<table border="0" cellpadding="0">';
|
||||
echo "<tr><td>Degree programme:</td><td>$stg_kurzbz</td></tr>";
|
||||
echo "<tr><td>Semester:</td><td>$sem</td></tr>";
|
||||
echo "<tr><td> </td><td> </td></tr>";
|
||||
|
||||
if(($anz=count($lehrendearray))>0)
|
||||
{
|
||||
echo "<tr><td>Lecturer:</td><td>";
|
||||
|
||||
foreach($lehrendearray as $elem)
|
||||
{
|
||||
$anz--;
|
||||
echo " $elem";
|
||||
if($anz!=0)
|
||||
echo ",";
|
||||
}
|
||||
echo "</td></tr>";
|
||||
}
|
||||
|
||||
if(isset($lehrform_kurzbz) && count($lehrform_kurzbz)>0)
|
||||
{
|
||||
echo "<tr valign='top'><td>Course methods: </td><td>";
|
||||
foreach ($lehrform_kurzbz as $lehrform_kurz)
|
||||
echo "$lehrform_kurz<br />";
|
||||
echo "</td></tr>";
|
||||
}
|
||||
|
||||
if ($lang > -1)
|
||||
echo "<tr><td>Language: </td><td>".stripslashes($lang)."</td></tr>";
|
||||
|
||||
if ($ects_points)
|
||||
echo "<tr><td>ECTS Credits: </td><td>".number_format(stripslashes($ects_points),1,'.','')."</td></tr>";
|
||||
|
||||
if ($anz_incoming > -1)
|
||||
{
|
||||
echo '<tr><td>Places Available for Incoming Students: </td><td>'.stripslashes($anz_incoming).'</td></tr>';
|
||||
}
|
||||
else echo '<tr><td>Places Available for Incoming Students: </td><td>0</td></tr>';
|
||||
|
||||
echo "<tr><td> </td><td> </td></tr>";
|
||||
|
||||
//Fachbereiche und Leiter/Koordinatoren anzeigen
|
||||
if (count($fachbereich['bezeichnung'])>0)
|
||||
{
|
||||
echo '<tr><td>Department: </td><td>';
|
||||
//Fachbereiche durchlaufen
|
||||
for($i=0;$i<count($fachbereich['kurzbz']);$i++)
|
||||
{
|
||||
$help='';
|
||||
echo stripslashes($fachbereich['bezeichnung'][$i]);
|
||||
//zugehoerigen Leiter ausgeben
|
||||
if(isset($fachbereichsleiter[$fachbereich['kurzbz'][$i]]))
|
||||
$help.='Head: '.$fachbereichsleiter[$fachbereich['kurzbz'][$i]];
|
||||
if(isset($fachbereichskoordinator[$fachbereich['kurzbz'][$i]]))
|
||||
{
|
||||
$first=true;
|
||||
//zugehoerige koordinatoren ausgeben
|
||||
foreach($fachbereichskoordinator[$fachbereich['kurzbz'][$i]] as $fbk)
|
||||
{
|
||||
if($help!='')
|
||||
{
|
||||
if($first)
|
||||
{
|
||||
$help.=' Coordination:';
|
||||
$first=false;
|
||||
}
|
||||
else
|
||||
$help.=',';
|
||||
}
|
||||
$help.=" $fbk";
|
||||
}
|
||||
}
|
||||
if($help!='')
|
||||
echo " ($help)";
|
||||
}
|
||||
|
||||
echo '</td></tr>';
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '<br /><br /></td></tr>';
|
||||
|
||||
if ($kurzbeschreibung_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/kurzbeschreibungEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($kurzbeschreibung_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($lehrziele_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/lernergebnisseEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($lehrziele_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($lehrinhalte_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/lehrinhalteEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($lehrinhalte_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($voraussetzungen_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/vorkenntnisseEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($voraussetzungen_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($methodik_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/methodikEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($methodik_en)."<br><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($pruefungsordnung_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/leistungsbeurteilungEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($pruefungsordnung_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($unterlagen_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/literaturEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($unterlagen_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($anwesenheit_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/anwesenheitEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($anwesenheit_en)."<br /><br /></td></tr>";
|
||||
}
|
||||
|
||||
if ($anmerkungen_en)
|
||||
{
|
||||
echo "<tr><td align='left' valign='top'><h2>".$phrasen->t('lvinfo/anmerkungenEN')."</h2></td></tr>";
|
||||
echo "<tr><td>".stripslashes($anmerkungen_en)." <br /></td></tr>";
|
||||
}
|
||||
}
|
||||
|
||||
echo "</table>";
|
||||
|
||||
$lehreinheit = new lehreinheit();
|
||||
$studiensemester = new studiensemester();
|
||||
$lehreinheit->load_lehreinheiten($lv, $studiensemester->getaktorNext());
|
||||
|
||||
if (CIS_LVINFO_TERMINE_ANZEIGEN == true)
|
||||
{
|
||||
if(!empty($lehreinheit->lehreinheiten))
|
||||
{
|
||||
echo "<h2>Termine</h2><table>";
|
||||
foreach($lehreinheit->lehreinheiten as $lehreinheit_temp)
|
||||
{
|
||||
$lehrstunde = new lehrstunde();
|
||||
$lehrstunde->load_lehrstunden_le($lehreinheit_temp->lehreinheit_id);
|
||||
$i = 1;
|
||||
echo "<tr><td><ul>";
|
||||
|
||||
$result = $lehrstunde->lehrstunden;
|
||||
$last = "";
|
||||
$bis = "";
|
||||
usort($result, "cmp");
|
||||
$datum = new datum();
|
||||
$std_von = new stunde();
|
||||
$std_bis = new stunde();
|
||||
foreach($result as $key=>$stunde)
|
||||
{
|
||||
if($last !== $stunde->datum)
|
||||
{
|
||||
$temp = array_values(getLastStundeByDatum($result, $stunde->datum));
|
||||
$size = count($temp);
|
||||
if($size != 0)
|
||||
{
|
||||
$std_von->load($temp[0]->stunde);
|
||||
$std_bis->load($temp[$size-1]->stunde);
|
||||
echo "<li>".$datum->formatDatum($temp[0]->datum,"d.m.Y")." von ".mb_substr($std_von->beginn,0,5)." bis ".mb_substr($std_bis->ende,0,5)."</li>";
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
elseif($last == "")
|
||||
{
|
||||
$temp = getLastStundeByDatum($result, $stunde->datum);
|
||||
var_dump($temp);
|
||||
}
|
||||
else
|
||||
{
|
||||
$bis = $stunde->stunde;
|
||||
}
|
||||
|
||||
if($i % 5 === 0)
|
||||
{
|
||||
// echo "</ul></td><td><ul>";
|
||||
// $i++;
|
||||
}
|
||||
$last = $stunde->datum;
|
||||
}
|
||||
echo "</ul></td></tr>";
|
||||
}
|
||||
echo "</table>";
|
||||
}
|
||||
}
|
||||
|
||||
//Ein paar Zeilenumbrueche damit er beim Sprung zum Anker weit genug nach unten springt
|
||||
echo "<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
|
||||
|
||||
?>
|
||||
</td>
|
||||
<td width="3%"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</body></html>
|
||||
@@ -1,921 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../../../../config/cis.config.inc.php');
|
||||
require_once('../../../../include/functions.inc.php');
|
||||
require_once('../../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p= new phrasen($sprache);
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title><?php echo $p->t('courseInformation/terminologie');?></title>
|
||||
|
||||
</head>
|
||||
<body style="padding: 10px">
|
||||
<h1><?php echo $p->t('courseInformatoin/lvInfoTerminologie')?></h1>
|
||||
|
||||
<table class="tabcontent">
|
||||
<tr>
|
||||
<td width="85%">
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<ul>
|
||||
<li> <a class="Item" href='index.php'><font size='3'><?php echo $p->t('global/bearbeiten');?></font></a></li>
|
||||
<li> <a class="Item" href='freigabe.php'><font size='3'><?php echo $p->t('courseInformation/freigabe');?></font></a></li>
|
||||
<li> <a class="Item" href='beispiele.php'><font size='3'><?php echo $p->t('global/beispiele');?></font></a></li>
|
||||
<li> <a class="Item" href='terminologie.php'><font size='3'><?php echo $p->t('courseInformation/terminologie')?></font></a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table id="tabterm" border="1">
|
||||
|
||||
<tr class="liste1">
|
||||
<td colspan="2" align="center">
|
||||
<b><?php echo $p->t('courseInformation/terminologieDeutschEnglisch');?></b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
<b>Deutsch</b>
|
||||
</td>
|
||||
<td>
|
||||
<b>Englisch</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Abschluss (einer Lehrveranstaltung)
|
||||
</td>
|
||||
<td>
|
||||
completion
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
AnfängerIn
|
||||
</td>
|
||||
<td>
|
||||
beginner
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
angerechnet
|
||||
</td>
|
||||
<td>
|
||||
recognized
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Anrechnung
|
||||
</td>
|
||||
<td>
|
||||
recognition
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Aufgaben
|
||||
</td>
|
||||
<td>
|
||||
tasks / responsibilities / assignment
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Bachelor-Studiengang
|
||||
</td>
|
||||
<td>
|
||||
bachelor's degree program
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Bachelor
|
||||
</td>
|
||||
<td>
|
||||
Bachelor
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Bachelor-Arbeiten
|
||||
</td>
|
||||
<td>
|
||||
bachelor's paper
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
berufsbegleitend
|
||||
</td>
|
||||
<td>
|
||||
part-time study
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Berufspraktikum
|
||||
</td>
|
||||
<td>
|
||||
intership
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
bestanden
|
||||
</td>
|
||||
<td>
|
||||
pass
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
bestanden, mit gutem Erfolg
|
||||
</td>
|
||||
<td>
|
||||
pass with merit
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
bestanden, mit ausgezeichnetem
|
||||
Erfolg
|
||||
</td>
|
||||
<td>
|
||||
pass with distinction
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
BetreuerIn
|
||||
</td>
|
||||
<td>
|
||||
supervisor
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Diplomarbeit
|
||||
</td>
|
||||
<td>
|
||||
master's thesis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
DI (FH)
|
||||
</td>
|
||||
<td>
|
||||
DI (FH)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Diplom-Studiengang
|
||||
</td>
|
||||
<td>
|
||||
diploma degree program
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Erhalter
|
||||
</td>
|
||||
<td>
|
||||
operator
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Experte/in
|
||||
</td>
|
||||
<td>
|
||||
expert
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fachbereich
|
||||
</td>
|
||||
<td>
|
||||
special field
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
FachbereichskoordinatorIn
|
||||
</td>
|
||||
<td>
|
||||
special field coordinator
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
FachbereichsleiterIn
|
||||
</td>
|
||||
<td>
|
||||
head of special field
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Fachhochschul-Beirat
|
||||
</td>
|
||||
<td>
|
||||
University of Applied Sciences Advisory Board (UAS Advisory Board)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fachhochschul-Kollegium
|
||||
</td>
|
||||
<td>
|
||||
University of Applied Sciences Council (UAS Council)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Fachhochschul-KollegiumsleiterIn
|
||||
</td>
|
||||
<td>
|
||||
Head of University of Applied Sciences Council
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fachhochschulrat
|
||||
</td>
|
||||
<td>
|
||||
FH Council
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Fachhochschulkonferenz
|
||||
</td>
|
||||
<td>
|
||||
Association of Universities of
|
||||
Applied Sciences Austria
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fernlehre
|
||||
</td>
|
||||
<td>
|
||||
distance learning
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Fernlehrelemente
|
||||
</td>
|
||||
<td>
|
||||
distance learning elements
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fortgeschrittene/r
|
||||
</td>
|
||||
<td>
|
||||
advanced
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Gesamtnote, Gesamtbeurteilung
|
||||
</td>
|
||||
<td>
|
||||
final grade
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Grundlagen
|
||||
</td>
|
||||
<td>
|
||||
fundamentals
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
hauptberuflich Lehrende/r
|
||||
</td>
|
||||
<td>
|
||||
full-time instructor
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Immanente Leistungsbeurteilung
|
||||
</td>
|
||||
<td>
|
||||
continuous assessment
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
integrierte Lehrveranstaltung
|
||||
</td>
|
||||
<td>
|
||||
integrated course
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
JahrgangssprecherIn
|
||||
</td>
|
||||
<td>
|
||||
class representative
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
kommissionelle Prüfung
|
||||
</td>
|
||||
<td>
|
||||
panel exam
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Labor
|
||||
</td>
|
||||
<td>
|
||||
laboratory
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Lehrender
|
||||
</td>
|
||||
<td>
|
||||
instructor
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Lehrgang universitären
|
||||
Charakters
|
||||
</td>
|
||||
<td>
|
||||
university
|
||||
level course
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Lehrinhalte
|
||||
</td>
|
||||
<td>
|
||||
course contents
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Lehrkörper
|
||||
</td>
|
||||
<td>
|
||||
teaching staff
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Lehrmethode
|
||||
</td>
|
||||
<td>
|
||||
teaching method
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Lehrveranstaltung
|
||||
</td>
|
||||
<td>
|
||||
course
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Lehrziele
|
||||
</td>
|
||||
<td>
|
||||
course objectives
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Lernmethode
|
||||
</td>
|
||||
<td>
|
||||
study technique
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Magisterarbeit
|
||||
</td>
|
||||
<td>
|
||||
master's thesis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Mag. (FH)
|
||||
</td>
|
||||
<td>
|
||||
Mag. (FH)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Master-Studiengang
|
||||
</td>
|
||||
<td>
|
||||
master's degree program
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Matrikelnummer
|
||||
</td>
|
||||
<td>
|
||||
registration number
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Mündliche Prüfung
|
||||
</td>
|
||||
<td>
|
||||
oral examination
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
nebenberuflich Lehrende/r
|
||||
</td>
|
||||
<td>
|
||||
part-time instructor
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Niveaustufe
|
||||
</td>
|
||||
<td>
|
||||
level
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Niveaustufen:
|
||||
</td>
|
||||
<td>
|
||||
levels
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Note
|
||||
</td>
|
||||
<td>
|
||||
grade
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Organisation der LV
|
||||
</td>
|
||||
<td>
|
||||
course organization
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Personenkennzeichen
|
||||
</td>
|
||||
<td>
|
||||
personal identification number
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Pflichtveranstaltung
|
||||
</td>
|
||||
<td>
|
||||
required course
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Präsentation
|
||||
</td>
|
||||
<td>
|
||||
presentation
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Programmverantwortlicher
|
||||
</td>
|
||||
<td>
|
||||
Program Director
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Projektarbeit
|
||||
</td>
|
||||
<td>
|
||||
project work
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Prüfung
|
||||
</td>
|
||||
<td>
|
||||
examination
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Prüfungsmodalitäten
|
||||
</td>
|
||||
<td>
|
||||
exam procedure
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Prüfungsordnung
|
||||
</td>
|
||||
<td>
|
||||
examination regulation
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Rektor
|
||||
</td>
|
||||
<td>
|
||||
rector
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Schriftliche Prüfung
|
||||
</td>
|
||||
<td>
|
||||
written examination
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Semester
|
||||
</td>
|
||||
<td>
|
||||
semester
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Seminar
|
||||
</td>
|
||||
<td>
|
||||
seminar
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<!-- beg. neu 26.12.2009 seq -->
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Stellv. Studiengangsleiter
|
||||
</td>
|
||||
<td>
|
||||
Deputy Program Director
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
AssistentIn
|
||||
</td>
|
||||
<td>
|
||||
Administrative Assistant
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
ECTS-Leistungspunkte
|
||||
</td>
|
||||
<td>
|
||||
ECTS credits
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Semesterwochenstunden
|
||||
</td>
|
||||
<td>
|
||||
Semester periods per week (SP/W)
|
||||
</td>
|
||||
</tr>
|
||||
<!-- end neu 26.12.2009 seq -->
|
||||
|
||||
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Sommersemester
|
||||
</td>
|
||||
<td>
|
||||
summer semester / spring semester
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Spezialisten
|
||||
</td>
|
||||
<td>
|
||||
specialists
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Studiengang
|
||||
</td>
|
||||
<td>
|
||||
degree program
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
StudiengangssprecherIn
|
||||
</td>
|
||||
<td>
|
||||
program representative
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
StudiengangsleiterIn
|
||||
</td>
|
||||
<td>
|
||||
program director
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Studienjahr
|
||||
</td>
|
||||
<td>
|
||||
academic year
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Studienplan
|
||||
</td>
|
||||
<td>
|
||||
curriculum
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Studienplatz
|
||||
</td>
|
||||
<td>
|
||||
study place
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Studierendenvertretung
|
||||
</td>
|
||||
<td>
|
||||
student council
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Teilgebiet
|
||||
</td>
|
||||
<td>
|
||||
segment
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Test
|
||||
</td>
|
||||
<td>
|
||||
test
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Titel der Lehrveranstaltung
|
||||
</td>
|
||||
<td>
|
||||
course title
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Übung (einfache, mit Anleitung)
|
||||
</td>
|
||||
<td>
|
||||
exercise</font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Übung (im Sinne einer LV)
|
||||
</td>
|
||||
<td>
|
||||
practice
|
||||
session </td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Übung (im Sinne üben)
|
||||
</td>
|
||||
<td>
|
||||
practice
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Unterricht
|
||||
</td>
|
||||
<td>
|
||||
instruction
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Vollzeit
|
||||
</td>
|
||||
<td>
|
||||
full-time
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Voraussetzungen (für LVs)
|
||||
</td>
|
||||
<td>
|
||||
requirements
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Vorlesung
|
||||
</td>
|
||||
<td>
|
||||
lecture
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Vortragender
|
||||
</td>
|
||||
<td>
|
||||
lecturer
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Wintersemester
|
||||
</td>
|
||||
<td>
|
||||
autumn semester / winter semester
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Zeugnis
|
||||
</td>
|
||||
<td>
|
||||
certificate
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<!-- beg. neu 26.12.2009 seq -->
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Unterrichtssprache
|
||||
</td>
|
||||
<td>
|
||||
Language of instruction
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Bewerbung
|
||||
</td>
|
||||
<td>
|
||||
application
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Zugangsvorraussetzungen
|
||||
</td>
|
||||
<td>
|
||||
admission requirements
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Matura
|
||||
</td>
|
||||
<td>
|
||||
Secondary School diploma
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Auslandssemester
|
||||
</td>
|
||||
<td>
|
||||
exchange semester
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Fachhochschule Technikum Wien
|
||||
</td>
|
||||
<td>
|
||||
University of Applied Sciences Technikum Wien (UAS Technikum Wien)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste1">
|
||||
<td>
|
||||
Institut für
|
||||
</td>
|
||||
<td>
|
||||
department of
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr class="liste0">
|
||||
<td>
|
||||
Senat
|
||||
</td>
|
||||
<td>
|
||||
Senate
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<!-- end neu 26.12.2009 seq -->
|
||||
</table>
|
||||
</td></tr></table>
|
||||
</body></html>
|
||||
@@ -200,20 +200,26 @@ else
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$qry = "SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
|
||||
tbl_zeugnisnote.note
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id=tbl_student.prestudent_id
|
||||
ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
|
||||
tbl_zeugnisnote.note,tbl_mobilitaet.mobilitaetstyp_kurzbz
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id
|
||||
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
|
||||
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
|
||||
|
||||
if($lehreinheit_id!='')
|
||||
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
@@ -243,6 +249,10 @@ else
|
||||
$inc.=' (ar)';
|
||||
$note='ar';
|
||||
}
|
||||
if($elem->mobilitaetstyp_kurzbz !='') //dd-Program
|
||||
{
|
||||
$inc.=' (dd)';
|
||||
}
|
||||
else
|
||||
$note='';
|
||||
$worksheet->write($lines,1,$elem->uid);
|
||||
@@ -295,6 +305,7 @@ else
|
||||
$worksheet->write(++$lines,0,'(i) ... Incoming');
|
||||
$worksheet->write(++$lines,0,'(o) ... Outgoing');
|
||||
$worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet'));
|
||||
$worksheet->write(++$lines,0,'(dd) ... Double Degree Program');
|
||||
|
||||
$worksheet->setColumn(0, 0, 5);
|
||||
$worksheet->setColumn(0, 1, 16);
|
||||
|
||||
@@ -293,36 +293,9 @@ if (!$ansicht)
|
||||
$adresse = new adresse();
|
||||
$adresse->load_pers($user->person_id);
|
||||
|
||||
function sortAdresse($a , $b)
|
||||
{
|
||||
if ($a->typ === $b->typ)
|
||||
return 0;
|
||||
|
||||
return ($a->typ < $b->typ) ? -1 : 1;
|
||||
}
|
||||
usort($adresse->result, "sortAdresse");
|
||||
foreach($adresse->result as $a)
|
||||
{
|
||||
if ($a->zustelladresse)
|
||||
{
|
||||
switch ($a->typ)
|
||||
{
|
||||
case "h":
|
||||
$typ = $p->t("global/hauptwohnsitz");
|
||||
break;
|
||||
case "n":
|
||||
$typ = $p->t("global/nebenwohnsitz");
|
||||
break;
|
||||
default:
|
||||
$typ = NULL;
|
||||
break;
|
||||
}
|
||||
if ($typ !== NULL)
|
||||
{
|
||||
echo "<b>".$typ.": </b><br>";
|
||||
echo $a->strasse."<br>".$a->plz." ".$a->ort."<br><br>";
|
||||
}
|
||||
}
|
||||
echo $a->strasse . "<b> (" . $a->bezeichnung_mehrsprachig[$sprache] .") </b>" . "<br>".$a->plz." ".$a->ort."<br><br>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,12 +96,12 @@ $fieldheadings = array(
|
||||
if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung'))
|
||||
{
|
||||
$za_simple = 0;
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE','FuEallg', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung');
|
||||
}
|
||||
else
|
||||
{
|
||||
$za_simple = 1;
|
||||
$activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe');
|
||||
$activities = array('Admin', 'FuE','FuEallg','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung');
|
||||
}
|
||||
|
||||
$activities_str = "'".implode("','", $activities)."'";
|
||||
@@ -660,7 +660,7 @@ echo '
|
||||
function checkPausenblock()
|
||||
{
|
||||
var sel = $("#aktivitaet").val();
|
||||
var activities = ["Admin", "Lehre", "FuE", "Operativ", "Betrieb", "Design"];
|
||||
var activities = ["Admin", "Lehre", "FuE", "Operativ", "Betrieb", "Design", "LVEntwicklung", "Weiterbildung", "FuEallg"];
|
||||
if (activities.includes(sel))
|
||||
showPausenblock();
|
||||
else
|
||||
@@ -710,6 +710,10 @@ echo '
|
||||
else
|
||||
{
|
||||
var pausenstart = Math.floor((spanne/2-15)+(von_stunden*60+parseInt(von_minuten)));
|
||||
if (pausenstart%15 !== 0)
|
||||
{
|
||||
pausenstart = Math.round(pausenstart/10)*10;
|
||||
}
|
||||
var pausenstart_stunde = Math.floor(pausenstart/60);
|
||||
var pausenstart_minute = pausenstart - pausenstart_stunde*60;
|
||||
pausenstart_stunde = (pausenstart_stunde < 10 ? "0"+pausenstart_stunde : pausenstart_stunde);
|
||||
@@ -1375,8 +1379,10 @@ if ($projekt->getProjekteMitarbeiter($user, true))
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
echo '<SELECT name="aktivitaet" id="aktivitaet" onChange="checkPausenblock()">';
|
||||
/*
|
||||
if ($za_simple == 0)
|
||||
echo '<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
|
||||
*/
|
||||
//else
|
||||
// echo '<OPTION value="Arbeit">Arbeit</OPTION>';
|
||||
while($row = $db->db_fetch_object($result))
|
||||
@@ -2153,9 +2159,6 @@ function getZeitaufzeichnung($user, $von, $bis)
|
||||
* Exportiert Zeitaufzeichnungsdaten als CSV
|
||||
* @param $data Zeitaufzeichnungsdaten
|
||||
* @param string $delimiter CSV-Trennzeichen
|
||||
* @param $fieldheadings Namen der Spaltenüberschriften
|
||||
* @param bool $za_simple Zeitaufzeichnung lang (für Infrastrukturmitarbeiter) oder kurz (simple)
|
||||
* @param $uid Id des Users für CSV-Filenamen "zeitaufzeichnung_uid"
|
||||
*/
|
||||
function exportProjectOverviewAsCSV($user, $delimiter = ',')
|
||||
{
|
||||
@@ -2177,6 +2180,7 @@ function exportProjectOverviewAsCSV($user, $delimiter = ',')
|
||||
|
||||
function getDataForProjectOverviewCSV($user)
|
||||
{
|
||||
$db = new basis_db();
|
||||
$projects_of_user = new projekt();
|
||||
$projects = $projects_of_user->getProjekteListForMitarbeiter($user);
|
||||
|
||||
@@ -2184,10 +2188,12 @@ function getDataForProjectOverviewCSV($user)
|
||||
if($projektphase->getProjectphaseForMitarbeiter($user))
|
||||
$projektphasen = $projektphase->result;
|
||||
else
|
||||
$projetkphasen = array();
|
||||
$projektphasen = array();
|
||||
|
||||
$csvData = array();
|
||||
|
||||
$exists = @$db->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
|
||||
|
||||
foreach ($projects as $project)
|
||||
{
|
||||
$titel = $project->titel;
|
||||
@@ -2197,7 +2203,15 @@ function getDataForProjectOverviewCSV($user)
|
||||
$beginn = $project->beginn;
|
||||
$ende = $project->ende;
|
||||
|
||||
$csvData[] = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
|
||||
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$sap_projekt_id = $project->sap_project_id;
|
||||
$inhalt[] = $sap_projekt_id;
|
||||
}
|
||||
|
||||
$csvData[] = $inhalt;
|
||||
}
|
||||
|
||||
foreach ($projektphasen as $prjp)
|
||||
@@ -2210,14 +2224,26 @@ function getDataForProjectOverviewCSV($user)
|
||||
$projekt_phase_id = $prjp->projektphase_id;
|
||||
$beginn = $prjp->start;
|
||||
$ende = $prjp->ende;
|
||||
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
|
||||
|
||||
array_push($csvData, array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende) );
|
||||
if ($exists)
|
||||
{
|
||||
$project_task_id = $prjp->project_task_id;
|
||||
$inhalt[] = $project_task_id;
|
||||
}
|
||||
|
||||
array_push($csvData, $inhalt);
|
||||
}
|
||||
}
|
||||
|
||||
sort($csvData);
|
||||
//headers schreiben
|
||||
array_unshift($csvData, array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE'));
|
||||
$header = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE');
|
||||
|
||||
if ($exists)
|
||||
$header[] = 'SAP PROJEKTNUMMER';
|
||||
|
||||
array_unshift($csvData, $header);
|
||||
return $csvData;
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -750,7 +750,7 @@ foreach ($projektnames as $projektname)
|
||||
}
|
||||
|
||||
$worksheet->setColumn($spalte, $spalte, $phasewidth);
|
||||
$worksheet->write($zeile, $spalte++, $projekt->beschreibung, $format_cell_leftrightline);
|
||||
$worksheet->writeString($zeile, $spalte++, $projekt->beschreibung, $format_cell_leftrightline);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
+28
-1
@@ -332,6 +332,7 @@ if (isset($_POST['fileupload']))
|
||||
$dms_id = $_POST['dms_id'];
|
||||
$beschreibung = $_POST['beschreibung'];
|
||||
$schlagworte = $_POST['schlagworte'];
|
||||
$mimetype = isset($_POST['mimetype']) ? $_POST['mimetype'] : '';
|
||||
$cis_suche = isset($_POST['cis_suche']) ? true : false;
|
||||
$ext = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
|
||||
$filename = uniqid();
|
||||
@@ -363,7 +364,14 @@ if (isset($_POST['fileupload']))
|
||||
|
||||
$dms->insertamum = date('Y-m-d H:i:s');
|
||||
$dms->insertvon = $user;
|
||||
$dms->mimetype = finfo_file($finfo, $uploadfile); // Davor deprecated: $_FILES['userfile']['type'];
|
||||
if ($mimetype != '')
|
||||
{
|
||||
$dms->mimetype = $mimetype;
|
||||
}
|
||||
else
|
||||
{
|
||||
$dms->mimetype = finfo_file($finfo, $uploadfile);
|
||||
}
|
||||
$dms->filename = $filename;
|
||||
$dms->name = $_FILES['userfile']['name'];
|
||||
$dms->beschreibung = $beschreibung;
|
||||
@@ -404,6 +412,7 @@ if (isset($_POST['action']) && $_POST['action'] == 'rename')
|
||||
$version = $_POST['version'];
|
||||
$beschreibung = $_POST['beschreibung'];
|
||||
$schlagworte = $_POST['schlagworte'];
|
||||
$mimetype = isset($_POST['mimetype']) ? $_POST['mimetype'] : '';
|
||||
$cis_suche = isset($_POST['cis_suche']) ? true : false;
|
||||
|
||||
$dms = new dms();
|
||||
@@ -413,6 +422,14 @@ if (isset($_POST['action']) && $_POST['action'] == 'rename')
|
||||
$dms->beschreibung = $beschreibung;
|
||||
$dms->schlagworte = $schlagworte;
|
||||
$dms->cis_suche = $cis_suche;
|
||||
if ($mimetype != '')
|
||||
{
|
||||
$dms->mimetype = $mimetype;
|
||||
}
|
||||
else
|
||||
{
|
||||
$dms->mimetype = finfo_file($finfo, $uploadfile);
|
||||
}
|
||||
$dms->updateamum = date('Y-m-d H:i:s');
|
||||
$dms->updatevon = $user;
|
||||
|
||||
@@ -1012,6 +1029,10 @@ else
|
||||
<td>Schlagworte<br/>(Semikolon getrennt)</td>
|
||||
<td><textarea name="schlagworte" id="schlagworte-textarea" rows="2" cols="80" style="font-size: small;"></textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mimetype</td>
|
||||
<td><input type="text" name="mimetype" id="mimetype-input" size="50" maxlength="256" style="font-size: small;" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CIS-Suche</td>
|
||||
<td><input type="checkbox" id="cis_suche_checkbox" name="cis_suche"></td>
|
||||
@@ -1088,6 +1109,7 @@ function drawAllVersions($id)
|
||||
<th>CIS-Suche</th>
|
||||
<th>Kategorie</th>
|
||||
<th>Filename intern</th>
|
||||
<th>Mimetype</th>
|
||||
<th>Datum</th>
|
||||
<th>User</th>
|
||||
</tr>
|
||||
@@ -1102,6 +1124,7 @@ function drawAllVersions($id)
|
||||
<td style="padding: 1px; vertical-align:middle">'.($dms_help->cis_suche == 'true'?'Ja':'Nein').'</td>
|
||||
<td style="padding: 1px; vertical-align:middle" align="center">'.$dms_help->kategorie_kurzbz.'</td>
|
||||
<td style="padding: 1px; vertical-align:middle" align="center">'.$dms_help->filename.'</td>
|
||||
<td style="padding: 1px; vertical-align:middle" align="center">'.$dms_help->mimetype.'</td>
|
||||
<td style="padding: 1px; vertical-align:middle">'.$dms_help->insertamum.'</td>
|
||||
<td style="padding: 1px; vertical-align:middle;">'.$dms_help->insertvon.'</td>
|
||||
<td style="padding: 1px; vertical-align:middle;">
|
||||
@@ -1568,6 +1591,10 @@ function drawRenameForm($dms_id, $version, $page = NULL, $dpp = NULL, $searching
|
||||
<td>Schlagworte<br/>(Semikolon getrennt):</td>
|
||||
<td><textarea name="schlagworte" rows="2" cols="80" style="font-size: small;">'.$dms->convert_html_chars($dms->schlagworte).'</textarea></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mimetype</td>
|
||||
<td><input type="text" name="mimetype" size="80" maxlength="256" style="font-size: small;" value="'.$dms->convert_html_chars($dms->mimetype).'"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>CIS-Suche:</td>
|
||||
<td><input type="checkbox" name="cis_suche" '.($dms->cis_suche == 'true'?'checked="checked"':'').'></td>
|
||||
|
||||
@@ -194,6 +194,9 @@ define('REIHUNGSTEST_CHECK', true);
|
||||
// Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden
|
||||
define('ZGV_CHECK', true);
|
||||
|
||||
define ('ZGV_DOKTOR_ANZEIGEN', false);
|
||||
define ('ZGV_ERFUELLT_ANZEIGEN', false);
|
||||
|
||||
// Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt
|
||||
define('SEND_BEWERBER_INFOMAIL', false);
|
||||
|
||||
|
||||
@@ -70,13 +70,15 @@ else
|
||||
<row>
|
||||
<label value="Typ" control="adresse-menulist-typ"/>
|
||||
<menulist id="adresse-menulist-typ"
|
||||
flex="1">
|
||||
datasources="<?php echo APP_ROOT ?>rdf/adressentyp.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/adressentyp/liste">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="h" label="Hauptwohnsitz"/>
|
||||
<menuitem value="n" label="Nebenwohnsitz"/>
|
||||
<menuitem value="f" label="Firma"/>
|
||||
<menuitem value="r" label="Rechnungsadresse"/>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/adressentyp/rdf#adressentyp"
|
||||
label="rdf:http://www.technikum-wien.at/adressentyp/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
|
||||
@@ -204,7 +204,7 @@ else
|
||||
<row id="betriebsmittel-row-nummer2">
|
||||
<label value="Nummer 2" control="betriebsmittel-textbox-nummer2"/>
|
||||
<hbox>
|
||||
<textbox id="betriebsmittel-textbox-nummer2" disabled="true" maxlength="12"/>
|
||||
<textbox id="betriebsmittel-textbox-nummer2" disabled="true" maxlength="32"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
|
||||
@@ -413,6 +413,12 @@ if(!$error)
|
||||
}
|
||||
if(!$error)
|
||||
{
|
||||
//Check, ob OE aktiv ist, sonst Hinweis ausgeben
|
||||
$oe = new organisationseinheit($_POST['oe_kurzbz']);
|
||||
if ($oe->aktiv === false)
|
||||
{
|
||||
$errormsg = 'ACHTUNG: Die Organisationseinheit ist inaktiv. Änderungen wurden gespeichert.';
|
||||
}
|
||||
$benutzerfunktion->oe_kurzbz = $_POST['oe_kurzbz'];
|
||||
$benutzerfunktion->semester = $_POST['semester'];
|
||||
$benutzerfunktion->fachbereich_kurzbz = $_POST['fachbereich_kurzbz'];
|
||||
|
||||
@@ -328,6 +328,8 @@ function FunktionDetailSpeichern(kopie)
|
||||
}
|
||||
else
|
||||
{
|
||||
if(val.dbdml_errormsg!='' && val.dbdml_errormsg!='unknown')
|
||||
alert(val.dbdml_errormsg);
|
||||
FunktionBezeichnungChanged=false;
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
FunktionenSelectID=val.dbdml_data;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -149,12 +149,22 @@ function onselectProjekt()
|
||||
var beginn=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#beginn" ));
|
||||
var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
|
||||
var budget=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#budget" ));
|
||||
var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" ));
|
||||
var aufwand_pt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwand_pt" ));
|
||||
var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" ));
|
||||
var aufwand_pt=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwand_pt" ));
|
||||
var anzahl_ma=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_ma" ));
|
||||
var aufwandstyp_kurzbz=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufwandstyp_kurzbz" ));
|
||||
|
||||
//Daten den Feldern zuweisen
|
||||
var zeitaufzeichnung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zeitaufzeichnung" ));
|
||||
|
||||
if (!zeitaufzeichnung)
|
||||
{
|
||||
zeitaufzeichnung='Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
zeitaufzeichnung='Ja';
|
||||
}
|
||||
|
||||
//Daten den Feldern zuweisen
|
||||
|
||||
document.getElementById('textbox-projekt-detail-projekt_kurzbz').value=projekt_kurzbz;
|
||||
//document.getElementById('menulist-projekt-detail-oe_kurzbz').value=oe_kurzbz;
|
||||
@@ -166,9 +176,14 @@ function onselectProjekt()
|
||||
document.getElementById('textbox-projekt-detail-ende').value=ende;
|
||||
document.getElementById('textbox-projekt-detail-budget').value=budget;
|
||||
document.getElementById('textbox-projekt-detail-farbe').value=farbe;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=false;
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value=anzahl_ma;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=false;
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value=anzahl_ma;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').value=aufwand_pt;
|
||||
if(zeitaufzeichnung=='Nein')
|
||||
document.getElementById('checkbox-projekt-detail-zeitaufzeichnung').checked=false;
|
||||
else
|
||||
document.getElementById('checkbox-projekt-detail-zeitaufzeichnung').checked=true;
|
||||
|
||||
MenulistSelectItemOnValue('menulist-projekt-detail-aufwandstyp', aufwandstyp_kurzbz);
|
||||
|
||||
|
||||
@@ -197,12 +212,13 @@ function saveProjektDetail()
|
||||
beginn = document.getElementById('textbox-projekt-detail-beginn').iso;
|
||||
ende = document.getElementById('textbox-projekt-detail-ende').iso;
|
||||
budget = document.getElementById('textbox-projekt-detail-budget').value;
|
||||
farbe = document.getElementById('textbox-projekt-detail-farbe').value;
|
||||
farbe = document.getElementById('textbox-projekt-detail-farbe').value;
|
||||
neu = document.getElementById('checkbox-projekt-detail-neu').checked;
|
||||
aufwandstyp_kurzbz = MenulistGetSelectedValue('menulist-projekt-detail-aufwandstyp');
|
||||
anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
aufwandstyp_kurzbz = MenulistGetSelectedValue('menulist-projekt-detail-aufwandstyp');
|
||||
anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
aufwand_pt = document.getElementById('textbox-projekt-aufwand_pt').value;
|
||||
|
||||
zeitaufzeichnung = document.getElementById('checkbox-projekt-detail-zeitaufzeichnung').checked;
|
||||
|
||||
var soapBody = new SOAPObject("saveProjekt");
|
||||
//soapBody.appendChild(new SOAPObject("username")).val('joe');
|
||||
//soapBody.appendChild(new SOAPObject("passwort")).val('waschl');
|
||||
@@ -217,14 +233,28 @@ function saveProjektDetail()
|
||||
projekt.appendChild(new SOAPObject("ende")).val(ende);
|
||||
projekt.appendChild(new SOAPObject("budget")).val(budget);
|
||||
projekt.appendChild(new SOAPObject("farbe")).val(farbe);
|
||||
projekt.appendChild(new SOAPObject("aufwandstyp_kurzbz")).val(aufwandstyp_kurzbz);
|
||||
projekt.appendChild(new SOAPObject("anzahl_ma")).val(anzahl_ma);
|
||||
projekt.appendChild(new SOAPObject("aufwandstyp_kurzbz")).val(aufwandstyp_kurzbz);
|
||||
projekt.appendChild(new SOAPObject("anzahl_ma")).val(anzahl_ma);
|
||||
projekt.appendChild(new SOAPObject("aufwand_pt")).val(aufwand_pt);
|
||||
|
||||
|
||||
if(zeitaufzeichnung)
|
||||
{
|
||||
projekt.appendChild(new SOAPObject("zeitaufzeichnung")).val('true');
|
||||
}
|
||||
else
|
||||
{
|
||||
projekt.appendChild(new SOAPObject("zeitaufzeichnung")).val('false');
|
||||
}
|
||||
|
||||
if(neu)
|
||||
{
|
||||
projekt.appendChild(new SOAPObject("neu")).val('true');
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
projekt.appendChild(new SOAPObject("neu")).val('false');
|
||||
}
|
||||
|
||||
soapBody.appendChild(projekt);
|
||||
|
||||
var sr = new SOAPRequest("saveProjekt",soapBody);
|
||||
@@ -342,9 +372,9 @@ function ProjektDetailReset()
|
||||
document.getElementById('textbox-projekt-detail-beschreibung').value='';
|
||||
document.getElementById('textbox-projekt-detail-beginn').value='';
|
||||
document.getElementById('textbox-projekt-detail-ende').value='';
|
||||
document.getElementById('textbox-projekt-detail-budget').value='';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value='';
|
||||
document.getElementById('textbox-projekt-aufwand_pt').value='';
|
||||
document.getElementById('textbox-projekt-detail-budget').value='';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').value='';
|
||||
document.getElementById('textbox-projekt-aufwand_pt').value='';
|
||||
document.getElementById('textbox-projekt-detail-projektwuerdigkeit').value='';
|
||||
}
|
||||
|
||||
@@ -362,7 +392,7 @@ function ProjektDisableFields(val)
|
||||
document.getElementById('textbox-projekt-detail-budget').disabled=val;
|
||||
document.getElementById('textbox-projekt-detail-farbe').disabled=val;
|
||||
document.getElementById('button-projekt-detail-speichern').disabled=val;
|
||||
document.getElementById('menulist-projekt-detail-aufwandstyp').disabled=val;
|
||||
document.getElementById('menulist-projekt-detail-aufwandstyp').disabled=val;
|
||||
document.getElementById('textbox-projekt-anzahl_ma').disabled=val;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').disabled=val;
|
||||
}
|
||||
@@ -385,65 +415,65 @@ function ProjektNeu()
|
||||
document.getElementById('textbox-projekt-detail-projekt_kurzbz').disabled=false;
|
||||
document.getElementById('checkbox-projekt-detail-neu').checked=true;
|
||||
document.getElementById('caption-projekt-detail').label='Neues Projekt';
|
||||
document.getElementById('textbox-projekt-detail-farbe').value='#FF0000';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').disabled=false;
|
||||
document.getElementById('textbox-projekt-detail-farbe').value='#FF0000';
|
||||
document.getElementById('textbox-projekt-anzahl_ma').disabled=false;
|
||||
document.getElementById('textbox-projekt-aufwand_pt').disabled=false;
|
||||
|
||||
//Detail Tab auswaehlen
|
||||
document.getElementById('tabs-projekt-main').selectedItem=document.getElementById('tab-projekt-detail');
|
||||
}
|
||||
|
||||
function makeProjektAnalyse(){
|
||||
var ergebnis_el = document.getElementById('textbox-projekt-detail-projektwuerdigkeit');
|
||||
ergebnis_el.value="";
|
||||
var anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
var aufwand_pt = document.getElementById('textbox-projekt-aufwand_pt').value;
|
||||
var budget = document.getElementById('textbox-projekt-detail-budget').value;
|
||||
|
||||
function makeProjektAnalyse(){
|
||||
var ergebnis_el = document.getElementById('textbox-projekt-detail-projektwuerdigkeit');
|
||||
ergebnis_el.value="";
|
||||
var anzahl_ma = document.getElementById('textbox-projekt-anzahl_ma').value;
|
||||
var aufwand_pt = document.getElementById('textbox-projekt-aufwand_pt').value;
|
||||
var budget = document.getElementById('textbox-projekt-detail-budget').value;
|
||||
var beginn = document.getElementById('textbox-projekt-detail-beginn').value;
|
||||
var ende = document.getElementById('textbox-projekt-detail-ende').value;
|
||||
|
||||
if (!anzahl_ma || !aufwand_pt || !budget || !beginn || !ende)
|
||||
{
|
||||
ergebnis_el.value = 'Angaben unvollständig';
|
||||
}
|
||||
else
|
||||
{
|
||||
var beginn_arr = beginn.split(".");
|
||||
var ende_arr = ende.split(".");
|
||||
var date1 = new Date(beginn_arr[2],beginn_arr[1],beginn_arr[0]);
|
||||
var date2 = new Date(ende_arr[2],ende_arr[1],ende_arr[0]);
|
||||
|
||||
var dauerTage = parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
|
||||
|
||||
var punkte_gesamt = 0;
|
||||
var projekttyp = '';
|
||||
if (aufwand_pt < 10) punkte_gesamt += 1;
|
||||
else if (aufwand_pt <= 50) punkte_gesamt += 4;
|
||||
else if (aufwand_pt <= 250) punkte_gesamt += 8;
|
||||
else punkte_gesamt += 8;
|
||||
|
||||
if (anzahl_ma < 3) punkte_gesamt += 1;
|
||||
else if (anzahl_ma <= 5) punkte_gesamt += 3;
|
||||
else if (anzahl_ma <= 20) punkte_gesamt += 6;
|
||||
else punkte_gesamt += 9;
|
||||
|
||||
if (budget < 5000) punkte_gesamt += 1;
|
||||
else if (budget <= 25000) punkte_gesamt += 2;
|
||||
else if (budget <= 500000) punkte_gesamt += 4;
|
||||
else punkte_gesamt += 6;
|
||||
|
||||
if (dauerTage < 30) punkte_gesamt += 0;
|
||||
else if (dauerTage <= 90) punkte_gesamt += 4;
|
||||
else if (dauerTage <= 360) punkte_gesamt += 5;
|
||||
else punkte_gesamt += 7;
|
||||
|
||||
if (punkte_gesamt <= 8) projekttyp = 'Vorhaben';
|
||||
else if (punkte_gesamt <= 15) projekttyp = 'Kleinprojekt';
|
||||
else if (punkte_gesamt <= 30) projekttyp = 'Projekt';
|
||||
else projekttyp = 'Großrojekt';
|
||||
ergebnis_el.value = projekttyp;
|
||||
}
|
||||
}
|
||||
var ende = document.getElementById('textbox-projekt-detail-ende').value;
|
||||
|
||||
if (!anzahl_ma || !aufwand_pt || !budget || !beginn || !ende)
|
||||
{
|
||||
ergebnis_el.value = 'Angaben unvollständig';
|
||||
}
|
||||
else
|
||||
{
|
||||
var beginn_arr = beginn.split(".");
|
||||
var ende_arr = ende.split(".");
|
||||
var date1 = new Date(beginn_arr[2],beginn_arr[1],beginn_arr[0]);
|
||||
var date2 = new Date(ende_arr[2],ende_arr[1],ende_arr[0]);
|
||||
|
||||
var dauerTage = parseInt((date2 - date1) / (1000 * 60 * 60 * 24));
|
||||
|
||||
var punkte_gesamt = 0;
|
||||
var projekttyp = '';
|
||||
if (aufwand_pt < 10) punkte_gesamt += 1;
|
||||
else if (aufwand_pt <= 50) punkte_gesamt += 4;
|
||||
else if (aufwand_pt <= 250) punkte_gesamt += 8;
|
||||
else punkte_gesamt += 8;
|
||||
|
||||
if (anzahl_ma < 3) punkte_gesamt += 1;
|
||||
else if (anzahl_ma <= 5) punkte_gesamt += 3;
|
||||
else if (anzahl_ma <= 20) punkte_gesamt += 6;
|
||||
else punkte_gesamt += 9;
|
||||
|
||||
if (budget < 5000) punkte_gesamt += 1;
|
||||
else if (budget <= 25000) punkte_gesamt += 2;
|
||||
else if (budget <= 500000) punkte_gesamt += 4;
|
||||
else punkte_gesamt += 6;
|
||||
|
||||
if (dauerTage < 30) punkte_gesamt += 0;
|
||||
else if (dauerTage <= 90) punkte_gesamt += 4;
|
||||
else if (dauerTage <= 360) punkte_gesamt += 5;
|
||||
else punkte_gesamt += 7;
|
||||
|
||||
if (punkte_gesamt <= 8) projekttyp = 'Vorhaben';
|
||||
else if (punkte_gesamt <= 15) projekttyp = 'Kleinprojekt';
|
||||
else if (punkte_gesamt <= 30) projekttyp = 'Projekt';
|
||||
else projekttyp = 'Großrojekt';
|
||||
ergebnis_el.value = projekttyp;
|
||||
}
|
||||
}
|
||||
|
||||
function ProjektPrintStatusbericht()
|
||||
{
|
||||
|
||||
@@ -164,6 +164,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
|
||||
<label value="Zeitaufzeichnung" control="checkbox-projekt-detail-zeitaufzeichnung"/>
|
||||
<hbox>
|
||||
<checkbox id="checkbox-projekt-detail-zeitaufzeichnung"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
|
||||
@@ -161,7 +161,16 @@ function onselectTreeProjektphase()
|
||||
var budget=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#budget" ));
|
||||
var personentage=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#personentage" ));
|
||||
var farbe=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#farbe" ));
|
||||
|
||||
var zeitaufzeichnung=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zeitaufzeichnung" ));
|
||||
|
||||
if (!zeitaufzeichnung)
|
||||
{
|
||||
zeitaufzeichnung='Nein';
|
||||
}
|
||||
else
|
||||
{
|
||||
zeitaufzeichnung='Ja';
|
||||
}
|
||||
//alert(typ);
|
||||
|
||||
//Daten den Feldern zuweisen
|
||||
@@ -180,6 +189,11 @@ function onselectTreeProjektphase()
|
||||
document.getElementById('textbox-projektphase-detail-personentage').value=personentage;
|
||||
document.getElementById('textbox-projektphase-detail-farbe').value=farbe;
|
||||
document.getElementById('checkbox-projektphase-detail-neu').checked=false;
|
||||
if(zeitaufzeichnung=='Nein')
|
||||
document.getElementById('checkbox-projektphase-detail-zeitaufzeichnung').checked=false;
|
||||
else
|
||||
document.getElementById('checkbox-projektphase-detail-zeitaufzeichnung').checked=true;
|
||||
|
||||
MenulistSelectItemOnValue('menulist-projektphase-detail-projektphase_fk', projektphase_fk);
|
||||
MenulistSelectItemOnValue('menulist-projektphase-detail-ressource', ressource_id);
|
||||
|
||||
@@ -233,6 +247,7 @@ function saveProjektphaseDetail()
|
||||
var personentage = document.getElementById('textbox-projektphase-detail-personentage').value;
|
||||
var farbe = document.getElementById('textbox-projektphase-detail-farbe').value;
|
||||
var neu = document.getElementById('checkbox-projektphase-detail-neu').checked;
|
||||
var zeitaufzeichnung = document.getElementById('checkbox-projektphase-detail-zeitaufzeichnung').checked;
|
||||
|
||||
var soapBody = new SOAPObject("saveProjektphase");
|
||||
//soapBody.appendChild(new SOAPObject("username")).val('joe');
|
||||
@@ -251,10 +266,22 @@ function saveProjektphaseDetail()
|
||||
phase.appendChild(new SOAPObject("budget")).val(budget);
|
||||
phase.appendChild(new SOAPObject("personentage")).val(personentage);
|
||||
phase.appendChild(new SOAPObject("farbe")).val(farbe);
|
||||
if(neu)
|
||||
phase.appendChild(new SOAPObject("neu")).val('true');
|
||||
if(zeitaufzeichnung)
|
||||
{
|
||||
phase.appendChild(new SOAPObject("zeitaufzeichnung")).val('true');
|
||||
}
|
||||
else
|
||||
{
|
||||
phase.appendChild(new SOAPObject("zeitaufzeichnung")).val('false');
|
||||
}
|
||||
if(neu)
|
||||
{
|
||||
phase.appendChild(new SOAPObject("neu")).val('true');
|
||||
}
|
||||
else
|
||||
{
|
||||
phase.appendChild(new SOAPObject("neu")).val('false');
|
||||
}
|
||||
phase.appendChild(new SOAPObject("user")).val(getUsername());
|
||||
soapBody.appendChild(phase);
|
||||
|
||||
|
||||
@@ -143,6 +143,15 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<spacer />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
|
||||
<label value="Zeitaufzeichnung" control="checkbox-projektphase-detail-zeitaufzeichnung"/>
|
||||
<hbox>
|
||||
<checkbox id="checkbox-projektphase-detail-zeitaufzeichnung"/>
|
||||
<spacer />
|
||||
</hbox>
|
||||
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
|
||||
@@ -29,6 +29,7 @@ require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/mitarbeiter.class.php');
|
||||
require_once('../../include/organisationseinheit.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
@@ -114,6 +115,9 @@ $oe_arr[''] = '';
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->getAll('typ, kurzbz', false);
|
||||
|
||||
$stsem = new studiensemester();
|
||||
|
||||
$previousStsem = $stsem->getPreviousFrom($stsem->getPreviousFrom($studiensemester_kurzbz));
|
||||
$qry = "
|
||||
SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
|
||||
tbl_lehrveranstaltung.studiengang_kz,
|
||||
@@ -124,18 +128,21 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
|
||||
tbl_lehreinheitmitarbeiter.stundensatz,
|
||||
tbl_lehreinheitmitarbeiter.semesterstunden lemss,
|
||||
tbl_lehreinheitmitarbeiter.planstunden,
|
||||
tbl_lehreinheitmitarbeiter.anmerkung as mitarbeiter_anmerkung,
|
||||
tbl_lehreinheit.stundenblockung,
|
||||
tbl_lehreinheit.wochenrythmus,
|
||||
tbl_lehreinheit.raumtyp,
|
||||
tbl_lehreinheit.raumtypalternativ,
|
||||
tbl_lehreinheit.anmerkung,
|
||||
tbl_lehreinheit.anmerkung as lehreinheit_anmerkung,
|
||||
tbl_lehreinheit.studiensemester_kurzbz,
|
||||
tbl_lehreinheit.start_kw,
|
||||
tbl_lehrveranstaltung.ects,
|
||||
tbl_lehrveranstaltung.semesterstunden,
|
||||
tbl_lehrveranstaltung.semesterstunden AS sws,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz,
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id,
|
||||
tbl_lehrveranstaltung.orgform_kurzbz,
|
||||
tbl_lehrveranstaltung.sprache,
|
||||
(
|
||||
SELECT nachname
|
||||
FROM PUBLIC.tbl_person
|
||||
@@ -163,6 +170,17 @@ SELECT tbl_lehrveranstaltung.bezeichnung AS lf_bezeichnung,
|
||||
FROM lehre.tbl_lehrform
|
||||
WHERE lehre.tbl_lehrform.lehrform_kurzbz = tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1
|
||||
) AS lv_type,
|
||||
(
|
||||
SELECT STRING_AGG(DISTINCT (person.nachname || ' ' || person.vorname), ', ')
|
||||
FROM lehre.tbl_lehrveranstaltung slv
|
||||
JOIN lehre.tbl_lehreinheit sle USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter slema USING (lehreinheit_id)
|
||||
JOIN PUBLIC.tbl_benutzer benutzer ON benutzer.uid = slema.mitarbeiter_uid
|
||||
JOIN PUBLIC.tbl_person person USING (person_id)
|
||||
WHERE lehre.tbl_lehreinheit.lehrveranstaltung_id = sle.lehrveranstaltung_id
|
||||
AND tbl_lehrveranstaltung.lehrform_kurzbz = slv.lehrform_kurzbz
|
||||
AND sle.studiensemester_kurzbz = " . $db->db_add_param($previousStsem) . "
|
||||
) AS vorjahr_lektor,
|
||||
tbl_lehrveranstaltung.lehrform_kurzbz
|
||||
FROM lehre.tbl_lehrveranstaltung
|
||||
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
|
||||
@@ -217,6 +235,10 @@ $worksheet->write($zeile,++$spalte,"LektorIn", $format_bold);
|
||||
$maxlength[$spalte]=6;
|
||||
$worksheet->write($zeile,++$spalte,"Fixangestellt", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
$worksheet->write($zeile,++$spalte,"Vorjahrslektor", $format_bold);
|
||||
$maxlength[$spalte]=12;
|
||||
$worksheet->write($zeile,++$spalte,"Lektor*in bestätigt", $format_bold);
|
||||
$maxlength[$spalte]=12;
|
||||
$worksheet->write($zeile,++$spalte,"Bezeichnung", $format_bold);
|
||||
$maxlength[$spalte]=25;
|
||||
$worksheet->write($zeile,++$spalte,"Semester", $format_bold);
|
||||
@@ -239,8 +261,12 @@ $worksheet->write($zeile,++$spalte,"Raum", $format_bold);
|
||||
$maxlength[$spalte]=4;
|
||||
$worksheet->write($zeile,++$spalte,"Raum alternativ", $format_bold);
|
||||
$maxlength[$spalte]=15;
|
||||
$worksheet->write($zeile,++$spalte,"Anmerkung", $format_bold);
|
||||
$maxlength[$spalte]=9;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Anmerkung für LV Planung", $format_bold);
|
||||
$maxlength[$spalte]=25;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Anmerkung für Dpt/KF", $format_bold);
|
||||
$maxlength[$spalte]=25;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"LV-Leitung", $format_bold);
|
||||
$maxlength[$spalte]=9;
|
||||
@@ -260,6 +286,16 @@ $maxlength[$spalte]=9;
|
||||
$worksheet->write($zeile,++$spalte,"Organisationsform", $format_bold);
|
||||
$maxlength[$spalte]=15;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Sprache (LV)", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Software", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
$worksheet->write($zeile,++$spalte,"Start in KW", $format_bold);
|
||||
$maxlength[$spalte]=10;
|
||||
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
@@ -290,6 +326,10 @@ if($result = $db->db_query($qry))
|
||||
if($maxlength[$spalte]<mb_strlen($mitarbeiter->fixangestellt ? 'Ja' : 'Nein'))
|
||||
$maxlength[$spalte]=mb_strlen($mitarbeiter->fixangestellt ? 'Ja' : 'Nein');
|
||||
|
||||
$worksheet->write($zeile,++$spalte, $row->vorjahr_lektor);
|
||||
|
||||
$worksheet->write($zeile,++$spalte, '');
|
||||
|
||||
//Lehrfach
|
||||
$worksheet->write($zeile,++$spalte,$row->lf_bezeichnung);
|
||||
//if($maxlength[$spalte]<mb_strlen($row->lf_bezeichnung))
|
||||
@@ -354,10 +394,12 @@ if($result = $db->db_query($qry))
|
||||
$worksheet->write($zeile,++$spalte,$row->raumtypalternativ);
|
||||
if($maxlength[$spalte]<mb_strlen($row->raumtypalternativ))
|
||||
$maxlength[$spalte]=mb_strlen($row->raumtypalternativ);
|
||||
//Anmerkung
|
||||
$worksheet->write($zeile,++$spalte,$row->anmerkung);
|
||||
//if($maxlength[$spalte]<mb_strlen($row->anmerkung))
|
||||
//$maxlength[$spalte]=mb_strlen($row->anmerkung);
|
||||
|
||||
//Anmerkung für LV Planung
|
||||
$worksheet->write($zeile,++$spalte,$row->lehreinheit_anmerkung);
|
||||
|
||||
//Anmerkung für Dpt/KF
|
||||
$worksheet->write($zeile,++$spalte,$row->mitarbeiter_anmerkung);
|
||||
|
||||
//LV-Leitung
|
||||
$worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname);
|
||||
@@ -394,6 +436,15 @@ if($result = $db->db_query($qry))
|
||||
$worksheet->write($zeile,++$spalte,$row->orgform_kurzbz);
|
||||
if($maxlength[$spalte]<mb_strlen($row->orgform_kurzbz))
|
||||
$maxlength[$spalte]=mb_strlen($row->orgform_kurzbz);
|
||||
|
||||
//Sprache (LV)
|
||||
$worksheet->write($zeile,++$spalte,$row->sprache);
|
||||
|
||||
//Software
|
||||
$worksheet->write($zeile,++$spalte,'');
|
||||
|
||||
//Start in KW
|
||||
$worksheet->write($zeile,++$spalte,$row->start_kw);
|
||||
}
|
||||
|
||||
//Betreuungen
|
||||
|
||||
@@ -110,10 +110,18 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
|
||||
{
|
||||
$db = new basis_db();
|
||||
|
||||
$studiengang_details = new studiengang();
|
||||
$studiengang_details->load($studiengang_kz);
|
||||
|
||||
if (!isset($studiengang_details->studiengang_kz))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$jahr = substr($studiensemester_kurzbz, 4);
|
||||
$art = substr($studiensemester_kurzbz, 0, 2);
|
||||
|
||||
if($studiengang_kz<0)
|
||||
if (($studiengang_kz < 0) || (isset($studiengang_details->typ) && ($studiengang_details->typ == 'l')))
|
||||
{
|
||||
$studiengang_kz=abs($studiengang_kz);
|
||||
//Lehrgang
|
||||
@@ -136,7 +144,17 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
|
||||
}
|
||||
if($art=='2' || $art=='4')
|
||||
$jahr = $jahr-1;
|
||||
$matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz);
|
||||
|
||||
//FH-Burgenland - weil leider die AO Studiengänge aufgeteilt sind
|
||||
//(AO sind normal 9+erhalter Nummer, matrikelnr/personenkz wird auch im DVUH Extension berücksichtigt)
|
||||
if ($studiengang_kz >= 90010 && $studiengang_kz <= 90019)
|
||||
{
|
||||
$matrikelnummer = sprintf("%02d",$jahr).$art.substr($studiengang_kz, 0, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
$matrikelnummer = sprintf("%02d",$jahr).$art.sprintf("%04d",$studiengang_kz);
|
||||
}
|
||||
|
||||
$qry = "SELECT matrikelnr FROM public.tbl_student WHERE matrikelnr LIKE '$matrikelnummer%' ORDER BY matrikelnr DESC LIMIT 1";
|
||||
|
||||
@@ -365,6 +383,7 @@ if(!$error)
|
||||
$error = true;
|
||||
$errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
|
||||
}
|
||||
|
||||
//Studentendaten speichern
|
||||
if(!$error)
|
||||
{
|
||||
@@ -384,7 +403,8 @@ if(!$error)
|
||||
$return = false;
|
||||
$errormsg = 'Geburtsdatum ist nicht korrekt.';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$student->uid = $_POST['uid'];
|
||||
@@ -410,6 +430,8 @@ if(!$error)
|
||||
$student->geburtsnation = $_POST['geburtsnation'];
|
||||
$student->sprache = $_POST['sprache'];
|
||||
$student->matrikelnr = $_POST['matrikelnummer'];
|
||||
if (isset($_POST['bpk']))
|
||||
$student->bpk = $_POST['bpk'];
|
||||
$student->updateamum = date('Y-m-d H:i:s');
|
||||
$student->updatevon = $user;
|
||||
|
||||
@@ -559,6 +581,8 @@ if(!$error)
|
||||
$person->geburtsnation = $_POST['geburtsnation'];
|
||||
$person->sprache = $_POST['sprache'];
|
||||
$person->matr_nr = $_POST['matr_nr'];
|
||||
if (isset($_POST['bpk']))
|
||||
$person->bpk = $_POST['bpk'];
|
||||
$person->updateamum = date('Y-m-d H:i:s');
|
||||
$person->updatevon = $user;
|
||||
|
||||
@@ -624,18 +648,32 @@ if(!$error)
|
||||
$prestudent->zgvort = $_POST['zgvort'];
|
||||
$prestudent->zgvdatum = $_POST['zgvdatum'];
|
||||
$prestudent->zgvnation = $_POST['zgvnation'];
|
||||
$prestudent->zgv_erfuellt = $_POST['zgv_erfuellt'];
|
||||
$prestudent->zgvmas_code = $_POST['zgvmas_code'];
|
||||
$prestudent->zgvmaort = $_POST['zgvmaort'];
|
||||
$prestudent->zgvmadatum = $_POST['zgvmadatum'];
|
||||
$prestudent->zgvmanation = $_POST['zgvmanation'];
|
||||
$prestudent->zgvmas_erfuellt = $_POST['zgvmas_erfuellt'];
|
||||
$prestudent->zgvdoktor_code = $_POST['zgvdoktor_code'];
|
||||
$prestudent->zgvdoktorort = $_POST['zgvdoktorort'];
|
||||
$prestudent->zgvdoktordatum = $_POST['zgvdoktordatum'];
|
||||
$prestudent->zgvdoktornation = $_POST['zgvdoktornation'];
|
||||
$prestudent->zgvdoktor_erfuellt = $_POST['zgvdoktor_erfuellt'];
|
||||
$prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel'];
|
||||
$prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false);
|
||||
$prestudent->bismelden = ($_POST['bismelden']=='true'?true:false);
|
||||
$foerderrelevant = null;
|
||||
if ($_POST['foerderrelevant'] === 'true')
|
||||
$foerderrelevant = true;
|
||||
elseif ($_POST['foerderrelevant'] === 'false')
|
||||
$foerderrelevant = false;
|
||||
$prestudent->foerderrelevant = $foerderrelevant;
|
||||
$prestudent->dual = ($_POST['dual']=='true'?true:false);
|
||||
$prestudent->anmerkung = $_POST['anmerkung'];
|
||||
$prestudent->mentor = $_POST['mentor'];
|
||||
$prestudent->gsstudientyp_kurzbz = $_POST['gsstudientyp_kurzbz'];
|
||||
$prestudent->priorisierung = $_POST['priorisierung'];
|
||||
$prestudent->standort_code = $_POST['standort_code'];
|
||||
//$prestudent->insertamum = date('Y-m-d H:i:s');
|
||||
//$prestudent->insertvon = $user;
|
||||
$prestudent->updateamum = date('Y-m-d H:i:s');
|
||||
@@ -2308,7 +2346,7 @@ if(!$error)
|
||||
{
|
||||
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
|
||||
continue;
|
||||
|
||||
|
||||
if($dokument_kurzbz!='')
|
||||
{
|
||||
$dok = new dokument();
|
||||
@@ -2321,6 +2359,7 @@ if(!$error)
|
||||
$dok->new = true;
|
||||
if ($dokument_kurzbz === 'Sonst')
|
||||
$sonst++;
|
||||
|
||||
|
||||
if(!$dok->save())
|
||||
{
|
||||
@@ -2515,7 +2554,6 @@ if(!$error)
|
||||
$dokumente = explode(';',$_POST['dokumente']);
|
||||
$errormsg = '';
|
||||
$sonst = 0;
|
||||
|
||||
foreach ($dokumente as $dokument_kurzbz)
|
||||
{
|
||||
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
|
||||
|
||||
@@ -31,7 +31,9 @@ require_once('../../include/variable.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user=get_uid();
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
$variable = new variable();
|
||||
if(!$variable->loadVariables($user))
|
||||
@@ -72,7 +74,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Zugangscode" control="student-detail-zugangscode"/>
|
||||
<label id="label-student-detail-link_bewerbungstool" hidden="true" value=""></label>
|
||||
<label class="text-link" href="#" id="label-student-detail-zugangscode" value="" onclick="window.open(document.getElementById('label-student-detail-link_bewerbungstool').value)"/>
|
||||
|
||||
<?php $hideBpk = $rechte->isBerechtigt('student/bpk') ? '':' hidden="true"'; ?>
|
||||
<label value="BPK" control="student-detail-textbox-bpk"<?php echo $hideBpk; ?>/>
|
||||
<hbox><textbox id="student-detail-textbox-bpk" disabled="true" maxlength="28" size="50"<?php echo $hideBpk; ?>/></hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anrede" control="student-detail-textbox-anrede"/>
|
||||
@@ -100,13 +104,26 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Geburtsnation" control="student-detail-menulist-geburtsnation"/>
|
||||
<menulist id="student-detail-menulist-geburtsnation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
@@ -123,15 +140,29 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<label value="Staatsbuergerschaft" control="student-detail-menulist-staatsbuergerschaft"/>
|
||||
<menulist id="student-detail-menulist-staatsbuergerschaft" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
|
||||
<label value="Matrikelnummer" control="student-detail-textbox-matr_nr"/>
|
||||
<hbox><textbox id="student-detail-textbox-matr_nr" disabled="true" maxlength="32" size="15"/></hbox>
|
||||
<label value="Sprache" control="student-detail-menulist-sprache" />
|
||||
@@ -294,6 +325,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
<column flex="1"/>
|
||||
<column flex="1"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
@@ -322,16 +355,36 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="student-prestudent-menulist-zgvnation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
style="min-width: 100px">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV erfüllt" control="student-prestudent-checkbox-zgverfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgverfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="ZGV Master" control="student-prestudent-menulist-zgvmastercode"/>
|
||||
@@ -343,7 +396,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvmaster/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvmaster/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
@@ -358,15 +412,93 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<menulist id="student-prestudent-menulist-zgvmasternation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
style="min-width: 100px">
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV Master erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV Master erfüllt" control="student-prestudent-checkbox-zgvmaserfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgvmaserfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<!-- ZGV Doktor -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_DOKTOR_ANZEIGEN') && ZGV_DOKTOR_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<row hidden="<?php echo $is_hidden?>">
|
||||
<label value="ZGV Doktor" control="student-prestudent-menulist-zgvdoktorcode"/>
|
||||
<menulist id="student-prestudent-menulist-zgvdoktorcode" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/zgvdoktor.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/zgvdoktor/alle" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#code"
|
||||
label="rdf:http://www.technikum-wien.at/zgvdoktor/rdf#kurzbz"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="ZGV Doktor Ort" control="student-prestudent-textbox-zgvdoktorort"/>
|
||||
<textbox id="student-prestudent-textbox-zgvdoktorort" disabled="true" maxlength="64"/>
|
||||
<label value="ZGV Doktor Datum" control="student-prestudent-textbox-zgvdoktordatum"/>
|
||||
<hbox>
|
||||
<box class='Datum' id="student-prestudent-textbox-zgvdoktordatum" disabled="true"/>
|
||||
</hbox>
|
||||
<label value="ZGV Doktor Nation" control="student-prestudent-menulist-zgvdoktornation"/>
|
||||
<hbox>
|
||||
<menulist id="student-prestudent-menulist-zgvdoktornation" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php?optional=true" flex="1"
|
||||
xmlns:NATION="http://www.technikum-wien.at/nation/rdf#"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<rule NATION:sperre='false'>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
<rule>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*" style="text-decoration:line-through;"
|
||||
/>
|
||||
</menupopup>
|
||||
</rule>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<!-- ZGV Doktor erfuellt -->
|
||||
<?php
|
||||
$is_hidden = (defined('ZGV_ERFUELLT_ANZEIGEN') && ZGV_ERFUELLT_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<label value="ZGV Doktor erfüllt" control="student-prestudent-checkbox-zgvdoktorerfuellt" hidden="<?php echo $is_hidden?>"/>
|
||||
<hbox>
|
||||
<checkbox id="student-prestudent-checkbox-zgvdoktorerfuellt" checked="true" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
@@ -448,7 +580,6 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
|
||||
<label value="Studientyp" control="student-detail-menulist-gsstudientyp"/>
|
||||
<menulist id="student-detail-menulist-gsstudientyp" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/gsstudientyp.rdf.php" flex="1"
|
||||
@@ -461,6 +592,18 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Bisstandort" control="student-prestudent-menulist-bisstandort" id="student-prestudent-label-bisstandort"/>
|
||||
<menulist id="student-prestudent-menulist-bisstandort" disabled="true"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/bisstandort.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/bisstandort/alle" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/bisstandort/rdf#standort_code"
|
||||
label="rdf:http://www.technikum-wien.at/bisstandort/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Facheinschlaegig berufstaetig" control="student-prestudent-checkbox-facheinschlberuf" hidden="true"/>
|
||||
<checkbox id="student-prestudent-checkbox-facheinschlberuf" checked="true" disabled="true" hidden="true"/>
|
||||
</row>
|
||||
@@ -470,32 +613,43 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<columns>
|
||||
<column flex="1"/>
|
||||
<column flex="12"/>
|
||||
<column flex="3"/>
|
||||
<column flex="2"/>
|
||||
<column flex="2"/>
|
||||
<column flex="3"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Anmerkung" control="student-prestudent-textbox-anmerkung"/>
|
||||
<textbox id="student-prestudent-textbox-anmerkung" disabled="true"/>
|
||||
<hbox>
|
||||
<label value="Bismelden" control="student-prestudent-checkbox-bismelden"/>
|
||||
<checkbox id="student-prestudent-checkbox-bismelden" checked="true" disabled="true"/>
|
||||
</hbox>
|
||||
<label value="Anmerkung" control="student-prestudent-textbox-anmerkung"/>
|
||||
<textbox id="student-prestudent-textbox-anmerkung" disabled="true"/>
|
||||
<hbox>
|
||||
<label value="Bismelden" control="student-prestudent-checkbox-bismelden"/>
|
||||
<checkbox id="student-prestudent-checkbox-bismelden" checked="true" disabled="true"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label value="Dual" control="student-prestudent-checkbox-dual"/>
|
||||
<checkbox id="student-prestudent-checkbox-dual" checked="false" disabled="true"/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label value="Priorität" control="student-prestudent-textbox-priorisierung"/>
|
||||
<?php
|
||||
$readonly = 'readonly="true"';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('basis/prestudent'))
|
||||
$readonly = '';
|
||||
?>
|
||||
<textbox id="student-prestudent-textbox-priorisierung" disabled="true" <?php echo $readonly ?>/>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label value="Förderrelevant" id="student-prestudent-label-foerderrelevant" control="student-prestudent-menulist-foerderrelevant"/>
|
||||
<menulist id="student-prestudent-menulist-foerderrelevant" disabled="true">
|
||||
<menupopup>
|
||||
<menuitem value="" label="Wie Studiengang"/>
|
||||
<menuitem value="true" label="Ja"/>
|
||||
<menuitem value="false" label="Nein"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<label value="Priorität" control="student-prestudent-textbox-priorisierung"/>
|
||||
<?php
|
||||
$readonly = 'readonly="true"';
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if($rechte->isBerechtigt('basis/prestudent'))
|
||||
$readonly = '';
|
||||
?>
|
||||
<textbox id="student-prestudent-textbox-priorisierung" disabled="true" <?php echo $readonly ?>/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row id="student-prestudent-row-mentor">
|
||||
<label value="MentorIn" control="student-prestudent-textbox-mentor"/>
|
||||
|
||||
@@ -704,6 +704,7 @@ function StudentDetailReset()
|
||||
document.getElementById('student-detail-menulist-sprache').value='German';
|
||||
document.getElementById('student-detail-textbox-matrikelnummer').value='';
|
||||
document.getElementById('student-detail-textbox-matr_nr').value='';
|
||||
document.getElementById('student-detail-textbox-bpk').value='';
|
||||
document.getElementById('student-detail-image').src='';
|
||||
}
|
||||
|
||||
@@ -742,6 +743,7 @@ function StudentDetailDisableFields(val)
|
||||
document.getElementById('student-detail-textbox-alias').disabled=val;
|
||||
document.getElementById('student-detail-button-save').disabled=val;
|
||||
document.getElementById('student-detail-textbox-matr_nr').disabled=val;
|
||||
document.getElementById('student-detail-textbox-bpk').disabled=val;
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -779,6 +781,7 @@ function StudentDetailSave()
|
||||
gruppe = document.getElementById('student-detail-textbox-gruppe').value;
|
||||
alias = document.getElementById('student-detail-textbox-alias').value;
|
||||
matr_nr = document.getElementById('student-detail-textbox-matr_nr').value;
|
||||
bpk = document.getElementById('student-detail-textbox-bpk').value;
|
||||
|
||||
//Wenn es noch kein Student ist, dann wird die Studiengang_kz vom Prestudent genommen
|
||||
if(studiengang_kz=='')
|
||||
@@ -836,6 +839,7 @@ function StudentDetailSave()
|
||||
req.add('gruppe', gruppe);
|
||||
req.add('alias', alias);
|
||||
req.add('matr_nr',matr_nr);
|
||||
req.add('bpk',bpk);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
@@ -1084,6 +1088,7 @@ function StudentAuswahl()
|
||||
matr_nr=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#matr_nr" ));
|
||||
zugangscode=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zugangscode" ));
|
||||
link_bewerbungstool=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#link_bewerbungstool" ));
|
||||
bpk=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bpk" ));
|
||||
|
||||
//Bei Incoming wird das Menue zur Statusaenderung deaktiviert
|
||||
if(status=='Incoming')
|
||||
@@ -1130,6 +1135,7 @@ function StudentAuswahl()
|
||||
document.getElementById('student-detail-textbox-matr_nr').value=matr_nr;
|
||||
document.getElementById('label-student-detail-zugangscode').value=zugangscode;
|
||||
document.getElementById('label-student-detail-link_bewerbungstool').value=link_bewerbungstool;
|
||||
document.getElementById('student-detail-textbox-bpk').value=bpk;
|
||||
|
||||
//PreStudent Daten holen
|
||||
|
||||
@@ -1141,10 +1147,18 @@ function StudentAuswahl()
|
||||
zgvort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvort" ));
|
||||
zgvnation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvnation" ));
|
||||
zgvdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdatum" ));
|
||||
zgv_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgv_erfuellt" ));
|
||||
zgvmaster_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_code" ));
|
||||
zgvmasterort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmaort" ));
|
||||
zgvmasternation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmanation" ));
|
||||
zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" ));
|
||||
zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" ));
|
||||
zgvmas_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_erfuellt" ));
|
||||
zgvdoktor_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_code" ));
|
||||
zgvdoktorort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktorort" ));
|
||||
zgvdoktornation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktornation" ));
|
||||
zgvdoktordatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktordatum" ));
|
||||
zgvdoktor_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_erfuellt" ));
|
||||
|
||||
aufnahmeschluessel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufnahmeschluessel" ));
|
||||
facheinschlberuf = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#facheinschlberuf" ));
|
||||
bismelden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bismelden" ));
|
||||
@@ -1153,6 +1167,8 @@ function StudentAuswahl()
|
||||
dual = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dual" ));
|
||||
gsstudientyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gsstudientyp_kurzbz" ));
|
||||
priorisierung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#priorisierung" ));
|
||||
foerderrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#foerderrelevant" ));
|
||||
standort_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#standort_code" ));
|
||||
|
||||
document.getElementById('student-prestudent-menulist-aufmerksamdurch').value=aufmerksamdurch_kurzbz;
|
||||
document.getElementById('student-prestudent-menulist-berufstaetigkeit').value=berufstaetigkeit_code;
|
||||
@@ -1161,10 +1177,26 @@ function StudentAuswahl()
|
||||
document.getElementById('student-prestudent-textbox-zgvort').value=zgvort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvnation', zgvnation);
|
||||
document.getElementById('student-prestudent-textbox-zgvdatum').value=zgvdatum;
|
||||
if(zgv_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-zgvmastercode').value=zgvmaster_code;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterort').value=zgvmasterort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvmasternation', zgvmasternation);
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterdatum').value=zgvmasterdatum;
|
||||
if(zgvmas_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktorcode').value=zgvdoktor_code;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktorort').value=zgvdoktorort;
|
||||
MenulistSelectItemOnValue('student-prestudent-menulist-zgvdoktornation', zgvdoktornation);
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktordatum').value=zgvdoktordatum;
|
||||
if(zgvdoktor_erfuellt=='t')
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=true;
|
||||
else
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=false;
|
||||
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value=aufnahmeschluessel;
|
||||
if(facheinschlberuf=='true')
|
||||
document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked=true;
|
||||
@@ -1190,6 +1222,8 @@ function StudentAuswahl()
|
||||
document.getElementById('student-prestudent-textbox-priorisierung').value=priorisierung;
|
||||
document.getElementById('student-prestudent-textbox-mentor').value=mentor;
|
||||
document.getElementById('student-detail-menulist-gsstudientyp').value=gsstudientyp_kurzbz;
|
||||
document.getElementById('student-prestudent-menulist-foerderrelevant').value=foerderrelevant;
|
||||
document.getElementById('student-prestudent-menulist-bisstandort').value=standort_code;
|
||||
|
||||
document.getElementById('student-detail-groupbox-caption').label='Zugangsvoraussetzung für '+nachname+' '+vorname;
|
||||
rollentree = document.getElementById('student-prestudent-tree-rolle');
|
||||
@@ -1698,19 +1732,29 @@ function StudentPrestudentDisableFields(val)
|
||||
document.getElementById('student-prestudent-textbox-zgvort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvnation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgverfuellt').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvmastercode').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvmasternation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvmasterdatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktorcode').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktorort').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-zgvdoktornation').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-zgvdoktordatum').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').disabled=val;
|
||||
|
||||
document.getElementById('student-prestudent-menulist-aufnahmeschluessel').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-facheinschlberuf').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-bismelden').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-foerderrelevant').disabled=val;
|
||||
document.getElementById('student-prestudent-checkbox-dual').disabled=val;
|
||||
document.getElementById('student-prestudent-button-save').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-anmerkung').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-priorisierung').disabled=val;
|
||||
document.getElementById('student-prestudent-textbox-mentor').disabled=val;
|
||||
document.getElementById('student-detail-menulist-gsstudientyp').disabled=val;
|
||||
document.getElementById('student-prestudent-menulist-bisstandort').disabled=val;
|
||||
|
||||
// Studiengang des angeklickten Prestudenten ermitteln
|
||||
var tree = document.getElementById('student-tree');
|
||||
@@ -1767,10 +1811,18 @@ function StudentPrestudentSave()
|
||||
zgvort = document.getElementById('student-prestudent-textbox-zgvort').value;
|
||||
zgvnation = document.getElementById('student-prestudent-menulist-zgvnation').value;
|
||||
zgvdatum = document.getElementById('student-prestudent-textbox-zgvdatum').value;
|
||||
zgv_erfuellt = document.getElementById('student-prestudent-checkbox-zgverfuellt').checked;
|
||||
zgvmaster_code = document.getElementById('student-prestudent-menulist-zgvmastercode').value;
|
||||
zgvmasterort = document.getElementById('student-prestudent-textbox-zgvmasterort').value;
|
||||
zgvmasternation = document.getElementById('student-prestudent-menulist-zgvmasternation').value;
|
||||
zgvmasterdatum = document.getElementById('student-prestudent-textbox-zgvmasterdatum').value;
|
||||
zgvmas_erfuellt = document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked;
|
||||
zgvdoktor_code = document.getElementById('student-prestudent-menulist-zgvdoktorcode').value;
|
||||
zgvdoktorort = document.getElementById('student-prestudent-textbox-zgvdoktorort').value;
|
||||
zgvdoktornation = document.getElementById('student-prestudent-menulist-zgvdoktornation').value;
|
||||
zgvdoktordatum = document.getElementById('student-prestudent-textbox-zgvdoktordatum').value;
|
||||
zgvdoktor_erfuellt = document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked;
|
||||
|
||||
aufnahmeschluessel = document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value;
|
||||
facheinschlberuf = document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked;
|
||||
bismelden = document.getElementById('student-prestudent-checkbox-bismelden').checked;
|
||||
@@ -1783,6 +1835,8 @@ function StudentPrestudentSave()
|
||||
priorisierung = document.getElementById('student-prestudent-textbox-priorisierung').value;
|
||||
mentor = document.getElementById('student-prestudent-textbox-mentor').value;
|
||||
gsstudientyp = document.getElementById('student-detail-menulist-gsstudientyp').value;
|
||||
foerderrelevant = document.getElementById('student-prestudent-menulist-foerderrelevant').value;
|
||||
standort_code = document.getElementById('student-prestudent-menulist-bisstandort').value;
|
||||
|
||||
if(zgvdatum!='' && !CheckDatum(zgvdatum))
|
||||
{
|
||||
@@ -1794,7 +1848,11 @@ function StudentPrestudentSave()
|
||||
alert('ZGVMaster Datum ist ungueltig');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(zgvdoktordatum!='' && !CheckDatum(zgvdoktordatum))
|
||||
{
|
||||
alert('ZGVDoktor Datum ist ungueltig');
|
||||
return false;
|
||||
}
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
@@ -1813,10 +1871,18 @@ function StudentPrestudentSave()
|
||||
req.add('zgvort', zgvort);
|
||||
req.add('zgvnation', zgvnation);
|
||||
req.add('zgvdatum', ConvertDateToISO(zgvdatum));
|
||||
req.add('zgv_erfuellt', zgv_erfuellt);
|
||||
req.add('zgvmas_code', zgvmaster_code);
|
||||
req.add('zgvmaort', zgvmasterort);
|
||||
req.add('zgvmanation', zgvmasternation);
|
||||
req.add('zgvmadatum', ConvertDateToISO(zgvmasterdatum));
|
||||
req.add('zgvmas_erfuellt', zgvmas_erfuellt);
|
||||
req.add('zgvdoktor_code', zgvdoktor_code);
|
||||
req.add('zgvdoktorort', zgvdoktorort);
|
||||
req.add('zgvdoktornation', zgvdoktornation);
|
||||
req.add('zgvdoktordatum', ConvertDateToISO(zgvdoktordatum));
|
||||
req.add('zgvdoktor_erfuellt', zgvdoktor_erfuellt);
|
||||
|
||||
req.add('aufnahmeschluessel', aufnahmeschluessel);
|
||||
req.add('facheinschlberuf', facheinschlberuf);
|
||||
req.add('bismelden', bismelden);
|
||||
@@ -1828,6 +1894,8 @@ function StudentPrestudentSave()
|
||||
req.add('priorisierung', priorisierung);
|
||||
req.add('mentor', mentor);
|
||||
req.add('gsstudientyp_kurzbz', gsstudientyp);
|
||||
req.add('foerderrelevant', foerderrelevant);
|
||||
req.add('standort_code', standort_code);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ function StudentProjektarbeitTreeLoad(uid)
|
||||
tree.builder.addListener(StudentProjektarbeitTreeListener);
|
||||
|
||||
StudentProjektarbeitDisableFields(false);
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (projektarbeit_vertragsdetails_anzeigen) {
|
||||
//Reset attributes
|
||||
@@ -398,7 +398,7 @@ function StudentProjektarbeitAuswahl()
|
||||
|
||||
//Lehrveranstaltung DropDown laden
|
||||
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&withlv="+lehrveranstaltung_id+"&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = LvDropDown.database.GetDataSources();
|
||||
@@ -652,11 +652,11 @@ function StudentProjektarbeitNeu()
|
||||
StudentProjektarbeitResetFields();
|
||||
StudentProjektarbeitDetailDisableFields(false);
|
||||
StudentProjektbetreuerDisableFields(true);
|
||||
var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
||||
var student_uid = document.getElementById('student-detail-textbox-uid').value;
|
||||
|
||||
//Lehrveranstaltung DropDown laden
|
||||
var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung');
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp();
|
||||
url='<?php echo APP_ROOT;?>rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&"+gettimestamp();
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = LvDropDown.database.GetDataSources();
|
||||
|
||||
@@ -53,6 +53,9 @@ class adresse extends basis_db
|
||||
public $rechnungsadresse=false; // boolean
|
||||
public $anmerkung; // string
|
||||
public $co_name;
|
||||
public $adressentyp;
|
||||
public $bezeichnung;
|
||||
public $bezeichnung_mehrsprachig;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -133,10 +136,10 @@ class adresse extends basis_db
|
||||
$this->errormsg = 'person_id muss eine gültige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$sprache = new sprache();
|
||||
//Lesen der Daten aus der Datenbank
|
||||
$qry = "SELECT * FROM public.tbl_adresse WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false);
|
||||
$qry.=" ORDER BY zustelladresse DESC";
|
||||
$qry = "SELECT *, ". $sprache->getSprachQuery('bezeichnung_mehrsprachig') ." FROM public.tbl_adresse JOIN public.tbl_adressentyp ON typ = adressentyp_kurzbz WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false);
|
||||
$qry.=" ORDER BY zustelladresse DESC, sort";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
@@ -167,6 +170,7 @@ class adresse extends basis_db
|
||||
$adr_obj->co_name = $row->co_name;
|
||||
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$adr_obj->anmerkung = $row->anmerkung;
|
||||
$adr_obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row);
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
@@ -519,5 +523,29 @@ class adresse extends basis_db
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getAdressentyp()
|
||||
{
|
||||
$qry = "SELECT * FROM public.tbl_adressentyp ORDER BY sort";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new adresse();
|
||||
|
||||
$obj->adressentyp = $row->adressentyp_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -1186,7 +1186,22 @@ class betriebsmittel extends basis_db
|
||||
//Kartennummern die im Hex-Format sind werden umgewandelt
|
||||
if (!is_numeric($kartennummer))
|
||||
{
|
||||
$kartennummer=substr($kartennummer,strlen($kartennummer)-2,2).substr($kartennummer,strlen($kartennummer)-4,2). substr($kartennummer,strlen($kartennummer)-6,2).substr($kartennummer,0,2);
|
||||
$tmp_kn_str = null;
|
||||
for ($i=0; strlen($kartennummer) > $i; $i+=2) {
|
||||
|
||||
#wenn die strlen($kartennummer) gerade ist (TW hat 8 Stellen, FHB 14 Stellen)
|
||||
$tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
|
||||
|
||||
//#wenn ich ungerade und der letzte Durchgang ist dann nur mehr die eine Nummer nach vorne
|
||||
//if ((strlen($kartennummer)%2 != 0) && ($i+2 > strlen($kartennummer))) {
|
||||
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+1),1);
|
||||
//#sonst normal immer 2 stellen nach vorne ruecken
|
||||
//} else {
|
||||
// $tmp_kn_str .= substr($kartennummer,strlen($kartennummer)-($i+2),2);
|
||||
//}
|
||||
}
|
||||
$kartennummer = $tmp_kn_str;
|
||||
|
||||
$kartennummer=hexdec( $kartennummer);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,200 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__DIR__) . '/basis_db.class.php');
|
||||
/**
|
||||
* Description of covidhelper
|
||||
*
|
||||
* @author bambi
|
||||
*/
|
||||
class CovidHelper extends basis_db
|
||||
{
|
||||
const STATUS_OK = 1;
|
||||
const STATUS_NOTOK = 0;
|
||||
const STATUS_UNKNOWN = -1;
|
||||
const STATUS_NOTSET = -2;
|
||||
|
||||
const TITLE_OK = 'Nachweis gültig';
|
||||
const TITLE_NOTOK = 'Nachweis ungültig';
|
||||
const TITLE_UNKNOWN = 'Nachweis unbekannt';
|
||||
|
||||
const DB_SCHEMA = 'public';
|
||||
const DB_TABLE = 'tbl_person';
|
||||
const DB_UDFNAME = 'udf_3gvalid';
|
||||
|
||||
protected $isUdfDefined;
|
||||
|
||||
protected $uids;
|
||||
protected $covidstatus;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->uids = array();
|
||||
$this->covidstatus = array();
|
||||
$this->isUdfDefined = false;
|
||||
$this->checkIfUdfValuesAreDefined();
|
||||
}
|
||||
|
||||
public function isUdfDefined()
|
||||
{
|
||||
return $this->isUdfDefined;
|
||||
}
|
||||
|
||||
public function fetchCovidStatus(array $uids)
|
||||
{
|
||||
$this->uids = $uids;
|
||||
$this->covidstatus = array();
|
||||
$this->fetchCovidValidStatus();
|
||||
}
|
||||
|
||||
public function getIconHtml($uid)
|
||||
{
|
||||
$html = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-check-circle" aria-hidden="true" style="color: green; margin-right: .5em;"></i>';
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-times-circle" aria-hidden="true" style="color: red; margin-right: .5em;"></i>';
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$html = '<i title="' . $this->getTitle($uid) . '" class="fa fa-question-circle" aria-hidden="true" style="color: grey; margin-right: .5em;"></i>';
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$html = '';
|
||||
break;
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
public function getBootstrapClass($uid)
|
||||
{
|
||||
$class = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$class = 'success';
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$class = 'danger';
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$class = 'warning';
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$class = '';
|
||||
break;
|
||||
}
|
||||
return $class;
|
||||
}
|
||||
|
||||
public function getTitle($uid)
|
||||
{
|
||||
$title = '';
|
||||
$status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET;
|
||||
switch ($status)
|
||||
{
|
||||
case self::STATUS_OK:
|
||||
$title = self::TITLE_OK;
|
||||
break;
|
||||
case self::STATUS_NOTOK:
|
||||
case self::STATUS_UNKNOWN:
|
||||
$title = self::TITLE_NOTOK;
|
||||
break;
|
||||
/*
|
||||
case self::STATUS_UNKNOWN:
|
||||
$title = self::TITLE_UNKNOWN;
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
$title = '';
|
||||
break;
|
||||
}
|
||||
return $title;
|
||||
}
|
||||
|
||||
public function getCovidStatus()
|
||||
{
|
||||
return $this->covidstatus;
|
||||
}
|
||||
|
||||
protected function fetchCovidValidStatus()
|
||||
{
|
||||
if( !($this->isUdfDefined && is_array($this->uids) && (count($this->uids) > 0)) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
$sql = <<<EOSQL
|
||||
SELECT b.uid, CASE
|
||||
WHEN (p."udf_values" -> 'udf_3gvalid')::text::date >= CURRENT_DATE::text::date THEN 1
|
||||
WHEN (p."udf_values" -> 'udf_3gvalid')::text::date < CURRENT_DATE::text::date THEN 0
|
||||
ELSE -1
|
||||
END AS covidvalid
|
||||
FROM tbl_person p
|
||||
JOIN tbl_benutzer b ON b.person_id = p.person_id AND b.uid IN ({$this->implode4SQL($this->uids)})
|
||||
EOSQL;
|
||||
|
||||
$this->covidstatus = array();
|
||||
if( $this->db_query($sql) )
|
||||
{
|
||||
while( false !== ($row = $this->db_fetch_object()) )
|
||||
{
|
||||
$this->covidstatus[$row->uid] = $row->covidvalid;
|
||||
}
|
||||
} else {
|
||||
$this->errormsg = "Fehler in der Abfrage des Covidstatus.";
|
||||
}
|
||||
}
|
||||
|
||||
public function checkIfUdfValuesAreDefined()
|
||||
{
|
||||
$sql = 'SELECT count(name) AS "udfdefined" '
|
||||
. 'FROM "system"."tbl_udf", jsonb_to_recordset("jsons") AS items(name text) '
|
||||
. 'WHERE "schema" = \'' . self::DB_SCHEMA . '\' '
|
||||
. 'AND "table" = \'' . self::DB_TABLE . '\' '
|
||||
. 'AND "name" = \'' . self::DB_UDFNAME . '\'';
|
||||
if ( $this->db_query($sql) )
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->isUdfDefined = ($row->udfdefined > 0) ? true : false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs. Kein Datensatz gefunden.";
|
||||
$this->isUdfDefined = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs.";
|
||||
$this->isUdfDefined = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -713,7 +713,7 @@ class konto extends basis_db
|
||||
$qry = "select sum(betrag) as betrag from public.tbl_konto
|
||||
join public.tbl_benutzer benutzer using(person_id)
|
||||
where uid=".$this->db_add_param($uid)." and studiensemester_kurzbz = ".$this->db_add_param($stsem)."
|
||||
and buchungstyp_kurzbz = 'Studiengebuehr' and betrag > 0";
|
||||
and buchungstyp_kurzbz in('Studiengebuehr','StudiengebuehrAnzahlung','StudiengebuehrRestzahlung') and betrag > 0";
|
||||
if($studiengang_kz!= null)
|
||||
$qry.=" and studiengang_kz = ".$this->db_add_param($studiengang_kz, FHC_INTEGER).";";
|
||||
|
||||
|
||||
@@ -0,0 +1,295 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Harald Bamberger <harald.bamberger@technikum-wien.at>
|
||||
* Manfred Kindl <manfred.kindl@technikum-wien.at>
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/erhalter.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
/**
|
||||
* Description of lehrelisthelper
|
||||
*
|
||||
* @author bambi
|
||||
*/
|
||||
class LehreListHelper
|
||||
{
|
||||
protected $db;
|
||||
protected $studiensemester;
|
||||
protected $lvid;
|
||||
protected $lv;
|
||||
protected $lehreinheit;
|
||||
protected $stg;
|
||||
|
||||
protected $arr_lehrende;
|
||||
protected $studentuids;
|
||||
protected $data;
|
||||
|
||||
protected $gruppen_string;
|
||||
protected $lehrende_string;
|
||||
protected $raum_string;
|
||||
|
||||
public function __construct(basis_db $db, $studiensemester, $lvid,
|
||||
lehrveranstaltung $lv, studiengang $stg, $lehreinheit='')
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->studiensemester = $studiensemester;
|
||||
$this->lvid = $lvid;
|
||||
$this->lv = $lv;
|
||||
$this->lehreinheit = $lehreinheit;
|
||||
$this->stg = $stg;
|
||||
|
||||
$this->arr_lehrende = array();
|
||||
$this->studentuids = array();
|
||||
$this->data = array();
|
||||
|
||||
$this->gruppen_string = '';
|
||||
$this->lehrende_string = '';
|
||||
$this->raum_string = '';
|
||||
|
||||
$this->loadMemberGroups();
|
||||
$this->loadPlannedRooms();
|
||||
$this->initData();
|
||||
$this->loadLehrende();
|
||||
$this->loadStudierende();
|
||||
}
|
||||
|
||||
public function getData()
|
||||
{
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
public function getStudentUids()
|
||||
{
|
||||
return $this->studentuids;
|
||||
}
|
||||
|
||||
public function getArr_Lehrende()
|
||||
{
|
||||
return $this->arr_lehrende;
|
||||
}
|
||||
|
||||
public function getLehrende_String()
|
||||
{
|
||||
return $this->lehrende_string;
|
||||
}
|
||||
|
||||
protected function loadMemberGroups()
|
||||
{
|
||||
// Teilnehmende Gruppen laden
|
||||
$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz)
|
||||
UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
|
||||
semester,
|
||||
verband,
|
||||
gruppe,
|
||||
gruppe_kurzbz
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$this->db->db_add_param($this->lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db->db_add_param($this->studiensemester);
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=" AND lehreinheit_id=".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$this->gruppen_string = '';
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($this->gruppen_string!='')
|
||||
$this->gruppen_string.=', ';
|
||||
if($row->gruppe_kurzbz=='')
|
||||
$this->gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe);
|
||||
else
|
||||
$this->gruppen_string.=$row->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function loadPlannedRooms()
|
||||
{
|
||||
// Verplante Räume laden
|
||||
$qry = "SELECT distinct(ort_kurzbz)
|
||||
FROM lehre.tbl_stundenplan
|
||||
WHERE lehreinheit_id in
|
||||
(
|
||||
SELECT lehreinheit_id
|
||||
FROM campus.vw_lehreinheit
|
||||
WHERE lehrveranstaltung_id = ".$this->db->db_add_param($this->lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz = ".$this->db->db_add_param($this->studiensemester)."
|
||||
)";
|
||||
if($this->lehreinheit!='')
|
||||
$qry.= " AND tbl_stundenplan.lehreinheit_id = ".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
|
||||
$this->raum_string = '';
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($this->raum_string!='')
|
||||
$this->raum_string.=', ';
|
||||
if($row->ort_kurzbz!='')
|
||||
$this->raum_string.=$row->ort_kurzbz;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function initData()
|
||||
{
|
||||
$studiengang_bezeichnung=$this->stg->bezeichnung;
|
||||
|
||||
$this->stg->getAllTypes();
|
||||
|
||||
$this->data = array(
|
||||
'gruppen'=>$this->gruppen_string,
|
||||
'bezeichnung'=>$this->lv->bezeichnung,
|
||||
'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id,
|
||||
'studiengang'=>$studiengang_bezeichnung,
|
||||
'studiengang_kz'=>$this->lv->studiengang_kz,
|
||||
'typ'=>$this->stg->studiengang_typ_arr[$this->stg->typ],
|
||||
'ects'=>$this->lv->ects,
|
||||
'sprache'=>$this->lv->sprache,
|
||||
'studiensemester'=>$this->studiensemester,
|
||||
'semester'=>$this->lv->semester,
|
||||
'orgform'=>$this->lv->orgform_kurzbz,
|
||||
'raum'=>$this->raum_string,
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadLehrende()
|
||||
{
|
||||
//Lehrende der LV laden und in ein Array schreiben
|
||||
$lehrende = new lehreinheitmitarbeiter();
|
||||
$lehrende->getMitarbeiterLV($this->lvid, $this->studiensemester, $this->lehreinheit);
|
||||
$this->arr_lehrende = array();
|
||||
if (isset($lehrende->result))
|
||||
{
|
||||
foreach($lehrende->result AS $row)
|
||||
{
|
||||
$this->data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname));
|
||||
$this->arr_lehrende[]=mb_strtoupper($row->uid);
|
||||
$this->lehrende_string .= (strlen($this->lehrende_string) > 0)
|
||||
? ', ' . $row->vorname . ' ' . $row->nachname
|
||||
: $row->vorname . ' ' . $row->nachname;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function loadStudierende()
|
||||
{
|
||||
//Studierende der LV laden und in ein Array schreiben
|
||||
|
||||
$qry = 'SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe,
|
||||
(SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status,
|
||||
tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student,
|
||||
tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid)
|
||||
LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
|
||||
LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
|
||||
LEFT JOIN lehre.tbl_note USING (note)
|
||||
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
|
||||
LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz)
|
||||
LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester);
|
||||
|
||||
|
||||
if($this->lehreinheit!='')
|
||||
$qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER);
|
||||
|
||||
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->load($this->studiensemester);
|
||||
$stsemdatumvon = $stsem_obj->start;
|
||||
$stsemdatumbis = $stsem_obj->ende;
|
||||
|
||||
$erhalter = new erhalter();
|
||||
$erhalter->getAll();
|
||||
|
||||
$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW)
|
||||
$anzahl_studierende = 0;
|
||||
$datum = new datum();
|
||||
$zusatz = '';
|
||||
|
||||
$this->studentuids = array();
|
||||
if($result = $this->db->db_query($qry))
|
||||
{
|
||||
while($row = $this->db->db_fetch_object($result))
|
||||
{
|
||||
if($row->status!='Abbrecher' && $row->status!='Unterbrecher')
|
||||
{
|
||||
$anzahl_studierende++;
|
||||
|
||||
if($row->status=='Incoming') //Incoming
|
||||
$zusatz='(i)';
|
||||
else
|
||||
$zusatz='';
|
||||
|
||||
if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing
|
||||
$zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')';
|
||||
|
||||
if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen
|
||||
$zusatz.= '('. $row->anmerkung. ')';
|
||||
|
||||
if($row->mitarbeiter_uid!='') //mitarbeiter
|
||||
$zusatz.='(ma)';
|
||||
|
||||
if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende
|
||||
$zusatz.='(a.o.)';
|
||||
|
||||
if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student
|
||||
$zusatz.='(d.d.)';
|
||||
|
||||
//$zusatz.='test';
|
||||
|
||||
$this->studentuids[] = $row->student_uid;
|
||||
$this->data[]=array('student'=>array(
|
||||
'uid' => $row->student_uid,
|
||||
'vorname'=>$row->vorname,
|
||||
'nachname'=>$row->nachname,
|
||||
'personenkennzeichen'=>trim($row->matrikelnr),
|
||||
'matr_nr'=>$row->matr_nr,
|
||||
'semester'=>$row->semester,
|
||||
'verband'=>trim($row->verband),
|
||||
'gruppe'=>trim($row->gruppe),
|
||||
'zusatz'=>$zusatz,
|
||||
'studiengang_kurzbz'=>$row->kurzbzlang,
|
||||
'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz
|
||||
));
|
||||
}
|
||||
}
|
||||
//Anzahl Studierende in Array $data (an erster Stelle) einfuegen
|
||||
$this->data = array_reverse($this->data, true);
|
||||
$this->data['anzahl_studierende'] = $anzahl_studierende;
|
||||
$this->data = array_reverse($this->data, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
+1143
-1142
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 fhcomplete.org
|
||||
/* Copyright (C) 2021 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
@@ -16,9 +16,10 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Stefan Puraner <puraner@technikum-wien.at>
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
|
||||
* Stefan Puraner <puraner@technikum-wien.at> and
|
||||
* Manuela Thamer <manuela.thamer@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__) . '/basis_db.class.php');
|
||||
require_once(dirname(__FILE__) . '/functions.inc.php');
|
||||
@@ -2458,6 +2459,44 @@ class lehrveranstaltung extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den LV-Leiter einer Lehrveranstaltung
|
||||
* ist keiner der Lektoren als LV-Leitung eingetragen, wird Null zurückgegeben
|
||||
* @param int $lehrveranstaltung_id ID der Lehrveranstaltung.
|
||||
* @param char $studiensemester_kurzbz Studiensemester.
|
||||
* @return char $mitarbeiter_uid UID des Mitarbeiters oder NULL, wenn keine LV-Leitung vorhanden
|
||||
*/
|
||||
public function getEingetrageneLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND lehrfunktion_kurzbz='LV-Leitung';";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->mitarbeiter_uid;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Keine Eintrag gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den Koordinator einer Lehrveranstaltung
|
||||
* @param $lehrveranstaltung_id
|
||||
|
||||
@@ -1090,6 +1090,55 @@ class mitarbeiter extends benutzer
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt UID des letzten Vorgesetzten zurück
|
||||
* @param string $uid Mitarbeiter.
|
||||
* @return uid letzter Vorgesetzter
|
||||
*/
|
||||
public function getLastVorgesetzter($uid = null)
|
||||
{
|
||||
$return = false;
|
||||
if (is_null($uid))
|
||||
$uid = $this->uid;
|
||||
|
||||
$qry = "SELECT
|
||||
uid as vorgesetzter
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung' AND
|
||||
(datum_von is null OR datum_von<=now()) AND
|
||||
(datum_bis is null OR datum_bis>=now()) AND
|
||||
oe_kurzbz in (SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)."
|
||||
ORDER BY datum_von DESC
|
||||
LIMIT 1
|
||||
);
|
||||
";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->vorgesetzter != '')
|
||||
{
|
||||
$return = $this->vorgesetzter = $row->vorgesetzter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage!';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck
|
||||
* @param string $uid UID.
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/datum.class.php');
|
||||
require_once(dirname(__FILE__).'/udf.class.php');
|
||||
|
||||
class person extends basis_db
|
||||
{
|
||||
@@ -64,6 +65,7 @@ class person extends basis_db
|
||||
public $foto_sperre = false; // boolean
|
||||
public $matr_nr; //varchar(32)
|
||||
public $bpk; //varchar(255)
|
||||
public $udf_values; //json
|
||||
|
||||
/**
|
||||
* Konstruktor - Uebergibt die Connection und laedt optional eine Person
|
||||
@@ -84,6 +86,8 @@ class person extends basis_db
|
||||
**/
|
||||
public function load($personId)
|
||||
{
|
||||
$udf = new UDF();
|
||||
|
||||
//person_id auf gueltigkeit pruefen
|
||||
if (is_numeric($personId) && $personId != '')
|
||||
{
|
||||
@@ -91,8 +95,11 @@ class person extends basis_db
|
||||
gebdatum, gebort, gebzeit, foto, anmerkung, homepage, svnr, ersatzkennzeichen,
|
||||
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id,
|
||||
geschlecht, staatsbuergerschaft, geburtsnation, kurzbeschreibung, zugangscode, foto_sperre,
|
||||
matr_nr, bpk
|
||||
FROM public.tbl_person
|
||||
matr_nr, bpk";
|
||||
if ($hasUDF = $udf->personHasUDF())
|
||||
$qry .= ", udf_values ";
|
||||
|
||||
$qry .= "FROM public.tbl_person
|
||||
WHERE person_id = " . $this->db_add_param($personId, FHC_INTEGER);
|
||||
|
||||
if (!$this->db_query($qry))
|
||||
@@ -135,6 +142,10 @@ class person extends basis_db
|
||||
$this->foto_sperre = $this->db_parse_bool($row->foto_sperre);
|
||||
$this->matr_nr = $row->matr_nr;
|
||||
$this->bpk = $row->bpk;
|
||||
if ($hasUDF)
|
||||
{
|
||||
$this->udf_values = $row->udf_values;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -32,12 +32,12 @@ class basis_db extends db
|
||||
//Connection Herstellen
|
||||
if (DB_CONNECT_PERSISTENT)
|
||||
{
|
||||
if(!basis_db::$db_conn = pg_pconnect($conn_str))
|
||||
if(!basis_db::$db_conn = @pg_pconnect($conn_str))
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!basis_db::$db_conn = pg_connect($conn_str))
|
||||
if(!basis_db::$db_conn = @pg_connect($conn_str))
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ require_once(dirname(__FILE__).'/log.class.php');
|
||||
require_once(dirname(__FILE__).'/phrasen.class.php');
|
||||
require_once(dirname(__FILE__).'/globals.inc.php');
|
||||
require_once(dirname(__FILE__).'/sprache.class.php');
|
||||
require_once(dirname(__FILE__).'/udf.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
@@ -44,10 +45,12 @@ class prestudent extends person
|
||||
public $zgvort;
|
||||
public $zgvdatum;
|
||||
public $zgvnation;
|
||||
public $zgv_erfuellt;
|
||||
public $zgvmas_code;
|
||||
public $zgvmaort;
|
||||
public $zgvmadatum;
|
||||
public $zgvmanation;
|
||||
public $zgvmas_erfuellt;
|
||||
public $ausstellungsstaat;
|
||||
public $aufnahmeschluessel;
|
||||
public $facheinschlberuf;
|
||||
@@ -68,9 +71,13 @@ class prestudent extends person
|
||||
public $zgvdoktorort;
|
||||
public $zgvdoktordatum;
|
||||
public $zgvdoktornation;
|
||||
public $zgvdoktor_erfuellt;
|
||||
public $gsstudientyp_kurzbz='Intern';
|
||||
public $aufnahmegruppe_kurzbz;
|
||||
public $priorisierung = null;
|
||||
public $foerderrelevant = null;
|
||||
public $standort_code = null;
|
||||
public $udf_values = null;
|
||||
|
||||
public $status_kurzbz;
|
||||
public $studiensemester_kurzbz;
|
||||
@@ -137,10 +144,12 @@ class prestudent extends person
|
||||
$this->zgvort = $row->zgvort;
|
||||
$this->zgvdatum = $row->zgvdatum;
|
||||
$this->zgvnation = $row->zgvnation;
|
||||
$this->zgv_erfuellt = $row->zgv_erfuellt;
|
||||
$this->zgvmas_code = $row->zgvmas_code;
|
||||
$this->zgvmaort = $row->zgvmaort;
|
||||
$this->zgvmadatum = $row->zgvmadatum;
|
||||
$this->zgvmanation = $row->zgvmanation;
|
||||
$this->zgvmas_erfuellt = $row->zgvmas_erfuellt;
|
||||
$this->aufnahmeschluessel = $row->aufnahmeschluessel;
|
||||
$this->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf);
|
||||
$this->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
@@ -161,9 +170,12 @@ class prestudent extends person
|
||||
$this->zgvdoktorort = $row->zgvdoktorort;
|
||||
$this->zgvdoktordatum = $row->zgvdoktordatum;
|
||||
$this->zgvdoktornation = $row->zgvdoktornation;
|
||||
$this->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt;
|
||||
$this->gsstudientyp_kurzbz = $row->gsstudientyp_kurzbz;
|
||||
$this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$this->priorisierung = $row->priorisierung;
|
||||
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$this->standort_code = $row->standort_code;
|
||||
|
||||
if(!person::load($row->person_id))
|
||||
return false;
|
||||
@@ -220,6 +232,11 @@ class prestudent extends person
|
||||
$this->errormsg = 'ZGV Master Ort darf nicht länger als 64 Zeichen sein.';
|
||||
return false;
|
||||
}
|
||||
if(mb_strlen($this->zgvdoktorort)>64)
|
||||
{
|
||||
$this->errormsg = 'ZGV Doktor Ort darf nicht länger als 64 Zeichen sein.';
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -245,12 +262,14 @@ class prestudent extends person
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO public.tbl_prestudent (aufmerksamdurch_kurzbz, person_id,
|
||||
studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvnation,
|
||||
zgvmas_code, zgvmaort, zgvmadatum, zgvmanation, aufnahmeschluessel, facheinschlberuf,
|
||||
studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvnation, zgv_erfuellt,
|
||||
zgvmas_code, zgvmaort, zgvmadatum, zgvmanation, zgvmas_erfuellt, zgvdoktor_code, zgvdoktorort, zgvdoktordatum,
|
||||
zgvdoktornation,aufnahmeschluessel, facheinschlberuf,
|
||||
reihungstest_id, anmeldungreihungstest, reihungstestangetreten, rt_gesamtpunkte,
|
||||
rt_punkte1, rt_punkte2, rt_punkte3, bismelden, insertamum, insertvon,
|
||||
updateamum, updatevon, anmerkung, dual, ausstellungsstaat, mentor,
|
||||
gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung) VALUES('.
|
||||
gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung, zgvdoktor_erfuellt, foerderrelevant, standort_code) VALUES('.
|
||||
|
||||
$this->db_add_param($this->aufmerksamdurch_kurzbz).",".
|
||||
$this->db_add_param($this->person_id).",".
|
||||
$this->db_add_param($this->studiengang_kz).",".
|
||||
@@ -260,10 +279,16 @@ class prestudent extends person
|
||||
$this->db_add_param($this->zgvort).",".
|
||||
$this->db_add_param($this->zgvdatum).",".
|
||||
$this->db_add_param($this->zgvnation).",".
|
||||
$this->db_add_param($this->zgv_erfuellt).",".
|
||||
$this->db_add_param($this->zgvmas_code).",".
|
||||
$this->db_add_param($this->zgvmaort).",".
|
||||
$this->db_add_param($this->zgvmadatum).",".
|
||||
$this->db_add_param($this->zgvmanation).",".
|
||||
$this->db_add_param($this->zgvmas_erfuellt).",".
|
||||
$this->db_add_param($this->zgvdoktor_code).",".
|
||||
$this->db_add_param($this->zgvdoktorort).",".
|
||||
$this->db_add_param($this->zgvdoktordatum).",".
|
||||
$this->db_add_param($this->zgvdoktornation).",".
|
||||
$this->db_add_param($this->aufnahmeschluessel).",".
|
||||
$this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).",".
|
||||
$this->db_add_param($this->reihungstest_id).",".
|
||||
@@ -284,7 +309,10 @@ class prestudent extends person
|
||||
$this->db_add_param($this->mentor).",".
|
||||
$this->db_add_param($this->gsstudientyp_kurzbz).",".
|
||||
$this->db_add_param($this->aufnahmegruppe_kurzbz).",".
|
||||
$this->db_add_param($this->priorisierung).");";
|
||||
$this->db_add_param($this->priorisierung).",".
|
||||
$this->db_add_param($this->zgvdoktor_erfuellt).",".
|
||||
$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).",".
|
||||
$this->db_add_param($this->standort_code).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -298,10 +326,16 @@ class prestudent extends person
|
||||
' zgvort='.$this->db_add_param($this->zgvort).",".
|
||||
' zgvdatum='.$this->db_add_param($this->zgvdatum).",".
|
||||
' zgvnation='.$this->db_add_param($this->zgvnation).",".
|
||||
' zgv_erfuellt='.$this->db_add_param($this->zgv_erfuellt).",".
|
||||
' zgvmas_code='.$this->db_add_param($this->zgvmas_code).",".
|
||||
' zgvmaort='.$this->db_add_param($this->zgvmaort).",".
|
||||
' zgvmadatum='.$this->db_add_param($this->zgvmadatum).",".
|
||||
' zgvmanation='.$this->db_add_param($this->zgvmanation).",".
|
||||
' zgvmas_erfuellt='.$this->db_add_param($this->zgvmas_erfuellt).",".
|
||||
' zgvdoktor_code='.$this->db_add_param($this->zgvdoktor_code).",".
|
||||
' zgvdoktorort='.$this->db_add_param($this->zgvdoktorort).",".
|
||||
' zgvdoktordatum='.$this->db_add_param($this->zgvdoktordatum).",".
|
||||
' zgvdoktornation='.$this->db_add_param($this->zgvdoktornation).",".
|
||||
' aufnahmeschluessel='.$this->db_add_param($this->aufnahmeschluessel).",".
|
||||
' facheinschlberuf='.$this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).",".
|
||||
' reihungstest_id='.$this->db_add_param($this->reihungstest_id).",".
|
||||
@@ -320,7 +354,10 @@ class prestudent extends person
|
||||
' dual='.$this->db_add_param($this->dual, FHC_BOOLEAN).",".
|
||||
' ausstellungsstaat='.$this->db_add_param($this->ausstellungsstaat).",".
|
||||
' aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).",".
|
||||
' priorisierung='.$this->db_add_param($this->priorisierung).' '.
|
||||
' priorisierung='.$this->db_add_param($this->priorisierung).",".
|
||||
' zgvdoktor_erfuellt='.$this->db_add_param($this->zgvdoktor_erfuellt).', '.
|
||||
' foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).",".
|
||||
' standort_code='.$this->db_add_param($this->standort_code)." ".
|
||||
" WHERE prestudent_id=".$this->db_add_param($this->prestudent_id).";";
|
||||
}
|
||||
|
||||
@@ -796,10 +833,12 @@ class prestudent extends person
|
||||
case "zgv":
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($studiengang_kz);
|
||||
if($stg_obj->typ=='m')
|
||||
$qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null";
|
||||
if($stg_obj->typ=='m')
|
||||
$qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null AND a.zgvmas_erfuellt = 't'";
|
||||
elseif($stg_obj->typ=='p')
|
||||
$qry.=" AND a.rolle='Interessent' AND a.zgvdoktor_code is not null AND a.zgvdoktor_erfuellt = 't'";
|
||||
else
|
||||
$qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null";
|
||||
$qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null AND a.zgv_erfuellt = 't'";
|
||||
break;
|
||||
case "reihungstestangemeldet":
|
||||
$qry.="
|
||||
@@ -896,10 +935,17 @@ class prestudent extends person
|
||||
$ps->zgvort = $row->zgvort;
|
||||
$ps->zgvdatum = $row->zgvdatum;
|
||||
$ps->zgvnation = $row->zgvnation;
|
||||
$ps->zgv_erfuellt = $row->zgv_erfuellt;
|
||||
$ps->zgvmas_code = $row->zgvmas_code;
|
||||
$ps->zgvmaort = $row->zgvmaort;
|
||||
$ps->zgvmadatum = $row->zgvmadatum;
|
||||
$ps->zgvmanation = $row->zgvmanation;
|
||||
$ps->zgvmas_erfuellt = $row->zgvmas_erfuellt;
|
||||
$ps->zgvdoktor_code = $row->zgvdoktor_code;
|
||||
$ps->zgvdoktorort = $row->zgvdoktorort;
|
||||
$ps->zgvdoktordatum = $row->zgvdoktordatum;
|
||||
$ps->zgvdoktornation = $row->zgvdoktornation;
|
||||
$ps->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt;
|
||||
$ps->ausstellungsstaat = $row->ausstellungsstaat;
|
||||
$ps->aufnahmeschluessel = $row->aufnahmeschluessel;
|
||||
$ps->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf);
|
||||
@@ -916,6 +962,8 @@ class prestudent extends person
|
||||
$ps->gsstudientyp_kurzbz = $row->gsstudientyp_kurzbz;
|
||||
$ps->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$ps->priorisierung = $row->priorisierung;
|
||||
$ps->foerderrelevant = $row->foerderrelevant;
|
||||
$ps->standort_code = $row->standort_code;
|
||||
|
||||
$ps->status_kurzbz = $row->status_kurzbz;
|
||||
$ps->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
@@ -1078,23 +1126,23 @@ class prestudent extends person
|
||||
studiensemester_kurzbz, ausbildungssemester, datum, insertamum, insertvon,
|
||||
updateamum, updatevon, ext_id, orgform_kurzbz, bestaetigtam, bestaetigtvon, anmerkung,
|
||||
bewerbung_abgeschicktamum, studienplan_id, rt_stufe, statusgrund_id) VALUES('.
|
||||
$this->db_add_param($this->prestudent_id).",".
|
||||
$this->db_add_param($this->status_kurzbz).",".
|
||||
$this->db_add_param($this->studiensemester_kurzbz).",".
|
||||
$this->db_add_param($this->ausbildungssemester).",".
|
||||
$this->db_add_param($this->datum).",".
|
||||
$this->db_add_param($this->insertamum).",".
|
||||
$this->db_add_param($this->insertvon).",".
|
||||
$this->db_add_param($this->updateamum).",".
|
||||
$this->db_add_param($this->updatevon).",".
|
||||
$this->db_add_param($this->ext_id_prestudent).",".
|
||||
$this->db_add_param($this->orgform_kurzbz).",".
|
||||
$this->db_add_param($this->bestaetigtam).",".
|
||||
$this->db_add_param($this->bestaetigtvon).",".
|
||||
$this->db_add_param($this->anmerkung_status).",".
|
||||
$this->db_add_param($this->bewerbung_abgeschicktamum).",".
|
||||
$this->db_add_param($this->studienplan_id,FHC_INTEGER).",".
|
||||
$this->db_add_param($this->rt_stufe,FHC_INTEGER).",".
|
||||
$this->db_add_param($this->prestudent_id).",".
|
||||
$this->db_add_param($this->status_kurzbz).",".
|
||||
$this->db_add_param($this->studiensemester_kurzbz).",".
|
||||
$this->db_add_param($this->ausbildungssemester).",".
|
||||
$this->db_add_param($this->datum).",".
|
||||
$this->db_add_param($this->insertamum).",".
|
||||
$this->db_add_param($this->insertvon).",".
|
||||
$this->db_add_param($this->updateamum).",".
|
||||
$this->db_add_param($this->updatevon).",".
|
||||
$this->db_add_param($this->ext_id_prestudent).",".
|
||||
$this->db_add_param($this->orgform_kurzbz).",".
|
||||
$this->db_add_param($this->bestaetigtam).",".
|
||||
$this->db_add_param($this->bestaetigtvon).",".
|
||||
$this->db_add_param($this->anmerkung_status).",".
|
||||
$this->db_add_param($this->bewerbung_abgeschicktamum).",".
|
||||
$this->db_add_param($this->studienplan_id,FHC_INTEGER).",".
|
||||
$this->db_add_param($this->rt_stufe,FHC_INTEGER).",".
|
||||
$this->db_add_param($this->statusgrund_id, FHC_INTEGER).");";
|
||||
}
|
||||
else
|
||||
@@ -1403,6 +1451,9 @@ class prestudent extends person
|
||||
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
ORDER BY prestudent_id";
|
||||
|
||||
$udf = new UDF();
|
||||
$hasUDF = $udf->prestudentHasUDF();
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
@@ -1418,10 +1469,12 @@ class prestudent extends person
|
||||
$obj->zgvort = $row->zgvort;
|
||||
$obj->zgvdatum = $row->zgvdatum;
|
||||
$obj->zgvnation = $row->zgvnation;
|
||||
$obj->zgv_erfuellt = $row->zgv_erfuellt;
|
||||
$obj->zgvmas_code = $row->zgvmas_code;
|
||||
$obj->zgvmaort = $row->zgvmaort;
|
||||
$obj->zgvmadatum = $row->zgvmadatum;
|
||||
$obj->zgvmanation = $row->zgvmanation;
|
||||
$obj->zgvmas_erfuellt = $row->zgvmas_erfuellt;
|
||||
$obj->aufnahmeschluessel = $row->aufnahmeschluessel;
|
||||
$obj->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf);
|
||||
$obj->anmeldungreihungstest = $row->anmeldungreihungstest;
|
||||
@@ -1445,6 +1498,13 @@ class prestudent extends person
|
||||
$obj->gsstudientyp_kurzbz = $row->gsstudientyp_kurzbz;
|
||||
$obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz;
|
||||
$obj->priorisierung = $row->priorisierung;
|
||||
$obj->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt;
|
||||
|
||||
if ($hasUDF)
|
||||
{
|
||||
$obj->udf_values = $row->udf_values;
|
||||
}
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -1468,7 +1528,7 @@ class prestudent extends person
|
||||
(
|
||||
'bachelor' => array(),
|
||||
'master' => array(),
|
||||
//'doktor' => array(),
|
||||
'doktor' => array(),
|
||||
);
|
||||
$attribute = array
|
||||
(
|
||||
@@ -2065,11 +2125,11 @@ class prestudent extends person
|
||||
$log->sql = $qry;
|
||||
$log->sqlundo = 'INSERT INTO public.tbl_prestudent(
|
||||
prestudent_id, aufmerksamdurch_kurzbz, studiengang_kz, berufstaetigkeit_code, ausbildungcode,
|
||||
zgv_code, zgvort, zgvdatum, zgvnation, zgvmas_code, zgvmaort, zgvmadatum, zgvmanation,
|
||||
zgv_code, zgvort, zgvdatum, zgvnation,zgv_erfuellt, zgvmas_code, zgvmaort, zgvmadatum, zgvmanation,zgvmas_erfuellt,
|
||||
aufnahmeschluessel, facheinschlberuf, anmeldungreihungstest, reihungstestangetreten, reihungstest_id,
|
||||
punkte, rt_punkte1, rt_punkte2, rt_punkte3, bismelden, person_id, anmerkung, mentor, ext_id_prestudent,
|
||||
dual, ausstellungsstaat, zgvdoktor_code, zgvdoktorort, zgvdoktordatum, zgvdoktornation,
|
||||
gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung) VALUES('.
|
||||
gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung,zgvdoktor_erfuellt) VALUES('.
|
||||
$this->db_add_param($this->prestudent_id).','.
|
||||
$this->db_add_param($this->aufmerksamdurch_kurzbz).','.
|
||||
$this->db_add_param($this->studiengang_kz).','.
|
||||
@@ -2079,10 +2139,12 @@ class prestudent extends person
|
||||
$this->db_add_param($this->zgvort).','.
|
||||
$this->db_add_param($this->zgvdatum).','.
|
||||
$this->db_add_param($this->zgvnation).','.
|
||||
$this->db_add_param($this->zgv_erfuellt).','.
|
||||
$this->db_add_param($this->zgvmas_code).','.
|
||||
$this->db_add_param($this->zgvmaort).','.
|
||||
$this->db_add_param($this->zgvmadatum).','.
|
||||
$this->db_add_param($this->zgvmanation).','.
|
||||
$this->db_add_param($this->zgvmas_erfuellt).','.
|
||||
$this->db_add_param($this->aufnahmeschluessel).','.
|
||||
$this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->anmeldungreihungstest).','.
|
||||
@@ -2105,7 +2167,8 @@ class prestudent extends person
|
||||
$this->db_add_param($this->zgvdoktornation).','.
|
||||
$this->db_add_param($this->gsstudientyp_kurzbz).','.
|
||||
$this->db_add_param($this->aufnahmegruppe_kurzbz).','.
|
||||
$this->db_add_param($this->priorisierung).');';
|
||||
$this->db_add_param($this->priorisierung).','.
|
||||
$this->db_add_param($this->zgvdoktor_erfuellt).');';
|
||||
|
||||
if($log->save(true))
|
||||
{
|
||||
@@ -2216,9 +2279,9 @@ class prestudent extends person
|
||||
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
|
||||
AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER);
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->prio_relativ;
|
||||
}
|
||||
@@ -2233,8 +2296,9 @@ class prestudent extends person
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
|
||||
+181
-99
@@ -45,8 +45,10 @@ class projekt extends basis_db
|
||||
public $updatevon; // string
|
||||
public $budget;
|
||||
public $farbe;
|
||||
public $anzahl_ma; // integer
|
||||
public $aufwand_pt; // integer
|
||||
public $anzahl_ma; // integer
|
||||
public $aufwand_pt; // integer
|
||||
public $zeitaufzeichnung; //bool
|
||||
public $sap_project_id;
|
||||
|
||||
|
||||
/**
|
||||
@@ -70,8 +72,10 @@ class projekt extends basis_db
|
||||
{
|
||||
$qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=" . $this->db_add_param($projekt_kurzbz);
|
||||
|
||||
if ($this->db_query($qry)) {
|
||||
if ($row = $this->db_fetch_object()) {
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->titel = $row->titel;
|
||||
@@ -83,6 +87,7 @@ class projekt extends basis_db
|
||||
$this->farbe = $row->farbe;
|
||||
$this->anzahl_ma = $row->anzahl_ma;
|
||||
$this->aufwand_pt = $row->aufwand_pt;
|
||||
$this->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -119,8 +124,10 @@ class projekt extends basis_db
|
||||
$qry .= ' AND oe_kurzbz=' . $this->db_add_param($oe);
|
||||
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -135,6 +142,7 @@ class projekt extends basis_db
|
||||
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
|
||||
$obj->anzahl_ma = $row->anzahl_ma;
|
||||
$obj->aufwand_pt = $row->aufwand_pt;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -160,9 +168,11 @@ class projekt extends basis_db
|
||||
if (!is_null($oe))
|
||||
$qry .= " AND oe_kurzbz=" . $this->db_add_param($oe);
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
//echo $qry;
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -176,6 +186,7 @@ class projekt extends basis_db
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->anzahl_ma = $row->anzahl_ma;
|
||||
$obj->aufwand_pt = $row->aufwand_pt;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -188,7 +199,6 @@ class projekt extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Projeke einer Organisationseinheit
|
||||
* @param string $oe Organisationseinheit.
|
||||
@@ -200,9 +210,11 @@ class projekt extends basis_db
|
||||
if (!is_null($oe))
|
||||
$qry .= " WHERE oe_kurzbz=" . $this->db_add_param($oe);
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
//echo $qry;
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -217,6 +229,7 @@ class projekt extends basis_db
|
||||
$obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz;
|
||||
$obj->anzahl_ma = $row->anzahl_ma;
|
||||
$obj->aufwand_pt = $row->aufwand_pt;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -236,21 +249,26 @@ class projekt extends basis_db
|
||||
protected function validate()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
if ($this->projekt_kurzbz == null) {
|
||||
if ($this->projekt_kurzbz == null)
|
||||
{
|
||||
$this->errormsg = 'Projekt kurzbz darf nicht NULL sein!';
|
||||
}
|
||||
if ($this->oe_kurzbz == null) {
|
||||
if ($this->oe_kurzbz == null)
|
||||
{
|
||||
$this->errormsg = 'OE kurbz darf nicht NULL sein!';
|
||||
}
|
||||
if (mb_strlen($this->projekt_kurzbz) > 16) {
|
||||
if (mb_strlen($this->projekt_kurzbz) > 16)
|
||||
{
|
||||
$this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->nummer) > 8) {
|
||||
if (mb_strlen($this->nummer) > 8)
|
||||
{
|
||||
$this->errormsg = 'Nummer darf nicht länger als 8 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->titel) > 256) {
|
||||
if (mb_strlen($this->titel) > 256)
|
||||
{
|
||||
$this->errormsg = 'Titel darf nicht länger als 256 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
@@ -275,49 +293,55 @@ class projekt extends basis_db
|
||||
if ($new == null)
|
||||
$new = $this->new;
|
||||
|
||||
if ($new) {
|
||||
if ($new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
$qry = 'INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES(' .
|
||||
$this->db_add_param($this->projekt_kurzbz) . ', ' .
|
||||
$this->db_add_param($this->nummer) . ', ' .
|
||||
$this->db_add_param($this->titel) . ', ' .
|
||||
$this->db_add_param($this->beschreibung) . ', ' .
|
||||
$this->db_add_param($this->beginn) . ', ' .
|
||||
$this->db_add_param($this->ende) . ', ' .
|
||||
$this->db_add_param($this->budget) . ', ' .
|
||||
$this->db_add_param($this->farbe) . ', ' .
|
||||
$this->db_add_param($this->oe_kurzbz) . ',' .
|
||||
$this->db_add_param($this->aufwand_pt) . ',' .
|
||||
$this->db_add_param($this->anzahl_ma) . ',' .
|
||||
$this->db_add_param($this->aufwandstyp_kurzbz) . ');';
|
||||
$qry = 'INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz, zeitaufzeichnung) VALUES('.
|
||||
$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
$this->db_add_param($this->nummer).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->budget).', '.
|
||||
$this->db_add_param($this->farbe).', '.
|
||||
$this->db_add_param($this->oe_kurzbz).','.
|
||||
$this->db_add_param($this->aufwand_pt).','.
|
||||
$this->db_add_param($this->anzahl_ma).','.
|
||||
$this->db_add_param($this->aufwandstyp_kurzbz).', '.
|
||||
$this->db_add_param($this->zeitaufzeichnung,FHC_BOOLEAN).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
$qry = 'UPDATE fue.tbl_projekt SET ' .
|
||||
'projekt_kurzbz=' . $this->db_add_param($this->projekt_kurzbz) . ', ' .
|
||||
'nummer=' . $this->db_add_param($this->nummer) . ', ' .
|
||||
'titel=' . $this->db_add_param($this->titel) . ', ' .
|
||||
'beschreibung=' . $this->db_add_param($this->beschreibung) . ', ' .
|
||||
'beginn=' . $this->db_add_param($this->beginn) . ', ' .
|
||||
'ende=' . $this->db_add_param($this->ende) . ', ' .
|
||||
'budget=' . $this->db_add_param($this->budget) . ', ' .
|
||||
'farbe=' . $this->db_add_param($this->farbe) . ', ' .
|
||||
'oe_kurzbz=' . $this->db_add_param($this->oe_kurzbz) . ', ' .
|
||||
'anzahl_ma=' . $this->db_add_param($this->anzahl_ma) . ', ' .
|
||||
'aufwand_pt=' . $this->db_add_param($this->aufwand_pt) . ', ' .
|
||||
'aufwandstyp_kurzbz=' . $this->db_add_param($this->aufwandstyp_kurzbz) . ' ' .
|
||||
'WHERE projekt_kurzbz=' . $this->db_add_param($this->projekt_kurzbz) . ';';
|
||||
$qry = 'UPDATE fue.tbl_projekt SET '.
|
||||
'projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
'nummer='.$this->db_add_param($this->nummer).', '.
|
||||
'titel='.$this->db_add_param($this->titel).', '.
|
||||
'beschreibung='.$this->db_add_param($this->beschreibung).', '.
|
||||
'beginn='.$this->db_add_param($this->beginn).', '.
|
||||
'ende='.$this->db_add_param($this->ende).', '.
|
||||
'budget='.$this->db_add_param($this->budget).', '.
|
||||
'farbe='.$this->db_add_param($this->farbe).', '.
|
||||
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
|
||||
'anzahl_ma='.$this->db_add_param($this->anzahl_ma).', '.
|
||||
'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '.
|
||||
'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).', '.
|
||||
'zeitaufzeichnung='.$this->db_add_param($this->zeitaufzeichnung,FHC_BOOLEAN).' '.
|
||||
'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';';
|
||||
}
|
||||
|
||||
if ($this->db_query($qry)) {
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
$this->getErrorMsg();
|
||||
var_dump($this->getErrorMsg());
|
||||
$this->errormsg = $this->getErrorMsg();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -331,7 +355,8 @@ class projekt extends basis_db
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz=" . $this->db_add_param($projekt_kurzbz);
|
||||
|
||||
if ($this->db_query($qry)) {
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -365,29 +390,33 @@ class projekt extends basis_db
|
||||
)";
|
||||
|
||||
if ($projektphasen == true)
|
||||
{
|
||||
$qry .= "UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) OR (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) OR (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object($result)) {
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -397,6 +426,7 @@ class projekt extends basis_db
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -410,7 +440,7 @@ class projekt extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert Ein Array mit Porjekten von allen Projekten des Mitarbeiters mit UID.
|
||||
* Liefert Ein Array mit Projekten von allen Projekten des Mitarbeiters mit UID.
|
||||
* Optional auch mit den Zuteilungen zu Projektphasen.
|
||||
* @param string $mitarbeiter_uid MitarbeiterUID.
|
||||
* @param bool $projektphasen Default false. Wenn true, werden auch Zuteilungen zu Projektphasen geliefert.
|
||||
@@ -419,44 +449,91 @@ class projekt extends basis_db
|
||||
function getProjekteListForMitarbeiter($mitarbeiter_uid, $projektphasen = false)
|
||||
{
|
||||
$projectList = array();
|
||||
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
|
||||
|
||||
$qry = "SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_ressource
|
||||
JOIN fue.tbl_projekt_ressource USING(ressource_id)
|
||||
JOIN fue.tbl_projekt USING(projekt_kurzbz)
|
||||
WHERE (beginn<=now() or beginn is null)
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= ", tbl_sap_projects_timesheets.project_id
|
||||
";
|
||||
}
|
||||
|
||||
$qry .= "FROM
|
||||
fue.tbl_ressource
|
||||
JOIN fue.tbl_projekt_ressource USING(ressource_id)
|
||||
JOIN fue.tbl_projekt USING(projekt_kurzbz)
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project USING(projekt_id)
|
||||
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
|
||||
";
|
||||
}
|
||||
|
||||
$qry .= "WHERE (beginn<=now() or beginn is null)
|
||||
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
|
||||
AND
|
||||
(
|
||||
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
|
||||
student_uid=" . $this->db_add_param($mitarbeiter_uid) . "
|
||||
)";
|
||||
)
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= "AND tbl_projects_timesheets_project.projektphase_id IS NULL
|
||||
";
|
||||
}
|
||||
|
||||
if ($projektphasen == true)
|
||||
{
|
||||
$qry .= "UNION
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
";
|
||||
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) OR (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= ", tbl_sap_projects_timesheets.project_task_id
|
||||
";
|
||||
}
|
||||
|
||||
if ($result = $this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object($result)) {
|
||||
$qry .= "FROM fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
|
||||
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
|
||||
";
|
||||
}
|
||||
|
||||
$qry .= "WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) OR (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
";
|
||||
};
|
||||
|
||||
$qry .= "AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -466,6 +543,8 @@ class projekt extends basis_db
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
if ($exists)
|
||||
$obj->sap_project_id = $row->project_id;
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
@@ -486,8 +565,10 @@ class projekt extends basis_db
|
||||
join wawi.tbl_projekt_bestellung USING (projekt_kurzbz)
|
||||
where bestellung_id= " . $this->db_add_param($bestellung_id);
|
||||
|
||||
if ($this->db_query($qry)) {
|
||||
if ($row = $this->db_fetch_object()) {
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->titel = $row->titel;
|
||||
@@ -499,6 +580,7 @@ class projekt extends basis_db
|
||||
$this->farbe = $row->farbe;
|
||||
$this->anzahl_ma = $row->anzahl_ma;
|
||||
$this->aufwand_pt = $row->aufwand_pt;
|
||||
$this->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -548,7 +630,7 @@ class projekt extends basis_db
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
error_log('Exception abgefangen: ', $e->getMessage(), "\n");
|
||||
error_log('Exception abgefangen: ', $e->getMessage(), "\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>
|
||||
*/
|
||||
/**
|
||||
* Klasse projekttask
|
||||
* Klasse projektphase
|
||||
* @create 2011-05-23
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
@@ -48,6 +48,8 @@ class projektphase extends basis_db
|
||||
public $insertvon; // bigint
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // bigint
|
||||
public $zeitaufzeichnung; // bool
|
||||
public $project_task_id;
|
||||
|
||||
|
||||
/**
|
||||
@@ -92,7 +94,7 @@ class projektphase extends basis_db
|
||||
$this->start = $row->start;
|
||||
$this->ende = $row->ende;
|
||||
$this->personentage = $row->personentage;
|
||||
$this->farbe = $row->farbe;
|
||||
$this->farbe = $row->farbe;
|
||||
$this->budget = $row->budget;
|
||||
$this->ressource_id = $row->ressource_id;
|
||||
$this->ressource_bezeichnung = $row->ressource_bezeichnung;
|
||||
@@ -100,6 +102,7 @@ class projektphase extends basis_db
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -134,7 +137,6 @@ class projektphase extends basis_db
|
||||
WHERE p.projektphase_fk=tasks.projektphase_fk
|
||||
) SELECT *
|
||||
FROM tasks) and projektphase_id not in (".$this->db_add_param($projektphase_id, FHC_INTEGER).")";
|
||||
//echo "\n".$qry."\n";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -151,17 +153,18 @@ class projektphase extends basis_db
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
//$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_id;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
//var_dump($this->result);
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -183,7 +186,6 @@ class projektphase extends basis_db
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichnung
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
|
||||
//echo "\n".$qry."\n";
|
||||
|
||||
if(!is_null($foreignkey))
|
||||
$qry .= " and projektphase_fk is NULL";
|
||||
@@ -205,7 +207,7 @@ class projektphase extends basis_db
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
//$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_id;
|
||||
$obj->ressource_bezeichnung = $row->ressource_bezeichnung;
|
||||
@@ -213,10 +215,10 @@ class projektphase extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
//var_dump($this->result);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -226,22 +228,22 @@ class projektphase extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Unterphasen zu einem Projekt
|
||||
* @param type $phase_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllUnterphasen($phase_id)
|
||||
{
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichung
|
||||
/**
|
||||
* Lädt alle Unterphasen zu einem Projekt
|
||||
* @param type $phase_id
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllUnterphasen($phase_id)
|
||||
{
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichung
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projektphase_fk =".$this->db_add_param($phase_id, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
@@ -252,7 +254,7 @@ class projektphase extends basis_db
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
//$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_id;
|
||||
$obj->ressource_bezeichnung = $row->ressource_bezeichnung;
|
||||
@@ -260,17 +262,18 @@ class projektphase extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->zeitaufzeichnung = $this->db_parse_bool($row->zeitaufzeichnung);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden der Daten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden der Daten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Variablen auf Gueltigkeit
|
||||
@@ -319,22 +322,22 @@ class projektphase extends basis_db
|
||||
if($new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
$qry='BEGIN; INSERT INTO fue.tbl_projektphase (projekt_kurzbz, projektphase_fk, bezeichnung, typ,
|
||||
beschreibung, start, ende, budget, ressource_id, insertvon, insertamum, updatevon, updateamum, farbe, personentage) VALUES ('.
|
||||
$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
$this->db_add_param($this->projektphase_fk).', '.
|
||||
$this->db_add_param($this->bezeichnung).', '.
|
||||
$this->db_add_param($this->typ).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->start).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->budget).', '.
|
||||
$this->db_add_param($this->ressource_id).', '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).', now(), '.
|
||||
$this->db_add_param($this->farbe).', '.
|
||||
$this->db_add_param($this->personentage).' );';
|
||||
beschreibung, start, ende, budget, ressource_id, insertvon, insertamum, updatevon, updateamum, farbe, personentage, zeitaufzeichnung) VALUES ('.
|
||||
$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
$this->db_add_param($this->projektphase_fk).', '.
|
||||
$this->db_add_param($this->bezeichnung).', '.
|
||||
$this->db_add_param($this->typ).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->start).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->budget).', '.
|
||||
$this->db_add_param($this->ressource_id).', '.
|
||||
$this->db_add_param($this->insertvon).', now(), '.
|
||||
$this->db_add_param($this->updatevon).', now(), '.
|
||||
$this->db_add_param($this->farbe).', '.
|
||||
$this->db_add_param($this->personentage).', '.
|
||||
$this->db_add_param($this->zeitaufzeichnung,FHC_BOOLEAN).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -349,11 +352,12 @@ class projektphase extends basis_db
|
||||
'start='.$this->db_add_param($this->start).', '.
|
||||
'ende='.$this->db_add_param($this->ende).', '.
|
||||
'budget='.$this->db_add_param($this->budget).', '.
|
||||
'ressource_id='.$this->db_add_param($this->ressource_id).', '.
|
||||
'farbe='.$this->db_add_param($this->farbe).', '.
|
||||
'ressource_id='.$this->db_add_param($this->ressource_id).', '.
|
||||
'farbe='.$this->db_add_param($this->farbe).', '.
|
||||
'personentage='.$this->db_add_param($this->personentage).', '.
|
||||
'updateamum= now(), '.
|
||||
'updatevon='.$this->db_add_param($this->updatevon).' '.
|
||||
'updatevon='.$this->db_add_param($this->updatevon).', '.
|
||||
'zeitaufzeichnung='.$this->db_add_param($this->zeitaufzeichnung,FHC_BOOLEAN).' '.
|
||||
'WHERE projektphase_id='.$this->db_add_param($this->projektphase_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
@@ -528,7 +532,7 @@ class projektphase extends basis_db
|
||||
* gibt den Fortschritt der Phase in Prozent zurück --> Phasen die auf die übergebene Phase zeigen werden berücksichtigt
|
||||
* @param $projektphase_id
|
||||
*/
|
||||
public function getFortschritt($projektphase_id)
|
||||
public function getFortschritt($projektphase_id)
|
||||
{
|
||||
$qry = "Select * from fue.tbl_projektphase phase
|
||||
join fue.tbl_projekttask task using(projektphase_id)
|
||||
@@ -685,26 +689,42 @@ public function getFortschritt($projektphase_id)
|
||||
public function getProjectphaseForMitarbeiter($mitarbeiter_uid)
|
||||
{
|
||||
$projecphasetList = array();
|
||||
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT tbl_projektphase.*,tbl_projekt.titel
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
$qry = "SELECT DISTINCT tbl_projektphase.*,
|
||||
tbl_projekt.titel
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= ", tbl_sap_projects_timesheets.project_task_id
|
||||
";
|
||||
}
|
||||
|
||||
$qry .= "FROM fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
";
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
|
||||
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
|
||||
";
|
||||
}
|
||||
|
||||
$qry .= "WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
@@ -729,6 +749,8 @@ public function getFortschritt($projektphase_id)
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
if ($exists)
|
||||
$obj->project_task_id = $row->project_task_id;
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
|
||||
+22
-19
@@ -361,13 +361,13 @@ class pruefling extends basis_db
|
||||
|
||||
$qry = "
|
||||
SELECT DISTINCT ON (vw_auswertung_ablauf.gebiet_id) gebiet_id,
|
||||
vw_auswertung_ablauf.*,
|
||||
vw_auswertung_ablauf.*,
|
||||
tbl_studiengang.typ
|
||||
FROM
|
||||
FROM
|
||||
testtool.vw_auswertung_ablauf
|
||||
JOIN
|
||||
JOIN
|
||||
public.tbl_studiengang USING (studiengang_kz)
|
||||
WHERE
|
||||
WHERE
|
||||
reihungstest_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER);
|
||||
|
||||
// Ggf. die Basis-Fragengebiete ermitteln (ohne Quereinsteigergebiete)
|
||||
@@ -387,8 +387,8 @@ class pruefling extends basis_db
|
||||
if (!empty($basis_gebiet_id_toString))
|
||||
{
|
||||
$qry .= "
|
||||
AND
|
||||
gebiet_id IN (". $basis_gebiet_id_toString. ")
|
||||
AND
|
||||
gebiet_id IN (". $basis_gebiet_id_toString. ")
|
||||
";
|
||||
}
|
||||
}
|
||||
@@ -400,13 +400,16 @@ class pruefling extends basis_db
|
||||
{
|
||||
$excluded_gebiete = unserialize(FAS_REIHUNGSTEST_EXCLUDE_GEBIETE);
|
||||
$exclude_gebiet_id_arr = $excluded_gebiete;
|
||||
$exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr);
|
||||
$qry .= "
|
||||
AND
|
||||
gebiet_id NOT IN (". $exclude_gebiet_id_toString. ")
|
||||
AND
|
||||
typ = 'b'
|
||||
";
|
||||
if (is_array($exclude_gebiet_id_arr) && count($exclude_gebiet_id_arr) > 0)
|
||||
{
|
||||
$exclude_gebiet_id_toString = implode(', ', $exclude_gebiet_id_arr);
|
||||
$qry .= "
|
||||
AND
|
||||
gebiet_id NOT IN (". $exclude_gebiet_id_toString. ")
|
||||
AND
|
||||
typ = 'b'
|
||||
";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -421,21 +424,21 @@ class pruefling extends basis_db
|
||||
prestudent_id
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
JOIN
|
||||
JOIN
|
||||
public.tbl_prestudent USING(person_id)
|
||||
JOIN
|
||||
public.tbl_prestudentstatus USING (prestudent_id, studienplan_id)
|
||||
JOIN
|
||||
JOIN
|
||||
tbl_reihungstest ON (
|
||||
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
|
||||
tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
WHERE
|
||||
tbl_rt_person.person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND
|
||||
AND
|
||||
tbl_rt_person.rt_id = ".$this->db_add_param($reihungstest_id, FHC_INTEGER)."
|
||||
AND
|
||||
AND
|
||||
tbl_prestudentstatus.status_kurzbz='Interessent'
|
||||
AND
|
||||
AND
|
||||
tbl_prestudentstatus.studiensemester_kurzbz = tbl_reihungstest.studiensemester_kurzbz
|
||||
ORDER BY tbl_reihungstest.datum DESC, tbl_prestudent.priorisierung ASC LIMIT 1
|
||||
)
|
||||
|
||||
@@ -1,687 +0,0 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
//
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/3_0.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Authors: Alexander Zhukov <alex@veresk.ru> Original port from Python |
|
||||
// | Authors: Harry Fuecks <hfuecks@phppatterns.com> Port to PEAR + more |
|
||||
// | Authors: Many @ Sitepointforums Advanced PHP Forums |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: HTMLSax3.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
//
|
||||
/**
|
||||
* Main parser components
|
||||
* @package XML_HTMLSax3
|
||||
* @version $Id: HTMLSax3.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
*/
|
||||
/**
|
||||
* Required classes
|
||||
*/
|
||||
if (!defined('XML_HTMLSAX3')) {
|
||||
define('XML_HTMLSAX3', 'XML/');
|
||||
}
|
||||
require_once(XML_HTMLSAX3 . 'HTMLSax3/States.php');
|
||||
require_once(XML_HTMLSAX3 . 'HTMLSax3/Decorators.php');
|
||||
|
||||
/**
|
||||
* Base State Parser
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
* @abstract
|
||||
*/
|
||||
class XML_HTMLSax3_StateParser {
|
||||
/**
|
||||
* Instance of user front end class to be passed to callbacks
|
||||
* @var XML_HTMLSax3
|
||||
* @access private
|
||||
*/
|
||||
var $htmlsax;
|
||||
/**
|
||||
* User defined object for handling elements
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_object_element;
|
||||
/**
|
||||
* User defined open tag handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_opening;
|
||||
/**
|
||||
* User defined close tag handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_closing;
|
||||
/**
|
||||
* User defined object for handling data in elements
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_object_data;
|
||||
/**
|
||||
* User defined data handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_data;
|
||||
/**
|
||||
* User defined object for handling processing instructions
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_object_pi;
|
||||
/**
|
||||
* User defined processing instruction handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_pi;
|
||||
/**
|
||||
* User defined object for handling JSP/ASP tags
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_object_jasp;
|
||||
/**
|
||||
* User defined JSP/ASP handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_jasp;
|
||||
/**
|
||||
* User defined object for handling XML escapes
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_object_escape;
|
||||
/**
|
||||
* User defined XML escape handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $handler_method_escape;
|
||||
/**
|
||||
* User defined handler object or NullHandler
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $handler_default;
|
||||
/**
|
||||
* Parser options determining parsing behavior
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $parser_options = array();
|
||||
/**
|
||||
* XML document being parsed
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $rawtext;
|
||||
/**
|
||||
* Position in XML document relative to start (0)
|
||||
* @var int
|
||||
* @access private
|
||||
*/
|
||||
var $position;
|
||||
/**
|
||||
* Length of the XML document in characters
|
||||
* @var int
|
||||
* @access private
|
||||
*/
|
||||
var $length;
|
||||
/**
|
||||
* Array of state objects
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $State = array();
|
||||
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_StateParser setting up states
|
||||
* @var XML_HTMLSax3 instance of user front end class
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_StateParser (& $htmlsax) {
|
||||
$this->htmlsax = & $htmlsax;
|
||||
$this->State[XML_HTMLSAX3_STATE_START] = new XML_HTMLSax3_StartingState();
|
||||
|
||||
$this->State[XML_HTMLSAX3_STATE_CLOSING_TAG] = new XML_HTMLSax3_ClosingTagState();
|
||||
$this->State[XML_HTMLSAX3_STATE_TAG] = new XML_HTMLSax3_TagState();
|
||||
$this->State[XML_HTMLSAX3_STATE_OPENING_TAG] = new XML_HTMLSax3_OpeningTagState();
|
||||
|
||||
$this->State[XML_HTMLSAX3_STATE_PI] = new XML_HTMLSax3_PiState();
|
||||
$this->State[XML_HTMLSAX3_STATE_JASP] = new XML_HTMLSax3_JaspState();
|
||||
$this->State[XML_HTMLSAX3_STATE_ESCAPE] = new XML_HTMLSax3_EscapeState();
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the position back one character
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function unscanCharacter() {
|
||||
$this->position -= 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the position forward one character
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function ignoreCharacter() {
|
||||
$this->position += 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the next character from the XML document or void if at end
|
||||
* @access protected
|
||||
* @return mixed
|
||||
*/
|
||||
function scanCharacter() {
|
||||
if ($this->position < $this->length) {
|
||||
return $this->rawtext{$this->position++};
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string from the current position to the next occurance
|
||||
* of the supplied string
|
||||
* @param string string to search until
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
function scanUntilString($string) {
|
||||
$start = $this->position;
|
||||
$this->position = strpos($this->rawtext, $string, $start);
|
||||
if ($this->position === FALSE) {
|
||||
$this->position = $this->length;
|
||||
}
|
||||
return substr($this->rawtext, $start, $this->position - $start);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string from the current position until the first instance of
|
||||
* one of the characters in the supplied string argument
|
||||
* @param string string to search until
|
||||
* @access protected
|
||||
* @return string
|
||||
* @abstract
|
||||
*/
|
||||
function scanUntilCharacters($string) {}
|
||||
|
||||
/**
|
||||
* Moves the position forward past any whitespace characters
|
||||
* @access protected
|
||||
* @return void
|
||||
* @abstract
|
||||
*/
|
||||
function ignoreWhitespace() {}
|
||||
|
||||
/**
|
||||
* Begins the parsing operation, setting up any decorators, depending on
|
||||
* parse options invoking _parse() to execute parsing
|
||||
* @param string XML document to parse
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function parse($data) {
|
||||
if ($this->parser_options['XML_OPTION_TRIM_DATA_NODES']==1) {
|
||||
$decorator = new XML_HTMLSax3_Trim(
|
||||
$this->handler_object_data,
|
||||
$this->handler_method_data);
|
||||
$this->handler_object_data =& $decorator;
|
||||
$this->handler_method_data = 'trimData';
|
||||
}
|
||||
if ($this->parser_options['XML_OPTION_CASE_FOLDING']==1) {
|
||||
$open_decor = new XML_HTMLSax3_CaseFolding(
|
||||
$this->handler_object_element,
|
||||
$this->handler_method_opening,
|
||||
$this->handler_method_closing);
|
||||
$this->handler_object_element =& $open_decor;
|
||||
$this->handler_method_opening ='foldOpen';
|
||||
$this->handler_method_closing ='foldClose';
|
||||
}
|
||||
if ($this->parser_options['XML_OPTION_LINEFEED_BREAK']==1) {
|
||||
$decorator = new XML_HTMLSax3_Linefeed(
|
||||
$this->handler_object_data,
|
||||
$this->handler_method_data);
|
||||
$this->handler_object_data =& $decorator;
|
||||
$this->handler_method_data = 'breakData';
|
||||
}
|
||||
if ($this->parser_options['XML_OPTION_TAB_BREAK']==1) {
|
||||
$decorator = new XML_HTMLSax3_Tab(
|
||||
$this->handler_object_data,
|
||||
$this->handler_method_data);
|
||||
$this->handler_object_data =& $decorator;
|
||||
$this->handler_method_data = 'breakData';
|
||||
}
|
||||
if ($this->parser_options['XML_OPTION_ENTITIES_UNPARSED']==1) {
|
||||
$decorator = new XML_HTMLSax3_Entities_Unparsed(
|
||||
$this->handler_object_data,
|
||||
$this->handler_method_data);
|
||||
$this->handler_object_data =& $decorator;
|
||||
$this->handler_method_data = 'breakData';
|
||||
}
|
||||
if ($this->parser_options['XML_OPTION_ENTITIES_PARSED']==1) {
|
||||
$decorator = new XML_HTMLSax3_Entities_Parsed(
|
||||
$this->handler_object_data,
|
||||
$this->handler_method_data);
|
||||
$this->handler_object_data =& $decorator;
|
||||
$this->handler_method_data = 'breakData';
|
||||
}
|
||||
// Note switched on by default
|
||||
if ($this->parser_options['XML_OPTION_STRIP_ESCAPES']==1) {
|
||||
$decorator = new XML_HTMLSax3_Escape_Stripper(
|
||||
$this->handler_object_escape,
|
||||
$this->handler_method_escape);
|
||||
$this->handler_object_escape =& $decorator;
|
||||
$this->handler_method_escape = 'strip';
|
||||
}
|
||||
$this->rawtext = $data;
|
||||
$this->length = strlen($data);
|
||||
$this->position = 0;
|
||||
$this->_parse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs the parsing itself, delegating calls to a specific parser
|
||||
* state
|
||||
* @param constant state object to parse with
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function _parse($state = XML_HTMLSAX3_STATE_START) {
|
||||
do {
|
||||
$state = $this->State[$state]->parse($this);
|
||||
} while ($state != XML_HTMLSAX3_STATE_STOP &&
|
||||
$this->position < $this->length);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parser for PHP Versions below 4.3.0. Uses a slower parsing mechanism than
|
||||
* the equivalent PHP 4.3.0+ subclass of StateParser
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
* @see XML_HTMLSax3_StateParser_Gtet430
|
||||
*/
|
||||
class XML_HTMLSax3_StateParser_Lt430 extends XML_HTMLSax3_StateParser {
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_StateParser_Lt430 defining available
|
||||
* parser options
|
||||
* @var XML_HTMLSax3 instance of user front end class
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_StateParser_Lt430(& $htmlsax) {
|
||||
parent::XML_HTMLSax3_StateParser($htmlsax);
|
||||
$this->parser_options['XML_OPTION_TRIM_DATA_NODES'] = 0;
|
||||
$this->parser_options['XML_OPTION_CASE_FOLDING'] = 0;
|
||||
$this->parser_options['XML_OPTION_LINEFEED_BREAK'] = 0;
|
||||
$this->parser_options['XML_OPTION_TAB_BREAK'] = 0;
|
||||
$this->parser_options['XML_OPTION_ENTITIES_PARSED'] = 0;
|
||||
$this->parser_options['XML_OPTION_ENTITIES_UNPARSED'] = 0;
|
||||
$this->parser_options['XML_OPTION_STRIP_ESCAPES'] = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a string from the current position until the first instance of
|
||||
* one of the characters in the supplied string argument
|
||||
* @param string string to search until
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
function scanUntilCharacters($string) {
|
||||
$startpos = $this->position;
|
||||
while ($this->position < $this->length && strpos($string, $this->rawtext{$this->position}) === FALSE) {
|
||||
$this->position++;
|
||||
}
|
||||
return substr($this->rawtext, $startpos, $this->position - $startpos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the position forward past any whitespace characters
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function ignoreWhitespace() {
|
||||
while ($this->position < $this->length &&
|
||||
strpos(" \n\r\t", $this->rawtext{$this->position}) !== FALSE) {
|
||||
$this->position++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Begins the parsing operation, setting up the unparsed XML entities
|
||||
* decorator if necessary then delegating further work to parent
|
||||
* @param string XML document to parse
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function parse($data) {
|
||||
parent::parse($data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parser for PHP Versions equal to or greater than 4.3.0. Uses a faster
|
||||
* parsing mechanism than the equivalent PHP < 4.3.0 subclass of StateParser
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
* @see XML_HTMLSax3_StateParser_Lt430
|
||||
*/
|
||||
class XML_HTMLSax3_StateParser_Gtet430 extends XML_HTMLSax3_StateParser {
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_StateParser_Gtet430 defining available
|
||||
* parser options
|
||||
* @var XML_HTMLSax3 instance of user front end class
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_StateParser_Gtet430(& $htmlsax) {
|
||||
parent::XML_HTMLSax3_StateParser($htmlsax);
|
||||
$this->parser_options['XML_OPTION_TRIM_DATA_NODES'] = 0;
|
||||
$this->parser_options['XML_OPTION_CASE_FOLDING'] = 0;
|
||||
$this->parser_options['XML_OPTION_LINEFEED_BREAK'] = 0;
|
||||
$this->parser_options['XML_OPTION_TAB_BREAK'] = 0;
|
||||
$this->parser_options['XML_OPTION_ENTITIES_PARSED'] = 0;
|
||||
$this->parser_options['XML_OPTION_ENTITIES_UNPARSED'] = 0;
|
||||
$this->parser_options['XML_OPTION_STRIP_ESCAPES'] = 0;
|
||||
}
|
||||
/**
|
||||
* Returns a string from the current position until the first instance of
|
||||
* one of the characters in the supplied string argument.
|
||||
* @param string string to search until
|
||||
* @access protected
|
||||
* @return string
|
||||
*/
|
||||
function scanUntilCharacters($string) {
|
||||
$startpos = $this->position;
|
||||
$length = strcspn($this->rawtext, $string, $startpos);
|
||||
$this->position += $length;
|
||||
return substr($this->rawtext, $startpos, $length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves the position forward past any whitespace characters
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function ignoreWhitespace() {
|
||||
$this->position += strspn($this->rawtext, " \n\r\t", $this->position);
|
||||
}
|
||||
|
||||
/**
|
||||
* Begins the parsing operation, setting up the parsed and unparsed
|
||||
* XML entity decorators if necessary then delegating further work
|
||||
* to parent
|
||||
* @param string XML document to parse
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function parse($data) {
|
||||
parent::parse($data);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Default NullHandler for methods which were not set by user
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_NullHandler {
|
||||
/**
|
||||
* Generic handler method which does nothing
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function DoNothing() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* User interface class. All user calls should only be made to this class
|
||||
* @package XML_HTMLSax3
|
||||
* @access public
|
||||
*/
|
||||
class XML_HTMLSax3 {
|
||||
/**
|
||||
* Instance of concrete subclass of XML_HTMLSax3_StateParser
|
||||
* @var XML_HTMLSax3_StateParser
|
||||
* @access private
|
||||
*/
|
||||
var $state_parser;
|
||||
|
||||
/**
|
||||
* Constructs XML_HTMLSax3 selecting concrete StateParser subclass
|
||||
* depending on PHP version being used as well as setting the default
|
||||
* NullHandler for all callbacks<br />
|
||||
* <b>Example:</b>
|
||||
* <pre>
|
||||
* $myHandler = & new MyHandler();
|
||||
* $parser = new XML_HTMLSax3();
|
||||
* $parser->set_object($myHandler);
|
||||
* $parser->set_option('XML_OPTION_CASE_FOLDING');
|
||||
* $parser->set_element_handler('myOpenHandler','myCloseHandler');
|
||||
* $parser->set_data_handler('myDataHandler');
|
||||
* $parser->parser($xml);
|
||||
* </pre>
|
||||
* @access public
|
||||
*/
|
||||
function XML_HTMLSax3() {
|
||||
if (version_compare(phpversion(), '4.3', 'ge')) {
|
||||
$this->state_parser = new XML_HTMLSax3_StateParser_Gtet430($this);
|
||||
} else {
|
||||
$this->state_parser = new XML_HTMLSax3_StateParser_Lt430($this);
|
||||
}
|
||||
$nullhandler = new XML_HTMLSax3_NullHandler();
|
||||
$this->set_object($nullhandler);
|
||||
$this->set_element_handler('DoNothing', 'DoNothing');
|
||||
$this->set_data_handler('DoNothing');
|
||||
$this->set_pi_handler('DoNothing');
|
||||
$this->set_jasp_handler('DoNothing');
|
||||
$this->set_escape_handler('DoNothing');
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the user defined handler object. Returns a PEAR Error
|
||||
* if supplied argument is not an object.
|
||||
* @param object handler object containing SAX callback methods
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
function set_object(&$object) {
|
||||
if ( is_object($object) ) {
|
||||
$this->state_parser->handler_default =& $object;
|
||||
return true;
|
||||
} else {
|
||||
require_once('PEAR.php');
|
||||
PEAR::raiseError('XML_HTMLSax3::set_object requires '.
|
||||
'an object instance');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a parser option. By default all options are switched off.
|
||||
* Returns a PEAR Error if option is invalid<br />
|
||||
* <b>Available options:</b>
|
||||
* <ul>
|
||||
* <li>XML_OPTION_TRIM_DATA_NODES: trim whitespace off the beginning
|
||||
* and end of data passed to the data handler</li>
|
||||
* <li>XML_OPTION_LINEFEED_BREAK: linefeeds result in additional data
|
||||
* handler calls</li>
|
||||
* <li>XML_OPTION_TAB_BREAK: tabs result in additional data handler
|
||||
* calls</li>
|
||||
* <li>XML_OPTION_ENTITIES_UNPARSED: XML entities are returned as
|
||||
* seperate data handler calls in unparsed form</li>
|
||||
* <li>XML_OPTION_ENTITIES_PARSED: (PHP 4.3.0+ only) XML entities are
|
||||
* returned as seperate data handler calls and are parsed with
|
||||
* PHP's html_entity_decode() function</li>
|
||||
* <li>XML_OPTION_STRIP_ESCAPES: strips out the -- -- comment markers
|
||||
* or CDATA markup inside an XML escape, if found.</li>
|
||||
* </ul>
|
||||
* To get HTMLSax to behave in the same way as the native PHP SAX parser,
|
||||
* using it's default state, you need to switch on XML_OPTION_LINEFEED_BREAK,
|
||||
* XML_OPTION_ENTITIES_PARSED and XML_OPTION_CASE_FOLDING
|
||||
* @param string name of parser option
|
||||
* @param int (optional) 1 to switch on, 0 for off
|
||||
* @access public
|
||||
* @return boolean
|
||||
*/
|
||||
function set_option($name, $value=1) {
|
||||
if ( array_key_exists($name,$this->state_parser->parser_options) ) {
|
||||
$this->state_parser->parser_options[$name] = $value;
|
||||
return true;
|
||||
} else {
|
||||
require_once('PEAR.php');
|
||||
PEAR::raiseError('XML_HTMLSax3::set_option('.$name.') illegal');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data handler method which deals with the contents of XML
|
||||
* elements.<br />
|
||||
* The handler method must accept two arguments, the first being an
|
||||
* instance of XML_HTMLSax3 and the second being the contents of an
|
||||
* XML element e.g.
|
||||
* <pre>
|
||||
* function myDataHander(& $parser,$data){}
|
||||
* </pre>
|
||||
* @param string name of method
|
||||
* @access public
|
||||
* @return void
|
||||
* @see set_object
|
||||
*/
|
||||
function set_data_handler($data_method) {
|
||||
$this->state_parser->handler_object_data =& $this->state_parser->handler_default;
|
||||
$this->state_parser->handler_method_data = $data_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the open and close tag handlers
|
||||
* <br />The open handler method must accept three arguments; the parser,
|
||||
* the tag name and an array of attributes e.g.
|
||||
* <pre>
|
||||
* function myOpenHander(& $parser,$tagname,$attrs=array()){}
|
||||
* </pre>
|
||||
* The close handler method must accept two arguments; the parser and
|
||||
* the tag name e.g.
|
||||
* <pre>
|
||||
* function myCloseHander(& $parser,$tagname){}
|
||||
* </pre>
|
||||
* @param string name of open method
|
||||
* @param string name of close method
|
||||
* @access public
|
||||
* @return void
|
||||
* @see set_object
|
||||
*/
|
||||
function set_element_handler($opening_method, $closing_method) {
|
||||
$this->state_parser->handler_object_element =& $this->state_parser->handler_default;
|
||||
$this->state_parser->handler_method_opening = $opening_method;
|
||||
$this->state_parser->handler_method_closing = $closing_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the processing instruction handler method e.g. for PHP open
|
||||
* and close tags<br />
|
||||
* The handler method must accept three arguments; the parser, the
|
||||
* PI target and data inside the PI
|
||||
* <pre>
|
||||
* function myPIHander(& $parser,$target, $data){}
|
||||
* </pre>
|
||||
* @param string name of method
|
||||
* @access public
|
||||
* @return void
|
||||
* @see set_object
|
||||
*/
|
||||
function set_pi_handler($pi_method) {
|
||||
$this->state_parser->handler_object_pi =& $this->state_parser->handler_default;
|
||||
$this->state_parser->handler_method_pi = $pi_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the XML escape handler method e.g. for comments and doctype
|
||||
* declarations<br />
|
||||
* The handler method must accept two arguments; the parser and the
|
||||
* contents of the escaped section
|
||||
* <pre>
|
||||
* function myEscapeHander(& $parser, $data){}
|
||||
* </pre>
|
||||
* @param string name of method
|
||||
* @access public
|
||||
* @return void
|
||||
* @see set_object
|
||||
*/
|
||||
function set_escape_handler($escape_method) {
|
||||
$this->state_parser->handler_object_escape =& $this->state_parser->handler_default;
|
||||
$this->state_parser->handler_method_escape = $escape_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the JSP/ASP markup handler<br />
|
||||
* The handler method must accept two arguments; the parser and
|
||||
* body of the JASP tag
|
||||
* <pre>
|
||||
* function myJaspHander(& $parser, $data){}
|
||||
* </pre>
|
||||
* @param string name of method
|
||||
* @access public
|
||||
* @return void
|
||||
* @see set_object
|
||||
*/
|
||||
function set_jasp_handler ($jasp_method) {
|
||||
$this->state_parser->handler_object_jasp =& $this->state_parser->handler_default;
|
||||
$this->state_parser->handler_method_jasp = $jasp_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current string position of the "cursor" inside the XML
|
||||
* document
|
||||
* <br />Intended for use from within a user defined handler called
|
||||
* via the $parser reference e.g.
|
||||
* <pre>
|
||||
* function myDataHandler(& $parser,$data) {
|
||||
* echo( 'Current position: '.$parser->get_current_position() );
|
||||
* }
|
||||
* </pre>
|
||||
* @access public
|
||||
* @return int
|
||||
* @see get_length
|
||||
*/
|
||||
function get_current_position() {
|
||||
return $this->state_parser->position;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the string length of the XML document being parsed
|
||||
* @access public
|
||||
* @return int
|
||||
*/
|
||||
function get_length() {
|
||||
return $this->state_parser->length;
|
||||
}
|
||||
|
||||
/**
|
||||
* Start parsing some XML
|
||||
* @param string XML document
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function parse($data) {
|
||||
$this->state_parser->parse($data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,363 +0,0 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
//
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/3_0.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Authors: Alexander Zhukov <alex@veresk.ru> Original port from Python |
|
||||
// | Authors: Harry Fuecks <hfuecks@phppatterns.com> Port to PEAR + more |
|
||||
// | Authors: Many @ Sitepointforums Advanced PHP Forums |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: Decorators.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
//
|
||||
/**
|
||||
* Decorators for dealing with parser options
|
||||
* @package XML_HTMLSax3
|
||||
* @version $Id: Decorators.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
* @see XML_HTMLSax3::set_option
|
||||
*/
|
||||
/**
|
||||
* Trims the contents of element data from whitespace at start and end
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Trim {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_Trim
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_Trim(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Trims the data
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function trimData(&$parser, $data) {
|
||||
$data = trim($data);
|
||||
if ($data != '') {
|
||||
$this->orig_obj->{$this->orig_method}($parser, $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Coverts tag names to upper case
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_CaseFolding {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original open handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_open_method;
|
||||
/**
|
||||
* Original close handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_close_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_CaseFolding
|
||||
* @param object handler object being decorated
|
||||
* @param string original open handler method
|
||||
* @param string original close handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_CaseFolding(&$orig_obj, $orig_open_method, $orig_close_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_open_method = $orig_open_method;
|
||||
$this->orig_close_method = $orig_close_method;
|
||||
}
|
||||
/**
|
||||
* Folds up open tag callbacks
|
||||
* @param XML_HTMLSax3
|
||||
* @param string tag name
|
||||
* @param array tag attributes
|
||||
* @access protected
|
||||
*/
|
||||
function foldOpen(&$parser, $tag, $attrs=array(), $empty = FALSE) {
|
||||
$this->orig_obj->{$this->orig_open_method}($parser, strtoupper($tag), $attrs, $empty);
|
||||
}
|
||||
/**
|
||||
* Folds up close tag callbacks
|
||||
* @param XML_HTMLSax3
|
||||
* @param string tag name
|
||||
* @access protected
|
||||
*/
|
||||
function foldClose(&$parser, $tag, $empty = FALSE) {
|
||||
$this->orig_obj->{$this->orig_close_method}($parser, strtoupper($tag), $empty);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Breaks up data by linefeed characters, resulting in additional
|
||||
* calls to the data handler
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Linefeed {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_LineFeed
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_LineFeed(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Breaks the data up by linefeeds
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function breakData(&$parser, $data) {
|
||||
$data = explode("\n",$data);
|
||||
foreach ( $data as $chunk ) {
|
||||
$this->orig_obj->{$this->orig_method}($parser, $chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Breaks up data by tab characters, resulting in additional
|
||||
* calls to the data handler
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Tab {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_Tab
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_Tab(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Breaks the data up by linefeeds
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function breakData(&$parser, $data) {
|
||||
$data = explode("\t",$data);
|
||||
foreach ( $data as $chunk ) {
|
||||
$this->orig_obj->{$this->orig_method}($this, $chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Breaks up data by XML entities and parses them with html_entity_decode(),
|
||||
* resulting in additional calls to the data handler<br />
|
||||
* Requires PHP 4.3.0+
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Entities_Parsed {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_Entities_Parsed
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_Entities_Parsed(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Breaks the data up by XML entities
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function breakData(&$parser, $data) {
|
||||
$data = preg_split('/(&.+?;)/',$data,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||
foreach ( $data as $chunk ) {
|
||||
$chunk = html_entity_decode($chunk,ENT_NOQUOTES);
|
||||
$this->orig_obj->{$this->orig_method}($this, $chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Compatibility with older PHP versions
|
||||
*/
|
||||
if (version_compare(phpversion(), '4.3', '<') && !function_exists('html_entity_decode') ) {
|
||||
function html_entity_decode($str, $style=ENT_NOQUOTES) {
|
||||
return strtr($str,
|
||||
array_flip(get_html_translation_table(HTML_ENTITIES,$style)));
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Breaks up data by XML entities but leaves them unparsed,
|
||||
* resulting in additional calls to the data handler<br />
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Entities_Unparsed {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_Entities_Unparsed
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_Entities_Unparsed(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Breaks the data up by XML entities
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function breakData(&$parser, $data) {
|
||||
$data = preg_split('/(&.+?;)/',$data,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
|
||||
foreach ( $data as $chunk ) {
|
||||
$this->orig_obj->{$this->orig_method}($this, $chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Strips the HTML comment markers or CDATA sections from an escape.
|
||||
* If XML_OPTIONS_FULL_ESCAPES is on, this decorator is not used.<br />
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_Escape_Stripper {
|
||||
/**
|
||||
* Original handler object
|
||||
* @var object
|
||||
* @access private
|
||||
*/
|
||||
var $orig_obj;
|
||||
/**
|
||||
* Original handler method
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $orig_method;
|
||||
/**
|
||||
* Constructs XML_HTMLSax3_Entities_Unparsed
|
||||
* @param object handler object being decorated
|
||||
* @param string original handler method
|
||||
* @access protected
|
||||
*/
|
||||
function XML_HTMLSax3_Escape_Stripper(&$orig_obj, $orig_method) {
|
||||
$this->orig_obj =& $orig_obj;
|
||||
$this->orig_method = $orig_method;
|
||||
}
|
||||
/**
|
||||
* Breaks the data up by XML entities
|
||||
* @param XML_HTMLSax3
|
||||
* @param string element data
|
||||
* @access protected
|
||||
*/
|
||||
function strip(&$parser, $data) {
|
||||
// Check for HTML comments first
|
||||
if ( substr($data,0,2) == '--' ) {
|
||||
$patterns = array(
|
||||
'/^\-\-/', // Opening comment: --
|
||||
'/\-\-$/', // Closing comment: --
|
||||
);
|
||||
$data = preg_replace($patterns,'',$data);
|
||||
|
||||
// Check for XML CDATA sections (note: don't do both!)
|
||||
} else if ( substr($data,0,1) == '[' ) {
|
||||
$patterns = array(
|
||||
'/^\[.*CDATA.*\[/s', // Opening CDATA
|
||||
'/\].*\]$/s', // Closing CDATA
|
||||
);
|
||||
$data = preg_replace($patterns,'',$data);
|
||||
}
|
||||
|
||||
$this->orig_obj->{$this->orig_method}($this, $data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,287 +0,0 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4: */
|
||||
//
|
||||
// +----------------------------------------------------------------------+
|
||||
// | PHP Version 4 |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Copyright (c) 1997-2002 The PHP Group |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | This source file is subject to version 2.02 of the PHP license, |
|
||||
// | that is bundled with this package in the file LICENSE, and is |
|
||||
// | available at through the world-wide-web at |
|
||||
// | http://www.php.net/license/3_0.txt. |
|
||||
// | If you did not receive a copy of the PHP license and are unable to |
|
||||
// | obtain it through the world-wide-web, please send a note to |
|
||||
// | license@php.net so we can mail you a copy immediately. |
|
||||
// +----------------------------------------------------------------------+
|
||||
// | Authors: Alexander Zhukov <alex@veresk.ru> Original port from Python |
|
||||
// | Authors: Harry Fuecks <hfuecks@phppatterns.com> Port to PEAR + more |
|
||||
// | Authors: Many @ Sitepointforums Advanced PHP Forums |
|
||||
// +----------------------------------------------------------------------+
|
||||
//
|
||||
// $Id: States.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
//
|
||||
/**
|
||||
* Parsing states.
|
||||
* @package XML_HTMLSax3
|
||||
* @version $Id: States.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $
|
||||
*/
|
||||
/**
|
||||
* Define parser states
|
||||
*/
|
||||
define('XML_HTMLSAX3_STATE_STOP', 0);
|
||||
define('XML_HTMLSAX3_STATE_START', 1);
|
||||
define('XML_HTMLSAX3_STATE_TAG', 2);
|
||||
define('XML_HTMLSAX3_STATE_OPENING_TAG', 3);
|
||||
define('XML_HTMLSAX3_STATE_CLOSING_TAG', 4);
|
||||
define('XML_HTMLSAX3_STATE_ESCAPE', 6);
|
||||
define('XML_HTMLSAX3_STATE_JASP', 7);
|
||||
define('XML_HTMLSAX3_STATE_PI', 8);
|
||||
/**
|
||||
* StartingState searches for the start of any XML tag
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_StartingState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_TAG
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$data = $context->scanUntilString('<');
|
||||
if ($data != '') {
|
||||
$context->handler_object_data->
|
||||
{$context->handler_method_data}($context->htmlsax, $data);
|
||||
}
|
||||
$context->IgnoreCharacter();
|
||||
return XML_HTMLSAX3_STATE_TAG;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Decides which state to move one from after StartingState
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_TagState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant the next state to move into
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
switch($context->ScanCharacter()) {
|
||||
case '/':
|
||||
return XML_HTMLSAX3_STATE_CLOSING_TAG;
|
||||
break;
|
||||
case '?':
|
||||
return XML_HTMLSAX3_STATE_PI;
|
||||
break;
|
||||
case '%':
|
||||
return XML_HTMLSAX3_STATE_JASP;
|
||||
break;
|
||||
case '!':
|
||||
return XML_HTMLSAX3_STATE_ESCAPE;
|
||||
break;
|
||||
default:
|
||||
$context->unscanCharacter();
|
||||
return XML_HTMLSAX3_STATE_OPENING_TAG;
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Dealing with closing XML tags
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_ClosingTagState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_START
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$tag = $context->scanUntilCharacters('/>');
|
||||
if ($tag != '') {
|
||||
$char = $context->scanCharacter();
|
||||
if ($char == '/') {
|
||||
$char = $context->scanCharacter();
|
||||
if ($char != '>') {
|
||||
$context->unscanCharacter();
|
||||
}
|
||||
}
|
||||
$context->handler_object_element->
|
||||
{$context->handler_method_closing}($context->htmlsax, $tag, FALSE);
|
||||
}
|
||||
return XML_HTMLSAX3_STATE_START;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Dealing with opening XML tags
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_OpeningTagState {
|
||||
/**
|
||||
* Handles attributes
|
||||
* @param string attribute name
|
||||
* @param string attribute value
|
||||
* @return void
|
||||
* @access protected
|
||||
* @see XML_HTMLSax3_AttributeStartState
|
||||
*/
|
||||
function parseAttributes(&$context) {
|
||||
$Attributes = array();
|
||||
|
||||
$context->ignoreWhitespace();
|
||||
$attributename = $context->scanUntilCharacters("=/> \n\r\t");
|
||||
while ($attributename != '') {
|
||||
$attributevalue = NULL;
|
||||
$context->ignoreWhitespace();
|
||||
$char = $context->scanCharacter();
|
||||
if ($char == '=') {
|
||||
$context->ignoreWhitespace();
|
||||
$char = $context->ScanCharacter();
|
||||
if ($char == '"') {
|
||||
$attributevalue= $context->scanUntilString('"');
|
||||
$context->IgnoreCharacter();
|
||||
} else if ($char == "'") {
|
||||
$attributevalue = $context->scanUntilString("'");
|
||||
$context->IgnoreCharacter();
|
||||
} else {
|
||||
$context->unscanCharacter();
|
||||
$attributevalue =
|
||||
$context->scanUntilCharacters("> \n\r\t");
|
||||
}
|
||||
} else if ($char !== NULL) {
|
||||
$attributevalue = NULL;
|
||||
$context->unscanCharacter();
|
||||
}
|
||||
$Attributes[$attributename] = $attributevalue;
|
||||
|
||||
$context->ignoreWhitespace();
|
||||
$attributename = $context->scanUntilCharacters("=/> \n\r\t");
|
||||
}
|
||||
return $Attributes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_START
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$tag = $context->scanUntilCharacters("/> \n\r\t");
|
||||
if ($tag != '') {
|
||||
$this->attrs = array();
|
||||
$Attributes = $this->parseAttributes($context);
|
||||
$char = $context->scanCharacter();
|
||||
if ($char == '/') {
|
||||
$char = $context->scanCharacter();
|
||||
if ($char != '>') {
|
||||
$context->unscanCharacter();
|
||||
}
|
||||
$context->handler_object_element->
|
||||
{$context->handler_method_opening}($context->htmlsax, $tag,
|
||||
$Attributes, TRUE);
|
||||
$context->handler_object_element->
|
||||
{$context->handler_method_closing}($context->htmlsax, $tag,
|
||||
TRUE);
|
||||
} else {
|
||||
$context->handler_object_element->
|
||||
{$context->handler_method_opening}($context->htmlsax, $tag,
|
||||
$Attributes, FALSE);
|
||||
}
|
||||
}
|
||||
return XML_HTMLSAX3_STATE_START;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deals with XML escapes handling comments and CDATA correctly
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_EscapeState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_START
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$char = $context->ScanCharacter();
|
||||
if ($char == '-') {
|
||||
$char = $context->ScanCharacter();
|
||||
if ($char == '-') {
|
||||
$context->unscanCharacter();
|
||||
$context->unscanCharacter();
|
||||
$text = $context->scanUntilString('-->');
|
||||
$text .= $context->scanCharacter();
|
||||
$text .= $context->scanCharacter();
|
||||
} else {
|
||||
$context->unscanCharacter();
|
||||
$text = $context->scanUntilString('>');
|
||||
}
|
||||
} else if ( $char == '[') {
|
||||
$context->unscanCharacter();
|
||||
$text = $context->scanUntilString(']>');
|
||||
$text.= $context->scanCharacter();
|
||||
} else {
|
||||
$context->unscanCharacter();
|
||||
$text = $context->scanUntilString('>');
|
||||
}
|
||||
|
||||
$context->IgnoreCharacter();
|
||||
if ($text != '') {
|
||||
$context->handler_object_escape->
|
||||
{$context->handler_method_escape}($context->htmlsax, $text);
|
||||
}
|
||||
return XML_HTMLSAX3_STATE_START;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deals with JASP/ASP markup
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_JaspState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_START
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$text = $context->scanUntilString('%>');
|
||||
if ($text != '') {
|
||||
$context->handler_object_jasp->
|
||||
{$context->handler_method_jasp}($context->htmlsax, $text);
|
||||
}
|
||||
$context->IgnoreCharacter();
|
||||
$context->IgnoreCharacter();
|
||||
return XML_HTMLSAX3_STATE_START;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Deals with XML processing instructions
|
||||
* @package XML_HTMLSax3
|
||||
* @access protected
|
||||
*/
|
||||
class XML_HTMLSax3_PiState {
|
||||
/**
|
||||
* @param XML_HTMLSax3_StateParser subclass
|
||||
* @return constant XML_HTMLSAX3_STATE_START
|
||||
* @access protected
|
||||
*/
|
||||
function parse(&$context) {
|
||||
$target = $context->scanUntilCharacters(" \n\r\t");
|
||||
$data = $context->scanUntilString('?>');
|
||||
if ($data != '') {
|
||||
$context->handler_object_pi->
|
||||
{$context->handler_method_pi}($context->htmlsax, $target, $data);
|
||||
}
|
||||
$context->IgnoreCharacter();
|
||||
$context->IgnoreCharacter();
|
||||
return XML_HTMLSAX3_STATE_START;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -1,671 +0,0 @@
|
||||
<?php
|
||||
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
|
||||
|
||||
/**
|
||||
* SafeHTML Parser
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
*
|
||||
* @category HTML
|
||||
* @package SafeHTML
|
||||
* @author Roman Ivanov <thingol@mail.ru>
|
||||
* @copyright 2004-2005 Roman Ivanov
|
||||
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
||||
* @version 1.3.7
|
||||
* @link http://pixel-apes.com/safehtml/
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* This package requires HTMLSax3 package
|
||||
*/
|
||||
define("XML_HTMLSAX3", '');
|
||||
require_once(XML_HTMLSAX3 . 'HTMLSax3.php');
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* SafeHTML Parser
|
||||
*
|
||||
* This parser strips down all potentially dangerous content within HTML:
|
||||
* <ul>
|
||||
* <li>opening tag without its closing tag</li>
|
||||
* <li>closing tag without its opening tag</li>
|
||||
* <li>any of these tags: "base", "basefont", "head", "html", "body", "applet",
|
||||
* "object", "iframe", "frame", "frameset", "script", "layer", "ilayer", "embed",
|
||||
* "bgsound", "link", "meta", "style", "title", "blink", "xml" etc.</li>
|
||||
* <li>any of these attributes: on*, data*, dynsrc</li>
|
||||
* <li>javascript:/vbscript:/about: etc. protocols</li>
|
||||
* <li>expression/behavior etc. in styles</li>
|
||||
* <li>any other active content</li>
|
||||
* </ul>
|
||||
* It also tries to convert code to XHTML valid, but htmltidy is far better
|
||||
* solution for this task.
|
||||
*
|
||||
* <b>Example:</b>
|
||||
* <pre>
|
||||
* $parser =& new SafeHTML();
|
||||
* $result = $parser->parse($doc);
|
||||
* </pre>
|
||||
*
|
||||
* @category HTML
|
||||
* @package SafeHTML
|
||||
* @author Roman Ivanov <thingol@mail.ru>
|
||||
* @copyright 1997-2005 Roman Ivanov
|
||||
* @license http://www.debian.org/misc/bsd.license BSD License (3 Clause)
|
||||
* @version Release: @package_version@
|
||||
* @link http://pear.php.net/package/SafeHTML
|
||||
*/
|
||||
class SafeHTML
|
||||
{
|
||||
/**
|
||||
* Storage for resulting HTML output
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $_xhtml = '';
|
||||
|
||||
/**
|
||||
* Array of counters for each tag
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_counter = array();
|
||||
|
||||
/**
|
||||
* Stack of unclosed tags
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_stack = array();
|
||||
|
||||
/**
|
||||
* Array of counters for tags that must be deleted with all content
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_dcCounter = array();
|
||||
|
||||
/**
|
||||
* Stack of unclosed tags that must be deleted with all content
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_dcStack = array();
|
||||
|
||||
/**
|
||||
* Stores level of list (ol/ul) nesting
|
||||
*
|
||||
* @var int
|
||||
* @access private
|
||||
*/
|
||||
var $_listScope = 0;
|
||||
|
||||
/**
|
||||
* Stack of unclosed list tags
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_liStack = array();
|
||||
|
||||
/**
|
||||
* Array of prepared regular expressions for protocols (schemas) matching
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_protoRegexps = array();
|
||||
|
||||
/**
|
||||
* Array of prepared regular expressions for CSS matching
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_cssRegexps = array();
|
||||
|
||||
/**
|
||||
* List of single tags ("<tag />")
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $singleTags = array('area', 'br', 'img', 'input', 'hr', 'wbr', );
|
||||
|
||||
/**
|
||||
* List of dangerous tags (such tags will be deleted)
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $deleteTags = array(
|
||||
'applet', 'base', 'basefont', 'bgsound', 'blink', 'body',
|
||||
'embed', 'frame', 'frameset', 'head', 'html', 'ilayer',
|
||||
'iframe', 'layer', 'link', 'meta', 'object', 'style',
|
||||
'title', 'script',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of dangerous tags (such tags will be deleted, and all content
|
||||
* inside this tags will be also removed)
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $deleteTagsContent = array('script', 'style', 'title', 'xml', );
|
||||
|
||||
/**
|
||||
* Type of protocols filtering ('white' or 'black')
|
||||
*
|
||||
* @var string
|
||||
* @access public
|
||||
*/
|
||||
var $protocolFiltering = 'white';
|
||||
|
||||
/**
|
||||
* List of "dangerous" protocols (used for blacklist-filtering)
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $blackProtocols = array(
|
||||
'about', 'chrome', 'data', 'disk', 'hcp',
|
||||
'help', 'javascript', 'livescript', 'lynxcgi', 'lynxexec',
|
||||
'ms-help', 'ms-its', 'mhtml', 'mocha', 'opera',
|
||||
'res', 'resource', 'shell', 'vbscript', 'view-source',
|
||||
'vnd.ms.radio', 'wysiwyg',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of "safe" protocols (used for whitelist-filtering)
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $whiteProtocols = array(
|
||||
'ed2k', 'file', 'ftp', 'gopher', 'http', 'https',
|
||||
'irc', 'mailto', 'news', 'nntp', 'telnet', 'webcal',
|
||||
'xmpp', 'callto',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of attributes that can contain protocols
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $protocolAttributes = array(
|
||||
'action', 'background', 'codebase', 'dynsrc', 'href', 'lowsrc', 'src',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of dangerous CSS keywords
|
||||
*
|
||||
* Whole style="" attribute will be removed, if parser will find one of
|
||||
* these keywords
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $cssKeywords = array(
|
||||
'absolute', 'behavior', 'behaviour', 'content', 'expression',
|
||||
'fixed', 'include-source', 'moz-binding',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of tags that can have no "closing tag"
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
* @deprecated XHTML does not allow such tags
|
||||
*/
|
||||
var $noClose = array();
|
||||
|
||||
/**
|
||||
* List of block-level tags that terminates paragraph
|
||||
*
|
||||
* Paragraph will be closed when this tags opened
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $closeParagraph = array(
|
||||
'address', 'blockquote', 'center', 'dd', 'dir', 'div',
|
||||
'dl', 'dt', 'h1', 'h2', 'h3', 'h4',
|
||||
'h5', 'h6', 'hr', 'isindex', 'listing', 'marquee',
|
||||
'menu', 'multicol', 'ol', 'p', 'plaintext', 'pre',
|
||||
'table', 'ul', 'xmp',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of table tags, all table tags outside a table will be removed
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $tableTags = array(
|
||||
'caption', 'col', 'colgroup', 'tbody', 'td', 'tfoot', 'th',
|
||||
'thead', 'tr',
|
||||
);
|
||||
|
||||
/**
|
||||
* List of list tags
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $listTags = array('dir', 'menu', 'ol', 'ul', 'dl', );
|
||||
|
||||
/**
|
||||
* List of dangerous attributes
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $attributes = array('dynsrc', 'id', 'name', );
|
||||
|
||||
/**
|
||||
* List of allowed "namespaced" attributes
|
||||
*
|
||||
* @var array
|
||||
* @access public
|
||||
*/
|
||||
var $attributesNS = array('xml:lang', );
|
||||
|
||||
/**
|
||||
* Constructs class
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
function SafeHTML()
|
||||
{
|
||||
//making regular expressions based on Proto & CSS arrays
|
||||
foreach ($this->blackProtocols as $proto) {
|
||||
$preg = "/[\s\x01-\x1F]*";
|
||||
for ($i=0; $i<strlen($proto); $i++) {
|
||||
$preg .= $proto{$i} . "[\s\x01-\x1F]*";
|
||||
}
|
||||
$preg .= ":/i";
|
||||
$this->_protoRegexps[] = $preg;
|
||||
}
|
||||
|
||||
foreach ($this->cssKeywords as $css) {
|
||||
$this->_cssRegexps[] = '/' . $css . '/i';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the writing of attributes - called from $this->_openHandler()
|
||||
*
|
||||
* @param array $attrs array of attributes $name => $value
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _writeAttrs ($attrs)
|
||||
{
|
||||
if (is_array($attrs)) {
|
||||
foreach ($attrs as $name => $value) {
|
||||
|
||||
$name = strtolower($name);
|
||||
|
||||
if (strpos($name, 'on') === 0) {
|
||||
continue;
|
||||
}
|
||||
if (strpos($name, 'data') === 0) {
|
||||
continue;
|
||||
}
|
||||
if (in_array($name, $this->attributes)) {
|
||||
continue;
|
||||
}
|
||||
if (!preg_match("/^[a-z0-9]+$/i", $name)) {
|
||||
if (!in_array($name, $this->attributesNS))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (($value === TRUE) || (is_null($value))) {
|
||||
$value = $name;
|
||||
}
|
||||
|
||||
if ($name == 'style') {
|
||||
|
||||
// removes insignificant backslahes
|
||||
$value = str_replace("\\", '', $value);
|
||||
|
||||
// removes CSS comments
|
||||
while (1)
|
||||
{
|
||||
$_value = preg_replace("!/\*.*?\*/!s", '', $value);
|
||||
if ($_value == $value) break;
|
||||
$value = $_value;
|
||||
}
|
||||
|
||||
// replace all & to &
|
||||
$value = str_replace('&', '&', $value);
|
||||
$value = str_replace('&', '&', $value);
|
||||
|
||||
foreach ($this->_cssRegexps as $css) {
|
||||
if (preg_match($css, $value)) {
|
||||
continue 2;
|
||||
}
|
||||
}
|
||||
foreach ($this->_protoRegexps as $proto) {
|
||||
if (preg_match($proto, $value)) {
|
||||
continue 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tempval = preg_replace('/&#(\d+);?/me', "chr('\\1')", $value); //"'
|
||||
$tempval = preg_replace('/&#x([0-9a-f]+);?/mei', "chr(hexdec('\\1'))", $tempval);
|
||||
|
||||
if ((in_array($name, $this->protocolAttributes)) &&
|
||||
(strpos($tempval, ':') !== false))
|
||||
{
|
||||
if ($this->protocolFiltering == 'black') {
|
||||
foreach ($this->_protoRegexps as $proto) {
|
||||
if (preg_match($proto, $tempval)) continue 2;
|
||||
}
|
||||
} else {
|
||||
$_tempval = explode(':', $tempval);
|
||||
$proto = $_tempval[0];
|
||||
if (!in_array($proto, $this->whiteProtocols)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$value = str_replace("\"", """, $value);
|
||||
$this->_xhtml .= ' ' . $name . '="' . $value . '"';
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Opening tag handler - called from HTMLSax
|
||||
*
|
||||
* @param object $parser HTML Parser
|
||||
* @param string $name tag name
|
||||
* @param array $attrs tag attributes
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _openHandler(&$parser, $name, $attrs)
|
||||
{
|
||||
$name = strtolower($name);
|
||||
|
||||
if (in_array($name, $this->deleteTagsContent)) {
|
||||
array_push($this->_dcStack, $name);
|
||||
$this->_dcCounter[$name] = isset($this->_dcCounter[$name]) ? $this->_dcCounter[$name]+1 : 1;
|
||||
}
|
||||
if (count($this->_dcStack) != 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (in_array($name, $this->deleteTags)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!preg_match("/^[a-z0-9]+$/i", $name)) {
|
||||
if (preg_match("!(?:\@|://)!i", $name)) {
|
||||
$this->_xhtml .= '<' . $name . '>';
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (in_array($name, $this->singleTags)) {
|
||||
$this->_xhtml .= '<' . $name;
|
||||
$this->_writeAttrs($attrs);
|
||||
$this->_xhtml .= ' />';
|
||||
return true;
|
||||
}
|
||||
|
||||
// TABLES: cannot open table elements when we are not inside table
|
||||
if ((isset($this->_counter['table'])) && ($this->_counter['table'] <= 0)
|
||||
&& (in_array($name, $this->tableTags)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// PARAGRAPHS: close paragraph when closeParagraph tags opening
|
||||
if ((in_array($name, $this->closeParagraph)) && (in_array('p', $this->_stack))) {
|
||||
$this->_closeHandler($parser, 'p');
|
||||
}
|
||||
|
||||
// LISTS: we should close <li> if <li> of the same level opening
|
||||
if ($name == 'li' && count($this->_liStack) &&
|
||||
$this->_listScope == $this->_liStack[count($this->_liStack)-1])
|
||||
{
|
||||
$this->_closeHandler($parser, 'li');
|
||||
}
|
||||
|
||||
// LISTS: we want to know on what nesting level of lists we are
|
||||
if (in_array($name, $this->listTags)) {
|
||||
$this->_listScope++;
|
||||
}
|
||||
if ($name == 'li') {
|
||||
array_push($this->_liStack, $this->_listScope);
|
||||
}
|
||||
|
||||
$this->_xhtml .= '<' . $name;
|
||||
$this->_writeAttrs($attrs);
|
||||
$this->_xhtml .= '>';
|
||||
array_push($this->_stack,$name);
|
||||
$this->_counter[$name] = isset($this->_counter[$name]) ? $this->_counter[$name]+1 : 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Closing tag handler - called from HTMLSax
|
||||
*
|
||||
* @param object $parsers HTML parser
|
||||
* @param string $name tag name
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _closeHandler(&$parser, $name)
|
||||
{
|
||||
|
||||
$name = strtolower($name);
|
||||
|
||||
if (isset($this->_dcCounter[$name]) && ($this->_dcCounter[$name] > 0) &&
|
||||
(in_array($name, $this->deleteTagsContent)))
|
||||
{
|
||||
while ($name != ($tag = array_pop($this->_dcStack))) {
|
||||
$this->_dcCounter[$tag]--;
|
||||
}
|
||||
|
||||
$this->_dcCounter[$name]--;
|
||||
}
|
||||
|
||||
if (count($this->_dcStack) != 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ((isset($this->_counter[$name])) && ($this->_counter[$name] > 0)) {
|
||||
while ($name != ($tag = array_pop($this->_stack))) {
|
||||
$this->_closeTag($tag);
|
||||
}
|
||||
|
||||
$this->_closeTag($name);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes tag
|
||||
*
|
||||
* @param string $tag tag name
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _closeTag($tag)
|
||||
{
|
||||
if (!in_array($tag, $this->noClose)) {
|
||||
$this->_xhtml .= '</' . $tag . '>';
|
||||
}
|
||||
|
||||
$this->_counter[$tag]--;
|
||||
|
||||
if (in_array($tag, $this->listTags)) {
|
||||
$this->_listScope--;
|
||||
}
|
||||
|
||||
if ($tag == 'li') {
|
||||
array_pop($this->_liStack);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Character data handler - called from HTMLSax
|
||||
*
|
||||
* @param object $parser HTML parser
|
||||
* @param string $data textual data
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _dataHandler(&$parser, $data)
|
||||
{
|
||||
if (count($this->_dcStack) == 0) {
|
||||
$this->_xhtml .= $data;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape handler - called from HTMLSax
|
||||
*
|
||||
* @param object $parser HTML parser
|
||||
* @param string $data comments or other type of data
|
||||
* @return boolean
|
||||
* @access private
|
||||
*/
|
||||
function _escapeHandler(&$parser, $data)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the XHTML document
|
||||
*
|
||||
* @return string Processed (X)HTML document
|
||||
* @access public
|
||||
*/
|
||||
function getXHTML ()
|
||||
{
|
||||
while ($tag = array_pop($this->_stack)) {
|
||||
$this->_closeTag($tag);
|
||||
}
|
||||
|
||||
return $this->_xhtml;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears current document data
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function clear()
|
||||
{
|
||||
$this->_xhtml = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Main parsing fuction
|
||||
*
|
||||
* @param string $doc HTML document for processing
|
||||
* @return string Processed (X)HTML document
|
||||
* @access public
|
||||
*/
|
||||
function parse($doc)
|
||||
{
|
||||
|
||||
// Save all '<' symbols
|
||||
$doc = preg_replace("/<(?=[^a-zA-Z\/\!\?\%])/", '<', $doc);
|
||||
|
||||
// Web documents shouldn't contains \x00 symbol
|
||||
$doc = str_replace("\x00", '', $doc);
|
||||
|
||||
// Opera6 bug workaround
|
||||
$doc = str_replace("\xC0\xBC", '<', $doc);
|
||||
|
||||
// UTF-7 encoding ASCII decode
|
||||
$doc = $this->repackUTF7($doc);
|
||||
|
||||
// Instantiate the parser
|
||||
$parser= new XML_HTMLSax3();
|
||||
|
||||
// Set up the parser
|
||||
$parser->set_object($this);
|
||||
|
||||
$parser->set_element_handler('_openHandler','_closeHandler');
|
||||
$parser->set_data_handler('_dataHandler');
|
||||
$parser->set_escape_handler('_escapeHandler');
|
||||
|
||||
$parser->parse($doc);
|
||||
|
||||
return $this->getXHTML();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* UTF-7 decoding fuction
|
||||
*
|
||||
* @param string $str HTML document for recode ASCII part of UTF-7 back to ASCII
|
||||
* @return string Decoded document
|
||||
* @access private
|
||||
*/
|
||||
function repackUTF7($str)
|
||||
{
|
||||
return preg_replace_callback('!\+([0-9a-zA-Z/]+)\-!', array($this, 'repackUTF7Callback'), $str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Additional UTF-7 decoding fuction
|
||||
*
|
||||
* @param string $str String for recode ASCII part of UTF-7 back to ASCII
|
||||
* @return string Recoded string
|
||||
* @access private
|
||||
*/
|
||||
function repackUTF7Callback($str)
|
||||
{
|
||||
$str = base64_decode($str[1]);
|
||||
$str = preg_replace_callback('/^((?:\x00.)*)((?:[^\x00].)+)/', array($this, 'repackUTF7Back'), $str);
|
||||
return preg_replace('/\x00(.)/', '$1', $str);
|
||||
}
|
||||
|
||||
/**
|
||||
* Additional UTF-7 encoding fuction
|
||||
*
|
||||
* @param string $str String for recode ASCII part of UTF-7 back to ASCII
|
||||
* @return string Recoded string
|
||||
* @access private
|
||||
*/
|
||||
function repackUTF7Back($str)
|
||||
{
|
||||
return $str[1].'+'.rtrim(base64_encode($str[2]), '=').'-';
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
* c-basic-offset: 4
|
||||
* c-hanging-comment-ender-p: nil
|
||||
* End:
|
||||
*/
|
||||
|
||||
?>
|
||||
@@ -510,7 +510,7 @@ class statistik extends basis_db
|
||||
$this->html='';
|
||||
$this->csv='';
|
||||
$this->json=array();
|
||||
set_time_limit(60);
|
||||
set_time_limit(120);
|
||||
|
||||
if($this->sql!='')
|
||||
{
|
||||
|
||||
@@ -571,7 +571,7 @@ class student extends benutzer
|
||||
{
|
||||
$qry = "SELECT tbl_student.* FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid)
|
||||
WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($studiengang_kz != '')
|
||||
{
|
||||
$qry .= " AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
|
||||
@@ -53,6 +53,9 @@ class studiengang extends basis_db
|
||||
public $studienplaetze; // smallint
|
||||
public $oe_kurzbz; // varchar(32)
|
||||
public $onlinebewerbung; // boolean
|
||||
public $melderelevant; // boolean
|
||||
public $foerderrelevant; // boolean
|
||||
public $standort_code; // integer
|
||||
|
||||
public $kuerzel; // = typ + kurzbz (Bsp: BBE)
|
||||
public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz
|
||||
@@ -128,6 +131,9 @@ class studiengang extends basis_db
|
||||
$this->moodle = $this->db_parse_bool($row->moodle);
|
||||
$this->mischform = $this->db_parse_bool($row->mischform);
|
||||
$this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$this->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$this->standort_code = $row->standort_code;
|
||||
|
||||
$this->bezeichnung_arr['German'] = $this->bezeichnung;
|
||||
$this->bezeichnung_arr['English'] = $this->english;
|
||||
@@ -201,6 +207,9 @@ class studiengang extends basis_db
|
||||
$stg_obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$stg_obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$stg_obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$stg_obj->standort_code = $row->standort_code;
|
||||
|
||||
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$stg_obj->bezeichnung_arr['English'] = $row->english;
|
||||
@@ -419,6 +428,9 @@ class studiengang extends basis_db
|
||||
$stg_obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$stg_obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$stg_obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$stg_obj->standort_code = $row->standort_code;
|
||||
|
||||
$stg_obj->bezeichnung_arr['German'] = $row->bezeichnung;
|
||||
$stg_obj->bezeichnung_arr['English'] = $row->english;
|
||||
@@ -488,7 +500,8 @@ class studiengang extends basis_db
|
||||
$qry = 'INSERT INTO public.tbl_studiengang (studiengang_kz, kurzbz, kurzbzlang, bezeichnung, english,
|
||||
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
|
||||
bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html,
|
||||
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige) VALUES ('.
|
||||
oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige,
|
||||
melderelevant, foerderrelevant, standort_code) VALUES ('.
|
||||
$this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->kurzbz).', '.
|
||||
$this->db_add_param($this->kurzbzlang).', '.
|
||||
@@ -519,7 +532,10 @@ class studiengang extends basis_db
|
||||
$this->db_add_param($this->studienplaetze).', '.
|
||||
$this->db_add_param($this->lgartcode).', '.
|
||||
$this->db_add_param($this->mischform, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->projektarbeit_note_anzeige, FHC_BOOLEAN).');';
|
||||
$this->db_add_param($this->projektarbeit_note_anzeige, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->melderelevant, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->standort_code).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -556,7 +572,10 @@ class studiengang extends basis_db
|
||||
'testtool_sprachwahl='.$this->db_add_param($this->testtool_sprachwahl, FHC_BOOLEAN).', '.
|
||||
'studienplaetze='.$this->db_add_param($this->studienplaetze).', '.
|
||||
'lgartcode='.$this->db_add_param($this->lgartcode).', '.
|
||||
'mischform='.$this->db_add_param($this->mischform, FHC_BOOLEAN).' '.
|
||||
'mischform='.$this->db_add_param($this->mischform, FHC_BOOLEAN).', '.
|
||||
'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '.
|
||||
'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '.
|
||||
'standort_code='.$this->db_add_param($this->standort_code).' '.
|
||||
'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
@@ -679,6 +698,9 @@ class studiengang extends basis_db
|
||||
$this->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
|
||||
$this->moodle = $this->db_parse_bool($row->moodle);
|
||||
$this->mischform = $this->db_parse_bool($row->mischform);
|
||||
$this->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$this->standort_code = $row->standort_code;
|
||||
$this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
|
||||
$this->bezeichnung_arr['German'] = $this->bezeichnung;
|
||||
@@ -819,6 +841,9 @@ class studiengang extends basis_db
|
||||
$obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
|
||||
$this->result[] = $obj;
|
||||
@@ -891,6 +916,9 @@ class studiengang extends basis_db
|
||||
$obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
@@ -993,6 +1021,9 @@ class studiengang extends basis_db
|
||||
$obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
@@ -1073,7 +1104,7 @@ class studiengang extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Studiengänge die vom übergeben Typ sind
|
||||
* @param string $typ
|
||||
@@ -1088,13 +1119,13 @@ class studiengang extends basis_db
|
||||
tbl_studiengang.typ=".$this->db_add_param($typ)."
|
||||
ORDER BY
|
||||
kurzbz";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new studiengang();
|
||||
|
||||
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->kurzbzlang = $row->kurzbzlang;
|
||||
@@ -1127,10 +1158,13 @@ class studiengang extends basis_db
|
||||
$obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
|
||||
$obj->melderelevant = $this->db_parse_bool($row->melderelevant);
|
||||
$obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant);
|
||||
$obj->standort_code = $row->standort_code;
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -190,6 +190,7 @@ $menu=array
|
||||
'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')),
|
||||
'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('lehre/lehrveranstaltung')),
|
||||
'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),
|
||||
'gemeindeupdate'=>array('name'=>'Gemeinden aktualisieren', 'link'=>'stammdaten/set_gemeinde.php', 'target'=>'main','permissions'=>array('basis/gemeinde')),
|
||||
),
|
||||
'Auswertung'=> array
|
||||
(
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
$this->phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='Studiensemester ist ungueltig';
|
||||
$this->phrasen['anwesenheitsliste/anwesenheitslisten']='Anwesenheitslisten';
|
||||
$this->phrasen['anwesenheitsliste/covidstatuslisten']='Nachweislisten';
|
||||
$this->phrasen['anwesenheitsliste/notenlisten']='Notenlisten';
|
||||
$this->phrasen['anwesenheitsliste/notenliste']='Notenliste';
|
||||
$this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='Fotolisten';
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
$this->phrasen['lehre/keineLektorenZugeordnet']='Derzeit sind keine Lektoren für dieses Fach zugeteilt';
|
||||
|
||||
$this->phrasen['lehre/lehrveranstaltungsinformation']='Lehrveranstaltungsinformation';
|
||||
$this->phrasen['lehre/lehrbeauftragter']='Lehrbeauftragte(r)';
|
||||
$this->phrasen['lehre/lehrbeauftragter']='Lehrbeauftragte*r';
|
||||
$this->phrasen['lehre/lvleitung']='LV-Leiter*in';
|
||||
$this->phrasen['lehre/lvInfoBearbeiten']='Bearbeiten';
|
||||
|
||||
$this->phrasen['lehre/semesterplan']='Semesterplan';
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
$this->phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='No valid semester';
|
||||
$this->phrasen['anwesenheitsliste/anwesenheitslisten']='Attendance lists';
|
||||
$this->phrasen['anwesenheitsliste/covidstatuslisten']='verification lists';
|
||||
$this->phrasen['anwesenheitsliste/notenlisten']='Grade lists';
|
||||
$this->phrasen['anwesenheitsliste/notenliste']='Grade list';
|
||||
$this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='Picture lists';
|
||||
|
||||
@@ -3,6 +3,7 @@ $this->phrasen['lehre/keineLektorenZugeordnet']='Currently there are no lecturer
|
||||
|
||||
$this->phrasen['lehre/lehrveranstaltungsinformation']='Course Information';
|
||||
$this->phrasen['lehre/lehrbeauftragter']='Lecturer(s)';
|
||||
$this->phrasen['lehre/lvleitung']='Head of Course';
|
||||
$this->phrasen['lehre/lvInfoBearbeiten']='Edit';
|
||||
|
||||
$this->phrasen['lehre/semesterplan']='Semesterplan';
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
.drag-and-drop-fields-span {
|
||||
border: 1px solid black;
|
||||
border-radius: 7px;
|
||||
/*margin-left: 3px;*/
|
||||
margin-right: 6px;
|
||||
margin-bottom: 10px;
|
||||
padding: 5px 10px;
|
||||
@@ -130,7 +129,20 @@
|
||||
color: green;
|
||||
}
|
||||
|
||||
#dragAndDropFieldsArea
|
||||
{
|
||||
#dragAndDropFieldsArea {
|
||||
display: inline-table !important;
|
||||
}
|
||||
|
||||
.margin-left-25 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
|
||||
.up-down-border {
|
||||
border-top-width: 1px;
|
||||
border-top-color: #ddd;
|
||||
border-top-style: solid;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-color: #ddd;
|
||||
border-bottom-style: solid;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
.inline-inputfield {
|
||||
width: auto;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.fa-edit {
|
||||
cursor: pointer;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
|
||||
.fa-check {
|
||||
cursor: pointer;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
.datasetActionsTopBottomText {
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.datasetActionsHorizontalLine {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
+103
-81
@@ -5,7 +5,7 @@
|
||||
* @author
|
||||
* @copyright Copyright (c) 2016 fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link https://fhcomplete.org
|
||||
* @link https://fhcomplete.org
|
||||
* @since Version 1.0.0
|
||||
*/
|
||||
|
||||
@@ -54,7 +54,7 @@ var FHC_AjaxClient = {
|
||||
* ajaxCallParameters is an object
|
||||
*/
|
||||
ajaxCallGet: function(remoteController, controllerParameters, ajaxCallParameters) {
|
||||
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_GET_METHOD, ajaxCallParameters);
|
||||
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_GET_METHOD, ajaxCallParameters);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -63,7 +63,7 @@ var FHC_AjaxClient = {
|
||||
* ajaxCallParameters is an object
|
||||
*/
|
||||
ajaxCallPost: function(remoteController, controllerParameters, ajaxCallParameters) {
|
||||
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_POST_METHOD, ajaxCallParameters);
|
||||
FHC_AjaxClient._ajaxCall(remoteController, controllerParameters, HTTP_POST_METHOD, ajaxCallParameters);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -72,13 +72,13 @@ var FHC_AjaxClient = {
|
||||
isSuccess: function(response) {
|
||||
var isSuccess = false;
|
||||
|
||||
if (jQuery.type(response) == "object" && response.hasOwnProperty(CODE) && response.hasOwnProperty(RESPONSE))
|
||||
{
|
||||
if (response.error == SUCCESS)
|
||||
{
|
||||
isSuccess = true;
|
||||
}
|
||||
}
|
||||
if (jQuery.type(response) == "object" && response.hasOwnProperty(CODE) && response.hasOwnProperty(RESPONSE))
|
||||
{
|
||||
if (response.error == SUCCESS)
|
||||
{
|
||||
isSuccess = true;
|
||||
}
|
||||
}
|
||||
|
||||
return isSuccess;
|
||||
},
|
||||
@@ -96,8 +96,8 @@ var FHC_AjaxClient = {
|
||||
hasData: function(response) {
|
||||
var hasData = false;
|
||||
|
||||
if (FHC_AjaxClient.isSuccess(response))
|
||||
{
|
||||
if (FHC_AjaxClient.isSuccess(response))
|
||||
{
|
||||
if ((jQuery.type(response.retval) == "object" && !jQuery.isEmptyObject(response.retval))
|
||||
|| (jQuery.isArray(response.retval) && response.retval.length > 0)
|
||||
|| (jQuery.type(response.retval) == "string" && response.retval.trim() != "")
|
||||
@@ -105,7 +105,7 @@ var FHC_AjaxClient = {
|
||||
{
|
||||
hasData = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return hasData;
|
||||
},
|
||||
@@ -116,10 +116,10 @@ var FHC_AjaxClient = {
|
||||
getData: function(response) {
|
||||
var data = null;
|
||||
|
||||
if (FHC_AjaxClient.hasData(response))
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(response))
|
||||
{
|
||||
data = response.retval;
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
},
|
||||
@@ -130,10 +130,10 @@ var FHC_AjaxClient = {
|
||||
getError: function(response) {
|
||||
var error = "Generic error";
|
||||
|
||||
if (jQuery.type(response) == "object" && !jQuery.isEmptyObject(response) && response.hasOwnProperty(RESPONSE))
|
||||
{
|
||||
if (jQuery.type(response) == "object" && !jQuery.isEmptyObject(response) && response.hasOwnProperty(RESPONSE))
|
||||
{
|
||||
error = response.retval;
|
||||
}
|
||||
}
|
||||
|
||||
return error;
|
||||
},
|
||||
@@ -145,9 +145,9 @@ var FHC_AjaxClient = {
|
||||
var code = 1; // Generic error
|
||||
|
||||
if (jQuery.type(response) == "object" && response.hasOwnProperty(CODE))
|
||||
{
|
||||
code = response.error;
|
||||
}
|
||||
{
|
||||
code = response.error;
|
||||
}
|
||||
|
||||
return code;
|
||||
},
|
||||
@@ -178,20 +178,20 @@ var FHC_AjaxClient = {
|
||||
* Retrives parameters from URL query string (HTTP GET parameters)
|
||||
*/
|
||||
getUrlParameter: function(sParam) {
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split("&"),
|
||||
sParameterName,
|
||||
i;
|
||||
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
|
||||
sURLVariables = sPageURL.split("&"),
|
||||
sParameterName,
|
||||
i;
|
||||
|
||||
for (var i = 0; i < sURLVariables.length; i++)
|
||||
for (var i = 0; i < sURLVariables.length; i++)
|
||||
{
|
||||
sParameterName = sURLVariables[i].split("=");
|
||||
sParameterName = sURLVariables[i].split("=");
|
||||
|
||||
if (sParameterName[0] === sParam)
|
||||
if (sParameterName[0] === sParam)
|
||||
{
|
||||
return sParameterName[1];
|
||||
}
|
||||
}
|
||||
return sParameterName[1];
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
@@ -259,7 +259,7 @@ var FHC_AjaxClient = {
|
||||
|
||||
// Call the error callback saved in _errorCallback property
|
||||
// NOTE: this is not referred to FHC_AjaxClient but to the ajax object
|
||||
this._errorCallback(jqXHR, textStatus, errorThrown);
|
||||
this._errorCallback(jqXHR, textStatus, errorThrown);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -279,6 +279,14 @@ var FHC_AjaxClient = {
|
||||
}
|
||||
|
||||
FHC_AjaxClient._hideVeil(); // finally hide the veil
|
||||
|
||||
// If was required a page reload then do it!
|
||||
if (this._reloadPage === true)
|
||||
{
|
||||
// NOTE: to avoid any conflict with other ajaxs calls
|
||||
// Otherwise some browsers (eg. firefox) can prompt an error
|
||||
$(document).ajaxStop(function() { location.reload(); });
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -336,14 +344,14 @@ var FHC_AjaxClient = {
|
||||
* Instantiate a new object and copy in it the properties from the parameter
|
||||
*/
|
||||
_cpObjProps: function(obj) {
|
||||
var returnObj = {};
|
||||
var returnObj = {};
|
||||
|
||||
for (var prop in obj)
|
||||
{
|
||||
returnObj[prop] = obj[prop];
|
||||
}
|
||||
for (var prop in obj)
|
||||
{
|
||||
returnObj[prop] = obj[prop];
|
||||
}
|
||||
|
||||
return returnObj;
|
||||
return returnObj;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -384,9 +392,9 @@ var FHC_AjaxClient = {
|
||||
*
|
||||
* @param controllerParameters
|
||||
* Example: {
|
||||
* name1: value,
|
||||
* name2: value,
|
||||
* files: $(selector)[0].files --> this is the FileList
|
||||
* name1: value,
|
||||
* name2: value,
|
||||
* files: $(selector)[0].files --> this is the FileList
|
||||
* }
|
||||
* @returns {boolean}
|
||||
* @private
|
||||
@@ -402,10 +410,6 @@ var FHC_AjaxClient = {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/*
|
||||
return Object.values(controllerParameters)
|
||||
.some((value) => value instanceof FileList === true);
|
||||
*/
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -454,7 +458,7 @@ var FHC_AjaxClient = {
|
||||
*/
|
||||
_checkAndGenerateAjaxParams: function(remoteController, controllerParameters, type, ajaxCallParameters) {
|
||||
|
||||
var valid = true; // by default they are ok (we want to trust you, please do not betray it)
|
||||
var valid = true; // by default they are ok (we want to trust you, please do not betray it)
|
||||
|
||||
// Returned parameters
|
||||
var ajaxParameters = {
|
||||
@@ -464,28 +468,28 @@ var FHC_AjaxClient = {
|
||||
};
|
||||
|
||||
// remoteController must be a NON-empty string
|
||||
if (typeof remoteController == "string" && remoteController.trim() != "")
|
||||
{
|
||||
// Is it possible to generate the URL
|
||||
if ((url = FHC_AjaxClient._generateRouterURI(remoteController)) != null)
|
||||
{
|
||||
ajaxParameters.url = url;
|
||||
}
|
||||
else // but it could fail
|
||||
{
|
||||
console.error("FHC_JS_DATA_STORAGE_OBJECT is not present");
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
if (typeof remoteController == "string" && remoteController.trim() != "")
|
||||
{
|
||||
// Is it possible to generate the URL
|
||||
if ((url = FHC_AjaxClient._generateRouterURI(remoteController)) != null)
|
||||
{
|
||||
ajaxParameters.url = url;
|
||||
}
|
||||
else // but it could fail
|
||||
{
|
||||
console.error("FHC_JS_DATA_STORAGE_OBJECT is not present");
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
else // otherwise is NOT possible to generate the URL
|
||||
{
|
||||
console.error("Invalid remoteController parameter");
|
||||
valid = false;
|
||||
valid = false;
|
||||
}
|
||||
|
||||
// controllerParameters must be an object
|
||||
if (typeof controllerParameters == "object")
|
||||
{
|
||||
// controllerParameters must be an object
|
||||
if (typeof controllerParameters == "object")
|
||||
{
|
||||
// If controllerParameters contains uploaded file(s) as FileList
|
||||
if (controllerParameters !== null && FHC_AjaxClient._hasFileList(controllerParameters))
|
||||
{
|
||||
@@ -511,19 +515,18 @@ var FHC_AjaxClient = {
|
||||
// so the variable data is saved also in _data and it will be used later
|
||||
ajaxParameters.data = data;
|
||||
ajaxParameters._data = data;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
console.error("Invalid controller parameters, must be an object");
|
||||
valid = false;
|
||||
}
|
||||
|
||||
|
||||
// Checks if ajaxCallParameters is an object
|
||||
if (typeof ajaxCallParameters == "object")
|
||||
{
|
||||
if (typeof ajaxCallParameters == "object")
|
||||
{
|
||||
// If present, errorCallback must be a function
|
||||
if (ajaxCallParameters.hasOwnProperty("errorCallback"))
|
||||
if (ajaxCallParameters.hasOwnProperty("errorCallback"))
|
||||
{
|
||||
if (typeof ajaxCallParameters.errorCallback == "function")
|
||||
{
|
||||
@@ -535,7 +538,7 @@ var FHC_AjaxClient = {
|
||||
console.error("Invalid errorCallback, it must be a function");
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else // if is not given then call the default errorCallback
|
||||
{
|
||||
ajaxParameters._errorCallback = FHC_AjaxClient._defaultErrorCallback; // save as property the callback error
|
||||
@@ -543,8 +546,8 @@ var FHC_AjaxClient = {
|
||||
}
|
||||
|
||||
// If present, successCallback must be a function
|
||||
if (ajaxCallParameters.hasOwnProperty("successCallback"))
|
||||
{
|
||||
if (ajaxCallParameters.hasOwnProperty("successCallback"))
|
||||
{
|
||||
if (typeof ajaxCallParameters.successCallback == "function")
|
||||
{
|
||||
ajaxParameters._successCallback = ajaxCallParameters.successCallback; // save as property the callback success
|
||||
@@ -555,11 +558,11 @@ var FHC_AjaxClient = {
|
||||
console.error("Invalid successCallback, it must be a function");
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If present, completeCallback must be a function
|
||||
if (ajaxCallParameters.hasOwnProperty("completeCallback"))
|
||||
{
|
||||
if (ajaxCallParameters.hasOwnProperty("completeCallback"))
|
||||
{
|
||||
if (typeof ajaxCallParameters.completeCallback == "function")
|
||||
{
|
||||
ajaxParameters._completeCallback = ajaxCallParameters.completeCallback; // save as property the callback complete
|
||||
@@ -569,7 +572,7 @@ var FHC_AjaxClient = {
|
||||
console.error("Invalid completeCallback, it must be a function");
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If present, veilTimeout must be a number and cannot be less then 0 or greater then 60000
|
||||
if (ajaxCallParameters.hasOwnProperty("veilTimeout") && typeof ajaxCallParameters.veilTimeout == "number")
|
||||
@@ -595,6 +598,24 @@ var FHC_AjaxClient = {
|
||||
ajaxParameters.beforeSend = FHC_AjaxClient._showVeil;
|
||||
}
|
||||
|
||||
// If present reloadPage has to be a boolean
|
||||
if (ajaxCallParameters.hasOwnProperty("reloadPage"))
|
||||
{
|
||||
if (typeof ajaxCallParameters.reloadPage != "boolean")
|
||||
{
|
||||
console.error("Invalid reloadPage parameter, must be a boolean");
|
||||
valid = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
ajaxParameters._reloadPage = ajaxCallParameters.reloadPage;
|
||||
}
|
||||
}
|
||||
else // not present
|
||||
{
|
||||
ajaxParameters._reloadPage = false;
|
||||
}
|
||||
|
||||
// Function to call after the ajax call is ended, is it here because it must be always called
|
||||
ajaxParameters.complete = FHC_AjaxClient._onComplete;
|
||||
}
|
||||
@@ -604,7 +625,7 @@ var FHC_AjaxClient = {
|
||||
ajaxParameters = null;
|
||||
}
|
||||
|
||||
return ajaxParameters;
|
||||
return ajaxParameters;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -622,9 +643,10 @@ var FHC_AjaxClient = {
|
||||
var ajaxParameters = FHC_AjaxClient._checkAndGenerateAjaxParams(remoteController, controllerParameters, type, ajaxCallParameters);
|
||||
|
||||
// Checks the given parameters if they are present and are valid
|
||||
if (ajaxParameters != null)
|
||||
{
|
||||
$.ajax(ajaxParameters); // ajax call
|
||||
}
|
||||
if (ajaxParameters != null)
|
||||
{
|
||||
$.ajax(ajaxParameters); // ajax call
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+86
-31
@@ -46,11 +46,12 @@ function sideMenuHook()
|
||||
filterUniqueId: FHC_FilterWidget.getFilterUniqueIdPrefix()
|
||||
},
|
||||
{
|
||||
reloadPage: true,
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
console.log(FHC_AjaxClient.getError(data));
|
||||
console.error(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -141,7 +142,7 @@ var FHC_FilterWidget = {
|
||||
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
console.log(FHC_AjaxClient.getError(data));
|
||||
console.error(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -157,7 +158,7 @@ var FHC_FilterWidget = {
|
||||
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
console.log(FHC_AjaxClient.getError(data));
|
||||
console.error(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -174,6 +175,7 @@ var FHC_FilterWidget = {
|
||||
$("#addField").html("<option value=''>" + FHC_PhrasesLib.t("ui", "bitteEintragWaehlen") + "</option>");
|
||||
$("#appliedFilters").html("");
|
||||
$("#addFilter").html("<option value=''>" + FHC_PhrasesLib.t("ui", "bitteEintragWaehlen") + "</option>");
|
||||
FHC_FilterWidget._toggleApplySaveButtons(false);
|
||||
|
||||
// If the choosen dataset representation is tablesorter
|
||||
if (FHC_FilterWidget._datasetRepresentation == DATASET_REP_TABLESORTER)
|
||||
@@ -218,7 +220,7 @@ var FHC_FilterWidget = {
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log(FHC_AjaxClient.getError(data));
|
||||
console.error(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,6 +292,8 @@ var FHC_FilterWidget = {
|
||||
$(".remove-selected-field").off("click");
|
||||
$("#addField").off("change");
|
||||
$(".applied-filter-operation").off("change");
|
||||
$(".applied-filter-condition").off("keyup");
|
||||
$(".applied-filter-option").off("change");
|
||||
$(".remove-applied-filter").off("click");
|
||||
$("#addFilter").off("change");
|
||||
$("#applyFilter").off("click");
|
||||
@@ -314,6 +318,8 @@ var FHC_FilterWidget = {
|
||||
$(".remove-selected-field").click(FHC_FilterWidget._revomeSelectedFieldsEvent); // Click event on the "X" link
|
||||
$("#addField").change(FHC_FilterWidget._addFieldEvent); // Change event on the fields drop-down to add new fields
|
||||
$(".applied-filter-operation").change(FHC_FilterWidget._appliedFiltersOperationsEvent); // Change event on the operation drop-down
|
||||
$(".applied-filter-condition").keyup(FHC_FilterWidget._appliedFiltersConditionsEvent); // Change event on the conditions fields
|
||||
$(".applied-filter-option").change(FHC_FilterWidget._appliedFiltersOptionsEvent); // Change event on the operation drop-down
|
||||
$(".remove-applied-filter").click(FHC_FilterWidget._removeAppliedFiltersEvent); // Click event to the "X" button to remove an applied filter
|
||||
$("#addFilter").change(FHC_FilterWidget._addFilterEvent); // Click event on the applied filters drop-down to add a new filter to the dataset
|
||||
$("#applyFilter").click(FHC_FilterWidget._applyFilterEvent); // Click event on the applied filters drop-down to apply filters to the dataset
|
||||
@@ -456,6 +462,22 @@ var FHC_FilterWidget = {
|
||||
$(this).parent().parent().find(".applied-filter-condition").prop("disabled", false);
|
||||
$(this).parent().parent().find(".applied-filter-option").prop("disabled", false);
|
||||
}
|
||||
|
||||
FHC_FilterWidget._toggleApplySaveButtons(true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Event function used by the applied filter conditions
|
||||
*/
|
||||
_appliedFiltersConditionsEvent: function(event) {
|
||||
FHC_FilterWidget._toggleApplySaveButtons(true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Event function used by the applied filter options
|
||||
*/
|
||||
_appliedFiltersOptionsEvent: function(event) {
|
||||
FHC_FilterWidget._toggleApplySaveButtons(true);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -481,43 +503,53 @@ var FHC_FilterWidget = {
|
||||
* Event function used by the apply filter button
|
||||
* The given parameter is used to decide if the page is going to be reloaded
|
||||
*/
|
||||
_applyFilterEvent: function(reload = true) {
|
||||
_applyFilterEvent: function() {
|
||||
|
||||
var isValid = true;
|
||||
var appliedFilters = [];
|
||||
var appliedFiltersOperations = [];
|
||||
var appliedFiltersConditions = [];
|
||||
var appliedFiltersOptions = [];
|
||||
|
||||
// Get all the data from the filter form and fill the arrays
|
||||
$("#appliedFilters > div").each(function(i, e) {
|
||||
|
||||
appliedFilters.push($(this).find(".hidden-field-name").val());
|
||||
appliedFiltersOperations.push($(this).find(".applied-filter-operation").val());
|
||||
appliedFiltersConditions.push($(this).find(".applied-filter-condition:enabled").val());
|
||||
|
||||
// Checks if the conditions are filled by the user
|
||||
if ($(this).find(".applied-filter-condition:enabled").length > 0
|
||||
&& $(this).find(".applied-filter-condition:enabled").val().trim() != '')
|
||||
{
|
||||
appliedFiltersConditions.push($(this).find(".applied-filter-condition:enabled").val());
|
||||
}
|
||||
else // otherwise mark the empty conditions in red
|
||||
{
|
||||
$(this).find(".applied-filter-condition:enabled").css("border", "1px solid red");
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
appliedFiltersOptions.push($(this).find(".applied-filter-option:enabled").val());
|
||||
});
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
"widgets/Filters/applyFilters",
|
||||
{
|
||||
appliedFilters: appliedFilters,
|
||||
appliedFiltersOperations: appliedFiltersOperations,
|
||||
appliedFiltersConditions: appliedFiltersConditions,
|
||||
appliedFiltersOptions: appliedFiltersOptions,
|
||||
filterUniqueId: FHC_FilterWidget.getFilterUniqueIdPrefix()
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
|
||||
if (reload === true)
|
||||
{
|
||||
if (isValid)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
"widgets/Filters/applyFilters",
|
||||
{
|
||||
appliedFilters: appliedFilters,
|
||||
appliedFiltersOperations: appliedFiltersOperations,
|
||||
appliedFiltersConditions: appliedFiltersConditions,
|
||||
appliedFiltersOptions: appliedFiltersOptions,
|
||||
filterUniqueId: FHC_FilterWidget.getFilterUniqueIdPrefix()
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
FHC_FilterWidget._failOrReload(data, textStatus, jqXHR);
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -586,9 +618,6 @@ var FHC_FilterWidget = {
|
||||
|
||||
if ($("#customFilterDescription").val() != "")
|
||||
{
|
||||
// Apply the filter before saving it, without reloading the page
|
||||
FHC_FilterWidget._applyFilterEvent(false);
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
"widgets/Filters/saveCustomFilter",
|
||||
{
|
||||
@@ -597,7 +626,12 @@ var FHC_FilterWidget = {
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
FHC_FilterWidget._failOrReload(data);
|
||||
|
||||
// If an error occurred then log it
|
||||
if (FHC_AjaxClient.isError(data)) console.error(data);
|
||||
|
||||
// In any case tries to apply the filter
|
||||
FHC_FilterWidget._applyFilterEvent();
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -754,6 +788,7 @@ var FHC_FilterWidget = {
|
||||
|
||||
var html = "";
|
||||
|
||||
// If integer type
|
||||
if (metaData.type.toLowerCase().indexOf("int") >= 0)
|
||||
{
|
||||
if (appliedFilter.condition == null) appliedFilter.condition = 0;
|
||||
@@ -770,7 +805,11 @@ var FHC_FilterWidget = {
|
||||
html += " <input type='numbe' value='" + appliedFilter.condition + "' class='form-control applied-filter-condition'>";
|
||||
html += "</span>";
|
||||
}
|
||||
if (metaData.type.toLowerCase().indexOf("varchar") >= 0 || metaData.type.toLowerCase() == "text")
|
||||
|
||||
// If text, varchar or char type
|
||||
if (metaData.type.toLowerCase().indexOf("varchar") >= 0
|
||||
|| metaData.type.toLowerCase().indexOf("text") >= 0
|
||||
|| metaData.type.toLowerCase().indexOf("bpchar") >= 0)
|
||||
{
|
||||
if (appliedFilter.condition == null) appliedFilter.condition = "";
|
||||
|
||||
@@ -784,6 +823,8 @@ var FHC_FilterWidget = {
|
||||
html += " <input type='text' value='" + appliedFilter.condition + "' class='form-control applied-filter-condition'>";
|
||||
html += "</span>";
|
||||
}
|
||||
|
||||
// If boolean type
|
||||
if (metaData.type.toLowerCase().indexOf("bool") >= 0)
|
||||
{
|
||||
html = "<span>";
|
||||
@@ -796,6 +837,8 @@ var FHC_FilterWidget = {
|
||||
html += " <input type='hidden' value='" + appliedFilter.condition + "' class='form-control applied-filter-condition'>";
|
||||
html += "</span>";
|
||||
}
|
||||
|
||||
// If timestamp or date type
|
||||
if (metaData.type.toLowerCase().indexOf("timestamp") >= 0 || metaData.type.toLowerCase().indexOf("date") >= 0)
|
||||
{
|
||||
var classOperation = "form-control applied-filter-condition";
|
||||
@@ -843,6 +886,9 @@ var FHC_FilterWidget = {
|
||||
return html;
|
||||
},
|
||||
|
||||
/**
|
||||
* It renders the dataset with a tablesorter, puvotUI or a tabulator
|
||||
*/
|
||||
_renderDataset: function(data) {
|
||||
|
||||
// If the choosen dataset representation is tablesorter then...
|
||||
@@ -1265,6 +1311,14 @@ var FHC_FilterWidget = {
|
||||
{
|
||||
FHC_FilterWidget._hideOptions = data.hideOptions;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Enable/disable the apply and save buttons
|
||||
*/
|
||||
_toggleApplySaveButtons(addedNewFilterOption) {
|
||||
$("#applyFilter").prop("disabled", addedNewFilterOption != true);
|
||||
$("#saveCustomFilterButton").prop("disabled", addedNewFilterOption === true);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1276,3 +1330,4 @@ $(document).ready(function() {
|
||||
FHC_FilterWidget.display();
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,512 @@
|
||||
const BASE_URL = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
|
||||
const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
|
||||
const CONTROLLER_URL = BASE_URL + "/"+CALLED_PATH;
|
||||
|
||||
/**
|
||||
* javascript file for Öhbeitrag GUI
|
||||
*/
|
||||
$(document).ready(function ()
|
||||
{
|
||||
// get Öhbeiträge and show them in table
|
||||
Oehbeitrag.getOehBeitraege();
|
||||
|
||||
// set event for adding new Oehhbeitrag
|
||||
$("#addNewOeh").click(
|
||||
function()
|
||||
{
|
||||
let callback = function(data)
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let studiensemester = FHC_AjaxClient.getData(data);
|
||||
let nextOehbeitragId = Oehbeitrag.newBeitragId;
|
||||
|
||||
// add new table row
|
||||
let newRowHtml = "<tr>"+
|
||||
"<td>";
|
||||
newRowHtml += Oehbeitrag._getStudiensemesterDropdown(Oehbeitrag.newBeitragId, 'von_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</td><td>";
|
||||
newRowHtml += Oehbeitrag._getStudiensemesterDropdown(Oehbeitrag.newBeitragId, 'bis_studiensemester_kurzbz', studiensemester);
|
||||
newRowHtml += "</td>";
|
||||
newRowHtml += "<td><input type='text' name='studierendenbeitrag' id='input_studierendenbeitrag_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><input type='text' name='versicherung' id='input_versicherung_"+nextOehbeitragId+"' class='form-control' placeholder='0,00'></td>"+
|
||||
"<td><button class='btn btn-default' id='addOeh_"+nextOehbeitragId+"'>"+FHC_PhrasesLib.t('ui', 'speichern')+"</button> " +
|
||||
" <button class='btn btn-default' id='delete_"+nextOehbeitragId+"'>"+FHC_PhrasesLib.t('ui', 'entfernen')+"</button></td>"+
|
||||
"</tr>";
|
||||
|
||||
$("#oehbeitraegeTbl tbody").prepend(newRowHtml);
|
||||
$("#addOeh_"+Oehbeitrag.newBeitragId).click(
|
||||
function()
|
||||
{
|
||||
// get form data into object
|
||||
let oehbeitrag = {
|
||||
"von_studiensemester_kurzbz": $("#input_von_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"bis_studiensemester_kurzbz": $("#input_bis_studiensemester_kurzbz_"+nextOehbeitragId).val(),
|
||||
"studierendenbeitrag": $("#input_studierendenbeitrag_"+nextOehbeitragId).val().replace(",", "."),
|
||||
"versicherung": $("#input_versicherung_"+nextOehbeitragId).val().replace(",", ".")
|
||||
}
|
||||
|
||||
let studiensemester_von_bis = {
|
||||
"von_semester_with_date": $("#input_von_studiensemester_kurzbz_"+nextOehbeitragId+" option:selected").text(),
|
||||
"bis_semester_with_date": $("#input_bis_studiensemester_kurzbz_"+nextOehbeitragId+" option:selected").text()
|
||||
}
|
||||
|
||||
Oehbeitrag.addOehbeitrag(oehbeitrag, studiensemester_von_bis, nextOehbeitragId);
|
||||
}
|
||||
);
|
||||
|
||||
// remove html row if delete button clicked
|
||||
$("#delete_"+nextOehbeitragId).click(
|
||||
function()
|
||||
{
|
||||
$(this).parent('td').parent('tr').remove();
|
||||
}
|
||||
);
|
||||
|
||||
// increase counter for newly added rows id
|
||||
Oehbeitrag.newBeitragId++;
|
||||
}
|
||||
else
|
||||
FHC_DialogLib.alertInfo(FHC_PhrasesLib.t('oehbeitrag', 'oehbeitraegeFestgelegt'));
|
||||
}
|
||||
|
||||
Oehbeitrag.getValidStudiensemester(callback);
|
||||
}
|
||||
)
|
||||
});
|
||||
|
||||
var Oehbeitrag = {
|
||||
newBeitragId: 0,
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// ajax calls
|
||||
getOehBeitraege: function()
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getOehbeitraege",
|
||||
null,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR)
|
||||
{
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
let oehbeitraege = FHC_AjaxClient.getData(data);
|
||||
|
||||
let oehbeitrStr = '';
|
||||
for (let idx in oehbeitraege)
|
||||
{
|
||||
let oehbeitrag = oehbeitraege[idx];
|
||||
|
||||
// add Öhbeitrag row
|
||||
oehbeitrStr += '<tr>' +
|
||||
'<td id="cell_von_studiensemester_kurzbz_' + oehbeitrag.oehbeitrag_id + '">' +
|
||||
Oehbeitrag._formatDateToGerman(oehbeitrag.von_datum) + '/' + oehbeitrag.von_studiensemester_kurzbz +
|
||||
' <i class="fa fa-edit editVonStudiensemester" id="edit_von_studiensemester_' + oehbeitrag.oehbeitrag_id + '"></i>'+
|
||||
'</td>' +
|
||||
'<td id="cell_bis_studiensemester_kurzbz_' + oehbeitrag.oehbeitrag_id + '">' + (oehbeitrag.bis_studiensemester_kurzbz == null ? FHC_PhrasesLib.t('global', 'unbeschraenkt') :
|
||||
Oehbeitrag._formatDateToGerman(oehbeitrag.bis_datum) + '/' + oehbeitrag.bis_studiensemester_kurzbz) +
|
||||
' <i class="fa fa-edit editBisStudiensemester" id="edit_bis_studiensemester_' + oehbeitrag.oehbeitrag_id + '"></i>'+
|
||||
'</td>' +
|
||||
'<td id="cell_studierendenbeitrag_' + oehbeitrag.oehbeitrag_id + '">' + Oehbeitrag._formatDecimal(oehbeitrag.studierendenbeitrag) +
|
||||
' <i class="fa fa-edit editStudierendenbeitrag" id="edit_studierendenbeitrag_' + oehbeitrag.oehbeitrag_id + '"></i>'+
|
||||
'</td>' +
|
||||
'<td id="cell_versicherung_' + oehbeitrag.oehbeitrag_id + '">' + Oehbeitrag._formatDecimal(oehbeitrag.versicherung) +
|
||||
' <i class="fa fa-edit editVersicherung" id="edit_versicherung_' + oehbeitrag.oehbeitrag_id + '"></i>'+
|
||||
'</td>' +
|
||||
'<td>' +
|
||||
'<button class="btn btn-default editBtn" id="edit_'+oehbeitrag.oehbeitrag_id+'">'+FHC_PhrasesLib.t('ui', 'bearbeiten')+'</button>' +
|
||||
' <button class="btn btn-default deleteBtn" id="delete_'+oehbeitrag.oehbeitrag_id+'">'+FHC_PhrasesLib.t('ui', 'loeschen')+'</button>' +
|
||||
'</td>' +
|
||||
'</tr>';
|
||||
}
|
||||
$("#oehbeitraegeTbl tbody").html(oehbeitrStr);
|
||||
|
||||
// set events for editing, deleting etc.
|
||||
Oehbeitrag._setUpdateEvents();
|
||||
|
||||
//initialise table sorter
|
||||
Oehbeitrag._addTablesorter();
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerHolenOehbeitraege'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
// get all Studiensemester which are valid for assignment (where no Öhbeitrag is assigned)
|
||||
getValidStudiensemester: function(callback, oehbeitrag_id)
|
||||
{
|
||||
let params = oehbeitrag_id ? {"oehbeitrag_id": oehbeitrag_id} : null;
|
||||
|
||||
FHC_AjaxClient.ajaxCallGet(
|
||||
CALLED_PATH + "/getValidStudiensemester",
|
||||
params,
|
||||
{
|
||||
successCallback: callback,
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerHolenSemester'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
addOehbeitrag: function(oehbeitrag, studiensemester_von_bis, nextOehbeitragId)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/addOehbeitrag',
|
||||
oehbeitrag,
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// refresh Öhbeitragstable
|
||||
Oehbeitrag.getOehBeitraege();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerHinzufuegenOehbeitrag'));
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerHinzufuegenOehbeitrag'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
// update whole Öhbeitrag
|
||||
updateOehbeitrag: function(oehbeitrag_id, oehbeitragData)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/updateOehbeitrag',
|
||||
{
|
||||
"oehbeitrag_id": oehbeitrag_id,
|
||||
"data": oehbeitragData
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// refresh Öhbeitragstable
|
||||
Oehbeitrag.getOehBeitraege();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerAktualisierenOehbeitrag'));
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerAktualisierenOehbeitrag'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
// update one field of Öhbeitrag (e.g. only semester or only Betrag)
|
||||
updateOehbeitragField: function(oehbeitrag_id, fieldname, fieldelement, inputtype)
|
||||
{
|
||||
let oehbeitragdata = {};
|
||||
let fieldvalue = fieldelement.val();
|
||||
|
||||
if (inputtype != 'semester') // formal number as decimal with point separator
|
||||
fieldvalue = Oehbeitrag._formatDecimal(fieldvalue, ".");
|
||||
|
||||
oehbeitragdata[fieldname] = fieldvalue;
|
||||
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/updateOehbeitrag',
|
||||
{
|
||||
"oehbeitrag_id": oehbeitrag_id,
|
||||
"data": oehbeitragdata
|
||||
},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.isError(data))
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
|
||||
}
|
||||
else if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
// refresh table cell with correct value and set edit event and tablesorter
|
||||
if (inputtype == 'semester')
|
||||
fieldvalue = $(fieldelement).find("option:selected").text();
|
||||
else
|
||||
fieldvalue = Oehbeitrag._formatDecimal(fieldvalue);
|
||||
$("#confirm_"+fieldname+"_"+oehbeitrag_id).parent('td').html(
|
||||
fieldvalue+" <i class='fa fa-edit' id='edit_"+fieldname+"_"+oehbeitrag_id+"'></i>"
|
||||
);
|
||||
$("#edit_"+fieldname+"_"+oehbeitrag_id).click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._makeFieldEditable($(this).prop("id"), fieldname, inputtype, true);
|
||||
}
|
||||
);
|
||||
|
||||
Oehbeitrag._addTablesorter();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerAktualisierenOehbeitrag'));
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerAktualisierenOehbeitrag'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
deleteOehbeitrag: function(oehbeitrag_id)
|
||||
{
|
||||
FHC_AjaxClient.ajaxCallPost(
|
||||
CALLED_PATH + '/deleteOehbeitrag',
|
||||
{"oehbeitrag_id": oehbeitrag_id},
|
||||
{
|
||||
successCallback: function(data, textStatus, jqXHR) {
|
||||
if (FHC_AjaxClient.hasData(data))
|
||||
{
|
||||
$("#delete_"+oehbeitrag_id).closest("tr").remove();
|
||||
Oehbeitrag._addTablesorter();
|
||||
}
|
||||
else
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerLoeschenOehbeitrag'));
|
||||
}
|
||||
},
|
||||
errorCallback: function()
|
||||
{
|
||||
FHC_DialogLib.alertError(FHC_PhrasesLib.t('oehbeitrag', 'fehlerLoeschenOehbeitrag'));
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
/**
|
||||
* Sets click events for updating, deleting Oehbeitrag
|
||||
*/
|
||||
_setUpdateEvents: function()
|
||||
{
|
||||
// set edit event for whole row
|
||||
$(".editBtn").click(
|
||||
function()
|
||||
{
|
||||
let id = $(this).prop("id");
|
||||
let oehbeitrag_id = id.substr(id.lastIndexOf('_')+1);
|
||||
Oehbeitrag._makeFieldEditable(id, 'von_studiensemester_kurzbz', 'semester');
|
||||
Oehbeitrag._makeFieldEditable(id, 'bis_studiensemester_kurzbz', 'semester');
|
||||
Oehbeitrag._makeFieldEditable(id, 'studierendenbeitrag');
|
||||
Oehbeitrag._makeFieldEditable(id, 'versicherung');
|
||||
$(this).after(" <button class='btn btn-default saveBtn' id='save_"+oehbeitrag_id+"'>"+FHC_PhrasesLib.t('ui', 'speichern')+"</button>");
|
||||
$(this).remove();
|
||||
$("#delete_" + oehbeitrag_id).remove();
|
||||
|
||||
$("#save_"+oehbeitrag_id).click(
|
||||
function()
|
||||
{
|
||||
let von_studiensemester_kurzbz = $("#input_von_studiensemester_kurzbz_"+oehbeitrag_id+" option:selected").val();
|
||||
let bis_studiensemester_kurzbz = $("#input_bis_studiensemester_kurzbz_"+oehbeitrag_id+" option:selected").val();
|
||||
let studierendenbeitrag = Oehbeitrag._formatDecimal($("#input_studierendenbeitrag_"+oehbeitrag_id).val(), '.');
|
||||
let versicherung = Oehbeitrag._formatDecimal($("#input_versicherung_"+oehbeitrag_id).val(), '.');
|
||||
|
||||
let oehbeitragData = {
|
||||
"von_studiensemester_kurzbz": von_studiensemester_kurzbz,
|
||||
"bis_studiensemester_kurzbz": bis_studiensemester_kurzbz,
|
||||
"studierendenbeitrag": studierendenbeitrag,
|
||||
"versicherung": versicherung
|
||||
}
|
||||
|
||||
Oehbeitrag.updateOehbeitrag(oehbeitrag_id, oehbeitragData);
|
||||
}
|
||||
)
|
||||
}
|
||||
);
|
||||
|
||||
// set delete event for all rows
|
||||
$(".deleteBtn").click(
|
||||
function()
|
||||
{
|
||||
let oehbeitrag_id_prefixed = $(this).prop("id");
|
||||
let oehbeitrag_id = oehbeitrag_id_prefixed.substr(oehbeitrag_id_prefixed.lastIndexOf('_')+1);
|
||||
|
||||
Oehbeitrag.deleteOehbeitrag(oehbeitrag_id);
|
||||
}
|
||||
)
|
||||
|
||||
// set edit events for single cells
|
||||
$(".editStudierendenbeitrag").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._makeFieldEditable($(this).prop("id"), 'studierendenbeitrag', null, true);
|
||||
}
|
||||
);
|
||||
|
||||
$(".editVersicherung").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._makeFieldEditable($(this).prop("id"), 'versicherung', null, true);
|
||||
}
|
||||
);
|
||||
|
||||
$(".editBisStudiensemester").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._makeFieldEditable($(this).prop("id"), 'bis_studiensemester_kurzbz', 'semester', true);
|
||||
}
|
||||
);
|
||||
|
||||
$(".editVonStudiensemester").off('click').click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag._makeFieldEditable($(this).prop("id"), 'von_studiensemester_kurzbz', 'semester', true);
|
||||
}
|
||||
);
|
||||
},
|
||||
// make Öhbeitrag field editable, i.e. show input field instead of text
|
||||
_makeFieldEditable: function(oehbeitrag_id_prefixed, fieldname, inputtype, singleUpdate)
|
||||
{
|
||||
let oehbeitrag_id = oehbeitrag_id_prefixed.substr(oehbeitrag_id_prefixed.lastIndexOf('_')+1);
|
||||
let initElement = $("#cell_"+fieldname+"_"+oehbeitrag_id); // clicked element triggering event
|
||||
let currFieldvalue = initElement.text().trim();
|
||||
|
||||
let callback = function(validSemesterData)
|
||||
{
|
||||
let inputHtml = "";
|
||||
|
||||
// if semester dropdown, retrieve valid semester
|
||||
if (inputtype === 'semester')
|
||||
{
|
||||
if (FHC_AjaxClient.hasData(validSemesterData))
|
||||
{
|
||||
let studiensemester = FHC_AjaxClient.getData(validSemesterData);
|
||||
|
||||
inputHtml = Oehbeitrag._getStudiensemesterDropdown(oehbeitrag_id, fieldname, studiensemester, currFieldvalue, 'inline-inputfield');
|
||||
}
|
||||
}
|
||||
else // otherwise display textfield
|
||||
{
|
||||
inputHtml = "<input type='text' class='form-control inline-inputfield' id='input_" + fieldname + "_" + oehbeitrag_id+"'" +
|
||||
" value='"+currFieldvalue+"' placeholder='0,00'>";
|
||||
}
|
||||
|
||||
if (singleUpdate === true)
|
||||
inputHtml += " <i class='fa fa-check text-success' id='confirm_"+fieldname+"_"+oehbeitrag_id+"' ></i>";
|
||||
|
||||
initElement.html(inputHtml);
|
||||
|
||||
if (singleUpdate === true)
|
||||
{
|
||||
// set the update event if single field update
|
||||
$("#confirm_" + fieldname + "_" + oehbeitrag_id).click(
|
||||
function()
|
||||
{
|
||||
Oehbeitrag.updateOehbeitragField(oehbeitrag_id, fieldname, $("#input_" + fieldname + "_" + oehbeitrag_id), inputtype);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// get valid Studiensemester with no Öhbeitrag assigned
|
||||
if (inputtype == 'semester')
|
||||
{
|
||||
Oehbeitrag.getValidStudiensemester(callback, oehbeitrag_id);
|
||||
}
|
||||
else
|
||||
callback(null);
|
||||
},
|
||||
_getStudiensemesterDropdown(oehbeitrag_id, name, studiensemester, selectedDateSemester, formatclass)
|
||||
{
|
||||
let selectedDateSemesterArr = null;
|
||||
if (selectedDateSemester)
|
||||
{
|
||||
selectedDateSemesterArr = selectedDateSemester.split('/');
|
||||
}
|
||||
|
||||
let rowHtml = "";
|
||||
let inlineClass = formatclass != null ? ' '+formatclass : '';
|
||||
|
||||
rowHtml += "<select name='"+name+"' id='input_"+name+"_"+oehbeitrag_id+"' class='form-control"+inlineClass+"'>";
|
||||
if (name === 'bis_studiensemester_kurzbz')
|
||||
rowHtml += "<option value='null'>unbeschränkt</option>";
|
||||
for (let idx in studiensemester)
|
||||
{
|
||||
let date = name === 'bis_studiensemester_kurzbz' ? studiensemester[idx].ende : studiensemester[idx].start;
|
||||
let studiensemester_kurzbz = studiensemester[idx].studiensemester_kurzbz;
|
||||
let dateSemester = Oehbeitrag._formatDateToGerman(date) + "/" + studiensemester_kurzbz;
|
||||
let selected = dateSemester === selectedDateSemester ? ' selected' : '';
|
||||
|
||||
rowHtml += "<option value='" + studiensemester_kurzbz + "' "+selected+">" + dateSemester +"</option>";
|
||||
}
|
||||
rowHtml += "</select>";
|
||||
|
||||
return rowHtml;
|
||||
},
|
||||
_compareGermanDates: function(datea, dateb)
|
||||
{
|
||||
return datea.split(".").reverse().join("") < dateb.split(".").reverse().join("");
|
||||
},
|
||||
_addTablesorter: function()
|
||||
{
|
||||
// add parser through the tablesorter addParser method
|
||||
$.tablesorter.addParser({
|
||||
// set a unique id
|
||||
id: 'germandatesort',
|
||||
is: function(s, table, cell, $cell) {
|
||||
// return false so this parser is not auto detected
|
||||
return false;
|
||||
},
|
||||
format: function(s, table, cell, cellIndex) {
|
||||
// format data, should sort by leading german date
|
||||
return s.substring(0, 10).split(".").reverse().join("");
|
||||
},
|
||||
// set type, either numeric or text
|
||||
type: 'numeric'
|
||||
});
|
||||
|
||||
let headers = {headers: { 0: {sorter: "germandatesort"}, 1: {sorter: "germandatesort"}, 4: {sorter: false}}};
|
||||
|
||||
Tablesort.addTablesorter("oehbeitraegeTbl", [[0,1]], ["zebra"], 8, headers);
|
||||
},
|
||||
// Formats a numeric value as a float with two decimals
|
||||
_formatDecimal: function(value, decSeparator)
|
||||
{
|
||||
let dec = null;
|
||||
let prevSeparator = ".";
|
||||
|
||||
if (decSeparator === ".")
|
||||
prevSeparator = ",";
|
||||
else
|
||||
decSeparator = ",";
|
||||
|
||||
dec = value.split(prevSeparator);
|
||||
if (dec.length === 2)
|
||||
{
|
||||
dec = parseFloat(dec[0] + '.' + dec[1]).toFixed(2);
|
||||
dec = dec.replace(prevSeparator, decSeparator);
|
||||
}
|
||||
else if (Math.floor(value) == value) // if integer, add zeros
|
||||
dec = value + decSeparator + '00';
|
||||
else
|
||||
dec = value;
|
||||
|
||||
return dec;
|
||||
},
|
||||
// formats english date to as german
|
||||
_formatDateToGerman: function(date)
|
||||
{
|
||||
return date.substring(8, 10) + "." + date.substring(5, 7) + "." + date.substring(0, 4);
|
||||
}
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user