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(''), 'link' => site_url(''),
'icon' => '', 'icon' => '',
'description' => 'FH-Complete', 'description' => 'FH-Complete',
'sort' => 1 'sort' => 10
), ),
'vilesci' => array( 'Organisation' => array(
'link' => base_url('vilesci'), 'link' => '#',
'icon' => '', 'icon' => 'sitemap',
'description' => 'Vilesci', 'description' => 'Organisation',
'sort' => 2, 'sort' => 20,
'requiredPermissions' => 'basis/vilesci:r' 'children'=> array(
'vilesci' => array(
'link' => base_url('vilesci'),
'icon' => '',
'description' => 'Vilesci',
'expand' => true,
'sort' => 1,
'requiredPermissions' => 'basis/vilesci:r'
)
)
), ),
'cis' => array( 'Lehre' => array(
'link' => CIS_ROOT, 'link' => '#',
'icon' => '', 'icon' => 'graduation-cap',
'description' => 'CIS', 'description' => 'Lehre',
'sort' => 3 '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() public function __construct()
{ {
parent::__construct(array('Buchungstyp' => 'basis/buchungstyp:rw'); parent::__construct(array('Buchungstyp' => 'basis/buchungstyp:rw'));
// Load model BuchungstypModel // Load model BuchungstypModel
$this->load->model('crm/buchungstyp_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 // 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 * If the parameter NAVIGATION_PAGE_PARAM is not given then the execution of the controller is terminated and
* an error message is printed * 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 $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)); $this->load->library('NavigationLib', array(self::NAVIGATION_PAGE_PARAM => $navigationPage));
} }
else // Otherwise an error will be written in the output else // Otherwise an error will be written in the output
@@ -74,6 +74,7 @@ class InfoCenter extends Auth_Controller
'saveFormalGeprueft' => 'infocenter:rw', 'saveFormalGeprueft' => 'infocenter:rw',
'getLastPrestudentWithZgvJson' => 'infocenter:r', 'getLastPrestudentWithZgvJson' => 'infocenter:r',
'getZgvInfoForPrestudent' => 'infocenter:r', 'getZgvInfoForPrestudent' => 'infocenter:r',
'saveBewPriorisierung' => 'infocenter:rw',
'saveZgvPruefung' => 'infocenter:rw', 'saveZgvPruefung' => 'infocenter:rw',
'saveAbsage' => 'infocenter:rw', 'saveAbsage' => 'infocenter:rw',
'saveFreigabe' => 'infocenter:rw', 'saveFreigabe' => 'infocenter:rw',
@@ -81,6 +82,7 @@ class InfoCenter extends Auth_Controller
'updateNotiz' => 'infocenter:rw', 'updateNotiz' => 'infocenter:rw',
'reloadNotizen' => 'infocenter:r', 'reloadNotizen' => 'infocenter:r',
'reloadLogs' => 'infocenter:r', 'reloadLogs' => 'infocenter:r',
'reloadZgvPruefungen' => 'infocenter:r',
'outputAkteContent' => 'infocenter:r', 'outputAkteContent' => 'infocenter:r',
'getParkedDate' => 'infocenter:r', 'getParkedDate' => 'infocenter:r',
'park' => 'infocenter:rw', 'park' => 'infocenter:rw',
@@ -280,6 +282,22 @@ class InfoCenter extends Auth_Controller
$this->load->view('system/infocenter/studiengangZgvInfo.php', $data); $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 * Saves a ZGV for a prestudent, includes Ort, Datum, Nation for bachelor and master
* @param $prestudent_id * @param $prestudent_id
@@ -338,55 +356,50 @@ class InfoCenter extends Auth_Controller
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status. * inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
* @param $prestudent_id * @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'); $statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id); $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 ($lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam))
//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))
{ {
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 * updates bestaetigtam and bestaetigtvon fields of the last status
* @param $prestudent_id * @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); $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
if (isError($lastStatus)) $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
{
show_error($lastStatus->retval);
}
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]; $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)); $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) * Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
* @param $akte_id * @param $akte_id
@@ -864,7 +883,7 @@ class InfoCenter extends Auth_Controller
'filters' => $this->navigationlib->oneLevel( 'filters' => $this->navigationlib->oneLevel(
'Filter', // description 'Filter', // description
'#', // link '#', // link
(isset($filtersArray['children'])?$filtersArray['children']:''), // children (isset($filtersArray['children']) ? $filtersArray['children'] : ''), // children
'', // icon '', // icon
true, // expand true, // expand
null, // subscriptDescription 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 * 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) foreach ($filters as $filterId => $description)
{ {
$tofill['children'][] = array( $toFill['children'][] = $this->navigationlib->oneLevel(
'link' => sprintf( $description, // description
$toPrint, sprintf(
site_url(self::INFOCENTER_URI), 'filter_id', $filterId, '%s?%s=%s',
FHC_Controller::FHC_CONTROLLER_ID, site_url(self::INFOCENTER_URI),
$this->getControllerId() 'filter_id',
), $filterId
'description' => $description ) // 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 * 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) foreach ($filters as $filterId => $description)
{ {
$tofill['children'][] = array( $toFill['children'][] = $this->navigationlib->oneLevel(
'link' => sprintf( $description, // description
$toPrint, sprintf(
site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE), 'filter_id', $filterId, '%s?%s=%s',
FHC_Controller::FHC_CONTROLLER_ID, site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE),
$this->getControllerId() 'filter_id',
), $filterId
'description' => $description ) // link
); );
} }
} }
@@ -923,23 +938,26 @@ class InfoCenter extends Auth_Controller
* Utility method used to fill elements of the InfoCenter left menu * Utility method used to fill elements of the InfoCenter left menu
* with the list of the custom filter of the authenticated user * 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) foreach ($filters as $filterId => $description)
{ {
$tofill['children'][] = array( $toFill['children'][] = $this->navigationlib->oneLevel(
'link' => sprintf( $description, // description
$toPrint, sprintf(
site_url(self::INFOCENTER_URI), 'filter_id', $filterId, '%s?%s=%s',
FHC_Controller::FHC_CONTROLLER_ID, site_url(self::INFOCENTER_URI),
$this->getControllerId() 'filter_id',
), $filterId
'description' => $description, ), // link
'subscriptDescription' => 'Remove', null, // children
'subscriptLinkClass' => 'remove-custom-filter', '', // icon
'subscriptLinkValue' => $filterId 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); show_error($prestudenten->retval);
} }
$interessentenCount = array();
foreach ($prestudenten->retval as $prestudent) foreach ($prestudenten->retval as $prestudent)
{ {
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent->prestudent_id); $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 //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'; $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; $zgvpruefungen[] = $zgvpruefung;
} }
// Interessenten come first, otherwise by bewerbungsdatum desc, then by prestudent_id desc $this->load->model('organisation/studiensemester_model', 'StudiensemesterModel');
usort($zgvpruefungen, function ($a, $b) {
$bewdatesort = isset($a->prestudentstatus) && isset($b->prestudentstatus) ? strcmp($b->prestudentstatus->bewerbung_abgeschicktamum, $a->prestudentstatus->bewerbung_abgeschicktamum) : 0; $this->_sortPrestudents($zgvpruefungen);
$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;
});
$statusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => 'Abgewiesener'))->retval; $statusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => 'Abgewiesener'))->retval;
$data = array ( $data = array (
'zgvpruefungen' => $zgvpruefungen, 'zgvpruefungen' => $zgvpruefungen,
'numberinteressenten' => $interessentenCount,
'statusgruende' => $statusgruende 'statusgruende' => $statusgruende
); );
return $data; 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 * Helper function for redirecting to initial page for person from a prestudent-specific page
* @param $prestudent_id * @param $prestudent_id
+40 -14
View File
@@ -26,6 +26,8 @@ class DB_Model extends FHC_Model
private $executedQueryMetaData; private $executedQueryMetaData;
private $executedQueryListFields; private $executedQueryListFields;
private $debugMode;
/** /**
* Constructor * Constructor
*/ */
@@ -42,6 +44,10 @@ class DB_Model extends FHC_Model
// Loads the UDF library // Loads the UDF library
$this->load->library('UDFLib'); $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; if (isError($validate = $this->_manageUDFs($data, $this->dbTable))) return $validate;
// DB-INSERT // 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 the table has a primary key that uses a sequence
if ($this->hasSequence === true) if ($this->hasSequence === true)
@@ -126,7 +136,11 @@ class DB_Model extends FHC_Model
$this->db->where($tmpId); $this->db->where($tmpId);
// DB-UPDATE // DB-UPDATE
if ($this->db->update($this->dbTable, $data)) $update = $this->db->update($this->dbTable, $data);
$this->_logLastQuery();
if ($update)
{ {
return success($id); return success($id);
} }
@@ -164,7 +178,11 @@ class DB_Model extends FHC_Model
} }
// DB-DELETE // DB-DELETE
if ($this->db->delete($this->dbTable, $tmpId)) $delete = $this->db->delete($this->dbTable, $tmpId);
$this->_logLastQuery();
if ($delete)
{ {
return success($id); return success($id);
} }
@@ -201,15 +219,7 @@ class DB_Model extends FHC_Model
$tmpId = array($this->pk => $id); $tmpId = array($this->pk => $id);
} }
// DB-SELECT return $this->loadWhere($tmpId);
if ($result = $this->db->get_where($this->dbTable, $tmpId))
{
return success($this->_toPhp($result));
}
else
{
return error($this->db->error(), FHC_DB_ERROR);
}
} }
/** /**
@@ -223,7 +233,11 @@ class DB_Model extends FHC_Model
if (is_null($this->dbTable)) return error(FHC_MODEL_ERROR, FHC_NODBTABLE); if (is_null($this->dbTable)) return error(FHC_MODEL_ERROR, FHC_NODBTABLE);
// Execute query // 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)); return success($this->_toPhp($result));
} }
@@ -292,6 +306,9 @@ class DB_Model extends FHC_Model
// Execute the query // Execute the query
$resultDB = $this->db->get_where($this->dbTable, $where); $resultDB = $this->db->get_where($this->dbTable, $where);
$this->_logLastQuery();
// If everything went ok... // If everything went ok...
if ($resultDB) if ($resultDB)
{ {
@@ -603,7 +620,6 @@ class DB_Model extends FHC_Model
// Workaround to get metadata from this table // Workaround to get metadata from this table
$result = $this->db->query(sprintf(DB_Model::QUERY_LIST_FIELDS, $this->dbTable)); $result = $this->db->query(sprintf(DB_Model::QUERY_LIST_FIELDS, $this->dbTable));
if (is_object($result)) if (is_object($result))
{ {
$listFields = $result->list_fields(); $listFields = $result->list_fields();
@@ -736,6 +752,8 @@ class DB_Model extends FHC_Model
$resultDB = $this->db->query($query); $resultDB = $this->db->query($query);
} }
$this->_logLastQuery();
// If no errors occurred // If no errors occurred
if ($resultDB) if ($resultDB)
{ {
@@ -940,4 +958,12 @@ class DB_Model extends FHC_Model
return $this->execQuery($query, array(strtolower($schema), strtolower($table))); 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) public function generateDatasetQuery($query, $filters)
{ {
$datasetQuery = 'SELECT * FROM ('.$query.') '.self::DATASET_TABLE_ALIAS; $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 the given query is valid and the parameter filters is an array
if (!isEmptyString($query) && $filters != null && is_array($filters)) if (!isEmptyString($query) && $filters != null && is_array($filters))
@@ -366,7 +365,7 @@ class FiltersLib
public function removeSelectedField($selectedField) public function removeSelectedField($selectedField)
{ {
$removeSelectedField = false; $removeSelectedField = false;
$trimedval = (isset($selectedField)?trim($selectedField):'');
// Checks the parameter selectedField // Checks the parameter selectedField
if (!isEmptyString($selectedField)) if (!isEmptyString($selectedField))
{ {
@@ -400,7 +399,7 @@ class FiltersLib
public function addSelectedField($selectedField) public function addSelectedField($selectedField)
{ {
$removeSelectedField = false; $removeSelectedField = false;
$trimedval = (isset($selectedField)?trim($selectedField):'');
// Checks the parameter selectedField // Checks the parameter selectedField
if (!isEmptyString($selectedField)) if (!isEmptyString($selectedField))
{ {
@@ -429,7 +428,7 @@ class FiltersLib
public function removeAppliedFilter($appliedFilter) public function removeAppliedFilter($appliedFilter)
{ {
$removeAppliedFilter = false; $removeAppliedFilter = false;
$trimedval = (isset($appliedFilter)?trim($appliedFilter):'');
// Checks the parameter appliedFilter // Checks the parameter appliedFilter
if (!isEmptyString($appliedFilter)) if (!isEmptyString($appliedFilter))
{ {
@@ -517,7 +516,7 @@ class FiltersLib
public function addFilter($filter) public function addFilter($filter)
{ {
$addFilter = false; $addFilter = false;
$trimedval = (isset($filter)?trim($filter):'');
// Checks the parameter filter // Checks the parameter filter
if (!isEmptyString($filter)) if (!isEmptyString($filter))
{ {
@@ -560,7 +559,7 @@ class FiltersLib
public function saveCustomFilter($customFilterDescription) public function saveCustomFilter($customFilterDescription)
{ {
$saveCustomFilter = false; // by default returns a failure $saveCustomFilter = false; // by default returns a failure
$trimedval = (isset($customFilterDescription)?trim($customFilterDescription):'');
// Checks parameter customFilterDescription if not valid stop the execution // Checks parameter customFilterDescription if not valid stop the execution
if (isEmptyString($customFilterDescription)) if (isEmptyString($customFilterDescription))
{ {
+45 -39
View File
@@ -16,27 +16,48 @@ class LogLib
const CLASS_POSTFIX = '->'; const CLASS_POSTFIX = '->';
const LINE_SEPARATOR = ':'; const LINE_SEPARATOR = ':';
// --------------------------------------------------------------------------------------------------------------
// Public methods
/** /**
* format * logDebug
*/ */
private function format($class, $function, $line) public function logDebug($message)
{ {
$formatted = LogLib::CALLER_PREFIX; $this->_log(LogLib::DEBUG, $message);
if (!is_null($class) && $class != '')
{
$formatted .= $class.LogLib::CLASS_POSTFIX;
}
$formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' ';
return $formatted;
} }
/** /**
* 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; $classIndex = 3;
$functionIndex = 3; $functionIndex = 3;
@@ -60,38 +81,23 @@ class LogLib
$line = $backtrace_arr[$lineIndex]['line']; $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;
}
/** if (!is_null($class) && $class != '')
* logDebug {
*/ $formatted .= $class.LogLib::CLASS_POSTFIX;
public function logDebug($message) }
{
$this->log(LogLib::DEBUG, $message);
}
/** $formatted .= $function.LogLib::LINE_SEPARATOR.$line.LogLib::CALLER_POSTFIX.' ';
* logInfo
*/
public function logInfo($message)
{
$this->log(LogLib::INFO, $message);
}
/** return $formatted;
* logError
*/
public function logError($message)
{
$this->log(LogLib::ERROR, $message);
} }
} }
+4 -4
View File
@@ -69,7 +69,7 @@ class NavigationLib
public function oneLevel( public function oneLevel(
$description, $link = '#', $children = null, $icon = '', $expand = false, $description, $link = '#', $children = null, $icon = '', $expand = false,
$subscriptDescription = null, $subscriptLinkClass = null, $subscriptLinkValue = null, $target = '', $subscriptDescription = null, $subscriptLinkClass = null, $subscriptLinkValue = null, $target = '',
$sort = null, $requiredPermissions = null) $sort = null, $requiredPermissions = null, $subscriptLinkHref = '#')
{ {
return array( return array(
'description' => $description, 'description' => $description,
@@ -82,7 +82,8 @@ class NavigationLib
'subscriptLinkClass' => $subscriptLinkClass, 'subscriptLinkClass' => $subscriptLinkClass,
'subscriptLinkValue' => $subscriptLinkValue, 'subscriptLinkValue' => $subscriptLinkValue,
'sort' => $sort, 'sort' => $sort,
'requiredPermissions' => $requiredPermissions 'requiredPermissions' => $requiredPermissions,
'subscriptLinkHref' => $subscriptLinkHref
); );
} }
@@ -235,8 +236,7 @@ class NavigationLib
{ {
$extensionArray = array_merge_recursive( $extensionArray = array_merge_recursive(
$extensionArray, $extensionArray,
$this->_wildcardsearch($config[$configName], $this->_wildcardsearch($config[$configName], $navigationPage)
$navigationPage)
); );
} }
} }
-1
View File
@@ -194,7 +194,6 @@ class PhrasesLib
{ {
$_phrase = $this->_phrases[$i]; // single phrase $_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 the single phrase match the given parameters and is not an empty string
if ($_phrase->category == $category if ($_phrase->category == $category
&& $_phrase->phrase == $phrase && $_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)); return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id));
} }
/** /**
* gets extended zgv data (with zgv bezeichnung) for a prestudent * gets extended zgv data (with zgv bezeichnung) for a prestudent
* includes last status, Studiengang, zgv, zgv master * includes last status, Studiengang, zgv, zgv master
@@ -219,6 +218,18 @@ class Prestudent_model extends DB_Model
if (count($lastStatus->retval) > 0) 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'); $this->load->model('system/sprache_model', 'SpracheModel');
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache); $language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
@@ -278,4 +289,234 @@ class Prestudent_model extends DB_Model
return $this->execQuery($qry, $parametersArray); 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); array_push($parametersArray, $studiensemester_kurzbz);
$query .= ' AND studiensemester_kurzbz = ?'; $query .= ' AND studiensemester_kurzbz = ?';
} }
if ($status_kurzbz != '') if ($status_kurzbz != '')
{ {
array_push($parametersArray, $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'; $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 * @param $prestudent_id
* @return array * @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) public function getStudienordnungWithZgvText($prestudent_id)
{ {
$lastStatus = $this->getLastStatus($prestudent_id); $lastStatus = $this->getLastStatus($prestudent_id);
@@ -140,7 +176,7 @@ class Prestudentstatus_model extends DB_Model
} }
else else
{ {
return sucess(array()); return success(array());
} }
} }
} }
@@ -11,4 +11,15 @@ class Adresse_model extends DB_Model
$this->dbTable = 'public.tbl_adresse'; $this->dbTable = 'public.tbl_adresse';
$this->pk = 'adresse_id'; $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 <?php
$APP = 'infocenter'; $APP = '\'infocenter\'';
$NOTBEFORE = '2018-03-01 18:00:00'; $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( $filterWidgetArray = array(
'query' => ' '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.person_id AS "PersonId",
p.vorname AS "Vorname", p.vorname AS "Vorname",
p.nachname AS "Nachname", p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum", p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation", p.staatsbuergerschaft AS "Nation",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
pd.parkdate AS "ParkDate",
( (
SELECT zeitpunkt SELECT l.zeitpunkt
FROM system.tbl_log FROM system.tbl_log l
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\') AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND person_id = p.person_id AND l.person_id = p.person_id
ORDER BY zeitpunkt DESC ORDER BY l.zeitpunkt DESC
LIMIT 1 LIMIT 1
) AS "LastAction", ) AS "LastAction",
( (
SELECT insertvon SELECT l.insertvon
FROM system.tbl_log FROM system.tbl_log l
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\', \'Interessent rejected\') AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND person_id = p.person_id AND l.person_id = p.person_id
ORDER BY zeitpunkt DESC ORDER BY l.zeitpunkt DESC
LIMIT 1 LIMIT 1
) AS "User/Operator", ) AS "User/Operator",
( (
SELECT SELECT pss.studiensemester_kurzbz
pss.studiensemester_kurzbz FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
JOIN public.tbl_studiengang USING(studiengang_kz) AND pss.bestaetigtam IS NULL
WHERE pss.status_kurzbz = \'Interessent\' AND ps.person_id = p.person_id
AND pss.bestaetigtam IS NULL AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND tbl_studiengang.typ in(\'b\') ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
AND studiensemester_kurzbz IN ( LIMIT 1
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester", ) AS "Studiensemester",
( (
SELECT pss.bewerbung_abgeschicktamum SELECT pss.bewerbung_abgeschicktamum
FROM FROM public.tbl_prestudentstatus pss
public.tbl_prestudentstatus pss JOIN public.tbl_prestudent ps USING(prestudent_id)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND pss.bestaetigtam IS NULL
AND pss.bestaetigtam IS NULL AND ps.person_id = p.person_id
AND ps.person_id = p.person_id AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND tbl_studiengang.typ in(\'b\') AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND studiensemester_kurzbz IN ( AND NOT EXISTS (
SELECT studiensemester_kurzbz SELECT 1
FROM public.tbl_studiensemester FROM tbl_prestudentstatus spss
WHERE ende >= NOW() 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
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC LIMIT 1
LIMIT 1
) AS "SendDate", ) AS "SendDate",
( (
SELECT count(*) SELECT COUNT(*)
FROM FROM public.tbl_prestudentstatus pss
public.tbl_prestudentstatus pss JOIN public.tbl_prestudent ps USING(prestudent_id)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND pss.bestaetigtam IS NULL
AND pss.bestaetigtam IS NULL AND ps.person_id = p.person_id
AND ps.person_id = p.person_id AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND tbl_studiengang.typ in(\'b\') AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND studiensemester_kurzbz IN ( AND NOT EXISTS (
SELECT studiensemester_kurzbz SELECT 1
FROM public.tbl_studiensemester FROM tbl_prestudentstatus spss
WHERE ende >= NOW() 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", ) AS "AnzahlAbgeschickt",
array_to_string( (
( SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN lehre.tbl_studienplan sp USING(studienplan_id)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
JOIN lehre.tbl_studienplan using (studienplan_id) AND pss.bewerbung_abgeschicktamum IS NOT NULL
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bestaetigtam IS NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND ps.person_id = p.person_id
AND pss.bestaetigtam IS NULL AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND tbl_studiengang.typ in(\'b\') AND NOT EXISTS (
AND studiensemester_kurzbz IN ( SELECT 1
SELECT studiensemester_kurzbz FROM tbl_prestudentstatus spss
FROM public.tbl_studiensemester WHERE spss.prestudent_id = pss.prestudent_id
WHERE ende >= NOW() 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", ) AS "StgAbgeschickt",
array_to_string( (
( SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN lehre.tbl_studienplan sp USING(studienplan_id)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
JOIN lehre.tbl_studienplan using (studienplan_id) AND pss.bewerbung_abgeschicktamum IS NULL
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bestaetigtam IS NULL
AND (pss.bewerbung_abgeschicktamum IS NULL) AND ps.person_id = p.person_id
AND pss.bestaetigtam IS NULL AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT cnss.studiensemester_kurzbz FROM currentOrNextStudiensemester cnss)
AND tbl_studiengang.typ in(\'b\') AND NOT EXISTS (
AND studiensemester_kurzbz IN ( SELECT 1
SELECT studiensemester_kurzbz FROM tbl_prestudentstatus spss
FROM public.tbl_studiensemester WHERE spss.prestudent_id = pss.prestudent_id
WHERE ende >= NOW() 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", ) AS "StgNichtAbgeschickt",
array_to_string( (
( SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz) || \':\' || sp.orgform_kurzbz), \', \')
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) || \':\' || tbl_studienplan.orgform_kurzbz) FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN lehre.tbl_studienplan sp USING(studienplan_id)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz IN ('.$STATUS_KURZBZ.')
JOIN lehre.tbl_studienplan using (studienplan_id) AND pss.bewerbung_abgeschicktamum IS NULL
WHERE pss.status_kurzbz in (\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\') AND ps.person_id = p.person_id
AND (pss.bewerbung_abgeschicktamum IS NULL) AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.start >= NOW())
AND tbl_studiengang.typ in(\'b\') AND NOT EXISTS (
AND studiensemester_kurzbz IN ( SELECT 1
SELECT studiensemester_kurzbz FROM tbl_prestudentstatus spss
FROM public.tbl_studiensemester WHERE spss.prestudent_id = pss.prestudent_id
WHERE start >= NOW() 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 "StgAktiv"
),\', \' FROM public.tbl_person p
) AS "StgAktiv", LEFT JOIN (
pl.zeitpunkt AS "LockDate", SELECT tpl.person_id,
pl.lockuser AS "LockUser", tpl.zeitpunkt,
pd.parkdate AS "ParkDate" tpl.uid AS lockuser
FROM public.tbl_person p FROM system.tbl_person_lock tpl
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id) WHERE tpl.app = '.$APP.'
LEFT JOIN ( ) pl USING(person_id)
SELECT person_id, zeitpunkt as parkdate LEFT JOIN (
FROM system.tbl_log SELECT l.person_id,
WHERE logtype_kurzbz = \'Processstate\' l.zeitpunkt AS parkdate
AND logdata->>\'name\' = \'Parked\' FROM system.tbl_log l
AND zeitpunkt >= now() WHERE l.logtype_kurzbz = '.$LOGTYPE_KURZBZ.'
AND l.logdata->>\'name\' = '.$LOGDATA_NAME_PARKED.'
AND l.zeitpunkt >= NOW()
) pd USING(person_id) ) pd USING(person_id)
WHERE WHERE
EXISTS( EXISTS (
SELECT 1 SELECT 1
FROM FROM public.tbl_prestudent sps
public.tbl_prestudent JOIN public.tbl_studiengang ssg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE sps.person_id = p.person_id
WHERE AND ssg.typ IN ('.$STUDIENGANG_TYP.')
person_id=p.person_id AND '.$INTERESSENT_STATUS.' = (
AND tbl_studiengang.typ in(\'b\') SELECT spss.status_kurzbz
AND \'Interessent\' = (SELECT status_kurzbz FROM public.tbl_prestudentstatus FROM public.tbl_prestudentstatus spss
WHERE prestudent_id=tbl_prestudent.prestudent_id WHERE spss.prestudent_id = sps.prestudent_id
ORDER BY datum DESC, insertamum DESC, ext_id DESC ORDER BY spss.datum DESC, spss.insertamum DESC, spss.ext_id DESC
LIMIT 1 LIMIT 1
) )
AND EXISTS ( AND EXISTS (
SELECT SELECT 1
1 FROM public.tbl_prestudentstatus spss
FROM WHERE spss.prestudent_id = sps.prestudent_id
public.tbl_prestudentstatus AND spss.status_kurzbz = '.$INTERESSENT_STATUS.'
WHERE AND spss.bestaetigtam IS NULL
prestudent_id = tbl_prestudent.prestudent_id AND spss.bewerbung_abgeschicktamum IS NOT NULL
AND status_kurzbz = \'Interessent\' AND spss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende > NOW())
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()
)
)
) )
ORDER BY "LastAction" ASC ORDER BY "LastAction" ASC
', ',
'requiredPermissions' => 'infocenter', 'requiredPermissions' => 'infocenter',
'checkboxes' => 'PersonId', 'checkboxes' => 'PersonId',
@@ -307,7 +316,7 @@
} }
); );
$filterWidgetArray['app'] = $APP; $filterWidgetArray['app'] = 'infocenter';
$filterWidgetArray['datasetName'] = 'overview'; $filterWidgetArray['datasetName'] = 'overview';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterSentApplicationAll'; $filterWidgetArray['filterKurzbz'] = 'InfoCenterSentApplicationAll';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id'); $filterWidgetArray['filter_id'] = $this->input->get('filter_id');
@@ -15,7 +15,8 @@
'navigationwidget' => true, 'navigationwidget' => true,
'customCSSs' => array( 'customCSSs' => array(
'public/css/sbadmin2/admintemplate.css', 'public/css/sbadmin2/admintemplate.css',
'public/css/sbadmin2/tablesort_bootstrap.css' 'public/css/sbadmin2/tablesort_bootstrap.css',
'public/css/infocenter/infocenterDetails.css'
), ),
'customJSs' => array( 'customJSs' => array(
'public/js/bootstrapper.js', 'public/js/bootstrapper.js',
@@ -71,6 +72,8 @@
<i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?> <i class="fa fa-sign-out"></i>&nbsp;<?php echo ucfirst($this->p->t('ui', 'freigeben')) ?>
</a> </a>
<?php endif; ?> <?php endif; ?>
<?php else: ?>
&nbsp;
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </div>
@@ -118,7 +121,7 @@
<?php echo $this->p->t('infocenter', 'zgv').' - '.ucfirst($this->p->t('lehre', 'pruefung'))?> <?php echo $this->p->t('infocenter', 'zgv').' - '.ucfirst($this->p->t('lehre', 'pruefung'))?>
</h4> </h4>
</div> </div>
<div class="panel-body"> <div class="panel-body" id="zgvpruefungen">
<?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group --> <?php $this->load->view('system/infocenter/zgvpruefungen.php'); ?><!-- /.panel-group -->
</div><!-- /.main panel body --> </div><!-- /.main panel body -->
</div> <!-- /.main panel--> </div> <!-- /.main panel-->
@@ -1,137 +1,114 @@
<?php <?php
$APP = 'infocenter'; $APP = '\'infocenter\'';
$NOTBEFORE = '2018-03-01 18:00:00'; $INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\'b\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'New application\'';
$filterWidgetArray = array( $filterWidgetArray = array(
'query' => ' 'query' => '
SELECT SELECT
p.person_id AS "PersonId", p.person_id AS "PersonId",
p.vorname AS "Vorname", p.vorname AS "Vorname",
p.nachname AS "Nachname", p.nachname AS "Nachname",
p.gebdatum AS "Gebdatum", p.gebdatum AS "Gebdatum",
p.staatsbuergerschaft AS "Nation", p.staatsbuergerschaft AS "Nation",
pl.zeitpunkt AS "LockDate",
pl.lockuser AS "LockUser",
( (
SELECT zeitpunkt SELECT l.zeitpunkt
FROM system.tbl_log FROM system.tbl_log l
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\') AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND person_id = p.person_id AND l.person_id = p.person_id
ORDER BY zeitpunkt DESC ORDER BY l.zeitpunkt DESC
LIMIT 1 LIMIT 1
) AS "LastAction", ) AS "LastAction",
( (
SELECT insertvon SELECT l.insertvon
FROM system.tbl_log FROM system.tbl_log l
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\') WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND logdata->>\'name\' NOT IN (\'Login with code\', \'New application\') AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND person_id = p.person_id AND l.person_id = p.person_id
ORDER BY zeitpunkt DESC ORDER BY l.zeitpunkt DESC
LIMIT 1 LIMIT 1
) AS "User/Operator", ) AS "User/Operator",
( (
SELECT SELECT pss.studiensemester_kurzbz
pss.studiensemester_kurzbz FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
JOIN public.tbl_studiengang USING(studiengang_kz) AND ps.person_id = p.person_id
WHERE pss.status_kurzbz = \'Interessent\' AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND tbl_studiengang.typ in(\'b\') ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
AND studiensemester_kurzbz IN ( LIMIT 1
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "Studiensemester", ) AS "Studiensemester",
( (
SELECT pss.bewerbung_abgeschicktamum SELECT pss.bewerbung_abgeschicktamum
FROM FROM public.tbl_prestudentstatus pss
public.tbl_prestudentstatus pss JOIN public.tbl_prestudent ps USING(prestudent_id)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND ps.person_id = p.person_id
AND ps.person_id = p.person_id AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND tbl_studiengang.typ in(\'b\') AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND studiensemester_kurzbz IN ( ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
SELECT studiensemester_kurzbz LIMIT 1
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
ORDER BY pss.datum DESC, pss.insertamum DESC, pss.ext_id DESC
LIMIT 1
) AS "SendDate", ) AS "SendDate",
( (
SELECT count(*) SELECT COUNT(*)
FROM FROM public.tbl_prestudentstatus pss
public.tbl_prestudentstatus pss JOIN public.tbl_prestudent ps USING(prestudent_id)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
WHERE pss.status_kurzbz = \'Interessent\' AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND ps.person_id = p.person_id
AND ps.person_id = p.person_id AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND tbl_studiengang.typ in(\'b\') AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND studiensemester_kurzbz IN ( LIMIT 1
SELECT studiensemester_kurzbz
FROM public.tbl_studiensemester
WHERE ende >= NOW()
)
LIMIT 1
) AS "AnzahlAbgeschickt", ) AS "AnzahlAbgeschickt",
array_to_string( (
( SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz)), \', \')
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz)) FROM public.tbl_prestudentstatus pss
FROM JOIN public.tbl_prestudent ps USING(prestudent_id)
public.tbl_prestudentstatus pss JOIN public.tbl_studiengang sg USING(studiengang_kz)
INNER JOIN public.tbl_prestudent ps USING(prestudent_id) WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
JOIN public.tbl_studiengang USING(studiengang_kz) AND pss.bewerbung_abgeschicktamum IS NOT NULL
WHERE pss.status_kurzbz = \'Interessent\' AND ps.person_id = p.person_id
AND (pss.bewerbung_abgeschicktamum IS NOT NULL AND pss.bewerbung_abgeschicktamum>=\''.$NOTBEFORE.'\') AND sg.typ IN ('.$STUDIENGANG_TYP.')
AND ps.person_id = p.person_id AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
AND tbl_studiengang.typ in(\'b\') LIMIT 1
AND studiensemester_kurzbz IN ( ) AS "StgAbgeschickt"
SELECT studiensemester_kurzbz FROM public.tbl_person p
FROM public.tbl_studiensemester LEFT JOIN (
WHERE ende >= NOW() SELECT tpl.person_id,
) tpl.zeitpunkt,
LIMIT 1 tpl.uid AS lockuser
),\', \' FROM system.tbl_person_lock tpl
) AS "StgAbgeschickt", WHERE tpl.app = '.$APP.'
pl.zeitpunkt AS "LockDate", ) pl USING(person_id)
pl.lockuser as "LockUser" WHERE
FROM public.tbl_person p EXISTS (
LEFT JOIN (SELECT person_id, zeitpunkt, uid as lockuser FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
WHERE
EXISTS(
SELECT 1 SELECT 1
FROM FROM public.tbl_prestudent ps
public.tbl_prestudent JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN public.tbl_studiengang USING(studiengang_kz) WHERE ps.person_id = p.person_id
WHERE AND sg.typ IN ('.$STUDIENGANG_TYP.')
person_id=p.person_id AND EXISTS (
AND tbl_studiengang.typ in(\'b\') SELECT 1
FROM public.tbl_prestudentstatus pss
AND EXISTS ( WHERE pss.prestudent_id = ps.prestudent_id
SELECT AND pss.status_kurzbz = '.$INTERESSENT_STATUS.'
1 AND pss.bestaetigtam IS NOT NULL
FROM AND pss.bewerbung_abgeschicktamum IS NOT NULL
public.tbl_prestudentstatus AND pss.studiensemester_kurzbz IN (SELECT ss.studiensemester_kurzbz FROM public.tbl_studiensemester ss WHERE ss.ende >= NOW())
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()
)
) )
) )
ORDER BY "LastAction" DESC ORDER BY "LastAction" DESC
', ',
'requiredPermissions' => 'infocenter', 'requiredPermissions' => 'infocenter',
'checkboxes' => 'PersonId', 'checkboxes' => 'PersonId',
@@ -216,7 +193,7 @@
} }
); );
$filterWidgetArray['app'] = $APP; $filterWidgetArray['app'] = 'infocenter';
$filterWidgetArray['datasetName'] = 'freigegeben'; $filterWidgetArray['datasetName'] = 'freigegeben';
$filterWidgetArray['filterKurzbz'] = 'InfoCenterFreigegeben5days'; $filterWidgetArray['filterKurzbz'] = 'InfoCenterFreigegeben5days';
$filterWidgetArray['filter_id'] = $this->input->get('filter_id'); $filterWidgetArray['filter_id'] = $this->input->get('filter_id');
@@ -1,6 +1,12 @@
<div class="row"> <div class="row">
<div class="col-lg-6 table-responsive"> <div class="col-lg-6 table-responsive">
<table class="table"> <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> <tr>
<td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td> <td><strong><?php echo ucfirst($this->p->t('person','vorname')) ?></strong></td>
<td><?php echo $stammdaten->vorname ?></td> <td><?php echo $stammdaten->vorname ?></td>
@@ -10,6 +16,12 @@
<td> <td>
<?php echo $stammdaten->nachname ?></td> <?php echo $stammdaten->nachname ?></td>
</tr> </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> <tr>
<td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td> <td><strong><?php echo ucfirst($this->p->t('person','geburtsdatum')) ?></strong></td>
<td> <td>
@@ -57,21 +69,23 @@
<?php foreach ($stammdaten->kontakte as $kontakt): ?> <?php foreach ($stammdaten->kontakte as $kontakt): ?>
<tr> <tr>
<?php if ($kontakt->kontakttyp === 'email'): ?> <?php if ($kontakt->kontakttyp === 'email'): ?>
<td><?php echo ucfirst($this->p->t('person','email')) ?></td> <td><?php echo ucfirst($this->p->t('person', 'email')) ?></td>
<?php elseif ($kontakt->kontakttyp === 'telefon'): ?> <?php elseif ($kontakt->kontakttyp === 'telefon' || $kontakt->kontakttyp === 'mobil'): ?>
<td><?php echo ucfirst($this->p->t('person','telefon')) ?></td> <td><?php echo ucfirst($this->p->t('person', 'telefon')) ?></td>
<?php else: ?>
<td><?php echo ucfirst($kontakt->kontakttyp) ?></td>
<?php endif; ?> <?php endif; ?>
<td> <td>
<?php echo '<span class="'.$kontakt->kontakttyp.'">';?> <?php echo '<span class="'.$kontakt->kontakttyp.'">';?>
<?php if ($kontakt->kontakttyp === 'email'): ?> <?php if ($kontakt->kontakttyp === 'email'): ?>
<a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top"> <a href="mailto:<?php echo $kontakt->kontakt; ?>" target="_top">
<?php <?php
endif; endif;
echo $kontakt->kontakt; echo $kontakt->kontakt;
if ($kontakt->kontakttyp === 'email'): if ($kontakt->kontakttyp === 'email'):
?> ?>
</a> </a>
<?php endif; ?> <?php endif; ?>
<?php echo '</span>'?> <?php echo '</span>'?>
</td> </td>
<td><?php echo $kontakt->anmerkung; ?></td> <td><?php echo $kontakt->anmerkung; ?></td>
@@ -1,43 +1,90 @@
<div class="panel-group"> <div class="panel-group">
<?php <?php
$unique_studsemester = array();
$first = true;
foreach ($zgvpruefungen as $zgvpruefung): foreach ($zgvpruefungen as $zgvpruefung):
$infoonly = $zgvpruefung->infoonly; $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 //set bootstrap columns for zgv form
$columns = array(4, 3, 2, 3); $columns = array(4, 3, 2, 3);
$headercolumns = array(7, 5); $headercolumns = array(7, 5);
if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin)) if (!$infoonly && isset($zgvpruefung->prestudentstatus->bewerbungsnachfrist) && isset($zgvpruefung->prestudentstatus->bewerbungstermin))
{ {
$headercolumns[0] = 5; $headercolumns[0] = 4;
$headercolumns[1] = 7; $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 panel-default">
<div class="panel-heading"> <div class="panel-heading">
<div class="row"> <div class="row">
<div class="col-xs-<?php echo $headercolumns[0]; ?>"> <div class="col-xs-<?php echo $headercolumns[0]; ?>">
<h4 class="panel-title"> <h4 class="panel-title">
<a data-toggle="collapse" <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> ?></a>
</h4> </h4>
</div> </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 ($infoonly): ?>
<?php if (isset($zgvpruefung->prestudentstatus->bestaetigtam)): ?> <?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> <i class="fa fa-check" style="color: green"></i>
<?php echo $this->p->t('global', 'anStudiengangFreigegeben') ?> <?php echo $this->p->t('global', 'anStudiengangFreigegeben') ?>
</div>
<?php endif; ?> <?php endif; ?>
<?php else: ?> <?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->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') : ''); ?> <?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 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; ?> <?php endif; ?>
</div>
</div> </div>
</div> </div>
<div id="collapse<?php echo $zgvpruefung->prestudent_id ?>" <div id="collapse<?php echo $zgvpruefung->prestudent_id ?>"
@@ -49,7 +96,7 @@
<div class="row"> <div class="row">
<div class="col-lg-<?php echo $columns[0] ?>"> <div class="col-lg-<?php echo $columns[0] ?>">
<div class="form-group"> <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 <?php
if (isset($zgvpruefung->prestudentstatus->status_kurzbz)) if (isset($zgvpruefung->prestudentstatus->status_kurzbz))
{ {
@@ -60,8 +107,8 @@
</div> </div>
<div class="col-lg-<?php echo $columns[1] ?>"> <div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group"> <div class="form-group">
<label><?php echo ucfirst($this->p->t('lehre','studiensemester')) . ':' ?></label> <label><?php echo ucfirst($this->p->t('lehre', 'studiensemester')) . ':' ?></label>
<?php echo isset($zgvpruefung->prestudentstatus->studiensemester_kurzbz) ? $zgvpruefung->prestudentstatus->studiensemester_kurzbz : '' ?> <?php echo $studiensemester ?>
</div> </div>
</div> </div>
<div class="col-lg-<?php echo $columns[2] ?>"> <div class="col-lg-<?php echo $columns[2] ?>">
@@ -73,7 +120,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[3] ?>"> <div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"> <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"> <span style="display: inline-block">
<?php <?php
$separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : ''; $separator = (isset($zgvpruefung->prestudentstatus->orgform)) ? ', ' : '';
@@ -101,7 +148,7 @@
$zgvinfocolumns = $infoonly ? 4 : 9; $zgvinfocolumns = $infoonly ? 4 : 9;
?> ?>
<div class="col-xs-<?php echo $zgvinfocolumns; ?> text-right zgvinfo" id="zgvinfo_<?php echo $zgvpruefung->prestudent_id ?>"> <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>
</div> </div>
<?php if (!$infoonly) <?php if (!$infoonly)
@@ -114,7 +161,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[1] ?>"> <div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group"> <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): <?php if ($infoonly):
echo html_escape($zgvpruefung->zgvort); echo html_escape($zgvpruefung->zgvort);
else: else:
@@ -127,7 +174,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[2] ?>"> <div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group"> <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 <?php
$zgvdatum = isEmptyString($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y'); $zgvdatum = isEmptyString($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y');
if ($infoonly): if ($infoonly):
@@ -143,7 +190,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[3] ?>"> <div class="col-lg-<?php echo $columns[3] ?>">
<div class="form-group"> <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) <?php if ($infoonly)
echo $zgvpruefung->zgvnation_bez; echo $zgvpruefung->zgvnation_bez;
else else
@@ -173,7 +220,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[1] ?>"> <div class="col-lg-<?php echo $columns[1] ?>">
<div class="form-group"> <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): <?php if ($infoonly):
echo $zgvpruefung->zgvmaort; echo $zgvpruefung->zgvmaort;
else: else:
@@ -186,7 +233,7 @@
</div> </div>
<div class="col-lg-<?php echo $columns[2] ?>"> <div class="col-lg-<?php echo $columns[2] ?>">
<div class="form-group"> <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 <?php
$zgvmadatum = isEmptyString($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y'); $zgvmadatum = isEmptyString($zgvpruefung->zgvmadatum) ? "" : date_format(date_create($zgvpruefung->zgvmadatum), 'd.m.Y');
if ($infoonly): if ($infoonly):
@@ -201,7 +248,7 @@
</div> </div>
</div> </div>
<div class="col-lg-<?php echo $columns[3] ?>"> <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 <?php
if ($infoonly) if ($infoonly)
echo $zgvpruefung->zgvmanation_bez; echo $zgvpruefung->zgvmanation_bez;
@@ -237,69 +284,65 @@
//Prestudenten cannot be abgewiesen or freigegeben if already done //Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) : if (!$infoonly) :
?> ?>
<div class="panel-footer" style="border-top: 1px solid #ddd"> <div class="panel-footer solidtop">
<div class="row"> <div class="row">
<div class="col-lg-6 text-left"> <div class="col-lg-6 text-left">
<div class="form-inline"> <div class="form-inline">
<form method="post" action="saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>"> <div class="input-group" id="statusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<input type="hidden" name="fhc_controller_id" value="<?php echo $fhc_controller_id; ?>"> <select name="statusgrund"
<div class="input-group" id="statusgrselect_<?php echo $zgvpruefung->prestudent_id ?>"> class="d-inline float-right"
<select name="statusgrund" required>
class="d-inline float-right" <option value="null"
required> selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
<option value="null" </option>
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?> <?php foreach ($statusgruende as $statusgrund): ?>
</option> <option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php foreach ($statusgruende as $statusgrund): ?> <?php endforeach ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option> </select>
<?php endforeach ?> <span class="input-group-btn">
</select> <button id="absageBtn" type="button"
<span class="input-group-btn"> class="btn btn-default"
<button id="absageBtn" type="button" data-toggle="modal"
class="btn btn-default" data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>">
data-toggle="modal" <?php echo $this->p->t('ui', 'absagen') ?>
data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>"> </button>
<?php echo $this->p->t('ui', 'absagen') ?> </span>
</button> </div>
</span> <div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
</div> tabindex="-1"
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>" role="dialog"
tabindex="-1" aria-labelledby="absageModalLabel"
role="dialog" aria-hidden="true">
aria-labelledby="absageModalLabel" <div class="modal-dialog">
aria-hidden="true"> <div class="modal-content">
<div class="modal-dialog"> <div class="modal-header">
<div class="modal-content"> <button type="button"
<div class="modal-header"> class="close"
<button type="button" data-dismiss="modal"
class="close" aria-hidden="true">
data-dismiss="modal" &times;
aria-hidden="true"> </button>
&times; <h4 class="modal-title"
</button> id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
<h4 class="modal-title" </div>
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4> <div class="modal-body">
</div> <?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
<div class="modal-body"> </div>
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?> <div class="modal-footer">
</div> <button type="button"
<div class="modal-footer"> class="btn btn-default"
<button type="button" data-dismiss="modal">
class="btn btn-default" <?php echo $this->p->t('ui', 'abbrechen') ?>
data-dismiss="modal"> </button>
<?php echo $this->p->t('ui', 'abbrechen') ?> <button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
</button> <?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
<button type="submit" </button>
class="btn btn-primary">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div> </div>
<!-- /.modal-content -->
</div> </div>
<!-- /.modal-dialog --> <!-- /.modal-content -->
</div> </div>
</form> <!-- /.modal-dialog -->
</div>
</div> </div>
</div><!-- /.column-absage --> </div><!-- /.column-absage -->
<div class="col-lg-6 text-right"> <div class="col-lg-6 text-right">
@@ -326,7 +369,7 @@
</button> </button>
</div> </div>
</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" role="dialog"
aria-labelledby="freigabeModalLabel" aria-labelledby="freigabeModalLabel"
aria-hidden="true"> aria-hidden="true">
@@ -349,12 +392,10 @@
class="btn btn-default" class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?> data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button> </button>
<a href="saveFreigabe/<?php echo $zgvpruefung->prestudent_id ?>?fhc_controller_id=<?php echo $fhc_controller_id; ?>"> <button type="button"
<button type="button" class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
class="btn btn-primary"> <?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?> </button>
</button>
</a>
</div> </div>
</div><!-- /.modal-content --> </div><!-- /.modal-content -->
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
@@ -374,5 +415,8 @@
?> ?>
</div><!-- /.div collapse --> </div><!-- /.div collapse -->
</div><!-- /.panel --> </div><!-- /.panel -->
<?php endforeach; // end foreach zgvpruefungen?> <?php
$first = false;
endforeach; // end foreach zgvpruefungen
?>
</div><!-- /.panel-group --> </div><!-- /.panel-group -->
+2 -1
View File
@@ -47,7 +47,8 @@ $widthColumn = $msgExists === true ? 8 : 12;
autoresize_min_height: 140, autoresize_min_height: 140,
autoresize_max_height: 495, autoresize_max_height: 495,
//callback to avoid conflict with ajax (for getting body of first message) //callback to avoid conflict with ajax (for getting body of first message)
init_instance_callback: "initMsgBody" init_instance_callback: "initMsgBody",
responsive: true
}); });
function initMsgBody() function initMsgBody()
Regular → Executable
+3 -3
View File
@@ -619,7 +619,7 @@ echo '
}); });
} }
}); });
// Autocomplete Feld fuer Ressourcen initialisieren // Autocomplete Feld fuer Ressourcen initialisieren
$("#input_ressource").autocomplete({ $("#input_ressource").autocomplete({
source: "coodle_autocomplete.php?work=ressource", source: "coodle_autocomplete.php?work=ressource",
@@ -708,8 +708,8 @@ echo '
error: function() { error: function() {
alert("Error fetching data for "+typ+" "+id); alert("Error fetching data for "+typ+" "+id);
}, },
color:"lightgrey" color:"lightgrey",
//textColor:"black" textColor:"#777"
}); });
} }
@@ -286,39 +286,39 @@ foreach ($noten_obj->result as $row)
changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>'; changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>';
} }
} }
else else
{ {
alert(resp); alert(resp);
document.getElementById(uid).note.value=""; document.getElementById(uid).note.value="";
} }
}, },
error:function(result) error:function(result)
{ {
alert('Speichern der Note fehlgeschlagen'); alert('Speichern der Note fehlgeschlagen');
} }
}); });
} }
// ************************************************* // *************************************************
// * Formular zum Eintragen einer Pruefung erstellen // * Formular zum Eintragen einer Pruefung erstellen
// ************************************************* // *************************************************
function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ) function pruefungAnlegen(uid,datum,note,lehreinheit_id,punkte,typ)
{ {
if(typeof(typ)=='undefined') if(typeof(typ)=='undefined')
typ = 'Termin2'; typ = 'Termin2';
var str = " <form name='nachpruefung_form'> <table style='width: 95%'>"; 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>"; str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div"); var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; var y = getOffset('y'); y = y+50;
anlegendiv.style.top = y+"px"; anlegendiv.style.top = y+"px";
var x = getOffset('x'); x = x+300; var x = getOffset('x'); x = x+300;
anlegendiv.style.left = x+"px"; anlegendiv.style.left = x+"px";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+uid+":</b></td></tr>"; 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 += "<tr><td><?php echo $p->t('global/datum');?>:</td>";
str += "<td><input type='hidden' name='uid' value='"+uid+"'>"; str += "<td><input type='hidden' name='uid' value='"+uid+"'>";
str += "<input type='hidden' name='le_id' value='"+lehreinheit_id+"'>"; str += "<input type='hidden' name='le_id' value='"+lehreinheit_id+"'>";
str += "<input type='hidden' name='typ' value='"+typ+"'>"; 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>"; str += "<input type='text' id='pruefungsdatum' name='datum' size='10' value='"+datum+"'> [DD.MM.YYYY]</td></tr>";
<?php <?php
@@ -342,9 +342,9 @@ foreach ($noten_obj->result as $row)
} }
echo '</select></td>'; 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 += "<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>"; str += "</table></form>";
anlegendiv.innerHTML = str; anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible"; anlegendiv.style.visibility = "visible";
@@ -432,15 +432,15 @@ foreach ($noten_obj->result as $row)
if (resp == "update_f" || resp == "update") 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) if (warningdiv != null)
warningdiv.parentNode.removeChild(warningdiv); // Entfernt das Warning-Div warningdiv.parentNode.removeChild(warningdiv); // Entfernt das Warning-Div
changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>'; changedwarning.innerHTML = '<div class="warning"><?php echo $p->t('benotungstool/geaenderteNotenVorhanden'); ?></div>';
} }
document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden"; document.getElementById("lvnoteneingabe_"+uid).style.visibility = "hidden";
anlegendiv.innerHTML = ""; anlegendiv.innerHTML = "";
anlegendiv.style.visibility = "hidden"; anlegendiv.style.visibility = "hidden";
var pruefhtml = "<table><tr><td class='td_datum'>"+datum+"</td>"; var pruefhtml = "<table><tr><td class='td_datum'>"+datum+"</td>";
pruefhtml += "<td class='td_note'>"+noten_array[note]+"</td>"; pruefhtml += "<td class='td_note'>"+noten_array[note]+"</td>";
pruefhtml += "<td><input type='button' name='anlegen'"; pruefhtml += "<td><input type='button' name='anlegen'";
pruefhtml +=" value='<?php echo $p->t('global/aendern'); ?>' "; pruefhtml +=" value='<?php echo $p->t('global/aendern'); ?>' ";
@@ -580,13 +580,13 @@ foreach ($noten_obj->result as $row)
// **** // ****
function GradeImport() function GradeImport()
{ {
var str = "<form name='gradeimport_form'><center><table style='width: 95%'>"; 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>"; str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
var anlegendiv = document.getElementById("nachpruefung_div"); var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px"; var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>'; str += '<tr><td><?php echo $p->t('benotungstool/importAnweisung');?>:</td>';
str += '<td></td><tr><td><textarea id="noteimporttextarea" name="notenimport"></textarea></td></tr>'; 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 += "<tr><td><input type='button' name='speichern' value='<?php echo $p->t('global/speichern');?>' onclick='saveGradeBulk();'>";
str += "</td><td></td></tr></table></center></form>"; str += "</td><td></td></tr></table></center></form>";
anlegendiv.innerHTML = str; anlegendiv.innerHTML = str;
anlegendiv.style.visibility = "visible"; anlegendiv.style.visibility = "visible";
@@ -749,7 +749,7 @@ foreach ($stsem_obj->studiensemester as $studiensemester)
{ {
$selected = ($stsem == $studiensemester->studiensemester_kurzbz ? 'selected' : ''); $selected = ($stsem == $studiensemester->studiensemester_kurzbz ? 'selected' : '');
$optionvalue = "lvgesamtnoteverwalten.php?lvid=$lvid&stsem=$studiensemester->studiensemester_kurzbz"; $optionvalue = "lvgesamtnoteverwalten.php?lvid=$lvid&stsem=$studiensemester->studiensemester_kurzbz";
$stsem_content .= "<OPTION value='" . $optionvalue . "' $selected> $stsem_content .= "<OPTION value='" . $optionvalue . "' $selected>
$studiensemester->studiensemester_kurzbz $studiensemester->studiensemester_kurzbz
</OPTION>\n"; </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) . " tbl_lehrveranstaltung.lehrveranstaltung_id=" . $db->db_add_param($lvid, FHC_INTEGER) . "
AND tbl_lehreinheit.studiensemester_kurzbz=" . $db->db_add_param($stsem) . " AND tbl_lehreinheit.studiensemester_kurzbz=" . $db->db_add_param($stsem) . "
AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=" . $db->db_add_param($user) . ';'; AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=" . $db->db_add_param($user) . ';';
if ($result = $db->db_query($qry)) if ($result = $db->db_query($qry))
{ {
if ($db->db_num_rows($result) == 0) 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"); $jetzt = date("Y-m-d H:i:s");
$neuenoten = 0; $neuenoten = 0;
$studlist = "<table border='1'> $studlist = "<table border='1'>
<tr> <tr>
<td><b>" . $p->t('global/personenkz') . "</b></td> <td><b>" . $p->t('global/personenkz') . "</b></td>
<td><b>" . $p->t('global/nachname') . "</b></td> <td><b>" . $p->t('global/nachname') . "</b></td>
<td><b>" . $p->t('global/vorname') . "</b></td>"; <td><b>" . $p->t('global/vorname') . "</b></td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{ {
$studlist .= "<td><b>" . $p->t('benotungstool/punkte') . "</b></td>\n"; $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/note') . "</b></td>\n";
$studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n"; $studlist .= "<td><b>" . $p->t('benotungstool/bearbeitetvon') . "</b></td></tr>\n";
// studentenquery // studentenquery
$qry_stud = "SELECT $qry_stud = "SELECT
DISTINCT uid, vorname, nachname, matrikelnr DISTINCT uid, vorname, nachname, matrikelnr
@@ -839,9 +841,11 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$lvgesamtnote->freigabedatum = $jetzt; $lvgesamtnote->freigabedatum = $jetzt;
$lvgesamtnote->freigabevon_uid = $user; $lvgesamtnote->freigabevon_uid = $user;
$lvgesamtnote->save(); $lvgesamtnote->save();
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>"; $studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>"; $studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>"; $studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE) if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
{ {
$studlist .= "<td>"; $studlist .= "<td>";
@@ -850,18 +854,20 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$studlist .= "</td>\n"; $studlist .= "</td>\n";
} }
$studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>"; $studlist .= "<td>" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . "</td>";
$studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid; $studlist .= "<td>" . $lvgesamtnote->mitarbeiter_uid;
if ($lvgesamtnote->updatevon != '') if ($lvgesamtnote->updatevon != '')
$studlist .= " (" . $lvgesamtnote->updatevon . ")"; $studlist .= " (" . $lvgesamtnote->updatevon . ")";
$studlist .= "</td></tr>\n"; $studlist .= "</td></tr>\n";
$neuenoten ++; $neuenoten ++;
} }
} }
} }
} }
$studlist .= "</table>"; $studlist .= "</table>";
// mail an assistentin und den user selber verschicken // mail an assistentin und den user selber verschicken
if ($neuenoten > 0) if ($neuenoten > 0)
{ {
@@ -869,29 +875,33 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
$sg = new studiengang($lv->studiengang_kz); $sg = new studiengang($lv->studiengang_kz);
$lektor_adresse = $user . "@" . DOMAIN; $lektor_adresse = $user . "@" . DOMAIN;
$adressen = $sg->email . ", " . $user . "@" . DOMAIN; $adressen = $sg->email . ", " . $user . "@" . DOMAIN;
$studienplan = new studienplan(); $studienplan = new studienplan();
$studienplan->getStudienplanLehrveranstaltung($lvid, $stsem); $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
$studienplan_bezeichnung = ''; $studienplan_bezeichnung = '';
foreach ($studienplan->result as $row) foreach ($studienplan->result as $row)
$studienplan_bezeichnung .= $row->bezeichnung . ' '; $studienplan_bezeichnung .= $row->bezeichnung . ' ';
$mit = new mitarbeiter(); $mit = new mitarbeiter();
$mit->load($user); $mit->load($user);
$name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
$freigeber = "<b>" . mb_strtoupper($user) . "</b>";
$betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung; $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
$mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, ''); $mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
$htmlcontent = "<html> $htmlcontent = "<html>
<body> <body>
$name hat neue Noten für die Lehrveranstaltung\n\n<br>
<b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester <b>" . $sg->kuerzel . ' ' . $lv->semester . '.Semester
' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b> ' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "</b>
(" . $lv->semester . ". Sem.) <br>eingetragen.\n<br><br>
<br><br>" . $p->t('global/benutzer') . " " . $freigeber . " (" . $mit->kurzbz . ") Die Noten können jetzt ins Zeugnis übernommen werden.\n";
" . $p->t('benotungstool/hatDieLvNotenFuerFolgendeStudenten') . ":
<br><br>\n" . $studlist . " if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
$htmlcontent.= $studlist;
$htmlcontent.= "
<br>Anzahl der Noten:" . $neuenoten . " <br>Anzahl der Noten:" . $neuenoten . "
<br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . " <br><br>" . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
</body></html>"; </body></html>";
$mail->setHTMLContent($htmlcontent); $mail->setHTMLContent($htmlcontent);
$mail->setReplyTo($lektor_adresse); $mail->setReplyTo($lektor_adresse);
@@ -909,7 +919,7 @@ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
$onclickpath = "notenschluessel.php?lehrveranstaltung_id=$lvid&stsem=$stsem"; $onclickpath = "notenschluessel.php?lehrveranstaltung_id=$lvid&stsem=$stsem";
$onclickoptions = "height=200, width=350, left=50, top=50, resizable=yes, status=no,"; $onclickoptions = "height=200, width=350, left=50, top=50, resizable=yes, status=no,";
$onclickoptions .= "scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes"; $onclickoptions .= "scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes";
echo '<br> echo '<br>
<a href="#" onclick="window.open(\'' . $onclickpath . '\',\'Grades\',\'' . $onclickoptions . '\'); return false;"> <a href="#" onclick="window.open(\'' . $onclickpath . '\',\'Grades\',\'' . $onclickoptions . '\'); return false;">
' . $p->t('gesamtnote/notenschluesselanzeigen') . '</a>'; ' . $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) . " studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . " AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . "
ORDER BY nachname, vorname "; ORDER BY nachname, vorname ";
if ($result_stud = $db->db_query($qry_stud)) if ($result_stud = $db->db_query($qry_stud))
{ {
$i = 1; $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]['vorname'] = $row_stud->vorname;
$grades[$row_stud->uid]['nachname'] = $row_stud->nachname; $grades[$row_stud->uid]['nachname'] = $row_stud->nachname;
// Noten aus Uebungstool // Noten aus Uebungstool
$le = new lehreinheit(); $le = new lehreinheit();
$le->load_lehreinheiten($lvid, $stsem); $le->load_lehreinheiten($lvid, $stsem);
foreach ($le->lehreinheiten as $l) foreach ($le->lehreinheiten as $l)
{ {
$legesamtnote = new legesamtnote($l->lehreinheit_id); $legesamtnote = new legesamtnote($l->lehreinheit_id);
if ($legesamtnote->load($row_stud->uid, $l->lehreinheit_id)) if ($legesamtnote->load($row_stud->uid, $l->lehreinheit_id))
{ {
$gewicht = $l->gewicht; $gewicht = $l->gewicht;
if ($l->gewicht == '') if ($l->gewicht == '')
$gewicht = 1; $gewicht = 1;
$grades[$row_stud->uid]['grades'][] = array( $grades[$row_stud->uid]['grades'][] = array(
'grade' => $legesamtnote->note, 'grade' => $legesamtnote->note,
'points' => null, 'points' => null,
@@ -1112,7 +1122,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
} }
} }
} }
// Load Addons to modify grades // Load Addons to modify grades
$addon_obj = new addon(); $addon_obj = new addon();
if ($addon_obj->loadAddons()) if ($addon_obj->loadAddons())
@@ -1126,7 +1136,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
} }
} }
} }
$anzahlChanged = 0; $anzahlChanged = 0;
foreach ($grades as $uid => $data) 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($uid) . '</td>
<td>' . $db->convert_html_chars($data['nachname']) . '</td> <td>' . $db->convert_html_chars($data['nachname']) . '</td>
<td>' . $db->convert_html_chars($data['vorname']) . '</td>'; <td>' . $db->convert_html_chars($data['vorname']) . '</td>';
// Bereits eingetragene Note ermitteln // Bereits eingetragene Note ermitteln
if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem)) 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; $note_lv = null;
$punkte_lv = null; $punkte_lv = null;
} }
$notensumme = 0; $notensumme = 0;
$notensumme_gewichtet = 0; $notensumme_gewichtet = 0;
$gewichtsumme = 0; $gewichtsumme = 0;
@@ -1157,7 +1167,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$negativeteilnote = false; $negativeteilnote = false;
$note_zusatztext = ''; $note_zusatztext = '';
$note_zusatztext_tooltip = ''; $note_zusatztext_tooltip = '';
if (isset($data['grades'])) if (isset($data['grades']))
{ {
// Teilnoten summieren und Notenvorschlag berechnen // Teilnoten summieren und Notenvorschlag berechnen
@@ -1173,7 +1183,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$anzahlnoten += 1; $anzahlnoten += 1;
} }
$note_zusatztext_tooltip .= $row_grades['text'] . "\n"; $note_zusatztext_tooltip .= $row_grades['text'] . "\n";
if (isset($noten_array[$row_grades['grade']]) && ! $noten_array[$row_grades['grade']]['positiv']) if (isset($noten_array[$row_grades['grade']]) && ! $noten_array[$row_grades['grade']]['positiv'])
{ {
$negativeteilnote = true; $negativeteilnote = true;
@@ -1186,7 +1196,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$note_zusatztext .= '<br>'; $note_zusatztext .= '<br>';
} }
} }
$punkte_vorschlag = ''; $punkte_vorschlag = '';
if (! is_null($note_lv)) if (! is_null($note_lv))
{ {
@@ -1226,23 +1236,23 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
{ {
$note_vorschlag = null; $note_vorschlag = null;
} }
if ($zeugnisnote = new zeugnisnote($lvid, $uid, $stsem)) if ($zeugnisnote = new zeugnisnote($lvid, $uid, $stsem))
$znote = $zeugnisnote->note; $znote = $zeugnisnote->note;
else else
$znote = null; $znote = null;
if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE) 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 .= '<td style="white-space: nowrap;" title="' . $note_zusatztext_tooltip . '">';
$htmlstring .= $note_zusatztext . '&nbsp;</td>'; $htmlstring .= $note_zusatztext . '&nbsp;</td>';
} }
if (key_exists($uid, $studpruef_arr)) if (key_exists($uid, $studpruef_arr))
$hide = "style='display:none;visibility:hidden;'"; $hide = "style='display:none;visibility:hidden;'";
else else
$hide = "style='display:block;visibility:visible;'"; $hide = "style='display:block;visibility:visible;'";
if (! defined('CIS_GESAMTNOTE_UEBERSCHREIBEN') || CIS_GESAMTNOTE_UEBERSCHREIBEN || (! CIS_GESAMTNOTE_UEBERSCHREIBEN && is_null($znote))) if (! defined('CIS_GESAMTNOTE_UEBERSCHREIBEN') || CIS_GESAMTNOTE_UEBERSCHREIBEN || (! CIS_GESAMTNOTE_UEBERSCHREIBEN && is_null($znote)))
{ {
$htmlstring .= "<td valign='bottom' nowrap> $htmlstring .= "<td valign='bottom' nowrap>
@@ -1289,7 +1299,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$selected = 'selected'; $selected = 'selected';
else else
$selected = ''; $selected = '';
if ($row_note->lehre && $row_note->aktiv) if ($row_note->lehre && $row_note->aktiv)
$htmlstring .= '<option value="' . $row_note->note . '" ' . $selected . '>' . $row_note->bezeichnung_mehrsprachig[$sprache] . '</option>'; $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>'; $htmlstring .= '<td></td>';
} }
if (isset($noten_array[$note_lv]) && $noten_array[$note_lv]['positiv'] == false) if (isset($noten_array[$note_lv]) && $noten_array[$note_lv]['positiv'] == false)
$negmarkier = ' class="negative"'; $negmarkier = ' class="negative"';
else else
$negmarkier = ""; $negmarkier = "";
// LV Note // LV Note
$htmlstring .= '<td align="center" id="note_' . $uid . '"><span ' . $negmarkier . '>'; $htmlstring .= '<td align="center" id="note_' . $uid . '"><span ' . $negmarkier . '>';
if (isset($noten_array[$note_lv])) if (isset($noten_array[$note_lv]))
@@ -1320,7 +1330,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
if ($punkte_lv != '') if ($punkte_lv != '')
$htmlstring .= ' (' . number_format($punkte_lv, 2) . ')'; $htmlstring .= ' (' . number_format($punkte_lv, 2) . ')';
$htmlstring .= '</span></td>'; $htmlstring .= '</span></td>';
// status // status
$htmlstring .= "<td align='center' id='status_$uid'>"; $htmlstring .= "<td align='center' id='status_$uid'>";
if (! $lvgesamtnote->freigabedatum) 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'>"; $htmlstring .= "<img src='../../../../skin/images/changed.png'>";
$anzahlChanged ++; $anzahlChanged ++;
} }
else else
$htmlstring .= "<img src='../../../../skin/images/offen.png'>"; $htmlstring .= "<img src='../../../../skin/images/offen.png'>";
} }
elseif ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum) elseif ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
@@ -1340,22 +1350,22 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
} }
else else
$htmlstring .= "<img src='../../../../skin/images/ok.png'>"; $htmlstring .= "<img src='../../../../skin/images/ok.png'>";
$htmlstring .= "</td>"; $htmlstring .= "</td>";
if (($znote) && ($note_lv != $znote)) if (($znote) && ($note_lv != $znote))
$stylestr = " style='color:red; border-color:red; border-style:solid; border-width:1px;'"; $stylestr = " style='color:red; border-color:red; border-style:solid; border-width:1px;'";
else else
$stylestr = ""; $stylestr = "";
// Zeugnisnote // Zeugnisnote
$htmlstring .= "<td" . $stylestr . " align='center'>"; $htmlstring .= "<td" . $stylestr . " align='center'>";
if (isset($noten_array[$znote])) if (isset($noten_array[$znote]))
$htmlstring .= $noten_array[$znote]['bezeichnung_mehrsprachig'][$sprache]; $htmlstring .= $noten_array[$znote]['bezeichnung_mehrsprachig'][$sprache];
$htmlstring .= "</td>"; $htmlstring .= "</td>";
if (isset($noten_array[$znote]) && $noten_array[$znote]['positiv'] == false) if (isset($noten_array[$znote]) && $noten_array[$znote]['positiv'] == false)
$summe_ng ++; $summe_ng ++;
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2) if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{ {
// Pruefung 2. Termin // 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_punkte = $studpruef_arr[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr[$uid][$le_id_stud]["datum"]; $pr_datum = $studpruef_arr[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud; $pr_le_id = $le_id_stud;
if ($pr_punkte != '') if ($pr_punkte != '')
{ {
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $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 else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$onclick = "pruefungAnlegen('" . $uid . "','" . $pr_datum . "','" . $pr_note . "',"; $onclick = "pruefungAnlegen('" . $uid . "','" . $pr_datum . "','" . $pr_note . "',";
$onclick .= "'" . $pr_le_id . "','" . $pr_punkte . "')"; $onclick .= "'" . $pr_le_id . "','" . $pr_punkte . "')";
$htmlstring .= '<tr> $htmlstring .= '<tr>
<td class="td_datum">' . $pr_datum . '</td> <td class="td_datum">' . $pr_datum . '</td>
<td class="td_note">' . $pr_notenbezeichnung . '</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) if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{ {
// Pruefung 3. Termin // 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_punkte = $studpruef_arr_t3[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_arr_t3[$uid][$le_id_stud]["datum"]; $pr_datum = $studpruef_arr_t3[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud; $pr_le_id = $le_id_stud;
if ($pr_punkte != '') if ($pr_punkte != '')
{ {
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $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 else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$onclick = "pruefungAnlegen('" . $uid . "',"; $onclick = "pruefungAnlegen('" . $uid . "',";
$onclick .= "'" . $pr_datum . "','" . $pr_note . "','" . $pr_le_id . "','" . $pr_punkte . "','Termin3')"; $onclick .= "'" . $pr_datum . "','" . $pr_note . "','" . $pr_le_id . "','" . $pr_punkte . "','Termin3')";
$htmlstring .= '<tr> $htmlstring .= '<tr>
<td class="td_datum">' . $pr_datum . '</td> <td class="td_datum">' . $pr_datum . '</td>
<td class="td_note">' . $pr_notenbezeichnung . '</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>"; $htmlstring .= "<td colspan='2'></td>";
} }
} }
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF) if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{ {
// komm Pruefung // 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_punkte = $studpruef_komm[$uid][$le_id_stud]["punkte"];
$pr_datum = $studpruef_komm[$uid][$le_id_stud]["datum"]; $pr_datum = $studpruef_komm[$uid][$le_id_stud]["datum"];
$pr_le_id = $le_id_stud; $pr_le_id = $le_id_stud;
if ($pr_punkte != '') if ($pr_punkte != '')
{ {
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $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 else
$pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache]; $pr_notenbezeichnung = $noten_array[$pr_note]['bezeichnung_mehrsprachig'][$sprache];
$htmlstring .= ' $htmlstring .= '
<tr> <tr>
<td class="td_datum">' . $pr_datum . '</td> <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 .= "<td colspan='2'></td>";
} }
} }
$htmlstring .= "</tr>"; $htmlstring .= "</tr>";
$i ++; $i ++;
} }
+76 -73
View File
@@ -45,47 +45,47 @@ if(!check_lektor($uid))
if (!$db = new basis_db()) if (!$db = new basis_db())
die('Fehler beim Herstellen der Datenbankverbindung'); die('Fehler beim Herstellen der Datenbankverbindung');
if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
$lvid=$_GET['lvid']; $lvid=$_GET['lvid'];
else else
die("Fehlerhafte Parameteruebergabe"); die("Fehlerhafte Parameteruebergabe");
if(isset($_GET['stg']) && is_numeric($_GET['stg'])) if(isset($_GET['stg']) && is_numeric($_GET['stg']))
$stg=$_GET['stg']; $stg=$_GET['stg'];
else else
die("Fehlerhafte Parameteruebergabe"); die("Fehlerhafte Parameteruebergabe");
if(isset($_GET['gruppe_kurzbz'])) if(isset($_GET['gruppe_kurzbz']))
$gruppe_kurzbz = $_GET['gruppe_kurzbz']; $gruppe_kurzbz = $_GET['gruppe_kurzbz'];
else else
$gruppe_kurzbz = ''; $gruppe_kurzbz = '';
if(isset($_GET['sem']) && is_numeric($_GET['sem'])) if(isset($_GET['sem']) && is_numeric($_GET['sem']))
$sem = $_GET['sem']; $sem = $_GET['sem'];
else else
$sem = ''; $sem = '';
if(isset($_GET['verband'])) if(isset($_GET['verband']))
$verband = $_GET['verband']; $verband = $_GET['verband'];
else else
$verband = ''; $verband = '';
if(isset($_GET['gruppe']) && is_numeric($_GET['gruppe'])) if(isset($_GET['gruppe']) && is_numeric($_GET['gruppe']))
$gruppe = $_GET['gruppe']; $gruppe = $_GET['gruppe'];
else else
$gruppe = ''; $gruppe = '';
if(isset($_GET['stsem'])) if(isset($_GET['stsem']))
$stsem = $_GET['stsem']; $stsem = $_GET['stsem'];
else else
die('Studiensemester muss uebergeben werden'); die('Studiensemester muss uebergeben werden');
if(isset($_GET['lehreinheit_id'])) if(isset($_GET['lehreinheit_id']))
$lehreinheit_id = $_GET['lehreinheit_id']; $lehreinheit_id = $_GET['lehreinheit_id'];
else else
$lehreinheit_id = ''; $lehreinheit_id = '';
/* /*
* Create Excel File * Create Excel File
*/ */
@@ -93,7 +93,7 @@ else
// Creating a workbook // Creating a workbook
$workbook = new Spreadsheet_Excel_Writer(); $workbook = new Spreadsheet_Excel_Writer();
$workbook->setVersion(8); $workbook->setVersion(8);
// sending HTTP headers // sending HTTP headers
$workbook->send($p->t('anwesenheitsliste/notenliste'). "_" . date("d_m_Y") . ".xls"); $workbook->send($p->t('anwesenheitsliste/notenliste'). "_" . date("d_m_Y") . ".xls");
$workbook->setCustomColor (15,192,192,192); //Setzen der HG-Farbe Hellgrau $workbook->setCustomColor (15,192,192,192); //Setzen der HG-Farbe Hellgrau
@@ -105,12 +105,12 @@ else
$format_bold =& $workbook->addFormat(); $format_bold =& $workbook->addFormat();
$format_bold->setBold(); $format_bold->setBold();
$format_highlight =& $workbook->addFormat(); $format_highlight =& $workbook->addFormat();
$format_highlight->setFgColor(15); $format_highlight->setFgColor(15);
$format_highlight->setBorder(1); $format_highlight->setBorder(1);
$format_highlight->setBorderColor('white'); $format_highlight->setBorderColor('white');
$format_border_bottom =& $workbook->addFormat(); $format_border_bottom =& $workbook->addFormat();
$format_border_bottom ->setBottom(2); $format_border_bottom ->setBottom(2);
$format_border_bottom->setBold(); $format_border_bottom->setBold();
@@ -124,17 +124,17 @@ else
$format_title->setAlign('merge'); $format_title->setAlign('merge');
$lvobj = new lehrveranstaltung($lvid); $lvobj = new lehrveranstaltung($lvid);
$worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold); $worksheet->write(0,0,$p->t('anwesenheitsliste/notenliste')." ".($sprache=='English'?$lvobj->bezeichnung_english:$lvobj->bezeichnung),$format_bold);
$stg_obj = new studiengang($stg); $stg_obj = new studiengang($stg);
$qry = "SELECT $qry = "SELECT
distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, distinct on(kuerzel, semester, verband, gruppe, gruppe_kurzbz) UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel,
semester, verband, gruppe, gruppe_kurzbz semester, verband, gruppe, gruppe_kurzbz
FROM FROM
campus.vw_lehreinheit campus.vw_lehreinheit
WHERE WHERE
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem);
if($lehreinheit_id!='') if($lehreinheit_id!='')
$qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
@@ -152,26 +152,26 @@ else
$gruppen.=$row->gruppe_kurzbz; $gruppen.=$row->gruppe_kurzbz;
} }
} }
$worksheet->write(1,0,$p->t('global/studiengang').": $stg_obj->bezeichnung $gruppen"); $worksheet->write(1,0,$p->t('global/studiengang').": $stg_obj->bezeichnung $gruppen");
$lines=2; $lines=2;
//Lektoren ermitteln //Lektoren ermitteln
$qry = "SELECT $qry = "SELECT
distinct vorname, nachname distinct vorname, nachname
FROM FROM
campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter campus.vw_benutzer, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE WHERE
uid=mitarbeiter_uid AND uid=mitarbeiter_uid AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
studiensemester_kurzbz=".$db->db_add_param($stsem); studiensemester_kurzbz=".$db->db_add_param($stsem);
if($lehreinheit_id!='') if($lehreinheit_id!='')
$qry.=" AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); $qry.=" AND tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname'; $qry.=' ORDER BY nachname, vorname';
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
{ {
while($row=$db->db_fetch_object($result)) while($row=$db->db_fetch_object($result))
@@ -183,42 +183,43 @@ else
//Studenten holen //Studenten holen
$lines++; $lines++;
$worksheet->write($lines,1,$p->t('global/nachname'),$format_border_bottom); $worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/vorname'),$format_border_bottom); $worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
$worksheet->write($lines,3,$p->t('global/gruppe'),$format_border_bottom); $worksheet->write($lines,3,$p->t('global/vorname'),$format_border_bottom);
$worksheet->write($lines,4,$p->t('global/personenkennzeichen'),$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) 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 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 = new studiensemester();
$stsem_obj->load($stsem); $stsem_obj->load($stsem);
$stsemdatumvon = $stsem_obj->start; $stsemdatumvon = $stsem_obj->start;
$stsemdatumbis = $stsem_obj->ende; $stsemdatumbis = $stsem_obj->ende;
$qry = "SELECT $qry = "SELECT
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid, 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, 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, (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_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von,
tbl_zeugnisnote.note tbl_zeugnisnote.note
FROM FROM
campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) 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) 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 public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz)
LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
WHERE WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem); vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);
if($lehreinheit_id!='') if($lehreinheit_id!='')
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); $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'; $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC';
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
{ {
$i=1; $i=1;
@@ -226,36 +227,37 @@ else
while($elem = $db->db_fetch_object($result)) while($elem = $db->db_fetch_object($result))
{ {
if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10) if(!preg_match('*dummy*',$elem->uid) && $elem->semester!=10)
{ {
if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher') if($elem->status!='Abbrecher' && $elem->status!='Unterbrecher')
{ {
$worksheet->write($lines,0,$i); $worksheet->write($lines,0,$i);
if($elem->status=='Incoming') if($elem->status=='Incoming')
$inc=' (i)'; $inc=' (i)';
else else
$inc=''; $inc='';
if($elem->bisio_id!='' && $elem->status!='Incoming' && ($elem->bis > $stsemdatumvon || $elem->bis=='') && $elem->von < $stsemdatumbis) //Outgoing if($elem->bisio_id!='' && $elem->status!='Incoming' && ($elem->bis > $stsemdatumvon || $elem->bis=='') && $elem->von < $stsemdatumbis) //Outgoing
$inc.=' (o)'; $inc.=' (o)';
if($elem->note==6) //angerechnet if($elem->note==6) //angerechnet
{ {
$inc.=' (ar)'; $inc.=' (ar)';
$note='ar'; $note='ar';
} }
else else
$note=''; $note='';
$worksheet->write($lines,1,$elem->nachname.$inc); $worksheet->write($lines,1,$elem->uid);
$worksheet->write($lines,2,$elem->vorname); $worksheet->write($lines,2,$elem->nachname.$inc);
$worksheet->write($lines,3,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"'); $worksheet->write($lines,3,$elem->vorname);
$worksheet->write($lines,4,'="'.trim($elem->matrikelnr).'"',$format_highlight); $worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,$note,$format_highlight); $worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6,$note,$format_highlight);
$i++; $i++;
$lines++; $lines++;
} }
} }
} }
} }
//Noten //Noten
$note = new note(); $note = new note();
$note->getAll(); $note->getAll();
@@ -266,8 +268,8 @@ else
$aufteilung = array(); $aufteilung = array();
foreach($notenschluessel->result as $row) foreach($notenschluessel->result as $row)
$aufteilung[$row->note]=$row->punkte; $aufteilung[$row->note]=$row->punkte;
$worksheet->write(++$lines,0,$p->t('benotungstool/note').":"); $worksheet->write(++$lines,0,$p->t('benotungstool/note').":");
foreach($note->result as $row) foreach($note->result as $row)
{ {
@@ -285,19 +287,20 @@ else
$worksheet->write(++$lines,0,$row->bezeichnung.' ('.$row->anmerkung.')'); $worksheet->write(++$lines,0,$row->bezeichnung.' ('.$row->anmerkung.')');
} }
} }
$worksheet->writeBlank(++$lines,0,0); $worksheet->writeBlank(++$lines,0,0);
$worksheet->writeBlank(++$lines,0,$format_highlight); $worksheet->writeBlank(++$lines,0,$format_highlight);
$worksheet->write($lines,1,'...'.$p->t('anwesenheitsliste/anleitungImportFunktion')); $worksheet->write($lines,1,'...'.$p->t('anwesenheitsliste/anleitungImportFunktion'));
$lines++; $lines++;
$worksheet->write(++$lines,0,'(i) ... Incoming'); $worksheet->write(++$lines,0,'(i) ... Incoming');
$worksheet->write(++$lines,0,'(o) ... Outgoing'); $worksheet->write(++$lines,0,'(o) ... Outgoing');
$worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet')); $worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet'));
$worksheet->setColumn(0, 0, 5); $worksheet->setColumn(0, 0, 5);
$worksheet->setColumn(1, 1, 25); $worksheet->setColumn(0, 1, 16);
$worksheet->setColumn(2, 2, 25); $worksheet->setColumn(0, 2, 25);
$worksheet->setColumn(3, 3, 7); $worksheet->setColumn(0, 3, 25);
$worksheet->setColumn(4, 4, 21); $worksheet->setColumn(0, 4, 7);
$worksheet->setColumn(0, 5, 21);
$workbook->close(); $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('../../../config/global.config.inc.php');
require_once('../../../include/functions.inc.php'); require_once('../../../include/functions.inc.php');
require_once('../../../include/globals.inc.php'); require_once('../../../include/globals.inc.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/studiengang.class.php'); require_once('../../../include/studiengang.class.php');
require_once('../../../include/studienordnung.class.php'); require_once('../../../include/studienordnung.class.php');
require_once('../../../include/person.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/addon.class.php');
require_once('../../../include/gruppe.class.php'); require_once('../../../include/gruppe.class.php');
require_once('../../../include/adresse.class.php'); require_once('../../../include/adresse.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
$sprache = getSprache(); $sprache = getSprache();
$p = new phrasen($sprache); $p = new phrasen($sprache);
@@ -51,14 +53,21 @@ if (!$db = new basis_db())
$uid = get_uid(); $uid = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$datum_obj = new datum(); $datum_obj = new datum();
$ansicht = false; //Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) // Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) sollen bestimmte persönliche Daten nicht angezeigt werden
if (isset($_GET['uid'])) // außer der User selber oder berechtigte Personen
$ansicht = false;
if (isset($_GET['uid']) && $_GET['uid'] != $uid)
{ {
$uid = stripslashes($_GET['uid']); $uid = stripslashes($_GET['uid']);
$ansicht = true; $ansicht = true;
} }
if ($rechte->isBerechtigt('basis/kontakt'))
$ansicht = false;
if (!$ansicht && isset($_GET['action'])) if (!$ansicht && isset($_GET['action']))
{ {
@@ -230,7 +239,10 @@ echo '</td><td width="30%" valign="top">';
echo ' echo '
<b>'.($type == "student"?$p->t("profil/student"):$p->t('profil/mitarbeiter')).'</b><br><br> <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/anrede').': '.$user->anrede.'<br>
'.$p->t('global/titel').': '.$user->titelpre.' <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/telefonTw').": $vorwahl - $user->telefonklappe<BR>";
//echo $p->t('profil/faxTw').": $vorwahl - 99 $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 != '') if ($user->ort_kurzbz != '')
echo $p->t('profil/buero').': '.$user->ort_kurzbz.'<br>'; echo $p->t('profil/buero').': '.$user->ort_kurzbz.'<br>';
} }
@@ -400,9 +422,24 @@ if (!$ansicht)
$kontakt = new kontakt(); $kontakt = new kontakt();
$kontakt->load_pers($user->person_id); $kontakt->load_pers($user->person_id);
usort($kontakt->result, "sortKontakt"); usort($kontakt->result, "sortKontakt");
echo '<table>';
foreach($kontakt->result as $k) 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) if ($k->zustellung === TRUE)
{ {
switch($k->kontakttyp) switch($k->kontakttyp)
@@ -420,7 +457,9 @@ if (!$ansicht)
break; break;
} }
} }
*/
} }
echo '</table>';
} }
if ($user->homepage != '') 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"> <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/tablesort.css" type="text/css"/>
<link rel="stylesheet" href="../../../skin/style.css.php" 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.php');
include('../../../include/meta/jquery-tablesorter.php'); include('../../../include/meta/jquery-tablesorter.php');
@@ -158,7 +158,7 @@ function searchPerson($searchItems)
{ {
$bisverwendung = new bisverwendung(); $bisverwendung = new bisverwendung();
$bisverwendung->getLastAktVerwendung($row->uid); $bisverwendung->getLastAktVerwendung($row->uid);
echo '<tr>'; echo '<tr>';
//echo '<td>',$row->titelpre,'</td>'; //echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->anrede,'</td>'; echo '<td>',$row->anrede,'</td>';
@@ -171,8 +171,47 @@ function searchPerson($searchItems)
echo '</td>'; echo '</td>';
//echo '<td>',$row->titelpost,'</td>'; //echo '<td>',$row->titelpost,'</td>';
echo '<td>',($row->studiengang!=''?$row->studiengang:'-'),'</td>'; echo '<td>',($row->studiengang!=''?$row->studiengang:'-'),'</td>';
echo '<td>',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'</td>'; echo '<td>',($row->mitarbeiter_uid==NULL?'StudentIn':'MitarbeiterIn'),'</td>';
echo '<td>',($row->telefonklappe!=''?$row->telefonklappe:'-'),'</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>'; echo '<td>',($row->raum!=''?$row->raum:'-'),'</td>';
if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) if($row->alias!='' && !in_array($row->studiengang_kz, $noalias))
$mail = $row->alias.'@'.DOMAIN; $mail = $row->alias.'@'.DOMAIN;
@@ -271,9 +310,46 @@ function searchOE($searchItems)
echo '<td>'.$bf->bezeichnung; echo '<td>'.$bf->bezeichnung;
if($bisverwendung->beschausmasscode=='5') if($bisverwendung->beschausmasscode=='5')
echo '<span style="color: orange"> (karenziert)</span>'; echo '<span style="color: orange"> (karenziert)</span>';
echo '</td>'; echo '</td>';
echo '<td>',($mitarbeiter->telefonklappe!=''?$kontakt->kontakt.'-'.$mitarbeiter->telefonklappe:'-'),'</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>'; echo '<td>',($mitarbeiter->ort_kurzbz!=''?$mitarbeiter->ort_kurzbz:'-'),'</td>';
//if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias? //if($row->alias!='' && !in_array($row->studiengang_kz, $noalias)) ??? Was macht $noalias?
if($person->alias!='') if($person->alias!='')
+1 -1
View File
@@ -1087,7 +1087,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
$summe=0; $summe=0;
$dr = new zeitaufzeichnung(); $dr = new zeitaufzeichnung();
$dr->getDienstreisenUser($user); $dr->getDienstreisenUser($user, 180);
$dr_arr = $dr->result; $dr_arr = $dr->result;
//var_dump($dr->result); //var_dump($dr->result);
@@ -62,7 +62,7 @@ $daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$date = new datum(); $date = new datum();
$ztauf = new zeitaufzeichnung(); $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); $ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$daysinmonth, $activitiesToIgnore);
//objects for one projectline of list (corresponds to one day) //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 // Vertraege fuer Pruefungshonorare anzulegen
define('FAS_GESAMTNOTE_PRUEFUNGSHONORAR',false); 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 // Grenzwerte für Anwesenheit
define('FAS_ANWESENHEIT_ROT', 70); define('FAS_ANWESENHEIT_ROT', 70);
define('FAS_ANWESENHEIT_GELB', 90); define('FAS_ANWESENHEIT_GELB', 90);
+100 -116
View File
@@ -22,7 +22,6 @@
require_once('../../config/vilesci.config.inc.php'); require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php'); require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php'); require_once('../../include/studiengang.class.php');
require_once('../../include/fachbereich.class.php');
require_once('../../include/Excel/excel.php'); require_once('../../include/Excel/excel.php');
require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/benutzerberechtigung.class.php');
@@ -45,24 +44,31 @@ $stg_arr = array();
foreach ($studiengang->result as $row) foreach ($studiengang->result as $row)
$stg_arr[$row->studiengang_kz] = $row->kuerzel.' ('.$row->kurzbzlang.')'; $stg_arr[$row->studiengang_kz] = $row->kuerzel.' ('.$row->kurzbzlang.')';
$fachbereich = new fachbereich(); $oe_obj = new organisationseinheit();
$fachbereich->getAll(); $oe_obj->getTypen();
foreach($oe_obj->result as $row)
{
$oetyp_arr[$row->organisationseinheittyp_kurzbz] = $row->bezeichnung;
}
$fb_arr = array(); $oe_obj = new organisationseinheit();
foreach ($fachbereich->result as $row) $oe_obj->getAll();
$fb_arr[$row->fachbereich_kurzbz]=$row->bezeichnung;
$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(); $db = new basis_db();
// ALVS pro Fachbereich // ALVS pro OE
$qry = " $qry = "
SELECT * FROM ( SELECT * FROM (
SELECT 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 FROM
lehre.tbl_lehreinheit, lehre.tbl_lehreinheit,
lehre.tbl_lehrveranstaltung, lehre.tbl_lehrveranstaltung,
lehre.tbl_lehrveranstaltung as lehrfach, lehre.tbl_lehrveranstaltung as lehrfach,
public.tbl_fachbereich,
lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheitmitarbeiter,
public.tbl_benutzer, public.tbl_benutzer,
public.tbl_person public.tbl_person
@@ -73,28 +79,27 @@ SELECT * FROM (
tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid = tbl_benutzer.uid AND
tbl_benutzer.person_id = tbl_person.person_id AND tbl_benutzer.person_id = tbl_person.person_id AND
tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND tbl_lehreinheitmitarbeiter.semesterstunden<>0 AND
tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND
faktor<>0 AND faktor<>0 AND
stundensatz<>0 AND stundensatz<>0 AND
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id 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) ) 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)) if(!$db->db_query($qry))
die('Fehler bei Datenbankabfrage'); die('Fehler bei Datenbankabfrage');
$fachbereiche = array(); $organisationseinheiten = array();
while($row = $db->db_fetch_object()) while($row = $db->db_fetch_object())
{ {
if(!in_array($row->fachbereich_kurzbz, $fachbereiche)) if(!in_array($row->lehrfach_oe_kurzbz, $organisationseinheiten))
$fachbereiche[] = $row->fachbereich_kurzbz; $organisationseinheiten[] = $row->lehrfach_oe_kurzbz;
$data[$row->studiengang_kz][$row->fachbereich_kurzbz][$row->geschlecht]=$row->semesterstunden; $data[$row->studiengang_kz][$row->lehrfach_oe_kurzbz][$row->geschlecht]=$row->semesterstunden;
} }
sort($fachbereiche); sort($organisationseinheiten);
//Betreuerstunden //Betreuerstunden
$qry = " $qry = "
@@ -138,7 +143,6 @@ if($format=='xls')
//Formate Definieren //Formate Definieren
$format_bold =& $workbook->addFormat(); $format_bold =& $workbook->addFormat();
$format_bold->setBold(); $format_bold->setBold();
//$format_bold->setBorder(1);
$format_border =& $workbook->addFormat(); $format_border =& $workbook->addFormat();
$format_border->setBorder(1); $format_border->setBorder(1);
@@ -147,19 +151,19 @@ if($format=='xls')
$format_rotate->setTextRotation(270); $format_rotate->setTextRotation(270);
$format_rotate->setAlign("center"); $format_rotate->setAlign("center");
$format_rotate->setBold(); $format_rotate->setBold();
$format_m_w =& $workbook->addFormat(); $format_m_w =& $workbook->addFormat();
$format_m_w->setAlign("center"); $format_m_w->setAlign("center");
$format_m_w->setBold(); $format_m_w->setBold();
$format_data =& $workbook->addFormat(); $format_data =& $workbook->addFormat();
$format_data->setNumFormat("0.00"); $format_data->setNumFormat("0.00");
$format_bold_data =& $workbook->addFormat(); $format_bold_data =& $workbook->addFormat();
$format_bold_data->setBold(); $format_bold_data->setBold();
$format_bold_data->setNumFormat("0.00"); $format_bold_data->setNumFormat("0.00");
$format_bold_data->setVAlign("vcenter"); $format_bold_data->setVAlign("vcenter");
$format_bold_center_data =& $workbook->addFormat(); $format_bold_center_data =& $workbook->addFormat();
$format_bold_center_data->setBold(); $format_bold_center_data->setBold();
$format_bold_center_data->setNumFormat("0.00"); $format_bold_center_data->setNumFormat("0.00");
@@ -168,59 +172,45 @@ if($format=='xls')
$spalte=0; $spalte=0;
$zeile=0; $zeile=0;
$worksheet->write($zeile,$spalte,$stsem, $format_bold); $worksheet->write($zeile,$spalte,$stsem, $format_bold);
$maxlength[$spalte]=13; $maxlength[$spalte]=13;
$summe_fb = array(); $summe_oe = array();
foreach ($fachbereiche as $fb) foreach ($organisationseinheiten as $oe)
{ {
$zeile=0; $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); $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,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w); $worksheet->write($zeile,++$spalte,'w',$format_m_w);
//$fachbereiche[$fb]=$spalte; $summe_oe[$oe]=array();
$summe_fb[$fb]=array();
//++$spalte;
$maxlength[$spalte]=7; $maxlength[$spalte]=7;
$maxlength[$spalte-1]=7; $maxlength[$spalte-1]=7;
} }
$zeile=0; $zeile=0;
$worksheet->write($zeile,++$spalte,'Betreuungen', $format_rotate); $worksheet->write($zeile,++$spalte,'Betreuungen', $format_rotate);
$worksheet->mergeCells($zeile,$spalte,0,$spalte+1); $worksheet->mergeCells($zeile,$spalte,0,$spalte+1);
$worksheet->write(++$zeile,$spalte,'m',$format_m_w); $worksheet->write(++$zeile,$spalte,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w); $worksheet->write($zeile,++$spalte,'w',$format_m_w);
$maxlength[$spalte]=7; $maxlength[$spalte]=7;
$maxlength[$spalte-1]=7; $maxlength[$spalte-1]=7;
$fachbereiche['betreuungen']=$spalte-1; $organisationseinheiten_idx['betreuungen']=$spalte-1;
//$maxlength[$spalte]=3; $summe_oe['betreuungen']=array();
$summe_fb['betreuungen']=array();
//++$spalte;
$zeile=0; $zeile=0;
$worksheet->write($zeile,++$spalte,'Summe', $format_rotate); $worksheet->write($zeile,++$spalte,'Summe', $format_rotate);
$worksheet->mergeCells($zeile,$spalte,0,$spalte+2); $worksheet->mergeCells($zeile,$spalte,0,$spalte+2);
$worksheet->write(++$zeile,$spalte,'m',$format_m_w); $worksheet->write(++$zeile,$spalte,'m',$format_m_w);
$worksheet->write($zeile,++$spalte,'w',$format_m_w); $worksheet->write($zeile,++$spalte,'w',$format_m_w);
$worksheet->write($zeile,++$spalte,'Gesamt',$format_m_w); $worksheet->write($zeile,++$spalte,'Gesamt',$format_m_w);
$maxspalten=$spalte; $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)) if(isset($data))
{ {
@@ -231,27 +221,23 @@ if($format=='xls')
$worksheet->write($zeile,$spalte,$stg_arr[$key], $format_bold); $worksheet->write($zeile,$spalte,$stg_arr[$key], $format_bold);
$summe_m=0; $summe_m=0;
$summe_w=0; $summe_w=0;
foreach ($data[$key] as $fb=>$stunden) foreach ($data[$key] as $oe=>$stunden)
{ {
if(!isset($stunden['m'])) if(!isset($stunden['m']))
$stunden['m']=0; $stunden['m']=0;
$summe_m+=$stunden['m']; $summe_m+=$stunden['m'];
if(!isset($summe_fb[$fb]['m'])) if(!isset($summe_oe[$oe]['m']))
$summe_fb[$fb]['m']=0; $summe_oe[$oe]['m']=0;
$summe_fb[$fb]['m']+=$stunden['m']; $summe_oe[$oe]['m']+=$stunden['m'];
$worksheet->write($zeile,$fachbereiche[$fb],$stunden['m'],$format_data); $worksheet->write($zeile,$organisationseinheiten_idx[$oe],$stunden['m'],$format_data);
//if($maxlength[$fachbereiche[$fb]]<strlen($stunden['m']))
// $maxlength[$fachbereiche[$fb]]=strlen($stunden['m']);
if(!isset($stunden['w'])) if(!isset($stunden['w']))
$stunden['w']=0; $stunden['w']=0;
$summe_w+=$stunden['w']; $summe_w+=$stunden['w'];
if(!isset($summe_fb[$fb]['w'])) if(!isset($summe_oe[$oe]['w']))
$summe_fb[$fb]['w']=0; $summe_oe[$oe]['w']=0;
$summe_fb[$fb]['w']+=$stunden['w']; $summe_oe[$oe]['w']+=$stunden['w'];
$worksheet->write($zeile,$fachbereiche[$fb]+1,$stunden['w'],$format_data); $worksheet->write($zeile,$organisationseinheiten_idx[$oe]+1,$stunden['w'],$format_data);
//if($maxlength[$fachbereiche[$fb]]<strlen($stunden['w']))
// $maxlength[$fachbereiche[$fb]]=strlen($stunden['w']);
} }
$worksheet->write($zeile,$maxspalten-2,number_format($summe_m,2,'.',''), $format_bold_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); $worksheet->write($zeile,$maxspalten-1,number_format($summe_w,2,'.',''), $format_bold_data);
@@ -264,20 +250,20 @@ if($format=='xls')
$zeile++; $zeile++;
$worksheet->write($zeile,0,'Summe', $format_bold_data); $worksheet->write($zeile,0,'Summe', $format_bold_data);
$worksheet->mergeCells($zeile,0,$zeile+1,0); $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'])) if(!isset($summe['m']))
$summe['m']=0; $summe['m']=0;
if(!isset($summe['w'])) if(!isset($summe['w']))
$summe['w']=0; $summe['w']=0;
if(isset($fachbereiche[$fb])) if(isset($organisationseinheiten_idx[$oe]))
$worksheet->write($zeile,$fachbereiche[$fb],number_format($summe['m'],2,'.',''), $format_bold_center_data); $worksheet->write($zeile,$organisationseinheiten_idx[$oe],number_format($summe['m'],2,'.',''), $format_bold_center_data);
$worksheet->write($zeile,$fachbereiche[$fb]+1,number_format($summe['w'],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']; $gesamt = $summe['m']+$summe['w'];
$worksheet->write(++$zeile,$fachbereiche[$fb],number_format($gesamt,2,'.',''), $format_bold_center_data); $worksheet->write(++$zeile,$organisationseinheiten_idx[$oe],number_format($gesamt,2,'.',''), $format_bold_center_data);
$worksheet->mergeCells($zeile,$fachbereiche[$fb],$zeile,$fachbereiche[$fb]+1); $worksheet->mergeCells($zeile,$organisationseinheiten_idx[$oe],$zeile,$organisationseinheiten_idx[$oe]+1);
--$zeile; --$zeile;
} }
@@ -303,72 +289,70 @@ else
} }
td td
{ {
} }
</style> </style>
</head> </head>
<body class="Background_main">'; <body class="Background_main">';
echo "<h2>ALVS $stsem</h2>"; echo "<h2>ALVS $stsem</h2>";
echo '<table class="liste" style="border: 1px solid black" rules="all" cellspacing="0">'; echo '<table class="liste" style="border: 1px solid black" rules="all" cellspacing="0">';
echo '<tr class="liste"><th>'.$stsem.'</th>'; 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>"; echo "<th colspan='2'>".$oe_arr[$oe]."</th>";
$summe_fb[$fb]=array(); $summe_oe[$oe]=array();
} }
echo "<th colspan='2'>Betreuungen</th>"; echo "<th colspan='2'>Betreuungen</th>";
$summe_fb['betreuungen']=array(); $summe_oe['betreuungen']=array();
echo "<th colspan='3'>Summe</th>"; echo "<th colspan='3'>Summe</th>";
echo "</tr>"; echo "</tr>";
// Spalten m/w // Spalten m/w
echo '<tr class="liste"><td>&nbsp;</td>'; 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: 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%'>m</td>";
echo "<td style='text-align:center; font-weight: bold; width: 33%'>w</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%'>m</td>";
echo "<td style='text-align:center; font-weight: bold; width: 33%'>w</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 "<td style='text-align:center; font-weight: bold'>Gesamt</td>";
echo "</tr>"; echo "</tr>";
// Für jeden Fachbereich eine Variable definieren // Für jede OE eine Variable definieren
foreach ($fachbereiche as $fb) foreach ($organisationseinheiten as $oe)
{ {
$summe_fb[$fb]["m"] = 0; $summe_oe[$oe]["m"] = 0;
$summe_fb[$fb]["w"] = 0; $summe_oe[$oe]["w"] = 0;
} }
$summe_fb['betreuungen']['m'] = 0; $summe_oe['betreuungen']['m'] = 0;
$summe_fb['betreuungen']['w'] = 0; $summe_oe['betreuungen']['w'] = 0;
foreach ($data as $key=>$val) foreach ($data as $key=>$val)
{ {
echo "<tr>"; echo "<tr>";
echo "<td>".$stg_arr[$key]."</td>"; echo "<td>".$stg_arr[$key]."</td>";
$summe_m =0; $summe_m =0;
$summe_w =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_m+=$data[$key][$oe]["m"];
$summe_fb[$fb]["m"]+=$data[$key][$fb]["m"]; $summe_oe[$oe]["m"]+=$data[$key][$oe]["m"];
echo "<td>".$data[$key][$fb]["m"]."</td>"; echo "<td>".$data[$key][$oe]["m"]."</td>";
} }
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
if(isset($data[$key][$fb]["w"])) if(isset($data[$key][$oe]["w"]))
{ {
$summe_w+=$data[$key][$fb]["w"]; $summe_w+=$data[$key][$oe]["w"];
$summe_fb[$fb]["w"]+=$data[$key][$fb]["w"]; $summe_oe[$oe]["w"]+=$data[$key][$oe]["w"];
echo "<td>".$data[$key][$fb]["w"]."</td>"; echo "<td>".$data[$key][$oe]["w"]."</td>";
} }
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
@@ -376,7 +360,7 @@ else
if(isset($data[$key]['betreuungen']['m'])) if(isset($data[$key]['betreuungen']['m']))
{ {
echo "<td>".number_format($data[$key]['betreuungen']['m'],2)."</td>"; 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']; $summe_m+=$data[$key]['betreuungen']['m'];
} }
else else
@@ -384,7 +368,7 @@ else
if(isset($data[$key]['betreuungen']['w'])) if(isset($data[$key]['betreuungen']['w']))
{ {
echo "<td>".number_format($data[$key]['betreuungen']['w'],2)."</td>"; 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']; $summe_w+=$data[$key]['betreuungen']['w'];
} }
else else
@@ -398,44 +382,44 @@ else
echo "<tr>"; echo "<tr>";
echo "<td rowspan='2'>Summe</td>"; echo "<td rowspan='2'>Summe</td>";
foreach ($fachbereiche as $fb) foreach ($organisationseinheiten as $oe)
{ {
if(isset($summe_fb[$fb]["m"])) if(isset($summe_oe[$oe]["m"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_fb[$fb]["m"]."</td>"; echo "<td style='text-align:center; font-weight: bold'>".$summe_oe[$oe]["m"]."</td>";
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
if(isset($summe_fb[$fb]["w"])) if(isset($summe_oe[$oe]["w"]))
echo "<td style='text-align:center; font-weight: bold'>".$summe_fb[$fb]["w"]."</td>"; echo "<td style='text-align:center; font-weight: bold'>".$summe_oe[$oe]["w"]."</td>";
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
} }
if(isset($summe_fb['betreuungen']['m'])) if(isset($summe_oe['betreuungen']['m']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_fb['betreuungen']['m'],2)."</td>"; echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_oe['betreuungen']['m'],2)."</td>";
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
if(isset($summe_fb['betreuungen']['w'])) if(isset($summe_oe['betreuungen']['w']))
echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_fb['betreuungen']['w'],2)."</td>"; echo "<td style='text-align:center; font-weight: bold'>".number_format($summe_oe['betreuungen']['w'],2)."</td>";
else else
echo "<td>&nbsp;</td>"; echo "<td>&nbsp;</td>";
echo "<td colspan='3'>&nbsp;</td>"; echo "<td colspan='3'>&nbsp;</td>";
echo "</tr>"; echo "</tr>";
echo "<tr>"; echo "<tr>";
//echo "<td></td>"; //echo "<td></td>";
foreach ($fachbereiche as $fb) foreach ($organisationseinheiten as $oe)
{ {
if(isset($summe_fb[$fb]["m"]) || isset($summe_fb[$fb]["w"])) if(isset($summe_oe[$oe]["m"]) || isset($summe_oe[$oe]["w"]))
echo "<td colspan='2' style='text-align:center; font-weight: bold'>".($summe_fb[$fb]["m"] + $summe_fb[$fb]["w"])."</td>"; echo "<td colspan='2' style='text-align:center; font-weight: bold'>".($summe_oe[$oe]["m"] + $summe_oe[$oe]["w"])."</td>";
else else
echo "<td colspan='2'>&nbsp;</td>"; echo "<td colspan='2'>&nbsp;</td>";
} }
if(isset($summe_fb['betreuungen']['m']) || isset($summe_fb['betreuungen']['w'])) 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_fb['betreuungen']['m'] + $summe_fb['betreuungen']['w']),2)."</td>"; echo "<td colspan='2' style='text-align:center; font-weight: bold'>".number_format(($summe_oe['betreuungen']['m'] + $summe_oe['betreuungen']['w']),2)."</td>";
else else
echo "<td colspan='2'>&nbsp;</td>"; echo "<td colspan='2'>&nbsp;</td>";
echo "<td colspan='3'>&nbsp;</td>"; echo "<td colspan='3'>&nbsp;</td>";
echo "</tr>"; echo "</tr>";
echo '</table>'; echo '</table>';
echo '</body> echo '</body>
</html>'; </html>';
+16 -5
View File
@@ -25,6 +25,7 @@ require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/studiengang.class.php'); require_once('../../include/studiengang.class.php');
require_once('../../include/person.class.php'); require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php'); require_once('../../include/benutzer.class.php');
require_once('../../include/benutzerberechtigung.class.php');
if(isset($_GET['studiengang_kz'])) if(isset($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz']; $studiengang_kz = $_GET['studiengang_kz'];
@@ -43,12 +44,18 @@ else
if(isset($_GET['oe_kurzbz'])) if(isset($_GET['oe_kurzbz']))
$oe_kurzbz = $_GET['oe_kurzbz']; $oe_kurzbz = $_GET['oe_kurzbz'];
else else
$oe_kurzbz = ''; $oe_kurzbz = '';
$user = get_uid(); $user = get_uid();
loadVariables($user); loadVariables($user);
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('assistenz', null, 's'))
die($rechte->errormsg);
$db = new basis_db(); $db = new basis_db();
$stg_arr = array(); $stg_arr = array();
@@ -62,6 +69,10 @@ if($studiengang_kz!='')
{ {
$studiengang = new studiengang(); $studiengang = new studiengang();
$studiengang->load($studiengang_kz); $studiengang->load($studiengang_kz);
if(!$rechte->isBerechtigt('assistenz', $studiengang->oe_kurzbz, 's'))
die($rechte->errormsg);
} }
if($mitarbeiter_uid!='') if($mitarbeiter_uid!='')
@@ -159,9 +170,9 @@ $qry = "SELECT
tbl_person.person_id=tbl_benutzer.person_id AND tbl_person.person_id=tbl_benutzer.person_id AND
lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND lehrfach.oe_kurzbz=".$db->db_add_param($oe_kurzbz)." AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell); 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'); die('Fehlerhafte Parameteruebergabe');
echo '<table class="liste">'; echo '<table class="liste">';
@@ -309,7 +320,7 @@ elseif($oe_kurzbz!='')
(tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0
"; ";
} }
else else
die('Something unexpected happend'); die('Something unexpected happend');
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
@@ -329,7 +340,7 @@ if($result = $db->db_query($qry))
echo "<th>Kosten</th>"; echo "<th>Kosten</th>";
echo '<th>&nbsp;</th>'; echo '<th>&nbsp;</th>';
echo '</tr>'; echo '</tr>';
$gesamtkosten_betreuung=0; $gesamtkosten_betreuung=0;
$stunden_betreuung=0; $stunden_betreuung=0;
while($row = $db->db_fetch_object($result)) 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/person.class.php');
require_once('../../include/benutzer.class.php'); require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php'); require_once('../../include/mitarbeiter.class.php');
require_once('../../include/organisationseinheit.class.php');
require_once('../../include/benutzerberechtigung.class.php');
$user = get_uid(); $user = get_uid();
@@ -36,119 +38,114 @@ if(isset($_GET['studiensemester_kurzbz']))
$studiensemester_kurzbz = $_GET['studiensemester_kurzbz']; $studiensemester_kurzbz = $_GET['studiensemester_kurzbz'];
else if(isset($_POST['studiensemester_kurzbz'])) else if(isset($_POST['studiensemester_kurzbz']))
$studiensemester_kurzbz = $_POST['studiensemester_kurzbz']; $studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
else else
die('studiensemester_kurzbz muss uebergeben werden'); die('studiensemester_kurzbz muss uebergeben werden');
if(isset($_GET['studiengang_kz'])) if(isset($_GET['studiengang_kz']))
$studiengang_kz = $_GET['studiengang_kz']; $studiengang_kz = $_GET['studiengang_kz'];
else else
$studiengang_kz=''; $studiengang_kz='';
if(isset($_GET['semester'])) if(isset($_GET['semester']))
$semester = $_GET['semester']; $semester = $_GET['semester'];
else else
$semester=''; $semester='';
if(isset($_GET['oe_kurzbz'])) if(isset($_GET['oe_kurzbz']))
$oe_kurzbz = $_GET['oe_kurzbz']; $oe_kurzbz = $_GET['oe_kurzbz'];
else else
$oe_kurzbz = ''; $oe_kurzbz = '';
if(isset($_GET['uid'])) if(isset($_GET['uid']))
$uid = $_GET['uid']; $uid = $_GET['uid'];
else else
$uid = ''; $uid = '';
$db = new basis_db(); $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 = new studiengang();
$stg_obj->getAll('typ, kurzbz', false); $stg_obj->getAll('typ, kurzbz', false);
$qry = " $qry = "
SELECT (SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) SELECT
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion lehrfach.bezeichnung as lf_bezeichnung, tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
WHERE fachbereich_kurzbz=tbl_fachbereich.fachbereich_kurzbz AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid,
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,
tbl_lehrveranstaltung.semester as lv_semester, tbl_lehreinheit.lehreinheit_id, tbl_lehreinheitmitarbeiter.faktor, 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_lehreinheitmitarbeiter.semesterstunden lemss, tbl_lehreinheitmitarbeiter.planstunden,
tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ, tbl_lehreinheit.stundenblockung, tbl_lehreinheit.wochenrythmus, tbl_lehreinheit.raumtyp, tbl_lehreinheit.raumtypalternativ,
tbl_lehreinheitmitarbeiter.anmerkung tbl_lehreinheitmitarbeiter.anmerkung
,tbl_lehreinheit.studiensemester_kurzbz ,tbl_lehreinheit.studiensemester_kurzbz
,tbl_lehrveranstaltung.ects ,tbl_lehrveranstaltung.ects
,tbl_lehrveranstaltung.semesterstunden ,tbl_lehrveranstaltung.semesterstunden
,tbl_lehrveranstaltung.semesterstunden as sws ,tbl_lehrveranstaltung.semesterstunden as sws
,tbl_lehrveranstaltung.lehrform_kurzbz ,tbl_lehrveranstaltung.lehrform_kurzbz
,tbl_lehrveranstaltung.lehrveranstaltung_id ,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) 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 )as lv_leitung
,(SELECT vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) ,(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) 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 ,(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 ,tbl_lehrveranstaltung.lehrform_kurzbz
FROM FROM
lehre.tbl_lehrveranstaltung lehre.tbl_lehrveranstaltung
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_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
WHERE tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz);
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!='') if($studiengang_kz!='')
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($oe_kurzbz!='') 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!='') if($semester!='')
$qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER); $qry.=" AND tbl_lehrveranstaltung.semester=".$db->db_add_param($semester, FHC_INTEGER);
if($uid!='') if($uid!='')
$qry.=" AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=".$db->db_add_param($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"; $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 // Creating a workbook
$workbook = new Spreadsheet_Excel_Writer(); $workbook = new Spreadsheet_Excel_Writer();
@@ -174,10 +171,8 @@ $zeile=0;
$spalte=0; $spalte=0;
$worksheet->write($zeile,$spalte,"Studiengang", $format_bold); $worksheet->write($zeile,$spalte,"Studiengang", $format_bold);
$maxlength[$spalte]=11; $maxlength[$spalte]=11;
$worksheet->write($zeile,++$spalte,"Institut", $format_bold); $worksheet->write($zeile,++$spalte,"Organisationseinheit", $format_bold);
$maxlength[$spalte]=8; $maxlength[$spalte]=8;
$worksheet->write($zeile,++$spalte,"Koordinator", $format_bold);
$maxlength[$spalte]=11;
$worksheet->write($zeile,++$spalte,"Lektor", $format_bold); $worksheet->write($zeile,++$spalte,"Lektor", $format_bold);
$maxlength[$spalte]=6; $maxlength[$spalte]=6;
$worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold); $worksheet->write($zeile,++$spalte,"Lehrfach", $format_bold);
@@ -211,8 +206,8 @@ $maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold); $worksheet->write($zeile,++$spalte,"LV-Nummer", $format_bold);
$maxlength[$spalte]=9; $maxlength[$spalte]=9;
$worksheet->write($zeile,++$spalte,"ALVS", $format_bold); $worksheet->write($zeile,++$spalte,"Semesterstunden", $format_bold);
$maxlength[$spalte]=9; $maxlength[$spalte]=15;
$worksheet->write($zeile,++$spalte,"ECTS", $format_bold); $worksheet->write($zeile,++$spalte,"ECTS", $format_bold);
$maxlength[$spalte]=9; $maxlength[$spalte]=9;
@@ -227,22 +222,20 @@ if($result = $db->db_query($qry))
$spalte=0; $spalte=0;
$zeile++; $zeile++;
$mitarbeiter = new mitarbeiter(); $mitarbeiter = new mitarbeiter();
$mitarbeiter->load($row->mitarbeiter_uid); $mitarbeiter->load($row->mitarbeiter_uid);
//Studiengang //Studiengang
$worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]);
if($maxlength[$spalte]<mb_strlen($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]); $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]);
//Fachbereich
$worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); //Organisationseinheit
if($maxlength[$spalte]<mb_strlen($row->fachbereich_kurzbz)) $worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]);
$maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); if($maxlength[$spalte]<mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]))
//Koordinator $maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]);
$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);
//Lektor //Lektor
$worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname); $worksheet->write($zeile,++$spalte,$mitarbeiter->nachname.' '.$mitarbeiter->vorname);
if($maxlength[$spalte]<mb_strlen($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); $worksheet->write($zeile,++$spalte,$row->lv_semester);
if($maxlength[$spalte]<mb_strlen($row->lv_semester)) if($maxlength[$spalte]<mb_strlen($row->lv_semester))
$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); $qry = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($row->lehreinheit_id, FHC_INTEGER);
$result_gruppe = $db->db_query($qry); $result_gruppe = $db->db_query($qry);
$gruppe = ''; $gruppe = '';
@@ -265,10 +258,10 @@ if($result = $db->db_query($qry))
$gruppe.=', '; $gruppe.=', ';
if($row_gruppe->gruppe_kurzbz!='') if($row_gruppe->gruppe_kurzbz!='')
$gruppe.=$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); $gruppe.=trim($stg_obj->kuerzel_arr[$row_gruppe->studiengang_kz].'-'.$row_gruppe->semester.$row_gruppe->verband.$row_gruppe->gruppe);
} }
//Gruppen //Gruppen
$worksheet->write($zeile,++$spalte,$gruppe); $worksheet->write($zeile,++$spalte,$gruppe);
if($maxlength[$spalte]<mb_strlen($gruppe)) if($maxlength[$spalte]<mb_strlen($gruppe))
@@ -277,9 +270,9 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->lemss); $worksheet->write($zeile,++$spalte,$row->lemss);
if($maxlength[$spalte]<mb_strlen($row->lemss)) if($maxlength[$spalte]<mb_strlen($row->lemss))
$maxlength[$spalte]=mb_strlen($row->lemss); $maxlength[$spalte]=mb_strlen($row->lemss);
$kosten = ($row->stundensatz*$row->lemss*$row->faktor); $kosten = ($row->stundensatz*$row->lemss*$row->faktor);
//Kosten //Kosten
$worksheet->write($zeile,++$spalte,$kosten); $worksheet->write($zeile,++$spalte,$kosten);
if($maxlength[$spalte]<mb_strlen($kosten)) if($maxlength[$spalte]<mb_strlen($kosten))
@@ -308,8 +301,7 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->anmerkung); $worksheet->write($zeile,++$spalte,$row->anmerkung);
if($maxlength[$spalte]<mb_strlen($row->anmerkung)) if($maxlength[$spalte]<mb_strlen($row->anmerkung))
$maxlength[$spalte]=mb_strlen($row->anmerkung); $maxlength[$spalte]=mb_strlen($row->anmerkung);
// Neu 13.11.2009 sequens
//LV-Leitung //LV-Leitung
$worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname); $worksheet->write($zeile,++$spalte,$row->lv_leitung.' '.$row->lv_leitung_vorname);
if($maxlength[$spalte]<mb_strlen($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)) if($maxlength[$spalte]<mb_strlen($row->lehrveranstaltung_id))
$maxlength[$spalte]=mb_strlen($row->lehrveranstaltung_id); $maxlength[$spalte]=mb_strlen($row->lehrveranstaltung_id);
//SWS //Semesterstunden
/* $worksheet->write($zeile,++$spalte,$row->sws);
if($maxlength[$spalte]<mb_strlen($row->sws))
$maxlength[$spalte]=mb_strlen($row->sws);
*/
$semesterstunden = $row->semesterstunden; $semesterstunden = $row->semesterstunden;
if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0) if ($row->stundensatz==0 || $row->lemss==0 || $row->faktor==0)
$semesterstunden = 0; $semesterstunden = 0;
$worksheet->write($zeile,++$spalte,$semesterstunden); $worksheet->write($zeile,++$spalte,$semesterstunden);
if($maxlength[$spalte]<mb_strlen($semesterstunden)) if($maxlength[$spalte]<mb_strlen($semesterstunden))
$maxlength[$spalte]=mb_strlen($semesterstunden); $maxlength[$spalte]=mb_strlen($semesterstunden);
//ECTS //ECTS
$worksheet->write($zeile,++$spalte,$row->ects); $worksheet->write($zeile,++$spalte,$row->ects);
if($maxlength[$spalte]<mb_strlen($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); $worksheet->write($zeile,++$spalte,$row->lv_type);
if($maxlength[$spalte]<mb_strlen($row->lv_type)) if($maxlength[$spalte]<mb_strlen($row->lv_type))
$maxlength[$spalte]=mb_strlen($row->lv_type); $maxlength[$spalte]=mb_strlen($row->lv_type);
} }
//Betreuungen //Betreuungen
$qry = "SELECT $qry = "SELECT
tbl_lehrveranstaltung.studiengang_kz, fachbereich_kurzbz, tbl_lehrveranstaltung.studiengang_kz, lehrfach.oe_kurzbz as lehrfach_oe_kurzbz,
(SELECT nachname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) nachname, vorname, lehrfach.bezeichnung,
WHERE uid=COALESCE(tbl_lehrveranstaltung.koordinator, (SELECT uid FROM public.tbl_benutzerfunktion tbl_lehrveranstaltung.semester, student_uid, stunden, tbl_projektbetreuer.stundensatz,
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_projektbetreuer.faktor tbl_projektbetreuer.faktor
FROM FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, 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_projektbetreuer, public.tbl_person, lehre.tbl_lehrveranstaltung as lehrfach
WHERE WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND tbl_projektarbeit.projektarbeit_id=tbl_projektbetreuer.projektarbeit_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_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_person.person_id=tbl_projektbetreuer.person_id AND
tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
(tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0 (tbl_projektbetreuer.faktor*tbl_projektbetreuer.stundensatz*tbl_projektbetreuer.stunden)>0
"; ";
if($uid!=='') if($uid!=='')
{ {
$mitarbeiter = new mitarbeiter($uid); $mitarbeiter = new mitarbeiter($uid);
@@ -399,11 +361,11 @@ if($result = $db->db_query($qry))
} }
if($oe_kurzbz!='') 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!='') if($studiengang_kz!='')
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER); $qry.=" AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
{ {
$spalte=0; $spalte=0;
@@ -415,20 +377,17 @@ if($result = $db->db_query($qry))
{ {
$spalte=0; $spalte=0;
$zeile++; $zeile++;
//Studiengang //Studiengang
$worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]); $worksheet->write($zeile,$spalte,$stg_obj->kuerzel_arr[$row->studiengang_kz]);
if($maxlength[$spalte]<mb_strlen($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]); $maxlength[$spalte]=mb_strlen($stg_obj->kuerzel_arr[$row->studiengang_kz]);
//Fachbereich //Organisationseinheit
$worksheet->write($zeile,++$spalte,$row->fachbereich_kurzbz); $worksheet->write($zeile,++$spalte,$oe_arr[$row->lehrfach_oe_kurzbz]);
if($maxlength[$spalte]<mb_strlen($row->fachbereich_kurzbz)) if($maxlength[$spalte]<mb_strlen($oe_arr[$row->lehrfach_oe_kurzbz]))
$maxlength[$spalte]=mb_strlen($row->fachbereich_kurzbz); $maxlength[$spalte]=mb_strlen($oe_arr[$row->lehrfach_oe_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);
//Lektor //Lektor
$worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname); $worksheet->write($zeile,++$spalte,$row->nachname.' '.$row->vorname);
if($maxlength[$spalte]<mb_strlen($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); $worksheet->write($zeile,++$spalte,$row->semester);
if($maxlength[$spalte]<mb_strlen($row->semester)) if($maxlength[$spalte]<mb_strlen($row->semester))
$maxlength[$spalte]=mb_strlen($row->semester); $maxlength[$spalte]=mb_strlen($row->semester);
$benutzer = new benutzer(); $benutzer = new benutzer();
$benutzer->load($row->student_uid); $benutzer->load($row->student_uid);
//Student //Student
@@ -456,10 +415,10 @@ if($result = $db->db_query($qry))
$worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor); $worksheet->write($zeile,++$spalte,$row->stunden*$row->stundensatz*$row->faktor);
if($maxlength[$spalte]<mb_strlen($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); $maxlength[$spalte]=mb_strlen($row->stunden*$row->stundensatz*$row->faktor);
} }
} }
//Die Breite der Spalten setzen //Die Breite der Spalten setzen
foreach($maxlength as $i=>$breite) foreach($maxlength as $i=>$breite)
$worksheet->setColumn($i, $i, $breite+2); $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__).'/authentication.class.php');
require_once(dirname(__FILE__).'/betriebsmittelperson.class.php'); require_once(dirname(__FILE__).'/betriebsmittelperson.class.php');
require_once(dirname(__FILE__).'/personlog.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 // 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 * @create 20-12-2006
*/ */
require_once(dirname(__FILE__).'/basis_db.class.php'); require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/sprache.class.php');
class kontakt extends basis_db 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 $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)." 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); AND kontakttyp =".$this->db_add_param($kontakttyp, FHC_STRING);
if ($order != null) if ($order != null)
$qry .= " ORDER BY ".$order; $qry .= " ORDER BY ".$order;
@@ -332,9 +333,10 @@ class kontakt extends basis_db
$this->errormsg = 'Person_id ist ungueltig'; $this->errormsg = 'Person_id ist ungueltig';
return false; return false;
} }
$sprache = new sprache();
$qry = "SELECT tbl_kontakt.*, tbl_firma.name as firma_name, tbl_firma.firma_id $bezeichnung_mehrsprachig = $sprache->getSprachQuery('bezeichnung_mehrsprachig');
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).';'; $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)) if($this->db_query($qry))
{ {
@@ -356,6 +358,8 @@ class kontakt extends basis_db
$obj->insertamum = $row->insertamum; $obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon; $obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id; $obj->ext_id = $row->ext_id;
$obj->kontakttyp_name = $row->kontakttyp_name;
$obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row);
$this->result[] = $obj; $this->result[] = $obj;
} }
@@ -512,15 +516,15 @@ class kontakt extends basis_db
return false; return false;
} }
} }
/** /**
* Sucht nach Kontaktdaten, die den Suchkriterien entsprechen * 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, * 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
* @param string $typ Optional. Kontakttyp. Möglich sind <b>"nummer"</b>,"telefon","mobil","so.tel","firmenhandy","firmenhandy","email","fax" und "homepage". * @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, * 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 * @return boolean
*/ */
public function searchKontakt ($searchstring, $typ = '') public function searchKontakt ($searchstring, $typ = '')
@@ -534,18 +538,18 @@ class kontakt extends basis_db
return false; return false;
} }
} }
$qry = "SELECT $qry = "SELECT
* *
FROM FROM
public.tbl_kontakt public.tbl_kontakt
WHERE WHERE
1=1"; 1=1";
if ($typ == 'nummer') if ($typ == 'nummer')
$qry .= " AND regexp_replace(kontakt , '[^0-9]', '', 'g') LIKE ('%".$this->db_escape($searchstring)."%')"; $qry .= " AND regexp_replace(kontakt , '[^0-9]', '', 'g') LIKE ('%".$this->db_escape($searchstring)."%')";
else else
$qry .= " AND LOWER (kontakt) LIKE LOWER ('%".$this->db_escape($searchstring)."%')"; $qry .= " AND LOWER (kontakt) LIKE LOWER ('%".$this->db_escape($searchstring)."%')";
if ($typ != '' && $typ != 'nummer') if ($typ != '' && $typ != 'nummer')
$qry .= " AND kontakttyp=".$this->db_add_param($typ); $qry .= " AND kontakttyp=".$this->db_add_param($typ);
@@ -554,7 +558,7 @@ class kontakt extends basis_db
while($row = $this->db_fetch_object()) while($row = $this->db_fetch_object())
{ {
$obj = new kontakt(); $obj = new kontakt();
$obj->kontakt_id = $row->kontakt_id; $obj->kontakt_id = $row->kontakt_id;
$obj->person_id = $row->person_id; $obj->person_id = $row->person_id;
$obj->standort_id = $row->standort_id; $obj->standort_id = $row->standort_id;
@@ -567,10 +571,10 @@ class kontakt extends basis_db
$obj->insertamum = $row->insertamum; $obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon; $obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id; $obj->ext_id = $row->ext_id;
$this->result[] = $obj; $this->result[] = $obj;
} }
return true; return true;
} }
else 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 * 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)) if (is_null($uid))
$uid=$this->uid; $uid=$this->uid;
@@ -1113,6 +1117,70 @@ class mitarbeiter extends benutzer
$oe.=$this->db_add_param($row->oe_kurzbz); $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 //Alle Personen holen die dieser Organisationseinheit untergeordnet sind
$qry = " $qry = "
+117
View File
@@ -20,6 +20,7 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and * Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at> * Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
* Stefan Puraner <puraner@technikum-wien.at> * Stefan Puraner <puraner@technikum-wien.at>
* Cristina Hainberger <hainberg@technikum-wien.at>
*/ */
/** /**
* Klasse Organisationseinheit * Klasse Organisationseinheit
@@ -46,6 +47,7 @@ class organisationseinheit extends basis_db
public $oe_kurzbz_orig; public $oe_kurzbz_orig;
public $beschreibung; 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 * 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 * @return boolean
*/ */
public function getAllForOnlinebewerbung($order = 'tbl_studiengang.typ, tbl_lgartcode.bezeichnung ASC, tbl_studiengang.bezeichnung') public function getAllForOnlinebewerbung($order = 'tbl_studiengang.typ, tbl_lgartcode.bezeichnung ASC, tbl_studiengang.bezeichnung')
{ {
$qry = "SELECT $qry = "SELECT
tbl_studiengang.studiengang_kz, tbl_studiengang.studiengang_kz,
tbl_studiengang.typ, tbl_studiengang.typ,
tbl_studiengangstyp.bezeichnung AS typ_bezeichnung, tbl_studiengangstyp.bezeichnung AS typ_bezeichnung,
tbl_studiengang.lgartcode, tbl_studiengang.lgartcode,
tbl_studiengang.bezeichnung AS studiengangbezeichnung, tbl_studiengang.bezeichnung AS studiengangbezeichnung,
tbl_studiengang.english AS studiengangbezeichnung_englisch, tbl_studiengang.english AS studiengangbezeichnung_englisch,
tbl_organisationseinheit.organisationseinheittyp_kurzbz, tbl_organisationseinheit.organisationseinheittyp_kurzbz,
tbl_organisationseinheit.standort, tbl_organisationseinheit.standort,
tbl_lgartcode.bezeichnung AS lehrgangsart tbl_lgartcode.bezeichnung AS lehrgangsart
FROM public.tbl_studiengang FROM public.tbl_studiengang
LEFT JOIN bis.tbl_lgartcode USING (lgartcode) LEFT JOIN bis.tbl_lgartcode USING (lgartcode)
LEFT JOIN public.tbl_organisationseinheit USING (oe_kurzbz) LEFT JOIN public.tbl_organisationseinheit USING (oe_kurzbz)
JOIN public.tbl_organisationseinheittyp USING (organisationseinheittyp_kurzbz) JOIN public.tbl_organisationseinheittyp USING (organisationseinheittyp_kurzbz)
JOIN public.tbl_studiengangstyp USING (typ) JOIN public.tbl_studiengangstyp USING (typ)
WHERE tbl_studiengang.onlinebewerbung IS TRUE WHERE tbl_studiengang.onlinebewerbung IS TRUE
AND tbl_studiengang.aktiv IS TRUE"; AND tbl_studiengang.aktiv IS TRUE";
$qry .= " ORDER BY ".$order; $qry .= " ORDER BY ".$order;
if(!$result = $this->db_query($qry)) if(!$result = $this->db_query($qry))
@@ -276,12 +276,12 @@ class studiengang extends basis_db
$this->errormsg = 'Datensatz konnte nicht geladen werden'; $this->errormsg = 'Datensatz konnte nicht geladen werden';
return false; return false;
} }
while($row = $this->db_fetch_object($result)) while($row = $this->db_fetch_object($result))
{ {
$this->result[] = $row; $this->result[] = $row;
} }
return true; return true;
} }
@@ -1045,6 +1045,34 @@ class studiengang extends basis_db
} }
return true; 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 * 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/meinCis']='Mein CIS';
$this->phrasen['profil/bildHochladen']='Profilfoto hochladen'; $this->phrasen['profil/bildHochladen']='Profilfoto hochladen';
$this->phrasen['profil/email']='eMail'; $this->phrasen['profil/email']='eMail';
$this->phrasen['profil/kontaktPrivat']='Privat'; $this->phrasen['profil/kontaktPrivat']='Private Kontakte';
$this->phrasen['profil/mobil']='Mobil'; $this->phrasen['profil/mobil']='Mobil';
$this->phrasen['profil/telefon']='Telefon'; $this->phrasen['profil/telefon']='Telefon';
$this->phrasen['profil/intern']='Intern'; $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/meinCis']='My CIS';
$this->phrasen['profil/bildHochladen']='Upload picture'; $this->phrasen['profil/bildHochladen']='Upload picture';
$this->phrasen['profil/email']='eMail'; $this->phrasen['profil/email']='eMail';
$this->phrasen['profil/kontaktPrivat']='Private Contacts';
$this->phrasen['profil/intern']='Intern'; $this->phrasen['profil/intern']='Intern';
$this->phrasen['profil/alias']='Alias'; $this->phrasen['profil/alias']='Alias';
$this->phrasen['profil/homepage']='Homepage'; $this->phrasen['profil/homepage']='Homepage';
+1 -1
View File
@@ -1,5 +1,5 @@
.fhc-ajaxclient-veil { .fhc-ajaxclient-veil {
position: absolute; position: fixed;
z-index: 9999; z-index: 9999;
top: 0; top: 0;
left: 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; 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{ .panel-primary > .panel-heading, .panel-primary > .panel-collapse > .panel-footer, .panel-primary > .panel-footer{
color: black; color: black;
background-color: #dfdfdf; background-color: #dfdfdf;
@@ -42,6 +66,10 @@
text-decoration: none !important; text-decoration: none !important;
} }
.panel-footer.solidtop{
border-top: 1px solid #ddd
}
/*required asterisk for labels for required fields*/ /*required asterisk for labels for required fields*/
.label-required:after .label-required:after
{ {
+1 -1
View File
@@ -744,7 +744,7 @@ var FHC_FilterWidget = {
*/ */
_renderTableDataset: function(data) { _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>"); $("#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) 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"] + ')' + ' (' + item["subscriptDescription"] + ')' +
'</a>'; '</a>';
strLeftMenu += '</span>'; strLeftMenu += '</span>';
+7 -1
View File
@@ -3,8 +3,14 @@
* NOTE: avoid using this if possible * NOTE: avoid using this if possible
*/ */
$(document).ready(function() { $(document).ready(function() {
Bootstrapper.bootstraphtml();
});
var Bootstrapper = {
bootstraphtml: function ()
{
$("input[type=text], select").addClass("form-control"); $("input[type=text], select").addClass("form-control");
$("button, input[type=button]").addClass("btn btn-default"); $("button, input[type=button]").addClass("btn btn-default");
$("table").addClass("table-condensed"); $("table").addClass("table-condensed");
} }
); };
+221 -66
View File
@@ -16,21 +16,13 @@ $(document).ready(function ()
InfocenterDetails._formatNotizTable(); InfocenterDetails._formatNotizTable();
InfocenterDetails._formatLogTable(); InfocenterDetails._formatLogTable();
//initialise datepicker
$.datepicker.setDefaults($.datepicker.regional['de']);
$(".dateinput").datepicker({
"dateFormat": "dd.mm.yy"
});
var personid = $("#hiddenpersonid").val(); var personid = $("#hiddenpersonid").val();
//add submit event to message send link //add submit event to message send link
$("#sendmsglink").click( $("#sendmsglink").click(function ()
function () {
{ $("#sendmsgform").submit();
$("#sendmsgform").submit(); });
}
);
//add click events to "formal geprüft" checkboxes //add click events to "formal geprüft" checkboxes
$(".prchbox").click(function () $(".prchbox").click(function ()
@@ -41,60 +33,8 @@ $(document).ready(function ()
InfocenterDetails.saveFormalGeprueft(personid, akteid, checked) InfocenterDetails.saveFormalGeprueft(personid, akteid, checked)
}); });
//zgv übernehmen //add click events to zgv Prüfung section
$(".zgvUebernehmen").click(function () InfocenterDetails._addZgvPruefungEvents(personid);
{
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");
}
);
//save notiz //save notiz
$("#notizform").on("submit", function (e) $("#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) zgvUebernehmen: function(personid, prestudentid, btn)
{ {
FHC_AjaxClient.ajaxCallGet( 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) saveNotiz: function(personid, data)
{ {
FHC_AjaxClient.ajaxCallPost( FHC_AjaxClient.ajaxCallPost(
@@ -399,6 +407,145 @@ var InfocenterDetails = {
// ----------------------------------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------------------------------
// (private) methods executed after ajax (refreshers) // (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() _refreshLog: function()
{ {
var personid = $("#hiddenpersonid").val(); var personid = $("#hiddenpersonid").val();
@@ -491,5 +638,13 @@ var InfocenterDetails = {
_errorSaveNotiz: function() _errorSaveNotiz: function()
{ {
$("#notizmsg").text(FHC_PhrasesLib.t('ui', 'fehlerBeimSpeichern')); $("#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/basis_db.class.php');
require_once('../include/benutzerberechtigung.class.php'); require_once('../include/benutzerberechtigung.class.php');
require_once('../include/dvb.class.php'); require_once('../include/dvb.class.php');
require_once('../include/errorhandler.class.php');
$uid = get_uid(); $uid = get_uid();
$rechte = new benutzerberechtigung(); $rechte = new benutzerberechtigung();
@@ -39,9 +40,9 @@ if (isset($_GET['action']))
else else
$action = 'getBySvnr'; $action = 'getBySvnr';
$username = filter_input(INPUT_POST, 'username'); $username = DVB_USERNAME;
$password = filter_input(INPUT_POST, 'password'); $password = DVB_PASSWORD;
$bildungseinrichtung = filter_input(INPUT_POST, 'bildungseinrichtung');
$studienjahr = filter_input(INPUT_POST, 'studienjahr'); $studienjahr = filter_input(INPUT_POST, 'studienjahr');
$matrikelnr = filter_input(INPUT_POST, 'matrikelnummer'); $matrikelnr = filter_input(INPUT_POST, 'matrikelnummer');
$nachname = filter_input(INPUT_POST, 'nachname'); $nachname = filter_input(INPUT_POST, 'nachname');
@@ -54,6 +55,7 @@ $matura = filter_input(INPUT_POST, 'matura');
$svnr = filter_input(INPUT_POST, 'svnr'); $svnr = filter_input(INPUT_POST, 'svnr');
$ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen'); $ersatzkennzeichen = filter_input(INPUT_POST, 'ersatzkennzeichen');
$person_id = filter_input(INPUT_POST, 'person_id'); $person_id = filter_input(INPUT_POST, 'person_id');
$strasse = filter_input(INPUT_POST, 'strasse');
?><!DOCTYPE html> ?><!DOCTYPE html>
<html> <html>
@@ -71,11 +73,18 @@ $person_id = filter_input(INPUT_POST, 'person_id');
Matrikelnummer nach Ersatzkennzeichen suchen Matrikelnummer nach Ersatzkennzeichen suchen
</a> </a>
</li> </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=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=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=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=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> </ul>
<?php
echo "<br>Portal: ".DVB_PORTAL;
echo "<br>Bildungseinrichtung: ".DVB_BILDUNGSEINRICHTUNG_CODE;
?>
<br><br> <br><br>
<form action="<?php echo $_SERVER['PHP_SELF'].'?action='.$action; ?>" method="post"> <form action="<?php echo $_SERVER['PHP_SELF'].'?action='.$action; ?>" method="post">
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0"> <table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
@@ -103,9 +112,6 @@ $person_id = filter_input(INPUT_POST, 'person_id');
</tr>'; </tr>';
} }
printrow('username', 'Username', $username, '', 100);
printrow('password', 'Passwort', $password, '', 100, 'password');
switch($action) switch($action)
{ {
case 'getOAuth': case 'getOAuth':
@@ -118,25 +124,17 @@ $person_id = filter_input(INPUT_POST, 'person_id');
case 'getByErsatzkennzeichen': case 'getByErsatzkennzeichen':
printrow('ersatzkennzeichen', 'Ersatzkennzeichen', $ersatzkennzeichen); printrow('ersatzkennzeichen', 'Ersatzkennzeichen', $ersatzkennzeichen);
break; break;
case 'getByNachname':
printrow('nachname', 'Nachname', $nachname);
printrow('geburtsdatum', 'Geburtsdatum', $geburtsdatum, ' (Format: YYYYMMDD)', 8);
break;
case 'getReservations': case 'getReservations':
case 'getKontingent': case 'getKontingent':
printrow(
'bildungseinrichtung',
'Bildungseinrichtung',
$bildungseinrichtung,
'Kurzzeichen der Bildungseinrichtung'
);
printrow('studienjahr', 'Studienjahr', $studienjahr, 'zB 2016 (für WS2016 und SS2017)', 4); printrow('studienjahr', 'Studienjahr', $studienjahr, 'zB 2016 (für WS2016 und SS2017)', 4);
break; break;
case 'setMatrikelnummer': case 'setMatrikelnummer':
printrow(
'bildungseinrichtung',
'Bildungseinrichtung',
$bildungseinrichtung,
'Kurzzeichen der Bildungseinrichtung'
);
printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr); printrow('matrikelnummer', 'Matrikelnummer', $matrikelnr);
printrow('nachname', 'Nachname', $nachname, '', 255); printrow('nachname', 'Nachname', $nachname, '', 255);
printrow('vorname', 'Vorname', $vorname, '', 30); 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('geschlecht', 'Geschlecht', $geschlecht, 'Format: M | W', 1);
printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10); printrow('postleitzahl', 'Postleitzahl', $postleitzahl, '', 10);
printrow('staat', 'Staat', $staat, '1-3 Stellen Codex (zb A für Österreich)', 3); 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); printrow('matura', 'Maturadatum', $matura, 'Format: YYYYMMDD (optional)', 10);
break; break;
@@ -152,6 +150,20 @@ $person_id = filter_input(INPUT_POST, 'person_id');
printrow('person_id', 'PersonID', $person_id); printrow('person_id', 'PersonID', $person_id);
break; 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: default:
echo "Unknown action"; echo "Unknown action";
break; break;
@@ -180,44 +192,80 @@ if (isset($_REQUEST['submit']))
switch ($action) switch ($action)
{ {
case 'getOAuth': case 'getOAuth':
if ($dvb->authenticate()) $result = $dvb->authenticate();
if (ErrorHandler::isSuccess($result))
echo '<br><b>OAuth Bearer Token:</b> '.$dvb->authentication->access_token; echo '<br><b>OAuth Bearer Token:</b> '.$dvb->authentication->access_token;
else else
echo '<br><b>Failed:</b> '.$dvb->errormsg; echo '<br><b>Failed:</b> '.$dvb->errormsg;
break; break;
case 'getBySvnr': case 'getBySvnr':
$matrikelnr = $dvb->getMatrikelnrBySVNR($_POST['svnr']); $data = $dvb->getMatrikelnrBySVNR($_POST['svnr']);
if ($matrikelnr !== false)
echo '<br><b>Matrikelnummer vorhanden:</b>'.$matrikelnr; 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 else
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg; {
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
}
break; break;
case 'getByErsatzkennzeichen': case 'getByErsatzkennzeichen':
$matrikelnr = $dvb->getMatrikelnrByErsatzkennzeichen($_POST['ersatzkennzeichen']); $data = $dvb->getMatrikelnrByErsatzkennzeichen($_POST['ersatzkennzeichen']);
if ($matrikelnr !== false)
echo '<br><b>Matrikelnummer vorhanden:</b>'.$matrikelnr; if (ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
echo '<br><b>Matrikelnummer vorhanden:</b>'.$data->retval->matrikelnummer;
else else
echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$dvb->errormsg; echo '<br><b>Matrikelnummer nicht vorhanden:</b>'.$data->errormsg;
break; break;
case 'getReservations': case 'getByNachname':
$reservierteNummern = $dvb->getReservations($_POST['bildungseinrichtung'], $_POST['studienjahr']); $data = $dvb->getMatrikelnrByNachname($_POST['nachname'], $_POST['geburtsdatum']);
if ($reservierteNummern !== false) if(ErrorHandler::isSuccess($data) && ErrorHandler::hasData($data))
echo '<br><b>Reservierte Nummern:</b>'.print_r($reservierteNummern, true); {
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 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; break;
case 'getKontingent': case 'getKontingent':
$kontingent = $dvb->getKontingent($_POST['bildungseinrichtung'], $_POST['studienjahr']); $result = $dvb->getKontingent(DVB_BILDUNGSEINRICHTUNG_CODE, $_POST['studienjahr']);
if ($kontingent !== false) if(ErrorHandler::isSuccess($result) && ErrorHandler::hasData($result))
echo '<br><b>Kontingent:</b>'.print_r($kontingent, true); {
else $kontingent = $result->retval->kontingent;
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg; if ($kontingent !== false)
echo '<br><b>Kontingent:</b>'.print_r($kontingent, true);
else
echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
}
break; break;
case 'setMatrikelnummer': case 'setMatrikelnummer':
@@ -232,27 +280,49 @@ if (isset($_REQUEST['submit']))
$person->matura = $matura; // Optional $person->matura = $matura; // Optional
$person->svnr = $svnr; // 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>'; echo '<br><b>Erfolgreich gemeldet</b>';
else else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg; echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break; break;
case 'assignMatrikelnummer': case 'assignMatrikelnummer':
if($dvb->assignMatrikelnummer($person_id)) $result = $dvb->assignMatrikelnummer($person_id);
if(ErrorHandler::isSuccess($result))
{ {
echo '<br><b>OK</b>'; echo '<br><b>OK</b>';
} }
else else
echo '<br><b>Fehlgeschlagen:</b>'.$dvb->errormsg; echo '<br><b>Fehlgeschlagen:</b>'.$data->errormsg;
break; 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: default:
echo "Unknown action"; echo "Unknown action";
break; break;
} }
if (isset($_POST['debug'])) 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 = " $qry = "
SELECT SELECT
distinct on (person_id) distinct on (tbl_person.person_id)
tbl_student.student_uid, tbl_student.student_uid,
tbl_prestudent.prestudent_id, tbl_prestudent.prestudent_id,
tbl_prestudent.studiengang_kz as studiengang tbl_prestudent.studiengang_kz as studiengang
@@ -618,7 +618,7 @@ FROM
JOIN public.tbl_prestudentstatus USING(prestudent_id) JOIN public.tbl_prestudentstatus USING(prestudent_id)
JOIN public.tbl_person USING(person_id) JOIN public.tbl_person USING(person_id)
JOIN public.tbl_student USING(prestudent_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 WHERE
status_kurzbz in('Student', 'Diplomand', 'Absolvent', 'Abbrecher') status_kurzbz in('Student', 'Diplomand', 'Absolvent', 'Abbrecher')
AND tbl_prestudent.bismelden 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 // Ausgabe der Studenten
foreach ($ausgabe as $stg_kz => $value) 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> <td colspan='4'><b>Aktive Studierende ohne Matrikelnummer</b></td>
</tr>"; </tr>";
break; 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: default:
echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>"; echo "<tr><td>&nbsp;</td></tr><tr><td colspan='4'><b>Ungültiger Code</b></td></tr>";
break; 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>'; 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 // 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'")) 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 * 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'; 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($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) if($db->db_num_rows($result)==0)
{ {
$qry = "GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_rt_person TO web; $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;"; GRANT SELECT, UPDATE ON SEQUENCE public.tbl_rt_person_rt_person_id_seq TO web;";
if(!$db->db_query($qry)) if(!$db->db_query($qry))
echo '<strong>public.tbl_rt_person Berechtigungen: '.$db->db_last_error().'</strong><br>'; echo '<strong>public.tbl_rt_person Berechtigungen: '.$db->db_last_error().'</strong><br>';
else 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_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_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_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_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_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"), "public.tbl_log" => array("log_id","executetime","mitarbeiter_uid","beschreibung","sql","sqlundo"),
+22
View File
@@ -300,6 +300,28 @@ $filters = array(
} }
', ',
'oe_kurzbz' => null, '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 = new DOMDocument();
$dom->load($_FILES['datei']['tmp_name']); $dom->load($_FILES['datei']['tmp_name']);
$studierende = $dom->getElementsByTagName('studierende'); $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) foreach($domnodes_personen as $row_person)
{ {
$personid_node = $row_person->getElementsByTagName('personId'); $personid_node = $row_person->getElementsByTagName('personId');
if(isset($personid_node[0])) if($personid_node->length > 0)
{ {
$node_bpk = $personid_node[0]->getElementsByTagName('bpk'); $node_bpk = $personid_node->item(0)->getElementsByTagName('bpk');
$node_personenkennzeichen = $personid_node[0]->getElementsByTagName('personenkennzeichen'); $node_personenkennzeichen = $personid_node->item(0)->getElementsByTagName('personenkennzeichen');
$node_matrikelnr = $personid_node[0]->getElementsByTagName('matrikelnummer'); $node_matrikelnr = $personid_node->item(0)->getElementsByTagName('matrikelnummer');
$bpk = ''; $bpk = '';
$personenkennzeichen = ''; $personenkennzeichen = '';
$matrikelnr = ''; $matrikelnr = '';
if (isset($node_bpk[0])) if ($node_bpk->length > 0)
$bpk = $node_bpk[0]->textContent; $bpk = $node_bpk->item(0)->textContent;
if (isset($node_personenkennzeichen[0])) if ($node_personenkennzeichen->length > 0)
$personenkennzeichen = $node_personenkennzeichen[0]->textContent; $personenkennzeichen = $node_personenkennzeichen->item(0)->textContent;
if (isset($node_matrikelnr[0])) if ($node_matrikelnr->length > 0)
$matrikelnr = $node_matrikelnr[0]->textContent; $matrikelnr = $node_matrikelnr->item(0)->textContent;
if($personenkennzeichen != '') if($personenkennzeichen != '')
{ {
+221 -40
View File
@@ -18,7 +18,7 @@
* Authors: Cristina Hainberger <hainberg@technikum-wien.at> * Authors: Cristina Hainberger <hainberg@technikum-wien.at>
* *
* Beschreibung: * 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. * Missing attributes are inserted.
*/ */
@@ -928,7 +928,7 @@ $phrases = array(
) )
) )
), ),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'global', 'category' => 'global',
@@ -949,7 +949,7 @@ $phrases = array(
) )
) )
), ),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'global', '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 //******************************* CORE/ui
array( array(
'app' => 'core', 'app' => 'core',
@@ -1333,8 +1374,8 @@ $phrases = array(
) )
) )
), ),
//*************************** CORE/filter //*************************** CORE/filter
array( array(
'app' => 'core', 'app' => 'core',
@@ -1356,7 +1397,7 @@ $phrases = array(
) )
) )
), ),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'filter', 'category' => 'filter',
@@ -1377,7 +1418,7 @@ $phrases = array(
) )
) )
), ),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'filter', 'category' => 'filter',
@@ -1398,7 +1439,7 @@ $phrases = array(
) )
) )
), ),
array( array(
'app' => 'core', 'app' => 'core',
'category' => 'filter', 'category' => 'filter',
@@ -1419,10 +1460,10 @@ $phrases = array(
) )
) )
), ),
//**************************** CORE/person //**************************** CORE/person
array( array(
'app' => 'core', '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( array(
'app' => 'core', 'app' => 'core',
'category' => 'person', '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 //**************** CORE/lehre
array( array(
'app' => 'core', 'app' => 'core',
@@ -1966,9 +2127,9 @@ $phrases = array(
) )
) )
), ),
//********************** INFOCENTER/infocenter //********************** INFOCENTER/infocenter
array( array(
'app' => 'infocenter', 'app' => 'infocenter',
@@ -2600,7 +2761,7 @@ $phrases = array(
'phrases' => array( 'phrases' => array(
array( array(
'sprache' => 'German', '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/> und deren Zgvdaten können im Infocenter nicht mehr bearbeitet oder freigegeben werden.<br/>
Alle nicht gespeicherten Zgvdaten gehen verloren.<br/> Alle nicht gespeicherten Zgvdaten gehen verloren.<br/>
Fortfahren?', 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( array(
'app' => 'core', 'app' => 'core',
'category' => 'global', '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 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. //***** INSERT into phrasentext_tbl if new text found in phrasen-phrases-array, conciders every language apart.
foreach ($phrases as $phrase) foreach ($phrases as $phrase)
{ {
$qry = "SELECT phrase_id $qry = "SELECT phrase_id
FROM system.tbl_phrase FROM system.tbl_phrase
WHERE WHERE
app=". $db->db_add_param($phrase['app']). " AND app=". $db->db_add_param($phrase['app']). " AND
category=". $db->db_add_param($phrase['category']). " AND category=". $db->db_add_param($phrase['category']). " AND
phrase=". $db->db_add_param($phrase['phrase']); phrase=". $db->db_add_param($phrase['phrase']);
@@ -2916,16 +3097,16 @@ foreach ($phrases as $phrase)
if ($result = $db->db_query($qry)) if ($result = $db->db_query($qry))
{ {
$phrase_id = ''; $phrase_id = '';
//phrase not existing -> insert phrase and get last inserted phrase_id //phrase not existing -> insert phrase and get last inserted phrase_id
if ($db->db_num_rows($result) === 0) if ($db->db_num_rows($result) === 0)
{ {
$qry_insert = "INSERT INTO system.tbl_phrase( $qry_insert = "INSERT INTO system.tbl_phrase(
app, app,
phrase, phrase,
insertamum, insertamum,
insertvon, insertvon,
category) category)
VALUES(". VALUES(".
$db->db_add_param($phrase['app']). ','. $db->db_add_param($phrase['app']). ','.
$db->db_add_param($phrase['phrase']). ','. $db->db_add_param($phrase['phrase']). ','.
@@ -2936,7 +3117,7 @@ foreach ($phrases as $phrase)
if ($db->db_query($qry_insert)) if ($db->db_query($qry_insert))
{ {
$new = true; $new = true;
$qry_lastId = "SELECT currval('system.tbl_phrase_phrase_id_seq') as id"; $qry_lastId = "SELECT currval('system.tbl_phrase_phrase_id_seq') as id";
if ($db->db_query($qry_lastId)) if ($db->db_query($qry_lastId))
{ {
@@ -2960,37 +3141,37 @@ foreach ($phrases as $phrase)
} }
echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.<br>'; echo 'Kategorie/Phrase: '. $phrase['category']. '/'. $phrase['phrase']. ' vorhanden.<br>';
} }
//*** CHECK PHRASENTEXT //*** CHECK PHRASENTEXT
//loop through languages //loop through languages
foreach ($phrase['phrases'] as $phrase_phrases) foreach ($phrase['phrases'] as $phrase_phrases)
{ {
$language = $phrase_phrases['sprache']; $language = $phrase_phrases['sprache'];
//query phrasentext in certain language //query phrasentext in certain language
$qry_language = $qry_language =
"SELECT * "SELECT *
FROM system.tbl_phrasentext FROM system.tbl_phrasentext
WHERE WHERE
phrase_id=". $phrase_id. " AND phrase_id=". $phrase_id. " AND
sprache='". $language. "'"; sprache='". $language. "'";
if ($result_language = $db->db_query($qry_language)) if ($result_language = $db->db_query($qry_language))
{ {
//if phrasentext not existing in certain language -> insert //if phrasentext not existing in certain language -> insert
if ($db->db_num_rows($result_language) === 0 && !empty($phrase_phrases['text'])) if ($db->db_num_rows($result_language) === 0 && !empty($phrase_phrases['text']))
{ {
$qry_insert = "INSERT INTO system.tbl_phrasentext( $qry_insert = "INSERT INTO system.tbl_phrasentext(
phrase_id, phrase_id,
sprache, sprache,
orgeinheit_kurzbz, orgeinheit_kurzbz,
orgform_kurzbz, orgform_kurzbz,
text, text,
description, description,
insertamum, insertamum,
insertvon) insertvon)
VALUES(". VALUES(".
$db->db_add_param($phrase_id, FHC_INTEGER). ','. $db->db_add_param($phrase_id, FHC_INTEGER). ','.
$db->db_add_param($phrase_phrases['sprache']). ','. $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"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet <xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office: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:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text: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:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle: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:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
> >
<xsl:output method="xml" version="1.0" indent="yes"/> <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: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> </style:style>
</office:automatic-styles> </office:automatic-styles>
<office:body> <office:body>
<xsl:apply-templates select="pruefung"/> <xsl:apply-templates select="pruefung"/>
</office:body> </office:body>
@@ -73,6 +73,7 @@
<xsl:if test="staatsbuergerschaft = ''"> <xsl:if test="staatsbuergerschaft = ''">
<text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p> <text:p text:style-name="P4">Staatsbürgerschaft nicht angegeben</text:p>
</xsl:if> </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 = ''"> <xsl:if test="datum = ''">
<text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p> <text:p text:style-name="P4">Datum der Abschlussprüfung nicht gesetzt</text:p>
</xsl:if> </xsl:if>
@@ -98,19 +99,19 @@
<xsl:value-of select="name" /> <xsl:value-of select="name" />
</text:p> </text:p>
<text:p text:style-name="P1"/> <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:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" /> <xsl:value-of select="gebort" />
<xsl:text>, </xsl:text> <xsl:text>, </xsl:text>
</xsl:if> </xsl:if>
<xsl:value-of select="geburtsnation_engl" />, citizen of <xsl:value-of select="staatsbuergerschaft_engl" />,</text:p> <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:choose>
<xsl:when test="stg_art='b'">Bachelor</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='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</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='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when> <xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p> <xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p>
<text:p text:style-name="P1"/> <text:p text:style-name="P1"/>
@@ -145,4 +146,4 @@
</text:p> </text:p>
</office:text> </office:text>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>
+26 -25
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet <xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office: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:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text: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:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle: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:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
> >
<xsl:output method="xml" version="1.0" indent="yes"/> <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: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> </style:style>
</office:automatic-styles> </office:automatic-styles>
<office:body> <office:body>
<xsl:apply-templates select="pruefung"/> <xsl:apply-templates select="pruefung"/>
</office:body> </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="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls> </text:sequence-decls>
<text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p> <text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind --> <!-- 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="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="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="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="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> <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"/> <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="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="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"/>
<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:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" /> <xsl:value-of select="gebort" />
<xsl:text>, </xsl:text> <xsl:text>, </xsl:text>
@@ -103,15 +104,15 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
<xsl:otherwise> <xsl:otherwise>
<xsl:text>die/der</xsl:text> <xsl:text>die/der</xsl:text>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'k'"> den</xsl:if> <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> Fachhochschul-<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</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='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</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='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when> <xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p> <xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p>
<text:p text:style-name="P1"/> <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> <text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text> </office:text>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>
+24 -23
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet <xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office: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:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text: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:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle: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:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
> >
<xsl:output method="xml" version="1.0" indent="yes"/> <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: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> </style:style>
</office:automatic-styles> </office:automatic-styles>
<office:body> <office:body>
<xsl:apply-templates select="pruefung"/> <xsl:apply-templates select="pruefung"/>
</office:body> </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> <text:p text:style-name="Seitenumbruch">Diploma</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind --> <!-- 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="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="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="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="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> <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"/> <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="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="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"/>
<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:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" /> <xsl:value-of select="gebort" />
<xsl:text>, </xsl:text> <xsl:text>, </xsl:text>
</xsl:if> </xsl:if>
<xsl:value-of select="geburtsnation_engl" />, citizen of <xsl:value-of select="staatsbuergerschaft_engl" />,</text:p> <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:choose>
<xsl:when test="stg_art='b'">Bachelor</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='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diploma</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='l'">Course</xsl:when>
<xsl:when test="stg_art='k'">Short study</xsl:when> <xsl:when test="stg_art='k'">Short study</xsl:when>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p> <xsl:if test="stg_art != 'l' or 'k'" >'s</xsl:if> degree program</text:p>
<text:p text:style-name="P1"/> <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> <text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text> </office:text>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>
+25 -24
View File
@@ -1,19 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet <xsl:stylesheet
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" version="1.0"
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office: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:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text: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:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle: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:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
> >
<xsl:output method="xml" version="1.0" indent="yes"/> <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: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> </style:style>
</office:automatic-styles> </office:automatic-styles>
<office:body> <office:body>
<xsl:apply-templates select="pruefung"/> <xsl:apply-templates select="pruefung"/>
</office:body> </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="Text"/>
<text:sequence-decl text:display-outline-level="0" text:name="Drawing"/> <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
</text:sequence-decls> </text:sequence-decls>
<text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p> <text:p text:style-name="Seitenumbruch">Diplom-Urkunde</text:p>
<!-- Ueberprueft ob benoetigte Datenfelder leer sind --> <!-- 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="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="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="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="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> <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"/> <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="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="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"/>
<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:if test="string-length(gebort)!=0">
<xsl:value-of select="gebort" /> <xsl:value-of select="gebort" />
<xsl:text>, </xsl:text> <xsl:text>, </xsl:text>
@@ -105,13 +106,13 @@ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'k'"> den</xsl:if> <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> Fachhochschul-<xsl:choose>
<xsl:when test="stg_art='b'">Bachelor</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='m'">Master</xsl:when>
<xsl:when test="stg_art='d'">Diplom</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='l'">Lehrgang</xsl:when>
<xsl:when test="stg_art='k'">Kurzstudium</xsl:when> <xsl:when test="stg_art='k'">Kurzstudium</xsl:when>
</xsl:choose> </xsl:choose>
<xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p> <xsl:if test="stg_art != 'k' or 'l'">-Studiengang</xsl:if></text:p>
<text:p text:style-name="P1"/> <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> <text:p text:style-name="P1"><xsl:value-of select="rektor" /></text:p>
</office:text> </office:text>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>
+1
View File
@@ -241,6 +241,7 @@ $qryall='
JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid) JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid)
WHERE WHERE
aktiv=false aktiv=false
and bismelden=true
AND (ende>now() OR ende IS NULL) AND (ende>now() OR ende IS NULL)
GROUP BY uid, nachname, vorname GROUP BY uid, nachname, vorname
ORDER by 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 $qry = "SELECT ma.* FROM
( (
SELECT SELECT
vorname, nachname, uid, personalnummer, insertamum,anmerkung, vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv,
( (
SELECT studiensemester_kurzbz FROM ( SELECT studiensemester_kurzbz FROM (
SELECT SELECT
@@ -198,6 +198,7 @@ if ($result = $db->db_query($qry))
<th>Nachname</th> <th>Nachname</th>
<th>Vorname</th> <th>Vorname</th>
<th>UID</th> <th>UID</th>
<th>Aktiv</th>
<th>Personalnummer</th> <th>Personalnummer</th>
<th>Anlagedatum</th> <th>Anlagedatum</th>
<th>Letzer Lehrauftrag</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->nachname).'</td>
<td>'.$db->convert_html_chars($row->vorname).'</td> <td>'.$db->convert_html_chars($row->vorname).'</td>
<td>'.$db->convert_html_chars($row->uid).'</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($row->personalnummer).'</td>
<td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td> <td>'.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).'</td>
<td>'.$db->convert_html_chars($row->letzter_lehrauftrag).'</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 //Bewerberblock bei Ausserordentlichen nicht anzeigen
if($stg_kz!=('9'.$erhalter)) 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); $orgcodes = array_unique($orgform_code_array);
//Mischform //Mischform
@@ -1005,7 +1007,7 @@ function GenerateXMLStudentBlock($row)
$datei.=" $datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>"; <ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
} }
$datei.=" $datei.="
<StaatsangehoerigkeitCode>".$row->staatsbuergerschaft."</StaatsangehoerigkeitCode> <StaatsangehoerigkeitCode>".$row->staatsbuergerschaft."</StaatsangehoerigkeitCode>
<HeimatPLZ>".$plz."</HeimatPLZ> <HeimatPLZ>".$plz."</HeimatPLZ>
@@ -1152,7 +1154,9 @@ function GenerateXMLStudentBlock($row)
$datei.=" $datei.="
</StudentIn>"; </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])) 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/dvb.class.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php'); require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../include/datum.class.php'); require_once(dirname(__FILE__).'/../../include/datum.class.php');
require_once(dirname(__FILE__).'/../../include/errorhandler.class.php');
if (!$db = new basis_db()) if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.'); die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$limit = ''; $limit = '';
$debug = false; $debug = false;
$softrun = false;
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine // Wenn das Script nicht ueber Commandline gestartet wird, muss eine
// Authentifizierung stattfinden // Authentifizierung stattfinden
if (php_sapi_name() != 'cli') if (php_sapi_name() != 'cli')
{ {
$nl = '<br>';
// Benutzerdefinierte Variablen laden // Benutzerdefinierte Variablen laden
$user = get_uid(); $user = get_uid();
loadVariables($user); loadVariables($user);
@@ -48,25 +51,32 @@ if (php_sapi_name() != 'cli')
if (!$rechte->isBerechtigt('admin', null, 'suid')) if (!$rechte->isBerechtigt('admin', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite'); die('Sie haben keine Berechtigung für diese Seite');
if(isset($_GET['debug'])) if (isset($_GET['debug']))
$debug = ($_GET['debug']=='true'?true:false); $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']; $limit = $_GET['limit'];
if (isset($_GET['softrun']))
$debug = ($_GET['softrun'] == 'true'?true:false);
} }
else else
{ {
$nl = "\n";
// Commandline Paramter parsen bei Aufruf ueber Cronjob // Commandline Paramter parsen bei Aufruf ueber Cronjob
// zb php matrikelnummer.php --limit 100 --debug true // zb php matrikelnummer.php --limit 100 --debug true
$longopt = array( $longopt = array(
"limit:", "limit:",
"debug:" "debug:",
"softrun:"
); );
$commandlineparams = getopt('', $longopt); $commandlineparams = getopt('', $longopt);
if (isset($commandlineparams['limit']) && is_numeric($commandlineparams['limit'])) if (isset($commandlineparams['limit']) && is_numeric($commandlineparams['limit']))
$limit = $commandlineparams['limit']; $limit = $commandlineparams['limit'];
if (isset($commandlineparams['debug'])) 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; $matrikelnummer_added = 0;
@@ -74,7 +84,7 @@ $webservice = new dvb(DVB_USERNAME, DVB_PASSWORD, $debug);
$qry = " $qry = "
SELECT SELECT
distinct person_id distinct person_id, vorname, nachname
FROM FROM
public.tbl_person public.tbl_person
JOIN public.tbl_benutzer USING(person_id) JOIN public.tbl_benutzer USING(person_id)
@@ -83,20 +93,23 @@ $qry = "
public.tbl_benutzer.aktiv = true public.tbl_benutzer.aktiv = true
AND tbl_person.matr_nr is null AND tbl_person.matr_nr is null
AND studiengang_kz<10000 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 != '') if ($limit != '')
$qry.=" LIMIT ".$limit; $qry .= " LIMIT ".$limit;
$db = new basis_db(); $db = new basis_db();
if ($result = $db->db_query($qry)) if ($result = $db->db_query($qry))
{ {
while($row = $db->db_fetch_object($result)) while ($row = $db->db_fetch_object($result))
{ {
if($webservice->assignMatrikelnummer($row->person_id)) echo $nl."Pruefe $row->person_id $row->vorname $row->nachname";
echo "\n<br>".$row->person_id.' OK'; $data = $webservice->assignMatrikelnummer($row->person_id, $softrun);
if (ErrorHandler::isSuccess($data))
echo ' OK';
else else
echo "\n<br>".$row->person_id.' Failed:'.$webservice->errormsg; echo ' Failed:'.$webservice->errormsg;
} }
} }
if($debug) if($debug)
+81 -63
View File
@@ -24,7 +24,7 @@
require_once('../../config/vilesci.config.inc.php'); require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php'); require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.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/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/benutzerberechtigung.class.php');
@@ -34,8 +34,15 @@ if (!$db = new basis_db())
$stg_obj = new studiengang(); $stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false); $stg_obj->getAll('typ, kurzbz', false);
$fb_obj = new fachbereich(); $oe_typ = new organisationseinheit();
$fb_obj->getAll(); $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 = new benutzerberechtigung();
$rechte->getBerechtigungen(get_uid()); $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> <script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/> <link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() $(document).ready(function()
{ {
$("#t1").tablesorter( $("#t1").tablesorter(
{ {
sortList: [[1,0]], sortList: [[1,0]],
widgets: ["zebra"], widgets: ["zebra"],
headers: {11: {sorter: false}, 12: {sorter: false}, 13: {sorter: false}} headers: {11: {sorter: false}, 12: {sorter: false}, 13: {sorter: false}}
}); });
}); });
</script> </script>
</head> </head>
<body class="Background_main"> <body class="Background_main">
<h2>Liste der MitarbeiterInnen der Institute</h2>'; <h2>Liste der MitarbeiterInnen der Abteilungen</h2>';
$stsem = new studiensemester(); $stsem = new studiensemester();
if(isset($_GET['ws']) && check_stsem($_GET['ws'])) if(isset($_GET['ws']) && check_stsem($_GET['ws']))
$ws = $_GET['ws']; $ws = $_GET['ws'];
else else
$ws = $stsem->getNearest(1); $ws = $stsem->getNearest(1);
if(isset($_GET['ss']) && check_stsem($_GET['ss'])) if(isset($_GET['ss']) && check_stsem($_GET['ss']))
$ss = $_GET['ss']; $ss = $_GET['ss'];
else else
@@ -82,49 +89,55 @@ else
if($rechte->isBerechtigt('admin', 0) || $rechte->isBerechtigt('mitarbeiter', 0)) if($rechte->isBerechtigt('admin', 0) || $rechte->isBerechtigt('mitarbeiter', 0))
$where = ''; $where = '';
else else
{ {
$fb = $rechte->getFbKz(); $oe = $rechte->getOEkurzbz('assistenz');
if(count($fb)>0) 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 $where = " AND EXISTS (
tbl_lehreinheit.studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND SELECT * FROM
fachbereich_kurzbz IN("; lehre.tbl_lehreinheitmitarbeiter
foreach ($fb as $fachbereich_kurzbz) 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.="''))"; $where.="''))";
} }
else else
die('Sie haben keine Berechtigung fuer diese Seite'); die('Sie haben keine Berechtigung fuer diese Seite');
} }
//Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung //Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung
$qry = "SELECT $qry = "SELECT
personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen, personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen,
( (
SELECT SELECT
sum(semesterstunden) sum(semesterstunden)
FROM FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ws)." studiensemester_kurzbz=".$db->db_add_param($ws)."
) as lvs_wintersemester, ) as lvs_wintersemester,
( (
SELECT SELECT
sum(semesterstunden) sum(semesterstunden)
FROM FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ss)." studiensemester_kurzbz=".$db->db_add_param($ss)."
) as lvs_sommersemester, ) as lvs_sommersemester,
( (
SELECT SELECT
tbl_organisationseinheit.bezeichnung tbl_organisationseinheit.oe_kurzbz
FROM FROM
public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING(oe_kurzbz) public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE WHERE
uid=tbl_mitarbeiter.mitarbeiter_uid AND uid=tbl_mitarbeiter.mitarbeiter_uid AND
@@ -133,9 +146,9 @@ $qry = "SELECT
AND (datum_bis>=now() OR datum_bis is null) AND (datum_bis>=now() OR datum_bis is null)
LIMIT 1 LIMIT 1
) as hauptzuteilung ) as hauptzuteilung
FROM FROM
public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id) JOIN public.tbl_person USING(person_id)
WHERE tbl_benutzer.aktiv $where"; WHERE tbl_benutzer.aktiv $where";
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
@@ -149,12 +162,11 @@ if($result = $db->db_query($qry))
<th>Nachname</th> <th>Nachname</th>
<th>Vorname</th> <th>Vorname</th>
<th>Fix / Frei</th> <th>Fix / Frei</th>
<th>Kompetenzen</th>
<th>ALVS<br>".$db->convert_html_chars($ws)."</th> <th>ALVS<br>".$db->convert_html_chars($ws)."</th>
<th>ALVS<br>".$db->convert_html_chars($ss)."</th> <th>ALVS<br>".$db->convert_html_chars($ss)."</th>
<th>Studiengang</th> <th>Studiengang</th>
<th>Institut Hauptzuteilung</th> <th>Disziplinäre Zuordnung</th>
<th>Sonstige Institutszuteilungen</th> <th>Zuteilungen laut Lehrauträge</th>
</tr> </tr>
</thead> </thead>
<tbody>"; <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->nachname)."</td>";
echo "<td>".$db->convert_html_chars($row->vorname)."</td>"; echo "<td>".$db->convert_html_chars($row->vorname)."</td>";
echo "<td>".($row->fixangestellt=='t'?'fix':'frei')."</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_wintersemester</td>";
echo "<td>$row->lvs_sommersemester</td>"; echo "<td>$row->lvs_sommersemester</td>";
echo '<td>'; echo '<td>';
$qry = " $qry = "
SELECT SELECT
distinct studiengang_kz distinct studiengang_kz
FROM FROM
lehre.tbl_lehreinheitmitarbeiter lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")"; AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text=''; $text='';
if($row->hauptzuteilung!='')
$abteilung = $oe_arr[$row->hauptzuteilung];
else
$abteilung = '';
if($result_stg = $db->db_query($qry)) if($result_stg = $db->db_query($qry))
while($row_stg = $db->db_fetch_object($result_stg)) while($row_stg = $db->db_fetch_object($result_stg))
$text.= $stg_obj->kuerzel_arr[$row_stg->studiengang_kz].', '; $text.= $stg_obj->kuerzel_arr[$row_stg->studiengang_kz].', ';
echo mb_substr($text, 0, mb_strlen($text)-2); echo mb_substr($text, 0, mb_strlen($text)-2);
echo '</td>'; echo '</td>';
echo "<td>".$db->convert_html_chars($row->hauptzuteilung)."</td>"; echo "<td>".$db->convert_html_chars($abteilung)."</td>";
echo "<td>"; echo "<td>";
$qry = " $qry = "
SELECT SELECT
distinct fachbereich_kurzbz distinct lehrfach.oe_kurzbz
FROM FROM
lehre.tbl_lehreinheitmitarbeiter lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.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
WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")"; AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text=''; $text='';
if($result_fb = $db->db_query($qry)) if($result_oe = $db->db_query($qry))
while($row_fb = $db->db_fetch_object($result_fb)) while($row_oe = $db->db_fetch_object($result_oe))
$text.= $fb_obj->bezeichnung_arr[$row_fb->fachbereich_kurzbz].', '; {
if($row_oe->oe_kurzbz!='')
$text.= $oe_arr[$row_oe->oe_kurzbz].', ';
}
echo mb_substr($text, 0, mb_strlen($text)-2); echo mb_substr($text, 0, mb_strlen($text)-2);
echo "</td>"; echo "</td>";
echo '</tr>'; echo '</tr>';
+11
View File
@@ -386,6 +386,17 @@ if (!$errorOccurred && $dataPosted)
<form name="saveLeistungsstipendium" method="post" enctype="multipart/form-data" action=""> <form name="saveLeistungsstipendium" method="post" enctype="multipart/form-data" action="">
<table border=0> <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> <tr>
<th width="30%"> <th width="30%">
<th width="3%"> <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 // 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> $msg_error[] = 'Beide Personen haben eine Matrikelnummer und können nicht zusammengelegt werden.<br>
Bitte wenden Sie sich an einen Administrator.'; Bitte wenden Sie sich an einen Administrator.';
$error = true; $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 // Wenn zwei gleiche rt_person Einträge vorhanden sind, wird ein Fehler ausgegeben und abgebrochen
$reihungstest_personToKeep = new reihungstest(); $reihungstest_personToKeep = new reihungstest();
$reihungstest_personToKeep->getReihungstestPerson($personToKeep); $reihungstest_personToKeep->getReihungstestPerson($personToKeep);
@@ -276,6 +285,16 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$matr_nr = $personToKeep_obj->matr_nr; $matr_nr = $personToKeep_obj->matr_nr;
if ($personToKeep_obj->matr_nr == '' && $personToDelete_obj->matr_nr != '') if ($personToKeep_obj->matr_nr == '' && $personToDelete_obj->matr_nr != '')
$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 // Letztbenutzten Zugangscode abfragen und übernehmen
$zugangscode = ''; $zugangscode = '';
@@ -339,6 +358,9 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
// Matr_nr erst setzen, wenn nur mehr eine Person vorhanden ist // 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) . ";"; $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)) if ($db->db_query($sql_query_upd1))
{ {
$msg_info[] = "Update Query:"; $msg_info[] = "Update Query:";
+8 -7
View File
@@ -46,10 +46,10 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
<title>Statistik - Details</title> <title>Statistik - Details</title>
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css"> <link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
<link rel="stylesheet" href="../../skin/vilesci.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"> <script type="text/javascript">
function addNewContent(bezeichnung) function addNewContent(bezeichnung)
{ {
if(bezeichnung == '') if(bezeichnung == '')
{ {
if($( "#bezeichnung" ).val() != '') if($( "#bezeichnung" ).val() != '')
@@ -59,12 +59,12 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
} }
else else
var bez = bezeichnung; var bez = bezeichnung;
data = { data = {
NewContent: "NewContent", NewContent: "NewContent",
titel: bez, 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({ $.ajax({
@@ -72,7 +72,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
data: data, data: data,
type: "POST", type: "POST",
dataType: "json", dataType: "json",
success: function(data) success: function(data)
{ {
//set contentID into the ContentID input-field //set contentID into the ContentID input-field
$("#content_id").val(data); $("#content_id").val(data);
@@ -83,7 +83,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
// disable the contentID add-image // disable the contentID add-image
$("#content_id").next().css({"pointer-events": "none", "cursor": "default"}); $("#content_id").next().css({"pointer-events": "none", "cursor": "default"});
}, },
error: function(data) error: function(data)
{ {
alert("ERROR:"+data); alert("ERROR:"+data);
} }
@@ -105,6 +105,7 @@ if(!$rechte->isBerechtigt('basis/statistik', null, 'suid'))
{ {
$statistik_kurzbz = filter_input(INPUT_POST, 'statistik_kurzbz'); $statistik_kurzbz = filter_input(INPUT_POST, 'statistik_kurzbz');
$exists = false; $exists = false;
$statistik->berechtigung_kurzbz='addon/reports';
} }
if(isset($_POST['save'])) 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><input type="text" name="bezeichnung" size="80" maxlength="256" value="<?php echo $statistik->bezeichnung ?>"></td>
<td></td> <td></td>
<td>ContentID</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)): ?> <?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 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> <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>