diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
index 8e1b601aa..28edf4824 100644
--- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
+++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
@@ -22,8 +22,8 @@ class approveAnrechnungDetail extends Auth_Controller
// Set required permissions
parent::__construct(
array(
- 'index' => 'lehre/anrechnung_genehmigen:rw',
- 'download' => 'lehre/anrechnung_genehmigen:rw',
+ 'index' => 'lehre/anrechnung_genehmigen:r',
+ 'download' => 'lehre/anrechnung_genehmigen:r',
'approve' => 'lehre/anrechnung_genehmigen:rw',
'reject' => 'lehre/anrechnung_genehmigen:rw',
'requestRecommendation' => 'lehre/anrechnung_genehmigen:rw',
@@ -81,7 +81,7 @@ class approveAnrechnungDetail extends Auth_Controller
}
// Check if user is entitled to read the Anrechnung
- self::_checkIfEntitledToReadAnrechnung($anrechnung_id);
+ $this->_checkIfEntitledToReadAnrechnung($anrechnung_id);
// Get Anrechung data
$anrechnungData = $this->anrechnunglib->getAnrechnungData($anrechnung_id);
@@ -99,11 +99,16 @@ class approveAnrechnungDetail extends Auth_Controller
// Get Genehmigung data
$genehmigungData = $this->anrechnunglib->getGenehmigungData($anrechnung_id);
+ $hasReadOnlyAccess =
+ $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $antragData->studiengang_kz)
+ && !$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid', $antragData->studiengang_kz);
+
$viewData = array(
'antragData' => $antragData,
'anrechnungData' => $anrechnungData,
'empfehlungData' => $empfehlungData,
- 'genehmigungData' => $genehmigungData
+ 'genehmigungData' => $genehmigungData,
+ 'hasReadOnlyAccess' => $hasReadOnlyAccess
);
$this->load->view('lehre/anrechnung/approveAnrechnungDetail.php', $viewData);
@@ -385,7 +390,7 @@ class approveAnrechnungDetail extends Auth_Controller
}
// Check if user is entitled to read dms doc
- self::_checkIfEntitledToReadDMSDoc($dms_id);
+ $this->_checkIfEntitledToReadDMSDoc($dms_id);
// Set filename to be used on downlaod
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
@@ -421,26 +426,13 @@ class approveAnrechnungDetail extends Auth_Controller
'lehrveranstaltung_id' => getData($result)[0]->lehrveranstaltung_id
));
- if(!hasData($result))
- {
- show_error('Failed loading Lehrveranstaltung');
- }
+ $studiengang_kz = getData($result)[0]->studiengang_kz;
- // Get STGL
- $result = $this->StudiengangModel->getLeitung(getData($result)[0]->studiengang_kz);
-
- if (hasData($result))
- {
- foreach (getData($result) as $stgl)
- {
- if ($stgl->uid == $this->_uid)
- {
- return;
- }
- }
- }
-
- show_error('You are not entitled to read this Anrechnung');
+ // Check if user is entitled
+ if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
+ {
+ show_error('You are not entitled to read this page');
+ }
}
/**
@@ -460,23 +452,13 @@ class approveAnrechnungDetail extends Auth_Controller
'lehrveranstaltung_id' => $result->lehrveranstaltung_id
));
- if(!$result = getData($result)[0])
- {
- show_error('Failed loading Lehrveranstaltung');
- }
+ $studiengang_kz = getData($result)[0]->studiengang_kz;
- // Get STGL
- $result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
-
- if($result = getData($result)[0])
- {
- if ($result->uid == $this->_uid)
- {
- return;
- }
- }
-
- show_error('You are not entitled to read this document');
+ // Check if user is entitled
+ if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
+ {
+ show_error('You are not entitled to read this document');
+ }
}
/**
diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
index 25c802caf..053988848 100644
--- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
+++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
@@ -5,7 +5,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class approveAnrechnungUebersicht extends Auth_Controller
{
const BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN = 'lehre/anrechnung_genehmigen';
-
+ const BERECHTIGUNG_ANRECHNUNG_ANLEGEN = 'lehre/anrechnung_anlegen';
+
const REVIEW_ANRECHNUNG_URI = '/lehre/anrechnung/ReviewAnrechnungUebersicht';
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
@@ -19,8 +20,8 @@ class approveAnrechnungUebersicht extends Auth_Controller
// Set required permissions
parent::__construct(
array(
- 'index' => 'lehre/anrechnung_genehmigen:rw',
- 'download' => 'lehre/anrechnung_genehmigen:rw',
+ 'index' => 'lehre/anrechnung_genehmigen:r',
+ 'download' => 'lehre/anrechnung_genehmigen:r',
'approve' => 'lehre/anrechnung_genehmigen:rw',
'reject' => 'lehre/anrechnung_genehmigen:rw',
'requestRecommendation' => 'lehre/anrechnung_genehmigen:rw'
@@ -76,10 +77,19 @@ class approveAnrechnungUebersicht extends Auth_Controller
{
show_error(getError($studiengang_kz_arr));
}
-
+
+ $hasReadOnlyAccess =
+ $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's')
+ && !$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 'suid');
+
+ // This permission is checked here to disable create Anrechnung button, if permission is not given
+ $hasCreateAnrechnungAccess = $this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_ANLEGEN, 's');
+
$viewData = array(
'studiensemester_selected' => $studiensemester_kurzbz,
- 'studiengaenge_entitled' => $studiengang_kz_arr
+ 'studiengaenge_entitled' => $studiengang_kz_arr,
+ 'hasReadOnlyAccess' => $hasReadOnlyAccess,
+ 'hasCreateAnrechnungAccess' => $hasCreateAnrechnungAccess
);
$this->load->view('lehre/anrechnung/approveAnrechnungUebersicht.php', $viewData);
@@ -239,7 +249,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
}
// Check if user is entitled to read dms doc
- self::_checkIfEntitledToReadDMSDoc($dms_id);
+ $this->_checkIfEntitledToReadDMSDoc($dms_id);
// Set filename to be used on downlaod
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
@@ -281,22 +291,14 @@ class approveAnrechnungUebersicht extends Auth_Controller
{
show_error('Failed loading Lehrveranstaltung');
}
+
+ $studiengang_kz = $result->studiengang_kz;
- // Get STGL
- $result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
-
- if (hasData($result))
- {
- foreach (getData($result) as $stgl)
- {
- if ($stgl->uid == $this->_uid)
- {
- return;
- }
- }
- }
-
- show_error('You are not entitled to read this document');
+ // Check if user is entitled
+ if (!$this->permissionlib->isBerechtigt(self::BERECHTIGUNG_ANRECHNUNG_GENEHMIGEN, 's', $studiengang_kz))
+ {
+ show_error('You are not entitled to read this document');
+ }
}
/**
diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php
index 78175f4e6..7981f0ac8 100644
--- a/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php
+++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungDetail.php
@@ -79,7 +79,7 @@ class reviewAnrechnungDetail extends Auth_Controller
// Get Anrechung data
$anrechnungData = $this->anrechnunglib->getAnrechnungData($anrechnung_id);
-
+
// Get Antrag data
$antragData = $this->anrechnunglib->getAntragData(
$anrechnungData->prestudent_id,
@@ -110,7 +110,7 @@ class reviewAnrechnungDetail extends Auth_Controller
{
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
}
-
+
// Get lectors person data
if (!$person = getData($this->PersonModel->getByUID($this->_uid))[0])
{
@@ -218,10 +218,10 @@ class reviewAnrechnungDetail extends Auth_Controller
// Check if user is entitled to read dms doc
self::_checkIfEntitledToReadDMSDoc($dms_id);
-
+
// Set filename to be used on downlaod
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
-
+
// Download file
$this->dmslib->download($dms_id, $filename);
}
@@ -320,7 +320,12 @@ class reviewAnrechnungDetail extends Auth_Controller
foreach ($studiengang_kz_arr as $studiengang_kz)
{
// Get STGL mail address, if available, otherwise get assistance mail address
- list ($to, $vorname) = $this->_getSTGLMailAddress($studiengang_kz);
+ $stgmail = $this->_getSTGLMailAddress($studiengang_kz);
+
+ if(isSuccess($stgmail) && hasData($stgmail))
+ list ($to, $vorname) = getData($stgmail)[0];
+ else
+ show_error ('Failed retrieving DegreeProgram Mail');
// Get full name of lector
$this->load->model('person/Person_model', 'PersonModel');
@@ -361,24 +366,28 @@ class reviewAnrechnungDetail extends Auth_Controller
$result = $this->StudiengangModel->getLeitung($stg_kz);
// Get STGL mail address, if available
- if (hasData($result))
+ if (isSuccess($result) && hasData($result))
{
- return array(
+ return success(array(
$result->retval[0]->uid. '@'. DOMAIN,
$result->retval[0]->vorname
- );
+ ));
}
// ...otherwise get assistance mail address
else
{
$result = $this->StudiengangModel->load($stg_kz);
- if (hasData($result))
+ if (isSuccess($result) && hasData($result))
{
- return array(
+ return success(array(
$result->retval[0]->email,
''
- );
+ ));
+ }
+ else
+ {
+ return error('Keine E-Mail für diesen Stg gefunden');
}
}
}
diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php
index cd0b7afaf..e5475d0d0 100644
--- a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php
+++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php
@@ -5,15 +5,15 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class reviewAnrechnungUebersicht extends Auth_Controller
{
const BERECHTIGUNG_ANRECHNUNG_EMPFEHLEN = 'lehre/anrechnung_empfehlen';
-
+
const APPROVE_ANRECHNUNG_URI = '/lehre/anrechnung/ApproveAnrechnungUebersicht';
-
+
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
const ANRECHNUNGSTATUS_PROGRESSED_BY_KF = 'inProgressKF';
const ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR = 'inProgressLektor';
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
-
+
public function __construct()
{
// Set required permissions
@@ -25,24 +25,24 @@ class reviewAnrechnungUebersicht extends Auth_Controller
'dontRecommend' => 'lehre/anrechnung_empfehlen:rw'
)
);
-
+
// Load models
$this->load->model('education/Anrechnung_model', 'AnrechnungModel');
$this->load->model('education/Anrechnungstatus_model', 'AnrechnungstatusModel');
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
-
+
// Load libraries
$this->load->library('WidgetLib');
$this->load->library('PermissionLib');
$this->load->library('AnrechnungLib');
$this->load->library('DmsLib');
-
+
// Load helpers
$this->load->helper('form');
$this->load->helper('url');
$this->load->helper('hlp_sancho_helper');
-
+
// Load language phrases
$this->loadPhrases(
array(
@@ -54,12 +54,12 @@ class reviewAnrechnungUebersicht extends Auth_Controller
'table'
)
);
-
+
$this->_setAuthUID();
-
+
$this->setControllerId();
}
-
+
public function index()
{
// Get study semester
@@ -70,14 +70,14 @@ class reviewAnrechnungUebersicht extends Auth_Controller
$result = $this->StudiensemesterModel->getNearest();
$studiensemester_kurzbz = getData($result)[0]->studiensemester_kurzbz;
}
-
+
$viewData = array(
'studiensemester_selected' => $studiensemester_kurzbz
);
-
+
$this->load->view('lehre/anrechnung/reviewAnrechnungUebersicht.php', $viewData);
}
-
+
/**
* Recommend Anrechnungen.
*/
@@ -103,7 +103,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
);
}
}
-
+
// Output json to ajax
if (isset($json) && !isEmptyArray($json))
{
@@ -123,19 +123,19 @@ class reviewAnrechnungUebersicht extends Auth_Controller
return $this->outputJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
}
}
-
+
/**
* Dont recommend Anrechnungen.
*/
public function dontRecommend()
{
$data = $this->input->post('data');
-
+
if(isEmptyArray($data))
{
return $this->outputJsonError('Fehler beim Übertragen der Daten.');
}
-
+
foreach ($data as $item)
{
// Approve Anrechnung
@@ -149,7 +149,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
);
}
}
-
+
// Output json to ajax
if (isset($json) && !isEmptyArray($json))
{
@@ -158,7 +158,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
{
show_error('Failed sending emails');
}
-
+
return $this->outputJsonSuccess($json);
}
else
@@ -166,7 +166,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
return $this->outputJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
}
}
-
+
/**
* Download and open uploaded document (Nachweisdokument).
*/
@@ -178,28 +178,28 @@ class reviewAnrechnungUebersicht extends Auth_Controller
{
show_error('Wrong parameter');
}
-
+
// Check if user is entitled to read dms doc
self::_checkIfEntitledToReadDMSDoc($dms_id);
-
+
// Set filename to be used on downlaod
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
-
+
// Download file
$this->dmslib->download($dms_id, $filename);
}
-
-
+
+
/**
* Retrieve the UID of the logged user and checks if it is valid
*/
private function _setAuthUID()
{
$this->_uid = getAuthUID();
-
+
if (!$this->_uid) show_error('User authentification failed');
}
-
+
/**
* Check if user is entitled to read dms doc
* @param $dms_id
@@ -207,15 +207,15 @@ class reviewAnrechnungUebersicht extends Auth_Controller
private function _checkIfEntitledToReadDMSDoc($dms_id)
{
$result = $this->AnrechnungModel->loadWhere(array('dms_id' => $dms_id));
-
+
if(!$result = getData($result)[0])
{
show_error('Failed retrieving Anrechnung');
}
-
+
$result = $this->LehrveranstaltungModel
->getLecturersByLv($result->studiensemester_kurzbz, $result->lehrveranstaltung_id);
-
+
if($result = getData($result))
{
$entitled_lector_arr = array_column($result, 'uid');
@@ -225,10 +225,10 @@ class reviewAnrechnungUebersicht extends Auth_Controller
return;
}
}
-
+
show_error('You are not entitled to read this document');
}
-
+
/**
* Send mails to STGL (if not present then to STGL assistance)
* @param $mail_params
@@ -239,36 +239,41 @@ class reviewAnrechnungUebersicht extends Auth_Controller
{
// Get studiengaenge
$studiengang_kz_arr = array();
-
+
foreach ($mail_params as $item)
{
$this->AnrechnungModel->addSelect('studiengang_kz');
$this->AnrechnungModel->addJoin('public.tbl_prestudent', 'prestudent_id');
-
+
$studiengang_kz_arr[]= $this->AnrechnungModel->load($item['anrechnung_id'])->retval[0]->studiengang_kz;
}
-
+
$studiengang_kz_arr = array_unique($studiengang_kz_arr);
-
+
// Send mail to STGL of each studiengang
foreach ($studiengang_kz_arr as $studiengang_kz)
{
// Get STGL mail address, if available, otherwise get assistance mail address
- list ($to, $vorname) = $this->_getSTGLMailAddress($studiengang_kz);
-
+ $stgmail = $this->_getSTGLMailAddress($studiengang_kz);
+
+ if(isSuccess($stgmail) && hasData($stgmail))
+ list ($to, $vorname) = getData($stgmail)[0];
+ else
+ show_error ('Failed retrieving DegreeProgram Mail');
+
// Get full name of lector
$this->load->model('person/Person_model', 'PersonModel');
if (!$lector_name = getData($this->PersonModel->getFullName($this->_uid)))
{
show_error ('Failed retrieving person');
}
-
+
// Link to Antrag genehmigen
$url =
CIS_ROOT. 'cis/index.php?menu='.
CIS_ROOT. 'cis/menu.php?content_id=&content='.
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
-
+
// Prepare mail content
$body_fields = array(
'vorname' => $vorname,
@@ -276,7 +281,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
'empfehlung' => $empfehlung ? 'positive' : 'negative',
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
-
+
sendSanchoMail(
'AnrechnungEmpfehlungAbgeben',
$body_fields,
@@ -284,37 +289,41 @@ class reviewAnrechnungUebersicht extends Auth_Controller
'Anerkennung nachgewiesener Kenntnisse: Empfehlung wurde abgegeben'
);
}
-
+
return true;
}
-
+
// Get STGL mail address, if available, otherwise get assistance mail address
private function _getSTGLMailAddress($stg_kz)
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$result = $this->StudiengangModel->getLeitung($stg_kz);
-
+
// Get STGL mail address, if available
- if (hasData($result))
+ if (isSuccess($result) && hasData($result))
{
- return array(
+ return success(array(
$result->retval[0]->uid. '@'. DOMAIN,
$result->retval[0]->vorname
- );
+ ));
}
// ...otherwise get assistance mail address
else
{
$result = $this->StudiengangModel->load($stg_kz);
-
- if (hasData($result))
+
+ if (isSuccess($result) && hasData($result))
{
- return array(
+ return success(array(
$result->retval[0]->email,
''
- );
+ ));
+ }
+ else
+ {
+ return error('Keine E-Mail für diesen Stg gefunden');
}
}
}
-
-}
\ No newline at end of file
+
+}
diff --git a/application/libraries/AnrechnungLib.php b/application/libraries/AnrechnungLib.php
index 3bec62dce..ee197ab05 100644
--- a/application/libraries/AnrechnungLib.php
+++ b/application/libraries/AnrechnungLib.php
@@ -89,6 +89,7 @@ class AnrechnungLib
$antrag_data->vorname = $person->vorname;
$antrag_data->nachname = $person->nachname;
$antrag_data->matrikelnr = $student->matrikelnr;
+ $antrag_data->studiengang_kz = $studiengang->studiengang_kz;
$antrag_data->stg_bezeichnung = $studiengang->bezeichnung;
$antrag_data->lektoren = $lv_lektoren_arr;
$antrag_data->zgv = $latest_zgv_bezeichnung;
diff --git a/application/models/crm/Konto_model.php b/application/models/crm/Konto_model.php
index a3b5cdbb6..840bb290c 100644
--- a/application/models/crm/Konto_model.php
+++ b/application/models/crm/Konto_model.php
@@ -18,45 +18,50 @@ class Konto_model extends DB_Model
public function setPaid($buchungsnr)
{
// get payment
- $buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
+ $buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
- if(isSuccess($buchungResult) && hasData($buchungResult))
+ if (isSuccess($buchungResult) && hasData($buchungResult))
{
+ $buchung = getData($buchungResult)[0];
+
// get already paid amount
$this->addSelect('sum(betrag) as bezahlt');
$this->addGroupBy('buchungsnr_verweis');
- $buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
+ $buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
- if(isSuccess($buchungVerweisResult))
+ if (isSuccess($buchungVerweisResult))
{
- if(hasData($buchungVerweisResult))
- {
- $betragBezahltResult = getData($buchungVerweisResult);
- $betragBezahlt = $betragBezahltResult->bezahlt;
- }
- else
- $betragBezahlt = 0;
+ $betragBezahlt = 0;
- $buchung = getData($buchungResult);
- $buchung = $buchung[0];
+ if (hasData($buchungVerweisResult))
+ {
+ $betragBezahlt = getData($buchungVerweisResult)[0]->bezahlt;
+ }
// calculate open amount
- $betragOffen = $betragBezahlt - $buchung->betrag*(-1);
+ $betragOffen = $betragBezahlt - $buchung->betrag * (-1);
- $data = array(
- 'person_id' => $buchung->person_id,
- 'studiengang_kz' => $buchung->studiengang_kz,
- 'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
- 'buchungsnr_verweis' => $buchungsnr,
- 'betrag' => str_replace(',','.',$betragOffen*(-1)),
- 'buchungsdatum' => date('Y-m-d'),
- 'buchungstext' => $buchung->buchungstext,
- 'insertamum' => date('Y-m-d H:i:s'),
- 'insertvon' => '',
- 'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
- );
+ if ($betragOffen != 0)
+ {
+ $data = array(
+ 'person_id' => $buchung->person_id,
+ 'studiengang_kz' => $buchung->studiengang_kz,
+ 'studiensemester_kurzbz' => $buchung->studiensemester_kurzbz,
+ 'buchungsnr_verweis' => $buchungsnr,
+ 'betrag' => str_replace(',', '.', $betragOffen * (-1)),
+ 'buchungsdatum' => date('Y-m-d'),
+ 'buchungstext' => $buchung->buchungstext,
+ 'insertamum' => date('Y-m-d H:i:s'),
+ 'insertvon' => '',
+ 'buchungstyp_kurzbz' => $buchung->buchungstyp_kurzbz,
+ );
- return $this->insert($data);
+ return $this->insert($data);
+ }
+ else
+ {
+ return success();
+ }
}
else
{
diff --git a/application/models/organisation/Studiengang_model.php b/application/models/organisation/Studiengang_model.php
index 6358ca81e..e2b3bdfb7 100644
--- a/application/models/organisation/Studiengang_model.php
+++ b/application/models/organisation/Studiengang_model.php
@@ -448,10 +448,11 @@ class Studiengang_model extends DB_Model
return $this->execQuery($query, array($typ));
}
-
+
/**
- * Get Studiengangsleitung
- * @param null $studiengang_kz
+ * Get Studiengangsleitung/en of Studiengang/Studiengaenge.
+ *
+ * @param null $studiengang_kz Numeric or Array
* @return array
*/
public function getLeitung($studiengang_kz = null)
@@ -460,7 +461,12 @@ class Studiengang_model extends DB_Model
$this->addJoin('public.tbl_benutzerfunktion', 'oe_kurzbz');
$this->addJoin('public.tbl_benutzer', 'uid');
$this->addJoin('public.tbl_person', 'person_id');
-
+
+ if (!is_numeric($studiengang_kz) && !is_array($studiengang_kz))
+ {
+ return error('Studiengangskennzahl ungültig');
+ }
+
if (is_null($studiengang_kz))
{
$condition = '
@@ -469,16 +475,21 @@ class Studiengang_model extends DB_Model
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
';
}
- elseif (is_numeric($studiengang_kz))
+ elseif (is_numeric($studiengang_kz) || is_array($studiengang_kz))
{
+ if (is_array($studiengang_kz))
+ {
+ $studiengang_kz = array_map(array($this,'escape'), $studiengang_kz);
+ $studiengang_kz = implode(', ', $studiengang_kz);
+ }
$condition = '
funktion_kurzbz = \'Leitung\'
AND ( datum_von <= NOW() OR datum_von IS NULL )
AND ( datum_bis >= NOW() OR datum_bis IS NULL )
- AND studiengang_kz = ' . $this->db->escape($studiengang_kz)
+ AND studiengang_kz IN (' . $studiengang_kz. ')';
;
}
-
+
return $this->loadWhere($condition);
}
diff --git a/application/views/lehre/anrechnung/approveAnrechnungDetail.php b/application/views/lehre/anrechnung/approveAnrechnungDetail.php
index 4603708f4..cd38fd9ac 100644
--- a/application/views/lehre/anrechnung/approveAnrechnungDetail.php
+++ b/application/views/lehre/anrechnung/approveAnrechnungDetail.php
@@ -25,7 +25,8 @@ $this->load->view(
'bitteBegruendungAngeben',
'empfehlungWurdeAngefordert',
'anrechnungenWurdenGenehmigt',
- 'anrechnungenWurdenAbgelehnt'
+ 'anrechnungenWurdenAbgelehnt',
+ 'nurLeseberechtigung'
),
'person' => array(
'student',
@@ -72,7 +73,7 @@ $this->load->view(
-
+
diff --git a/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php b/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
index 850affeea..308f702a3 100644
--- a/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
+++ b/application/views/lehre/anrechnung/approveAnrechnungUebersicht.php
@@ -48,7 +48,8 @@ $this->load->view(
'empfehlungWurdeAngefordert',
'empfehlungWurdeAngefordertAusnahmeWoKeineLektoren',
'anrechnungenWurdenGenehmigt',
- 'anrechnungenWurdenAbgelehnt'
+ 'anrechnungenWurdenAbgelehnt',
+ 'nurLeseberechtigung'
),
'person' => array(
'student',
@@ -101,7 +102,7 @@ $this->load->view(
diff --git a/cis/infoterminal/informationsbildschirm.php b/cis/infoterminal/informationsbildschirm.php
index bd3abbe50..caf174846 100644
--- a/cis/infoterminal/informationsbildschirm.php
+++ b/cis/infoterminal/informationsbildschirm.php
@@ -37,6 +37,11 @@ else
$ip = $_SERVER["REMOTE_ADDR"];
}
+if(isset($_GET['norefresh']))
+ $norefresh = true;
+else
+ $norefresh = false;
+
$infoscreen = new infoscreen();
$i=-1;
$refreshzeit = 40; // Default Refreshzeit
@@ -90,9 +95,12 @@ if(isset($infoscreen_content) && isset($infoscreen_content[$aktuellerContentIdx]
echo '
-
-
-
+
';
+ if (!$norefresh)
+ {
+ echo '
';
+ }
+echo '
';
//Skript fuer den automatischen bildlauf
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
index 080c6032e..3ff1f4695 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
@@ -1192,6 +1192,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($grades as $uid => $data)
//Ausgabe Array
{
+
$htmlstring .= '
 |
' . $db->convert_html_chars($uid) . ' |
@@ -1219,6 +1220,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$negativeteilnote = false;
$note_zusatztext = '';
$note_zusatztext_tooltip = '';
+ $ueberschreibbar = false; //Damit keine Notice Fehler kommt muss Variable bei jeden Schleifendurchgang neue gesetzt und berechnet werden.
if (isset($data['grades']))
{
diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php
index e7e7ae90f..842d4b603 100644
--- a/cis/private/lehre/notenliste.php
+++ b/cis/private/lehre/notenliste.php
@@ -197,8 +197,10 @@ else
{
$prestudent->getFirstStatus($prestudent_id, 'Student');
$firstStudiensemester = $prestudent->studiensemester_kurzbz;
- $prestudent->getLastStatus($prestudent_id, null, 'Student');
- $lastStudiensemester = $prestudent->studiensemester_kurzbz;
+ if ($prestudent->getLastStatus($prestudent_id, null, 'Diplomand'))
+ $lastStudiensemester = $prestudent->studiensemester_kurzbz;
+ elseif ($prestudent->getLastStatus($prestudent_id, null, 'Student'))
+ $lastStudiensemester = $prestudent->studiensemester_kurzbz;
}
$stsem_obj->getStudiensemesterBetween($firstStudiensemester, $lastStudiensemester);
@@ -241,7 +243,7 @@ else
$qry = "SELECT
tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_zeugnisnote.note, tbl_zeugnisnote.punkte,
tbl_lvgesamtnote.note as lvnote, tbl_lvgesamtnote.punkte as lvpunkte,
- tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum,
+ tbl_zeugnisnote.benotungsdatum, tbl_lvgesamtnote.freigabedatum, tbl_zeugnisnote.uebernahmedatum,
tbl_lvgesamtnote.benotungsdatum as lvbenotungsdatum,
tbl_zeugnisnote.studiensemester_kurzbz AS studiensemester_zeugnis, tbl_lvgesamtnote.studiensemester_kurzbz AS studiensemester_lvnote,
tbl_lehrveranstaltung.zeugnis, tbl_lehrveranstaltung.ects
@@ -354,6 +356,7 @@ else
if (count($pruefung->result) > 0)
{
+ $freigabedatum = $row->uebernahmedatum;
$tblBody .= '';
foreach ($pruefung->result as $row)
{
@@ -367,7 +370,8 @@ else
else
$punkte = '';
- $tblBody .= $row->pruefungstyp_beschreibung . ' ' . $datum_obj->formatDatum($row->datum, 'd.m.Y') . ' ' . $note . $punkte . ' ';
+ if ($datum_obj->formatDatum($freigabedatum, "Y-m-d") >= $row->datum)
+ $tblBody .= $row->pruefungstyp_beschreibung . ' ' . $datum_obj->formatDatum($row->datum, 'd.m.Y') . ' ' . $note . $punkte . ' ';
}
$tblBody .= ' | ';
}
diff --git a/cis/private/lehre/swd.php b/cis/private/lehre/swd.php
index b7fa82ac5..248779aac 100644
--- a/cis/private/lehre/swd.php
+++ b/cis/private/lehre/swd.php
@@ -1,5 +1,5 @@
getLastVerwendung($uid))
@@ -293,9 +293,35 @@ if (!$ansicht)
$adresse = new adresse();
$adresse->load_pers($user->person_id);
- foreach($adresse->result as $a)
+ if ($type === 'mitarbeiter')
{
- echo $a->strasse . " (" . $a->bezeichnung_mehrsprachig[$sprache] .") " . "
".$a->plz." ".$a->ort."
";
+ foreach ($adresse->result as $a)
+ {
+ echo $a->strasse . " (" . $a->bezeichnung_mehrsprachig[$sprache] . ") " . "
" . $a->plz . " " . $a->ort . "
";
+ }
+ }
+ else
+ {
+ function sortAdresse($a , $b)
+ {
+ if ($a->typ === $b->typ)
+ return 0;
+
+ return ($a->typ < $b->typ) ? -1 : 1;
+ }
+ usort($adresse->result, "sortAdresse");
+
+ foreach($adresse->result as $a)
+ {
+ if ($a->zustelladresse)
+ {
+ if ($a->bezeichnung_mehrsprachig[$sprache] !== NULL)
+ {
+ echo "".$a->bezeichnung_mehrsprachig[$sprache].":
";
+ echo $a->strasse."
".$a->plz." ".$a->ort."
";
+ }
+ }
+ }
}
}
diff --git a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
index ebb525cbc..c6bee8942 100644
--- a/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
+++ b/content/lvplanung/lehrveranstaltungnotenoverlay.xul.php
@@ -49,8 +49,11 @@ echo "
+
+
+
diff --git a/content/lvplanung/lehrveranstaltungoverlay.js.php b/content/lvplanung/lehrveranstaltungoverlay.js.php
index 49fd1c8f2..990bc71b8 100644
--- a/content/lvplanung/lehrveranstaltungoverlay.js.php
+++ b/content/lvplanung/lehrveranstaltungoverlay.js.php
@@ -1335,7 +1335,7 @@ function LeMitarbeiterAuswahl()
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false;
var gesamtkosten = LeMitarbeiterGesamtkosten();
-
+
// Wenn Vertragsdetails angezeigt werden
if (lehrveranstaltung_vertragsdetails_anzeigen) {
@@ -2261,6 +2261,8 @@ function LehrveranstaltungNotenAuswahl()
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
getService(Components.interfaces.nsIRDFService);
+ var url = 'rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
+
var dsource = rdfService.GetDataSourceBlocking(url);
var subject = rdfService.GetResource("http://www.technikum-wien.at/zeugnisnote/" + lehrveranstaltung_id+'/'+student_uid+'/'+studiensemester_kurzbz);
@@ -2272,9 +2274,6 @@ function LehrveranstaltungNotenAuswahl()
note = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#note" ));
punkte = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#punkte" ));
- //Daten holen
- var url = 'rdf/zeugnisnote.rdf.php?lehrveranstaltung_id='+lehrveranstaltung_id+'&uid='+student_uid+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&'+gettimestamp();
-
if(note=='')
note='9';
@@ -2403,7 +2402,7 @@ function LehrveranstaltungNotenPunkteChange()
// ****
// * Erstellt das Zertifikat fuer die Freifaecher
// ****
-function LehrveranstaltungFFZertifikatPrint(event)
+function LehrveranstaltungFFZertifikatPrint(event, signieren)
{
tree = document.getElementById('lehrveranstaltung-noten-tree');
//Alle markierten Noten holen
@@ -2414,39 +2413,93 @@ function LehrveranstaltungFFZertifikatPrint(event)
var anzahl=0;
var lvid='';
- for (var t = 0; t < numRanges; t++)
- {
- tree.view.selection.getRangeAt(t,start,end);
- for (var v = start.value; v <= end.value; v++)
- {
- col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
- uid = tree.view.getCellText(v,col);
- paramList += ';'+uid;
- anzahl = anzahl+1;
- col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
- lvid = tree.view.getCellText(v,col);
- }
- }
var ss = getStudiensemester();
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz_lv"] : "lehrveranstaltung-noten-tree-studiengang_kz_lv";
stg_kz = tree.view.getCellText(tree.currentIndex,col);
- if (event.shiftKey)
- var output='odt';
- else if (event.ctrlKey)
- var output='doc';
- else
- var output='pdf';
+ url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp();
- url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
- window.location.href = url;
- //prompt('test:',url);
+ if (signieren)
+ {
+ // Wenn die Dokumente signiert werden, dann einzeln erstellen
+
+ var errors='';
+ var anz_erfolgreich=0;
+
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
+ uid = tree.view.getCellText(v,col);
+
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
+ lvid = tree.view.getCellText(v,col);
+
+ // Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
+
+ var req = new phpRequest(url,'','');
+ req.add('output', 'pdf');
+ req.add('sign', '1');
+ req.add('archive', '1');
+ req.add('uid', uid);
+ req.add('lvid', lvid);
+
+ var response = req.execute();
+
+ if (response != '')
+ errors = errors + response;
+ else
+ {
+ anz_erfolgreich = anz_erfolgreich + 1;
+ }
+ }
+ }
+
+ if (errors != '')
+ {
+ alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors);
+ }
+ else
+ {
+ alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert');
+ }
+ }
+ else
+ {
+ // wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren
+
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
+ uid = tree.view.getCellText(v,col);
+ paramList += ';'+uid;
+ anzahl = anzahl+1;
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
+ lvid = tree.view.getCellText(v,col);
+ }
+ }
+
+ if (event.shiftKey)
+ var output='odt';
+ else if (event.ctrlKey)
+ var output='doc';
+ else
+ var output='pdf';
+
+ url = url +'&uid='+paramList+'&lvid='+lvid+'&output='+output;
+ window.location.href = url;
+ }
}
// ****
// * Erstellt ein Lehrveranstaltungszeugnis fuer die LV
// ****
-function LehrveranstaltungLVZeugnisPrint(event, sprache)
+function LehrveranstaltungLVZeugnisPrint(event, sprache, signieren)
{
tree = document.getElementById('lehrveranstaltung-noten-tree');
//Alle markierten Noten holen
@@ -2457,37 +2510,92 @@ function LehrveranstaltungLVZeugnisPrint(event, sprache)
var anzahl=0;
var lvid='';
- for (var t = 0; t < numRanges; t++)
- {
- tree.view.selection.getRangeAt(t,start,end);
- for (var v = start.value; v <= end.value; v++)
- {
- col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
- uid = tree.view.getCellText(v,col);
- paramList += ';'+uid;
- anzahl = anzahl+1;
- col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
- lvid = tree.view.getCellText(v,col);
- }
- }
var ss = getStudiensemester();
col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-studiengang_kz"] : "lehrveranstaltung-noten-tree-studiengang_kz";
stg_kz = tree.view.getCellText(tree.currentIndex,col);
- if (event.shiftKey)
- var output='odt';
- else if (event.ctrlKey)
- var output='doc';
- else
- var output='pdf';
-
var xsl = 'LVZeugnis';
if (sprache == 'English')
xsl = 'LVZeugnisEng';
- url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid='+paramList+'&output='+output+'&ss='+ss+'&lvid='+lvid+'&'+gettimestamp();
- window.location.href = url;
+ url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&ss='+ss+'&'+gettimestamp();
+
+ if(signieren)
+ {
+ // Wenn die Dokumente signiert werden, dann einzeln erstellen
+
+ var errors='';
+ var anz_erfolgreich=0;
+
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
+ uid = tree.view.getCellText(v,col);
+
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
+ lvid = tree.view.getCellText(v,col);
+
+ // Dokument fuer alle markierten Personen einzeln erstellen und signieren/archivieren
+
+ var req = new phpRequest(url,'','');
+ req.add('output', 'pdf');
+ req.add('sign', '1');
+ req.add('archive', '1');
+ req.add('uid', uid);
+ req.add('lvid', lvid);
+
+ var response = req.execute();
+
+ if (response != '')
+ errors = errors + response;
+ else
+ {
+ anz_erfolgreich = anz_erfolgreich + 1;
+ }
+ }
+ }
+ if (errors != '')
+ {
+ alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert. Folgende Fehler sind aufgetreten:' + errors);
+ }
+ else
+ {
+ alert(anz_erfolgreich + ' Dokumente wurden erfolgreich erstellt und signiert');
+ }
+ }
+ else
+ {
+ // wenn die Dokumente unsigniert erstellt werden, dann alle in ein Dokument generieren
+
+ for (var t = 0; t < numRanges; t++)
+ {
+ tree.view.selection.getRangeAt(t,start,end);
+ for (var v = start.value; v <= end.value; v++)
+ {
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-student_uid"] : "lehrveranstaltung-noten-tree-student_uid";
+ uid = tree.view.getCellText(v,col);
+ paramList += ';'+uid;
+ anzahl = anzahl+1;
+ col = tree.columns ? tree.columns["lehrveranstaltung-noten-tree-lehrveranstaltung_id"] : "lehrveranstaltung-noten-tree-lehrveranstaltung_id";
+ lvid = tree.view.getCellText(v,col);
+ }
+ }
+
+ if (event.shiftKey)
+ var output='odt';
+ else if (event.ctrlKey)
+ var output='doc';
+ else
+ var output='pdf';
+
+
+ url = url+'&lvid='+lvid+'&uid='+paramList+'&output='+output;
+ window.location.href = url;
+ }
}
// ****
diff --git a/content/pdfExport.php b/content/pdfExport.php
index a85ebb345..1597284f6 100644
--- a/content/pdfExport.php
+++ b/content/pdfExport.php
@@ -47,6 +47,7 @@ require_once('../include/studienordnung.class.php');
require_once('../include/dokument_export.class.php');
require_once('../include/dokument.class.php');
require_once('../include/pdf.class.php');
+require_once('../include/lehrveranstaltung.class.php');
$user = get_uid();
$db = new basis_db();
@@ -520,6 +521,13 @@ else
{
$bezeichnung = mb_substr($vorlage->bezeichnung." ".$studiengang->kuerzel, 0, 64);
}
+ elseif ($xsl === 'LVZeugnisEng' || $xsl === 'LVZeugnis' || $xsl === 'Zertifikat')
+ {
+ $lehrveranstaltung = new lehrveranstaltung($_GET['lvid']);
+ $vorlage->dokument_kurzbz = $xsl;
+ $bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss . ' '. $lehrveranstaltung->bezeichnung, 0, 64);
+ $titel = mb_substr($xsl."_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$semester.'_'.$ss. '_' . str_replace(' ', '_', $lehrveranstaltung->bezeichnung), 0, 60);
+ }
else
{
$bezeichnung = mb_substr($xsl." ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$semester.". Semester".' '.$ss, 0, 64);
diff --git a/content/student/studentnotenoverlay.xul.php b/content/student/studentnotenoverlay.xul.php
index 498651581..395667bd7 100644
--- a/content/student/studentnotenoverlay.xul.php
+++ b/content/student/studentnotenoverlay.xul.php
@@ -47,8 +47,11 @@ echo "
+
+
+
diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php
index ffb50609f..470ebe66e 100644
--- a/content/student/studentoverlay.js.php
+++ b/content/student/studentoverlay.js.php
@@ -462,7 +462,7 @@ function StudentTreeKeyPress(event)
// ****
// * Erstellt das Zertifikat fuer die Freifaecher
// ****
-function StudentFFZertifikatPrint(event)
+function StudentFFZertifikatPrint(event, signieren)
{
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-noten-tree');
@@ -486,16 +486,36 @@ function StudentFFZertifikatPrint(event)
else
var output='pdf';
- url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
+ url = 'content/pdfExport.php?xml=zertifikat.rdf.php&xsl=Zertifikat&stg_kz='+stg_kz+'&uid='+uid+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
-// alert('url: '+url);
- window.location.href = url;
+ if (signieren)
+ {
+ var req = new phpRequest(url,'','');
+ req.add('output', 'pdf');
+ req.add('sign', '1');
+ req.add('archive', '1');
+
+ var response = req.execute();
+
+ if (response != '')
+ alert(response)
+ else
+ {
+ alert('Erfolgreich archiviert und signiert');
+ StudentTreeRefresh();
+ }
+ }
+ else
+ {
+ url = url+'&output='+output;
+ window.location.href = url;
+ }
}
//****
//* Erstellt ein Lehrveranstaltungszeugnis fuer die LV
//****
-function StudentLVZeugnisPrint(event, sprache)
+function StudentLVZeugnisPrint(event, sprache, signieren)
{
// netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('student-noten-tree');
@@ -523,9 +543,30 @@ function StudentLVZeugnisPrint(event, sprache)
if (sprache == 'English')
xsl = 'LVZeugnisEng';
- url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid=;'+uid+'&output='+output+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
+ url = 'content/pdfExport.php?xml=lehrveranstaltungszeugnis.rdf.php&xsl='+xsl+'&stg_kz='+stg_kz+'&uid='+uid+'&ss='+stsem+'&lvid='+lvid+'&'+gettimestamp();
- window.location.href = url;
+ if (signieren)
+ {
+ var req = new phpRequest(url,'','');
+ req.add('output', 'pdf');
+ req.add('sign', '1');
+ req.add('archive', '1');
+
+ var response = req.execute();
+
+ if (response != '')
+ alert(response)
+ else
+ {
+ alert('Erfolgreich archiviert und signiert');
+ StudentTreeRefresh();
+ }
+ }
+ else
+ {
+ url = url+'&output='+output;
+ window.location.href = url;
+ }
}
// ****
diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php
index 82bb9d94e..ce6a557b1 100644
--- a/include/bisverwendung.class.php
+++ b/include/bisverwendung.class.php
@@ -48,7 +48,7 @@ class bisverwendung extends basis_db
public $inkludierte_lehre;
public $zeitaufzeichnungspflichtig;
public $azgrelevant;
- public $homeoffice;
+ public $homeoffice=false;
public $ba1bez;
public $ba2bez;
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 226ae0206..658154170 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -1358,6 +1358,7 @@ class mitarbeiter extends benutzer
WHERE
bismelden
AND personalnummer>0
+ AND tbl_bisverwendung.beginn<='.$this->db_add_param($meldungEnde).'
AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'.$this->db_add_param($meldungBeginn).')
ORDER BY uid, nachname,vorname
';
diff --git a/include/statistik.class.php b/include/statistik.class.php
index 3075250b5..eab9f930d 100644
--- a/include/statistik.class.php
+++ b/include/statistik.class.php
@@ -553,6 +553,12 @@ class statistik extends basis_db
{
$name = $this->db_field_name($this->data,$spalte);
$this->html.= ''.$this->convert_html_chars($row->$name).' | ';
+ // Umwandeln von Punkt in Komma bei Float-Werten
+ if (is_numeric($row->$name))
+ {
+ if (strpos($row->$name,'.') != false)
+ $row->$name = number_format($row->$name,2,",","");
+ }
$this->csv.= '"'.$row->$name.'",';
}
diff --git a/public/js/lehre/anrechnung/approveAnrechnungDetail.js b/public/js/lehre/anrechnung/approveAnrechnungDetail.js
index c2c2899ee..c5c0519f3 100644
--- a/public/js/lehre/anrechnung/approveAnrechnungDetail.js
+++ b/public/js/lehre/anrechnung/approveAnrechnungDetail.js
@@ -10,6 +10,7 @@ $(function(){
const genehmigung_panel = $('#approveAnrechnungDetail-genehmigung-panel');
const begruendung_panel = $('#approveAnrechnungDetail-begruendung-panel');
+ const hasReadOnlyAccess = $('#approveAnrechnungDetail-generell').data('readonly');
// Pruefen ob Promise unterstuetzt wird
// Tabulator funktioniert nicht mit IE
@@ -21,6 +22,11 @@ $(function(){
return;
}
+ if (hasReadOnlyAccess)
+ {
+ approveAnrechnungDetail.disableEditElements();
+ }
+
// Set status alert color
approveAnrechnungDetail.setStatusAlertColor();
@@ -417,6 +423,34 @@ var approveAnrechnungDetail = {
}
);
},
+ disableEditElements: function()
+ {
+ // Disable:
+ // ...button Empfehlung anfordern
+ $('#approveAnrechnungDetail-request-recommendation')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Empfehlung zuruecknehmen
+ $('#approveAnrechnungDetail-withdraw-request-recommedation')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Genehmigen
+ $('#approveAnrechnungDetail-approve-anrechnung-ask')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Ablehnen
+ $('#approveAnrechnungDetail-reject-anrechnung-ask')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Genehmigung zurücknehmen
+ $('#approveAnrechnungDetail-withdraw-anrechnung-approvement')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ... form Empfehlungsnotiz
+ $('#form-empfehlungNotiz :input')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ },
copyIntoTextarea: function(elem){
// Find closest textarea
diff --git a/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js b/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
index ff3235e52..fe78217b9 100644
--- a/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
+++ b/public/js/lehre/anrechnung/approveAnrechnungUebersicht.js
@@ -148,6 +148,8 @@ $(function(){
const genehmigung_panel = $('#approveAnrechnungUebersicht-genehmigung-panel');
const begruendung_panel = $('#approveAnrechnungUebersicht-begruendung-panel');
+ const hasReadOnlyAccess = $('#formApproveAnrechnungUebersicht').data('readonly');
+ const hasCreateAnrechnungAccess = $('#formApproveAnrechnungUebersicht').data('createaccess');
// Pruefen ob Promise unterstuetzt wird
// Tabulator funktioniert nicht mit IE
@@ -165,6 +167,16 @@ $(function(){
$('#tableWidgetTabulator').tabulator('redraw', true);
});
+ if (hasReadOnlyAccess)
+ {
+ approveAnrechnung.disableEditElements();
+ }
+
+ if (!hasCreateAnrechnungAccess)
+ {
+ approveAnrechnung.disableCreateAnrechnungButton();
+ }
+
// Set status alert color
approveAnrechnung.setStatusAlertColor();
@@ -517,6 +529,30 @@ var approveAnrechnung = {
$('#requestAnrechnung-status_kurzbz').closest('div').addClass('alert-warning');
}
},
+ disableEditElements: function()
+ {
+ // Disable:
+ // ...button Empfehlung anfordern
+ $('#approveAnrechnungUebersicht-request-recommendation')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Ablehnen
+ $('#approveAnrechnungUebersicht-reject-anrechnungen-ask')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+ // ...button Genehmigen
+ $('#approveAnrechnungUebersicht-approve-anrechnungen-ask')
+ .prop('disabled', true)
+ .attr('title', FHC_PhrasesLib.t("ui", "nurLeseberechtigung"));
+
+ },
+ disableCreateAnrechnungButton: function()
+ {
+ // Disable button Antrag anlegen
+ $('#approveAnrechnungUebersicht-create-anrechnung')
+ .removeAttr('href')
+ .css({'color': 'grey', 'pointer-events': 'none'}); // property disabled does not work for link
+ },
copyIntoTextarea: function(elem){
// Find closest textarea
diff --git a/rdf/studienblatt.xml.php b/rdf/studienblatt.xml.php
index 83a2fcc9c..f0caadeb8 100644
--- a/rdf/studienblatt.xml.php
+++ b/rdf/studienblatt.xml.php
@@ -158,7 +158,7 @@ foreach($uid_arr as $uid)
echo "\t\tregelstudiendauer!=0?$studienplan->ects_stpl/$studienplan->regelstudiendauer:0)."]]>";
echo "\t\t";
- $status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:'';
+ $status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,$studiensemester,null))?$prestudent->status_kurzbz:'';
$abbrecher = false;
$absolvent = false;
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index 50f5098c8..e87473246 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -3458,6 +3458,231 @@ if(!@$db->db_query("SELECT insertamum FROM public.tbl_vorlage LIMIT 1"))
echo '
Neue Spalten insertamum,insertvon,updateamum und updatevon in public.tbl_vorlage hinzugefügt';
}
+// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: Zertifikat
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'Zertifikat' AND archivierbar AND signierbar;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'Zertifikat';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: Zertifikat
';
+ }
+}
+
+// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnis
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnis' AND archivierbar AND signierbar;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'LVZeugnis';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: LVZeugnis
';
+ }
+}
+
+// Spalte archivierbar und signierbar in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnisEng
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnisEng' AND archivierbar AND signierbar;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET archivierbar = TRUE, signierbar = TRUE WHERE vorlage_kurzbz = 'LVZeugnisEng';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalten archivierbar und signierbar auf TRUE gesetzt bei Vorlage: LVZeugnisEng
';
+ }
+}
+
+// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: Zertifikat
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'Zertifikat' AND stud_selfservice;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'Zertifikat';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: Zertifikat
';
+ }
+}
+
+// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnis
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnis' AND stud_selfservice;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'LVZeugnis';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: LVZeugnis
';
+ }
+}
+
+// Spalte stud_selfservice in public.tbl_vorlage auf TRUE gesetzt bei Vorlage: LVZeugnisEng
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_vorlage WHERE vorlage_kurzbz = 'LVZeugnisEng' AND stud_selfservice;"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "UPDATE public.tbl_vorlage SET stud_selfservice = TRUE WHERE vorlage_kurzbz = 'LVZeugnisEng';";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_vorlage: Spalte stud_selfservice auf TRUE gesetzt bei Vorlage: LVZeugnisEng
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_dokument auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokument' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_dokument ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokument '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_dokument auf varchar(32) geändert
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_akte auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_akte' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_akte ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokument '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_akte auf varchar(32) geändert
';
+ }
+}
+
+
+// dokument_kurzbz in campus.tbl_dms auf 32 Zeichen verlängert
+if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='campus' AND TABLE_NAME='tbl_dms' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "ALTER TABLE campus.tbl_dms ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'campus.tbl_dms '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in campus.tbl_dms auf varchar(32) geändert
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_dokumentprestudent auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokumentprestudent' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_dokumentprestudent ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokumentprestudent '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_dokumentprestudent auf varchar(32) geändert
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_dokumentstudiengang auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_dokumentstudiengang' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_dokumentstudiengang ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokumentstudiengang '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_dokumentstudiengang auf varchar(32) geändert
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_vorlage auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_vorlage' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_vorlage ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_vorlage auf varchar(32) geändert
';
+ }
+}
+
+// dokument_kurzbz in public.tbl_vorlagedokument auf 32 Zeichen verlängert
+if($result = @$db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'tbl_vorlagedokument' AND COLUMN_NAME = 'dokument_kurzbz' AND character_maximum_length = 32"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = " ALTER TABLE public.tbl_vorlagedokument ALTER COLUMN dokument_kurzbz TYPE varchar(32)";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_vorlage '.$db->db_last_error().'
';
+ else
+ echo '
Spalte dokument_kurzbz in public.tbl_vorlagedokument auf varchar(32) geändert
';
+ }
+}
+
+// Neues Dokument hinzugefuegt LVZeugnisEng
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'LVZeugnisEng'"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('LVZeugnisEng', 'Lehrveranstaltungszeugnis Englisch', '{\"Lehrveranstaltungszeugnis\",\"Course Certificate\"}')";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokument '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_dokument: LVZeugnisEng hinzugefügt
';
+ }
+}
+
+// Neues Dokument hinzugefuegt LVZeugnis
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'LVZeugnis'"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('LVZeugnis', 'Lehrveranstaltungszeugnis', '{\"Lehrveranstaltungszeugnis\",\"Course Certificate\"}')";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokument '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_dokument: LVZeugnis hinzugefügt
';
+ }
+}
+
+// Neues Dokument hinzugefuegt Zertifikat
+if($result = @$db->db_query("SELECT 1 FROM public.tbl_dokument WHERE dokument_kurzbz = 'Zertifikat'"))
+{
+ if($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_dokument (dokument_kurzbz, bezeichnung, bezeichnung_mehrsprachig) VALUES ('Zertifikat', 'Zertifikat', '{\"Zertifikat\",\"Certificate\"}')";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_dokument '.$db->db_last_error().'
';
+ else
+ echo 'public.tbl_dokument: Zertifikat hinzugefügt
';
+ }
+}
+
// insert und update fuer public.tbl_vorlagestudiengang
if(!@$db->db_query("SELECT insertamum FROM public.tbl_vorlagestudiengang LIMIT 1"))
{
@@ -5716,6 +5941,20 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_zeita
}
}
+// Change size of wawi.tbl_kostenstelle.kostenstelle_nr from character varying(4) to character varying(6)
+if ($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='wawi' AND TABLE_NAME='tbl_kostenstelle' AND COLUMN_NAME = 'kostenstelle_nr' AND character_maximum_length < 6"))
+{
+ if ($db->db_num_rows($result) > 0)
+ {
+ $qry = "ALTER TABLE wawi.tbl_kostenstelle ALTER COLUMN kostenstelle_nr TYPE varchar(6);";
+
+ if(!$db->db_query($qry))
+ echo 'wawi.tbl_kostenstelle '.$db->db_last_error().'
';
+ else
+ echo '
Spalte kostenstelle_nr in wawi.tbl_kostenstelle von varchar(4) auf varchar(6) geändert
';
+ }
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute!
';
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index e05ee6086..f96b0eb0c 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -12873,6 +12873,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'eucovidqr',
+ 'phrase' => 'maxtagebeschreibung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "ACHTUNG seit Februar 2022 werden Zutrittskarten für maximal 60 Tage freigeschalten.",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "ATTENTION since February 2022 a maximum of 60 days validity is granted for accesscards",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'eucovidqr',
@@ -13674,7 +13694,27 @@ array(
'insertvon' => 'system'
)
)
- )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'nurLeseberechtigung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Nur Leseberechtigung",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Read-Only Access",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ )
);
diff --git a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
index 8ab988963..655ce058e 100644
--- a/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
+++ b/vilesci/stammdaten/benutzerberechtigung_uebersicht.php
@@ -86,9 +86,22 @@ $(document).ready(function()
$("#t3").tablesorter(
{
sortList: [[1,0],[2,0],[3,0]],
- widgets: ["zebra"],
+ widgets: ["zebra", "filter", "stickyHeaders"],
headers: {8:{sorter:false}},
- emptyTo: "emptyMax"
+ emptyTo: "emptyMax",
+ widgetOptions : { filter_functions:
+ {
+ // Add select menu to this column
+ 6 : {
+ "Ja" : function(e, n, f, i, $r, c, data) { return /Ja/.test(e); },
+ "Nein" : function(e, n, f, i, $r, c, data) { return /Nein/.test(e); }
+ },
+ 7 : {
+ "Aktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonGreen" ); },
+ "Inaktiv" : function(e, n, f, i, $r, c, data) { return $r.find("div").hasClass( "buttonRed" ) || $r.find("div").hasClass( "buttonYellow" ); }
+ }
+ }
+ }
});
$("#t4").tablesorter(
{
@@ -528,8 +541,22 @@ if($rolle_kurzbz != '')
if(isset($rollen->result) && count($rollen->result) != 0)
{
+ // Anzahl uniquer UIDs ermitteln
+ $berechtigungen_array_uids = sizeof(array_column($rollen->result, null, 'uid'));
+
+ $htmlstr .= "".$berechtigung_kurzbz."
\n";
+ $htmlstr .= "".count($rollen->result)." Einträge
";
+ $htmlstr .= "".$berechtigungen_array_uids." UIDs
";
$htmlstr .= "\n";
- $htmlstr .= "| Rolle | Funktion | Nachname | Vorname | UID | Art | Benutzer Aktiv | Status | Aktion | ";
+ $htmlstr .= " Rolle |
+ Funktion |
+ Nachname |
+ Vorname |
+ UID |
+ Art |
+ Benutzer Aktiv |
+ Status |
+ Aktion | ";
$htmlstr .= "
\n";
foreach($rollen->result as $row)
@@ -541,35 +568,16 @@ if($rolle_kurzbz != '')
if ($row->ende!='' && strtotime($row->ende) < $heute)
{
- $color1 = '#f79c9c';
- $color2 = '#cc0202';
+ $status = '';
}
elseif ($row->start!='' && strtotime($row->start) > $heute)
{
- $color1 = '#faf7b9';
- $color2 = '#cfde00';
+ $status = '';
}
else
{
- $color1 = '#d1fab9';
- $color2 = '#00de00';
+ $status = '';
}
- $status='';
$htmlstr .= ' ';
$htmlstr .= ' | '.$row->rolle_kurzbz.' | ';