Merge remote-tracking branch 'origin/master'

This commit is contained in:
Manfred Kindl
2018-11-26 18:14:01 +01:00
72 changed files with 4573 additions and 1530 deletions
+52 -12
View File
@@ -9,20 +9,60 @@ $config['navigation_header'] = array(
'link' => site_url(''),
'icon' => '',
'description' => 'FH-Complete',
'sort' => 1
'sort' => 10
),
'vilesci' => array(
'link' => base_url('vilesci'),
'icon' => '',
'description' => 'Vilesci',
'sort' => 2,
'requiredPermissions' => 'basis/vilesci:r'
'Organisation' => array(
'link' => '#',
'icon' => 'sitemap',
'description' => 'Organisation',
'sort' => 20,
'children'=> array(
'vilesci' => array(
'link' => base_url('vilesci'),
'icon' => '',
'description' => 'Vilesci',
'expand' => true,
'sort' => 1,
'requiredPermissions' => 'basis/vilesci:r'
)
)
),
'cis' => array(
'link' => CIS_ROOT,
'icon' => '',
'description' => 'CIS',
'sort' => 3
'Lehre' => array(
'link' => '#',
'icon' => 'graduation-cap',
'description' => 'Lehre',
'sort' => 30,
'children'=> array(
'cis' => array(
'link' => CIS_ROOT,
'icon' => '',
'description' => 'CIS',
'sort' => 10
),
'infocenter' => array(
'link' => site_url('system/infocenter/InfoCenter'),
'icon' => 'info',
'description' => 'Infocenter',
'expand' => true,
'sort' => 20,
'requiredPermissions' => 'infocenter:r'
),
)
),
'Personen' => array(
'link' => '#',
'icon' => 'user',
'description' => 'Personen',
'sort' => 40,
'children'=> array(
'bpk' => array(
'link' => site_url('person/BPKWartung'),
'icon' => '',
'description' => 'BPK Wartung',
'sort' => 10,
'requiredPermissions' => 'admin:r'
)
)
)
)
);
@@ -21,7 +21,7 @@ class Buchungstyp extends APIv1_Controller
*/
public function __construct()
{
parent::__construct(array('Buchungstyp' => 'basis/buchungstyp:rw');
parent::__construct(array('Buchungstyp' => 'basis/buchungstyp:rw'));
// Load model BuchungstypModel
$this->load->model('crm/buchungstyp_model', 'BuchungstypModel');
@@ -0,0 +1,199 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Page for checking Persons where no bPK was found automatically
*/
class BPKWartung extends Auth_Controller
{
private $_uid; // contains the UID of the logged user
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'admin:r',
'showDetails' => 'admin:r',
'saveBPK' => 'admin:rw',
)
);
// Loads models
$this->load->model('crm/akte_model', 'AkteModel');
$this->load->model('person/person_model', 'PersonModel');
$this->load->model('person/adresse_model', 'AdressModel');
$this->load->library('WidgetLib');
$this->loadPhrases(
array(
'global',
'person',
'lehre',
'ui',
'infocenter',
'filter'
)
);
$this->setControllerId(); // sets the controller id
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Main page of the InfoCenter tool
*/
public function index()
{
$this->_setNavigationMenuIndex(); // define the navigation menu for this page
$this->load->view('person/bpk/bpkwartung.php');
}
/**
* Personal details page of the InfoCenter tool
* Initialization function, gets person and prestudent data and loads the view with the data
* @param $person_id
*/
public function showDetails()
{
$this->_setNavigationMenuShowDetails();
$person_id = $this->input->get('person_id');
if (!is_numeric($person_id))
show_error('person id is not numeric!');
$personexists = $this->PersonModel->load($person_id);
if (isError($personexists))
show_error($personexists->retval);
if (!hasData($personexists))
show_error('Person does not exist!');
$persondata = $this->_loadPersonData($person_id);
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$this->load->view('person/bpk/bpkDetails.php', $persondata);
}
/**
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
* @param $prestudent_id
*/
public function saveBPK()
{
$person_id = $this->input->post('person_id');
$bpk = $this->input->post('bpk');
if (isEmptyString($person_id))
$result = error('PersonID missing');
else
{
$result = $this->PersonModel->update(
$person_id,
array(
'bpk' => $bpk,
'updateamum' => date('Y-m-d H:i:s')
)
);
redirect('person/BPKWartung/index');
}
}
// -----------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
* @param $person_id
* @return array
*/
private function _loadPersonData($person_id)
{
$stammdaten = $this->PersonModel->getPersonStammdaten($person_id, true);
if (isError($stammdaten))
{
show_error($stammdaten->retval);
}
if (!isset($stammdaten->retval))
return null;
$adresse = $this->AdressModel->getZustellAdresse($person_id);
if (isError($adresse))
{
show_error($adresse->retval);
}
$data = array(
'stammdaten' => $stammdaten->retval,
'adresse' => $adresse->retval[0]
);
return $data;
}
/**
* Define the navigation menu for the showDetails page
*/
private function _setNavigationMenuShowDetails()
{
$this->load->library('NavigationLib', array('navigation_page' => 'person/BPKWartung/showDetails'));
$link = site_url('person/BPKWartung');
$this->navigationlib->setSessionMenu(
array(
'back' => $this->navigationlib->oneLevel(
'Zurück', // description
$link, // link
array(), // children
'angle-left', // icon
true, // expand
null, // subscriptDescription
null, // subscriptLinkClass
null, // subscriptLinkValue
'', // target
1 // sort
)
)
);
}
/**
* Define the navigation menu for the showDetails page
*/
private function _setNavigationMenuIndex()
{
$this->load->library('NavigationLib', array('navigation_page' => 'person/BPKWartung/index'));
$link = site_url();
$this->navigationlib->setSessionMenu(
array(
'back' => $this->navigationlib->oneLevel(
'Zurück', // description
$link, // link
array(), // children
'angle-left', // icon
true, // expand
null, // subscriptDescription
null, // subscriptLinkClass
null, // subscriptLinkValue
'', // target
1 // sort
)
)
);
}
}
@@ -57,7 +57,7 @@ class Navigation extends Auth_Controller
// Private methods
/**
* Loads the FiltersLib with the NAVIGATION_PAGE_PARAM parameter
* Loads the NavigationLib with the NAVIGATION_PAGE_PARAM parameter
* If the parameter NAVIGATION_PAGE_PARAM is not given then the execution of the controller is terminated and
* an error message is printed
*/
@@ -76,7 +76,7 @@ class Navigation extends Auth_Controller
$navigationPage = $this->input->post(self::NAVIGATION_PAGE_PARAM); // is retrived from the HTTP POST
}
// Loads the FiltersLib that contains all the used logic
// Loads the NavigationLib that contains all the used logic
$this->load->library('NavigationLib', array(self::NAVIGATION_PAGE_PARAM => $navigationPage));
}
else // Otherwise an error will be written in the output
@@ -74,6 +74,7 @@ class InfoCenter extends Auth_Controller
'saveFormalGeprueft' => 'infocenter:rw',
'getLastPrestudentWithZgvJson' => 'infocenter:r',
'getZgvInfoForPrestudent' => 'infocenter:r',
'saveBewPriorisierung' => 'infocenter:rw',
'saveZgvPruefung' => 'infocenter:rw',
'saveAbsage' => 'infocenter:rw',
'saveFreigabe' => 'infocenter:rw',
@@ -81,6 +82,7 @@ class InfoCenter extends Auth_Controller
'updateNotiz' => 'infocenter:rw',
'reloadNotizen' => 'infocenter:r',
'reloadLogs' => 'infocenter:r',
'reloadZgvPruefungen' => 'infocenter:r',
'outputAkteContent' => 'infocenter:r',
'getParkedDate' => 'infocenter:r',
'park' => 'infocenter:rw',
@@ -280,6 +282,22 @@ class InfoCenter extends Auth_Controller
$this->load->view('system/infocenter/studiengangZgvInfo.php', $data);
}
/**
* Saves application priority for a prestudent
*/
public function saveBewPriorisierung()
{
$prestudent_id = $this->input->post('prestudentid');
$change = $this->input->post('change');
if (!is_numeric($change) || !is_numeric($prestudent_id))
$result = error('Parameteres missing');
else
$result = $this->PrestudentModel->changePrio($prestudent_id, intval($change));
$this->output->set_content_type('application/json')->set_output(json_encode($result));
}
/**
* Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
* @param $prestudent_id
@@ -338,55 +356,50 @@ class InfoCenter extends Auth_Controller
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
* @param $prestudent_id
*/
public function saveAbsage($prestudent_id)
public function saveAbsage()
{
$json = null;
$prestudent_id = $this->input->post('prestudent_id');
$statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
if (isError($lastStatus))
$this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig');
$statusgrresult = $this->StatusgrundModel->load($statusgrund);
if (hasData($lastStatus) && hasData($statusgrresult))
{
show_error($lastStatus->retval);
}
//check if still Interessent and not freigegeben yet
if (count($lastStatus->retval) > 0 && $lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam))
{
$result = $this->PrestudentstatusModel->insert(
array(
'prestudent_id' => $prestudent_id,
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester,
'datum' => date('Y-m-d'),
'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz,
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
'status_kurzbz' => 'Abgewiesener',
'statusgrund_id' => $statusgrund,
'insertvon' => $this->_uid,
'insertamum' => date('Y-m-d H:i:s')
)
);
if (isError($result))
//check if still Interessent and not freigegeben yet
if ($lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam))
{
show_error($result->retval);
$result = $this->PrestudentstatusModel->insert(
array(
'prestudent_id' => $prestudent_id,
'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz,
'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester,
'datum' => date('Y-m-d'),
'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz,
'studienplan_id' => $lastStatus->retval[0]->studienplan_id,
'status_kurzbz' => 'Abgewiesener',
'statusgrund_id' => $statusgrund,
'insertvon' => $this->_uid,
'insertamum' => date('Y-m-d H:i:s')
)
);
$json = $result;
if (isSuccess($result))
{
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
//statusgrund bezeichnung for logging
$statusgrund_bez = $statusgrresult->retval[0]->bezeichnung_mehrsprachig[1];
$this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez));
}
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
//statusgrund bezeichnung for logging
$this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig');
$result = $this->StatusgrundModel->load($statusgrund);
if (isError($result))
{
show_error($result->retval);
}
$statusgrund_bez = $result->retval[0]->bezeichnung_mehrsprachig[1];
$this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez));
}
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
/**
@@ -394,16 +407,18 @@ class InfoCenter extends Auth_Controller
* updates bestaetigtam and bestaetigtvon fields of the last status
* @param $prestudent_id
*/
public function saveFreigabe($prestudent_id)
public function saveFreigabe()
{
$json = null;
$prestudent_id = $this->input->post('prestudent_id');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
if (isError($lastStatus))
{
show_error($lastStatus->retval);
}
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
if (count($lastStatus->retval) > 0)
$akteresult = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL));
if (hasData($lastStatus) && isSuccess($akteresult))
{
$lastStatus = $lastStatus->retval[0];
@@ -425,45 +440,36 @@ class InfoCenter extends Auth_Controller
)
);
if (isError($result))
$json = $result;
if (isSuccess($result))
{
show_error($result->retval);
$this->load->model('crm/dokumentprestudent_model', 'DokumentprestudentModel');
//set documents which have been formal geprüft to accepted
$dokument_kurzbzs = array();
foreach ($akteresult->retval as $akte)
{
$dokument_kurzbzs[] = $akte->dokument_kurzbz;
}
$acceptresult = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs);
//returns null if no documents to accept
if ($acceptresult !== null && isError($acceptresult))
{
$json->error = 2;
}
$this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz']));
$this->_sendFreigabeMail($prestudent_id);
}
$this->load->model('crm/dokumentprestudent_model', 'DokumentprestudentModel');
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
//set documents which have been formal geprüft to accepted
$result = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL));
if (isError($result))
{
show_error($result->retval);
}
$dokument_kurzbzs = array();
foreach ($result->retval as $akte)
{
$dokument_kurzbzs[] = $akte->dokument_kurzbz;
}
$result = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs);
//returns null if no documents to accept
if ($result !== null && isError($result))
{
show_error($result->retval);
}
$this->_sendFreigabeMail($prestudent_id);
$this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz']));
}
}
$this->_redirectToStart($prestudent_id, 'ZgvPruef');
$this->output->set_content_type('application/json')->set_output(json_encode($json));
}
/**
@@ -543,6 +549,19 @@ class InfoCenter extends Auth_Controller
$this->load->view('system/infocenter/logs.php', array('logs' => $logs));
}
/**
* Loads Zgv Prüfung view for a person, helper for reloading after ajax request
* @param $person_id
*/
public function reloadZgvPruefungen($person_id)
{
$prestudentdata = $this->_loadPrestudentData($person_id);
$prestudentdata[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$this->load->view('system/infocenter/zgvpruefungen.php', $prestudentdata);
}
/**
* Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
* @param $akte_id
@@ -864,7 +883,7 @@ class InfoCenter extends Auth_Controller
'filters' => $this->navigationlib->oneLevel(
'Filter', // description
'#', // link
(isset($filtersArray['children'])?$filtersArray['children']:''), // children
(isset($filtersArray['children']) ? $filtersArray['children'] : ''), // children
'', // icon
true, // expand
null, // subscriptDescription
@@ -880,20 +899,18 @@ class InfoCenter extends Auth_Controller
/**
* Utility method used to fill elements of the InfoCenter left menu of the main InfoCenter page
*/
private function _fillFilters($filters, &$tofill)
private function _fillFilters($filters, &$toFill)
{
$toPrint = "%s?%s=%s&%s=%s";
foreach ($filters as $filterId => $description)
{
$tofill['children'][] = array(
'link' => sprintf(
$toPrint,
site_url(self::INFOCENTER_URI), 'filter_id', $filterId,
FHC_Controller::FHC_CONTROLLER_ID,
$this->getControllerId()
),
'description' => $description
$toFill['children'][] = $this->navigationlib->oneLevel(
$description, // description
sprintf(
'%s?%s=%s',
site_url(self::INFOCENTER_URI),
'filter_id',
$filterId
) // link
);
}
}
@@ -901,20 +918,18 @@ class InfoCenter extends Auth_Controller
/**
* Utility method used to fill elements of the InfoCenter left menu of the freigegeben InfoCenter page
*/
private function _fillFiltersFreigegeben($filters, &$tofill)
private function _fillFiltersFreigegeben($filters, &$toFill)
{
$toPrint = "%s?%s=%s&%s=%s";
foreach ($filters as $filterId => $description)
{
$tofill['children'][] = array(
'link' => sprintf(
$toPrint,
site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE), 'filter_id', $filterId,
FHC_Controller::FHC_CONTROLLER_ID,
$this->getControllerId()
),
'description' => $description
$toFill['children'][] = $this->navigationlib->oneLevel(
$description, // description
sprintf(
'%s?%s=%s',
site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE),
'filter_id',
$filterId
) // link
);
}
}
@@ -923,23 +938,26 @@ class InfoCenter extends Auth_Controller
* Utility method used to fill elements of the InfoCenter left menu
* with the list of the custom filter of the authenticated user
*/
private function _fillCustomFilters($filters, &$tofill)
private function _fillCustomFilters($filters, &$toFill)
{
$toPrint = "%s?%s=%s&%s=%s";
foreach ($filters as $filterId => $description)
{
$tofill['children'][] = array(
'link' => sprintf(
$toPrint,
site_url(self::INFOCENTER_URI), 'filter_id', $filterId,
FHC_Controller::FHC_CONTROLLER_ID,
$this->getControllerId()
),
'description' => $description,
'subscriptDescription' => 'Remove',
'subscriptLinkClass' => 'remove-custom-filter',
'subscriptLinkValue' => $filterId
$toFill['children'][] = $this->navigationlib->oneLevel(
$description, // description
sprintf(
'%s?%s=%s',
site_url(self::INFOCENTER_URI),
'filter_id',
$filterId
), // link
null, // children
'', // icon
false, // expand
'Remove', // subscriptDescription
'remove-custom-filter', // subscriptLinkClass
$filterId, // subscriptLinkValue
null, // sort
null // requiredPermissions
);
}
}
@@ -1058,6 +1076,8 @@ class InfoCenter extends Auth_Controller
show_error($prestudenten->retval);
}
$interessentenCount = array();
foreach ($prestudenten->retval as $prestudent)
{
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent->prestudent_id);
@@ -1079,43 +1099,128 @@ class InfoCenter extends Auth_Controller
//if prestudent is not interessent or is already bestaetigt, then show only as information, non-editable
$zgvpruefung->infoonly = !isset($zgvpruefung->prestudentstatus) || isset($zgvpruefung->prestudentstatus->bestaetigtam) || $zgvpruefung->prestudentstatus->status_kurzbz != 'Interessent';
//numeric application priority and arrows for changing
$zgvpruefung->changeup = false;
$zgvpruefung->changedown = false;
if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz == 'Interessent')
{
if (isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz))
{
$studiensemester = $zgvpruefung->prestudentstatus->studiensemester_kurzbz;
$zgvpruefung->changeup = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, -1);
$zgvpruefung->changedown = $this->PrestudentModel->checkPrioChange($zgvpruefung->prestudent_id, $studiensemester, 1);
if (array_key_exists($studiensemester, $interessentenCount))
$interessentenCount[$studiensemester]++;
else
$interessentenCount[$studiensemester] = 1;
}
}
$zgvpruefungen[] = $zgvpruefung;
}
// Interessenten come first, otherwise by bewerbungsdatum desc, then by prestudent_id desc
usort($zgvpruefungen, function ($a, $b) {
$bewdatesort = isset($a->prestudentstatus) && isset($b->prestudentstatus) ? strcmp($b->prestudentstatus->bewerbung_abgeschicktamum, $a->prestudentstatus->bewerbung_abgeschicktamum) : 0;
$defaultsort = $bewdatesort === 0 ? (int)$b->prestudent_id - (int)$a->prestudent_id : $bewdatesort;
if (!isset($a->prestudentstatus->status_kurzbz) || !isset($b->prestudentstatus->status_kurzbz))
return $defaultsort;
elseif ($a->prestudentstatus->status_kurzbz === 'Interessent' && $b->prestudentstatus->status_kurzbz === 'Interessent')
{
//infoonly Interessenten come after new Interessenten
if ($a->infoonly === $b->infoonly)
return $defaultsort;
elseif ($a->infoonly)
return 1;
elseif ($b->infoonly)
return -1;
}
elseif ($a->prestudentstatus->status_kurzbz === 'Interessent')
return -1;
elseif ($b->prestudentstatus->status_kurzbz === 'Interessent')
return 1;
else
return $defaultsort;
});
$this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
$this->_sortPrestudents($zgvpruefungen);
$statusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => 'Abgewiesener'))->retval;
$data = array (
'zgvpruefungen' => $zgvpruefungen,
'numberinteressenten' => $interessentenCount,
'statusgruende' => $statusgruende
);
return $data;
}
/**
* Helper function for sorting prestudents
* @param $zgvpruefungen
*/
private function _sortPrestudents(&$zgvpruefungen)
{
usort($zgvpruefungen, function ($a, $b) {
//sort:
// 1: Studiensemester
if (isset($a->prestudentstatus->studiensemester_kurzbz) || isset($b->prestudentstatus->studiensemester_kurzbz))
{
if (!isset($a->prestudentstatus->studiensemester_kurzbz))
return 1;
elseif(!isset($b->prestudentstatus->studiensemester_kurzbz))
return -1;
$starta = $this->StudiensemesterModel->load($a->prestudentstatus->studiensemester_kurzbz);
if (!hasData($starta))
{
show_error($starta->retval);
}
$startb = $this->StudiensemesterModel->load($b->prestudentstatus->studiensemester_kurzbz);
if (!hasData($startb))
{
show_error($startb->retval);
}
$starta = date_format(date_create($starta->retval[0]->start), 'Y-m-d');
$startb = date_format(date_create($startb->retval[0]->start), 'Y-m-d');
if ($starta > $startb)
return -1;
elseif ($starta < $startb)
return 1;
}
// 2: Status
if (isset($a->prestudentstatus->status_kurzbz) || isset($a->prestudentstatus->status_kurzbz))
{
if (!isset($b->prestudentstatus->status_kurzbz))
return -1;
elseif (!isset ($a->prestudentstatus->status_kurzbz))
return 1;
elseif ($a->prestudentstatus->status_kurzbz !== $b->prestudentstatus->status_kurzbz)
{
if ($a->prestudentstatus->status_kurzbz === 'Interessent')
return -1;
elseif ($b->prestudentstatus->status_kurzbz === 'Interessent')
return 1;
}
}
// 3: Priorisierung, Nulls last
if (isset($a->priorisierung) || isset($b->priorisierung))
{
if (!isset($a->priorisierung))
return 1;
elseif (!isset($b->priorisierung))
return -1;
elseif ($a->priorisierung > $b->priorisierung)
return 1;
elseif ($a->priorisierung < $b->priorisierung)
return -1;
}
// 4: Bewerbungsdatum
$starta = isset($a->prestudentstatus->bewerbung_abgeschicktamum) ? $a->prestudentstatus->bewerbung_abgeschicktamum : null;
$startb = isset($b->prestudentstatus->bewerbung_abgeschicktamum) ? $b->prestudentstatus->bewerbung_abgeschicktamum : null;
if (isset($starta) || isset($startb))
{
if (!isset($starta))
return 1;
elseif(!isset($startb))
return -1;
elseif ($starta > $startb)
return -1;
elseif ($starta < $startb)
return 1;
}
// 5: prestudentid
return (int)$b->prestudent_id - (int)$a->prestudent_id;
});
}
/**
* Helper function for redirecting to initial page for person from a prestudent-specific page
* @param $prestudent_id
+40 -14
View File
@@ -26,6 +26,8 @@ class DB_Model extends FHC_Model
private $executedQueryMetaData;
private $executedQueryListFields;
private $debugMode;
/**
* Constructor
*/
@@ -42,6 +44,10 @@ class DB_Model extends FHC_Model
// Loads the UDF library
$this->load->library('UDFLib');
// Loads the logs library
$this->load->library('LogLib');
$this->debugMode = isset($this->db->db_debug) && $this->db->db_debug === true;
}
// ------------------------------------------------------------------------------------------
@@ -62,7 +68,11 @@ class DB_Model extends FHC_Model
if (isError($validate = $this->_manageUDFs($data, $this->dbTable))) return $validate;
// DB-INSERT
if ($this->db->insert($this->dbTable, $data))
$insert = $this->db->insert($this->dbTable, $data);
$this->_logLastQuery();
if ($insert)
{
// If the table has a primary key that uses a sequence
if ($this->hasSequence === true)
@@ -126,7 +136,11 @@ class DB_Model extends FHC_Model
$this->db->where($tmpId);
// DB-UPDATE
if ($this->db->update($this->dbTable, $data))
$update = $this->db->update($this->dbTable, $data);
$this->_logLastQuery();
if ($update)
{
return success($id);
}
@@ -164,7 +178,11 @@ class DB_Model extends FHC_Model
}
// DB-DELETE
if ($this->db->delete($this->dbTable, $tmpId))
$delete = $this->db->delete($this->dbTable, $tmpId);
$this->_logLastQuery();
if ($delete)
{
return success($id);
}
@@ -201,15 +219,7 @@ class DB_Model extends FHC_Model
$tmpId = array($this->pk => $id);
}
// DB-SELECT
if ($result = $this->db->get_where($this->dbTable, $tmpId))
{
return success($this->_toPhp($result));
}
else
{
return error($this->db->error(), FHC_DB_ERROR);
}
return $this->loadWhere($tmpId);
}
/**
@@ -223,7 +233,11 @@ class DB_Model extends FHC_Model
if (is_null($this->dbTable)) return error(FHC_MODEL_ERROR, FHC_NODBTABLE);
// Execute query
if ($result = $this->db->get_where($this->dbTable, $where))
$result = $this->db->get_where($this->dbTable, $where);
$this->_logLastQuery();
if ($result)
{
return success($this->_toPhp($result));
}
@@ -292,6 +306,9 @@ class DB_Model extends FHC_Model
// Execute the query
$resultDB = $this->db->get_where($this->dbTable, $where);
$this->_logLastQuery();
// If everything went ok...
if ($resultDB)
{
@@ -603,7 +620,6 @@ class DB_Model extends FHC_Model
// Workaround to get metadata from this table
$result = $this->db->query(sprintf(DB_Model::QUERY_LIST_FIELDS, $this->dbTable));
if (is_object($result))
{
$listFields = $result->list_fields();
@@ -736,6 +752,8 @@ class DB_Model extends FHC_Model
$resultDB = $this->db->query($query);
}
$this->_logLastQuery();
// If no errors occurred
if ($resultDB)
{
@@ -940,4 +958,12 @@ class DB_Model extends FHC_Model
return $this->execQuery($query, array(strtolower($schema), strtolower($table)));
}
/**
*
*/
private function _logLastQuery()
{
if ($this->debugMode) $this->loglib->logDebug($this->db->last_query());
}
}
+5 -6
View File
@@ -263,7 +263,6 @@ class FiltersLib
public function generateDatasetQuery($query, $filters)
{
$datasetQuery = 'SELECT * FROM ('.$query.') '.self::DATASET_TABLE_ALIAS;
$trimedval = trim($query);
// If the given query is valid and the parameter filters is an array
if (!isEmptyString($query) && $filters != null && is_array($filters))
@@ -366,7 +365,7 @@ class FiltersLib
public function removeSelectedField($selectedField)
{
$removeSelectedField = false;
$trimedval = (isset($selectedField)?trim($selectedField):'');
// Checks the parameter selectedField
if (!isEmptyString($selectedField))
{
@@ -400,7 +399,7 @@ class FiltersLib
public function addSelectedField($selectedField)
{
$removeSelectedField = false;
$trimedval = (isset($selectedField)?trim($selectedField):'');
// Checks the parameter selectedField
if (!isEmptyString($selectedField))
{
@@ -429,7 +428,7 @@ class FiltersLib
public function removeAppliedFilter($appliedFilter)
{
$removeAppliedFilter = false;
$trimedval = (isset($appliedFilter)?trim($appliedFilter):'');
// Checks the parameter appliedFilter
if (!isEmptyString($appliedFilter))
{
@@ -517,7 +516,7 @@ class FiltersLib
public function addFilter($filter)
{
$addFilter = false;
$trimedval = (isset($filter)?trim($filter):'');
// Checks the parameter filter
if (!isEmptyString($filter))
{
@@ -560,7 +559,7 @@ class FiltersLib
public function saveCustomFilter($customFilterDescription)
{
$saveCustomFilter = false; // by default returns a failure
$trimedval = (isset($customFilterDescription)?trim($customFilterDescription):'');
// Checks parameter customFilterDescription if not valid stop the execution
if (isEmptyString($customFilterDescription))
{
+45 -39
View File
@@ -16,27 +16,48 @@ class LogLib
const CLASS_POSTFIX = '->';
const LINE_SEPARATOR = ':';
// --------------------------------------------------------------------------------------------------------------
// Public methods
/**
* format
* logDebug
*/
private function format($class, $function, $line)
public function logDebug($message)
{
$formatted = LogLib::CALLER_PREFIX;
if (!is_null($class) && $class != '')
{
$formatted .= $class.LogLib::CLASS_POSTFIX;
}
$formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' ';
return $formatted;
$this->_log(LogLib::DEBUG, $message);
}
/**
* getCaller
* logInfo
*/
private function getCaller()
public function logInfo($message)
{
$this->_log(LogLib::INFO, $message);
}
/**
* logError
*/
public function logError($message)
{
$this->_log(LogLib::ERROR, $message);
}
// --------------------------------------------------------------------------------------------------------------
// Private methods
/**
* log
*/
private function _log($level, $message)
{
log_message($level, $this->_getCaller().$message);
}
/**
* _getCaller
*/
private function _getCaller()
{
$classIndex = 3;
$functionIndex = 3;
@@ -60,38 +81,23 @@ class LogLib
$line = $backtrace_arr[$lineIndex]['line'];
}
return $this->format($class, $function, $line);
return $this->_format($class, $function, $line);
}
/**
* log
* format
*/
private function log($level, $message)
private function _format($class, $function, $line)
{
log_message($level, $this->getCaller().$message);
}
$formatted = LogLib::CALLER_PREFIX;
/**
* logDebug
*/
public function logDebug($message)
{
$this->log(LogLib::DEBUG, $message);
}
if (!is_null($class) && $class != '')
{
$formatted .= $class.LogLib::CLASS_POSTFIX;
}
/**
* logInfo
*/
public function logInfo($message)
{
$this->log(LogLib::INFO, $message);
}
$formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' ';
/**
* logError
*/
public function logError($message)
{
$this->log(LogLib::ERROR, $message);
return $formatted;
}
}
+4 -4
View File
@@ -69,7 +69,7 @@ class NavigationLib
public function oneLevel(
$description, $link = '#', $children = null, $icon = '', $expand = false,
$subscriptDescription = null, $subscriptLinkClass = null, $subscriptLinkValue = null, $target = '',
$sort = null, $requiredPermissions = null)
$sort = null, $requiredPermissions = null, $subscriptLinkHref = '#')
{
return array(
'description' => $description,
@@ -82,7 +82,8 @@ class NavigationLib
'subscriptLinkClass' => $subscriptLinkClass,
'subscriptLinkValue' => $subscriptLinkValue,
'sort' => $sort,
'requiredPermissions' => $requiredPermissions
'requiredPermissions' => $requiredPermissions,
'subscriptLinkHref' => $subscriptLinkHref
);
}
@@ -235,8 +236,7 @@ class NavigationLib
{
$extensionArray = array_merge_recursive(
$extensionArray,
$this->_wildcardsearch($config[$configName],
$navigationPage)
$this->_wildcardsearch($config[$configName], $navigationPage)
);
}
}
-1
View File
@@ -194,7 +194,6 @@ class PhrasesLib
{
$_phrase = $this->_phrases[$i]; // single phrase
$trimedval = trim($_phrase->text);
// If the single phrase match the given parameters and is not an empty string
if ($_phrase->category == $category
&& $_phrase->phrase == $phrase
+242 -1
View File
@@ -185,7 +185,6 @@ class Prestudent_model extends DB_Model
return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id));
}
/**
* gets extended zgv data (with zgv bezeichnung) for a prestudent
* includes last status, Studiengang, zgv, zgv master
@@ -219,6 +218,18 @@ class Prestudent_model extends DB_Model
if (count($lastStatus->retval) > 0)
{
// get Studiengangname from Studienlan and -ordnung
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent($prestudent_id);
if ($studienordnung->error)
return error($studienordnung->retval);
if (count($studienordnung->retval) > 0)
{
$lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang;
$lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung;
$lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch;
}
$this->load->model('system/sprache_model', 'SpracheModel');
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
@@ -278,4 +289,234 @@ class Prestudent_model extends DB_Model
return $this->execQuery($qry, $parametersArray);
}
/**
* Returns a list with Bewerbungen (applications)
* @param $person_id person who sent application(s)
* @param string $studiensemester_kurzbz
* @param bool $abgeschickt optional, wether application was filled out and sent
* @param bool $bestaetigt optional, wether application was confirmed by infocenter
* @return array with Bewerber
*/
public function getBewerbungen($person_id, $studiensemester_kurzbz = null, $abgeschickt = null, $bestaetigt = null)
{
$bewerbungen = array();
$prestudents = $this->loadWhere(array('person_id' => $person_id));
if (!hasData($prestudents))
return $bewerbungen;
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
foreach ($prestudents->retval as $prestudent)
{
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent->prestudent_id, $studiensemester_kurzbz);
if (!hasData($lastStatus))
continue;
$lastStatus = $lastStatus->retval[0];
if ($lastStatus->status_kurzbz !== 'Interessent')
continue;
$bewerbung_abgeschicktamum = $lastStatus->bewerbung_abgeschicktamum;
$bestaetigtam = $lastStatus->bestaetigtam;
$abgeschicktcond = true;
if (($abgeschickt === false && isset($bewerbung_abgeschicktamum)) || ($abgeschickt === true && !isset($bewerbung_abgeschicktamum)))
$abgeschicktcond = false;
$bestaetigtcond = true;
if (($bestaetigt === false && isset($bestaetigtam)) || ($bestaetigt === true && !isset($bestaetigtam)))
$bestaetigtcond = false;
if ($bestaetigtcond && $abgeschicktcond)
{
$prestudent->lastStatus = $lastStatus;
$bewerbungen[] = $prestudent;
}
}
return $bewerbungen;
}
/**
* Checks if application priority can be changed for a prestudent
* @param $prestudent_id
* @param $studiensemester Semester in which Prestudent applied
* @param $change increase priority (< 0) or decrease priority (> 0)
* @return bool wether priority can be changed
*/
public function checkPrioChange($prestudent_id, $studiensemester, $change)
{
if (!is_numeric($change))
return false;
$this->addSelect('person_id, priorisierung');
$prestudent = $this->load($prestudent_id);
if (!hasData($prestudent))
return false;
$person_id = $prestudent->retval[0]->person_id;
$bewerberarr = $this->getBewerbungen($person_id, $studiensemester);
//Prio can be added when prio is null and there is only one prestudent
if (count($bewerberarr) === 1 && !isset($prestudent->retval[0]->priorisierung) && $change < 0)
return true;
if (count($bewerberarr) <= 1)
return false;
if (!isset($prestudent->retval[0]->priorisierung))
{
if ($change < 0)
return true; //null values can be changed to priority numbers (prority increase)
else
return false;
}
$priomin = 0;
$priomax = PHP_INT_MAX;
$currprio = intval($prestudent->retval[0]->priorisierung);
foreach ($bewerberarr as $bewerber)
{
if (is_numeric($bewerber->priorisierung))
{
$bewprio = intval($bewerber->priorisierung);
if ($bewprio < $priomax)
$priomax = $bewprio;
if ($bewprio > $priomin)
$priomin = $bewprio;
}
}
//no prio change when prestudent has max or min prio
if (($currprio === $priomax && $change < 0) || ($currprio === $priomin && $change > 0))
{
return false;
}
return true;
}
/**
* Changes application priority for a prestudent
* Swaps priorities with nearest neighbour (nearest bewerber/prestudent)
* for the same studiensemester in order to move priority up/down
* @param $prestudent_id
* @param $change increase priority (< 0) or decrease priority (> 0)
* @return bool wether change of priority was sucessfull
*/
public function changePrio($prestudent_id, $change)
{
$this->addSelect('person_id, priorisierung');
$prestudent = $this->load($prestudent_id);
if (!hasData($prestudent))
return false;
$this->load->model('prestudentstatus_model', 'PrestudentstatusModel');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id, null, 'Interessent');
if (!hasData($lastStatus))
return false;
$studiensemester_kurzbz = $lastStatus->retval[0]->studiensemester_kurzbz;
if (!$this->checkPrioChange($prestudent_id, $studiensemester_kurzbz, $change))
return false;
$person_id = $prestudent->retval[0]->person_id;
$currprio = intval($prestudent->retval[0]->priorisierung);
$difftonext = PHP_INT_MAX;
$neighbour = null;
$bewerberarr = $this->getBewerbungen($person_id, $studiensemester_kurzbz );
foreach ($bewerberarr as $bewerber)
{
if (is_numeric($bewerber->priorisierung))
{
$bewprio = intval($bewerber->priorisierung);
$diff = 0;
if ($change < 0 && ($bewprio < $currprio || is_null($prestudent->retval[0]->priorisierung))) //prio up
{
$diff = $currprio - $bewprio;
}
elseif ($change > 0 && $bewprio > $currprio)
{
$diff = $bewprio - $currprio;
}
if ($diff !== 0 && $diff < $difftonext)
{
$difftonext = $diff;
$neighbour = $bewerber;
}
}
}
if (is_null($prestudent->retval[0]->priorisierung))
{
//if null value, add as prio 1
$newprio = isset($neighbour->priorisierung) ? intval($neighbour->priorisierung) + 1 : 1;
$result = $this->PrestudentModel->update(
$prestudent_id,
array(
'priorisierung' => $newprio
)
);
if (isError($result))
{
return false;
}
else
{
return true;
}
}
else
{
$this->db->trans_start(false);
//prio swap
$resultFirst = $this->PrestudentModel->update(
$prestudent_id,
array(
'priorisierung' => intval($neighbour->priorisierung)
)
);
$resultSecond = $this->PrestudentModel->update(
$neighbour->prestudent_id,
array(
'priorisierung' => $currprio
)
);
// Transaction complete!
$this->db->trans_complete();
// Check if everything went ok during the transaction
if ($this->db->trans_status() === false || isError($resultFirst) || isError($resultSecond))
{
$this->db->trans_rollback();
return false;
}
else
{
$this->db->trans_commit();
return true;
}
}
}
}
@@ -37,10 +37,11 @@ class Prestudentstatus_model extends DB_Model
array_push($parametersArray, $studiensemester_kurzbz);
$query .= ' AND studiensemester_kurzbz = ?';
}
if ($status_kurzbz != '')
{
array_push($parametersArray, $status_kurzbz);
$query .= ' AND status_kurzbz = ?';
$query .= ' AND tbl_prestudentstatus.status_kurzbz = ?';
}
$query .= ' ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1';
@@ -113,6 +114,41 @@ class Prestudentstatus_model extends DB_Model
* @param $prestudent_id
* @return array
*/
public function getStudienordnungFromPrestudent($prestudent_id)
{
$lastStatus = $this->getLastStatus($prestudent_id);
if ($lastStatus->error)
{
return error($lastStatus->retval);
}
if (count($lastStatus->retval) > 0)
{
$lastStatus = $lastStatus->retval[0];
$this->addJoin('lehre.tbl_studienplan', 'studienplan_id');
$this->addJoin('lehre.tbl_studienordnung', 'studienordnung_id');
return $this->loadWhere(
array(
'public.tbl_prestudentstatus.prestudent_id' => $lastStatus->prestudent_id,
'public.tbl_prestudentstatus.status_kurzbz' => $lastStatus->status_kurzbz,
'public.tbl_prestudentstatus.studiensemester_kurzbz' => $lastStatus->studiensemester_kurzbz,
'public.tbl_prestudentstatus.ausbildungssemester' => $lastStatus->ausbildungssemester
)
);
}
else
{
return success(array());
}
}
/**
* Gets Studienordnung for last status of Prestudent, including ZGV information text
* @param $prestudent_id
* @return array
*/
public function getStudienordnungWithZgvText($prestudent_id)
{
$lastStatus = $this->getLastStatus($prestudent_id);
@@ -140,7 +176,7 @@ class Prestudentstatus_model extends DB_Model
}
else
{
return sucess(array());
return success(array());
}
}
}
@@ -11,4 +11,15 @@ class Adresse_model extends DB_Model
$this->dbTable = 'public.tbl_adresse';
$this->pk = 'adresse_id';
}
/**
* gets person data from uid
* @param $uid
* @return array
*/
public function getZustellAdresse($person_id)
{
return $this->loadWhere(array('person_id' => $person_id, 'zustelladresse'=> true));
}
}
+58
View File
@@ -0,0 +1,58 @@
<?php
$filterWidgetArray = array(
'query' => '
SELECT
person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr,
staatsbuergerschaft, gebdatum
FROM
public.tbl_person
WHERE
matr_nr is not null
AND bpk is null
AND EXISTS(SELECT 1 FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) AND
person_id=tbl_person.person_id AND tbl_benutzer.aktiv=true)
',
'requiredPermissions' => 'admin',
'additionalColumns' => array('Details'),
'columnsAliases' => array(
'PersonID',
ucfirst($this->p->t('person', 'vorname')) ,
ucfirst($this->p->t('person', 'nachname')),
ucfirst($this->p->t('person', 'geschlecht')),
ucfirst($this->p->t('person', 'svnr')),
ucfirst($this->p->t('person', 'ersatzkennzeichen')),
ucfirst($this->p->t('person', 'matrikelnummer')),
ucfirst($this->p->t('person', 'staatsbuergerschaft')),
ucfirst($this->p->t('person', 'geburtsdatum')),
),
'formatRow' => function($datasetRaw) {
/* NOTE: Dont use $this here for PHP Version compatibility */
$datasetRaw->{'Details'} = sprintf(
'<a href="%s?person_id=%s&origin_page=%s&fhc_controller_id=%s">Details</a>',
site_url('person/BPKWartung/showDetails'),
$datasetRaw->{'person_id'},
'index',
(isset($_GET['fhc_controller_id'])?$_GET['fhc_controller_id']:'')
);
if ($datasetRaw->{'ersatzkennzeichen'} == null)
{
$datasetRaw->{'ersatzkennzeichen'} = '-';
}
if ($datasetRaw->{'svnr'} == null)
{
$datasetRaw->{'svnr'} = '-';
}
return $datasetRaw;
}
);
$filterWidgetArray['app'] = 'core';
$filterWidgetArray['datasetName'] = 'overview';
$filterWidgetArray['filterKurzbz'] = 'BPKWartung';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
?>
+153
View File
@@ -0,0 +1,153 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'bPK Details',
'jquery' => true,
'bootstrap' => true,
'fontawesome' => true,
'jqueryui' => true,
'ajaxlib' => true,
'tablesorter' => true,
'tinymce' => true,
'sbadmintemplate' => true,
'addons' => true,
'navigationwidget' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css',
'public/css/sbadmin2/tablesort_bootstrap.css',
'public/css/infocenter/infocenterDetails.css'
),
'customJSs' => array(
'public/js/bootstrapper.js',
'public/js/tablesort/tablesort.js'
),
'phrases' => array(
'ui' => array(
'gespeichert',
'fehlerBeimSpeichern'
),
'global' => array(
'bis',
'zeilen'
)
)
)
);
?>
<body>
<div id="wrapper">
<?php echo $this->widgetlib->widget('NavigationWidget'); ?>
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row">
<div class="col-lg-8">
<h3 class="page-header">
bPK Details: <?php echo $stammdaten->vorname.' '.$stammdaten->nachname ?>
</h3>
</div>
</div>
<br/>
<section>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-primary">
<div class="panel-heading text-center">
<h4><?php echo ucfirst($this->p->t('global', 'stammdaten')) ?></h4>
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6 table-responsive">
<table class="table">
<?php if (!empty($stammdaten->titelpre)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpre')) ?></strong></td>
<td><?php echo $stammdaten->titelpre ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','nachname')) ?></strong></td>
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<?php if (!empty($stammdaten->titelpost)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td><?php echo $stammdaten->titelpost ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td>
<?php echo date_format(date_create($stammdaten->gebdatum), 'd.m.Y') ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','svnr')) ?></strong></td>
<td>
<?php echo $stammdaten->svnr ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','ersatzkennzeichen')) ?></strong></td>
<td>
<?php echo $stammdaten->ersatzkennzeichen ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','staatsbuergerschaft')) ?></strong></td>
<td>
<?php echo $stammdaten->staatsbuergerschaft ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geschlecht')) ?></strong></td>
<td>
<?php echo $stammdaten->geschlecht ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','bpk')) ?></strong></td>
<td>
<?php echo $stammdaten->bpk ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','postleitzahl')) ?></strong></td>
<td>
<?php echo $adresse->plz ?></td>
</tr>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','strasse')) ?></strong></td>
<td>
<?php echo $adresse->strasse ?></td>
</tr>
</table>
</div>
<div class="col-lg-4 table-responsive">
<form action="<?php echo base_url('soap/datenverbund_client.php?action=pruefeBPK');?>" method="POST" target="_blank">
<input type="hidden" name="vorname" value="<?php echo $stammdaten->vorname; ?>"/>
<input type="hidden" name="nachname" value="<?php echo $stammdaten->nachname; ?>"/>
<input type="hidden" name="geburtsdatum" value="<?php echo mb_str_replace('-','',$stammdaten->gebdatum); ?>"/>
<input type="hidden" name="geschlecht" value="<?php echo mb_strtoupper($stammdaten->geschlecht); ?>"/>
<input type="submit" value="Namenssuche starten" class="btn btn-default"/>
</form>
<br><br>
<form action="<?php echo site_url('person/BPKWartung/saveBPK');?>" method="POST">
<strong>bPK</strong><input type="text" name="bpk" value="" class="form-control"/>
<input type="hidden" name="person_id" value="<?php echo $stammdaten->person_id;?>"/>
<input type="submit" value="Speichern" class="btn btn-default"/>
</form>
</div>
</div> <!-- ./panel-body -->
</div> <!-- ./panel -->
</div> <!-- ./main column -->
</div> <!-- ./main row -->
</section>
</div> <!-- ./container-fluid-->
</div> <!-- ./page-wrapper-->
</div> <!-- ./wrapper -->
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -0,0 +1,51 @@
<?php
$this->load->view(
'templates/FHC-Header',
array(
'title' => 'bPK Wartung',
'jquery' => true,
'jqueryui' => true,
'bootstrap' => true,
'fontawesome' => true,
'sbadmintemplate' => true,
'tablesorter' => true,
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'phrases' => array(
'ui' => array('bitteEintragWaehlen')
),
'customCSSs' => 'public/css/sbadmin2/tablesort_bootstrap.css',
'customJSs' => array('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">
bPK <?php echo ucfirst($this->p->t('global', 'uebersicht')); ?>
</h3>
</div>
</div>
<div>
Bei folgenden Personen mit Matrikelnummer konnte kein bPK ermittelt werden.
Es ist die Namensschreibweise zu prüfen und ggf zu korrigieren.
Falls die Person keine Meldeadresse hat, ist eine Eintragung der
Person in das "Ergänzungsregister für natürliche Personen" notwendig.
<br /><br />
<?php $this->load->view('person/bpk/bpkData.php'); ?>
</div>
</div>
</div>
</div>
</body>
<?php $this->load->view('templates/FHC-Footer'); ?>
@@ -1,200 +1,209 @@
<?php
$APP = 'infocenter';
$NOTBEFORE = '2018-03-01 18:00:00';
$APP = '\'infocenter\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\', \'Interessent rejected\'';
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$filterWidgetArray = array(
'query' => '
SELECT
WITH currentOrNextStudiensemester AS (
SELECT ss.studiensemester_kurzbz
FROM public.tbl_studiensemester ss
WHERE ss.ende > NOW()
ORDER BY ss.ende
LIMIT 3
)
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
pd.parkdate AS "ParkDate",
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
SELECT l.zeitpunkt
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
LIMIT 1
) AS "LastAction",
(
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
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
LIMIT 1
) AS "User/Operator",
(
SELECT
pss.studiensemester_kurzbz
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
SELECT pss.studiensemester_kurzbz
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester",
(
SELECT pss.bewerbung_abgeschicktamum
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "SendDate",
(
SELECT count(*)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
SELECT COUNT(*)
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
LIMIT 1
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
LIMIT 1
),\', \'
LIMIT 1
) AS "StgAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NULL)
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NULL
AND pss.bestaetigtam IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
LIMIT 1
),\', \'
LIMIT 1
) AS "StgNichtAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN lehre.tbl_studienplan using (studienplan_id)
WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\')
AND (pss.bewerbung_abgeschicktamum IS NULL)
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE start >= NOW()
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
AND pss.bewerbung_abgeschicktamum IS NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = pss.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
AND not exists (select 1 from tbl_prestudentstatus psss where psss.prestudent_id = pss.prestudent_id and psss.status_kurzbz = \'Abgewiesener\' and psss.studiensemester_kurzbz = \'WS2018\')
LIMIT 1
),\', \'
) AS "StgAktiv",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
pd.parkdate AS "ParkDate"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
LEFT JOIN (
SELECT person_id, zeitpunkt as parkdate
FROM system.tbl_log
WHERE logtype_kurzbz = \'Processstate\'
AND logdata->>\'name\' = \'Parked\'
AND zeitpunkt >= now()
LIMIT 1
) AS "StgAktiv"
FROM public.tbl_person p
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
tpl.uid AS lockuser
FROM system.tbl_person_lock tpl
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
LEFT JOIN (
SELECT l.person_id,
l.zeitpunkt AS parkdate
FROM system.tbl_log l
WHERE l.logtype_kurzbz = '.$LOGTYPE_KURZBZ.'
AND l.logdata->>\'name\' = '.$LOGDATA_NAME_PARKED.'
AND l.zeitpunkt >= NOW()
) pd USING(person_id)
WHERE
EXISTS(
WHERE
EXISTS (
SELECT 1
FROM
public.tbl_prestudent
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
person_id=p.person_id
AND tbl_studiengang.typ in(\'b\')
AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus
WHERE prestudent_id=tbl_prestudent.prestudent_id
ORDER BY datum DESC, insertamum DESC, ext_id DESC
LIMIT 1
)
AND EXISTS (
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = \'Interessent\'
AND (bestaetigtam IS NULL AND (bewerbung_abgeschicktamum is null OR bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\'))
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
)
FROM public.tbl_prestudent sps
JOIN public.tbl_studiengang ssg USING(studiengang_kz)
WHERE sps.person_id = p.person_id
AND ssg.typ IN ('.$STUDIENGANG_TYP.')
AND '.$INTERESSENT_STATUS.' = (
SELECT spss.status_kurzbz
FROM public.tbl_prestudentstatus spss
WHERE spss.prestudent_id = sps.prestudent_id
ORDER BY spss.datum DESC, spss.insertamum DESC, spss.ext_id DESC
LIMIT 1
)
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus spss
WHERE spss.prestudent_id = sps.prestudent_id
AND spss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND spss.bestaetigtam IS NULL
AND spss.bewerbung_abgeschicktamum IS NOT NULL
AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
)
)
ORDER BY "LastAction" ASC
ORDER BY "LastAction" ASC
',
'requiredPermissions' => 'infocenter',
'checkboxes' => 'PersonId',
@@ -307,7 +316,7 @@
}
);
$filterWidgetArray['app'] = $APP;
$filterWidgetArray['app'] = 'infocenter';
$filterWidgetArray['datasetName'] = 'overview';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterSentApplicationAll';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
@@ -15,7 +15,8 @@
'navigationwidget' => true,
'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css',
'public/css/sbadmin2/tablesort_bootstrap.css'
'public/css/sbadmin2/tablesort_bootstrap.css',
'public/css/infocenter/infocenterDetails.css'
),
'customJSs' => array(
'public/js/bootstrapper.js',
@@ -71,6 +72,8 @@
<i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
</a>
<?php endif; ?>
<?php else: ?>
&nbsp;
<?php endif; ?>
</div>
</div>
@@ -118,7 +121,7 @@
<?php echo $this->p->t('infocenter', 'zgv').' - '.ucfirst($this->p->t('lehre', 'pruefung'))?>
</h4>
</div>
<div class="panel-body">
<div class="panel-body" id="zgvpruefungen">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
</div><!-- /.main panel body -->
</div> <!-- /.main panel-->
@@ -1,137 +1,114 @@
<?php
$APP = 'infocenter';
$NOTBEFORE = '2018-03-01 18:00:00';
$APP = '\'infocenter\'';
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$filterWidgetArray = array(
'query' => '
SELECT
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
(
SELECT zeitpunkt
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
SELECT l.zeitpunkt
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
LIMIT 1
) AS "LastAction",
(
SELECT insertvon
FROM system.tbl_log
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\')
AND person_id = p.person_id
ORDER BY zeitpunkt DESC
LIMIT 1
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
LIMIT 1
) AS "User/Operator",
(
SELECT
pss.studiensemester_kurzbz
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
SELECT pss.studiensemester_kurzbz
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester",
(
SELECT pss.bewerbung_abgeschicktamum
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "SendDate",
(
SELECT count(*)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
SELECT COUNT(*)
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\')
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
),\', \'
) AS "StgAbgeschickt",
pl.zeitpunkt AS "LockDate",
pl.lockuser as "LockUser"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
WHERE
EXISTS(
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz)), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
LIMIT 1
) AS "StgAbgeschickt"
FROM public.tbl_person p
LEFT JOIN (
SELECT tpl.person_id,
tpl.zeitpunkt,
tpl.uid AS lockuser
FROM system.tbl_person_lock tpl
WHERE tpl.app = '.$APP.'
) pl USING(person_id)
WHERE
EXISTS (
SELECT 1
FROM
public.tbl_prestudent
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
person_id=p.person_id
AND tbl_studiengang.typ in(\'b\')
AND EXISTS (
SELECT
1
FROM
public.tbl_prestudentstatus
WHERE
prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = \'Interessent\'
AND (bestaetigtam IS NOT NULL AND bewerbung_abgeschicktamum >= \''.$NOTBEFORE.'\')
AND studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
FROM public.tbl_prestudent ps
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE ps.person_id = p.person_id
AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND EXISTS (
SELECT 1
FROM public.tbl_prestudentstatus pss
WHERE pss.prestudent_id = ps.prestudent_id
AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bestaetigtam IS NOT NULL
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
)
)
ORDER BY "LastAction" DESC
ORDER BY "LastAction" DESC
',
'requiredPermissions' => 'infocenter',
'checkboxes' => 'PersonId',
@@ -216,7 +193,7 @@
}
);
$filterWidgetArray['app'] = $APP;
$filterWidgetArray['app'] = 'infocenter';
$filterWidgetArray['datasetName'] = 'freigegeben';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterFreigegeben5days';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
@@ -1,6 +1,12 @@
<div class="row">
<div class="col-lg-6 table-responsive">
<table class="table">
<?php if (!empty($stammdaten->titelpre)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpre')) ?></strong></td>
<td><?php echo $stammdaten->titelpre ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td>
@@ -10,6 +16,12 @@
<td>
<?php echo $stammdaten->nachname ?></td>
</tr>
<?php if (!empty($stammdaten->titelpost)): ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','titelpost')) ?></strong></td>
<td><?php echo $stammdaten->titelpost ?></td>
</tr>
<?php endif; ?>
<tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td>
@@ -57,21 +69,23 @@
<?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<td><?php echo ucfirst($this->p->t('person','email')) ?></td>
<?php elseif ($kontakt->kontakttyp === 'telefon'): ?>
<td><?php echo ucfirst($this->p->t('person','telefon')) ?></td>
<td><?php echo ucfirst($this->p->t('person', 'email')) ?></td>
<?php elseif ($kontakt->kontakttyp === 'telefon' || $kontakt->kontakttyp === 'mobil'): ?>
<td><?php echo ucfirst($this->p->t('person', 'telefon')) ?></td>
<?php else: ?>
<td><?php echo ucfirst($kontakt->kontakttyp) ?></td>
<?php endif; ?>
<td>
<?php echo '<span class="'.$kontakt->kontakttyp.'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php
endif;
echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'):
?>
</a>
<?php endif; ?>
</a>
<?php endif; ?>
<?php echo '</span>'?>
</td>
<td><?php echo $kontakt->anmerkung; ?></td>
@@ -1,43 +1,90 @@
<div class="panel-group">
<?php
$unique_studsemester = array();
$first = true;
foreach ($zgvpruefungen as $zgvpruefung):
$infoonly = $zgvpruefung->infoonly;
$studiensemester = isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '';
$studiengangkurzbz = empty($zgvpruefung->prestudentstatus->studiengangkurzbzlang) ? $zgvpruefung->studiengang : $zgvpruefung->prestudentstatus->studiengangkurzbzlang;
$studiengangbezeichnung = empty($zgvpruefung->prestudentstatus->studiengangbezeichnung) ? $zgvpruefung->studiengangbezeichnung : $zgvpruefung->prestudentstatus->studiengangbezeichnung;
//set bootstrap columns for zgv form
$columns = array(4, 3, 2, 3);
$headercolumns = array(7, 5);
if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin))
{
$headercolumns[0] = 5;
$headercolumns[1] = 7;
$headercolumns[0] = 4;
$headercolumns[1] = 8;
}
if (!$first)
echo '<br />';
if (!in_array($studiensemester, $unique_studsemester)):
$unique_studsemester[] = $studiensemester;
if (!$first)
echo '<br/>';
if (isEmptyString($studiensemester)):
?>
<br/>
<h4 class="headercolorbg text-center"><?php echo $this->p->t('global', 'ohne').' '.$this->p->t('lehre', 'studiensemester') ?></h4>
<?php else: ?>
<h4 class="headercolorbg text-center"><?php echo $studiensemester; ?></h4>
<?php endif; ?>
<?php endif; ?>
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-xs-<?php echo $headercolumns[0]; ?>">
<h4 class="panel-title">
<a data-toggle="collapse"
href="#collapse<?php echo $zgvpruefung->prestudent_id ?>"><?php echo $zgvpruefung->studiengang.' - '.$zgvpruefung->studiengangbezeichnung.' | '.(isset($zgvpruefung->prestudentstatus->status_kurzbz) ? $zgvpruefung->prestudentstatus->status_kurzbz : '');
href="#collapse<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $studiengangkurzbz.' - '.$studiengangbezeichnung.' | '.(isset($zgvpruefung->prestudentstatus->status_kurzbz) ? $zgvpruefung->prestudentstatus->status_kurzbz : '');
?></a>
</h4>
</div>
<?php if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'/* && !$infoonly*/): ?>
<?php
$changeup = isset($zgvpruefung->changeup) && $zgvpruefung->changeup === true;
$changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true;
?>
<div class="col-xs-<?php echo $headercolumns[1]; ?> text-right">
<?php if (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
<span<?php echo $changeup || $changedown ? ' class="zgvheaderbeforeprio"' : ''?>>
<?php if ($infoonly): ?>
<?php if (isset($zgvpruefung->prestudentstatus->bestaetigtam)): ?>
<div class="col-xs-<?php echo $headercolumns[1]; ?> text-right">
<i class="fa fa-check" style="color: green"></i>
<?php echo $this->p->t('global', 'anStudiengangFreigegeben') ?>
</div>
<?php endif; ?>
<?php else: ?>
<div class="col-xs-<?php echo $headercolumns[1]; ?> text-right">
<?php echo ucfirst($this->p->t('infocenter','bewerbung')) . ' ' . $this->p->t('global','abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
<?php echo ucfirst($this->p->t('infocenter', 'bewerbung')) . ' ' . $this->p->t('global', 'abgeschickt') . ': '.(isset($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum) ? '<i class="fa fa-check" style="color:green"></i>' : '<i class="fa fa-times" style="color:red"></i>'); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) ? ' | ' . $this->p->t('infocenter', 'nachfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungsnachfrist), 'd.m.Y') : ''); ?>
<?php echo (isset($zgvpruefung->prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?>
</div>
<?php endif; ?>
<?php
echo ' | ' . ucfirst($this->p->t('infocenter', 'priorisierung')) . ': ';
echo isset($zgvpruefung->priorisierung) ? $zgvpruefung->priorisierung : $this->p->t('global', 'nichtvorhanden'); ?>
</span>
<?php
if ($changeup || $changedown):
$topup = $changeup && $changedown ? 'priotogetherup' : 'prioalone';
$topdown = $changeup && $changedown ? 'priotogetherdown' : 'prioalone';
?>
<span class="zgvheaderrightprio">
<?php if ($changeup): ?>
<button id="prioup_<?php echo $zgvpruefung->prestudent_id ?>" class="prio prioup <?php echo $topup ?>">
<span class="fa fa-caret-up prioarrow"></span>
</button>
<?php endif; ?>
<?php if ($changedown): ?>
<button id="priodown_<?php echo $zgvpruefung->prestudent_id ?>" class="prio priodown <?php echo $topdown ?>">
<span class="fa fa-caret-down prioarrow" id="priodown_<?php echo $zgvpruefung->prestudent_id ?>"></span>
</button>
<?php endif; ?>
<?php endif; ?>
</span>
<?php endif; ?>
</div>
</div>
</div>
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
@@ -49,7 +96,7 @@
<div class="row">
<div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group">
<label><?php echo ucfirst($this->p->t('global','letzterStatus')) . ':' ?></label>
<label><?php echo ucfirst($this->p->t('global', 'letzterStatus')) . ':' ?></label>
<?php
if (isset($zgvpruefung->prestudentstatus->status_kurzbz))
{
@@ -60,8 +107,8 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label><?php echo ucfirst($this->p->t('lehre','studiensemester')) . ':' ?></label>
<?php echo isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?>
<label><?php echo ucfirst($this->p->t('lehre', 'studiensemester')) . ':' ?></label>
<?php echo $studiensemester ?>
</div>
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
@@ -73,7 +120,7 @@
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label><?php echo ucfirst($this->p->t('lehre','organisationsform')) . ':' ?></label>
<label><?php echo ucfirst($this->p->t('lehre', 'organisationsform')) . ':' ?></label>
<span style="display: inline-block">
<?php
$separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : '';
@@ -101,7 +148,7 @@
$zgvinfocolumns = $infoonly ? 4 : 9;
?>
<div class="col-xs-<?php echo $zgvinfocolumns; ?> text-right zgvinfo" id="zgvinfo_<?php echo $zgvpruefung->prestudent_id ?>">
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> <?php echo $this->p->t('infocenter', 'zgv') ?> <?php echo $zgvpruefung->studiengang; ?></a>
<a href="javascript:void(0)"><i class="fa fa-info-circle"></i> <?php echo $this->p->t('infocenter', 'zgv') ?> <?php echo $studiengangkurzbz ?></a>
</div>
</div>
<?php if (!$infoonly)
@@ -114,7 +161,7 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person','ort') . ':'?></label>
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person', 'ort') . ':'?></label>
<?php if ($infoonly):
echo html_escape($zgvpruefung->zgvort);
else:
@@ -127,7 +174,7 @@
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('global','datum') . ':'?></label>
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('global', 'datum') . ':'?></label>
<?php
$zgvdatum = isEmptyString($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
if ($infoonly):
@@ -143,7 +190,7 @@
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group">
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person','nation') . ':'?></label>
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('person', 'nation') . ':'?></label>
<?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez;
else
@@ -173,7 +220,7 @@
</div>
<div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group">
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person','ort') . ':'?></label>
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre', 'master') . ' ' . $this->p->t('person', 'ort') . ':'?></label>
<?php if ($infoonly):
echo $zgvpruefung->zgvmaort;
else:
@@ -186,7 +233,7 @@
</div>
<div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group">
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('global','datum') . ':'?></label>
<label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre', 'master') . ' ' . $this->p->t('global', 'datum') . ':'?></label>
<?php
$zgvmadatum = isEmptyString($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
if ($infoonly):
@@ -201,7 +248,7 @@
</div>
</div>
<div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre','master') . ' ' . $this->p->t('person', 'nation') . ':'?></label>
<div class="form-group"><label><?php echo $this->p->t('infocenter', 'zgv') . ' ' . $this->p->t('lehre', 'master') . ' ' . $this->p->t('person', 'nation') . ':'?></label>
<?php
if ($infoonly)
echo $zgvpruefung->zgvmanation_bez;
@@ -237,69 +284,65 @@
//Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) :
?>
<div class="panel-footer" style="border-top: 1px solid #ddd">
<div class="panel-footer solidtop">
<div class="row">
<div class="col-lg-6 text-left">
<div class="form-inline">
<form method="post" action="saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="fhc_controller_id" value="<?php echo $fhc_controller_id; ?>">
<div class="input-group" id="statusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="statusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
</div>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="submit"
class="btn btn-primary">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
<div class="input-group" id="statusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="statusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
</option>
<?php foreach ($statusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
</div>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
<!-- /.modal-content -->
</div>
</form>
<!-- /.modal-dialog -->
</div>
</div>
</div><!-- /.column-absage -->
<div class="col-lg-6 text-right">
@@ -326,7 +369,7 @@
</button>
</div>
</div>
<div class="modal fade" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
@@ -349,12 +392,10 @@
class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<a href="saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>">
<button type="button"
class="btn btn-primary">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</a>
<button type="button"
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
@@ -374,5 +415,8 @@
?>
</div><!-- /.div collapse -->
</div><!-- /.panel -->
<?php endforeach; // end foreach zgvpruefungen?>
<?php
$first = false;
endforeach; // end foreach zgvpruefungen
?>
</div><!-- /.panel-group -->
+2 -1
View File
@@ -47,7 +47,8 @@ $widthColumn = $msgExists === true ? 8 : 12;
autoresize_min_height: 140,
autoresize_max_height: 495,
//callback to avoid conflict with ajax (for getting body of first message)
init_instance_callback: "initMsgBody"
init_instance_callback: "initMsgBody",
responsive: true
});
function initMsgBody()
Regular → Executable
+3 -3
View File
@@ -619,7 +619,7 @@ echo '
});
}
});
// Autocomplete Feld fuer Ressourcen initialisieren
$("#input_ressource").autocomplete({
source: "coodle_autocomplete.php?work=ressource",
@@ -708,8 +708,8 @@ echo '
error: function() {
alert("Error fetching data for "+typ+" "+id);
},
color:"lightgrey"
//textColor:"black"
color:"lightgrey",
textColor:"#777"
});
}
@@ -286,39 +286,39 @@ foreach ($noten_obj->result as $row)
changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>';
}
}
else
{
alert(resp);
document.getElementById(uid).note.value="";
else
{
alert(resp);
document.getElementById(uid).note.value="";
}
},
},
error:function(result)
{
alert('Speichern der Note fehlgeschlagen');
}
});
}
// *************************************************
// * Formular zum Eintragen einer Pruefung erstellen
// *************************************************
function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ)
{
if(typeof(typ)=='undefined')
typ = 'Termin2';
var str = " <form name='nachpruefung_form'> <table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50;
anlegendiv.style.top = y+"px";
var x = getOffset('x'); x = x+300;
anlegendiv.style.left = x+"px";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+uid+":</b></td></tr>";
str += "<tr><td><?php echo $p->t('global/datum');?>:</td>";
str += "<td><input type='hidden' name='uid' value='"+uid+"'>";
str += "<input type='hidden' name='le_id' value='"+lehreinheit_id+"'>";
str += "<input type='hidden' name='typ' value='"+typ+"'>";
}
// *************************************************
// * Formular zum Eintragen einer Pruefung erstellen
// *************************************************
function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ)
{
if(typeof(typ)=='undefined')
typ = 'Termin2';
var str = " <form name='nachpruefung_form'> <table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50;
anlegendiv.style.top = y+"px";
var x = getOffset('x'); x = x+300;
anlegendiv.style.left = x+"px";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+uid+":</b></td></tr>";
str += "<tr><td><?php echo $p->t('global/datum');?>:</td>";
str += "<td><input type='hidden' name='uid' value='"+uid+"'>";
str += "<input type='hidden' name='le_id' value='"+lehreinheit_id+"'>";
str += "<input type='hidden' name='typ' value='"+typ+"'>";
str += "<input type='text' id='pruefungsdatum' name='datum' size='10' value='"+datum+"'> [DD.MM.YYYY]</td></tr>";
<?php
@@ -342,9 +342,9 @@ foreach ($noten_obj->result as $row)
}
echo '</select></td>';
?>';
str += "</tr><tr><td colspan='2' align='center'>";
str += "</tr><tr><td colspan='2' align='center'>";
str += "<input id='pruefungsnotensave' type='button' name='speichern'";
str +="value='<?php echo $p->t('global/speichern');?>' onclick='pruefungSpeichern();' ></td></tr>";
str +="value='<?php echo $p->t('global/speichern');?>' onclick='pruefungSpeichern();' ></td></tr>";
str += "</table></form>";
anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible";
@@ -432,15 +432,15 @@ foreach ($noten_obj->result as $row)
if (resp == "update_f" || resp == "update")
{
notenstatus.innerHTML = "<img src='../../../../skin/images/changed.png'>";
notenstatus.innerHTML = "<img src='../../../../skin/images/changed.png'>";
if (warningdiv != null)
warningdiv.parentNode.removeChild(warningdiv); // Entfernt das Warning-Div
changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>';
}
document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden";
anlegendiv.innerHTML = "";
anlegendiv.style.visibility = "hidden";
var pruefhtml = "<table><tr><td class='td_datum'>"+datum+"</td>";
changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>';
}
document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden";
anlegendiv.innerHTML = "";
anlegendiv.style.visibility = "hidden";
var pruefhtml = "<table><tr><td class='td_datum'>"+datum+"</td>";
pruefhtml += "<td class='td_note'>"+noten_array[note]+"</td>";
pruefhtml += "<td><input type='button' name='anlegen'";
pruefhtml +=" value='<?php echo $p->t('global/aendern'); ?>' ";
@@ -580,13 +580,13 @@ foreach ($noten_obj->result as $row)
// ****
function GradeImport()
{
var str = "<form name='gradeimport_form'><center><table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
var str = "<form name='gradeimport_form'><center><table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>';
str += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible";
@@ -749,7 +749,7 @@ foreach ($stsem_obj->studiensemester as $studiensemester)
{
$selected = ($stsem == $studiensemester->studiensemester_kurzbz ? 'selected' : '');
$optionvalue = "lvgesamtnoteverwalten.php?lvid=$lvid&stsem=$studiensemester->studiensemester_kurzbz";
$stsem_content .= "<OPTION value='" . $optionvalue . "' $selected>
$studiensemester->studiensemester_kurzbz
</OPTION>\n";
@@ -768,7 +768,7 @@ if (! $rechte->isBerechtigt('admin', 0) && ! $rechte->isBerechtigt('admin', $lv_
tbl_lehrveranstaltung.lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . "
AND tbl_lehreinheit.studiensemester_kurzbz=" . $db->db_add_param($stsem) . "
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=" . $db->db_add_param($user) . ';';
if ($result = $db->db_query($qry))
{
if ($db->db_num_rows($result) == 0)
@@ -803,19 +803,21 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
{
$jetzt = date("Y-m-d H:i:s");
$neuenoten = 0;
$studlist = "<table border='1'>
<tr>
<td><b>" . $p->t('global/personenkz') . "</b></td>
<td><b>" . $p->t('global/nachname') . "</b></td>
<td><b>" . $p->t('global/vorname') . "</b></td>";
<tr>
<td><b>" . $p->t('global/personenkz') . "</b></td>
<td><b>" . $p->t('global/nachname') . "</b></td>
<td><b>" . $p->t('global/vorname') . "</b></td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n";
}
$studlist .= "<td><b>" . $p->t('benotungstool/note') . "</b></td>\n";
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
// studentenquery
$qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr
@@ -839,9 +841,11 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$lvgesamtnote->freigabedatum = $jetzt;
$lvgesamtnote->freigabevon_uid = $user;
$lvgesamtnote->save();
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{
$studlist .= "<td>";
@@ -850,18 +854,20 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$studlist .= "</td>\n";
}
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
if ($lvgesamtnote->updatevon != '')
$studlist .= " (" . $lvgesamtnote->updatevon . ")";
$studlist .= "</td></tr>\n";
$neuenoten ++;
}
}
}
}
$studlist .= "</table>";
// mail an assistentin und den user selber verschicken
if ($neuenoten > 0)
{
@@ -869,29 +875,33 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$sg = new studiengang($lv->studiengang_kz);
$lektor_adresse = $user . "@" . DOMAIN;
$adressen = $sg->email . ", " . $user . "@" . DOMAIN;
$studienplan = new studienplan();
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
$studienplan_bezeichnung = '';
foreach ($studienplan->result as $row)
$studienplan_bezeichnung .= $row->bezeichnung . ' ';
$mit = new mitarbeiter();
$mit->load($user);
$freigeber = "<b>" . mb_strtoupper($user) . "</b>";
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
$mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
$htmlcontent = "<html>
<body>
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
(" . $lv->semester . ". Sem.)
<br><br>" . $p->t('global/benutzer') . " " . $freigeber . " (" . $mit->kurzbz . ")
" . $p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten') . ":
<br><br>\n" . $studlist . "
<br>eingetragen.\n<br><br>
Die Noten können jetzt ins Zeugnis übernommen werden.\n";
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
$htmlcontent.= $studlist;
$htmlcontent.= "
<br>Anzahl der Noten:" . $neuenoten . "
<br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
<br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
</body></html>";
$mail->setHTMLContent($htmlcontent);
$mail->setReplyTo($lektor_adresse);
@@ -909,7 +919,7 @@ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$onclickpath = "notenschluessel.php?lehrveranstaltung_id=$lvid&stsem=$stsem";
$onclickoptions = "height=200, width=350, left=50, top=50, resizable=yes, status=no,";
$onclickoptions .= "scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes";
echo '<br>
<a href="#" onclick="window.open(\'' . $onclickpath . '\',\'Grades\',\'' . $onclickoptions . '\'); return false;">
' . $p->t('gesamtnote/notenschluesselanzeigen') . '</a>';
@@ -1078,7 +1088,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
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))
{
$i = 1;
@@ -1088,20 +1098,20 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
{
$grades[$row_stud->uid]['vorname'] = $row_stud->vorname;
$grades[$row_stud->uid]['nachname'] = $row_stud->nachname;
// Noten aus Uebungstool
$le = new lehreinheit();
$le->load_lehreinheiten($lvid, $stsem);
foreach ($le->lehreinheiten as $l)
{
$legesamtnote = new legesamtnote($l->lehreinheit_id);
if ($legesamtnote->load($row_stud->uid, $l->lehreinheit_id))
{
$gewicht = $l->gewicht;
if ($l->gewicht == '')
$gewicht = 1;
$grades[$row_stud->uid]['grades'][] = array(
'grade' => $legesamtnote->note,
'points' => null,
@@ -1112,7 +1122,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
}
}
// Load Addons to modify grades
$addon_obj = new addon();
if ($addon_obj->loadAddons())
@@ -1126,7 +1136,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
}
}
$anzahlChanged = 0;
foreach ($grades as $uid => $data)
{
@@ -1135,7 +1145,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
<td>' . $db->convert_html_chars($uid) . '</td>
<td>' . $db->convert_html_chars($data['nachname']) . '</td>
<td>' . $db->convert_html_chars($data['vorname']) . '</td>';
// Bereits eingetragene Note ermitteln
if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem))
{
@@ -1147,7 +1157,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$note_lv = null;
$punkte_lv = null;
}
$notensumme = 0;
$notensumme_gewichtet = 0;
$gewichtsumme = 0;
@@ -1157,7 +1167,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$negativeteilnote = false;
$note_zusatztext = '';
$note_zusatztext_tooltip = '';
if (isset($data['grades']))
{
// Teilnoten summieren und Notenvorschlag berechnen
@@ -1173,7 +1183,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$anzahlnoten += 1;
}
$note_zusatztext_tooltip .= $row_grades['text'] . "\n";
if (isset($noten_array[$row_grades['grade']]) && ! $noten_array[$row_grades['grade']]['positiv'])
{
$negativeteilnote = true;
@@ -1186,7 +1196,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$note_zusatztext .= '<br>';
}
}
$punkte_vorschlag = '';
if (! is_null($note_lv))
{
@@ -1226,23 +1236,23 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
{
$note_vorschlag = null;
}
if ($zeugnisnote = new zeugnisnote($lvid, $uid, $stsem))
$znote = $zeugnisnote->note;
else
$znote = null;
if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE)
{
$htmlstring .= '<td style="white-space: nowrap;" title="' . $note_zusatztext_tooltip . '">';
$htmlstring .= $note_zusatztext . '&nbsp;</td>';
}
if (key_exists($uid, $studpruef_arr))
$hide = "style='display:none;visibility:hidden;'";
else
$hide = "style='display:block;visibility:visible;'";
if (! defined('CIS_GESAMTNOTE_UEBERSCHREIBEN') || CIS_GESAMTNOTE_UEBERSCHREIBEN || (! CIS_GESAMTNOTE_UEBERSCHREIBEN && is_null($znote)))
{
$htmlstring .= "<td valign='bottom' nowrap>
@@ -1289,7 +1299,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$selected = 'selected';
else
$selected = '';
if ($row_note->lehre && $row_note->aktiv)
$htmlstring .= '<option value="' . $row_note->note . '" ' . $selected . '>' . $row_note->bezeichnung_mehrsprachig[$sprache] . '</option>';
}
@@ -1307,12 +1317,12 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
{
$htmlstring .= '<td></td>';
}
if (isset($noten_array[$note_lv]) && $noten_array[$note_lv]['positiv'] == false)
$negmarkier = ' class="negative"';
else
$negmarkier = "";
// LV Note
$htmlstring .= '<td align="center" id="note_' . $uid . '"><span ' . $negmarkier . '>';
if (isset($noten_array[$note_lv]))
@@ -1320,7 +1330,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
if ($punkte_lv != '')
$htmlstring .= ' (' . number_format($punkte_lv, 2) . ')';
$htmlstring .= '</span></td>';
// status
$htmlstring .= "<td align='center' id='status_$uid'>";
if (! $lvgesamtnote->freigabedatum)
@@ -1330,7 +1340,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$htmlstring .= "<img src='../../../../skin/images/changed.png'>";
$anzahlChanged ++;
}
else
else
$htmlstring .= "<img src='../../../../skin/images/offen.png'>";
}
elseif ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
@@ -1340,22 +1350,22 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
else
$htmlstring .= "<img src='../../../../skin/images/ok.png'>";
$htmlstring .= "</td>";
if (($znote) && ($note_lv != $znote))
$stylestr = " style='color:red; border-color:red; border-style:solid; border-width:1px;'";
else
$stylestr = "";
// Zeugnisnote
$htmlstring .= "<td" . $stylestr . " align='center'>";
if (isset($noten_array[$znote]))
$htmlstring .= $noten_array[$znote]['bezeichnung_mehrsprachig'][$sprache];
$htmlstring .= "</td>";
if (isset($noten_array[$znote]) && $noten_array[$znote]['positiv'] == false)
$summe_ng ++;
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
// Pruefung 2. Termin
@@ -1372,7 +1382,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$pr_punkte = $studpruef_arr[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if ($pr_punkte != '')
{
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
@@ -1380,10 +1390,10 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$onclick = "pruefungAnlegen('" . $uid . "','" . $pr_datum . "','" . $pr_note . "',";
$onclick .= "'" . $pr_le_id . "','" . $pr_punkte . "')";
$htmlstring .= '<tr>
<td class="td_datum">' . $pr_datum . '</td>
<td class="td_note">' . $pr_notenbezeichnung . '</td>
@@ -1425,7 +1435,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
}
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
// Pruefung 3. Termin
@@ -1442,7 +1452,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$pr_punkte = $studpruef_arr_t3[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr_t3[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if ($pr_punkte != '')
{
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
@@ -1450,10 +1460,10 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$onclick = "pruefungAnlegen('" . $uid . "',";
$onclick .= "'" . $pr_datum . "','" . $pr_note . "','" . $pr_le_id . "','" . $pr_punkte . "','Termin3')";
$htmlstring .= '<tr>
<td class="td_datum">' . $pr_datum . '</td>
<td class="td_note">' . $pr_notenbezeichnung . '</td>
@@ -1488,7 +1498,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$htmlstring .= "<td colspan='2'></td>";
}
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
// komm Pruefung
@@ -1505,7 +1515,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$pr_punkte = $studpruef_komm[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_komm[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud;
if ($pr_punkte != '')
{
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
@@ -1513,7 +1523,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
}
else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$htmlstring .= '
<tr>
<td class="td_datum">' . $pr_datum . '</td>
@@ -1529,7 +1539,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$htmlstring .= "<td colspan='2'></td>";
}
}
$htmlstring .= "</tr>";
$i ++;
}
+76 -73
View File
@@ -45,47 +45,47 @@ if(!check_lektor($uid))
if (!$db = new basis_db())
die('Fehler beim Herstellen der Datenbankverbindung');
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
$lvid=$_GET['lvid'];
else
die("Fehlerhafte Parameteruebergabe");
if(isset($_GET['stg']) && is_numeric($_GET['stg']))
$stg=$_GET['stg'];
else
else
die("Fehlerhafte Parameteruebergabe");
if(isset($_GET['gruppe_kurzbz']))
$gruppe_kurzbz = $_GET['gruppe_kurzbz'];
else
else
$gruppe_kurzbz = '';
if(isset($_GET['sem']) && is_numeric($_GET['sem']))
$sem = $_GET['sem'];
else
else
$sem = '';
if(isset($_GET['verband']))
$verband = $_GET['verband'];
else
else
$verband = '';
if(isset($_GET['gruppe']) && is_numeric($_GET['gruppe']))
$gruppe = $_GET['gruppe'];
else
$gruppe = '';
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
die('Studiensemester muss uebergeben werden');
if(isset($_GET['lehreinheit_id']))
$lehreinheit_id = $_GET['lehreinheit_id'];
else
else
$lehreinheit_id = '';
/*
* Create Excel File
*/
@@ -93,7 +93,7 @@ else
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
$workbook->setVersion(8);
// sending HTTP headers
$workbook->send($p->t('anwesenheitsliste/notenliste'). "_" . date("d_m_Y") . ".xls");
$workbook->setCustomColor (15,192,192,192); //Setzen der HG-Farbe Hellgrau
@@ -105,12 +105,12 @@ else
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
$format_highlight =& $workbook->addFormat();
$format_highlight->setFgColor(15);
$format_highlight->setBorder(1);
$format_highlight->setBorderColor('white');
$format_border_bottom =& $workbook->addFormat();
$format_border_bottom ->setBottom(2);
$format_border_bottom->setBold();
@@ -124,17 +124,17 @@ else
$format_title->setAlign('merge');
$lvobj = new lehrveranstaltung($lvid);
$worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold);
$stg_obj = new studiengang($stg);
$qry = "SELECT
distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
semester, verband, gruppe, gruppe_kurzbz
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
campus.vw_lehreinheit
WHERE
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem);
if($lehreinheit_id!='')
$qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
@@ -152,26 +152,26 @@ else
$gruppen.=$row->gruppe_kurzbz;
}
}
$worksheet->write(1,0,$p->t('global/studiengang').": $stg_obj->bezeichnung $gruppen");
$lines=2;
//Lektoren ermitteln
$qry = "SELECT
distinct vorname, nachname
FROM
campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE
uid=mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
$qry = "SELECT
distinct vorname, nachname
FROM
campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE
uid=mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
studiensemester_kurzbz=".$db->db_add_param($stsem);
if($lehreinheit_id!='')
$qry.=" AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname';
if($result = $db->db_query($qry))
{
while($row=$db->db_fetch_object($result))
@@ -183,42 +183,43 @@ else
//Studenten holen
$lines++;
$worksheet->write($lines,1,$p->t('global/nachname'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/vorname'),$format_border_bottom);
$worksheet->write($lines,3,$p->t('global/gruppe'),$format_border_bottom);
$worksheet->write($lines,4,$p->t('global/personenkennzeichen'),$format_border_bottom);
$worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
$worksheet->write($lines,3,$p->t('global/vorname'),$format_border_bottom);
$worksheet->write($lines,4,$p->t('global/gruppe'),$format_border_bottom);
$worksheet->write($lines,5,$p->t('global/personenkennzeichen'),$format_border_bottom);
if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$worksheet->write($lines,5,$p->t('benotungstool/punkte'),$format_border_bottom);
$worksheet->write($lines,6,$p->t('benotungstool/punkte'),$format_border_bottom);
else
$worksheet->write($lines,5,$p->t('benotungstool/note'),$format_border_bottom);
$worksheet->write($lines,6,$p->t('benotungstool/note'),$format_border_bottom);
$stsem_obj = new studiensemester();
$stsem_obj->load($stsem);
$stsemdatumvon = $stsem_obj->start;
$stsemdatumbis = $stsem_obj->ende;
$qry = "SELECT
$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)
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
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);
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
if($result = $db->db_query($qry))
{
$i=1;
@@ -226,36 +227,37 @@ else
while($elem = $db->db_fetch_object($result))
{
if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10)
{
{
if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher')
{
$worksheet->write($lines,0,$i);
if($elem->status=='Incoming')
$inc=' (i)';
else
else
$inc='';
if($elem->bisio_id!='' && $elem->status!='Incoming' && ($elem->bis > $stsemdatumvon || $elem->bis=='') && $elem->von < $stsemdatumbis) //Outgoing
$inc.=' (o)';
if($elem->note==6) //angerechnet
{
$inc.=' (ar)';
$note='ar';
}
else
else
$note='';
$worksheet->write($lines,1,$elem->nachname.$inc);
$worksheet->write($lines,2,$elem->vorname);
$worksheet->write($lines,3,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,4,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,5,$note,$format_highlight);
$worksheet->write($lines,1,$elem->uid);
$worksheet->write($lines,2,$elem->nachname.$inc);
$worksheet->write($lines,3,$elem->vorname);
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6,$note,$format_highlight);
$i++;
$lines++;
}
}
}
}
//Noten
$note = new note();
$note->getAll();
@@ -266,8 +268,8 @@ else
$aufteilung = array();
foreach($notenschluessel->result as $row)
$aufteilung[$row->note]=$row->punkte;
$aufteilung[$row->note]=$row->punkte;
$worksheet->write(++$lines,0,$p->t('benotungstool/note').":");
foreach($note->result as $row)
{
@@ -285,19 +287,20 @@ else
$worksheet->write(++$lines,0,$row->bezeichnung.' ('.$row->anmerkung.')');
}
}
$worksheet->writeBlank(++$lines,0,0);
$worksheet->writeBlank(++$lines,0,$format_highlight);
$worksheet->write($lines,1,'...'.$p->t('anwesenheitsliste/anleitungImportFunktion'));
$lines++;
$worksheet->write(++$lines,0,'(i) ... Incoming');
$worksheet->write(++$lines,0,'(i) ... Incoming');
$worksheet->write(++$lines,0,'(o) ... Outgoing');
$worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet'));
$worksheet->setColumn(0, 0, 5);
$worksheet->setColumn(1, 1, 25);
$worksheet->setColumn(2, 2, 25);
$worksheet->setColumn(3, 3, 7);
$worksheet->setColumn(4, 4, 21);
$worksheet->setColumn(0, 1, 16);
$worksheet->setColumn(0, 2, 25);
$worksheet->setColumn(0, 3, 25);
$worksheet->setColumn(0, 4, 7);
$worksheet->setColumn(0, 5, 21);
$workbook->close();
?>
+42 -3
View File
@@ -24,6 +24,7 @@ require_once('../../../config/cis.config.inc.php');
require_once('../../../config/global.config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/globals.inc.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiengang.class.php');
require_once('../../../include/studienordnung.class.php');
require_once('../../../include/person.class.php');
@@ -42,6 +43,7 @@ require_once('../../../include/fotostatus.class.php');
require_once('../../../include/addon.class.php');
require_once('../../../include/gruppe.class.php');
require_once('../../../include/adresse.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -51,14 +53,21 @@ if (!$db = new basis_db())
$uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$datum_obj = new datum();
$ansicht = false; //Wenn ein anderer User sich das Profil ansieht (Bei Personensuche)
if (isset($_GET['uid']))
// Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) sollen bestimmte persönliche Daten nicht angezeigt werden
// außer der User selber oder berechtigte Personen
$ansicht = false;
if (isset($_GET['uid']) && $_GET['uid'] != $uid)
{
$uid = stripslashes($_GET['uid']);
$ansicht = true;
}
if ($rechte->isBerechtigt('basis/kontakt'))
$ansicht = false;
if (!$ansicht && isset($_GET['action']))
{
@@ -230,7 +239,10 @@ echo '</td><td width="30%" valign="top">';
echo '
<b>'.($type == "student"?$p->t("profil/student"):$p->t('profil/mitarbeiter')).'</b><br><br>
'.$p->t('global/username').': '.$user->uid.'<br>
'.$p->t('global/username').': '.$user->uid.'<br>';
if ($type == 'student' && $person->matr_nr)
echo $p->t('global/matrikelnummer'). ": ". $person->matr_nr. "<br>";
echo '
'.$p->t('global/anrede').': '.$user->anrede.'<br>
'.$p->t('global/titel').': '.$user->titelpre.' <br>';
@@ -326,6 +338,16 @@ if ($type == 'mitarbeiter')
echo $p->t('profil/telefonTw').": $vorwahl - $user->telefonklappe<BR>";
//echo $p->t('profil/faxTw').": $vorwahl - 99 $user->telefonklappe<BR>";
}
else {
$kontakt = new kontakt();
$kontakt->load_pers($user->person_id);
foreach($kontakt->result as $k)
{
if ($k->kontakttyp == 'firmenhandy')
echo $p->t('profil/telefonTw').': '.$k->kontakt.'<br>';
}
}
if ($user->ort_kurzbz != '')
echo $p->t('profil/buero').': '.$user->ort_kurzbz.'<br>';
}
@@ -400,9 +422,24 @@ if (!$ansicht)
$kontakt = new kontakt();
$kontakt->load_pers($user->person_id);
usort($kontakt->result, "sortKontakt");
echo '<table>';
foreach($kontakt->result as $k)
{
if ($k->kontakttyp != 'firmenhandy' && $k->kontakttyp != 'hidden')
{
if ($k->zustellung)
$zustellung = '&#10003;';
else
$zustellung = '&#10007;';
echo '<tr>';
echo '<td>'.$k->bezeichnung_mehrsprachig[$sprache].'</td>';
echo '<td>'.$k->kontakt.'</td>';
echo '<td>'.$k->anmerkung.'</td>';
echo '<td>'.$zustellung.'</td>';
echo '</tr>';
}
/*
if ($k->zustellung === TRUE)
{
switch($k->kontakttyp)
@@ -420,7 +457,9 @@ if (!$ansicht)
break;
}
}
*/
}
echo '</table>';
}
if ($user->homepage != '')
+83 -7
View File
@@ -52,7 +52,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">';
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">';
include('../../../include/meta/jquery.php');
include('../../../include/meta/jquery-tablesorter.php');
@@ -158,7 +158,7 @@ function searchPerson($searchItems)
{
$bisverwendung = new bisverwendung();
$bisverwendung->getLastAktVerwendung($row->uid);
echo '<tr>';
//echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->anrede,'</td>';
@@ -171,8 +171,47 @@ function searchPerson($searchItems)
echo '</td>';
//echo '<td>',$row->titelpost,'</td>';
echo '<td>',($row->studiengang!=''?$row->studiengang:'-'),'</td>';
echo '<td>',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'</td>';
echo '<td>',($row->telefonklappe!=''?$row->telefonklappe:'-'),'</td>';
echo '<td>',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'</td>';
// Display phone number
echo '<td>';
// * if user has telefonklappe, display it
if ($row->telefonklappe != '')
{
echo $row->telefonklappe;
}
// * if user has no telefonklappe, display business handy
else
{
$person = new Person();
$person->getPersonFromBenutzer($row->uid);
$person_id = $person->person_id;
$kontakt = new Kontakt();
if ($kontakt->load_persKontakttyp($person_id, 'firmenhandy'))
{
$is_zugestellt = false;
foreach ($kontakt->result as $kontakt)
{
// display business handy only if zustellung is true
if ($kontakt->zustellung)
{
echo $kontakt->kontakt. "<br>";
$is_zugestellt = true;
}
}
// if zustellung is false display '-'
if (!$is_zugestellt)
{
echo '-';
}
}
// * if neither telefonklappe nor business handy, display '-'
else
{
echo '-';
}
}
echo '</td>';
echo '<td>',($row->raum!=''?$row->raum:'-'),'</td>';
if($row->alias!='' && !in_array($row->studiengang_kz, $noalias))
$mail = $row->alias.'@'.DOMAIN;
@@ -271,9 +310,46 @@ function searchOE($searchItems)
echo '<td>'.$bf->bezeichnung;
if($bisverwendung->beschausmasscode=='5')
echo '<span style="color: orange"> (karenziert)</span>';
echo '</td>';
echo '<td>',($mitarbeiter->telefonklappe!=''?$kontakt->kontakt.'-'.$mitarbeiter->telefonklappe:'-'),'</td>';
echo '</td>';
// Display phone number
echo '<td>';
// * if user has telefonklappe, display it
if ($mitarbeiter->telefonklappe != '')
{
echo $kontakt->kontakt. '-'. $mitarbeiter->telefonklappe;
}
// * if user has no telefonklappe, display business handy
else
{
$person_id = $person->person_id;
if ($kontakt->load_persKontakttyp($person_id, 'firmenhandy'))
{
$is_zugestellt = false;
foreach ($kontakt->result as $kontakt)
{
// display business handy only if zustellung is true
if ($kontakt->zustellung)
{
echo $kontakt->kontakt. "<br>";
$is_zugestellt = true;
}
}
// if zustellung is false display '-'
if (!$is_zugestellt)
{
echo '-';
}
}
// * if neither telefonklappe nor business handy, display '-'
else
{
echo '-';
}
}
echo '</td>';
echo '<td>',($mitarbeiter->ort_kurzbz!=''?$mitarbeiter->ort_kurzbz:'-'),'</td>';
//if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias?
if($person->alias!='')
+1 -1
View File
@@ -1087,7 +1087,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
$summe=0;
$dr = new zeitaufzeichnung();
$dr->getDienstreisenUser($user);
$dr->getDienstreisenUser($user, 180);
$dr_arr = $dr->result;
//var_dump($dr->result);
@@ -62,7 +62,7 @@ $daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$date = new datum();
$ztauf = new zeitaufzeichnung();
$activitiesToIgnore = array('DienstreiseMT');//aktivitaetstypen which shouldn't be added to worktime
$activitiesToIgnore = array('DienstreiseMT', 'Ersatzruhe');//aktivitaetstypen which shouldn't be added to worktime
$ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$daysinmonth, $activitiesToIgnore);
//objects for one projectline of list (corresponds to one day)
+4
View File
@@ -89,6 +89,10 @@ define('CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE', true);
// Vertraege fuer Pruefungshonorare anzulegen
define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false);
// Gibt an ob die Note im Notenfreigabemail enthalten ist oder nicht
// Aus Datenschutzgründen ist dies per default deaktiviert
define('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE', false);
// Grenzwerte für Anwesenheit
define('FAS_ANWESENHEIT_ROT', 70);
define('FAS_ANWESENHEIT_GELB', 90);
+100 -116
View File
@@ -22,7 +22,6 @@
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/Excel/excel.php');
require_once('../../include/benutzerberechtigung.class.php');
@@ -45,24 +44,31 @@ $stg_arr = array();
foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz] = $row->kuerzel.' ('.$row->kurzbzlang.')';
$fachbereich = new fachbereich();
$fachbereich->getAll();
$oe_obj = new organisationseinheit();
$oe_obj->getTypen();
foreach($oe_obj->result as $row)
{
$oetyp_arr[$row->organisationseinheittyp_kurzbz] = $row->bezeichnung;
}
$fb_arr = array();
foreach ($fachbereich->result as $row)
$fb_arr[$row->fachbereich_kurzbz]=$row->bezeichnung;
$oe_obj = new organisationseinheit();
$oe_obj->getAll();
$oe_arr = array();
$oe_arr['']='Nicht Zugewiesen';
foreach ($oe_obj->result as $row)
$oe_arr[$row->oe_kurzbz]=$oetyp_arr[$row->organisationseinheittyp_kurzbz].' '.$row->bezeichnung;
$db = new basis_db();
// ALVS pro Fachbereich
// ALVS pro OE
$qry = "
SELECT * FROM (
SELECT
fachbereich_kurzbz, tbl_lehrveranstaltung.studiengang_kz, geschlecht,sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semesterstunden
lehrfach.oe_kurzbz as lehrfach_oe_kurzbz, tbl_lehrveranstaltung.studiengang_kz, geschlecht,sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semesterstunden
FROM
lehre.tbl_lehreinheit,
lehre.tbl_lehrveranstaltung,
lehre.tbl_lehrveranstaltung as lehrfach,
public.tbl_fachbereich,
lehre.tbl_lehreinheitmitarbeiter,
public.tbl_benutzer,
public.tbl_person
@@ -73,28 +79,27 @@ SELECT * FROM (
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND
tbl_benutzer.person_id = tbl_person.person_id AND
tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
faktor<>0 AND
stundensatz<>0 AND
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
GROUP BY fachbereich_kurzbz, geschlecht, tbl_lehrveranstaltung.studiengang_kz
GROUP BY lehrfach.oe_kurzbz, geschlecht, tbl_lehrveranstaltung.studiengang_kz
) as a JOIN public.tbl_studiengang USING(studiengang_kz)
ORDER BY typ, tbl_studiengang.kurzbz, fachbereich_kurzbz
ORDER BY typ, tbl_studiengang.kurzbz, lehrfach_oe_kurzbz
";
if(!$db->db_query($qry))
die('Fehler bei Datenbankabfrage');
$fachbereiche = array();
$organisationseinheiten = array();
while($row = $db->db_fetch_object())
{
if(!in_array($row->fachbereich_kurzbz, $fachbereiche))
$fachbereiche[] = $row->fachbereich_kurzbz;
$data[$row->studiengang_kz][$row->fachbereich_kurzbz][$row->geschlecht]=$row->semesterstunden;
if(!in_array($row->lehrfach_oe_kurzbz, $organisationseinheiten))
$organisationseinheiten[] = $row->lehrfach_oe_kurzbz;
$data[$row->studiengang_kz][$row->lehrfach_oe_kurzbz][$row->geschlecht]=$row->semesterstunden;
}
sort($fachbereiche);
sort($organisationseinheiten);
//Betreuerstunden
$qry = "
@@ -138,7 +143,6 @@ if($format=='xls')
//Formate Definieren
$format_bold =& $workbook->addFormat();
$format_bold->setBold();
//$format_bold->setBorder(1);
$format_border =& $workbook->addFormat();
$format_border->setBorder(1);
@@ -147,19 +151,19 @@ if($format=='xls')
$format_rotate->setTextRotation(270);
$format_rotate->setAlign("center");
$format_rotate->setBold();
$format_m_w =& $workbook->addFormat();
$format_m_w->setAlign("center");
$format_m_w->setBold();
$format_data =& $workbook->addFormat();
$format_data->setNumFormat("0.00");
$format_bold_data =& $workbook->addFormat();
$format_bold_data->setBold();
$format_bold_data->setNumFormat("0.00");
$format_bold_data->setVAlign("vcenter");
$format_bold_center_data =& $workbook->addFormat();
$format_bold_center_data->setBold();
$format_bold_center_data->setNumFormat("0.00");
@@ -168,59 +172,45 @@ if($format=='xls')
$spalte=0;
$zeile=0;
$worksheet->write($zeile,$spalte,$stsem, $format_bold);
$maxlength[$spalte]=13;
$summe_fb = array();
foreach ($fachbereiche as $fb)
$summe_oe = array();
foreach ($organisationseinheiten as $oe)
{
$zeile=0;
$worksheet->write($zeile,++$spalte,$fb_arr[$fb], $format_rotate);
$worksheet->write($zeile,++$spalte,$oe_arr[$oe], $format_rotate);
$worksheet->mergeCells($zeile,$spalte,0,$spalte+1);
$fachbereiche[$fb]=$spalte;
$organisationseinheiten_idx[$oe]=$spalte;
$worksheet->write(++$zeile,$spalte,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w);
//$fachbereiche[$fb]=$spalte;
$summe_fb[$fb]=array();
//++$spalte;
$summe_oe[$oe]=array();
$maxlength[$spalte]=7;
$maxlength[$spalte-1]=7;
}
$zeile=0;
$worksheet->write($zeile,++$spalte,'Betreuungen', $format_rotate);
$worksheet->mergeCells($zeile,$spalte,0,$spalte+1);
$worksheet->write(++$zeile,$spalte,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w);
$maxlength[$spalte]=7;
$maxlength[$spalte-1]=7;
$fachbereiche['betreuungen']=$spalte-1;
//$maxlength[$spalte]=3;
$summe_fb['betreuungen']=array();
//++$spalte;
$organisationseinheiten_idx['betreuungen']=$spalte-1;
$summe_oe['betreuungen']=array();
$zeile=0;
$worksheet->write($zeile,++$spalte,'Summe', $format_rotate);
$worksheet->mergeCells($zeile,$spalte,0,$spalte+2);
$worksheet->write(++$zeile,$spalte,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w);
$worksheet->write($zeile,++$spalte,'Gesamt',$format_m_w);
$maxspalten=$spalte;
/*++$zeile;
$spalte=0;
foreach ($fachbereiche as $fb)
{
$worksheet->write($zeile,++$spalte,'m');
$worksheet->write($zeile,++$spalte,'w');
//$fachbereiche[$fb]=$spalte;
//++$spalte;
}*/
if(isset($data))
{
@@ -231,27 +221,23 @@ if($format=='xls')
$worksheet->write($zeile,$spalte,$stg_arr[$key], $format_bold);
$summe_m=0;
$summe_w=0;
foreach ($data[$key] as $fb=>$stunden)
foreach ($data[$key] as $oe=>$stunden)
{
if(!isset($stunden['m']))
$stunden['m']=0;
$summe_m+=$stunden['m'];
if(!isset($summe_fb[$fb]['m']))
$summe_fb[$fb]['m']=0;
$summe_fb[$fb]['m']+=$stunden['m'];
$worksheet->write($zeile,$fachbereiche[$fb],$stunden['m'],$format_data);
//if($maxlength[$fachbereiche[$fb]]<strlen($stunden['m']))
// $maxlength[$fachbereiche[$fb]]=strlen($stunden['m']);
if(!isset($summe_oe[$oe]['m']))
$summe_oe[$oe]['m']=0;
$summe_oe[$oe]['m']+=$stunden['m'];
$worksheet->write($zeile,$organisationseinheiten_idx[$oe],$stunden['m'],$format_data);
if(!isset($stunden['w']))
$stunden['w']=0;
$summe_w+=$stunden['w'];
if(!isset($summe_fb[$fb]['w']))
$summe_fb[$fb]['w']=0;
$summe_fb[$fb]['w']+=$stunden['w'];
$worksheet->write($zeile,$fachbereiche[$fb]+1,$stunden['w'],$format_data);
//if($maxlength[$fachbereiche[$fb]]<strlen($stunden['w']))
// $maxlength[$fachbereiche[$fb]]=strlen($stunden['w']);
if(!isset($summe_oe[$oe]['w']))
$summe_oe[$oe]['w']=0;
$summe_oe[$oe]['w']+=$stunden['w'];
$worksheet->write($zeile,$organisationseinheiten_idx[$oe]+1,$stunden['w'],$format_data);
}
$worksheet->write($zeile,$maxspalten-2,number_format($summe_m,2,'.',''), $format_bold_data);
$worksheet->write($zeile,$maxspalten-1,number_format($summe_w,2,'.',''), $format_bold_data);
@@ -264,20 +250,20 @@ if($format=='xls')
$zeile++;
$worksheet->write($zeile,0,'Summe', $format_bold_data);
$worksheet->mergeCells($zeile,0,$zeile+1,0);
//foreach ($summe_fb as $fb=>$summe)
foreach ($summe_fb as $fb=>$summe)
foreach ($summe_oe as $oe=>$summe)
{
if(!isset($summe['m']))
$summe['m']=0;
if(!isset($summe['w']))
$summe['w']=0;
if(isset($fachbereiche[$fb]))
$worksheet->write($zeile,$fachbereiche[$fb],number_format($summe['m'],2,'.',''), $format_bold_center_data);
$worksheet->write($zeile,$fachbereiche[$fb]+1,number_format($summe['w'],2,'.',''), $format_bold_center_data);
if(isset($organisationseinheiten_idx[$oe]))
$worksheet->write($zeile,$organisationseinheiten_idx[$oe],number_format($summe['m'],2,'.',''), $format_bold_center_data);
$worksheet->write($zeile,$organisationseinheiten_idx[$oe]+1,number_format($summe['w'],2,'.',''), $format_bold_center_data);
$gesamt = $summe['m']+$summe['w'];
$worksheet->write(++$zeile,$fachbereiche[$fb],number_format($gesamt,2,'.',''), $format_bold_center_data);
$worksheet->mergeCells($zeile,$fachbereiche[$fb],$zeile,$fachbereiche[$fb]+1);
$worksheet->write(++$zeile,$organisationseinheiten_idx[$oe],number_format($gesamt,2,'.',''), $format_bold_center_data);
$worksheet->mergeCells($zeile,$organisationseinheiten_idx[$oe],$zeile,$organisationseinheiten_idx[$oe]+1);
--$zeile;
}
@@ -303,72 +289,70 @@ else
}
td
{
}
</style>
</head>
<body class="Background_main">';
echo "<h2>ALVS $stsem</h2>";
echo '<table class="liste" style="border: 1px solid black" rules="all" cellspacing="0">';
echo '<tr class="liste"><th>'.$stsem.'</th>';
$summe_fb = array();
$summe_oe = array();
foreach ($fachbereiche as $fb)
foreach ($organisationseinheiten as $oe)
{
echo "<th colspan='2'>".$fb_arr[$fb]."</th>";
$summe_fb[$fb]=array();
echo "<th colspan='2'>".$oe_arr[$oe]."</th>";
$summe_oe[$oe]=array();
}
echo "<th colspan='2'>Betreuungen</th>";
$summe_fb['betreuungen']=array();
$summe_oe['betreuungen']=array();
echo "<th colspan='3'>Summe</th>";
echo "</tr>";
// Spalten m/w
echo '<tr class="liste"><td>&nbsp;</td>';
foreach ($fachbereiche as $fb)
foreach ($organisationseinheiten as $oe)
{
echo "<td style='text-align:center; font-weight: bold; width: 50%'>m</td><td style='text-align:center; font-weight: bold;'>w</td>";
}
echo "<td style='text-align:center; font-weight: bold; width: 33%'>m</td>";
echo "<td style='text-align:center; font-weight: bold; width: 33%'>w</td>";
//$summe_fb['betreuungen']=0;
echo "<td style='text-align:center; font-weight: bold; width: 33%'>m</td>";
echo "<td style='text-align:center; font-weight: bold; width: 33%'>w</td>";
echo "<td style='text-align:center; font-weight: bold'>Gesamt</td>";
echo "</tr>";
// Für jeden Fachbereich eine Variable definieren
foreach ($fachbereiche as $fb)
// Für jede OE eine Variable definieren
foreach ($organisationseinheiten as $oe)
{
$summe_fb[$fb]["m"] = 0;
$summe_fb[$fb]["w"] = 0;
$summe_oe[$oe]["m"] = 0;
$summe_oe[$oe]["w"] = 0;
}
$summe_fb['betreuungen']['m'] = 0;
$summe_fb['betreuungen']['w'] = 0;
$summe_oe['betreuungen']['m'] = 0;
$summe_oe['betreuungen']['w'] = 0;
foreach ($data as $key=>$val)
{
echo "<tr>";
echo "<td>".$stg_arr[$key]."</td>";
$summe_m =0;
$summe_w =0;
foreach ($fachbereiche as $fb)
foreach ($organisationseinheiten as $oe)
{
if(isset($data[$key][$fb]["m"]))
if(isset($data[$key][$oe]["m"]))
{
$summe_m+=$data[$key][$fb]["m"];
$summe_fb[$fb]["m"]+=$data[$key][$fb]["m"];
echo "<td>".$data[$key][$fb]["m"]."</td>";
$summe_m+=$data[$key][$oe]["m"];
$summe_oe[$oe]["m"]+=$data[$key][$oe]["m"];
echo "<td>".$data[$key][$oe]["m"]."</td>";
}
else
echo "<td>&nbsp;</td>";
if(isset($data[$key][$fb]["w"]))
if(isset($data[$key][$oe]["w"]))
{
$summe_w+=$data[$key][$fb]["w"];
$summe_fb[$fb]["w"]+=$data[$key][$fb]["w"];
echo "<td>".$data[$key][$fb]["w"]."</td>";
$summe_w+=$data[$key][$oe]["w"];
$summe_oe[$oe]["w"]+=$data[$key][$oe]["w"];
echo "<td>".$data[$key][$oe]["w"]."</td>";
}
else
echo "<td>&nbsp;</td>";
@@ -376,7 +360,7 @@ else
if(isset($data[$key]['betreuungen']['m']))
{
echo "<td>".number_format($data[$key]['betreuungen']['m'],2)."</td>";
$summe_fb['betreuungen']['m']+=$data[$key]['betreuungen']['m'];
$summe_oe['betreuungen']['m']+=$data[$key]['betreuungen']['m'];
$summe_m+=$data[$key]['betreuungen']['m'];
}
else
@@ -384,7 +368,7 @@ else
if(isset($data[$key]['betreuungen']['w']))
{
echo "<td>".number_format($data[$key]['betreuungen']['w'],2)."</td>";
$summe_fb['betreuungen']['w']+=$data[$key]['betreuungen']['w'];
$summe_oe['betreuungen']['w']+=$data[$key]['betreuungen']['w'];
$summe_w+=$data[$key]['betreuungen']['w'];
}
else
@@ -398,44 +382,44 @@ else
echo "<tr>";
echo "<td rowspan='2'>Summe</td>";
foreach ($fachbereiche as $fb)
foreach ($organisationseinheiten as $oe)
{
if(isset($summe_fb[$fb]["m"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_fb[$fb]["m"]."</td>";
if(isset($summe_oe[$oe]["m"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_oe[$oe]["m"]."</td>";
else
echo "<td>&nbsp;</td>";
if(isset($summe_fb[$fb]["w"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_fb[$fb]["w"]."</td>";
if(isset($summe_oe[$oe]["w"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_oe[$oe]["w"]."</td>";
else
echo "<td>&nbsp;</td>";
}
if(isset($summe_fb['betreuungen']['m']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_fb['betreuungen']['m'],2)."</td>";
if(isset($summe_oe['betreuungen']['m']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_oe['betreuungen']['m'],2)."</td>";
else
echo "<td>&nbsp;</td>";
if(isset($summe_fb['betreuungen']['w']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_fb['betreuungen']['w'],2)."</td>";
if(isset($summe_oe['betreuungen']['w']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_oe['betreuungen']['w'],2)."</td>";
else
echo "<td>&nbsp;</td>";
echo "<td colspan='3'>&nbsp;</td>";
echo "</tr>";
echo "<tr>";
//echo "<td></td>";
foreach ($fachbereiche as $fb)
foreach ($organisationseinheiten as $oe)
{
if(isset($summe_fb[$fb]["m"]) || isset($summe_fb[$fb]["w"]))
echo "<td colspan='2' style='text-align:center; font-weight: bold'>".($summe_fb[$fb]["m"] + $summe_fb[$fb]["w"])."</td>";
if(isset($summe_oe[$oe]["m"]) || isset($summe_oe[$oe]["w"]))
echo "<td colspan='2' style='text-align:center; font-weight: bold'>".($summe_oe[$oe]["m"] + $summe_oe[$oe]["w"])."</td>";
else
echo "<td colspan='2'>&nbsp;</td>";
}
if(isset($summe_fb['betreuungen']['m']) || isset($summe_fb['betreuungen']['w']))
echo "<td colspan='2' style='text-align:center; font-weight: bold'>".number_format(($summe_fb['betreuungen']['m'] + $summe_fb['betreuungen']['w']),2)."</td>";
if(isset($summe_oe['betreuungen']['m']) || isset($summe_oe['betreuungen']['w']))
echo "<td colspan='2' style='text-align:center; font-weight: bold'>".number_format(($summe_oe['betreuungen']['m'] + $summe_oe['betreuungen']['w']),2)."</td>";
else
echo "<td colspan='2'>&nbsp;</td>";
echo "<td colspan='3'>&nbsp;</td>";
echo "</tr>";
echo '</table>';
echo '</body>
</html>';
+16 -5
View File
@@ -25,6 +25,7 @@ require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if(isset($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz'];
@@ -43,12 +44,18 @@ else
if(isset($_GET['oe_kurzbz']))
$oe_kurzbz = $_GET['oe_kurzbz'];
else
else
$oe_kurzbz = '';
$user = get_uid();
loadVariables($user);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('assistenz', null, 's'))
die($rechte->errormsg);
$db = new basis_db();
$stg_arr = array();
@@ -62,6 +69,10 @@ if($studiengang_kz!='')
{
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
if(!$rechte->isBerechtigt('assistenz', $studiengang->oe_kurzbz, 's'))
die($rechte->errormsg);
}
if($mitarbeiter_uid!='')
@@ -159,9 +170,9 @@ $qry = "SELECT
tbl_person.person_id=tbl_benutzer.person_id AND
lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell);
$qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehreinheit.lehreinheit_id";
$qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehreinheit.lehreinheit_id";
}
else
else
die('Fehlerhafte Parameteruebergabe');
echo '<table class="liste">';
@@ -309,7 +320,7 @@ elseif($oe_kurzbz!='')
(tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0
";
}
else
else
die('Something unexpected happend');
if($result = $db->db_query($qry))
@@ -329,7 +340,7 @@ if($result = $db->db_query($qry))
echo "<th>Kosten</th>";
echo '<th>&nbsp;</th>';
echo '</tr>';
$gesamtkosten_betreuung=0;
$stunden_betreuung=0;
while($row = $db->db_fetch_object($result))
+104 -145
View File
@@ -27,6 +27,8 @@ require_once('../../include/Excel/excel.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/benutzerberechtigung.class.php');
$user = get_uid();
@@ -36,119 +38,114 @@ if(isset($_GET['studiensemester_kurzbz']))
$studiensemester_kurzbz = $_GET['studiensemester_kurzbz'];
else if(isset($_POST['studiensemester_kurzbz']))
$studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
else
else
die('studiensemester_kurzbz muss uebergeben werden');
if(isset($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz'];
else
else
$studiengang_kz='';
if(isset($_GET['semester']))
$semester = $_GET['semester'];
else
else
$semester='';
if(isset($_GET['oe_kurzbz']))
$oe_kurzbz = $_GET['oe_kurzbz'];
else
else
$oe_kurzbz = '';
if(isset($_GET['uid']))
$uid = $_GET['uid'];
else
else
$uid = '';
$db = new basis_db();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if($studiengang_kz != '')
{
if(!$rechte->isBerechtigt('assistenz', $studiengang_kz, 's'))
die($rechte->errormsg);
}
elseif($oe_kurzbz!='')
{
if(!$rechte->isBerechtigt('assistenz', $oe_kurzbz, 's'))
die($rechte->errormsg);
}
else
{
if(!$rechte->isBerechtigt('assistenz', null, 's'))
die($rechte->errormsg);
}
$oetyp = new organisationseinheit();
$oetyp->getTypen();
foreach($oetyp->result as $row)
{
$oetyp_arr[$row->organisationseinheittyp_kurzbz] = $row->bezeichnung;
}
$oe = new organisationseinheit();
$oe->getAll();
foreach($oe->result as $row)
{
$oe_arr[$row->oe_kurzbz] = $oetyp_arr[$row->organisationseinheittyp_kurzbz].' '.$row->bezeichnung;
}
$oe_arr[''] = '';
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
$qry = "
SELECT (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion
WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND
tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND
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())
LIMIT 1
)
)
) as koordinator,
(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion
WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND
tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND
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())
LIMIT 1
)
)
) as vorname,
lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz,
tbl_fachbereich.fachbereich_kurzbz as fachbereich_kurzbz, tbl_lehreinheitmitarbeiter.mitarbeiter_uid,
SELECT
lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
tbl_lehreinheitmitarbeiter.mitarbeiter_uid,
tbl_lehrveranstaltung.semester as lv_semester, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheitmitarbeiter.faktor,
tbl_lehreinheitmitarbeiter.stundensatz,
tbl_lehreinheitmitarbeiter.stundensatz,
tbl_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden,
tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ,
tbl_lehreinheitmitarbeiter.anmerkung
,tbl_lehreinheit.studiensemester_kurzbz
,tbl_lehrveranstaltung.ects
,tbl_lehrveranstaltung.semesterstunden
,tbl_lehrveranstaltung.semesterstunden
,tbl_lehrveranstaltung.semesterstunden as sws
,tbl_lehrveranstaltung.lehrform_kurzbz
,tbl_lehrveranstaltung.lehrveranstaltung_id
,(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
,(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1)
)as lv_leitung
,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
)as lv_leitung
,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=(SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehre.tbl_lehreinheitmitarbeiter.lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and lehre.tbl_lehreinheitmitarbeiter.lehrfunktion_kurzbz='LV-Leitung' LIMIT 1)
)as lv_leitung_vorname
)as lv_leitung_vorname
,(SELECT bezeichnung FROM lehre.tbl_lehrform WHERE lehre.tbl_lehrform.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz LIMIT 1) as lv_type
,tbl_lehrveranstaltung.lehrform_kurzbz
FROM
lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
FROM
lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
LEFT JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz)
WHERE
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz);
WHERE
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz);
# ,(SELECT lv_semesterstunden FROM campus.vw_lehreinheit WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id and lehreinheit_id=lehre.tbl_lehreinheit.lehreinheit_id and studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' LIMIT 1) as sws
if($studiengang_kz!='')
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($oe_kurzbz!='')
$qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
$qry.=" AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
if($semester!='')
$qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER);
if($uid!='')
$qry.=" AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($uid);
$qry.=" ORDER BY tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.bezeichnung";
/*
// exit($qry);
if($result = $db->db_query($qry))
{
$row = $db->db_fetch_object($result);
var_dump($row);
}
else
echo 'nix<br>';
var_dump($stg_obj);
exit;
*/
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
@@ -174,10 +171,8 @@ $zeile=0;
$spalte=0;
$worksheet->write($zeile,$spalte,"Studiengang", $format_bold);
$maxlength[$spalte]=11;
$worksheet->write($zeile,++$spalte,"Institut", $format_bold);
$worksheet->write($zeile,++$spalte,"Organisationseinheit", $format_bold);
$maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,"Koordinator", $format_bold);
$maxlength[$spalte]=11;
$worksheet->write($zeile,++$spalte,"Lektor", $format_bold);
$maxlength[$spalte]=6;
$worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold);
@@ -211,8 +206,8 @@ $maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold);
$maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"ALVS", $format_bold);
$maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"Semesterstunden", $format_bold);
$maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,"ECTS", $format_bold);
$maxlength[$spalte]=9;
@@ -227,22 +222,20 @@ if($result = $db->db_query($qry))
$spalte=0;
$zeile++;
$mitarbeiter = new mitarbeiter();
$mitarbeiter->load($row->mitarbeiter_uid);
//Studiengang
$worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]);
if($maxlength[$spalte]<mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]))
$maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]);
//Fachbereich
$worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz);
if($maxlength[$spalte]<mb_strlen($row->fachbereich_kurzbz))
$maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz);
//Koordinator
$worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->vorname);
if($maxlength[$spalte]<mb_strlen($row->koordinator.' '.$row->vorname))
$maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->vorname);
//Organisationseinheit
$worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]);
if($maxlength[$spalte]<mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]))
$maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]);
//Lektor
$worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname);
if($maxlength[$spalte]<mb_strlen($mitarbeiter->nachname.' '.$mitarbeiter->vorname))
@@ -255,7 +248,7 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->lv_semester);
if($maxlength[$spalte]<mb_strlen($row->lv_semester))
$maxlength[$spalte]=mb_strlen($row->lv_semester);
$qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER);
$result_gruppe = $db->db_query($qry);
$gruppe = '';
@@ -265,10 +258,10 @@ if($result = $db->db_query($qry))
$gruppe.=', ';
if($row_gruppe->gruppe_kurzbz!='')
$gruppe.=$row_gruppe->gruppe_kurzbz;
else
else
$gruppe.=trim($stg_obj->kuerzel_arr[$row_gruppe->studiengang_kz].'-'.$row_gruppe->semester.$row_gruppe->verband.$row_gruppe->gruppe);
}
//Gruppen
$worksheet->write($zeile,++$spalte,$gruppe);
if($maxlength[$spalte]<mb_strlen($gruppe))
@@ -277,9 +270,9 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->lemss);
if($maxlength[$spalte]<mb_strlen($row->lemss))
$maxlength[$spalte]=mb_strlen($row->lemss);
$kosten = ($row->stundensatz*$row->lemss*$row->faktor);
//Kosten
$worksheet->write($zeile,++$spalte,$kosten);
if($maxlength[$spalte]<mb_strlen($kosten))
@@ -308,8 +301,7 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->anmerkung);
if($maxlength[$spalte]<mb_strlen($row->anmerkung))
$maxlength[$spalte]=mb_strlen($row->anmerkung);
// Neu 13.11.2009 sequens
//LV-Leitung
$worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname);
if($maxlength[$spalte]<mb_strlen($row->lv_leitung.' '.$row->lv_leitung_vorname))
@@ -320,22 +312,15 @@ if($result = $db->db_query($qry))
if($maxlength[$spalte]<mb_strlen($row->lehrveranstaltung_id))
$maxlength[$spalte]=mb_strlen($row->lehrveranstaltung_id);
//SWS
/* $worksheet->write($zeile,++$spalte,$row->sws);
if($maxlength[$spalte]<mb_strlen($row->sws))
$maxlength[$spalte]=mb_strlen($row->sws);
*/
//Semesterstunden
$semesterstunden = $row->semesterstunden;
if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0)
$semesterstunden = 0;
$worksheet->write($zeile,++$spalte,$semesterstunden);
if($maxlength[$spalte]<mb_strlen($semesterstunden))
$maxlength[$spalte]=mb_strlen($semesterstunden);
//ECTS
$worksheet->write($zeile,++$spalte,$row->ects);
if($maxlength[$spalte]<mb_strlen($row->ects))
@@ -347,51 +332,28 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->lv_type);
if($maxlength[$spalte]<mb_strlen($row->lv_type))
$maxlength[$spalte]=mb_strlen($row->lv_type);
}
//Betreuungen
$qry = "SELECT
tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz,
(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion
WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND
tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND
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())
LIMIT 1
)
)
) as koordinator,
(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id)
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion
WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND
tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) AND
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())
LIMIT 1
)
)
) as koordinator_vorname, nachname, vorname, lehrfach.bezeichnung,
tbl_lehrveranstaltung.semester, student_uid, stunden, tbl_projektbetreuer.stundensatz,
tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
nachname, vorname, lehrfach.bezeichnung,
tbl_lehrveranstaltung.semester, student_uid, stunden, tbl_projektbetreuer.stundensatz,
tbl_projektbetreuer.faktor
FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_fachbereich
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung,
lehre.tbl_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach
WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND
lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND
tbl_person.person_id=tbl_projektbetreuer.person_id AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
(tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0
";
if($uid!=='')
{
$mitarbeiter = new mitarbeiter($uid);
@@ -399,11 +361,11 @@ if($result = $db->db_query($qry))
}
if($oe_kurzbz!='')
$qry.=" AND tbl_fachbereich.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
$qry.=" AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz);
if($studiengang_kz!='')
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $db->db_query($qry))
{
$spalte=0;
@@ -415,20 +377,17 @@ if($result = $db->db_query($qry))
{
$spalte=0;
$zeile++;
//Studiengang
$worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]);
if($maxlength[$spalte]<mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]))
$maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]);
//Fachbereich
$worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz);
if($maxlength[$spalte]<mb_strlen($row->fachbereich_kurzbz))
$maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz);
//Koordinator
$worksheet->write($zeile,++$spalte,$row->koordinator.' '.$row->koordinator_vorname);
if($maxlength[$spalte]<mb_strlen($row->koordinator.' '.$row->koordinator_vorname))
$maxlength[$spalte]=mb_strlen($row->koordinator.' '.$row->koordinator_vorname);
//Organisationseinheit
$worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]);
if($maxlength[$spalte]<mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]))
$maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]);
//Lektor
$worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname);
if($maxlength[$spalte]<mb_strlen($row->nachname.' '.$row->vorname))
@@ -441,7 +400,7 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->semester);
if($maxlength[$spalte]<mb_strlen($row->semester))
$maxlength[$spalte]=mb_strlen($row->semester);
$benutzer = new benutzer();
$benutzer->load($row->student_uid);
//Student
@@ -456,10 +415,10 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor);
if($maxlength[$spalte]<mb_strlen($row->stunden*$row->stundensatz*$row->faktor))
$maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz*$row->faktor);
}
}
//Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2);
+700 -100
View File
File diff suppressed because it is too large Load Diff
+93
View File
@@ -0,0 +1,93 @@
<?php
/* Copyright (C) 2018 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
*/
/**
* This class provides static functions for handling Result values
*/
class ErrorHandler
{
/**
* Returns a Success Object
* @param $retval object
* @return result object
*/
public static function success($retval = '')
{
$data = new stdClass();
$data->error = false;
$data->errormsg = '';
$data->retval = $retval;
return $data;
}
/**
* Returns an Error Object
* @param $retval object (optional)
* @return result object
*/
public static function error($errormsg = '', $retval = '')
{
$data = new stdClass();
$data->error = true;
$data->errormsg = $errormsg;
$data->retval = $retval;
return $data;
}
/**
* Checks if the Result object is Successfull
* @param result object
* @return boolean
*/
public static function isSuccess($result)
{
if (is_object($result) && isset($result->error) && $result->error === false)
{
return true;
}
return false;
}
/**
* Checks if the Result object is an error
* @param result object
* @return boolean
*/
public static function isError($result)
{
return !ErrorHandler::isSuccess($result);
}
/*
* Checks if the Result object contains additional data
* @param result object
* @return boolean
*/
public static function hasData($result)
{
if (is_object($result) && isset($result->retval) && $result->retval!='')
{
return true;
}
return false;
}
}
+49
View File
@@ -23,6 +23,8 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/authentication.class.php');
require_once(dirname(__FILE__).'/betriebsmittelperson.class.php');
require_once(dirname(__FILE__).'/personlog.class.php');
require_once(dirname(__FILE__).'/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/mitarbeiter.class.php');
// Auth: Benutzer des Webportals
/**
@@ -1112,4 +1114,51 @@ function setLeadingZero($number, $length = 2)
}
}
/** Check if uid is a supervisor
*
* @param string $uid
* @param string $employee_uid
* @return boolean True if $uid is direct leader of $employee_uid.
*/
function check_isVorgesetzter($uid, $employee_uid)
{
$mitarbeiter = new Mitarbeiter();
$mitarbeiter->getUntergebene($uid);
$untergebenen_arr = $mitarbeiter->untergebene;
// Check, if uid is an employee of supervisor
if (!empty($untergebenen_arr) &&
in_array($employee_uid, $untergebenen_arr))
{
return true;
}
else
{
return false;
}
}
/** Check if uid is a supervisor on higher oe level
*
* @param string $uid
* @param string $employee_uid
* @return boolean True if $uid is indirect supervisor (leader on higher oe-level)
* of $employee_uid.
*/
function check_isVorgesetzter_indirekt($uid, $employee_uid)
{
$mitarbeiter = new Mitarbeiter();
$mitarbeiter->getUntergebene($uid, true);
$untergebenen_ofChildOEs_arr = $mitarbeiter->untergebene;
if (!empty($untergebenen_ofChildOEs_arr) &&
in_array($employee_uid, $untergebenen_ofChildOEs_arr))
{
return true;
}
else
{
return false;
}
}
?>
Regular → Executable
+20 -16
View File
@@ -24,6 +24,7 @@
* @create 20-12-2006
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/sprache.class.php');
class kontakt extends basis_db
{
@@ -281,7 +282,7 @@ class kontakt extends basis_db
$qry = "SELECT tbl_kontakt.*, tbl_firma.name as firma_name, tbl_firma.firma_id
FROM public.tbl_kontakt LEFT JOIN public.tbl_standort USING(standort_id) LEFT JOIN public.tbl_firma USING(firma_id) WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND kontakttyp =".$this->db_add_param($kontakttyp, FHC_STRING);
if ($order != null)
$qry .= " ORDER BY ".$order;
@@ -332,9 +333,10 @@ class kontakt extends basis_db
$this->errormsg = 'Person_id ist ungueltig';
return false;
}
$qry = "SELECT tbl_kontakt.*, tbl_firma.name as firma_name, tbl_firma.firma_id
FROM public.tbl_kontakt LEFT JOIN public.tbl_standort USING(standort_id) LEFT JOIN public.tbl_firma USING(firma_id) WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).';';
$sprache = new sprache();
$bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
$qry = "SELECT tbl_kontakt.*, tbl_firma.name as firma_name, tbl_firma.firma_id, tbl_kontakttyp.beschreibung as kontakttyp_name, $bezeichnung_mehrsprachig
FROM public.tbl_kontakt JOIN tbl_kontakttyp USING (kontakttyp) LEFT JOIN public.tbl_standort USING(standort_id) LEFT JOIN public.tbl_firma USING(firma_id) WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER).';';
if($this->db_query($qry))
{
@@ -356,6 +358,8 @@ class kontakt extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$obj->kontakttyp_name = $row->kontakttyp_name;
$obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row);
$this->result[] = $obj;
}
@@ -512,15 +516,15 @@ class kontakt extends basis_db
return false;
}
}
/**
* Sucht nach Kontaktdaten, die den Suchkriterien entsprechen
* @param string $searchstring String, nach dem gesucht werden soll.
* @param string $searchstring String, nach dem gesucht werden soll.
* Wenn $typ = nummer ist, werden eventuelle nicht-numerische Zeichen mit preg_replace entfernt,
* und es wird nach den Typen "telefon","mobil","so.tel","firmenhandy" und "notfallkontakt" gesucht
* @param string $typ Optional. Kontakttyp. Möglich sind <b>"nummer"</b>,"telefon","mobil","so.tel","firmenhandy","firmenhandy","email","fax" und "homepage".
* Wenn $typ = nummer ist, werden eventuelle nicht-numerische Zeichen mit preg_replace entfernt,
* und es wird nach den Typen "telefon","mobil","so.tel","firmenhandy" und "notfallkontakt" gesucht
* und es wird nach den Typen "telefon","mobil","so.tel","firmenhandy" und "notfallkontakt" gesucht
* @return boolean
*/
public function searchKontakt ($searchstring, $typ = '')
@@ -534,18 +538,18 @@ class kontakt extends basis_db
return false;
}
}
$qry = "SELECT
$qry = "SELECT
*
FROM
FROM
public.tbl_kontakt
WHERE
WHERE
1=1";
if ($typ == 'nummer')
$qry .= " AND regexp_replace(kontakt , '[^0-9]', '', 'g') LIKE ('%".$this->db_escape($searchstring)."%')";
else
$qry .= " AND LOWER (kontakt) LIKE LOWER ('%".$this->db_escape($searchstring)."%')";
if ($typ != '' && $typ != 'nummer')
$qry .= " AND kontakttyp=".$this->db_add_param($typ);
@@ -554,7 +558,7 @@ class kontakt extends basis_db
while($row = $this->db_fetch_object())
{
$obj = new kontakt();
$obj->kontakt_id = $row->kontakt_id;
$obj->person_id = $row->person_id;
$obj->standort_id = $row->standort_id;
@@ -567,10 +571,10 @@ class kontakt extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$this->result[] = $obj;
}
return true;
}
else
@@ -580,4 +584,4 @@ class kontakt extends basis_db
}
}
}
?>
?>
+69 -1
View File
@@ -1091,8 +1091,12 @@ class mitarbeiter extends benutzer
/**
* Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck
* @param string $uid UID.
* @param boolean $include_OE_childs Wenn true, dann werden auch alle aktiv
* beschäftigten Untergebenen der Kind-OEs des Leiters zurückgegeben.
* @return boolean
*/
public function getUntergebene($uid=null)
public function getUntergebene($uid=null, $include_OE_childs = false)
{
if (is_null($uid))
$uid=$this->uid;
@@ -1113,6 +1117,70 @@ class mitarbeiter extends benutzer
$oe.=$this->db_add_param($row->oe_kurzbz);
}
}
// Kinder-Organisationseinheiten holen
if ($include_OE_childs == true)
{
if (!empty($oe))
{
$child_oe_arr = array(); // array of string child oes
$qry = '
WITH RECURSIVE
oes (oe_kurzbz, oe_parent_kurzbz) AS
(
SELECT
oe_kurzbz,
oe_parent_kurzbz
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz IN ('. $oe. ')
UNION ALL
SELECT
o.oe_kurzbz,
o.oe_parent_kurzbz
FROM
public.tbl_organisationseinheit o, oes
WHERE
o.oe_parent_kurzbz = oes.oe_kurzbz
)
SELECT
oe_kurzbz
FROM
oes
GROUP BY
oe_kurzbz';
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$child_oe_arr []= $this->db_add_param($row->oe_kurzbz);
}
}
// eliminate duplicates
$child_oe_arr = array_unique($child_oe_arr);
// check if leader has child oes by comparing the original
// string of oes with string of child oes.
if ($oe == implode(',', $child_oe_arr))
{
$this->result ['isIndirectSupervisor']= false;
}
else
{
$this->result ['isIndirectSupervisor']= true;
}
// overwrite $oe with child oes for further query
$oe = implode(',', $child_oe_arr);
}
}
//Alle Personen holen die dieser Organisationseinheit untergeordnet sind
$qry = "
+117
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
* Stefan Puraner <puraner@technikum-wien.at>
* Cristina Hainberger <hainberg@technikum-wien.at>
*/
/**
* Klasse Organisationseinheit
@@ -46,6 +47,7 @@ class organisationseinheit extends basis_db
public $oe_kurzbz_orig;
public $beschreibung;
public $oetyp_bezeichnung;
/**
@@ -454,6 +456,79 @@ class organisationseinheit extends basis_db
}
}
/**
* Get names and types of ALL parent organisational units recursivly for all ascending
* org units of given organisational unit. (All parent organisational units)
* @param string $oe_kurzbz
* @return boolean True on success. If true, returns object-array with name
* and types of given organisational unit and of its parent organisational units.
*/
public function getParents_withOEType($oe_kurzbz)
{
$parents=array();
$qry="
WITH RECURSIVE
oes (oe_kurzbz, oe_parent_kurzbz) AS
(
SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung AS oe_bezeichnung,
organisationseinheittyp_kurzbz
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
AND
aktiv = true
UNION ALL
SELECT
o.oe_kurzbz,
o.oe_parent_kurzbz,
o.bezeichnung,
o.organisationseinheittyp_kurzbz
FROM
public.tbl_organisationseinheit o, oes
WHERE
o.oe_kurzbz = oes.oe_parent_kurzbz
AND
aktiv = true
)
SELECT
oe_kurzbz,
oe_bezeichnung,
tbl_organisationseinheittyp.bezeichnung AS oe_typ_bezeichnung
FROM
oes
JOIN
public.tbl_organisationseinheittyp
USING (organisationseinheittyp_kurzbz)";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new stdClass();
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->oe_bezeichnung = $row->oe_bezeichnung;
$obj->oe_typ_bezeichnung = (!is_null($row->oe_typ_bezeichnung) ? $row->oe_typ_bezeichnung : '');
$this->result[]= $obj;
}
return $this->result;
}
else
{
$this->errormsg='Fehler beim Laden der Daten';
return false;
}
}
/**
* Prueft ob $child eine Organisationseinheit unterhalb der OE $oe_kurzbz ist
*
@@ -756,5 +831,47 @@ class organisationseinheit extends basis_db
}
}
}
/**
* Get full term of organisational unit type
* @param string $oetyp_kurzbz
* @return boolean True on success. If true, returns full term of given organisational unit type.
*/
public function getOETypBezeichnung($oetyp_kurzbz)
{
if (isset($oetyp_kurzbz) && !empty($oetyp_kurzbz))
{
$qry = '
SELECT
bezeichnung
FROM
public.tbl_organisationseinheittyp
WHERE
organisationseinheittyp_kurzbz = '. $this->db_add_param($oetyp_kurzbz). ';';
if ($this->db_query($qry))
{
if ($row = $this->db_fetch_object())
{
$this->oetyp_bezeichnung = $row->bezeichnung;
return true;
}
else
{
return false;
}
}
else
{
$this->errormsg = "Fehler in der Abfrage zum Einholen OE-Typ Bezeichnung.";
return false;
}
}
else
{
$this->errormsg = 'OE Typ fehlt bzw. darf nicht leer sein.';
return false;
}
}
}
?>
+214
View File
@@ -0,0 +1,214 @@
<?php
/* Copyright (C) 2007 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: Cristina Hainberger <hainberg@technikum-wien.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/mail.class.php');
require_once(dirname(__FILE__).'/vorlage.class.php');
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
/**
* Send single Mail with Sancho Design and Layout.
* @param string $vorlage_kurzbz Name of the template for specific mail content.
* @param array $vorlage_data Associative array with specific mail content varibales
* to be replaced in the content template.
* @param string $to Email-adress.
* @param string $subject Subject of mail.
* @param string $headerImg Filename of the specific Sancho header image.
* @return boolean True, if succeeded.
*/
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG)
{
$from = 'sancho@'. DOMAIN;
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
$sanchoFooter_img = dirname(__FILE__). '/../skin/images/sancho/sancho_footer.jpg';
// Set unique content id for embedding header and footer image
$cid_header = uniqid();
$cid_footer = uniqid();
// Set specific mail content into specific content template
$content = parseMailContent($vorlage_kurzbz, $vorlage_data);
// Create data array with specific content and image content ids
$layout = array(
'CID_header' => $cid_header,
'CID_footer' => $cid_footer,
'content' => $content
);
// Set the data array into overall sancho mail template
$body = parseMailContent('Sancho_Mail_Template', $layout);
// Send mail
$mail = new Mail($to, $from, $subject, $body);
// * embed the images
$mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
$mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
// * embed the html content
$mail->setHTMLContent($body);
return $mail->send();
}
// ******************************************* HELPER FUNCTIONS
/**
* Replace variables in the mail content template with specific mail content data.
* @param string $vorlage_kurzbz Name of the template for specific mail content.
* @param array $vorlage_data Associative array with specific mail content varibales
* to be replaced in the content template.
* @return string
*/
function parseMailContent($vorlage_kurzbz, $vorlage_data)
{
$vorlage = new Vorlage();
$vorlage->getAktuelleVorlage('etw', $vorlage_kurzbz);
// If the text and the subject of the template are not empty
if (!empty($vorlage->text))
{
// Parses template text
$parsedText = parseVorlagetext($vorlage->text, $vorlage_data);
return $parsedText;
}
}
/**
* parseVorlagetext() - will parse a Vorlagetext.
*
* @param string $text REQUIRED
* @param array $data REQUIRED
* @return string
*/
function parseVorlagetext($text, $data = array())
{
if (empty($text))
return 'Error in parsing Vorlagentext';
$text = parse_string($text, $data, true);
return $text;
}
/**
* Parse a String
*
* Parses pseudo-variables contained in the specified string,
* replacing them with the data in the second param
*
* @param string
* @param array
* @param bool
* @return string
*/
function parse_string($template, $data, $return = FALSE)
{
if ($template === '')
{
return FALSE;
}
$replace = array();
foreach ($data as $key => $val)
{
$replace = array_merge(
$replace,
is_array($val)
? parse_pair($key, $val, $template)
: parse_single($key, (string) $val, $template)
);
}
unset($data);
$template = strtr($template, $replace);
if ($template === FALSE)
{
return false;
}
return $template;
}
/**
* Parse a single key/value
*
* @param string
* @param string
* @param string
* @return string
*/
function parse_single($key, $val, $string)
{
return array('{'. $key. '}' => (string) $val);
}
/**
* Parse a tag pair
*
* Parses tag pairs: {some_tag} string... {/some_tag}
*
* @param string
* @param array
* @param string
* @return string
*/
function parse_pair($variable, $data, $string)
{
$replace = array();
preg_match_all(
'#'.preg_quote('{'. $variable. '}').'(.+?)'.preg_quote('{'.'/'.$variable. '}').'#s',
$string,
$matches,
PREG_SET_ORDER
);
foreach ($matches as $match)
{
$str = '';
foreach ($data as $row)
{
$temp = array();
foreach ($row as $key => $val)
{
if (is_array($val))
{
$pair = parse_pair($key, $val, $match[1]);
if ( ! empty($pair))
{
$temp = array_merge($temp, $pair);
}
continue;
}
$temp['{'.$key. '}'] = $val;
}
$str .= strtr($match[1], $temp);
}
$replace[$match[0]] = $str;
}
return $replace;
}
+40 -12
View File
@@ -244,31 +244,31 @@ class studiengang extends basis_db
}
/**
* Gibt alle aktiven Studiengaenge und Lehrgaenge (mit Typ) zurueck, bei denen das Attribut onlinebewerbung true ist.
* Gibt alle aktiven Studiengaenge und Lehrgaenge (mit Typ) zurueck, bei denen das Attribut onlinebewerbung true ist.
*
* @param string $order Spalten, nach denen Sortiert werden soll.<br>Default: tbl_studiengang.typ, tbl_lgartcode.bezeichnung ASC, tbl_studiengang.bezeichnung.
* @param string $order Spalten, nach denen Sortiert werden soll.<br>Default: tbl_studiengang.typ, tbl_lgartcode.bezeichnung ASC, tbl_studiengang.bezeichnung.
* @return boolean
*/
public function getAllForOnlinebewerbung($order = 'tbl_studiengang.typ, tbl_lgartcode.bezeichnung ASC, tbl_studiengang.bezeichnung')
{
$qry = "SELECT
tbl_studiengang.studiengang_kz,
tbl_studiengang.typ,
$qry = "SELECT
tbl_studiengang.studiengang_kz,
tbl_studiengang.typ,
tbl_studiengangstyp.bezeichnung AS typ_bezeichnung,
tbl_studiengang.lgartcode,
tbl_studiengang.bezeichnung AS studiengangbezeichnung,
tbl_studiengang.english AS studiengangbezeichnung_englisch,
tbl_organisationseinheit.organisationseinheittyp_kurzbz,
tbl_organisationseinheit.organisationseinheittyp_kurzbz,
tbl_organisationseinheit.standort,
tbl_lgartcode.bezeichnung AS lehrgangsart
FROM public.tbl_studiengang
LEFT JOIN bis.tbl_lgartcode USING (lgartcode)
FROM public.tbl_studiengang
LEFT JOIN bis.tbl_lgartcode USING (lgartcode)
LEFT JOIN public.tbl_organisationseinheit USING (oe_kurzbz)
JOIN public.tbl_organisationseinheittyp USING (organisationseinheittyp_kurzbz)
JOIN public.tbl_studiengangstyp USING (typ)
WHERE tbl_studiengang.onlinebewerbung IS TRUE
WHERE tbl_studiengang.onlinebewerbung IS TRUE
AND tbl_studiengang.aktiv IS TRUE";
$qry .= " ORDER BY ".$order;
if(!$result = $this->db_query($qry))
@@ -276,12 +276,12 @@ class studiengang extends basis_db
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = $this->db_fetch_object($result))
{
$this->result[] = $row;
}
return true;
}
@@ -1045,6 +1045,34 @@ class studiengang extends basis_db
}
return true;
}
/**
* Prueft ob ein Studiengang in einem Studiensemester mehrere Studienplaene mit unterschiedlichen Orgformen hat
* @param $studiengang_kz integer Kennzahl des Studiengangs.
* @param $studiensemester_kurzbz varchar Studiensemester (optional).
* @return true wenn mehrere Orgformen vorhanden sind, false wenn nicht.
*/
public function isMischform($studiengang_kz, $studiensemester_kurzbz = null)
{
$qry = "SELECT distinct orgform_kurzbz
FROM
lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
JOIN lehre.tbl_studienplan_semester USING(studienplan_id)
WHERE
studiengang_kz=".$this->db_add_param($studiengang_kz);
if(!is_null($studiensemester_kurzbz))
$qry .= " AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result)>1)
return true;
else
return false;
}
}
/**
* Laedt die Studiengänge die vom übergeben Typ sind
Regular → Executable
+1 -1
View File
@@ -5,7 +5,7 @@ $this->phrasen['profil/home']='HOME';
$this->phrasen['profil/meinCis']='Mein CIS';
$this->phrasen['profil/bildHochladen']='Profilfoto hochladen';
$this->phrasen['profil/email']='eMail';
$this->phrasen['profil/kontaktPrivat']='Privat';
$this->phrasen['profil/kontaktPrivat']='Private Kontakte';
$this->phrasen['profil/mobil']='Mobil';
$this->phrasen['profil/telefon']='Telefon';
$this->phrasen['profil/intern']='Intern';
Regular → Executable
+1
View File
@@ -5,6 +5,7 @@ $this->phrasen['profil/mitarbeiter']='Employee';
$this->phrasen['profil/meinCis']='My CIS';
$this->phrasen['profil/bildHochladen']='Upload picture';
$this->phrasen['profil/email']='eMail';
$this->phrasen['profil/kontaktPrivat']='Private Contacts';
$this->phrasen['profil/intern']='Intern';
$this->phrasen['profil/alias']='Alias';
$this->phrasen['profil/homepage']='Homepage';
+1 -1
View File
@@ -1,5 +1,5 @@
.fhc-ajaxclient-veil {
position: absolute;
position: fixed;
z-index: 9999;
top: 0;
left: 0;
@@ -0,0 +1,38 @@
/* styles for infocenter details page */
/* styles for right header of the zgv boxes, which includes infos and priorisierung for each prestudent.*/
.zgvheaderbeforeprio{
margin-right: 2px;
}
.zgvheaderrightprio{
position: relative;
margin-right: 8px;
}
.zgvheaderrightprio button.prio{
position: absolute;
font-size: 19px;
height: 13px;
width: 18px;
padding: 0 4px;
}
.zgvheaderrightprio button.prioalone{
top: 25%;
}
.zgvheaderrightprio button.priotogetherup{
bottom: 50%;
}
.zgvheaderrightprio button.priotogetherdown{
top: 55%;
}
.zgvheaderrightprio button.prio .prioarrow{
position: absolute;
top: -4px;
right: 2px;
left: 2px;
}
+29 -1
View File
@@ -7,7 +7,31 @@
border-bottom: 1px solid #eee;
}
/*change of panel colors (grey) */
.headerrightform
{
margin: 28px 0 20px -30px;
padding: 6.4px 0 9px;
border-bottom: 1px solid #eee;
}
.headerrightform .form-group{
margin-bottom: 0;
margin-left: 5px;
}
.headerrightform .form-control{
height: 32px;
font-size: 13px;
}
/*heading with colored background*/
.headercolorbg {
background-color: #dfdfdf;
padding: 3px 0;
border-radius: 5px;
}
/*change of panel colors (to grey) */
.panel-primary > .panel-heading, .panel-primary > .panel-collapse > .panel-footer, .panel-primary > .panel-footer{
color: black;
background-color: #dfdfdf;
@@ -42,6 +66,10 @@
text-decoration: none !important;
}
.panel-footer.solidtop{
border-top: 1px solid #ddd
}
/*required asterisk for labels for required fields*/
.label-required:after
{
+1 -1
View File
@@ -744,7 +744,7 @@ var FHC_FilterWidget = {
*/
_renderTableDataset: function(data) {
if (data.hasOwnProperty("checkboxes") && data.checkboxes.trim() != "")
if (data.hasOwnProperty("checkboxes") && data.checkboxes!=null && data.checkboxes.trim() != "")
{
$("#filterTableDataset > thead > tr").append("<th data-filter='false' title='Select'>Select</th>");
}
+1 -1
View File
@@ -232,7 +232,7 @@ var FHC_NavigationWidget = {
if (item["subscriptLinkClass"] != null && item["subscriptDescription"] != null)
{
strLeftMenu += '<a class="' + item["subscriptLinkClass"] + ' menuSubscriptLink" value="' + item["subscriptLinkValue"] + '" href="#">' +
strLeftMenu += '<a class="' + item["subscriptLinkClass"] + ' menuSubscriptLink" value="' + item["subscriptLinkValue"] + '" href="' + item["subscriptLinkHref"] + '">' +
' (' + item["subscriptDescription"] + ')' +
'</a>';
strLeftMenu += '</span>';
+7 -1
View File
@@ -3,8 +3,14 @@
* NOTE: avoid using this if possible
*/
$(document).ready(function() {
Bootstrapper.bootstraphtml();
});
var Bootstrapper = {
bootstraphtml: function ()
{
$("input[type=text], select").addClass("form-control");
$("button, input[type=button]").addClass("btn btn-default");
$("table").addClass("table-condensed");
}
);
};
+221 -66
View File
@@ -16,21 +16,13 @@ $(document).ready(function ()
InfocenterDetails._formatNotizTable();
InfocenterDetails._formatLogTable();
//initialise datepicker
$.datepicker.setDefaults($.datepicker.regional['de']);
$(".dateinput").datepicker({
"dateFormat": "dd.mm.yy"
});
var personid = $("#hiddenpersonid").val();
//add submit event to message send link
$("#sendmsglink").click(
function ()
{
$("#sendmsgform").submit();
}
);
$("#sendmsglink").click(function ()
{
$("#sendmsgform").submit();
});
//add click events to "formal geprüft" checkboxes
$(".prchbox").click(function ()
@@ -41,60 +33,8 @@ $(document).ready(function ()
InfocenterDetails.saveFormalGeprueft(personid, akteid, checked)
});
//zgv übernehmen
$(".zgvUebernehmen").click(function ()
{
var btn = $(this);
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
$('#zgvUebernehmenNotice').remove();
InfocenterDetails.zgvUebernehmen(personid, prestudentid, btn)
});
//zgv speichern
$(".zgvform").on('submit', function (e)
{
e.preventDefault();
var formdata = $(this).serializeArray();
var data = {};
for (var i = 0; i < formdata.length; i++)
{
data[formdata[i].name] = formdata[i].value;
}
InfocenterDetails.saveZgv(data);
}
);
//show popup with zgvinfo
$(".zgvinfo").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
InfocenterDetails.openZgvInfoForPrestudent(prestudentid);
}
);
//prevent opening modal when Statusgrund not chosen
$(".absageModal").on('show.bs.modal', function (e)
{
var id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrvalue = $("#statusgrselect_" + id + " select[name=statusgrund]").val();
if (statusgrvalue === "null")
{
$("#statusgrselect_" + id).addClass("has-error");
return e.preventDefault();
}
}
);
//remove red mark when statusgrund is selected again
$("select[name=statusgrund]").change(
function ()
{
$(this).parent().removeClass("has-error");
}
);
//add click events to zgv Prüfung section
InfocenterDetails._addZgvPruefungEvents(personid);
//save notiz
$("#notizform").on("submit", function (e)
@@ -203,6 +143,25 @@ var InfocenterDetails = {
}
);
},
saveBewPriorisierung: function(data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveBewPriorisierung',
data,
{
successCallback: function(data, textStatus, jqXHR) {
if (data === true)
{
InfocenterDetails._refreshZgv(true);
}
else
{
alert("error when saving zgv Prio");
}
}
}
);
},
zgvUebernehmen: function(personid, prestudentid, btn)
{
FHC_AjaxClient.ajaxCallGet(
@@ -267,6 +226,55 @@ var InfocenterDetails = {
}
);
},
saveAbsage: function(data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveAbsage',
data,
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
InfocenterDetails._refreshZgv();
InfocenterDetails._refreshLog();
}
else
{
alert("error when saving Absage");
}
}
}
);
},
saveFreigabe: function(data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveFreigabe',
data,
{
successCallback: function(data, textStatus, jqXHR) {
console.log(data.error);
if (FHC_AjaxClient.hasData(data))
{
InfocenterDetails._refreshZgv();
InfocenterDetails._refreshLog();
}
else if (data.error === 2 && parseInt(data.retval.prestudent_id, 10))
{
alert("error when setting accepted documents");
InfocenterDetails._refreshZgv();
InfocenterDetails._refreshLog();
}
else
{
alert("error when saving Freigabe");
}
}
}
);
},
saveNotiz: function(personid, data)
{
FHC_AjaxClient.ajaxCallPost(
@@ -399,6 +407,145 @@ var InfocenterDetails = {
// -----------------------------------------------------------------------------------------------------------------
// (private) methods executed after ajax (refreshers)
//adds JQuery events to ZGVprüfung section
_addZgvPruefungEvents: function(personid)
{
//add bootstrap to forms
Bootstrapper.bootstraphtml();
//initialise datepicker
$.datepicker.setDefaults($.datepicker.regional['de']);
$(".dateinput").datepicker({
"dateFormat": "dd.mm.yy"
});
//up/down prioritize Bewerbungen
$(".prioup").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
InfocenterDetails._savePrio(prestudentid, -1);
});
$(".priodown").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
InfocenterDetails._savePrio(prestudentid, 1);
});
//zgv übernehmen
$(".zgvUebernehmen").click(function ()
{
var btn = $(this);
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
$('#zgvUebernehmenNotice').remove();
InfocenterDetails.zgvUebernehmen(personid, prestudentid, btn);
});
//zgv speichern
$(".zgvform").on('submit', function (e)
{
e.preventDefault();
var formdata = $(this).serializeArray();
var data = {};
for (var i = 0; i < formdata.length; i++)
{
data[formdata[i].name] = formdata[i].value;
}
InfocenterDetails.saveZgv(data);
}
);
//show popup with zgvinfo
$(".zgvinfo").click(function ()
{
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
InfocenterDetails.openZgvInfoForPrestudent(prestudentid);
}
);
//prevent opening modal when Statusgrund not chosen
$(".absageModal").on('show.bs.modal', function (e)
{
var id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrvalue = $("#statusgrselect_" + id + " select[name=statusgrund]").val();
if (statusgrvalue === "null")
{
$("#statusgrselect_" + id).addClass("has-error");
return e.preventDefault();
}
}
);
//remove red mark when statusgrund is selected again
$("select[name=statusgrund]").change(
function ()
{
$(this).parent().removeClass("has-error");
}
);
$(".saveAbsage").click(function()
{
$(".absageModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrund_id = $("#statusgrselect_" + prestudent_id + " select[name=statusgrund]").val();
var data = {"prestudent_id": prestudent_id , "statusgrund": statusgrund_id};
InfocenterDetails.saveAbsage(data);
}
);
$(".saveFreigabe").click(function()
{
$(".freigabeModal").modal("hide");
var prestudent_id = this.id.substr(this.id.indexOf("_") + 1);
var data = {"prestudent_id": prestudent_id};
InfocenterDetails.saveFreigabe(data);
}
)
},
_refreshZgv: function(preserveCollapseState)
{
var personid = $("#hiddenpersonid").val();
var collapsed = {};
//save if panel is collapsed to preserve collapse state
if (preserveCollapseState)
{
$("#zgvpruefungen").find(".panel-collapse").each(
function()
{
var collapseid = $(this).prop("id");
collapsed[collapseid] = !$(this).hasClass('collapse in');
}
);
}
//show veil until refresh finished?
//FHC_AjaxClient.showVeil();
$("#zgvpruefungen").load(
CONTROLLER_URL + '/reloadZgvPruefungen/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
function()
{
InfocenterDetails._addZgvPruefungEvents(personid);
if (preserveCollapseState)
{
for (var i in collapsed)
{
if (collapsed[i])
$("#"+i).removeClass("in");
else
$("#"+i).addClass("in");
}
}
//FHC_AjaxClient.hideVeil();
}
);
},
_refreshLog: function()
{
var personid = $("#hiddenpersonid").val();
@@ -491,5 +638,13 @@ var InfocenterDetails = {
_errorSaveNotiz: function()
{
$("#notizmsg").text(FHC_PhrasesLib.t('ui', 'fehlerBeimSpeichern'));
},
_savePrio: function(prestudentid, change)
{
var data = {
"prestudentid": prestudentid,
"change": change
};
InfocenterDetails.saveBewPriorisierung(data);
}
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

+113 -43
View File
@@ -25,6 +25,7 @@ require_once('../include/functions.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/dvb.class.php');
require_once('../include/errorhandler.class.php');
$uid = get_uid();
$rechte = new benutzerberechtigung();
@@ -39,9 +40,9 @@ if (isset($_GET['action']))
else
$action = 'getBySvnr';
$username = filter_input(INPUT_POST, 'username');
$password = filter_input(INPUT_POST, 'password');
$bildungseinrichtung = filter_input(INPUT_POST, 'bildungseinrichtung');
$username = DVB_USERNAME;
$password = DVB_PASSWORD;
$studienjahr = filter_input(INPUT_POST, 'studienjahr');
$matrikelnr = filter_input(INPUT_POST, 'matrikelnummer');
$nachname = filter_input(INPUT_POST, 'nachname');
@@ -54,6 +55,7 @@ $matura = filter_input(INPUT_POST, 'matura');
$svnr = filter_input(INPUT_POST, 'svnr');
$ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen');
$person_id = filter_input(INPUT_POST, 'person_id');
$strasse = filter_input(INPUT_POST, 'strasse');
?><!DOCTYPE html>
<html>
@@ -71,11 +73,18 @@ $person_id = filter_input(INPUT_POST, 'person_id');
Matrikelnummer nach Ersatzkennzeichen suchen
</a>
</li>
<li><a href="datenverbund_client.php?action=getByNachname">Matrikelnummer nach Nachname suchen</a></li>
<li><a href="datenverbund_client.php?action=getReservations">Matrikelnummer Reservierungen anzeigen</a></li>
<li><a href="datenverbund_client.php?action=getKontingent">Matrikelnummer Kontingent anfordern</a></li>
<li><a href="datenverbund_client.php?action=setMatrikelnummer">Matrikelnummer Vergabe melden</a></li>
<li><a href="datenverbund_client.php?action=assignMatrikelnummer">Gesamtprozess (Abfrage, ggf Vergabemeldung, Speichern bei Person)</a></li>
<li><a href="datenverbund_client.php?action=getBPK">BPK ermitteln</a></li>
<li><a href="datenverbund_client.php?action=pruefeBPK">BPK ermitteln manuell</a></li>
</ul>
<?php
echo "<br>Portal: ".DVB_PORTAL;
echo "<br>Bildungseinrichtung: ".DVB_BILDUNGSEINRICHTUNG_CODE;
?>
<br><br>
<form action="<?php echo $_SERVER['PHP_SELF'].'?action='.$action; ?>" method="post">
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
@@ -103,9 +112,6 @@ $person_id = filter_input(INPUT_POST, 'person_id');
</tr>';
}
printrow('username', 'Username', $username, '', 100);
printrow('password', 'Passwort', $password, '', 100, 'password');
switch($action)
{
case 'getOAuth':
@@ -118,25 +124,17 @@ $person_id = filter_input(INPUT_POST, 'person_id');
case 'getByErsatzkennzeichen':
printrow('ersatzkennzeichen', 'Ersatzkennzeichen', $ersatzkennzeichen);
break;
case 'getByNachname':
printrow('nachname', 'Nachname', $nachname);
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, ' (Format: YYYYMMDD)', 8);
break;
case 'getReservations':
case 'getKontingent':
printrow(
'bildungseinrichtung',
'Bildungseinrichtung',
$bildungseinrichtung,
'Kurzzeichen der Bildungseinrichtung'
);
printrow('studienjahr', 'Studienjahr', $studienjahr, 'zB 2016 (für WS2016 und SS2017)', 4);
break;
case 'setMatrikelnummer':
printrow(
'bildungseinrichtung',
'Bildungseinrichtung',
$bildungseinrichtung,
'Kurzzeichen der Bildungseinrichtung'
);
printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr);
printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30);
@@ -144,7 +142,7 @@ $person_id = filter_input(INPUT_POST, 'person_id');
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10);
printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3);
printrow('svnr', 'SVNR', $staat);
printrow('svnr', 'SVNR', $svnr);
printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10);
break;
@@ -152,6 +150,20 @@ $person_id = filter_input(INPUT_POST, 'person_id');
printrow('person_id', 'PersonID', $person_id);
break;
case 'getBPK':
printrow('person_id', 'PersonID', $person_id);
break;
case 'pruefeBPK':
printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30);
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, 'Format: YYYYMMDD', 10);
printrow('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, 'optional', 10);
printrow('strasse', 'Strasse', $strasse, 'optional', 255);
break;
default:
echo "Unknown action";
break;
@@ -180,44 +192,80 @@ if (isset($_REQUEST['submit']))
switch ($action)
{
case 'getOAuth':
if ($dvb->authenticate())
$result = $dvb->authenticate();
if (ErrorHandler::isSuccess($result))
echo '<br><b>OAuth Bearer Token:</b> '.$dvb->authentication->access_token;
else
echo '<br><b>Failed:</b> '.$dvb->errormsg;
break;
case 'getBySvnr':
$matrikelnr = $dvb->getMatrikelnrBySVNR($_POST['svnr']);
if ($matrikelnr !== false)
echo '<br><b>Matrikelnummer vorhanden:</b>'.$matrikelnr;
$data = $dvb->getMatrikelnrBySVNR($_POST['svnr']);
if(ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
{
echo '<br><b>Matrikelnummer vorhanden:</b> '.$data->retval->matrikelnummer;
if(isset($data->retval->bpk) && $data->retval->bpk!='')
echo '<br><b>BPK vorhanden:</b> '.$data->retval->bpk;
}
else
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg;
{
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
}
break;
case 'getByErsatzkennzeichen':
$matrikelnr = $dvb->getMatrikelnrByErsatzkennzeichen($_POST['ersatzkennzeichen']);
if ($matrikelnr !== false)
echo '<br><b>Matrikelnummer vorhanden:</b>'.$matrikelnr;
$data = $dvb->getMatrikelnrByErsatzkennzeichen($_POST['ersatzkennzeichen']);
if (ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
echo '<br><b>Matrikelnummer vorhanden:</b>'.$data->retval->matrikelnummer;
else
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg;
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
break;
case 'getReservations':
$reservierteNummern = $dvb->getReservations($_POST['bildungseinrichtung'], $_POST['studienjahr']);
case 'getByNachname':
$data = $dvb->getMatrikelnrByNachname($_POST['nachname'], $_POST['geburtsdatum']);
if ($reservierteNummern !== false)
echo '<br><b>Reservierte Nummern:</b>'.print_r($reservierteNummern, true);
if(ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
{
if(isset($data->retval->data) && is_array($data->retval->data) && count($data->retval->data)>0)
{
echo '<br><b>Daten gefunden:</b> ';
var_dump($data->retval);
}
else
{
echo 'keine Einträge gefunden';
}
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
{
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
}
break;
case 'getReservations':
$result = $dvb->getReservations(DVB_BILDUNGSEINRICHTUNG_CODE, $_POST['studienjahr']);
if(ErrorHandler::isSuccess($result) && ErrorHandler::hasData($result))
{
$reservierteNummern = $result->retval->reservations;
if ($reservierteNummern !== false)
echo '<br><b>Reservierte Nummern:</b>'.print_r($reservierteNummern, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
}
break;
case 'getKontingent':
$kontingent = $dvb->getKontingent($_POST['bildungseinrichtung'], $_POST['studienjahr']);
$result = $dvb->getKontingent(DVB_BILDUNGSEINRICHTUNG_CODE, $_POST['studienjahr']);
if ($kontingent !== false)
echo '<br><b>Kontingent:</b>'.print_r($kontingent, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
if(ErrorHandler::isSuccess($result) && ErrorHandler::hasData($result))
{
$kontingent = $result->retval->kontingent;
if ($kontingent !== false)
echo '<br><b>Kontingent:</b>'.print_r($kontingent, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
}
break;
case 'setMatrikelnummer':
@@ -232,27 +280,49 @@ if (isset($_REQUEST['submit']))
$person->matura = $matura; // Optional
$person->svnr = $svnr; // Optional
if ($dvb->setMatrikelnummer($_POST['bildungseinrichtung'], $person))
$result = $dvb->setMatrikelnummer(DVB_BILDUNGSEINRICHTUNG_CODE, $person);
if (ErrorHandler::isSuccess($result))
echo '<br><b>Erfolgreich gemeldet</b>';
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'assignMatrikelnummer':
if($dvb->assignMatrikelnummer($person_id))
$result = $dvb->assignMatrikelnummer($person_id);
if(ErrorHandler::isSuccess($result))
{
echo '<br><b>OK</b>';
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg;
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'getBPK':
$data = $dvb->getBPK($person_id);
if(ErrorHandler::isSuccess($data))
{
echo '<br><b>OK BPK:</b> '.$data->retval->bpk;
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
case 'pruefeBPK':
$data = $dvb->pruefeBPK($geburtsdatum, $vorname, $nachname, $geschlecht, $postleitzahl, $strasse);
if(ErrorHandler::isSuccess($data))
{
echo '<br><b>OK BPK:</b> '.$data->retval->bpk;
}
else
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break;
default:
echo "Unknown action";
break;
}
if (isset($_POST['debug']))
echo '<div style="color: gray">'.$dvb->debug_output.'</div>';
echo '<div style="color: gray">'.nl2br(htmlentities($dvb->debug_output)).'</div>';
}
?>
+76 -3
View File
@@ -609,7 +609,7 @@ $text .= "<br><br>Studierender hat keine Matrikelnummer<br><br>";
$qry = "
SELECT
distinct on (person_id)
distinct on (tbl_person.person_id)
tbl_student.student_uid,
tbl_prestudent.prestudent_id,
tbl_prestudent.studiengang_kz as studiengang
@@ -618,7 +618,7 @@ FROM
JOIN public.tbl_prestudentstatus USING(prestudent_id)
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_student USING(prestudent_id)
JOIN public.tbl_benutzer USING(person_id)
JOIN public.tbl_benutzer ON(tbl_student.student_uid=tbl_benutzer.uid)
WHERE
status_kurzbz in('Student', 'Diplomand', 'Absolvent', 'Abbrecher')
AND tbl_prestudent.bismelden
@@ -637,6 +637,62 @@ if ($result = $db->db_query($qry))
}
}
/*
* Bewerber die nicht zum Reihungstest angetreten gesetzt sind
*/
$text .= "<br><br>Bewerber aber kein ReihungstestAngetreten gesetzt<br><br>";
$lastSem = $studiensemester->getPreviousFrom($aktSem);
$qry="SELECT vorname, nachname, tbl_prestudent.prestudent_id, studiengang_kz FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id)
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz)
WHERE (studiensemester_kurzbz=".$db->db_add_param($aktSem)." OR studiensemester_kurzbz=".$db->db_add_param($lastSem).")
AND tbl_prestudent.studiengang_kz=".$db->db_add_param($studiengang_kz)."
AND status_kurzbz='Bewerber' AND reihungstestangetreten=false
";
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang_kz][15][] = $row->vorname.' '.$row->nachname.
' ('.$row->prestudent_id.')';
$text .= $row->vorname.' '.$row->nachname.
' ('.$row->prestudent_id.')';
}
}
/*
* Nation der Adresse ist ungleich Österreicher, die Gemeinde ist aber in der Gemeinde Tabelle enthalten
*/
$text .= "<br><br>Adressnation ausserhalb Österreich mit Gemeinde in Gemeindetabelle<br><br>";
$lastSem = $studiensemester->getPreviousFrom($aktSem);
$qry="SELECT tbl_person.vorname, tbl_person.nachname, tbl_prestudent.studiengang_kz, tbl_student.student_uid
FROM
public.tbl_adresse
JOIN public.tbl_prestudent USING(person_id)
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_student USING(prestudent_id)
JOIN public.tbl_benutzer ON(uid=student_uid)
WHERE
tbl_adresse.nation!='A'
AND tbl_benutzer.aktiv
AND gemeinde NOT IN ('Münster')
AND EXISTS(SELECT 1 FROM bis.tbl_gemeinde WHERE name = tbl_adresse.gemeinde)
ORDER BY tbl_prestudent.studiengang_kz, tbl_person.nachname
";
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
$ausgabe[$row->studiengang_kz][16][] = $row->vorname.' '.$row->nachname.
' ('.$row->student_uid.')';
$text .= $row->vorname.' '.$row->nachname.
' ('.$row->student_uid.')';
}
}
// Ausgabe der Studenten
foreach ($ausgabe as $stg_kz => $value)
{
@@ -795,7 +851,24 @@ foreach ($ausgabe as $stg_kz => $value)
<td colspan='4'><b>Aktive Studierende ohne Matrikelnummer</b></td>
</tr>";
break;
case 15:
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Folgende Personen wurden zu Bewerbern gemacht, sind aber nicht zum Reihungstest angetreten.</b></td>
</tr>";
break;
case 16:
echo "
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan='4'><b>Folgende Personen haben eine Adresse mit Nation Österreichs, die Gemeinde liegt aber in Österreich</b></td>
</tr>";
break;
default:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break;
+31 -3
View File
@@ -1522,6 +1522,33 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_person_lock LIMIT 1"))
echo ' system.tbl_person_lock hinzugefügt<br>';
}
// Spalte bezeichnung_mehrsprachig in public.tbl_kontakttyp
if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM public.tbl_kontakttyp LIMIT 1"))
{
$qry = "ALTER TABLE public.tbl_kontakttyp ADD COLUMN bezeichnung_mehrsprachig varchar(128)[];";
if(!$db->db_query($qry))
echo '<strong>public.tbl_kontakttyp '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_kontakttyp: Spalte bezeichnung_mehrsprachig hinzugefuegt!<br>';
// Bezeichnung_mehrsprachig aus existierender Bezeichnung vorausfuellen. Ein Eintrag fuer jede Sprache mit Content aktiv.
$qry_help = "SELECT index FROM public.tbl_sprache WHERE content=TRUE;";
if(!$result = $db->db_query($qry_help))
echo '<strong>tbl_kontakttyp bezeichnung_mehrsprachig: Fehler beim ermitteln der Sprachen: '.$db->db_last_error().'</strong>';
else
{
$qry='';
while($row = $db->db_fetch_object($result))
$qry.= "UPDATE public.tbl_kontakttyp set bezeichnung_mehrsprachig[".$row->index."] = beschreibung;";
if(!$db->db_query($qry))
echo '<strong>Setzen der bezeichnung_mehrsprachig fehlgeschlagen: '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_kontakttyp: bezeichnung_mehrprachig automatisch aus existierender Beschreibung uebernommen<br>';
}
}
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
{
@@ -1550,6 +1577,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
/**
* Kommentare fuer Datenbanktabellen
*/
@@ -2455,14 +2483,14 @@ if(!$result = @$db->db_query("SELECT lieferant FROM public.tbl_firma LIMIT 1"))
echo '<br>public.tbl_firma: Spalte lieferant hinzugefuegt';
}
// INSERT, UPDATE und DELETE Berechtigungen fuer web User erteilen fuer tbl_rt_person und SEQUENCE public.tbl_rt_person_rt_person_id_seq
// INSERT, UPDATE und DELETE Berechtigungen fuer web User erteilen fuer tbl_rt_person und SEQUENCE public.tbl_rt_person_rt_person_id_seq
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_rt_person' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rt_person TO web;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_rt_person_rt_person_id_seq TO web;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_rt_person Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
@@ -2647,7 +2675,7 @@ $tabellen=array(
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe"),
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
"public.tbl_kontaktmedium" => array("kontaktmedium_kurzbz","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung"),
"public.tbl_kontakttyp" => array("kontakttyp","beschreibung","bezeichnung_mehrsprachig"),
"public.tbl_konto" => array("buchungsnr","person_id","studiengang_kz","studiensemester_kurzbz","buchungstyp_kurzbz","buchungsnr_verweis","betrag","buchungsdatum","buchungstext","mahnspanne","updateamum","updatevon","insertamum","insertvon","ext_id","credit_points", "zahlungsreferenz", "anmerkung"),
"public.tbl_lehrverband" => array("studiengang_kz","semester","verband","gruppe","aktiv","bezeichnung","ext_id","orgform_kurzbz","gid"),
"public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"),
+22
View File
@@ -300,6 +300,28 @@ $filters = array(
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'core',
'dataset_name' => 'overview',
'filter_kurzbz' => 'BPKWartung',
'description' => '{bPK Uebersicht}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "Fehlende bPK",
"columns": [
{"name": "person_id"},
{"name": "vorname"},
{"name": "nachname"},
{"name": "svnr"},
{"name": "ersatzkennzeichen"}
],
"filters": []
}
',
'oe_kurzbz' => null,
)
);
+12 -12
View File
@@ -53,28 +53,28 @@ if(isset($_FILES['datei']))
$dom = new DOMDocument();
$dom->load($_FILES['datei']['tmp_name']);
$studierende = $dom->getElementsByTagName('studierende');
if(isset($studierende[0]))
if($studierende->length > 0)
{
$domnodes_personen = $studierende[0]->getElementsByTagName('personen');
$domnodes_personen = $studierende->item(0)->getElementsByTagName('personen');
foreach($domnodes_personen as $row_person)
{
$personid_node = $row_person->getElementsByTagName('personId');
if(isset($personid_node[0]))
if($personid_node->length > 0)
{
$node_bpk = $personid_node[0]->getElementsByTagName('bpk');
$node_personenkennzeichen = $personid_node[0]->getElementsByTagName('personenkennzeichen');
$node_matrikelnr = $personid_node[0]->getElementsByTagName('matrikelnummer');
$node_bpk = $personid_node->item(0)->getElementsByTagName('bpk');
$node_personenkennzeichen = $personid_node->item(0)->getElementsByTagName('personenkennzeichen');
$node_matrikelnr = $personid_node->item(0)->getElementsByTagName('matrikelnummer');
$bpk = '';
$personenkennzeichen = '';
$matrikelnr = '';
if (isset($node_bpk[0]))
$bpk = $node_bpk[0]->textContent;
if (isset($node_personenkennzeichen[0]))
$personenkennzeichen = $node_personenkennzeichen[0]->textContent;
if (isset($node_matrikelnr[0]))
$matrikelnr = $node_matrikelnr[0]->textContent;
if ($node_bpk->length > 0)
$bpk = $node_bpk->item(0)->textContent;
if ($node_personenkennzeichen->length > 0)
$personenkennzeichen = $node_personenkennzeichen->item(0)->textContent;
if ($node_matrikelnr->length > 0)
$matrikelnr = $node_matrikelnr->item(0)->textContent;
if($personenkennzeichen != '')
{
+221 -40
View File
@@ -18,7 +18,7 @@
* Authors: Cristina Hainberger <hainberg@technikum-wien.at>
*
* Beschreibung:
* The script checks phrases and phrase-texts for actuality in the database.
* The script checks phrases and phrase-texts for actuality in the database.
* Missing attributes are inserted.
*/
@@ -928,7 +928,7 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -949,7 +949,7 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -970,8 +970,49 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'nichtvorhanden',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'n.v.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'n/a',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'ohne',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ohne',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'without',
'description' => '',
'insertvon' => 'system'
)
)
),
//******************************* CORE/ui
array(
'app' => 'core',
@@ -1333,8 +1374,8 @@ $phrases = array(
)
)
),
//*************************** CORE/filter
array(
'app' => 'core',
@@ -1356,7 +1397,7 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'filter',
@@ -1377,7 +1418,7 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'filter',
@@ -1398,7 +1439,7 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'filter',
@@ -1419,10 +1460,10 @@ $phrases = array(
)
)
),
//**************************** CORE/person
array(
'app' => 'core',
@@ -1644,6 +1685,46 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'ersatzkennzeichen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ersatzkennzeichen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => 'Replacement Label',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'bpk',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'bPK',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => 'bPK',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
@@ -1804,7 +1885,87 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'postleitzahl',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Postleitzahl',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => 'ZIP-Code',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'strasse',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Strasse',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => '',
'description' => 'Street',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'titelpre',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'TitelPre',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'TitlePre',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'person',
'phrase' => 'titelpost',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'TitelPost',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'TitlePost',
'description' => '',
'insertvon' => 'system'
)
)
),
//**************** CORE/lehre
array(
'app' => 'core',
@@ -1966,9 +2127,9 @@ $phrases = array(
)
)
),
//********************** INFOCENTER/infocenter
array(
'app' => 'infocenter',
@@ -2600,7 +2761,7 @@ $phrases = array(
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bei Freigabe von InteressentInnen wird deren Interessentenstatus bestätigt
'text' => 'Bei Freigabe von InteressentInnen wird deren Interessentenstatus bestätigt
und deren Zgvdaten können im Infocenter nicht mehr bearbeitet oder freigegeben werden.<br/>
Alle nicht gespeicherten Zgvdaten gehen verloren.<br/>
Fortfahren?',
@@ -2755,6 +2916,26 @@ $phrases = array(
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'priorisierung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'prio',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'prio',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -2895,19 +3076,19 @@ $phrases = array(
)
)
)
);
//***** CHECK PHRASES & PHRASENTEXTE in German and English.
//***** CHECK PHRASES & PHRASENTEXTE in German and English.
//***** INSERT into phrase_tbl if new app + category + phrase found in phrasen-array.
//***** INSERT into phrasentext_tbl if new text found in phrasen-phrases-array, conciders every language apart.
foreach ($phrases as $phrase)
{
$qry = "SELECT phrase_id
$qry = "SELECT phrase_id
FROM system.tbl_phrase
WHERE
WHERE
app=". $db->db_add_param($phrase['app']). " AND
category=". $db->db_add_param($phrase['category']). " AND
phrase=". $db->db_add_param($phrase['phrase']);
@@ -2916,16 +3097,16 @@ foreach ($phrases as $phrase)
if ($result = $db->db_query($qry))
{
$phrase_id = '';
//phrase not existing -> insert phrase and get last inserted phrase_id
if ($db->db_num_rows($result) === 0)
{
$qry_insert = "INSERT INTO system.tbl_phrase(
app,
phrase,
insertamum,
insertvon,
category)
app,
phrase,
insertamum,
insertvon,
category)
VALUES(".
$db->db_add_param($phrase['app']). ','.
$db->db_add_param($phrase['phrase']). ','.
@@ -2936,7 +3117,7 @@ foreach ($phrases as $phrase)
if ($db->db_query($qry_insert))
{
$new = true;
$qry_lastId = "SELECT currval('system.tbl_phrase_phrase_id_seq') as id";
if ($db->db_query($qry_lastId))
{
@@ -2960,37 +3141,37 @@ foreach ($phrases as $phrase)
}
echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.<br>';
}
//*** CHECK PHRASENTEXT
//loop through languages
foreach ($phrase['phrases'] as $phrase_phrases)
{
$language = $phrase_phrases['sprache'];
//query phrasentext in certain language
$qry_language =
"SELECT *
FROM system.tbl_phrasentext
WHERE
WHERE
phrase_id=". $phrase_id. " AND
sprache='". $language. "'";
if ($result_language = $db->db_query($qry_language))
{
//if phrasentext not existing in certain language -> insert
if ($db->db_num_rows($result_language) === 0 && !empty($phrase_phrases['text']))
{
$qry_insert = "INSERT INTO system.tbl_phrasentext(
phrase_id,
sprache,
phrase_id,
sprache,
orgeinheit_kurzbz,
orgform_kurzbz,
text,
description,
insertamum,
insertvon)
insertamum,
insertvon)
VALUES(".
$db->db_add_param($phrase_id, FHC_INTEGER). ','.
$db->db_add_param($phrase_phrases['sprache']). ','.
Binary file not shown.
+23 -22
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
@@ -53,7 +53,7 @@
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="pruefung"/>
</office:body>
@@ -73,6 +73,7 @@
<xsl:if test="staatsbuergerschaft = ''">
<text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p>
</xsl:if>
<xsl:if test="pruefungstyp_kurzbz != 'Bachelor'"><text:p text:style-name="P4">Prüfungstyp passt nicht zu diesem Dokumenttyp</text:p></xsl:if>
<xsl:if test="datum = ''">
<text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p>
</xsl:if>
@@ -98,19 +99,19 @@
<xsl:value-of select="name" />
</text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">born <xsl:value-of select="gebdatum" /> in
<text:p text:style-name="P1">born <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation_engl" />, citizen of <xsl:value-of select="staatsbuergerschaft_engl" />,</text:p>
<text:p text:style-name="P1">student of the University of Applied Sciences
<text:p text:style-name="P1">student of the University of Applied Sciences
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose>
<xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p>
<text:p text:style-name="P1"/>
@@ -145,4 +146,4 @@
</text:p>
</office:text>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+26 -25
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
@@ -53,7 +53,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="pruefung"/>
</office:body>
@@ -68,15 +68,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind -->
<xsl:if test="staatsbuergerschaft = ''"><text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p></xsl:if>
<xsl:if test="pruefungstyp_kurzbz != 'Bachelor'"><text:p text:style-name="P4">Prüfungstyp passt nicht zu diesem Dokumenttyp</text:p></xsl:if>
<xsl:if test="datum = ''"><text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p></xsl:if>
<xsl:if test="titel = ''"><text:p text:style-name="P4">Kein akademischer Grad ausgewählt</text:p></xsl:if>
<xsl:if test="sponsion = ''"><text:p text:style-name="P4">Sponsionsdatum nicht gesetzt</text:p></xsl:if>
<xsl:if test="bescheidbgbl1 = ''"><text:p text:style-name="P4">Bundesgesetzblattnummer (BGBl) beim Studiengang ist nicht gesetzt</text:p></xsl:if>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
@@ -86,7 +87,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="anrede" /><xsl:text> </xsl:text><xsl:value-of select="name" /></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">geboren am <xsl:value-of select="gebdatum" /> in
<text:p text:style-name="P1">geboren am <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
@@ -103,15 +104,15 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<xsl:otherwise>
<xsl:text>die/der</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:choose>
<xsl:if test="stg_art != 'k'"> den</xsl:if>
<xsl:if test="stg_art = 'k'"> das</xsl:if>
<xsl:if test="stg_art = 'k'"> das</xsl:if>
Fachhochschul-<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>
<xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p>
<text:p text:style-name="P1"/>
@@ -139,4 +140,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+24 -23
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
@@ -53,7 +53,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="pruefung"/>
</office:body>
@@ -71,11 +71,12 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="Seitenumbruch">Diploma</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind -->
<xsl:if test="staatsbuergerschaft = ''"><text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p></xsl:if>
<xsl:if test="pruefungstyp_kurzbz != 'Diplom'"><text:p text:style-name="P4">Prüfungstyp passt nicht zu diesem Dokumenttyp</text:p></xsl:if>
<xsl:if test="datum = ''"><text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p></xsl:if>
<xsl:if test="titel = ''"><text:p text:style-name="P4">Kein akademischer Grad ausgewählt</text:p></xsl:if>
<xsl:if test="sponsion = ''"><text:p text:style-name="P4">Sponsionsdatum nicht gesetzt</text:p></xsl:if>
<xsl:if test="bescheidbgbl1 = ''"><text:p text:style-name="P4">Bundesgesetzblattnummer (BGBl) beim Studiengang ist nicht gesetzt</text:p></xsl:if>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
@@ -85,19 +86,19 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="anrede_engl" /><xsl:text> </xsl:text><xsl:value-of select="name" /></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">born <xsl:value-of select="gebdatum" /> in
<text:p text:style-name="P1">born <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="geburtsnation_engl" />, citizen of <xsl:value-of select="staatsbuergerschaft_engl" />,</text:p>
<text:p text:style-name="P1">student of the University of Applied Sciences
<text:p text:style-name="P1">student of the University of Applied Sciences
<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</xsl:when>
<xsl:when test="stg_art='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose>
<xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p>
<text:p text:style-name="P1"/>
@@ -124,4 +125,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+25 -24
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
>
<xsl:output method="xml" version="1.0" indent="yes"/>
@@ -53,7 +53,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<style:text-properties style:font-name="Arial" fo:font-size="28pt" officeooo:rsid="0006c6a3" officeooo:paragraph-rsid="0006c6a3" style:font-size-asian="28pt" style:font-size-complex="28pt"/>
</style:style>
</office:automatic-styles>
<office:body>
<xsl:apply-templates select="pruefung"/>
</office:body>
@@ -68,15 +68,16 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:sequence-decl text:display-outline-level="0" text:name="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls>
<text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind -->
<xsl:if test="staatsbuergerschaft = ''"><text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p></xsl:if>
<xsl:if test="pruefungstyp_kurzbz != 'Diplom'"><text:p text:style-name="P4">Prüfungstyp passt nicht zu diesem Dokumenttyp</text:p></xsl:if>
<xsl:if test="datum = ''"><text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p></xsl:if>
<xsl:if test="titel = ''"><text:p text:style-name="P4">Kein akademischer Grad ausgewählt</text:p></xsl:if>
<xsl:if test="sponsion = ''"><text:p text:style-name="P4">Sponsionsdatum nicht gesetzt</text:p></xsl:if>
<xsl:if test="bescheidbgbl1 = ''"><text:p text:style-name="P4">Bundesgesetzblattnummer (BGBl) beim Studiengang ist nicht gesetzt</text:p></xsl:if>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1"/>
@@ -86,7 +87,7 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"/>
<text:p text:style-name="P3"><xsl:value-of select="anrede" /><xsl:text> </xsl:text><xsl:value-of select="name" /></text:p>
<text:p text:style-name="P1"/>
<text:p text:style-name="P1">geboren am <xsl:value-of select="gebdatum" /> in
<text:p text:style-name="P1">geboren am <xsl:value-of select="gebdatum" /> in
<xsl:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" />
<xsl:text>, </xsl:text>
@@ -105,13 +106,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</xsl:otherwise>
</xsl:choose>
<xsl:if test="stg_art != 'k'"> den</xsl:if>
<xsl:if test="stg_art = 'k'"> das</xsl:if>
<xsl:if test="stg_art = 'k'"> das</xsl:if>
Fachhochschul-<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
<xsl:when test="stg_art='b'">Bachelor</xsl:when>
<xsl:when test="stg_art='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</xsl:when>
<xsl:when test="stg_art='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose>
<xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p>
<text:p text:style-name="P1"/>
@@ -139,4 +140,4 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text>
</xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
+1
View File
@@ -241,6 +241,7 @@ $qryall='
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE
aktiv=false
and bismelden=true
AND (ende>now() OR ende IS NULL)
GROUP BY uid, nachname, vorname
ORDER by nachname, vorname;';
+3 -1
View File
@@ -101,7 +101,7 @@ wird das Ende des Semesters letzten Lehrauftrages herangezogen.
$qry = "SELECT ma.* FROM
(
SELECT
vorname, nachname, uid, personalnummer, insertamum,anmerkung,
vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv,
(
SELECT studiensemester_kurzbz FROM (
SELECT
@@ -198,6 +198,7 @@ if ($result = $db->db_query($qry))
<th>Nachname</th>
<th>Vorname</th>
<th>UID</th>
<th>Aktiv</th>
<th>Personalnummer</th>
<th>Anlagedatum</th>
<th>Letzer Lehrauftrag</th>
@@ -216,6 +217,7 @@ if ($result = $db->db_query($qry))
<td>'.$db->convert_html_chars($row->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->uid).'</td>
<td>'.($db->db_parse_bool($row->aktiv)?'Ja':'<span style="color:red; font-weight:bold">Nein</span>').'</td>
<td>'.$db->convert_html_chars($row->personalnummer).'</td>
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td>
<td>'.$db->convert_html_chars($row->letzter_lehrauftrag).'</td>
+7 -3
View File
@@ -300,7 +300,9 @@ if($result = $db->db_query($qry))
//Bewerberblock bei Ausserordentlichen nicht anzeigen
if($stg_kz!=('9'.$erhalter))
{
if($orgform_code==3)
$stg_obj = new studiengang();
if($orgform_code==3 || $stg_obj->isMischform($stg_kz,$ssem) || $stg_obj->isMischform($stg_kz,$psem))
{
$orgcodes = array_unique($orgform_code_array);
//Mischform
@@ -1005,7 +1007,7 @@ function GenerateXMLStudentBlock($row)
$datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
}
$datei.="
<StaatsangehoerigkeitCode>".$row->staatsbuergerschaft."</StaatsangehoerigkeitCode>
<HeimatPLZ>".$plz."</HeimatPLZ>
@@ -1152,7 +1154,9 @@ function GenerateXMLStudentBlock($row)
$datei.="
</StudentIn>";
if($aktstatus=='Student' || $aktstatus=='Diplomand' || $aktstatus=='Praktikant' || $aktstatus=='Outgoing')
// Aktive Studierende - keine Incoming, keine Externen GS
if(($aktstatus=='Student' || $aktstatus=='Diplomand' || $aktstatus=='Praktikant' || $aktstatus=='Outgoing')
&& !($gemeinsamestudien && $kodex_studientyp_array[$row->gsstudientyp_kurzbz]=='E'))
{
if(!isset($stsem[$storgform][$sem]))
{
+134
View File
@@ -0,0 +1,134 @@
<?php
/* Copyright (C) 2018 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
*/
/**
* Erfragt die BPKs von Personen beim Datenverbund und speichert diese wenn gefunden
* Dieses Script sollte nach dem Matrikelnummer Job aufgerufen werden da dieser bereits bpks ermittelt
* Dieser Job versucht die BPKs zu holen die nicht automatisch über den Matrikelnummer Job gefunden wurden.
*/
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
require_once(dirname(__FILE__).'/../../include/basis_db.class.php');
require_once(dirname(__FILE__).'/../../include/dvb.class.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/datum.class.php');
require_once(dirname(__FILE__).'/../../include/errorhandler.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$limit = '';
$debug = false;
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine
// Authentifizierung stattfinden
if (php_sapi_name() != 'cli')
{
$nl = '<br>';
// Benutzerdefinierte Variablen laden
$user = get_uid();
loadVariables($user);
// Berechtigungen pruefen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if (!$rechte->isBerechtigt('admin', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
if (isset($_GET['debug']))
$debug = ($_GET['debug'] == 'true'?true:false);
if (isset($_GET['limit']) && is_numeric($_GET['limit']))
$limit = $_GET['limit'];
}
else
{
$nl = "\n";
// Commandline Paramter parsen bei Aufruf ueber Cronjob
// zb php matrikelnummer.php --limit 100 --debug true
$longopt = array(
"limit:",
"debug:"
);
$commandlineparams = getopt('', $longopt);
if (isset($commandlineparams['limit']) && is_numeric($commandlineparams['limit']))
$limit = $commandlineparams['limit'];
if (isset($commandlineparams['debug']))
$debug = ($commandlineparams['debug'] == 'true'?true:false);
}
$webservice = new dvb(DVB_USERNAME, DVB_PASSWORD, $debug);
$qry = "
SELECT
distinct person_id, vorname, nachname
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
JOIN public.tbl_student ON(tbl_student.student_uid=tbl_benutzer.uid)
WHERE
public.tbl_benutzer.aktiv = true
AND tbl_person.matr_nr is not null
AND tbl_person.bpk is null
AND studiengang_kz<10000
AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true)
AND gebdatum is not null";
if ($limit != '')
$qry .= " LIMIT ".$limit;
$db = new basis_db();
$cnt = 0;
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
{
$cnt++;
// Nach jeweils 25 Requests eine Pause einlegen damit die
// Anzahl Requests pro Minute nicht überschritten wird
if($cnt%25 == 0)
sleep(30);
echo $nl."Pruefe $row->person_id $row->vorname $row->nachname";
$data = $webservice->getBPK($row->person_id);
if (ErrorHandler::isSuccess($data))
{
if (ErrorHandler::hasData($data) && isset($data->retval->bpk) && $data->retval->bpk != '')
{
$person = new person();
if ($person->load($row->person_id))
{
$person->bpk = $data->retval->bpk;
if ($person->save())
echo ' OK';
else
echo ' Failed: '.$person->errormsg;
}
}
else
{
echo 'Failed: BPK Empty';
}
}
else
echo ' Failed:'.$webservice->errormsg;
}
}
if ($debug)
echo $webservice->debug_output;
+25 -12
View File
@@ -26,17 +26,20 @@ require_once(dirname(__FILE__).'/../../include/basis_db.class.php');
require_once(dirname(__FILE__).'/../../include/dvb.class.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/datum.class.php');
require_once(dirname(__FILE__).'/../../include/errorhandler.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$limit = '';
$debug = false;
$softrun = false;
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine
// Authentifizierung stattfinden
if (php_sapi_name() != 'cli')
{
$nl = '<br>';
// Benutzerdefinierte Variablen laden
$user = get_uid();
loadVariables($user);
@@ -48,25 +51,32 @@ if (php_sapi_name() != 'cli')
if (!$rechte->isBerechtigt('admin', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
if(isset($_GET['debug']))
$debug = ($_GET['debug']=='true'?true:false);
if (isset($_GET['debug']))
$debug = ($_GET['debug'] == 'true'?true:false);
if(isset($_GET['limit']) && is_numeric($_GET['limit']))
if (isset($_GET['limit']) && is_numeric($_GET['limit']))
$limit = $_GET['limit'];
if (isset($_GET['softrun']))
$debug = ($_GET['softrun'] == 'true'?true:false);
}
else
{
$nl = "\n";
// Commandline Paramter parsen bei Aufruf ueber Cronjob
// zb php matrikelnummer.php --limit 100 --debug true
$longopt = array(
"limit:",
"debug:"
"debug:",
"softrun:"
);
$commandlineparams = getopt('', $longopt);
if (isset($commandlineparams['limit']) && is_numeric($commandlineparams['limit']))
$limit = $commandlineparams['limit'];
if (isset($commandlineparams['debug']))
$debug = ($commandlineparams['debug']=='true'?true:false);
$debug = ($commandlineparams['debug'] == 'true'?true:false);
if (isset($commandlineparams['softrun']))
$softrun = ($commandlineparams['softrun'] == 'true'?true:false);
}
$matrikelnummer_added = 0;
@@ -74,7 +84,7 @@ $webservice = new dvb(DVB_USERNAME, DVB_PASSWORD, $debug);
$qry = "
SELECT
distinct person_id
distinct person_id, vorname, nachname
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
@@ -83,20 +93,23 @@ $qry = "
public.tbl_benutzer.aktiv = true
AND tbl_person.matr_nr is null
AND studiengang_kz<10000
AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true)";
AND EXISTS(SELECT 1 FROM public.tbl_prestudent WHERE person_id=tbl_person.person_id AND bismelden=true)
AND (svnr is not null OR ersatzkennzeichen is not null)";
if ($limit != '')
$qry.=" LIMIT ".$limit;
$qry .= " LIMIT ".$limit;
$db = new basis_db();
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
if($webservice->assignMatrikelnummer($row->person_id))
echo "\n<br>".$row->person_id.' OK';
echo $nl."Pruefe $row->person_id $row->vorname $row->nachname";
$data = $webservice->assignMatrikelnummer($row->person_id, $softrun);
if (ErrorHandler::isSuccess($data))
echo ' OK';
else
echo "\n<br>".$row->person_id.' Failed:'.$webservice->errormsg;
echo ' Failed:'.$webservice->errormsg;
}
}
if($debug)
+81 -63
View File
@@ -24,7 +24,7 @@
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
@@ -34,8 +34,15 @@ if (!$db = new basis_db())
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
$fb_obj = new fachbereich();
$fb_obj->getAll();
$oe_typ = new organisationseinheit();
$oe_typ->getTypen();
foreach($oe_typ->result as $row)
$oe_typ_arr[$row->organisationseinheittyp_kurzbz]=$row->bezeichnung;
$oe_obj = new organisationseinheit();
$oe_obj->getAll();
foreach($oe_obj->result as $row)
$oe_arr[$row->oe_kurzbz] = $oe_typ_arr[$row->organisationseinheittyp_kurzbz].' '.$row->bezeichnung;
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen(get_uid());
@@ -55,26 +62,26 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<script type="text/javascript">
$(document).ready(function()
{
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[1,0]],
widgets: ["zebra"],
headers: {11: {sorter: false}, 12: {sorter: false}, 13: {sorter: false}}
});
});
});
</script>
</head>
<body class="Background_main">
<h2>Liste der MitarbeiterInnen der Institute</h2>';
<h2>Liste der MitarbeiterInnen der Abteilungen</h2>';
$stsem = new studiensemester();
if(isset($_GET['ws']) && check_stsem($_GET['ws']))
$ws = $_GET['ws'];
else
$ws = $stsem->getNearest(1);
if(isset($_GET['ss']) && check_stsem($_GET['ss']))
$ss = $_GET['ss'];
else
@@ -82,49 +89,55 @@ else
if($rechte->isBerechtigt('admin', 0) || $rechte->isBerechtigt('mitarbeiter', 0))
$where = '';
else
else
{
$fb = $rechte->getFbKz();
if(count($fb)>0)
$oe = $rechte->getOEkurzbz('assistenz');
if(count($oe)>0)
{
$where = " AND EXISTS (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) WHERE
tbl_lehreinheit.studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
fachbereich_kurzbz IN(";
foreach ($fb as $fachbereich_kurzbz)
$where = " AND EXISTS (
SELECT * FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
WHERE
tbl_lehreinheit.studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).")
AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid
AND lehrfach.oe_kurzbz IN(";
foreach ($oe as $oe_kurzbz)
{
$where.=$db->db_add_param($fachbereich_kurzbz).",";
$where.=$db->db_add_param($oe_kurzbz).",";
}
$where.="''))";
}
else
else
die('Sie haben keine Berechtigung fuer diese Seite');
}
//Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung
$qry = "SELECT
personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen,
$qry = "SELECT
personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen,
(
SELECT
sum(semesterstunden)
FROM
SELECT
sum(semesterstunden)
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ws)."
) as lvs_wintersemester,
(
SELECT
sum(semesterstunden)
FROM
SELECT
sum(semesterstunden)
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ss)."
) as lvs_sommersemester,
(
SELECT
tbl_organisationseinheit.bezeichnung
FROM
SELECT
tbl_organisationseinheit.oe_kurzbz
FROM
public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE
uid=tbl_mitarbeiter.mitarbeiter_uid AND
@@ -133,9 +146,9 @@ $qry = "SELECT
AND (datum_bis>=now() OR datum_bis is null)
LIMIT 1
) as hauptzuteilung
FROM
public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id)
FROM
public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id)
WHERE tbl_benutzer.aktiv $where";
if($result = $db->db_query($qry))
@@ -149,12 +162,11 @@ if($result = $db->db_query($qry))
<th>Nachname</th>
<th>Vorname</th>
<th>Fix / Frei</th>
<th>Kompetenzen</th>
<th>ALVS<br>".$db->convert_html_chars($ws)."</th>
<th>ALVS<br>".$db->convert_html_chars($ss)."</th>
<th>Studiengang</th>
<th>Institut Hauptzuteilung</th>
<th>Sonstige Institutszuteilungen</th>
<th>Disziplinäre Zuordnung</th>
<th>Zuteilungen laut Lehrauträge</th>
</tr>
</thead>
<tbody>";
@@ -166,46 +178,52 @@ if($result = $db->db_query($qry))
echo "<td>".$db->convert_html_chars($row->nachname)."</td>";
echo "<td>".$db->convert_html_chars($row->vorname)."</td>";
echo "<td>".($row->fixangestellt=='t'?'fix':'frei')."</td>";
echo "<td>".$db->convert_html_chars($row->kompetenzen)."</td>";
echo "<td>$row->lvs_wintersemester</td>";
echo "<td>$row->lvs_sommersemester</td>";
echo '<td>';
$qry = "
SELECT
distinct studiengang_kz
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
SELECT
distinct studiengang_kz
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text='';
if($row->hauptzuteilung!='')
$abteilung = $oe_arr[$row->hauptzuteilung];
else
$abteilung = '';
if($result_stg = $db->db_query($qry))
while($row_stg = $db->db_fetch_object($result_stg))
$text.= $stg_obj->kuerzel_arr[$row_stg->studiengang_kz].', ';
echo mb_substr($text, 0, mb_strlen($text)-2);
echo '</td>';
echo "<td>".$db->convert_html_chars($row->hauptzuteilung)."</td>";
echo "<td>".$db->convert_html_chars($abteilung)."</td>";
echo "<td>";
$qry = "
SELECT
distinct fachbereich_kurzbz
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz)
WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
SELECT
distinct lehrfach.oe_kurzbz
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text='';
if($result_fb = $db->db_query($qry))
while($row_fb = $db->db_fetch_object($result_fb))
$text.= $fb_obj->bezeichnung_arr[$row_fb->fachbereich_kurzbz].', ';
if($result_oe = $db->db_query($qry))
while($row_oe = $db->db_fetch_object($result_oe))
{
if($row_oe->oe_kurzbz!='')
$text.= $oe_arr[$row_oe->oe_kurzbz].', ';
}
echo mb_substr($text, 0, mb_strlen($text)-2);
echo "</td>";
echo '</tr>';
+11
View File
@@ -386,6 +386,17 @@ if (!$errorOccurred && $dataPosted)
<form name="saveLeistungsstipendium" method="post" enctype="multipart/form-data" action="">
<table border=0>
<tr><td valign="top">CMS-Format</td>
<td></td>
<td valign="top">
Zeichensatz: UTF-8<br>
Feldtrenner: ;<br>
Texttrenner: "<br>
Felder:<br>
<pre>Nachname;Vorname;UID/PersKZ;Studiengang;Betrag;Überweisungsdatum
Dylan;Bob;1234567;MEE;750;03.10.2016</pre>
</td>
</tr>
<tr>
<th width="30%">
<th width="3%">
+23 -1
View File
@@ -152,13 +152,22 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
}
// Wenn beide Personen eine Matr_nr haben, abbrechen
if (($personToDelete_obj->matr_nr != '' && $personToKeep_obj->matr_nr != ''))
if ($personToDelete_obj->matr_nr != '' && $personToKeep_obj->matr_nr != ''
&& $personToDelete_obj->matr_nr != $personToKeep_obj->matr_nr)
{
$msg_error[] = 'Beide Personen haben eine Matrikelnummer und können nicht zusammengelegt werden.<br>
Bitte wenden Sie sich an einen Administrator.';
$error = true;
}
// Wenn beide Personen ein BPK haben, abbrechen
if ($personToDelete_obj->bpk != '' && $personToKeep_obj->bpk != '' && $personToDelete_obj->bpk != $personToKeep_obj->bpk)
{
$msg_error[] = 'Beide Personen haben unterschiedliche BPK und können nicht zusammengelegt werden.<br>
Bitte wenden Sie sich an einen Administrator.';
$error = true;
}
// Wenn zwei gleiche rt_person Einträge vorhanden sind, wird ein Fehler ausgegeben und abgebrochen
$reihungstest_personToKeep = new reihungstest();
$reihungstest_personToKeep->getReihungstestPerson($personToKeep);
@@ -276,6 +285,16 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$matr_nr = $personToKeep_obj->matr_nr;
if ($personToKeep_obj->matr_nr == '' && $personToDelete_obj->matr_nr != '')
$matr_nr = $personToDelete_obj->matr_nr;
else
$matr_nr = $personToKeep_obj->matr_nr;
$bpk = '';
if ($personToDelete_obj->bpk == '' && $personToKeep_obj->bpk != '')
$bpk = $personToKeep_obj->bpk;
if ($personToKeep_obj->bpk == '' && $personToDelete_obj->bpk != '')
$bpk = $personToDelete_obj->bpk;
else
$bpk = $personToKeep_obj->bpk;
// Letztbenutzten Zugangscode abfragen und übernehmen
$zugangscode = '';
@@ -339,6 +358,9 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
// Matr_nr erst setzen, wenn nur mehr eine Person vorhanden ist
$sql_query_upd1 .= "UPDATE public.tbl_person SET matr_nr=" . $db->db_add_param($matr_nr, FHC_STRING) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
// BPK erst setzen, wenn nur mehr eine Person vorhanden ist
$sql_query_upd1 .= "UPDATE public.tbl_person SET bpk=" . $db->db_add_param($bpk, FHC_STRING) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";";
if ($db->db_query($sql_query_upd1))
{
$msg_info[] = "Update Query:";
+8 -7
View File
@@ -46,10 +46,10 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
<title>Statistik - Details</title>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script src="../../include/js/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
function addNewContent(bezeichnung)
{
{
if(bezeichnung == '')
{
if($( "#bezeichnung" ).val() != '')
@@ -59,12 +59,12 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
}
else
var bez = bezeichnung;
data = {
NewContent: "NewContent",
titel: bez,
templateContent: <?php echo (defined('REPORT_CONTENT_TEMPLATE') && REPORT_CONTENT_TEMPLATE != '' ? REPORT_CONTENT_TEMPLATE : 1); ?>
templateContent: <?php echo (defined('REPORT_CONTENT_TEMPLATE') && REPORT_CONTENT_TEMPLATE != '' ? REPORT_CONTENT_TEMPLATE : 1); ?>
};
$.ajax({
@@ -72,7 +72,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
data: data,
type: "POST",
dataType: "json",
success: function(data)
success: function(data)
{
//set contentID into the ContentID input-field
$("#content_id").val(data);
@@ -83,7 +83,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
// disable the contentID add-image
$("#content_id").next().css({"pointer-events": "none", "cursor": "default"});
},
error: function(data)
error: function(data)
{
alert("ERROR:"+data);
}
@@ -105,6 +105,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
{
$statistik_kurzbz = filter_input(INPUT_POST, 'statistik_kurzbz');
$exists = false;
$statistik->berechtigung_kurzbz='addon/reports';
}
if(isset($_POST['save']))
@@ -190,7 +191,7 @@ EOT;
<td><input type="text" name="bezeichnung" size="80" maxlength="256" value="<?php echo $statistik->bezeichnung ?>"></td>
<td></td>
<td>ContentID</td>
<td><input type="text" name="content_id" id="content_id" value="<?php echo $statistik->content_id ?>">
<td><input type="text" name="content_id" id="content_id" value="<?php echo $statistik->content_id ?>">
<?php if(!is_null($statistik->content_id)): ?>
<a href="#" style="pointer-events: none; cursor:default;"><img src="../../skin/images/plus.png" height="16px"></a>
<a target="_blank" href="<?php echo APP_ROOT ?>cms/admin.php?action=childs&content_id=<?php echo $statistik->content_id ?>&action=content&sprache=<?php echo DEFAULT_LANGUAGE ?>&filter=<?php echo (defined('REPORT_CONTENT_TEMPLATE') ? REPORT_CONTENT_TEMPLATE : $statistik->content_id) ?>">&nbsp;ContentID <?php echo $statistik->content_id?> bearbeiten</a>