mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Merge branch 'master' into feature-7434/Messages_Neue_Felder_zu_eingeloggtem_User_ergaenzen
This commit is contained in:
@@ -31,6 +31,13 @@ define('EXIT_VALIDATION_UDF_NOT_VALID_VAL', 17); // UDF validation has been fail
|
||||
define('EXIT_AUTO_MIN', 1000); // lowest automatically-assigned error code
|
||||
define('EXIT_AUTO_MAX', 2000); // highest automatically-assigned error code
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| General purpose
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
define('BEGINNING_OF_TIME', '1970-01-01');
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Authentication constants
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
// White list of permissions (write mode have to be set) that are able to store a specific job type in database
|
||||
$config['job_type_permissions_white_list'] = array(
|
||||
'SAPStammdatenUpdate' => array(
|
||||
'admin:rw',
|
||||
'developer:rw'
|
||||
),
|
||||
'OEHPayment' => 'developer:rw',
|
||||
'SAPPayment' => 'developer:rw'
|
||||
);
|
||||
|
||||
@@ -109,6 +109,13 @@ $config['navigation_header'] = array(
|
||||
'expand' => true,
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'system/developer:r'
|
||||
),
|
||||
'jobsqueueviewer' => array(
|
||||
'link' => site_url('system/jq/JobsQueueViewer'),
|
||||
'description' => 'Jobs Queue Viewer',
|
||||
'expand' => true,
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'system/developer:r'
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -20,31 +20,31 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN = 'lehre/lehrauftrag_erteilen';
|
||||
const BERECHTIGUNG_LEHRAUFTRAG_AKZEPTIEREN = 'lehre/lehrauftrag_akzeptieren';
|
||||
|
||||
|
||||
const LEHRAUFTRAG_ERTEILEN_URI = 'lehre/lehrauftrag/LehrauftragErteilen';
|
||||
const LEHRAUFTRAG_AKZEPTIEREN_URI = '/lehre/lehrauftrag/LehrauftragAkzeptieren';
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
|
||||
// Load models
|
||||
$this->load->model('accounting/Vertrag_model', 'VertragModel');
|
||||
$this->load->model('accounting/Vertragvertragsstatus_model', 'VertragvertragsstatusModel');
|
||||
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
|
||||
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
|
||||
$this->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel');
|
||||
|
||||
|
||||
// Load libraries
|
||||
$this->load->library('PermissionLib');
|
||||
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This daily job sends information about all lehr-/projektauftraege ordered (and not approved) the day bofore.
|
||||
* Receivers: Department-/Kompetenzfeldleiter
|
||||
@@ -62,7 +62,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
foreach ($vertrag_arr as $vertrag)
|
||||
{
|
||||
$result = $this->VertragModel->getLehreinheitData($vertrag->vertrag_id, 'lehrveranstaltung_id, studiensemester_kurzbz');
|
||||
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$obj = new StdClass();
|
||||
@@ -72,7 +72,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Build the data array to be used in the email. Data array is clustered as follows:
|
||||
* Array
|
||||
@@ -90,7 +90,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
foreach ($lehreinheit_data_arr as $lehreinheit_data)
|
||||
{
|
||||
$result = $this->_getLVData($lehreinheit_data->lehrveranstaltung_id);
|
||||
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
// Search if studiensemester exists in data_arr
|
||||
@@ -102,12 +102,12 @@ class LehrauftragJob extends JOB_Controller
|
||||
$data = array(
|
||||
'studiensemester_kurzbz' => $lehreinheit_data->studiensemester_kurzbz
|
||||
);
|
||||
|
||||
|
||||
$data []= array(
|
||||
'oe_kurzbz' => $result->retval[0]->oe_kurzbz,
|
||||
'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung
|
||||
);
|
||||
|
||||
|
||||
// Add stg data to oe, start amount with 1
|
||||
$data[0][] = array(
|
||||
'stg_kz' => $result->retval[0]->studiengang_kz,
|
||||
@@ -115,7 +115,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung,
|
||||
'amount' => 1
|
||||
);
|
||||
|
||||
|
||||
// Push to final data_arr
|
||||
$data_arr []= $data;
|
||||
}
|
||||
@@ -124,7 +124,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
// Search if oe exists inside existing studiensemester of data_arr
|
||||
$oe_index = array_search($result->retval[0]->oe_kurzbz, array_column($data_arr[$ss_index], 'oe_kurzbz'));
|
||||
|
||||
|
||||
// If oe is new, add oe and stg to studiensemester
|
||||
if ($oe_index === false)
|
||||
{
|
||||
@@ -132,7 +132,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
$data_arr[$ss_index][] = array(
|
||||
'oe_kurzbz' => $result->retval[0]->oe_kurzbz,
|
||||
'oe_bezeichnung' => $result->retval[0]->lv_oe_bezeichnung,
|
||||
|
||||
|
||||
// Add stg data to oe, start amount with 1
|
||||
array(
|
||||
'stg_kz' => $result->retval[0]->studiengang_kz,
|
||||
@@ -147,7 +147,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
// Search if stg exists inside existing oe of data_arr
|
||||
$stg_index = array_search($result->retval[0]->studiengang_kz, array_column($data_arr[$ss_index][$oe_index], 'stg_kz'));
|
||||
|
||||
|
||||
// If stg is new, add stg to oe, start amount with 1
|
||||
if ($stg_index === false)
|
||||
{
|
||||
@@ -168,7 +168,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Cluster data by uid of entitled mail receivers.
|
||||
* Returning array is clustered as follows:
|
||||
@@ -186,7 +186,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
* [amount] // amount of new ordered lehrauftraege of that stg
|
||||
*/
|
||||
$data_arr = $this->_clusterData_byReceiver($data_arr);
|
||||
|
||||
|
||||
// Send email
|
||||
if(!$this->_sendMail_toApprove($data_arr))
|
||||
{
|
||||
@@ -197,7 +197,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
$this->logError('Error when sending emails in job MailLehrauftragToApprove');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This daily job sends information about all lehr-/projektauftraege approved the day bofore.
|
||||
* Receivers: lectors
|
||||
@@ -208,7 +208,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
$this->VertragvertragsstatusModel->addSelect('vertrag_id, uid');
|
||||
$this->VertragvertragsstatusModel->addOrder('uid');
|
||||
$result = $this->VertragvertragsstatusModel->getApproved_fromDate('YESTERDAY');
|
||||
|
||||
|
||||
/**
|
||||
* Build the data array to be used in the email. Data array is clustered as follows:
|
||||
* Array
|
||||
@@ -228,10 +228,10 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
$studiensemester = $studiensemester[0]->vertragsstunden_studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
|
||||
// Search if uid exists in data_arr
|
||||
$uid_index = array_search($vertrag->uid, array_column($data_arr, 'uid'));
|
||||
|
||||
|
||||
// If uid is new, add uid, studiensemester and start amount with 1
|
||||
if ($uid_index === false)
|
||||
{
|
||||
@@ -249,7 +249,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
$data_arr[$uid_index]['studiensemester'] .= ' und '. $studiensemester;
|
||||
}
|
||||
|
||||
|
||||
// Increase amount +1
|
||||
$data_arr[$uid_index]['amount']++;
|
||||
}
|
||||
@@ -266,11 +266,11 @@ class LehrauftragJob extends JOB_Controller
|
||||
$this->logError('Error when sending emails in job MailLehrauftragToAccept');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//******************************************************************************************************************
|
||||
// PRIVATE FUNCTIONS
|
||||
//******************************************************************************************************************
|
||||
|
||||
|
||||
/**
|
||||
* Get data of given lehrveranstaltung.
|
||||
* @param $lehrveranstaltung_id
|
||||
@@ -286,7 +286,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
stg.typ AS "stg_typ",
|
||||
stg.kurzbz AS "stg_kurzbz"
|
||||
');
|
||||
|
||||
|
||||
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan_lehrveranstaltung stpllv', 'lehrveranstaltung_id');
|
||||
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienplan stpl', 'studienplan_id');
|
||||
$this->LehrveranstaltungModel->addJoin('lehre.tbl_studienordnung sto', 'studienordnung_id');
|
||||
@@ -294,10 +294,10 @@ class LehrauftragJob extends JOB_Controller
|
||||
$this->LehrveranstaltungModel->addJoin('public.tbl_organisationseinheit oe', 'ON oe.oe_kurzbz = tbl_lehrveranstaltung.oe_kurzbz');
|
||||
$this->LehrveranstaltungModel->addOrder('stpllv.insertamum', 'DESC');
|
||||
$this->LehrveranstaltungModel->addLimit(1);
|
||||
|
||||
|
||||
return $this->LehrveranstaltungModel->load($lehrveranstaltung_id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send Sancho eMail about ordered Lehrauftraege.
|
||||
* @param $data_arr
|
||||
@@ -310,12 +310,12 @@ class LehrauftragJob extends JOB_Controller
|
||||
// Set mail recipients (department assistance/leader)
|
||||
$to = $data['uid']. '@'. DOMAIN;
|
||||
$html_table = $this->_renderData_LehrauftraegeToApprove($data);
|
||||
|
||||
|
||||
// Prepare mail content
|
||||
$content_data_arr = array(
|
||||
'table' => $html_table
|
||||
);
|
||||
|
||||
|
||||
sendSanchoMail(
|
||||
'LehrauftragNeueBestellungen',
|
||||
$content_data_arr,
|
||||
@@ -326,7 +326,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Cluster the data array by entitled mail receiver.
|
||||
* Returning array is clustered as follows:
|
||||
@@ -409,7 +409,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
|
||||
return $mail_data_arr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Render the data array for the mail template returing a HTML table.
|
||||
* @param $data_arr Data to be used in HTML table
|
||||
@@ -425,11 +425,11 @@ class LehrauftragJob extends JOB_Controller
|
||||
if (isset($studiensemester_container['studiensemester_kurzbz']))
|
||||
{
|
||||
$studiensemester = $studiensemester_container['studiensemester_kurzbz'];
|
||||
|
||||
|
||||
// Link to LehrauftragErteilen
|
||||
$url = site_url(self::LEHRAUFTRAG_ERTEILEN_URI).'?studiensemester='. $studiensemester;
|
||||
}
|
||||
|
||||
|
||||
// HTML table header
|
||||
$html .= '
|
||||
<br>
|
||||
@@ -446,7 +446,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
</thead>
|
||||
<tbody>'
|
||||
;
|
||||
|
||||
|
||||
// HTML table body
|
||||
foreach ($studiensemester_container as $oe_container)
|
||||
{
|
||||
@@ -456,7 +456,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
$oe_bezeichnung = $oe_container['oe_bezeichnung'];
|
||||
}
|
||||
|
||||
|
||||
foreach ($oe_container as $stg_data)
|
||||
{
|
||||
if (is_array($stg_data)) // is_array 'trims' the outer associative keys [oe_kurzbz] and [oe_bezeichnung]
|
||||
@@ -473,7 +473,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// HTML table body end and link
|
||||
$html .= '
|
||||
</tbody>
|
||||
@@ -484,10 +484,10 @@ class LehrauftragJob extends JOB_Controller
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Send Sancho eMail about ordered Lehrauftraege.
|
||||
* @param $data_arr
|
||||
@@ -499,24 +499,24 @@ class LehrauftragJob extends JOB_Controller
|
||||
{
|
||||
// Set mail recipient (lector)
|
||||
$to = $data['uid']. '@'. DOMAIN;
|
||||
|
||||
|
||||
// Link to LehrauftragAkzeptieren
|
||||
$url = CIS_ROOT. 'cis/index.php?menu='.
|
||||
CIS_ROOT. 'cis/menu.php?content_id=&content='.
|
||||
CIS_ROOT. index_page(). self::LEHRAUFTRAG_AKZEPTIEREN_URI;
|
||||
|
||||
|
||||
// Get first name
|
||||
$first_name = '';
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
$this->BenutzerModel->addSelect('vorname');
|
||||
$this->BenutzerModel->addJoin('public.tbl_person', 'person_id');
|
||||
$result = $this->BenutzerModel->loadWhere(array('uid' => $data['uid']));
|
||||
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$first_name = $result->retval[0]->vorname;
|
||||
}
|
||||
|
||||
|
||||
// Prepare mail content
|
||||
$content_data_arr = array(
|
||||
'vorname' => $first_name,
|
||||
@@ -524,7 +524,7 @@ class LehrauftragJob extends JOB_Controller
|
||||
'anzahl' => $data['amount'],
|
||||
'link' => anchor($url, 'Lehraufträge Übersicht')
|
||||
);
|
||||
|
||||
|
||||
sendSanchoMail(
|
||||
'LehrauftragNeueErteilte',
|
||||
$content_data_arr,
|
||||
@@ -532,5 +532,6 @@ class LehrauftragJob extends JOB_Controller
|
||||
'Neu erteilte Lehraufträge zum Annehmen bereit'
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,11 +27,11 @@ class OneTimeMessages extends JOB_Controller
|
||||
* - Status set as "Wartender"
|
||||
* - The given study course type (b = bachelor, m = master)
|
||||
* - The given semester (ex WS2020)
|
||||
* - How long since applicant (months)
|
||||
* - How long since applicant (days)
|
||||
* - The given template id to be used as message subject and body (vorlage_kurzbz)
|
||||
* The sender of all the messages is specified by the parameter senderId (sender person_id)
|
||||
*/
|
||||
public function sendMessageToApplicantsStillWaiting($senderId, $studyCourseType, $semester, $months, $messageTemplate)
|
||||
public function sendMessageToApplicantsStillWaiting($senderId, $studyCourseType, $semester, $days, $messageTemplate)
|
||||
{
|
||||
$this->logInfo('Send message to applicants still waiting start');
|
||||
|
||||
@@ -47,13 +47,13 @@ class OneTimeMessages extends JOB_Controller
|
||||
$dbModel = new DB_Model();
|
||||
|
||||
$dbPrestudents = $dbModel->execReadOnlyQuery(
|
||||
'SELECT p.prestudent_id
|
||||
'SELECT distinct on(person_id) p.prestudent_id
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN public.tbl_prestudentstatus ps USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang s USING (studiengang_kz)
|
||||
WHERE ps.status_kurzbz = \'Wartender\'
|
||||
AND ps.studiensemester_kurzbz = ?
|
||||
AND ps.datum <= NOW() - \''.$months.' months\'::interval
|
||||
AND ps.datum <= NOW() - \''.$days.' days\'::interval
|
||||
AND s.typ = ?
|
||||
AND NOT EXISTS (
|
||||
SELECT pp.person_id
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*/
|
||||
class Pruefungsprotokoll extends Auth_Controller
|
||||
{
|
||||
private $_uid; // uid of the logged user
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// Set required permissions
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'lehre/pruefungsbeurteilung:r',
|
||||
'Protokoll' => 'lehre/pruefungsbeurteilung:r',
|
||||
'saveProtokoll' => 'lehre/pruefungsbeurteilung:rw',
|
||||
)
|
||||
);
|
||||
|
||||
// Load models
|
||||
$this->load->model('education/Abschlusspruefung_model', 'AbschlusspruefungModel');
|
||||
$this->load->model('education/Abschlussbeurteilung_model', 'AbschlussbeurteilungModel');
|
||||
|
||||
$this->load->library('PermissionLib');
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
// Load language phrases
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'ui',
|
||||
'global',
|
||||
'person',
|
||||
'abschlusspruefung',
|
||||
'password',
|
||||
'lehre'
|
||||
)
|
||||
);
|
||||
|
||||
$this->_setAuthUID(); // sets property uid
|
||||
|
||||
$this->setControllerId(); // sets the controller id
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
public function index()
|
||||
{
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
// Protokolle anzeigen seit heute / letzte Woche / alle
|
||||
$period = $this->input->post('period');
|
||||
$period = (!is_null($period)) ? $period : 'today';
|
||||
|
||||
$data = array('period' => $period);
|
||||
|
||||
$this->load->view('lehre/pruefungsprotokollUebersicht.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show Pruefungsprotokoll.
|
||||
*/
|
||||
public function Protokoll()
|
||||
{
|
||||
$abschlusspruefung_id = $this->input->get('abschlusspruefung_id');
|
||||
|
||||
if (!is_numeric($abschlusspruefung_id))
|
||||
show_error('invalid abschlusspruefung');
|
||||
|
||||
$abschlusspruefung_saved = false;
|
||||
$abschlusspruefung = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id);
|
||||
|
||||
if (isError($abschlusspruefung))
|
||||
show_error(getError($abschlusspruefung));
|
||||
else
|
||||
{
|
||||
$abschlusspruefung = getData($abschlusspruefung);
|
||||
$abschlusspruefung_saved = isset($abschlusspruefung->protokoll) && isset($abschlusspruefung->abschlussbeurteilung_kurzbz);
|
||||
}
|
||||
|
||||
$this->AbschlussbeurteilungModel->addOrder("sort", "ASC");
|
||||
$this->AbschlussbeurteilungModel->addOrder("(CASE WHEN abschlussbeurteilung_kurzbz = 'ausgezeichnet' THEN 1
|
||||
WHEN abschlussbeurteilung_kurzbz = 'gut' THEN 2
|
||||
WHEN abschlussbeurteilung_kurzbz = 'bestanden' THEN 3
|
||||
WHEN abschlussbeurteilung_kurzbz = 'angerechnet' THEN 4
|
||||
ELSE 5
|
||||
END
|
||||
)");
|
||||
$abschlussbeurteilung = $this->AbschlussbeurteilungModel->load();
|
||||
|
||||
if (isError($abschlussbeurteilung))
|
||||
show_error(getError($abschlussbeurteilung));
|
||||
else
|
||||
$abschlussbeurteilung = getData($abschlussbeurteilung);
|
||||
|
||||
$language = getUserLanguage();
|
||||
|
||||
$data = array(
|
||||
'abschlusspruefung' => $abschlusspruefung,
|
||||
'abschlussbeurteilung' => $abschlussbeurteilung,
|
||||
'abschlusspruefung_saved' => $abschlusspruefung_saved,
|
||||
'language' => $language
|
||||
);
|
||||
|
||||
$this->load->view('lehre/pruefungsprotokoll.php', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Save Pruefungsprotokoll (including possible Freigabe)
|
||||
*/
|
||||
public function saveProtokoll()
|
||||
{
|
||||
$abschlusspruefung_id = $this->input->post('abschlusspruefung_id');
|
||||
$freigebendata = $this->input->post('freigebendata');
|
||||
$protocoldata = $this->input->post('protocoldata');
|
||||
|
||||
if (isset($abschlusspruefung_id) && is_numeric($abschlusspruefung_id)
|
||||
&& isset($freigebendata['freigeben']) && isset($protocoldata))
|
||||
{
|
||||
// check permission
|
||||
$berechtigt = $this->_getAbschlusspruefungBerechtigt($abschlusspruefung_id);
|
||||
if (isError($berechtigt))
|
||||
$this->outputJsonError(getError($berechtigt));
|
||||
else
|
||||
{
|
||||
$freigabe = $freigebendata['freigeben'] === 'true';
|
||||
|
||||
if ($freigabe)
|
||||
{
|
||||
// Verify password
|
||||
if (isset($freigebendata['password']) && !isEmptyString($freigebendata['password']))
|
||||
{
|
||||
$password = $freigebendata['password'];
|
||||
$result = $this->authlib->checkUserAuthByUsernamePassword($this->_uid, $password);
|
||||
if (isError($result))
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('password', 'wrongPassword')); // exit if password is incorrect
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->outputJsonError($this->p->t('password', 'passwordMissing'));
|
||||
}
|
||||
}
|
||||
|
||||
$data = $this->_prepareAbschlusspruefungDataForSave($protocoldata, $freigabe);
|
||||
|
||||
$result = $this->AbschlusspruefungModel->update($abschlusspruefung_id, $data);
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$abschlusspruefung_id = getData($result);
|
||||
$updateresult = array('abschlusspruefung_id' => $abschlusspruefung_id);
|
||||
if ($freigabe)
|
||||
$updateresult['freigabedatum'] = date_format(date_create($data['freigabedatum']), 'd.m.Y');
|
||||
|
||||
$this->outputJsonSuccess($updateresult);
|
||||
}
|
||||
else
|
||||
$this->outputJsonError('Fehler beim Speichern des Prüfungsprotokolls');
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->outputJsonError($this->p->t('ui', 'ungueltigeParameter'));
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* 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');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves an Abschlussprüfung, with permission check
|
||||
* permission: admin, assistance of study programe or Vorsitz of the Prüfung
|
||||
* @param $abschlusspruefung_id
|
||||
* @return object success or error
|
||||
*/
|
||||
private function _getAbschlusspruefungBerechtigt($abschlusspruefung_id)
|
||||
{
|
||||
$result = error('Error when getting Abschlusspruefung');
|
||||
|
||||
if (isset($this->_uid))
|
||||
{
|
||||
$abschlusspruefung = $this->AbschlusspruefungModel->getAbschlusspruefung($abschlusspruefung_id);
|
||||
|
||||
if (hasData($abschlusspruefung))
|
||||
{
|
||||
$abschlusspruefung_data = getData($abschlusspruefung);
|
||||
if ($this->permissionlib->isBerechtigt('admin') ||
|
||||
(isset($abschlusspruefung_data->studiengang_kz) && $this->permissionlib->isBerechtigt('assistenz', 'suid', $abschlusspruefung_data->studiengang_kz))
|
||||
|| $this->_uid === $abschlusspruefung_data->uid_vorsitz)
|
||||
$result = $abschlusspruefung;
|
||||
else
|
||||
$result = error('Permission denied');
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares Abschlussprüfung for save in database, replaces '' with null, sets Freigabedatum
|
||||
* @param $data
|
||||
* @return array
|
||||
*/
|
||||
private function _prepareAbschlusspruefungDataForSave($data, $freigabe)
|
||||
{
|
||||
$nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll');
|
||||
foreach ($data as $idx => $item)
|
||||
{
|
||||
if (in_array($idx, $nullfields) & $item === '')
|
||||
$data[$idx] = null;
|
||||
}
|
||||
|
||||
if ($freigabe === true)
|
||||
$data['freigabedatum'] = date('Y-m-d');
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
@@ -92,7 +92,8 @@ class Lehrauftrag extends Auth_Controller
|
||||
|
||||
// Retrieve studiengaenge the user is entitled for to populate studiengang dropdown
|
||||
if (!$studiengang_kz_arr = $this->permissionlib->getSTG_isEntitledFor(self::BERECHTIGUNG_LEHRAUFTRAG_BESTELLEN)) {
|
||||
show_error('Fehler bei Berechtigungsprüfung');
|
||||
show_error('Keine Studiengänge gefunden.<br>
|
||||
Es muss eine passende Organisationseinheit hinterlegt werden.<br>');
|
||||
}
|
||||
|
||||
// If studiengang_kz get param was set, check against entitled stg
|
||||
|
||||
@@ -35,7 +35,7 @@ class LogsViewer extends Auth_Controller
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Main page of the InfoCenter tool
|
||||
* Everything has a beginning
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* This controller acts as REST JSON interface between the JobsQueueLib, that contains all the needed functionalities to
|
||||
* operate with the Jobs Queue System, and other tools that cannot access directly to such library
|
||||
*/
|
||||
class JobsQueueManager extends Auth_Controller
|
||||
{
|
||||
// Config entry name for White list of permissions...
|
||||
const JOB_TYPE_PERMISSIONS_WHITE_LIST = 'job_type_permissions_white_list';
|
||||
// Parameter names
|
||||
const PARAM_JOBS = 'jobs';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'getLastJobs' => 'admin:r',
|
||||
'addNewJobsToQueue' => 'admin:rw',
|
||||
'updateJobsQueue' => 'admin:rw'
|
||||
)
|
||||
);
|
||||
|
||||
// Loading config file jqm
|
||||
$this->config->load('jqm');
|
||||
|
||||
// Loads JobsQueueLib
|
||||
$this->load->library('JobsQueueLib');
|
||||
// Loads permission lib
|
||||
$this->load->library('PermissionLib');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* To get all the most recently added jobs using the given job type
|
||||
*/
|
||||
public function getLastJobs()
|
||||
{
|
||||
$type = $this->input->get(JobsQueueLib::PROPERTY_TYPE);
|
||||
|
||||
$this->_checkPermissions($type);
|
||||
|
||||
$this->outputJson($this->jobsqueuelib->getLastJobs($type));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new jobs in the jobs queue with the given type
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
public function addNewJobsToQueue()
|
||||
{
|
||||
$type = $this->input->post(JobsQueueLib::PROPERTY_TYPE);
|
||||
$jobs = $this->input->post(self::PARAM_JOBS);
|
||||
|
||||
$this->_checkPermissions($type);
|
||||
|
||||
// Otherwise convert jobs from json to php and call JobsQueueLib library
|
||||
$this->outputJson($this->jobsqueuelib->addNewJobsToQueue($type, $this->_convertJobs($jobs)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new jobs in the jobs queue with the given type
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
public function updateJobsQueue()
|
||||
{
|
||||
$type = $this->input->post(JobsQueueLib::PROPERTY_TYPE);
|
||||
$jobs = $this->input->post(self::PARAM_JOBS);
|
||||
|
||||
$this->_checkPermissions($type);
|
||||
|
||||
// Otherwise convert jobs from json to php and call JobsQueueLib library
|
||||
$this->outputJson($this->jobsqueuelib->updateJobsQueue($type, $this->_convertJobs($jobs)));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _checkPermissions($type)
|
||||
{
|
||||
// Checks if the caller has the permissions to add new jobs with the given type in the queue
|
||||
if (!$this->permissionlib->isEntitled($this->config->item(self::JOB_TYPE_PERMISSIONS_WHITE_LIST), $type))
|
||||
{
|
||||
// Permissions NOT valid
|
||||
$this->terminateWithJsonError('You are not allowed to access to this content');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private function _convertJobs($jobs)
|
||||
{
|
||||
if (isEmptyArray($jobs)) return null; // if not a valid array then return null
|
||||
|
||||
$convertedJobsArray = array(); // returned values
|
||||
|
||||
// Loops through all the provided jobs
|
||||
foreach ($jobs as $job)
|
||||
{
|
||||
$tmpObj = json_decode($job); // Try to decode json to php
|
||||
|
||||
// If decode was a success
|
||||
if ($tmpObj != null)
|
||||
{
|
||||
$convertedJobsArray[] = $tmpObj; // then store the decoded object in the result array
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
// Create a new object and store the error message in it
|
||||
$tmpObj = new stdClass();
|
||||
$tmpObj->{JobsQueueLib::PROPERTY_ERROR} = 'A not valid json was provided';
|
||||
|
||||
$convertedJobsArray[] = $tmpObj; // store this object into the result array
|
||||
}
|
||||
}
|
||||
|
||||
return $convertedJobsArray;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Jobs Queue Viewer
|
||||
*
|
||||
* This controller renders a FilterWidget to monitor the current status of the Jobs Queue System
|
||||
*/
|
||||
class JobsQueueViewer extends Auth_Controller
|
||||
{
|
||||
const PARAM_START_DATE = 'startDate';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'index' => 'system/developer:r'
|
||||
)
|
||||
);
|
||||
|
||||
// Loads WidgetLib
|
||||
$this->load->library('WidgetLib');
|
||||
|
||||
// Loads JobsQueueLib
|
||||
$this->load->library('JobsQueueLib');
|
||||
|
||||
// Loads phrases system
|
||||
$this->loadPhrases(
|
||||
array(
|
||||
'global',
|
||||
'ui',
|
||||
'filter'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* Everything has a beginning
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->load->view('system/jq/jobsQueueViewer.php');
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,8 @@
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
* This is the super class for all those controllers that can only be called from command line
|
||||
* It provides also an helper to display the possible calls
|
||||
*/
|
||||
abstract class CLI_Controller extends FHC_Controller
|
||||
{
|
||||
@@ -15,9 +16,9 @@ abstract class CLI_Controller extends FHC_Controller
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct();
|
||||
|
||||
// Checks if the controller is called from command line
|
||||
$this->_isAllowed();
|
||||
@@ -103,3 +104,4 @@ abstract class CLI_Controller extends FHC_Controller
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,26 +3,36 @@
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
*
|
||||
* This is the super class for a job.
|
||||
* All the controllers that extends this class can only be called from command line.
|
||||
* Provides utility methods to log into database
|
||||
*/
|
||||
abstract class JOB_Controller extends CLI_Controller
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct();
|
||||
|
||||
// Loads LogLib with different debug trace levels to get data of the job that extends this class
|
||||
// It also specify parameters to set database fields
|
||||
$this->load->library('LogLib', array(
|
||||
'classIndex' => 5,
|
||||
'functionIndex' => 5,
|
||||
'lineIndex' => 4,
|
||||
'dbLogType' => 'job', // required
|
||||
'dbExecuteUser' => 'Cronjob system'
|
||||
));
|
||||
$this->load->library(
|
||||
'LogLib',
|
||||
array(
|
||||
'classIndex' => 5,
|
||||
'functionIndex' => 5,
|
||||
'lineIndex' => 4,
|
||||
'dbLogType' => 'job', // required
|
||||
'dbExecuteUser' => 'Cronjob system',
|
||||
'requestId' => 'JOB',
|
||||
'requestDataFormatter' => function($data) {
|
||||
return json_encode($data);
|
||||
}
|
||||
),
|
||||
'LogLibJob' // library alias case sensitive
|
||||
);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
@@ -33,7 +43,7 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
*/
|
||||
protected function logInfo($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::INFO, 'Cronjob info', $response, $parameters);
|
||||
$this->_log(LogLib::INFO, $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,7 +51,7 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
*/
|
||||
protected function logDebug($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::DEBUG, 'Cronjob debug', $response, $parameters);
|
||||
$this->_log(LogLib::DEBUG, $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -49,7 +59,7 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
*/
|
||||
protected function logWarning($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::WARNING, 'Cronjob warning', $response, $parameters);
|
||||
$this->_log(LogLib::WARNING, $response, $parameters);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +67,7 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
*/
|
||||
protected function logError($response, $parameters = null)
|
||||
{
|
||||
$this->_log(LogLib::ERROR, 'Cronjob error', $response, $parameters);
|
||||
$this->_log(LogLib::ERROR, $response, $parameters);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
@@ -66,7 +76,7 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
/**
|
||||
* Writes a log to database
|
||||
*/
|
||||
private function _log($level, $requestId, $response, $parameters)
|
||||
private function _log($level, $response, $parameters)
|
||||
{
|
||||
$data = new stdClass();
|
||||
|
||||
@@ -76,17 +86,18 @@ abstract class JOB_Controller extends CLI_Controller
|
||||
switch($level)
|
||||
{
|
||||
case LogLib::INFO:
|
||||
$this->loglib->logInfoDB($requestId, json_encode(success($data, LogLib::INFO)));
|
||||
$this->LogLibJob->logInfoDB($data);
|
||||
break;
|
||||
case LogLib::DEBUG:
|
||||
$this->loglib->logDebugDB($requestId, json_encode(success($data, LogLib::DEBUG)));
|
||||
$this->LogLibJob->logDebugDB($data);
|
||||
break;
|
||||
case LogLib::WARNING:
|
||||
$this->loglib->logWarningDB($requestId, json_encode(error($data, LogLib::WARNING)));
|
||||
$this->LogLibJob->logWarningDB($data);
|
||||
break;
|
||||
case LogLib::ERROR:
|
||||
$this->loglib->logErrorDB($requestId, json_encode(error($data, LogLib::ERROR)));
|
||||
$this->LogLibJob->logErrorDB($data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
<?php
|
||||
|
||||
if (!defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* Job Queue Worker
|
||||
*
|
||||
* This controller acts as interface of the JobsQueueLib that contains
|
||||
* all the needed functionalities to operate with the Jobs Queue System
|
||||
* This is an abstract class that provide basic functionalities,
|
||||
* it has to be extended to broaden its logic
|
||||
*/
|
||||
abstract class JQW_Controller extends JOB_Controller
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Changes the needed configs for LogLib
|
||||
$this->LogLibJob->setConfigs(
|
||||
array(
|
||||
'dbExecuteUser' => 'Jobs queue system',
|
||||
'requestId' => 'JQW'
|
||||
)
|
||||
);
|
||||
|
||||
// Loads JobsQueueLib library
|
||||
$this->load->library('JobsQueueLib');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Protected methods
|
||||
|
||||
/**
|
||||
* To get all the most recently added jobs using the given job type
|
||||
*/
|
||||
protected function getLastJobs($type)
|
||||
{
|
||||
$jobs = $this->jobsqueuelib->getLastJobs($type);
|
||||
|
||||
// If an error occurred then log it in database
|
||||
if (isError($jobs)) $this->logError(getError($jobs), $type);
|
||||
|
||||
return $jobs;
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
protected function getJobsByTypeStatusInput($type, $status, $input)
|
||||
{
|
||||
$jobs = $this->jobsqueuelib->getJobsByTypeStatusInput($type, $status, $input);
|
||||
|
||||
// If an error occurred then log it in database
|
||||
if (isError($jobs)) $this->logError(getError($jobs), array($type, $status, $input));
|
||||
|
||||
return $jobs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new jobs in the jobs queue with the given type
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
protected function addNewJobsToQueue($type, $jobs)
|
||||
{
|
||||
$result = $this->jobsqueuelib->addNewJobsToQueue($type, $jobs);
|
||||
|
||||
// If an error occurred then log it in database
|
||||
if (isError($result)) $this->logError(getError($result), $type);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates jobs already present in the jobs queue
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
protected function updateJobsQueue($type, $jobs)
|
||||
{
|
||||
$result = $this->jobsqueuelib->updateJobsQueue($type, $jobs);
|
||||
|
||||
// If an error occurred then log it in database
|
||||
if (isError($result)) $this->logError(getError($result), $type);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to update the specified properties of the given jobs with the given values
|
||||
*/
|
||||
protected function updateJobs($jobs, $properties, $values)
|
||||
{
|
||||
// If not valid arrays of properties and values arrays are not of the same size then exit
|
||||
if (isEmptyArray($jobs) || isEmptyArray($properties) || isEmptyArray($values)) return;
|
||||
if (count($properties) != count($values)) return;
|
||||
|
||||
// For each job
|
||||
foreach ($jobs as $job)
|
||||
{
|
||||
// For each propery of the job
|
||||
for ($pI = 0; $pI < count($properties); $pI++)
|
||||
{
|
||||
// If this property is present in the job object
|
||||
if (property_exists($job, $properties[$pI]))
|
||||
{
|
||||
$job->{$properties[$pI]} = $values[$pI]; // set a new value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method to generate a job with the given parameters and return it inside an array
|
||||
* ready to be used by addNewJobsToQueue and updateJobsQueue
|
||||
*/
|
||||
protected function generateJobs($status, $input)
|
||||
{
|
||||
$job = new stdClass();
|
||||
|
||||
$job->{JobsQueueLib::PROPERTY_STATUS} = $status;
|
||||
$job->{JobsQueueLib::PROPERTY_INPUT} = $input;
|
||||
|
||||
return array($job);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,3 +301,45 @@ function isLogged()
|
||||
|
||||
return isset($ci->authlib) && $ci->authlib->getAuthObj() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Konvertiert Problematische Sonderzeichen in Strings fuer
|
||||
* Accountnamen und EMail-Aliase
|
||||
*
|
||||
* @param $str
|
||||
* @return bereinigter String
|
||||
*/
|
||||
function sanitizeProblemChars($str)
|
||||
{
|
||||
$enc = 'UTF-8';
|
||||
|
||||
$acentos = array(
|
||||
'A' => '/À|Á|Â|Ã|Å/',
|
||||
'Ae' => '/Ä/',
|
||||
'a' => '/à|á|â|ã|å/',
|
||||
'ae'=> '/ä/',
|
||||
'C' => '/Ç/',
|
||||
'c' => '/ç/',
|
||||
'E' => '/È|É|Ê|Ë/',
|
||||
'e' => '/è|é|ê|ë/',
|
||||
'I' => '/Ì|Í|Î|Ï/',
|
||||
'i' => '/ì|í|î|ï/',
|
||||
'N' => '/Ñ/',
|
||||
'n' => '/ñ/',
|
||||
'O' => '/Ò|Ó|Ô|Õ/',
|
||||
'Oe' => '/Ö/',
|
||||
'o' => '/ò|ó|ô|õ/',
|
||||
'oe' => '/ö/',
|
||||
'U' => '/Ù|Ú|Û/',
|
||||
'Ue' => '/Ü/',
|
||||
'u' => '/ù|ú|û/',
|
||||
'ue' => '/ü/',
|
||||
'Y' => '/Ý/',
|
||||
'y' => '/ý|ÿ/',
|
||||
'a.' => '/ª/',
|
||||
'o.' => '/º/',
|
||||
'ss' => '/ß/'
|
||||
);
|
||||
|
||||
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
|
||||
}
|
||||
|
||||
@@ -93,6 +93,8 @@ class FilterWidgetLib
|
||||
const OP_NOT_SET = 'nset';
|
||||
|
||||
// Filter options values
|
||||
const OPT_MINUTES = 'minutes';
|
||||
const OPT_HOURS = 'hours';
|
||||
const OPT_DAYS = 'days';
|
||||
const OPT_MONTHS = 'months';
|
||||
|
||||
@@ -884,8 +886,10 @@ class FilterWidgetLib
|
||||
// It it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS))
|
||||
&& ($filterDefinition->option == self::OPT_HOURS
|
||||
|| $filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS
|
||||
|| $filterDefinition->option == self::OPT_MINUTES))
|
||||
{
|
||||
$condition = '< (NOW() - \''.$filterDefinition->condition.' '.$filterDefinition->option.'\'::interval)';
|
||||
}
|
||||
@@ -899,8 +903,10 @@ class FilterWidgetLib
|
||||
// It it's a date type
|
||||
if (is_numeric($filterDefinition->condition)
|
||||
&& isset($filterDefinition->option)
|
||||
&& ($filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS))
|
||||
&& ($filterDefinition->option == self::OPT_HOURS
|
||||
|| $filterDefinition->option == self::OPT_DAYS
|
||||
|| $filterDefinition->option == self::OPT_MONTHS
|
||||
|| $filterDefinition->option == self::OPT_MINUTES))
|
||||
{
|
||||
$condition = '> (NOW() - \''.$filterDefinition->condition.' '.$filterDefinition->option.'\'::interval)';
|
||||
}
|
||||
|
||||
@@ -0,0 +1,370 @@
|
||||
<?php
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Library that contains all the needed functionalities to operate with the Jobs Queue System
|
||||
*/
|
||||
class JobsQueueLib
|
||||
{
|
||||
// Job statuses
|
||||
const STATUS_NEW = 'new';
|
||||
const STATUS_RUNNING = 'running';
|
||||
const STATUS_DONE = 'done';
|
||||
const STATUS_FAILED = 'failed';
|
||||
|
||||
// Job object properties
|
||||
const PROPERTY_JOBID = 'jobid';
|
||||
const PROPERTY_CREATIONTIME = 'creationtime';
|
||||
const PROPERTY_TYPE = 'type';
|
||||
const PROPERTY_STATUS = 'status';
|
||||
const PROPERTY_INPUT = 'input';
|
||||
const PROPERTY_OUTPUT = 'output';
|
||||
const PROPERTY_START_TIME = 'starttime';
|
||||
const PROPERTY_END_TIME = 'endtime';
|
||||
const PROPERTY_ERROR = 'error';
|
||||
|
||||
private $_ci; // CI instance
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct($authenticate = true)
|
||||
{
|
||||
// Gets CI instance
|
||||
$this->_ci =& get_instance();
|
||||
|
||||
// Loads all needed models
|
||||
$this->_ci->load->model('system/JobsQueue_model', 'JobsQueueModel');
|
||||
$this->_ci->load->model('system/JobTypes_model', 'JobTypesModel');
|
||||
$this->_ci->load->model('system/JobStatuses_model', 'JobStatusesModel');
|
||||
$this->_ci->load->model('system/JobTriggers_model', 'JobTriggersModel');
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* To get all the most recently added jobs using the given job type
|
||||
*/
|
||||
public function getLastJobs($type)
|
||||
{
|
||||
$this->_ci->JobsQueueModel->resetQuery();
|
||||
|
||||
$this->_ci->JobsQueueModel->addOrder('creationtime', 'DESC');
|
||||
|
||||
return $this->_ci->JobsQueueModel->loadWhere(array('status' => self::STATUS_NEW, 'type' => $type));
|
||||
}
|
||||
|
||||
/**
|
||||
* To get all the jobs specified by the given parameters
|
||||
*/
|
||||
public function getJobsByTypeStatusInput($type, $status, $input)
|
||||
{
|
||||
$this->_ci->JobsQueueModel->resetQuery();
|
||||
|
||||
$this->_ci->JobsQueueModel->addOrder('creationtime', 'DESC');
|
||||
|
||||
return $this->_ci->JobsQueueModel->loadWhere(array('status' => $status, 'type' => $type, 'input' => $input));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add new jobs in the jobs queue with the given type
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
public function addNewJobsToQueue($type, $jobs)
|
||||
{
|
||||
// Checks parameters
|
||||
if (isEmptyString($type)) return error('The provided type parameter is not a valid string');
|
||||
if (isEmptyArray($jobs)) return error('The provided jobs parameter is not a valid array');
|
||||
|
||||
// Get all the job types
|
||||
$dbResult = $this->_ci->JobTypesModel->load();
|
||||
if (isError($dbResult)) return $dbResult;
|
||||
$types = getData($dbResult);
|
||||
|
||||
// If the given type is not present in database
|
||||
if (!$this->_checkJobType($type, $types)) return error('The provided type parameter is not valid');
|
||||
|
||||
$results = $jobs; // returned values
|
||||
$errorOccurred = false; // very optimistic
|
||||
|
||||
// Get all the job statuses
|
||||
$dbResult = $this->_ci->JobStatusesModel->load();
|
||||
if (isError($dbResult)) return $dbResult;
|
||||
$statuses = getData($dbResult);
|
||||
|
||||
// Loops through all the provided jobs
|
||||
foreach ($results as $job)
|
||||
{
|
||||
// If the structure of the job object is valid AND the type is valid AND the status is valid
|
||||
if ($this->_checkNewJobStructure($job) && $this->_checkJobStatus($job, $statuses))
|
||||
{
|
||||
$this->_dropNotAllowedPropertiesNewJob($job); // remove the black listed properties from this object
|
||||
|
||||
$job->{self::PROPERTY_TYPE} = $type; // What you asked is what you get!
|
||||
|
||||
// Try to insert the single job into database
|
||||
$dbNewJobResult = $this->_ci->JobsQueueModel->insert($job);
|
||||
|
||||
// If an error occurred during while inserting in database
|
||||
if (isError($dbNewJobResult))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = getError($dbNewJobResult); // retrieve the cause and store it in job object
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
$job->{self::PROPERTY_JOBID} = getData($dbNewJobResult); // get the jobid and store it in job object
|
||||
|
||||
$dbNewTriggeredJobResult = $this->_addNewTriggeredJobToQueue($type, $job, array(self::STATUS_NEW));
|
||||
// If an error occurred during while inserting in database
|
||||
if (isError($dbNewTriggeredJobResult)) return $dbNewTriggeredJobResult;
|
||||
}
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
}
|
||||
|
||||
// If an error occurred then returns the results in an error object
|
||||
if ($errorOccurred) return error($results);
|
||||
|
||||
return success($results); // otherwise return results in a success object
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates jobs already present in the jobs queue
|
||||
* jobs is an array of job objects
|
||||
*/
|
||||
public function updateJobsQueue($type, $jobs)
|
||||
{
|
||||
// Checks parameters
|
||||
if (isEmptyArray($jobs)) return error('The provided jobs parameter is not a valid array');
|
||||
|
||||
$results = $jobs; // returned values
|
||||
$errorOccurred = false; // very optimistic
|
||||
|
||||
// Get all the job statuses
|
||||
$dbResultStatuses = $this->_ci->JobStatusesModel->load();
|
||||
if (isError($dbResultStatuses)) return $dbResultStatuses;
|
||||
$statuses = getData($dbResultStatuses);
|
||||
|
||||
// Loops through all the provided jobs
|
||||
foreach ($results as $job)
|
||||
{
|
||||
// Check if the required job is present in the database
|
||||
$dbResultJobs = $this->_ci->JobsQueueModel->load($job->{self::PROPERTY_JOBID});
|
||||
if (isError($dbResultJobs))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = getError($dbResultJobs); // retrieve the cause and store it in job object
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
elseif (!hasData($dbResultJobs)) // if no jobs were found
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = 'The required job is not present';
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
else // if a job was found then it could be updated
|
||||
{
|
||||
// If the structure of the job object is valid
|
||||
if ($this->_checkUpdateJobStructure($job) && $this->_checkJobStatus($job, $statuses))
|
||||
{
|
||||
$this->_dropNotAllowedPropertiesUpdateJob($job); // remove the black listed properties from this object
|
||||
|
||||
$job->{self::PROPERTY_TYPE} = $type; // What you asked is what you get!
|
||||
|
||||
// Try to update the single job into database
|
||||
$dbResult = $this->_ci->JobsQueueModel->update($job->{self::PROPERTY_JOBID}, (array)$job);
|
||||
|
||||
// If an error occurred during while updating in database
|
||||
if (isError($dbResult))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = getError($dbResult); // retrieve the cause and store it in job object
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
$dbNewTriggeredJobResult = $this->_addNewTriggeredJobToQueue(
|
||||
$type,
|
||||
$job,
|
||||
array($job->status)
|
||||
);
|
||||
// If an error occurred during while inserting in database
|
||||
if (isError($dbNewTriggeredJobResult)) return $dbNewTriggeredJobResult;
|
||||
}
|
||||
}
|
||||
else // otherwise
|
||||
{
|
||||
$errorOccurred = true; // set error occurred flag
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If an error occurred then returns the results in an error object
|
||||
if ($errorOccurred) return error($results);
|
||||
|
||||
return success($results); // otherwise return results in a success object
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Checks the job object structure when needed for insert
|
||||
*/
|
||||
private function _checkNewJobStructure(&$job)
|
||||
{
|
||||
// If job is a valid object and contains the required properties AND does NOT already contain the property error
|
||||
if (is_object($job)
|
||||
&& property_exists($job, self::PROPERTY_STATUS)
|
||||
&& !property_exists($job, self::PROPERTY_ERROR))
|
||||
{
|
||||
return true; // it is valid!
|
||||
}
|
||||
|
||||
// If not object then object it!
|
||||
if (!is_object($job)) $job = new stdClass();
|
||||
|
||||
// If an error property was not already previously stored then store an error message in job object
|
||||
if (!property_exists($job, self::PROPERTY_ERROR))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = 'The structure of the provided job is not valid';
|
||||
}
|
||||
|
||||
return false; // better sorry than wrong
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the job object structure when needed for update
|
||||
*/
|
||||
private function _checkUpdateJobStructure(&$job)
|
||||
{
|
||||
// If job is a valid object
|
||||
if (is_object($job) && property_exists($job, self::PROPERTY_JOBID)) return true; // it is valid!
|
||||
|
||||
// If not object then object it!
|
||||
if (!is_object($job)) $job = new stdClass();
|
||||
|
||||
// If an error property was not already previously stored then store an error message in job object
|
||||
if (!property_exists($job, self::PROPERTY_ERROR))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = 'The structure of the provided job is not valid';
|
||||
}
|
||||
|
||||
return false; // better sorry than wrong
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given job contains a valid type
|
||||
*/
|
||||
private function _checkJobType($type, $types)
|
||||
{
|
||||
return $this->_inArray($type, $types, self::PROPERTY_TYPE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given job contains a valid status
|
||||
*/
|
||||
private function _checkJobStatus(&$job, $statuses)
|
||||
{
|
||||
// If the given job doesn't have the property status then it is not valid
|
||||
if (!isset($job->{self::PROPERTY_STATUS}))
|
||||
{
|
||||
$found = false;
|
||||
}
|
||||
else // otherwise test if it valid
|
||||
{
|
||||
$found = $this->_inArray($job->{self::PROPERTY_STATUS}, $statuses, self::PROPERTY_STATUS);
|
||||
}
|
||||
|
||||
// No status was found and does NOT already contain the property error
|
||||
if (!$found && !property_exists($job, self::PROPERTY_ERROR))
|
||||
{
|
||||
$job->{self::PROPERTY_ERROR} = 'The provided status of this job is not valid'; // store the error message in the object
|
||||
}
|
||||
|
||||
return $found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Search in an array the given value
|
||||
* The elements of the given array are objects
|
||||
* The given value is compared with the property specified by the $propertyName parameter of each object of the given array
|
||||
*/
|
||||
private function _inArray($value, $array, $propertyName)
|
||||
{
|
||||
$found = false;
|
||||
|
||||
foreach ($array as $element)
|
||||
{
|
||||
if ($value == $element->{$propertyName})
|
||||
{
|
||||
$found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop not allowed properties from the given job
|
||||
*/
|
||||
private function _dropNotAllowedPropertiesNewJob(&$job)
|
||||
{
|
||||
unset($job->{self::PROPERTY_JOBID});
|
||||
unset($job->{self::PROPERTY_CREATIONTIME});
|
||||
unset($job->{self::PROPERTY_TYPE});
|
||||
}
|
||||
|
||||
/**
|
||||
* Drop not allowed properties from the given job
|
||||
*/
|
||||
private function _dropNotAllowedPropertiesUpdateJob(&$job)
|
||||
{
|
||||
unset($job->{self::PROPERTY_CREATIONTIME});
|
||||
unset($job->{self::PROPERTY_TYPE});
|
||||
}
|
||||
|
||||
/**
|
||||
* Add e new triggered job to the jobs queue
|
||||
* NOTE:
|
||||
* - In this method there are less checks compared to addNewJobsToQueue method because
|
||||
* the new jobs that will be added are generate in this method
|
||||
* - Job ids in this case are not returned, therefore the caller is not going to be informed about these new jobs
|
||||
*/
|
||||
private function _addNewTriggeredJobToQueue($type, $job, $triggeredStatuses)
|
||||
{
|
||||
// Get all the job trigggers for the given type and for the given statuses
|
||||
$dbTriggersResult = $this->_ci->JobTriggersModel->getJobtriggersByTypeStatuses($type, $triggeredStatuses);
|
||||
|
||||
// If an error occurred while getting job triggers from database then return it
|
||||
if (isError($dbTriggersResult)) return $dbTriggersResult;
|
||||
if (hasData($dbTriggersResult)) // If triggers were retrieved
|
||||
{
|
||||
// The output of the trigging job is the input of the trigged job
|
||||
$triggeredJobInput = null;
|
||||
if (isset($job->{self::PROPERTY_OUTPUT})) $triggeredJobInput = $job->{self::PROPERTY_OUTPUT};
|
||||
|
||||
// For each trigger
|
||||
foreach (getData($dbTriggersResult) as $trigger)
|
||||
{
|
||||
$triggeredJob = array(
|
||||
self::PROPERTY_TYPE => $trigger->following_type, // the new type is the one defined in tbl_jobtriggers
|
||||
self::PROPERTY_STATUS => self::STATUS_NEW, // new job status is new
|
||||
self::PROPERTY_INPUT => $triggeredJobInput // new job input
|
||||
);
|
||||
|
||||
// Try to insert the single job into database
|
||||
$dbNewJob = $this->_ci->JobsQueueModel->insert($triggeredJob);
|
||||
// If an error occurred during while inserting in database
|
||||
if (isError($dbNewJob)) return $dbNewJob;
|
||||
}
|
||||
}
|
||||
|
||||
return success(); // if here then it was a success!
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ class LogLib
|
||||
const P_NAME_LINE_INDEX = 'lineIndex';
|
||||
const P_NAME_DB_LOG_TYPE = 'dbLogType';
|
||||
const P_NAME_DB_EXECUTE_USER = 'dbExecuteUser';
|
||||
const P_NAME_REQUEST_ID = 'requestId';
|
||||
const P_NAME_REQUEST_DATA_FORMATTER = 'requestDataFormatter';
|
||||
|
||||
// Properties used to retrieve caller data
|
||||
private $_classIndex;
|
||||
@@ -52,6 +54,9 @@ class LogLib
|
||||
private $_dbLogType;
|
||||
private $_dbExecuteUser;
|
||||
|
||||
private $_requestId; // is it possible to specify a request id when loading this library
|
||||
private $_requestDataFormatter; // is possible to provide a function to format request data
|
||||
|
||||
/**
|
||||
* Set properties to a default value or overwrites them with the given parameters
|
||||
*/
|
||||
@@ -63,7 +68,18 @@ class LogLib
|
||||
$this->_lineIndex = self::LINE_INDEX;
|
||||
$this->_dbLogType = null;
|
||||
$this->_dbExecuteUser = self::DB_EXECUTE_USER;
|
||||
$this->_requestId = null;
|
||||
$this->_requestDataFormatter = null;
|
||||
|
||||
// If parameters are given then overwrite the default values
|
||||
if (!isEmptyArray($params)) $this->setConfigs($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Store configuration parameters for this lib
|
||||
*/
|
||||
public function setConfigs($params)
|
||||
{
|
||||
// If parameters are given then overwrite the default values
|
||||
if (!isEmptyArray($params))
|
||||
{
|
||||
@@ -72,6 +88,8 @@ class LogLib
|
||||
if (isset($params[self::P_NAME_LINE_INDEX])) $this->_lineIndex = $params[self::P_NAME_LINE_INDEX];
|
||||
if (isset($params[self::P_NAME_DB_LOG_TYPE])) $this->_dbLogType = $params[self::P_NAME_DB_LOG_TYPE];
|
||||
if (isset($params[self::P_NAME_DB_EXECUTE_USER])) $this->_dbExecuteUser = $params[self::P_NAME_DB_EXECUTE_USER];
|
||||
if (isset($params[self::P_NAME_REQUEST_ID])) $this->_requestId = $params[self::P_NAME_REQUEST_ID];
|
||||
if (isset($params[self::P_NAME_REQUEST_DATA_FORMATTER])) $this->_requestDataFormatter = $params[self::P_NAME_REQUEST_DATA_FORMATTER];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,33 +126,33 @@ class LogLib
|
||||
/**
|
||||
* Writes an info log to database
|
||||
*/
|
||||
public function logInfoDB($requestId, $data)
|
||||
public function logInfoDB($data, $requestId = null)
|
||||
{
|
||||
$this->_logDB(self::INFO, $requestId, $data);
|
||||
$this->_logDB(self::INFO, $data, $requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a debug log to database
|
||||
*/
|
||||
public function logDebugDB($requestId, $data)
|
||||
public function logDebugDB($data, $requestId = null)
|
||||
{
|
||||
$this->_logDB(self::DEBUG, $requestId, $data);
|
||||
$this->_logDB(self::DEBUG, $data, $requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes an warning log to database
|
||||
*/
|
||||
public function logWarningDB($requestId, $data)
|
||||
public function logWarningDB($data, $requestId = null)
|
||||
{
|
||||
$this->_logDB(self::WARNING, $requestId, $data);
|
||||
$this->_logDB(self::WARNING, $data, $requestId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes an error log to database
|
||||
*/
|
||||
public function logErrorDB($requestId, $data)
|
||||
public function logErrorDB($data, $requestId = null)
|
||||
{
|
||||
$this->_logDB(self::ERROR, $requestId, $data);
|
||||
$this->_logDB(self::ERROR, $data, $requestId);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------
|
||||
@@ -151,8 +169,15 @@ class LogLib
|
||||
/**
|
||||
* Writes logs to database
|
||||
*/
|
||||
private function _logDB($level, $requestId, $data)
|
||||
private function _logDB($level, $data, $requestId, $executionTime = null)
|
||||
{
|
||||
// If there isn't a valid request id provided during the loading of this library or when any log to db method is called
|
||||
// NOTE: this message will be displayed only to the developer AND stops the execution
|
||||
if (isEmptyString($this->_requestId) && isEmptyString($requestId))
|
||||
{
|
||||
show_error('To log to database you need to specify or give the "'.self::P_NAME_REQUEST_ID.'" parameter when the LogLib is loaded or when log'.ucfirst($level).'DB is called');
|
||||
}
|
||||
|
||||
// If the _dbLogType parameter was not given when this library was loaded
|
||||
// NOTE: this message will be displayed only to the developer AND stops the execution
|
||||
if ($this->_dbLogType == null)
|
||||
@@ -175,14 +200,21 @@ class LogLib
|
||||
// Get caller data
|
||||
$callerData = $this->_getCaller();
|
||||
|
||||
// If a request data formatter was defined then use it
|
||||
$request_data = $data;
|
||||
if ($this->_requestDataFormatter != null && is_callable($this->_requestDataFormatter))
|
||||
{
|
||||
$request_data = call_user_func_array($this->_requestDataFormatter, array($data));
|
||||
}
|
||||
|
||||
// Writes a log to database
|
||||
$ci->WebservicelogModel->insert(array(
|
||||
'webservicetyp_kurzbz' => $this->_dbLogType,
|
||||
'request_id' => $requestId,
|
||||
'request_id' => (!isEmptyString($requestId) ? $requestId : $this->_requestId).' - '.$level,
|
||||
'beschreibung' => $this->_getDatabaseDescription($callerData),
|
||||
'request_data' => $data,
|
||||
'request_data' => $request_data,
|
||||
'execute_user' => $this->_dbExecuteUser,
|
||||
'execute_time' => 'NOW()' // current time
|
||||
'execute_time' => $executionTime == null ? 'NOW()' : $executionTime // default current time, if not otherwise specified
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -251,3 +283,4 @@ class LogLib
|
||||
return $formatted;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -620,11 +620,24 @@ class MessageLib
|
||||
$this->_ci->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
|
||||
// And the receiver has an active account for the given organisation unit
|
||||
$benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit($message->receiver_id, $message->sender_ou);
|
||||
$benutzerResult = $this->_ci->BenutzerModel->getActiveUserByPersonIdAndOrganisationUnit(
|
||||
$message->receiver_id,
|
||||
$message->sender_ou
|
||||
);
|
||||
|
||||
if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it
|
||||
|
||||
// Use the uid + domain email
|
||||
if (hasData($benutzerResult)) $message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
|
||||
// If an active user for the given organization unit was found
|
||||
if (hasData($benutzerResult))
|
||||
{
|
||||
// Checks if the user was NOT created in the last 24 hours
|
||||
if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day')))
|
||||
{
|
||||
// Use the uid + domain email
|
||||
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
|
||||
}
|
||||
// otherwise do NOT use the internal email account
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise try with the private email
|
||||
@@ -669,7 +682,7 @@ class MessageLib
|
||||
// If there are presetudent
|
||||
if (hasData($prestudentResults))
|
||||
{
|
||||
$inArray = true;
|
||||
$privateOnly = false;
|
||||
$organisationUnits = getData($prestudentResults);
|
||||
|
||||
// Look if any of the organization units of this prestudent are in the list of the
|
||||
@@ -677,16 +690,21 @@ class MessageLib
|
||||
foreach ($organisationUnits as $organisationUnit)
|
||||
{
|
||||
// If the recipient organisation unit is NOT in the list of organisation units that sent only to private emails
|
||||
// NOTE: done in this way because it is easyer to check the result of array_search
|
||||
if (array_search($organisationUnit, $this->_ci->config->item(self::CFG_OU_RECEIVERS_PRIVATE)) === false)
|
||||
{
|
||||
$inArray = false;
|
||||
// NOP
|
||||
}
|
||||
else // otherwise If the recipient organisation unit is the list of organisation units that sent only to private emails
|
||||
{
|
||||
$privateOnly = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If the recipient prestudent organization unit is not in in the list of the
|
||||
// organization units that will not send the notice email to the internal account
|
||||
if (!$inArray)
|
||||
if ($privateOnly)
|
||||
{
|
||||
// Then use the private email
|
||||
$privateEmailResult = $this->_getPrivateEmail($message->receiver_id);
|
||||
@@ -701,10 +719,37 @@ class MessageLib
|
||||
$this->_ci->BenutzerModel->addOrder('updateamum', 'DESC');
|
||||
$this->_ci->BenutzerModel->addOrder('insertamum', 'DESC');
|
||||
|
||||
$benutzerResult = $this->_ci->BenutzerModel->loadWhere(array('person_id' => $message->receiver_id));
|
||||
$benutzerResult = $this->_ci->BenutzerModel->loadWhere(
|
||||
array(
|
||||
'person_id' => $message->receiver_id
|
||||
)
|
||||
);
|
||||
if (isError($benutzerResult)) return $benutzerResult; // if an error occured then return it
|
||||
|
||||
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN; // Use the uid + domain email
|
||||
// If an active user for the given organization unit was found
|
||||
if (hasData($benutzerResult))
|
||||
{
|
||||
// For each benutzer found for this person
|
||||
foreach (getData($benutzerResult) as $benutzer)
|
||||
{
|
||||
// Checks if the user was NOT created in the last 24 hours
|
||||
if (getData($benutzerResult)[0]->insertamum < date('Y-m-d H:i:s', strtotime('-1 day')))
|
||||
{
|
||||
// Use the uid + domain as email address
|
||||
$message->receiverContact = getData($benutzerResult)[0]->uid .'@'.DOMAIN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise try with the private email
|
||||
if (isEmptyString($message->receiverContact))
|
||||
{
|
||||
// Then use the private email
|
||||
$privateEmailResult = $this->_getPrivateEmail($message->receiver_id);
|
||||
if (isError($privateEmailResult)) return $privateEmailResult; // if an error occured then return it
|
||||
|
||||
if (hasData($privateEmailResult)) $message->receiverContact = getData($privateEmailResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ class PermissionLib
|
||||
|
||||
$accessType = '';
|
||||
|
||||
// Checks if the required access type is compliant with the HTTP method (GET => r, POST => w)
|
||||
// Set the access type
|
||||
if (strpos($requiredAccessType, PermissionLib::READ_RIGHT) !== false)
|
||||
{
|
||||
$accessType = PermissionLib::SELECT_RIGHT; // S
|
||||
@@ -184,12 +184,12 @@ class PermissionLib
|
||||
}
|
||||
else
|
||||
{
|
||||
show_error('The given permission array does not contain the called method or is not correctly set');
|
||||
show_error('The given permission array does not contain the given method or is not correctly set');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
show_error('You must give the permissions array as parameter to the constructor of the controller');
|
||||
show_error('The given permissions is not a valid array or it is an empty one');
|
||||
}
|
||||
|
||||
return $checkPermissions;
|
||||
|
||||
@@ -287,9 +287,11 @@ class Messages_model extends CI_Model
|
||||
|
||||
$sender = getData($senderResult)[0]; // Found sender data
|
||||
|
||||
// If the sender is not the system sender and are present configurations to reply
|
||||
// If the sender is not the system sender and the receiver is not the system sender
|
||||
// and are present configurations to reply
|
||||
$hrefReply = '';
|
||||
if ($message->sender_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID)
|
||||
&& $message->receiver_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID)
|
||||
&& !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL)))
|
||||
{
|
||||
$hrefReply = $this->config->item(MessageLib::CFG_MESSAGE_SERVER).
|
||||
@@ -297,6 +299,13 @@ class Messages_model extends CI_Model
|
||||
$token;
|
||||
}
|
||||
|
||||
// If the receiver is the system sender (the message was sent to an organization unit)
|
||||
// redirect the reply to an authenticated controller to reply
|
||||
if ($message->receiver_id == $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID))
|
||||
{
|
||||
$hrefReply = site_url('system/messages/MessageClient/writeReply?token='.$token);
|
||||
}
|
||||
|
||||
return array (
|
||||
'sender' => $sender,
|
||||
'message' => $message,
|
||||
@@ -417,23 +426,20 @@ class Messages_model extends CI_Model
|
||||
|
||||
$message = $this->messagelib->sendMessageUser(
|
||||
$msgVarsDataArray['person_id'], // receiverPersonId
|
||||
$parsedSubject, // subject
|
||||
$parsedBody, // body
|
||||
$sender_id, // sender_id
|
||||
$senderOU, // senderOU
|
||||
$relationmessage_id, // relationmessage_id
|
||||
MSG_PRIORITY_NORMAL // priority
|
||||
$parsedSubject, // subject
|
||||
$parsedBody, // body
|
||||
$sender_id, // sender_id
|
||||
$senderOU, // senderOU
|
||||
$relationmessage_id, // relationmessage_id
|
||||
MSG_PRIORITY_NORMAL // priority
|
||||
);
|
||||
|
||||
if (isError($message)) return $message;
|
||||
if (!hasData($message)) return error('No messages were saved in database');
|
||||
|
||||
// Write log entry only if persons were given
|
||||
if ($type == self::TYPE_PERSONS)
|
||||
{
|
||||
$personLog = $this->_personLog($sender_id, $msgVarsDataArray['person_id'], getData($message)[0]);
|
||||
if (isError($personLog)) return $personLog;
|
||||
}
|
||||
// Write log entry only
|
||||
$personLog = $this->_personLog($sender_id, $msgVarsDataArray['person_id'], getData($message)[0]);
|
||||
if (isError($personLog)) return $personLog;
|
||||
|
||||
$receiversCounter++; // increment the counter
|
||||
}
|
||||
|
||||
@@ -41,4 +41,35 @@ class Bisverwendung_model extends DB_Model
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Verwendungen of the user, optionally in a time span.
|
||||
* @param string $uid
|
||||
* @param string $beginn
|
||||
* @param string $ende
|
||||
* @return array
|
||||
*/
|
||||
public function getVerwendungen($uid, $beginn = null, $ende = null)
|
||||
{
|
||||
$params = array($uid);
|
||||
|
||||
$qry = 'SELECT * FROM bis.tbl_bisverwendung
|
||||
WHERE mitarbeiter_uid = ?';
|
||||
|
||||
if (isset($beginn))
|
||||
{
|
||||
$qry .= ' AND ( ende >= ? OR ende IS NULL )';
|
||||
$params[] = $beginn;
|
||||
}
|
||||
|
||||
if (isset($ende))
|
||||
{
|
||||
$qry .= ' AND ( beginn <= ? OR beginn IS NULL )';
|
||||
$params[] = $ende;
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY beginn, ende';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,61 @@ class Konto_model extends DB_Model
|
||||
$this->dbTable = 'public.tbl_konto';
|
||||
$this->pk = 'buchungsnr';
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets a Payment as paid
|
||||
*/
|
||||
public function setPaid($buchungsnr)
|
||||
{
|
||||
// get payment
|
||||
$buchungResult = $this->loadWhere(array('buchungsnr' => $buchungsnr));
|
||||
|
||||
if(isSuccess($buchungResult) && hasData($buchungResult))
|
||||
{
|
||||
// get already paid amount
|
||||
$this->addSelect('sum(betrag) as bezahlt');
|
||||
$this->addGroupBy('buchungsnr_verweis');
|
||||
$buchungVerweisResult = $this->loadWhere(array('buchungsnr_verweis' => $buchungsnr));
|
||||
|
||||
if(isSuccess($buchungVerweisResult))
|
||||
{
|
||||
if(hasData($buchungVerweisResult))
|
||||
{
|
||||
$betragBezahltResult = getData($buchungVerweisResult);
|
||||
$betragBezahlt = $betragBezahltResult->bezahlt;
|
||||
}
|
||||
else
|
||||
$betragBezahlt = 0;
|
||||
|
||||
$buchung = getData($buchungResult);
|
||||
$buchung = $buchung[0];
|
||||
|
||||
// calculate open amount
|
||||
$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,
|
||||
);
|
||||
|
||||
return $this->insert($data);
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Failed to load Payment');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return error('Failed to load Payment');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -182,4 +182,30 @@ class Prestudentstatus_model extends DB_Model
|
||||
return success(array());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* getLastStatuses
|
||||
*/
|
||||
public function getLastStatusPerson($person_id, $studiensemester_kurzbz = null)
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN (
|
||||
SELECT DISTINCT ON(prestudent_id) *
|
||||
FROM public.tbl_prestudentstatus
|
||||
WHERE prestudent_id IN (SELECT prestudent_id FROM public.tbl_prestudent WHERE person_id = ?)
|
||||
ORDER BY prestudent_id, datum desc, insertamum desc
|
||||
) ps USING(prestudent_id)
|
||||
JOIN public.tbl_status USING(status_kurzbz)';
|
||||
|
||||
$parametersArray = array($person_id);
|
||||
|
||||
if ($studiensemester_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $studiensemester_kurzbz);
|
||||
$query .= ' AND ps.studiensemester_kurzbz = ?';
|
||||
}
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,106 @@ class Abschlusspruefung_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_abschlusspruefung';
|
||||
$this->pk = 'abschlusspruefung_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets data of an Abschlusspruefung, including Abschlussarbeit.
|
||||
* @param $abschlusspruefung_id
|
||||
* @return object
|
||||
*/
|
||||
public function getAbschlusspruefung($abschlusspruefung_id)
|
||||
{
|
||||
$this->load->model('crm/Student_model', 'StudentModel');
|
||||
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
|
||||
$this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel');
|
||||
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
|
||||
|
||||
$abschlusspruefungdata = array();
|
||||
|
||||
$this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.pruefungstyp_kurzbz AS studiengangstyp, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende,
|
||||
tbl_abschlusspruefung.freigabedatum, tbl_abschlusspruefung_antritt.bezeichnung AS pruefungsantritt_bezeichnung, tbl_abschlusspruefung_antritt.bezeichnung_english AS pruefungsantritt_bezeichnung_english, tbl_abschlusspruefung.protokoll,
|
||||
studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr,
|
||||
vorsitzenderben.uid AS uid_vorsitz, vorsitzenderpers.vorname AS vorname_vorsitz, vorsitzenderpers.nachname AS nachname_vorsitz, vorsitzenderpers.titelpre AS titelpre_vorsitz, vorsitzenderpers.titelpost AS titelpost_vorsitz,
|
||||
erstprueferpers.vorname AS vorname_erstpruefer, erstprueferpers.nachname AS nachname_erstpruefer, erstprueferpers.titelpre AS titelpre_erstpruefer, erstprueferpers.titelpost AS titelpost_erstpruefer,
|
||||
zweitprueferpers.vorname AS vorname_zweitpruefer, zweitprueferpers.nachname AS nachname_zweitpruefer, zweitprueferpers.titelpre AS titelpre_zweitpruefer, zweitprueferpers.titelpost AS titelpost_zweitpruefer
|
||||
');
|
||||
$this->addJoin('lehre.tbl_abschlusspruefung_antritt', 'pruefungsantritt_kurzbz', 'LEFT');
|
||||
$this->addJoin('public.tbl_benutzer studentben', 'tbl_abschlusspruefung.student_uid = studentben.uid');
|
||||
$this->addJoin('public.tbl_person studentpers', 'studentben.person_id = studentpers.person_id');
|
||||
$this->addJoin('public.tbl_student', 'studentben.uid = tbl_student.student_uid');
|
||||
$this->addJoin('public.tbl_benutzer vorsitzenderben', 'vorsitz = vorsitzenderben.uid', 'LEFT');
|
||||
$this->addJoin('public.tbl_person vorsitzenderpers', 'vorsitzenderben.person_id = vorsitzenderpers.person_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_person erstprueferpers', 'pruefer1 = erstprueferpers.person_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_person zweitprueferpers', 'pruefer2 = zweitprueferpers.person_id', 'LEFT');
|
||||
|
||||
$abschlusspruefung = $this->load($abschlusspruefung_id);
|
||||
|
||||
if (isError($abschlusspruefung))
|
||||
return $abschlusspruefung;
|
||||
elseif (hasData($abschlusspruefung))
|
||||
{
|
||||
$abschlusspruefungdata = getData($abschlusspruefung)[0];
|
||||
|
||||
// get Studiengang of Student
|
||||
$student_uid = $abschlusspruefungdata->uid_student;
|
||||
$this->StudentModel->addSelect('prestudent_id');
|
||||
$prestudent_id = $this->StudentModel->load(array('student_uid' => $student_uid));
|
||||
|
||||
if (isError($prestudent_id))
|
||||
return $prestudent_id;
|
||||
elseif (hasData($prestudent_id))
|
||||
{
|
||||
//get Studiengangname from Studienplan and -ordnung
|
||||
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent(getData($prestudent_id)[0]->prestudent_id);
|
||||
|
||||
if (isError($studienordnung))
|
||||
return $studienordnung;
|
||||
elseif (hasData($studienordnung))
|
||||
{
|
||||
$studienordnungdata = getData($studienordnung)[0];
|
||||
|
||||
$abschlusspruefungdata->studiengang_kz = $studienordnungdata->studiengang_kz;
|
||||
$abschlusspruefungdata->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung;
|
||||
$abschlusspruefungdata->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch;
|
||||
}
|
||||
// if no Studienordnung available (e.g. Incomings), use Studiengangname provided by table student
|
||||
elseif (!hasData($studienordnung))
|
||||
{
|
||||
$this->resetQuery();
|
||||
|
||||
$this->load->model('crm/Student_model', 'StudentModel');
|
||||
$this->addSelect('studiengang_kz, bezeichnung, english');
|
||||
$this->addJoin('public.tbl_studiengang', 'studiengang_kz');
|
||||
$result = $this->StudentModel->load(array(
|
||||
'student_uid' => $student_uid)
|
||||
);
|
||||
|
||||
if ($result = getData($result)[0])
|
||||
{
|
||||
$abschlusspruefungdata->studiengang_kz = $result->studiengang_kz;
|
||||
$abschlusspruefungdata->studiengangbezeichnung = $result->bezeichnung;
|
||||
$abschlusspruefungdata->studiengangbezeichnung_englisch = $result->english;
|
||||
}
|
||||
}
|
||||
|
||||
// get Abschlussarbeit
|
||||
if (isset($abschlusspruefungdata->studiengang_kz) && !empty($abschlusspruefungdata->studiengang_kz))
|
||||
{
|
||||
$projekttyp = array('Bachelor','Diplom','Master','Dissertation','Lizenziat','Magister');
|
||||
$abschlussarbeit = $this->ProjektarbeitModel->getProjektarbeit($student_uid, $abschlusspruefungdata->studiengang_kz, null, $projekttyp, true);
|
||||
|
||||
if (isError($abschlussarbeit))
|
||||
return $abschlussarbeit;
|
||||
if (hasData($abschlussarbeit))
|
||||
{
|
||||
$abschlussarbeit = getData($abschlussarbeit)[0];
|
||||
$abschlusspruefungdata->projektarbeit_studiengangstyp_name = $abschlussarbeit->projekttyp_kurzbz;
|
||||
$abschlusspruefungdata->abschlussarbeit_titel = $abschlussarbeit->titel;
|
||||
$abschlusspruefungdata->abschlussarbeit_note = $abschlussarbeit->note;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return success($abschlusspruefungdata);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,9 +119,10 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
* Gets all students of a Lehrveranstaltung
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $lehrveranstaltung_id
|
||||
* @param $active optional, if true, only active students retrieved, false - only inactive, all students otherwise
|
||||
* @return array|null
|
||||
*/
|
||||
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id)
|
||||
public function getStudentsByLv($studiensemester_kurzbz, $lehrveranstaltung_id, $active = null)
|
||||
{
|
||||
$query = "SELECT
|
||||
distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr,
|
||||
@@ -144,8 +145,18 @@ class Lehrveranstaltung_model extends DB_Model
|
||||
WHERE
|
||||
vw_student_lehrveranstaltung.studiensemester_kurzbz=?
|
||||
AND
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=?
|
||||
ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
|
||||
vw_student_lehrveranstaltung.lehrveranstaltung_id=?";
|
||||
|
||||
if (isset($active))
|
||||
{
|
||||
if ($active === true)
|
||||
$query .= " AND tbl_benutzer.aktiv";
|
||||
elseif ($active === false)
|
||||
$query .= " AND tbl_benutzer.aktiv = false";
|
||||
}
|
||||
|
||||
$query .=
|
||||
" ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC";
|
||||
|
||||
return $this->execQuery($query, array($studiensemester_kurzbz, $lehrveranstaltung_id));
|
||||
}
|
||||
|
||||
@@ -11,4 +11,62 @@ class Projektarbeit_model extends DB_Model
|
||||
$this->dbTable = 'lehre.tbl_projektarbeit';
|
||||
$this->pk = 'projektarbeit_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Projektarbeit(en) of a student for a Studiengang, Semester, Projekttyp, final.
|
||||
* @param $student_uid
|
||||
* @param $studiengang_kz
|
||||
* @param $studiensemester_kurzbz
|
||||
* @param $projekttyp
|
||||
* @param $final
|
||||
* @return object
|
||||
*/
|
||||
public function getProjektarbeit($student_uid, $studiengang_kz = null, $studiensemester_kurzbz = null, $projekttyp = null, $final = null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
tbl_projektarbeit.* , tbl_projekttyp.bezeichnung
|
||||
FROM
|
||||
lehre.tbl_projektarbeit
|
||||
JOIN
|
||||
lehre.tbl_projekttyp USING (projekttyp_kurzbz), lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
|
||||
|
||||
WHERE
|
||||
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
|
||||
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
|
||||
tbl_projektarbeit.student_uid = ?";
|
||||
|
||||
$params = array($student_uid);
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
$qry .= ' AND tbl_lehrveranstaltung.studiengang_kz=?';
|
||||
$params[] = $studiengang_kz;
|
||||
}
|
||||
|
||||
if (isset($studiensemester_kurzbz))
|
||||
{
|
||||
$qry .= ' AND tbl_lehreinheit.studiensemester_kurzbz=?';
|
||||
$params[] = $studiensemester_kurzbz;
|
||||
}
|
||||
|
||||
if (isset($projekttyp))
|
||||
{
|
||||
if (is_array($projekttyp))
|
||||
$qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz IN ?';
|
||||
else
|
||||
$qry .= ' AND tbl_projektarbeit.projekttyp_kurzbz=?';
|
||||
|
||||
$params[] = $projekttyp;
|
||||
}
|
||||
|
||||
if (isset($final))
|
||||
{
|
||||
$qry .= ' AND tbl_projektarbeit.final=?';
|
||||
$params[] = $final;
|
||||
}
|
||||
|
||||
$qry .= ' ORDER BY beginn DESC, projektarbeit_id DESC';
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ class Organisationseinheit_model extends DB_Model
|
||||
FROM tree JOIN tbl_organisationseinheit oe ON (tree.oe_kurzbz = oe.oe_parent_kurzbz)
|
||||
)
|
||||
SELECT oe_kurzbz AS id,
|
||||
SUBSTRING(REGEXP_REPLACE(path, '[A-z]+\|', '-', 'g') || bezeichnung, 2) AS description
|
||||
SUBSTRING(REGEXP_REPLACE(path, '[A-z0-9]+\|', '-', 'g') || bezeichnung, 2) AS description
|
||||
FROM tree";
|
||||
|
||||
$parametersArray = array();
|
||||
|
||||
@@ -39,7 +39,7 @@ class Studiensemester_model extends DB_Model
|
||||
$days = 60;
|
||||
}
|
||||
|
||||
$query = 'SELECT studiensemester_kurzbz
|
||||
$query = 'SELECT studiensemester_kurzbz, start, ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start < NOW() - \'' . $days . ' DAYS\'::INTERVAL
|
||||
ORDER BY start DESC
|
||||
@@ -59,7 +59,7 @@ class Studiensemester_model extends DB_Model
|
||||
$days = 62;
|
||||
}
|
||||
|
||||
$query = 'SELECT studiensemester_kurzbz
|
||||
$query = 'SELECT studiensemester_kurzbz, start, ende
|
||||
FROM public.tbl_studiensemester
|
||||
WHERE start < NOW() + \'' . $days . ' DAYS\':: INTERVAL
|
||||
ORDER BY start DESC
|
||||
|
||||
@@ -14,12 +14,14 @@ class Adresse_model extends DB_Model
|
||||
|
||||
|
||||
/**
|
||||
* gets person data from uid
|
||||
* @param $uid
|
||||
* Get Zustelladress of given person.
|
||||
* @param string $person_id
|
||||
* @param string $select
|
||||
* @return array
|
||||
*/
|
||||
public function getZustellAdresse($person_id)
|
||||
public function getZustellAdresse($person_id, $select = '*')
|
||||
{
|
||||
$this->addSelect($select);
|
||||
return $this->loadWhere(array('person_id' => $person_id, 'zustelladresse'=> true));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,14 +23,81 @@ class Benutzer_model extends DB_Model
|
||||
*/
|
||||
public function getActiveUserByPersonIdAndOrganisationUnit($person_id, $oe_kurzbz)
|
||||
{
|
||||
$sql = 'SELECT b.uid
|
||||
FROM public.tbl_benutzer b
|
||||
JOIN public.tbl_prestudent ps USING (person_id)
|
||||
JOIN public.tbl_studiengang sg USING (studiengang_kz)
|
||||
WHERE ps.person_id = ?
|
||||
AND sg.oe_kurzbz = ?
|
||||
AND b.aktiv = TRUE';
|
||||
$sql = 'SELECT
|
||||
b.uid,
|
||||
b.insertamum
|
||||
FROM
|
||||
public.tbl_prestudent ps
|
||||
JOIN public.tbl_studiengang sg USING (studiengang_kz)
|
||||
JOIN public.tbl_student USING(prestudent_id)
|
||||
JOIN public.tbl_benutzer b ON(uid = student_uid)
|
||||
WHERE ps.person_id = ?
|
||||
AND sg.oe_kurzbz = ?
|
||||
AND b.aktiv = TRUE';
|
||||
|
||||
return $this->execQuery($sql, array($person_id, $oe_kurzbz));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if alias exists
|
||||
* @param $alias
|
||||
*/
|
||||
public function aliasExists($alias)
|
||||
{
|
||||
$this->addSelect('1');
|
||||
$result = $this->loadWhere(array('alias' => $alias));
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
if (hasData($result))
|
||||
{
|
||||
$result = success(array(true));
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = success(array(false));
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates alias for a uid.
|
||||
* @param $uid
|
||||
* @return array the alias if newly generated
|
||||
*/
|
||||
public function generateAlias($uid)
|
||||
{
|
||||
$aliasres = '';
|
||||
$this->addLimit(1);
|
||||
$this->addSelect('vorname, nachname');
|
||||
$this->addJoin('public.tbl_person', 'person_id');
|
||||
$nameresult = $this->loadWhere(array('uid' => $uid));
|
||||
|
||||
if (hasData($nameresult))
|
||||
{
|
||||
$aliasdata = getData($nameresult);
|
||||
$alias = $this->_sanitizeAliasName($aliasdata[0]->vorname).'.'.$this->_sanitizeAliasName($aliasdata[0]->nachname);
|
||||
$aliasexists = $this->aliasExists($alias);
|
||||
|
||||
if (hasData($aliasexists) && !getData($aliasexists)[0])
|
||||
$aliasres = $alias;
|
||||
}
|
||||
return success($aliasres);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
/**
|
||||
* Sanitizes a string used for alias. Replaces special characters, spaces, sets lower case.
|
||||
* @param string $str
|
||||
* @return string
|
||||
*/
|
||||
private function _sanitizeAliasName($str)
|
||||
{
|
||||
$str = sanitizeProblemChars($str);
|
||||
return mb_strtolower(str_replace(' ','_', $str));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,44 @@ class Benutzerfunktion_model extends DB_Model
|
||||
$this->pk = 'benutzerfunktion_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Benutzerfunktionen zu einer UID
|
||||
* @param type $uid UID des Mitarbeiters
|
||||
* @param type $funktion_kurzbz OPTIONAL Kurzbezeichnung der Funktion
|
||||
* @param type $startZeitraum OPTIONAL Start Zeitraum in dem die Funktion aktiv ist
|
||||
* @param type $endeZeitraum OPTIONAL Ende Zeitraum in dem die Funktion aktiv ist
|
||||
* @return boolean
|
||||
*/
|
||||
public function getBenutzerFunktionByUid($uid, $funktion_kurzbz=null, $startZeitraum=null, $endeZeitraum=null)
|
||||
{
|
||||
$params = array($uid);
|
||||
|
||||
$qry = "SELECT tbl_benutzerfunktion.*, tbl_organisationseinheit.bezeichnung as organisationseinheit_bezeichnung,
|
||||
tbl_organisationseinheit.organisationseinheittyp_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
LEFT JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE uid=?";
|
||||
if(!is_null($funktion_kurzbz))
|
||||
{
|
||||
$qry .= ' AND funktion_kurzbz = ?';
|
||||
$params[] = $funktion_kurzbz;
|
||||
}
|
||||
if(!is_null($startZeitraum))
|
||||
{
|
||||
$qry .=' AND (datum_bis IS NULL OR datum_bis >= ?)';
|
||||
$params[] = $startZeitraum;
|
||||
}
|
||||
if(!is_null($endeZeitraum))
|
||||
{
|
||||
$qry .=' AND (datum_von IS NULL OR datum_von <= ?)';
|
||||
$params[] = $endeZeitraum;
|
||||
}
|
||||
|
||||
$qry .= "ORDER BY datum_bis NULLS LAST, datum_von NULLS LAST;";
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Benutzerfunktion using the person_id
|
||||
*/
|
||||
|
||||
@@ -10,6 +10,7 @@ class Kontakt_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_kontakt';
|
||||
$this->pk = 'kontakt_id';
|
||||
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
|
||||
}
|
||||
|
||||
public function getWholeKontakt($kontakt_id, $person_id = null, $kontakttyp = null)
|
||||
@@ -59,4 +60,142 @@ class Kontakt_model extends DB_Model
|
||||
|
||||
return $this->execQuery($sql, array($person_id, $kontakttyp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Kontakt eines Standortes
|
||||
* Es wird nur der erste Eintrag zurueckgeliefert!
|
||||
* @param $standort_id
|
||||
* @param $kontakttyp
|
||||
*/
|
||||
public function getFirmaKontakttyp($standort_id, $kontakttyp)
|
||||
{
|
||||
if (!is_numeric($standort_id))
|
||||
{
|
||||
return error('StandortID ist ungueltig');
|
||||
}
|
||||
|
||||
$qry = "SELECT kontakt, kontakt_id FROM public.tbl_kontakt WHERE standort_id=? AND kontakttyp=? ORDER BY kontakt_id LIMIT 1;";
|
||||
|
||||
return $this->execQuery($qry, array('standort_id' => $standort_id, 'kontakttyp' => $kontakttyp));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets Firmentelefon for a uid, can be Vorwahl with Telefonklappe or Firmenhandy
|
||||
* @param $uid
|
||||
*/
|
||||
public function getFirmentelefon($uid)
|
||||
{
|
||||
$firmentelefon = success(array());
|
||||
|
||||
$this->MitarbeiterModel->addSelect('standort_id, telefonklappe, person_id');
|
||||
$this->MitarbeiterModel->addJoin('public.tbl_benutzer', 'tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid');
|
||||
$mitarbeiter = $this->MitarbeiterModel->load(array('uid' => $uid));
|
||||
|
||||
if (hasData($mitarbeiter))
|
||||
{
|
||||
$mitarbeiter = getData($mitarbeiter);
|
||||
if (isEmptyString($mitarbeiter[0]->telefonklappe))
|
||||
{
|
||||
$this->addSelect('kontakt');
|
||||
$this->addOrder('updateamum, insertamum', 'DESC');
|
||||
$this->addLimit(1);
|
||||
$firmenhandy = $this->loadWhere(array('person_id' => $mitarbeiter[0]->person_id, 'kontakttyp' => 'firmenhandy'));
|
||||
if (hasData($firmenhandy))
|
||||
{
|
||||
$firmenhandy = getData($firmenhandy);
|
||||
$firmentelefon = success(array('kontakt' => $firmenhandy[0]->kontakt, 'telefonklappe' => ''));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$firmaKontakttyp = $this->getFirmaKontakttyp($mitarbeiter[0]->standort_id, 'telefon');
|
||||
if (hasData($firmaKontakttyp))
|
||||
{
|
||||
$vorwahl = getData($firmaKontakttyp);
|
||||
$vorwahl = $vorwahl[0]->kontakt;
|
||||
$firmentelefon = success(array('kontakt' => $vorwahl, 'telefonklappe' => $mitarbeiter[0]->telefonklappe));
|
||||
}
|
||||
}
|
||||
}
|
||||
return $firmentelefon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all latest contact data of person, where Zustellung is true
|
||||
* @param $person_id
|
||||
* @return array
|
||||
*/
|
||||
public function getAll_byPersonID($person_id)
|
||||
{
|
||||
$this->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt');
|
||||
$this->addJoin('public.tbl_standort', 'standort_id', 'LEFT');
|
||||
$this->addJoin('public.tbl_firma', 'firma_id', 'LEFT');
|
||||
$this->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum');
|
||||
|
||||
return $this->loadWhere(array(
|
||||
'zustellung' => TRUE,
|
||||
'person_id' => $person_id
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all latest phones of person where zustellung is true. Ordered by
|
||||
* telefon > mobil > firmenhandy > else.
|
||||
* @param string person_id
|
||||
*/
|
||||
public function getPhones_byPerson($person_id)
|
||||
{
|
||||
$qry = '
|
||||
WITH latest_phones AS(
|
||||
SELECT DISTINCT ON (kontakttyp) kontakttyp, kontakt
|
||||
FROM public.tbl_kontakt kontakt
|
||||
LEFT JOIN public.tbl_standort USING (standort_id)
|
||||
LEFT JOIN public.tbl_firma USING (firma_id)
|
||||
WHERE person_id = ?
|
||||
AND zustellung
|
||||
AND kontakttyp IN (\'telefon\', \'mobil\', \'firmenhandy\')
|
||||
ORDER BY kontakttyp, kontakt, kontakt.updateamum
|
||||
)
|
||||
|
||||
SELECT * FROM latest_phones
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN kontakttyp = \'telefon\' THEN 0
|
||||
WHEN kontakttyp = \'mobil\' THEN 1
|
||||
WHEN kontakttyp = \'firmenhandy\' THEN 2
|
||||
ELSE 3
|
||||
END
|
||||
';
|
||||
|
||||
return $this->execQuery($qry, array($person_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads main contact, i.e. most recent Zustellkontakt with the given kontakttypes.
|
||||
* @param $person_id
|
||||
* @param $kontakttypen array of kontakttypen, one chronologically last Zustellkontakt for all given types
|
||||
* @return object
|
||||
*/
|
||||
public function getZustellKontakt($person_id, $kontakttypen)
|
||||
{
|
||||
if (is_string($kontakttypen))
|
||||
$kontakttypen = array($kontakttypen);
|
||||
|
||||
if (!isEmptyArray($kontakttypen))
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
kontakt
|
||||
FROM
|
||||
public.tbl_kontakt
|
||||
WHERE person_id = ?
|
||||
AND kontakttyp IN ?
|
||||
ORDER BY zustellung DESC NULLS LAST, updateamum DESC, insertamum DESC
|
||||
LIMIT 1";
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $kontakttypen));
|
||||
}
|
||||
else
|
||||
return success(array());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
<?php
|
||||
class Betriebsmittelperson_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -11,4 +10,45 @@ class Betriebsmittelperson_model extends DB_Model
|
||||
$this->dbTable = 'wawi.tbl_betriebsmittelperson';
|
||||
$this->pk = 'betriebsmittelperson_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Betriebsmittel by person.
|
||||
* @param string $person_id
|
||||
* @param string $betriebsmitteltyp
|
||||
* @param bool $isRetourniert False to retrieve only active Betriebsmittel.
|
||||
* @return array|bool
|
||||
*/
|
||||
public function getBetriebsmittel($person_id, $betriebsmitteltyp = null, $isRetourniert = null)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id type is not valid.';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id');
|
||||
|
||||
$condition = '
|
||||
person_id = '. $this->escape($person_id). '
|
||||
';
|
||||
|
||||
if (is_string($betriebsmitteltyp)) {
|
||||
$condition .= '
|
||||
AND betriebsmitteltyp = ' . $this->escape($betriebsmitteltyp);
|
||||
}
|
||||
|
||||
if ($isRetourniert === true) {
|
||||
$condition .= '
|
||||
AND retouram IS NOT NULL'; // return date is given
|
||||
}
|
||||
elseif ($isRetourniert === false)
|
||||
{
|
||||
$condition .= '
|
||||
AND retouram IS NULL'; // default
|
||||
}
|
||||
|
||||
$this->addOrder('ausgegebenam', 'DESC'); // default
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,4 +40,166 @@ class Mitarbeiter_model extends DB_Model
|
||||
return success(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt das Personal
|
||||
*
|
||||
* @param $aktiv wenn true werden nur aktive geladen, wenn false dann nur inaktve, wenn null dann alle
|
||||
* @param $fix wenn true werden nur fixangestellte geladen
|
||||
* @param $verwendung wenn true werden alle geladen die eine BIS-Verwendung eingetragen haben
|
||||
* @param $personaccount wenn true werden alle geladen die personalnr >= 0 haben, also "echte" Personaccounts
|
||||
* @return array
|
||||
*/
|
||||
public function getPersonal($aktiv, $fix, $verwendung, $personaccount = null, $uids = null)
|
||||
{
|
||||
$qry = "SELECT DISTINCT ON(mitarbeiter_uid) staatsbuergerschaft, geburtsnation, sprache, anrede, titelpost, titelpre,
|
||||
nachname, vorname, vornamen, gebdatum, gebort, gebzeit, tbl_person.anmerkung AS person_anmerkung, homepage, svnr, ersatzkennzeichen, familienstand,
|
||||
geschlecht, anzahlkinder, tbl_person.insertamum AS person_insertamum, tbl_person.updateamum as person_updateamum,
|
||||
tbl_person.updatevon AS person_updatevon, kompetenzen, kurzbeschreibung, zugangscode, zugangscode_timestamp, bpk,
|
||||
tbl_benutzer.*, tbl_mitarbeiter.*, akt_funk.oe_kurzbz AS funktionale_zuordnung, akt_funk.wochenstunden
|
||||
FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid))
|
||||
JOIN public.tbl_person USING(person_id))
|
||||
LEFT JOIN public.tbl_benutzerfunktion USING(uid)
|
||||
LEFT JOIN public.tbl_benutzerfunktion akt_funk ON tbl_mitarbeiter.mitarbeiter_uid = akt_funk.uid AND akt_funk.funktion_kurzbz = 'fachzuordnung'
|
||||
AND (akt_funk.datum_von IS NULL OR akt_funk.datum_von <= now()) AND (akt_funk.datum_bis IS NULL OR akt_funk.datum_bis >= now())
|
||||
WHERE true";
|
||||
|
||||
if ($fix === true)
|
||||
$qry .= " AND fixangestellt=true";
|
||||
elseif ($fix === false)
|
||||
$qry .= " AND fixangestellt=false";
|
||||
|
||||
if ($aktiv === true)
|
||||
$qry .= " AND tbl_benutzer.aktiv=true";
|
||||
elseif ($aktiv === false)
|
||||
$qry .= " AND tbl_benutzer.aktiv=false";
|
||||
|
||||
if ($verwendung === true)
|
||||
{
|
||||
$qry.=" AND EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
|
||||
}
|
||||
elseif ($verwendung === false)
|
||||
{
|
||||
$qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
|
||||
}
|
||||
|
||||
if ($personaccount === true)
|
||||
$qry .= " AND tbl_mitarbeiter.personalnummer >= 0";
|
||||
elseif ($personaccount === false)
|
||||
$qry .= " AND tbl_mitarbeiter.personalnummer < 0";
|
||||
|
||||
$params = array();
|
||||
if (!isEmptyArray($uids))
|
||||
{
|
||||
$qry .= " AND tbl_mitarbeiter.mitarbeiter_uid IN ?";
|
||||
$params[] = $uids;
|
||||
}
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt ein Array mit den UIDs der Vorgesetzten zurück
|
||||
* @return object
|
||||
*/
|
||||
public function getVorgesetzte($uid, $datum_von = null, $datum_bis = null)
|
||||
{
|
||||
$datum_von_var = isset($datum_von) ? '?' : 'now()';
|
||||
$datum_bis_var = isset($datum_bis) ? '?' : 'now()';
|
||||
$qry = "SELECT
|
||||
DISTINCT uid as vorgesetzter
|
||||
FROM
|
||||
public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='Leitung' AND
|
||||
(datum_von is null OR datum_von<=%s) AND
|
||||
(datum_bis is null OR datum_bis>=%s) AND
|
||||
oe_kurzbz in (SELECT oe_kurzbz
|
||||
FROM public.tbl_benutzerfunktion
|
||||
WHERE
|
||||
funktion_kurzbz='oezuordnung' AND uid=? AND
|
||||
(datum_von is null OR datum_von<=%s) AND
|
||||
(datum_bis is null OR datum_bis>=%s)
|
||||
);";
|
||||
|
||||
$qry = sprintf($qry, $datum_von_var, $datum_bis_var, $datum_von_var, $datum_bis_var);
|
||||
|
||||
$params = array();
|
||||
if (isset($datum_von))
|
||||
$params[] = $datum_von;
|
||||
if (isset($datum_bis))
|
||||
$params[] = $datum_bis;
|
||||
|
||||
$params[] = $uid;
|
||||
|
||||
if (isset($datum_von))
|
||||
$params[] = $datum_von;
|
||||
if (isset($datum_bis))
|
||||
$params[] = $datum_bis;
|
||||
|
||||
return $this->execQuery($qry, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if alias exists
|
||||
* @param $kurzbz
|
||||
*/
|
||||
public function kurzbzExists($kurzbz)
|
||||
{
|
||||
$this->addSelect('1');
|
||||
$result = $this->loadWhere(array('kurzbz' => $kurzbz));
|
||||
|
||||
if (isSuccess($result))
|
||||
{
|
||||
if (hasData($result))
|
||||
{
|
||||
$result = success(array(true));
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = success(array(false));
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates alias for a uid.
|
||||
* @param $uid
|
||||
* @return array the alias if newly generated
|
||||
*/
|
||||
public function generateKurzbz($uid)
|
||||
{
|
||||
$kurzbz = '';
|
||||
$this->addLimit(1);
|
||||
$this->addSelect('vorname, nachname');
|
||||
$this->addJoin('public.tbl_benutzer', 'tbl_mitarbeiter.mitarbeiter_uid = tbl_benutzer.uid');
|
||||
$this->addJoin('public.tbl_person', 'person_id');
|
||||
$nameresult = $this->loadWhere(array('uid' => $uid));
|
||||
|
||||
if (hasData($nameresult))
|
||||
{
|
||||
$kurzbzdata = getData($nameresult);
|
||||
$nachname_clean = sanitizeProblemChars($kurzbzdata[0]->nachname);
|
||||
$vorname_clean = sanitizeProblemChars($kurzbzdata[0]->vorname);
|
||||
|
||||
for ($nn = 6, $vn = 2; $nn != 0; $nn--, $vn++)
|
||||
{
|
||||
$kurzbz = mb_substr($nachname_clean, 0, $nn);
|
||||
$kurzbz .= mb_substr($vorname_clean, 0, $vn);
|
||||
|
||||
$kurzbzexists = $this->kurzbzExists($kurzbz);
|
||||
|
||||
if (hasData($kurzbzexists) && !getData($kurzbzexists)[0])
|
||||
break;
|
||||
}
|
||||
|
||||
$kurzbzexists = $this->kurzbzExists($kurzbz);
|
||||
|
||||
if (hasData($kurzbzexists) && getData($kurzbzexists)[0])
|
||||
return error('No Kurzbezeichnung could be generated');
|
||||
}
|
||||
return success($kurzbz);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,14 @@ class Zeitaufzeichnung_model extends DB_Model
|
||||
$this->dbTable = 'campus.tbl_zeitaufzeichnung';
|
||||
$this->pk = 'zeitaufzeichnung_id';
|
||||
}
|
||||
|
||||
public function deleteEntriesForCurrentDay()
|
||||
{
|
||||
$today = date('Y-m-d');
|
||||
$qry = "DELETE FROM " . $this->dbTable . "
|
||||
WHERE start >= '" . $today . " 00:00:00'
|
||||
AND start <= '" . $today . " 23:59:59';";
|
||||
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,13 @@ class Zeitsperre_model extends DB_Model
|
||||
$this->dbTable = 'campus.tbl_zeitsperre';
|
||||
$this->pk = 'zeitsperre_id';
|
||||
}
|
||||
|
||||
public function deleteEntriesForCurrentDay()
|
||||
{
|
||||
$today = date('Y-m-d');
|
||||
$qry = "DELETE FROM " . $this->dbTable . "
|
||||
WHERE vondatum = '" . $today . "';";
|
||||
|
||||
return $this->execQuery($qry);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class JobStatuses_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->dbTable = 'system.tbl_jobstatuses';
|
||||
$this->pk = 'status';
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
class JobTriggers_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->dbTable = 'system.tbl_jobtriggers';
|
||||
$this->pk = array('type', 'status', 'followingType');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public function getJobtriggersByTypeStatuses($type, $triggeredStatuses)
|
||||
{
|
||||
$query = 'SELECT jt.type,
|
||||
jt.status,
|
||||
jt.following_type
|
||||
FROM system.tbl_jobtriggers jt
|
||||
WHERE jt.type = ?
|
||||
AND jt.status IN ?
|
||||
ORDER BY jt.type, jt.status';
|
||||
|
||||
return $this->execQuery($query, array($type, $triggeredStatuses));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
class JobTypes_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->dbTable = 'system.tbl_jobtypes';
|
||||
$this->pk = 'type';
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
class JobsQueue_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->dbTable = 'system.tbl_jobsqueue';
|
||||
$this->pk = 'jobid';
|
||||
}
|
||||
}
|
||||
@@ -189,7 +189,7 @@ $this->load->view(
|
||||
|
||||
<div class="col-xs-4 col-md-offset-0 col-md-4">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="username" type="hidden" autocomplete="username" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
|
||||
|
||||
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Pruefungsprotokoll',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'dialoglib' => true,
|
||||
'ajaxlib' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'phrases' => array(
|
||||
'abschlusspruefung' => array(
|
||||
'freigegebenAm',
|
||||
'pruefungGespeichert',
|
||||
'pruefungSpeichernFehler',
|
||||
'abschlussbeurteilungLeer',
|
||||
'beginnzeitLeer',
|
||||
'beginnzeitFormatError',
|
||||
'endezeitLeer',
|
||||
'endezeitFormatError',
|
||||
'endezeitBeforeError',
|
||||
'verfNotice'
|
||||
),
|
||||
'ui' => array(
|
||||
'stunde',
|
||||
'minute'
|
||||
)
|
||||
),
|
||||
'customCSSs' => array(
|
||||
'public/css/sbadmin2/admintemplate_contentonly.css',
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.css',
|
||||
'public/css/lehre/pruefungsprotokoll.css'
|
||||
),
|
||||
'customJSs' => array(
|
||||
'vendor/fgelinas/timepicker/jquery.ui.timepicker.js',
|
||||
'public/js/lehre/pruefungsprotokoll.js'
|
||||
)
|
||||
)
|
||||
);
|
||||
?>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<?php if (isset($abschlusspruefung)):
|
||||
$studiengangstyp_name = $abschlusspruefung->studiengangstyp == 'Bachelor' ? 'Bachelor' : 'Master';
|
||||
$pruefung_name = $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'pruefungBachelor') : $this->p->t('abschlusspruefung', 'pruefungMaster');
|
||||
$arbeit_name = $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'arbeitBachelor') : $this->p->t('abschlusspruefung', 'arbeitMaster');
|
||||
$protokolltextvorlage = $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'pruefungsnotizenBachelor') : $this->p->t('abschlusspruefung', 'pruefungsnotizenMaster');
|
||||
$protokolltext = isset($abschlusspruefung->protokoll) ? $abschlusspruefung->protokoll : $protokolltextvorlage;
|
||||
?>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'protokoll') ?> <?php echo $pruefung_name ?>
|
||||
</h3>
|
||||
<p>
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?>
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, <?php echo $this->p->t('abschlusspruefung', 'studiengangskennzahl') ?>
|
||||
<?php echo $abschlusspruefung->studiengang_kz ?>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h4>
|
||||
<?php echo $abschlusspruefung->titelpre_student . ' ' . $abschlusspruefung->vorname_student . ' ' . $abschlusspruefung->nachname_student . ' ' . $abschlusspruefung->titelpost_student?>
|
||||
</h4>
|
||||
<p><?php echo $this->p->t('abschlusspruefung', 'personenkennzeichen') ?>: <?php echo $abschlusspruefung->matrikelnr ?></p>
|
||||
<br />
|
||||
<input type="hidden" name="abschlusspruefung_id" value="<?php echo $abschlusspruefung->abschlusspruefung_id;?>" id="abschlusspruefung_id">
|
||||
<form id="protocolform">
|
||||
<table class="table-condensed table-bordered table-responsive" id="protocoltbl">
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungssenat') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'vorsitz') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_vorsitz . ' ' . $abschlusspruefung->vorname_vorsitz . ' ' . $abschlusspruefung->nachname_vorsitz . ' ' . $abschlusspruefung->titelpost_vorsitz ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'erstpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_erstpruefer . ' ' . $abschlusspruefung->vorname_erstpruefer . ' ' . $abschlusspruefung->nachname_erstpruefer . ' ' . $abschlusspruefung->titelpost_erstpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'zweitpruefer') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $abschlusspruefung->titelpre_zweitpruefer . ' ' . $abschlusspruefung->vorname_zweitpruefer . ' ' . $abschlusspruefung->nachname_zweitpruefer . ' ' . $abschlusspruefung->titelpost_zweitpruefer ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsdatum') ?>
|
||||
</td>
|
||||
<td class="datevalcellwidth">
|
||||
<?php echo date_format(date_create($abschlusspruefung->datum), 'd.m.Y'); ?>
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsbeginn') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsbeginn" id="pruefungsbeginn" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsbeginn), 'H:i') ?>">
|
||||
</td>
|
||||
<td class="cellbg namecellwidth">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsende') ?>
|
||||
</td>
|
||||
<td class="timecellwidth">
|
||||
<input class="timepicker form-control" name="pruefungsende" id="pruefungsende" value="<?php echo isEmptyString($abschlusspruefung->pruefungsbeginn) ? '' : date_format(date_create($abschlusspruefung->pruefungsende), 'H:i') ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsantritt') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo $language == 'German' ? $abschlusspruefung->pruefungsantritt_bezeichnung : $abschlusspruefung->pruefungsantritt_bezeichnung_english; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungName') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<input type="checkbox" id="verfCheck">
|
||||
<?php echo $this->p->t('abschlusspruefung', 'einverstaendniserklaerungText') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'themaBeurteilung') ?> <?php echo $arbeit_name ?>
|
||||
</td>
|
||||
<td colspan="4">
|
||||
<?php echo isset($abschlusspruefung->abschlussarbeit_titel) ? $abschlusspruefung->abschlussarbeit_titel : '' ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo $this->p->t('lehre', 'note') ?>: <?php echo isset($abschlusspruefung->abschlussarbeit_note) ? $abschlusspruefung->abschlussarbeit_note : '' ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<?php echo $this->p->t('abschlusspruefung', 'pruefungsgegenstand') ?>
|
||||
</td>
|
||||
<td colspan="5">
|
||||
<?php echo ($abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'pruefungsgegenstandBachelor') : $this->p->t('abschlusspruefung', 'pruefungsgegenstandMaster')) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo ucfirst($this->p->t('global', 'notizen')); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
|
||||
<textarea id="protokoll" name="protokoll" class="form-control" rows="15" cols="107"><?php echo $protokolltext ?></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'beurteilungKriterienBachelor') : $this->p->t('abschlusspruefung', 'beurteilungKriterienMaster') ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
<?php echo $abschlusspruefung->studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'beurteilungBachelor') : $this->p->t('abschlusspruefung', 'beurteilungMaster') ?>:
|
||||
<select name="abschlussbeurteilung_kurzbz" id="abschlussbeurteilung_kurzbz" class="form-control">
|
||||
<option value="">-- <?php echo $this->p->t('ui', 'bitteWaehlen'); ?> --</option>
|
||||
<?php foreach ($abschlussbeurteilung as $beurteilung):
|
||||
$selected = $beurteilung->abschlussbeurteilung_kurzbz == $abschlusspruefung->abschlussbeurteilung_kurzbz ? " selected" : "" ?>
|
||||
<option value="<?php echo $beurteilung->abschlussbeurteilung_kurzbz; ?>"<?php echo $selected ?>><?php echo $language == 'German' ? $beurteilung->bezeichnung : $beurteilung->bezeichnung_english; ?> </option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<span id="verfNotice"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 text-right">
|
||||
<p>
|
||||
<?php $freigegeben = isset($abschlusspruefung->freigabedatum); ?>
|
||||
<button id="saveProtocolBtn" class="btn btn-default"<?php echo $freigegeben ? " disabled" : "" ?>><?php echo $this->p->t('ui', 'speichern') ?></button>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr id="hrbottom">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<span id="freigegebenText">
|
||||
<?php
|
||||
if ($freigegeben)
|
||||
echo ' ' . $this->p->t('abschlusspruefung', 'freigegebenAm') . ' ' . date_format(date_create($abschlusspruefung->freigabedatum), 'd.m.Y')
|
||||
?>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-lg-8">
|
||||
<div class="input-group">
|
||||
<input id="username" type="hidden" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
|
||||
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
|
||||
<span class="input-group-btn">
|
||||
<button id="freigebenProtocolBtn" class="btn btn-default"><?php echo $this->p->t('abschlusspruefung', 'ueberpruefenFreigeben') ?></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<br />
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Prüfungsprotokoll',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'jquerycheckboxes' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'phrases' => array(
|
||||
'ui' => array(
|
||||
'keineDatenVorhanden',
|
||||
'heute',
|
||||
'letzteWoche',
|
||||
'alle',
|
||||
'zeitraum'
|
||||
)
|
||||
),
|
||||
'customCSSs' => array('public/css/sbadmin2/tablesort_bootstrap.css'),
|
||||
'customJSs' => array('public/js/bootstrapper.js')
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<div id="page-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
<?php echo $this->p->t('abschlusspruefung','pruefungsprotokoll'); ?>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $this->p->t('abschlusspruefung','einfuehrungstext'); ?>
|
||||
<br><br>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<form action="" method="post">
|
||||
<label><?php echo $this->p->t('ui','zeitraum'); ?>: </label>
|
||||
<div class="btn-group" role="group">
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'today' ? 'active' : ''?>"
|
||||
name="period" value="today"><?php echo $this->p->t('ui','heute'); ?></button>
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'lastWeek' ? 'active' : ''?>"
|
||||
name="period" value="lastWeek"><?php echo $this->p->t('ui','letzteWoche'); ?></button>
|
||||
<button type="submit" class="btn btn-default <?php echo $period == 'all' ? 'active' : ''?>"
|
||||
name="period" value="all"><?php echo $this->p->t('ui','alle'); ?></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<?php $this->load->view('lehre/pruefungsprotokollUebersichtData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
$UID = getAuthUID();
|
||||
$PERIOD = $period; // filter Pruefungsprotokolle for given period
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
tbl_abschlusspruefung.abschlusspruefung_id,
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname as name,
|
||||
tbl_studiengangstyp.bezeichnung || ' ' || tbl_studiengang.bezeichnung,
|
||||
tbl_abschlusspruefung.datum,
|
||||
tbl_abschlusspruefung.freigabedatum
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung
|
||||
JOIN public.tbl_student USING(student_uid)
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_studiengang ON(tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz)
|
||||
JOIN public.tbl_studiengangstyp USING(typ)
|
||||
WHERE
|
||||
vorsitz='".$UID."'
|
||||
AND (
|
||||
'". $PERIOD. "' = 'today' AND datum = NOW()::date OR
|
||||
'". $PERIOD. "' = 'lastWeek' AND datum = (NOW() - interval '1 week')::date OR
|
||||
'". $PERIOD. "' = 'all' AND datum >= '2020-05-27'
|
||||
)
|
||||
ORDER BY datum, nachname, vorname
|
||||
";
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => $query,
|
||||
'tableUniqueId' => 'pruefungsprotokoll',
|
||||
'requiredPermissions' => 'lehre/pruefungsbeurteilung',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
ucfirst($this->p->t('global', 'details')),
|
||||
ucfirst($this->p->t('global', 'name')),
|
||||
ucfirst($this->p->t('lehre', 'studiengang')),
|
||||
ucfirst($this->p->t('global', 'datum')),
|
||||
ucfirst($this->p->t('global', 'status')),
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
/* NOTE: Dont use $this here for PHP Version compatibility */
|
||||
$datasetRaw->{'abschlusspruefung_id'} = sprintf(
|
||||
'<a href="%s?abschlusspruefung_id=%s" target="_blank">Protokoll ausfüllen</a>',
|
||||
site_url('lehre/Pruefungsprotokoll/Protokoll'),
|
||||
$datasetRaw->{'abschlusspruefung_id'}
|
||||
);
|
||||
|
||||
if ($datasetRaw->{'datum'} == null)
|
||||
{
|
||||
$datasetRaw->{'datum'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'datum'} = date_format(date_create($datasetRaw->{'datum'}),'d.m.Y');
|
||||
}
|
||||
if ($datasetRaw->{'freigabedatum'} == null)
|
||||
{
|
||||
$datasetRaw->{'freigabedatum'} = 'offen';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'freigabedatum'} = 'Freigegeben am: '.date_format(date_create($datasetRaw->{'freigabedatum'}),'d.m.Y');
|
||||
}
|
||||
return $datasetRaw;
|
||||
},
|
||||
);
|
||||
|
||||
echo $this->widgetlib->widget('TableWidget', $filterWidgetArray);
|
||||
|
||||
?>
|
||||
@@ -3,7 +3,7 @@
|
||||
'query' => '
|
||||
SELECT
|
||||
person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr,
|
||||
staatsbuergerschaft, gebdatum
|
||||
staatsbuergerschaft, gebdatum, false AS mitarbeiter
|
||||
FROM
|
||||
public.tbl_person
|
||||
WHERE
|
||||
@@ -11,6 +11,17 @@
|
||||
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)
|
||||
UNION
|
||||
SELECT
|
||||
person_id, vorname, nachname, geschlecht, svnr, ersatzkennzeichen, matr_nr,
|
||||
staatsbuergerschaft, gebdatum, true AS mitarbeiter
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
JOIN public.tbl_mitarbeiter ON (mitarbeiter_uid=uid)
|
||||
WHERE
|
||||
bpk is null
|
||||
AND tbl_benutzer.aktiv=true
|
||||
',
|
||||
'requiredPermissions' => 'admin',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
@@ -25,6 +36,7 @@
|
||||
ucfirst($this->p->t('person', 'matrikelnummer')),
|
||||
ucfirst($this->p->t('person', 'staatsbuergerschaft')),
|
||||
ucfirst($this->p->t('person', 'geburtsdatum')),
|
||||
'Mitarbeiter'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
@@ -45,6 +57,11 @@
|
||||
{
|
||||
$datasetRaw->{'svnr'} = '-';
|
||||
}
|
||||
if ($datasetRaw->{'matr_nr'} == null)
|
||||
{
|
||||
$datasetRaw->{'matr_nr'} = '-';
|
||||
}
|
||||
$datasetRaw->{'mitarbeiter'} = $datasetRaw->{'mitarbeiter'} == 'true' ? 'ja' : 'nein';
|
||||
|
||||
return $datasetRaw;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Jobs Queue Viewer',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'tablesorter' => true,
|
||||
'ajaxlib' => true,
|
||||
'filterwidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('mailAnXversandt'),
|
||||
'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">
|
||||
Jobs Queue Viewer
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<?php $this->load->view('system/jq/jobsQueueViewerData.php'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
$filterWidgetArray = array(
|
||||
'query' => '
|
||||
SELECT jq.jobid AS "JobId",
|
||||
jq.creationtime AS "CreationTime",
|
||||
jq.type AS "Type",
|
||||
jq.status AS "Status",
|
||||
jq.starttime AS "StartTime",
|
||||
jq.endtime AS "EndTime",
|
||||
jq.insertvon AS "UserService"
|
||||
FROM system.tbl_jobsqueue jq
|
||||
ORDER BY jq.creationtime DESC, jq.starttime DESC, jq.endtime DESC
|
||||
',
|
||||
'requiredPermissions' => 'admin',
|
||||
'datasetRepresentation' => 'tablesorter',
|
||||
'columnsAliases' => array(
|
||||
'Job id',
|
||||
'Creation time',
|
||||
'Type',
|
||||
'Status',
|
||||
'Start time',
|
||||
'End time',
|
||||
'User/Service'
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->CreationTime = date_format(date_create($datasetRaw->CreationTime), 'd.m.Y H:i:s');
|
||||
$datasetRaw->StartTime = date_format(date_create($datasetRaw->StartTime), 'd.m.Y H:i:s');
|
||||
$datasetRaw->EndTime = date_format(date_create($datasetRaw->EndTime), 'd.m.Y H:i:s');
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
'markRow' => function($datasetRaw) {
|
||||
|
||||
$mark = '';
|
||||
|
||||
if ($datasetRaw->Status == JobsQueueLib::STATUS_FAILED)
|
||||
{
|
||||
$mark = 'text-red';
|
||||
}
|
||||
|
||||
if ($datasetRaw->Status == JobsQueueLib::STATUS_DONE)
|
||||
{
|
||||
$mark = 'text-green';
|
||||
}
|
||||
|
||||
if ($datasetRaw->Status == JobsQueueLib::STATUS_RUNNING)
|
||||
{
|
||||
$mark = 'text-orange';
|
||||
}
|
||||
|
||||
if ($datasetRaw->Status == JobsQueueLib::STATUS_NEW)
|
||||
{
|
||||
$mark = 'text-info';
|
||||
}
|
||||
|
||||
return $mark;
|
||||
}
|
||||
);
|
||||
|
||||
$filterWidgetArray['app'] = 'core';
|
||||
$filterWidgetArray['datasetName'] = 'jq';
|
||||
$filterWidgetArray['filter_id'] = $this->input->get('filter_id');
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
@@ -2,7 +2,7 @@
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Logs viewer',
|
||||
'title' => 'Logs Viewer',
|
||||
'jquery' => true,
|
||||
'jqueryui' => true,
|
||||
'bootstrap' => true,
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
JobsViewer
|
||||
Job Logs Viewer
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
),
|
||||
'formatRow' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->ExecutionTime = date_format(date_create($datasetRaw->ExecutionTime), 'd.m.Y H:i:s');
|
||||
$datasetRaw->ExecutionTime = date_format(date_create($datasetRaw->ExecutionTime), 'd.m.Y H:i:s:u');
|
||||
|
||||
return $datasetRaw;
|
||||
},
|
||||
@@ -33,22 +33,22 @@
|
||||
|
||||
$mark = '';
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob error')
|
||||
if (strpos($datasetRaw->RequestId, 'error') != false)
|
||||
{
|
||||
$mark = 'text-red';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob info')
|
||||
if (strpos($datasetRaw->RequestId, 'info') != false)
|
||||
{
|
||||
$mark = 'text-green';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob warning')
|
||||
if (strpos($datasetRaw->RequestId, 'warning') != false)
|
||||
{
|
||||
$mark = 'text-orange';
|
||||
}
|
||||
|
||||
if ($datasetRaw->RequestId == 'Cronjob debug')
|
||||
if (strpos($datasetRaw->RequestId, 'debug') != false)
|
||||
{
|
||||
$mark = 'text-info';
|
||||
}
|
||||
@@ -63,3 +63,4 @@
|
||||
|
||||
echo $this->widgetlib->widget('FilterWidget', $filterWidgetArray);
|
||||
?>
|
||||
|
||||
|
||||
@@ -31,7 +31,10 @@ class Organisationseinheit_widget extends DropdownWidget
|
||||
{
|
||||
// NOTE: no need to call addSelectToModel because getRecursiveList already returns
|
||||
// the correct names of the fields
|
||||
$this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList());
|
||||
$this->setElementsArray($this->OrganisationseinheitModel->getRecursiveList(),
|
||||
true,
|
||||
$this->p->t('lehre', 'organisationseinheit'),
|
||||
'No organisational unit found');
|
||||
}
|
||||
|
||||
$this->loadDropDownView($widgetData);
|
||||
|
||||
@@ -812,6 +812,7 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
{
|
||||
$studlist .= "
|
||||
<td><b>" . $p->t('global/personenkz') . "</b></td>
|
||||
<td><b>" . $p->t('global/studiengang') . "</b></td>
|
||||
<td><b>" . $p->t('global/nachname') . "</b></td>
|
||||
<td><b>" . $p->t('global/vorname') . "</b></td>
|
||||
";
|
||||
@@ -834,10 +835,11 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT
|
||||
DISTINCT uid, vorname, nachname, matrikelnr
|
||||
DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
|
||||
FROM
|
||||
campus.vw_student_lehrveranstaltung
|
||||
JOIN campus.vw_student USING(uid)
|
||||
JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
|
||||
WHERE
|
||||
studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
|
||||
AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
|
||||
@@ -859,6 +861,7 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
|
||||
if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
|
||||
{
|
||||
$studlist .= "<tr><td>" . trim($row_stud->matrikelnr) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->kurzbzlang) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->nachname) . "</td>";
|
||||
$studlist .= "<td>" . trim($row_stud->vorname) . "</td>";
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ function loadPruefungsfenster()
|
||||
success: function(data){
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 10000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
@@ -617,7 +617,7 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id)
|
||||
else
|
||||
{
|
||||
//Wenn Anmeldung durch Lektor
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id, false, false);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -725,6 +725,11 @@ function refresh()
|
||||
loadPruefungen();
|
||||
loadPruefungenOfStudiengang();
|
||||
loadPruefungenGesamt();
|
||||
|
||||
if ($("#filter_studiensemester").val() == "0")
|
||||
$("#additional-exams").hide();
|
||||
else
|
||||
$("#additional-exams").show();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -763,9 +768,10 @@ function convertDateTime(string, type)
|
||||
* @param {type} pruefungstermin_id ID des Prüfungstermins
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param saveReihungAfterShow speichert Reihung neu wenn true
|
||||
* @param showMessage steuert ob Meldung angzeigt werden soll
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false)
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false, showMessage = true)
|
||||
{
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
@@ -780,7 +786,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAf
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
writeAnmeldungen(data);
|
||||
writeAnmeldungen(data, showMessage);
|
||||
$("#sortable").sortable();
|
||||
$("#sortable").disableSelection();
|
||||
|
||||
@@ -790,7 +796,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAf
|
||||
});
|
||||
}
|
||||
|
||||
function writeAnmeldungen(data)
|
||||
function writeAnmeldungen(data, showMessage = true)
|
||||
{
|
||||
if(data.error === 'false')
|
||||
{
|
||||
@@ -862,7 +868,10 @@ function writeAnmeldungen(data)
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
$("#raumLink").empty();
|
||||
$("#listeDrucken").empty();
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
|
||||
if (showMessage)
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
|
||||
if (data.lv_bezeichnung)
|
||||
{
|
||||
$("#lvdaten").html(data.lv_bezeichnung+" ("+data.termin_datum+")");
|
||||
@@ -910,11 +919,11 @@ function saveReihung(terminId, lehrveranstaltung_id)
|
||||
success: function(data){
|
||||
if(data.error === 'false' && data.result === true)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
|
||||
showAnmeldungen(terminId, lehrveranstaltung_id);
|
||||
@@ -951,7 +960,7 @@ function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltun
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -988,7 +997,7 @@ function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_i
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1022,7 +1031,7 @@ function alleBestaetigen(termin_id, lehrveranstaltung_id)
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1074,7 +1083,7 @@ function loadStudiengaenge()
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1133,7 +1142,7 @@ function loadPruefungStudiengang(studiengang_kz, studiensemester)
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1178,7 +1187,7 @@ function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
messageBox("message", "<?php echo $p->t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id);
|
||||
}
|
||||
});
|
||||
@@ -1396,7 +1405,7 @@ function savePruefungstermin()
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1422,12 +1431,12 @@ function savePruefungstermin()
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1530,7 +1539,7 @@ function loadPruefungsDetails(prfId)
|
||||
}).done(function(data){
|
||||
if(data.result.length === 0)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 10000);
|
||||
$("#pruefungsfenster").html("<option value='null'></option>");
|
||||
}
|
||||
else
|
||||
@@ -1823,7 +1832,7 @@ function updatePruefung(prfId)
|
||||
|
||||
if(error)
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1851,12 +1860,12 @@ function updatePruefung(prfId)
|
||||
unmarkMissingFormEntry();
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 10000);
|
||||
resetPruefungsverwaltung();
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadAllPruefungen();
|
||||
@@ -1886,11 +1895,11 @@ function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
@@ -1917,11 +1926,11 @@ function stornoPruefung(pruefung_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadAllPruefungen();
|
||||
@@ -1950,11 +1959,11 @@ function terminLoeschen(pruefung_id, pruefungstermin_id)
|
||||
}).done(function(data){
|
||||
if(data.error === "false")
|
||||
{
|
||||
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 1000);
|
||||
messageBox("message", "<?php echo $p->t('pruefung/terminGeloescht'); ?>", "green", "highlight", 10000);
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(){
|
||||
loadPruefungsDetails(pruefung_id);
|
||||
@@ -2009,7 +2018,7 @@ function loadAllPruefungen()
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
messageBox("message", data.errormsg, "red", "highlight", 10000);
|
||||
}
|
||||
}).always(function(event, xhr, settings){
|
||||
if($("#prfTable")[0].hasInitialized !== true)
|
||||
|
||||
@@ -53,7 +53,7 @@ $method = isset($_REQUEST['method'])?$_REQUEST['method']:'';
|
||||
switch($method)
|
||||
{
|
||||
case 'getPruefungByLv':
|
||||
$studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL;
|
||||
$studiensemester = isset($_REQUEST['studiensemester']) && $_REQUEST['studiensemester'] != '0' ? $_REQUEST['studiensemester'] : NULL;
|
||||
$data = getPruefungByLv($studiensemester, $uid);
|
||||
break;
|
||||
case 'getPruefungByLvFromStudiengang':
|
||||
@@ -156,7 +156,7 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null)
|
||||
}
|
||||
$lehrveranstaltungen=$lvIds;
|
||||
$pruefung = new pruefungCis();
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen))
|
||||
if($pruefung->getPruefungByLv($lehrveranstaltungen, $uid))
|
||||
{
|
||||
$pruefungen = array();
|
||||
foreach($pruefung->lehrveranstaltungen as $key=>$lv)
|
||||
@@ -164,7 +164,10 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null)
|
||||
$lehrveranstaltung = new lehrveranstaltung($lv->lehrveranstaltung_id);
|
||||
$lehrveranstaltung = $lehrveranstaltung->cleanResult();
|
||||
$lehreinheit = new lehreinheit();
|
||||
$lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester);
|
||||
if ($aktStudiensemester == null)
|
||||
$lehreinheit->load_all_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id);
|
||||
else
|
||||
$lehreinheit->load_lehreinheiten($lehrveranstaltung[0]->lehrveranstaltung_id, $aktStudiensemester);
|
||||
$lehreinheiten = $lehreinheit->lehreinheiten;
|
||||
$prf = new stdClass();
|
||||
$temp = new pruefungCis($lv->pruefung_id);
|
||||
@@ -612,13 +615,14 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
$stdsem = $aktStudiensemester;
|
||||
|
||||
$prestudenten = array();
|
||||
$gueltigerStatus = array("Student", "Unterbrecher", "Absolvent");
|
||||
|
||||
foreach ($prestudent->result as $ps)
|
||||
{
|
||||
// prüfen ob Student zum Zeitpunkt der LV oder zumindest irgendwann Student im Studiengang war/ist
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch) || $ps->studiengang_kz == $studiengang_kz)
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher") || ($ps->status_kurzbz == ""))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus) || ($ps->status_kurzbz == ""))
|
||||
{
|
||||
array_push($prestudenten, $ps);
|
||||
}
|
||||
@@ -634,7 +638,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -642,7 +646,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -653,7 +657,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -667,7 +671,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -675,7 +679,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
@@ -686,7 +690,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null)
|
||||
{
|
||||
if ($ps->getLaststatus($ps->prestudent_id, $stdsem_lv_besuch))
|
||||
{
|
||||
if (($ps->status_kurzbz == "Student") || ($ps->status_kurzbz == "Unterbrecher"))
|
||||
if (in_array($ps->status_kurzbz, $gueltigerStatus))
|
||||
{
|
||||
$prestudent_id = $ps->prestudent_id;
|
||||
}
|
||||
|
||||
@@ -187,21 +187,15 @@ $studiensemester->getAll();
|
||||
<body>
|
||||
<?php
|
||||
echo "<h1>".$p->t('pruefung/anmeldungFuer')." ".$benutzer->vorname." ".$benutzer->nachname." (".$uid.")</h1>";
|
||||
echo '<h3>'.$p->t('pruefung/filter').'</h3>';
|
||||
echo '<p>'.$p->t('global/studiensemester').': ';
|
||||
echo '<h3 style="display: none">'.$p->t('pruefung/filter').'</h3>';
|
||||
echo '<p style="display: none">'.$p->t('global/studiensemester').': ';
|
||||
echo '<select id="filter_studiensemester" onchange="refresh();">';
|
||||
$aktuellesSemester = $studiensemester->getaktorNext();
|
||||
foreach ($studiensemester->studiensemester as $sem)
|
||||
{
|
||||
if ($aktuellesSemester == $sem->studiensemester_kurzbz)
|
||||
{
|
||||
echo '<option selected value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
echo '<option value="'.$sem->studiensemester_kurzbz.'">'.$sem->studiensemester_kurzbz.'</option>';
|
||||
}
|
||||
echo '<option selected value="0">alle Semester</option>';
|
||||
echo '</select></p>';
|
||||
?>
|
||||
<div id="details" title="<?php echo $p->t('pruefung/details'); ?>">
|
||||
@@ -240,43 +234,45 @@ $studiensemester->getAll();
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php
|
||||
if (!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG')
|
||||
|| CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true):
|
||||
?>
|
||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||
<div>
|
||||
<table id="table2" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenStudiengang">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div id="additional-exams" style="display: none">
|
||||
<?php
|
||||
if (!defined('CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG')
|
||||
|| CIS_PRUEFUNGSANMELDUNG_LEHRVERANSTALTUNGEN_AUS_STUDIENGANG == true):
|
||||
?>
|
||||
<h2><?php echo $p->t('pruefung/lvVonStudiengang'); ?></h2>
|
||||
<div>
|
||||
<table id="table2" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenStudiengang">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||
<div>
|
||||
<table id="table3" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenGesamt">
|
||||
<h2><?php echo $p->t('pruefung/lvAlle'); ?></h2>
|
||||
<div>
|
||||
<table id="table3" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="columnheader1"><?php echo $p->t('global/institut'); ?></th>
|
||||
<th class="columnheader2"><?php echo $p->t('global/lehrveranstaltung'); ?></th>
|
||||
<th class="columnheader3"><?php echo $p->t('pruefung/pruefungTermin'); ?></th>
|
||||
<th class="columnheader4"><?php echo $p->t('pruefung/freiePlaetze'); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="pruefungenGesamt">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="saveDialog" title="<?php echo $p->t('pruefung/anmeldungSpeichern'); ?>">
|
||||
<form id="saveAnmeldungForm">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$url = "http://xgnd.bsz-bw.de/";
|
||||
$url = "https://xgnd.bsz-bw.de/";
|
||||
$zielfeld = "kontrollschlagwoerter";
|
||||
$url = $url."?zielfeld=".$zielfeld;
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
|
||||
@@ -1,456 +1,456 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
|
||||
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
$uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid());
|
||||
$uid=trim($uid);
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') || !$rechte->isBerechtigt('admin'))
|
||||
die($rechte->errormsg);
|
||||
unset($rechte);
|
||||
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien</title>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<?php
|
||||
/* Copyright (C) 2009 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
|
||||
* Gerald Simane-Sequens <gerald.simane@technikum-wien.at>.
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
$uid=isset($_GET['uid'])?$_GET['uid']:(isset($_POST['uid'])?$_POST['uid']:get_uid());
|
||||
$uid=trim($uid);
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 's') && !$rechte->isBerechtigt('admin'))
|
||||
die($rechte->errormsg);
|
||||
unset($rechte);
|
||||
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>Anzahl Studenten Lehrveranstaltungsplan FH Technikum-Wien</title>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
|
||||
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script src="../../../vendor/components/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
li { list-style : outside url("../../../skin/images/right.gif");}
|
||||
/* ----------------------------------
|
||||
Resizable
|
||||
---------------------------------- */
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
|
||||
|
||||
div.info {top:5%;position: absolute;display:none;padding: 5px 5px 5px 5px;border: 1px solid Black;empty-cells : hide;text-align:center;vertical-align: top;z-index: 99;background-color: white; position:absolute;}
|
||||
div.infoclose {border: 7px outset #008381;padding: 0px 10px 0px 10px;}
|
||||
div.infodetail {font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" language="JavaScript1.2">
|
||||
<!--
|
||||
$(function()
|
||||
{
|
||||
$("#info").resizable();
|
||||
$("#ui-resizable").draggable();
|
||||
});
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body id="inhalt">
|
||||
<div id="ui-resizable" class="ui-resizable">
|
||||
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-e"></div>
|
||||
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-s"></div>
|
||||
<div style="z-index: 1001; -moz-user-select: none;" class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se"></div>
|
||||
<div id="info" class="info">
|
||||
<div style="border: 7px outset #393939;padding: 10px 10px 10px 10px;">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr style="color:#FFF;" class="ContentHeader">
|
||||
<td id="info_print" align="left" style="color:#FFF;cursor: default;" class="ContentHeader">
|
||||
<div>drucken <img border="0" src="../../../skin/images/printer.png" title="drucken" ><br /></div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("td#info_print").click(function()
|
||||
{
|
||||
el='div#infodetail';
|
||||
var doc=null;
|
||||
var tab=false;;
|
||||
var iframe=false;
|
||||
if ($.browser.opera || $.browser.mozilla)
|
||||
{
|
||||
var tab = window.open("","jqPrint-preview");
|
||||
tab.document.open();
|
||||
var doc = tab.document;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var iframe=document.createElement('IFRAME');
|
||||
document.body.appendChild(iframe);
|
||||
doc=iframe.contentWindow.document;
|
||||
}
|
||||
|
||||
var links=window.document.getElementsByTagName("link");
|
||||
for(var i=0;i<links.length;i++)
|
||||
{
|
||||
if(links[i].rel.toLowerCase()=="stylesheet")
|
||||
{
|
||||
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
|
||||
}
|
||||
}
|
||||
doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
|
||||
doc.close();
|
||||
(tab ? tab : iframe.contentWindow).focus();
|
||||
setTimeout( function() { ( tab ? tab : iframe.contentWindow).print(); if (tab) { tab.close(); } }, 1000);
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
<td id="info_close" align="right" style="color:#FFF;cursor: default;" class="ContentHeader">
|
||||
<div>schliessen <img border="0" src="../../../skin/images/cross.png" title="schliessen"> </div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("td#info_close").click(function(event)
|
||||
{
|
||||
$("div#info").hide("slow"); // div# langsam oeffnen
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr></table>
|
||||
<div id="infodetail" style="font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;"></div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Variablen uebernehmen
|
||||
$datum=(isset($_GET['datum'])?$_GET['datum']:(isset($_POST['datum'])?$_POST['datum']:time()));
|
||||
$stpl_table=(isset($_GET['stpl_table'])?$_GET['stpl_table']:'stundenplan');
|
||||
$montag=montag($datum);
|
||||
$letzterTag=mktime(0,0,0,date('m',$montag),date('d',$montag) + TAGE_PRO_WOCHE,date('Y',$montag));
|
||||
$letzterTagAnzeige=mktime(0,0,0,date('m',$montag),date('d',$montag) + ( TAGE_PRO_WOCHE - 1),date('Y',$montag));
|
||||
|
||||
// Vorbelegen der Wochennavigation
|
||||
$kwRet=mktime(0,0,0,date('m',$montag),date('d',$montag) -7 ,date('Y',$montag));
|
||||
$kwVor=mktime(0,0,0,date('m',$montag),date('d',$montag) +7 ,date('Y',$montag));
|
||||
$kw=strftime('%W',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
|
||||
|
||||
$adresse_id=(isset($_GET['adresse_id'])?$_GET['adresse_id']:(isset($_POST['adresse_id'])?$_POST['adresse_id']:1));
|
||||
|
||||
// Datum Anzeige Header
|
||||
$tag=strftime('%a %d',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
|
||||
$tag_monat=strftime('%a %d %b',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
|
||||
$tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
|
||||
$letzter_tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$letzterTagAnzeige),date('d',$letzterTagAnzeige),date('Y',$letzterTagAnzeige)));
|
||||
|
||||
// Beginn Ende setzen
|
||||
$objSS=new studiensemester();
|
||||
$ss=$objSS->getaktorNext();
|
||||
$objSS->load($ss);
|
||||
$datum_obj = new datum();
|
||||
$ss_begin=$datum_obj->mktime_fromdate($objSS->start);
|
||||
$ss_ende=$datum_obj->mktime_fromdate($objSS->ende);
|
||||
|
||||
|
||||
$sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe ';
|
||||
$sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
|
||||
$sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
|
||||
$sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre ";
|
||||
$sql_query.=" group by tbl_adresse.plz,tbl_adresse.name ";
|
||||
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
|
||||
if(!$results_anzahl=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
$raum_max_anz=0;
|
||||
$fh_name='FH lese fehler';
|
||||
if ($num_rows_anzahl=$db->db_num_rows($results_anzahl))
|
||||
{
|
||||
$fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz");
|
||||
$raum_max_anz = $db->db_result($results_anzahl,0,"summe");
|
||||
}
|
||||
|
||||
$stg=array();
|
||||
echo '<H2><table class="tabcontent"><tr><td>
|
||||
Lehrveranstaltungsplan >> <a class="Item" href="index.php">Wochenplan</a> - Anzahl Studenten
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$kwRet.'&stpl_table='.$stpl_table.'"><<</a>
|
||||
Wochenplan <a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$datum.'&stpl_table='.$stpl_table.'">Kw '.$kw.'</a>
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$kwVor.'&stpl_table='.$stpl_table.'">>></a>
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.time().'&stpl_table='.$stpl_table.'">Heute</a>
|
||||
</td></tr></table></H2>';
|
||||
|
||||
// Stundentafel abfragen
|
||||
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
|
||||
if(!$results=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
|
||||
|
||||
echo '<table class="tabcontent" style=" z-index: 1;">';
|
||||
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 1 ) .'">'. $fh_name .' '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Stunde</td>';
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
|
||||
$max_person_array=array();
|
||||
$num_rows_stunde=$db->db_num_rows($results);
|
||||
echo '<tr>';
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$row = $db->db_fetch_object($results, $k);
|
||||
$row->show_beginn=substr($row->beginn,0,5);
|
||||
$row->show_ende=substr($row->ende,0,5);
|
||||
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
|
||||
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
|
||||
$lehreinheiten=array();
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
// Init je Tag und Std.
|
||||
$fehler=false;
|
||||
$aktiv=false;
|
||||
$max_person=0;
|
||||
|
||||
$day= date('Ymd',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag)));
|
||||
if ($day== date('Ymd') && date('Hi') >= $row->check_beginn && date('Hi')<=$row->check_ende )
|
||||
$aktiv=true;
|
||||
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
|
||||
$sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name ';
|
||||
$sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
|
||||
$sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." ";
|
||||
$sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." ";
|
||||
$sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz ";
|
||||
$sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
|
||||
$sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz ";
|
||||
|
||||
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
|
||||
if(!$results_anzahl=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
$num_rows_anzahl=$db->db_num_rows($results_anzahl);
|
||||
|
||||
$gefunden_anz=0;
|
||||
$tooltip='';
|
||||
for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++)
|
||||
{
|
||||
$row_anz = $db->db_fetch_object($results_anzahl, $k_anz);
|
||||
// Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen
|
||||
if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)]))
|
||||
continue;
|
||||
$lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz);
|
||||
|
||||
$max_person=$row_anz->max_person+$max_person;
|
||||
$row_anz->verband=trim($row_anz->verband);
|
||||
$row_anz->gruppe=trim($row_anz->gruppe);
|
||||
$row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz);
|
||||
|
||||
$stsem=$ss;
|
||||
|
||||
$gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null);
|
||||
$student=new student();
|
||||
|
||||
$row_anz->anz=0;
|
||||
if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem))
|
||||
$row_anz->anz=count($result);
|
||||
|
||||
|
||||
if (empty($row_anz->anz))
|
||||
$fehler=true;
|
||||
|
||||
$lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester;
|
||||
if (!is_null($row_anz->verband) && !empty($row_anz->verband))
|
||||
{
|
||||
$lvb.=$row_anz->verband;
|
||||
if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) )
|
||||
$lvb.=$row_anz->gruppe;
|
||||
}
|
||||
if (!empty($k_anz))
|
||||
$tooltip.='</tr><tr>';
|
||||
else
|
||||
$tooltip.='<tr><th colspan=\'4\'>'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'</th><th>Anzahl</th></tr>';
|
||||
$tooltip.='<td title=\'Stundenplan ID '.($stpl_table=='stundenplan'?$row_anz->stundenplan_id:$row_anz->stundenplandev_id).'\'><b>'.trim($row_anz->ort_kurzbz).'</b> </td><td><a href=\'stpl_detail.php?type=ort&datum='.date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&stunde='.$row->stunde.'&pers_uid='.$uid.'&stg_kz=&sem=&ver=&grp=&ort_kurzbz='.trim($row_anz->ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.'</a> </td><td>'.$row_anz->gruppe_kurzbz.' </td><td>'.(!$row_anz->anz?'<font color=\'Maroon\'>':'').$row_anz->bezeichnung.(!$row_anz->anz?'</font>':'').' </td><td>'.$row_anz->anz.'</td>';
|
||||
$gefunden_anz+=$row_anz->anz;
|
||||
}
|
||||
|
||||
if (!empty($gefunden_anz))
|
||||
{
|
||||
$tooltip.='<tr><td colspan=\'4\' align=\'right\'>max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% <b>Ges.:</b></td><td><b>'.$gefunden_anz.'</b></td></tr>';
|
||||
|
||||
echo '<br><img id="img_'.$i.'_'.$k.'" src="../../../skin/images/sticky.png" title="Detailanzeige"> <b'.($fehler?' style="color:red;" ':'').'> Gesamt: </b>'.$gefunden_anz;
|
||||
echo '<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("img#img_'.$i.'_'.$k.'").click(function(event)
|
||||
{
|
||||
$("div#infodetail").html("<table border=\"0\"><tr>'.$tooltip.'</tr></table>");
|
||||
$("div#info").show("slow"); // div# langsam oeffnen
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
|
||||
if (!isset($max_person_array[$i]['tag']))
|
||||
$max_person_array[$i]['tag']=0;
|
||||
$max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$i]['tag_max']))
|
||||
$max_person_array[$i]['tag_max']=0;
|
||||
$max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person;
|
||||
|
||||
if (!isset($max_person_array[$k]['stunde']))
|
||||
$max_person_array[$k]['stunde']=0;
|
||||
$max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$k]['stunde_max']))
|
||||
$max_person_array[$k]['stunde_max']=0;
|
||||
$max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person;
|
||||
|
||||
if (!isset($max_person_array[$i][$k]['tag_stunde']))
|
||||
$max_person_array[$i][$k]['tag_stunde']=0;
|
||||
$max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$i][$k]['tag_stunde_max']))
|
||||
$max_person_array[$i][$k]['tag_stunde_max']=0;
|
||||
$max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person;
|
||||
|
||||
}
|
||||
echo '</tr>';
|
||||
|
||||
}
|
||||
echo '</table>';
|
||||
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
echo '<table class="tabcontent" style=" z-index: 1;">';
|
||||
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 2 ) .'">'. $fh_name .' '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td colspan="2" style="text-align:center;color:#FFF;" class="ContentHeader">Zeit / Datum – </td>';
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
$stunde_proz=0;
|
||||
$stunde=0;
|
||||
$stunde_max=0;
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$row = $db->db_fetch_object($results, $k);
|
||||
$row->show_beginn=substr($row->beginn,0,5);
|
||||
$row->show_ende=substr($row->ende,0,5);
|
||||
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
|
||||
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
echo 'anz.:'.$max_person_array[$k]['stunde'];
|
||||
echo '<br>';
|
||||
echo 'FH '.($raum_max_anz*TAGE_PRO_WOCHE);
|
||||
echo '<br>';
|
||||
echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum '.$max_person_array[$k]['stunde_max'];
|
||||
echo '<br>';
|
||||
echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%';
|
||||
echo '</td>';
|
||||
|
||||
$stunde=$stunde+$max_person_array[$k]['stunde'];
|
||||
$stunde_max=$stunde_max+$max_person_array[$k]['stunde_max'];
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde'];
|
||||
echo '<br>';
|
||||
echo 'FH max.:'. $raum_max_anz;
|
||||
echo '<br>';
|
||||
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max'];
|
||||
echo '<br>';
|
||||
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%';
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Ø</td>';
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
|
||||
echo 'FH Ø '.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum Ø '.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%';
|
||||
echo '</td>';
|
||||
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
|
||||
echo 'FH Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%';
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
echo '</table>';
|
||||
}
|
||||
?>
|
||||
</BODY>
|
||||
</HTML>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<script src="../../../vendor/components/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
li { list-style : outside url("../../../skin/images/right.gif");}
|
||||
/* ----------------------------------
|
||||
Resizable
|
||||
---------------------------------- */
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
|
||||
|
||||
div.info {top:5%;position: absolute;display:none;padding: 5px 5px 5px 5px;border: 1px solid Black;empty-cells : hide;text-align:center;vertical-align: top;z-index: 99;background-color: white; position:absolute;}
|
||||
div.infoclose {border: 7px outset #008381;padding: 0px 10px 0px 10px;}
|
||||
div.infodetail {font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;}
|
||||
|
||||
-->
|
||||
</style>
|
||||
|
||||
<script type="text/javascript" language="JavaScript1.2">
|
||||
<!--
|
||||
$(function()
|
||||
{
|
||||
$("#info").resizable();
|
||||
$("#ui-resizable").draggable();
|
||||
});
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body id="inhalt">
|
||||
<div id="ui-resizable" class="ui-resizable">
|
||||
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-e"></div>
|
||||
<div style="-moz-user-select: none;" class="ui-resizable-handle ui-resizable-s"></div>
|
||||
<div style="z-index: 1001; -moz-user-select: none;" class="ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se"></div>
|
||||
<div id="info" class="info">
|
||||
<div style="border: 7px outset #393939;padding: 10px 10px 10px 10px;">
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0"><tr style="color:#FFF;" class="ContentHeader">
|
||||
<td id="info_print" align="left" style="color:#FFF;cursor: default;" class="ContentHeader">
|
||||
<div>drucken <img border="0" src="../../../skin/images/printer.png" title="drucken" ><br /></div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("td#info_print").click(function()
|
||||
{
|
||||
el='div#infodetail';
|
||||
var doc=null;
|
||||
var tab=false;;
|
||||
var iframe=false;
|
||||
if ($.browser.opera || $.browser.mozilla)
|
||||
{
|
||||
var tab = window.open("","jqPrint-preview");
|
||||
tab.document.open();
|
||||
var doc = tab.document;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
var iframe=document.createElement('IFRAME');
|
||||
document.body.appendChild(iframe);
|
||||
doc=iframe.contentWindow.document;
|
||||
}
|
||||
|
||||
var links=window.document.getElementsByTagName("link");
|
||||
for(var i=0;i<links.length;i++)
|
||||
{
|
||||
if(links[i].rel.toLowerCase()=="stylesheet")
|
||||
{
|
||||
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
|
||||
}
|
||||
}
|
||||
doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
|
||||
doc.close();
|
||||
(tab ? tab : iframe.contentWindow).focus();
|
||||
setTimeout( function() { ( tab ? tab : iframe.contentWindow).print(); if (tab) { tab.close(); } }, 1000);
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
<td id="info_close" align="right" style="color:#FFF;cursor: default;" class="ContentHeader">
|
||||
<div>schliessen <img border="0" src="../../../skin/images/cross.png" title="schliessen"> </div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("td#info_close").click(function(event)
|
||||
{
|
||||
$("div#info").hide("slow"); // div# langsam oeffnen
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</td>
|
||||
</tr></table>
|
||||
<div id="infodetail" style="font-size:medium;text-align:left;background-color: #F5F5F5;padding: 15px 15px 15px 15px;"></div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
// Variablen uebernehmen
|
||||
$datum=(isset($_GET['datum'])?$_GET['datum']:(isset($_POST['datum'])?$_POST['datum']:time()));
|
||||
$stpl_table=(isset($_GET['stpl_table'])?$_GET['stpl_table']:'stundenplan');
|
||||
$montag=montag($datum);
|
||||
$letzterTag=mktime(0,0,0,date('m',$montag),date('d',$montag) + TAGE_PRO_WOCHE,date('Y',$montag));
|
||||
$letzterTagAnzeige=mktime(0,0,0,date('m',$montag),date('d',$montag) + ( TAGE_PRO_WOCHE - 1),date('Y',$montag));
|
||||
|
||||
// Vorbelegen der Wochennavigation
|
||||
$kwRet=mktime(0,0,0,date('m',$montag),date('d',$montag) -7 ,date('Y',$montag));
|
||||
$kwVor=mktime(0,0,0,date('m',$montag),date('d',$montag) +7 ,date('Y',$montag));
|
||||
$kw=strftime('%W',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
|
||||
|
||||
$adresse_id=(isset($_GET['adresse_id'])?$_GET['adresse_id']:(isset($_POST['adresse_id'])?$_POST['adresse_id']:1));
|
||||
|
||||
// Datum Anzeige Header
|
||||
$tag=strftime('%a %d',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
|
||||
$tag_monat=strftime('%a %d %b',mktime(0,0,0,date('m',$montag),date('d',$montag) ,date('Y',$montag)));
|
||||
$tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$montag),date('d',$montag),date('Y',$montag)));
|
||||
$letzter_tag_monat_jahr=strftime('%a %d %b %Y',mktime(0,0,0,date('m',$letzterTagAnzeige),date('d',$letzterTagAnzeige),date('Y',$letzterTagAnzeige)));
|
||||
|
||||
// Beginn Ende setzen
|
||||
$objSS=new studiensemester();
|
||||
$ss=$objSS->getaktorNext();
|
||||
$objSS->load($ss);
|
||||
$datum_obj = new datum();
|
||||
$ss_begin=$datum_obj->mktime_fromdate($objSS->start);
|
||||
$ss_ende=$datum_obj->mktime_fromdate($objSS->ende);
|
||||
|
||||
|
||||
$sql_query=' select tbl_adresse.plz,tbl_adresse.name, sum(tbl_ort.max_person) as summe ';
|
||||
$sql_query.=' from public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
|
||||
$sql_query.=" where tbl_standort.standort_id=tbl_ort.standort_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
|
||||
$sql_query.=" and tbl_ort.aktiv and tbl_ort.lehre ";
|
||||
$sql_query.=" group by tbl_adresse.plz,tbl_adresse.name ";
|
||||
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
|
||||
if(!$results_anzahl=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
$raum_max_anz=0;
|
||||
$fh_name='FH lese fehler';
|
||||
if ($num_rows_anzahl=$db->db_num_rows($results_anzahl))
|
||||
{
|
||||
$fh_name = $db->db_result($results_anzahl,0,"name").', '.$db->db_result($results_anzahl,0,"plz");
|
||||
$raum_max_anz = $db->db_result($results_anzahl,0,"summe");
|
||||
}
|
||||
|
||||
$stg=array();
|
||||
echo '<H2><table class="tabcontent"><tr><td>
|
||||
Lehrveranstaltungsplan >> <a class="Item" href="index.php">Wochenplan</a> - Anzahl Studenten
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$kwRet.'&stpl_table='.$stpl_table.'"><<</a>
|
||||
Wochenplan <a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$datum.'&stpl_table='.$stpl_table.'">Kw '.$kw.'</a>
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.$kwVor.'&stpl_table='.$stpl_table.'">>></a>
|
||||
<a class="Item" href="'.$_SERVER['PHP_SELF'].'?uid='.$uid.'&datum='.time().'&stpl_table='.$stpl_table.'">Heute</a>
|
||||
</td></tr></table></H2>';
|
||||
|
||||
// Stundentafel abfragen
|
||||
$sql_query="SELECT stunde, beginn, ende FROM lehre.tbl_stunde ORDER BY stunde";
|
||||
if(!$results=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
|
||||
|
||||
echo '<table class="tabcontent" style=" z-index: 1;">';
|
||||
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 1 ) .'">'. $fh_name .' '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Stunde</td>';
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.date('d M',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
|
||||
$max_person_array=array();
|
||||
$num_rows_stunde=$db->db_num_rows($results);
|
||||
echo '<tr>';
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$row = $db->db_fetch_object($results, $k);
|
||||
$row->show_beginn=substr($row->beginn,0,5);
|
||||
$row->show_ende=substr($row->ende,0,5);
|
||||
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
|
||||
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
|
||||
$lehreinheiten=array();
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
// Init je Tag und Std.
|
||||
$fehler=false;
|
||||
$aktiv=false;
|
||||
$max_person=0;
|
||||
|
||||
$day= date('Ymd',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag)));
|
||||
if ($day== date('Ymd') && date('Hi') >= $row->check_beginn && date('Hi')<=$row->check_ende )
|
||||
$aktiv=true;
|
||||
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
|
||||
$sql_query=' select distinct vw_'.$stpl_table.'.stg_bezeichnung as bezeichnung,vw_'.$stpl_table.'.stg_kurzbzlang as kurzbzlang,vw_'.$stpl_table.'.stg_kurzbz as kurzbz, vw_'.$stpl_table.'.'.$stpl_table.'_id,vw_'.$stpl_table.'.lehrform, vw_'.$stpl_table.'.gruppe, vw_'.$stpl_table.'.gruppe_kurzbz, vw_'.$stpl_table.'.unr,vw_'.$stpl_table.'.verband,vw_'.$stpl_table.'.ort_kurzbz,vw_'.$stpl_table.'.lehreinheit_id,vw_'.$stpl_table.'.studiengang_kz,vw_'.$stpl_table.'.semester,tbl_ort.max_person,tbl_standort.adresse_id,tbl_adresse.plz,tbl_adresse.name ';
|
||||
$sql_query.=' from lehre.vw_'.$stpl_table.', public.tbl_ort,public.tbl_standort, public.tbl_adresse ';
|
||||
$sql_query.=" where vw_".$stpl_table.".datum=".$db->db_add_param(date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))))." ";
|
||||
$sql_query.=" and vw_".$stpl_table.".stunde=".$db->db_add_param($row->stunde, FHC_INTEGER)." ";
|
||||
$sql_query.=" and tbl_ort.ort_kurzbz=vw_".$stpl_table.".ort_kurzbz ";
|
||||
$sql_query.=" and tbl_standort.standort_id=tbl_ort.standort_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=tbl_standort.adresse_id ";
|
||||
$sql_query.=" and tbl_adresse.adresse_id=".$db->db_add_param($adresse_id, FHC_INTEGER)." ";
|
||||
$sql_query.=" order by tbl_adresse.plz,vw_".$stpl_table.".ort_kurzbz ";
|
||||
|
||||
// Gibt es fuer das Datum und Stunde einen Stundenplaneintrag
|
||||
if(!$results_anzahl=$db->db_query($sql_query))
|
||||
die($db->db_last_error());
|
||||
$num_rows_anzahl=$db->db_num_rows($results_anzahl);
|
||||
|
||||
$gefunden_anz=0;
|
||||
$tooltip='';
|
||||
for ($k_anz=0; $k_anz<$num_rows_anzahl; $k_anz++)
|
||||
{
|
||||
$row_anz = $db->db_fetch_object($results_anzahl, $k_anz);
|
||||
// Lehreinheit wird aufgeteilt in zwei Raeume - nicht verarbeiten , das sind die selben Personen
|
||||
if (isset($lehreinheiten[trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz)]))
|
||||
continue;
|
||||
$lehreinheiten[$row_anz->lehreinheit_id]=trim($row_anz->lehreinheit_id).trim($row_anz->gruppe_kurzbz);
|
||||
|
||||
$max_person=$row_anz->max_person+$max_person;
|
||||
$row_anz->verband=trim($row_anz->verband);
|
||||
$row_anz->gruppe=trim($row_anz->gruppe);
|
||||
$row_anz->gruppe_kurzbz=trim($row_anz->gruppe_kurzbz);
|
||||
|
||||
$stsem=$ss;
|
||||
|
||||
$gruppe=($row_anz->gruppe_kurzbz?$row_anz->gruppe_kurzbz:null);
|
||||
$student=new student();
|
||||
|
||||
$row_anz->anz=0;
|
||||
if ($result=$student->getStudents($row_anz->studiengang_kz,$row_anz->semester,$row_anz->verband,$row_anz->gruppe,$gruppe, $stsem))
|
||||
$row_anz->anz=count($result);
|
||||
|
||||
|
||||
if (empty($row_anz->anz))
|
||||
$fehler=true;
|
||||
|
||||
$lvb=$row_anz->kurzbzlang.'-'.$row_anz->semester;
|
||||
if (!is_null($row_anz->verband) && !empty($row_anz->verband))
|
||||
{
|
||||
$lvb.=$row_anz->verband;
|
||||
if (!is_null($row_anz->gruppe) && !empty($row_anz->gruppe) )
|
||||
$lvb.=$row_anz->gruppe;
|
||||
}
|
||||
if (!empty($k_anz))
|
||||
$tooltip.='</tr><tr>';
|
||||
else
|
||||
$tooltip.='<tr><th colspan=\'4\'>'. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '.$row->show_beginn.' - '.$row->show_ende.'</th><th>Anzahl</th></tr>';
|
||||
$tooltip.='<td title=\'Stundenplan ID '.($stpl_table=='stundenplan'?$row_anz->stundenplan_id:$row_anz->stundenplandev_id).'\'><b>'.trim($row_anz->ort_kurzbz).'</b> </td><td><a href=\'stpl_detail.php?type=ort&datum='.date('Y-m-d',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'&stunde='.$row->stunde.'&pers_uid='.$uid.'&stg_kz=&sem=&ver=&grp=&ort_kurzbz='.trim($row_anz->ort_kurzbz).'\' target=\'_blank\' titel=\'Studiengang Kz '.$row_anz->studiengang_kz.'\'>'.$lvb.'</a> </td><td>'.$row_anz->gruppe_kurzbz.' </td><td>'.(!$row_anz->anz?'<font color=\'Maroon\'>':'').$row_anz->bezeichnung.(!$row_anz->anz?'</font>':'').' </td><td>'.$row_anz->anz.'</td>';
|
||||
$gefunden_anz+=$row_anz->anz;
|
||||
}
|
||||
|
||||
if (!empty($gefunden_anz))
|
||||
{
|
||||
$tooltip.='<tr><td colspan=\'4\' align=\'right\'>max.Personen:'.$max_person.' Belegung:'. number_format($gefunden_anz / $max_person,2)*100 .'% <b>Ges.:</b></td><td><b>'.$gefunden_anz.'</b></td></tr>';
|
||||
|
||||
echo '<br><img id="img_'.$i.'_'.$k.'" src="../../../skin/images/sticky.png" title="Detailanzeige"> <b'.($fehler?' style="color:red;" ':'').'> Gesamt: </b>'.$gefunden_anz;
|
||||
echo '<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("img#img_'.$i.'_'.$k.'").click(function(event)
|
||||
{
|
||||
$("div#infodetail").html("<table border=\"0\"><tr>'.$tooltip.'</tr></table>");
|
||||
$("div#info").show("slow"); // div# langsam oeffnen
|
||||
});
|
||||
});
|
||||
</script>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
|
||||
if (!isset($max_person_array[$i]['tag']))
|
||||
$max_person_array[$i]['tag']=0;
|
||||
$max_person_array[$i]['tag']=$max_person_array[$i]['tag']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$i]['tag_max']))
|
||||
$max_person_array[$i]['tag_max']=0;
|
||||
$max_person_array[$i]['tag_max']=$max_person_array[$i]['tag_max']+$max_person;
|
||||
|
||||
if (!isset($max_person_array[$k]['stunde']))
|
||||
$max_person_array[$k]['stunde']=0;
|
||||
$max_person_array[$k]['stunde']=$max_person_array[$k]['stunde']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$k]['stunde_max']))
|
||||
$max_person_array[$k]['stunde_max']=0;
|
||||
$max_person_array[$k]['stunde_max']=$max_person_array[$k]['stunde_max']+$max_person;
|
||||
|
||||
if (!isset($max_person_array[$i][$k]['tag_stunde']))
|
||||
$max_person_array[$i][$k]['tag_stunde']=0;
|
||||
$max_person_array[$i][$k]['tag_stunde']=$max_person_array[$i][$k]['tag_stunde']+$gefunden_anz;
|
||||
if (!isset($max_person_array[$i][$k]['tag_stunde_max']))
|
||||
$max_person_array[$i][$k]['tag_stunde_max']=0;
|
||||
$max_person_array[$i][$k]['tag_stunde_max']=$max_person_array[$i][$k]['tag_stunde_max']+$max_person;
|
||||
|
||||
}
|
||||
echo '</tr>';
|
||||
|
||||
}
|
||||
echo '</table>';
|
||||
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
echo '<table class="tabcontent" style=" z-index: 1;">';
|
||||
echo '<tr><td style="text-align:center;color:#FFF;" class="ContentHeader" colspan="'. ( TAGE_PRO_WOCHE + 2 ) .'">'. $fh_name .' '. (date('Ym',$montag)==date('Ym',$letzterTagAnzeige)?$tag:(date('Y',$montag)==date('Y',$letzterTagAnzeige)?$tag_monat:$tag_monat_jahr)) .' - '. $letzter_tag_monat_jahr.'</td></tr>';
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td colspan="2" style="text-align:center;color:#FFF;" class="ContentHeader">Zeit / Datum – </td>';
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.strftime('%a',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).' '. date('d M Y',mktime(0,0,0,date('m',$montag),date('d',$montag) + $i,date('Y',$montag))).'</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
$stunde_proz=0;
|
||||
$stunde=0;
|
||||
$stunde_max=0;
|
||||
for ($k=0; $k<$num_rows_stunde; $k++)
|
||||
{
|
||||
$row = $db->db_fetch_object($results, $k);
|
||||
$row->show_beginn=substr($row->beginn,0,5);
|
||||
$row->show_ende=substr($row->ende,0,5);
|
||||
$row->check_beginn=str_replace(':','',substr($row->beginn,0,5));
|
||||
$row->check_ende=str_replace(':','',substr($row->ende,0,5));
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">'.$row->show_beginn.'<br>'.$row->show_ende.'</td>';
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
echo 'anz.:'.$max_person_array[$k]['stunde'];
|
||||
echo '<br>';
|
||||
echo 'FH '.($raum_max_anz*TAGE_PRO_WOCHE);
|
||||
echo '<br>';
|
||||
echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde'])/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum '.$max_person_array[$k]['stunde_max'];
|
||||
echo '<br>';
|
||||
echo ' Ø '.($max_person_array[$k]['stunde']?number_format(($max_person_array[$k]['stunde']/TAGE_PRO_WOCHE) / ($max_person_array[$k]['stunde_max']/TAGE_PRO_WOCHE),2)*100:0).'%';
|
||||
echo '</td>';
|
||||
|
||||
$stunde=$stunde+$max_person_array[$k]['stunde'];
|
||||
$stunde_max=$stunde_max+$max_person_array[$k]['stunde_max'];
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
echo '<td style="border-bottom: 1px solid Black;'.($aktiv?'background-color:#009e84;color:#FFF;':'').'" valign="top" '.($k % 2==0?'':' class="MarkLine" ').' >';
|
||||
echo 'anz.:'.$max_person_array[$i][$k]['tag_stunde'];
|
||||
echo '<br>';
|
||||
echo 'FH max.:'. $raum_max_anz;
|
||||
echo '<br>';
|
||||
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $raum_max_anz,2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum max.:'. $max_person_array[$i][$k]['tag_stunde_max'];
|
||||
echo '<br>';
|
||||
echo ' '.($max_person_array[$i][$k]['tag_stunde']?number_format($max_person_array[$i][$k]['tag_stunde'] / $max_person_array[$i][$k]['tag_stunde_max'],2)*100:0).'%';
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">Ø</td>';
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
|
||||
echo 'FH Ø '.($stunde?number_format(($stunde)/$num_rows_stunde/TAGE_PRO_WOCHE / ($raum_max_anz),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum Ø '.($stunde_max?number_format(($stunde/$num_rows_stunde/TAGE_PRO_WOCHE) / ($stunde_max/$num_rows_stunde/TAGE_PRO_WOCHE),2)*100:0).'%';
|
||||
echo '</td>';
|
||||
|
||||
|
||||
for ($i=0; $i<TAGE_PRO_WOCHE; $i++)
|
||||
{
|
||||
|
||||
echo '<td style="text-align:center;color:#FFF;" class="ContentHeader">';
|
||||
echo 'FH Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / ($raum_max_anz *$num_rows_stunde),2)*100:0).'%';
|
||||
echo '<br>';
|
||||
echo 'Raum Ø '.($max_person_array[$i]['tag']?number_format($max_person_array[$i]['tag'] / $max_person_array[$i]['tag_max'],2)*100:0).'%';
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
|
||||
echo '</table>';
|
||||
}
|
||||
?>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -38,6 +38,7 @@ require_once('../../include/student.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
require_once('../../include/dokument_export.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/webservicelog.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -139,6 +140,21 @@ if (isset($_GET['all']))
|
||||
if (isset($_GET['xsl_oe_kurzbz']))
|
||||
$params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz'];
|
||||
|
||||
// Logeintrag bei Download von Zahlungsbestaetigungen
|
||||
if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung')
|
||||
{
|
||||
$requestdata = $_SERVER['QUERY_STRING'];
|
||||
|
||||
$log = new Webservicelog();
|
||||
$log->webservicetyp_kurzbz = 'content';
|
||||
$log->request_id = isset($_GET['buchungsnummern']) && !empty($_GET['buchungsnummern']) ? $_GET['buchungsnummern'] : NULL;
|
||||
$log->beschreibung = 'Zahlungsbestaetigungsdownload';
|
||||
$log->request_data = $requestdata;
|
||||
$log->execute_user = $user;
|
||||
|
||||
$log->save(true);
|
||||
}
|
||||
|
||||
//OE fuer Output ermitteln
|
||||
|
||||
if ($xsl_oe_kurzbz != '')
|
||||
|
||||
@@ -76,7 +76,6 @@ if(isset($_GET['action']) && $_GET['action']=='download')
|
||||
$akte = new akte();
|
||||
$akte->load($id);
|
||||
if ($akte->person_id == $student_studiengang->person_id
|
||||
&& $akte->signiert
|
||||
&& $akte->stud_selfservice)
|
||||
{
|
||||
if($akte->inhalt!='')
|
||||
@@ -89,12 +88,12 @@ if(isset($_GET['action']) && $_GET['action']=='download')
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Id ist ungueltig');
|
||||
die('Akte hat keinen Inhalt.');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Id ist ungueltig');
|
||||
die('Nicht zum selbständigen Download bestimmt oder falsche PersonID.');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -123,7 +122,6 @@ echo '
|
||||
});
|
||||
$(".tablesorter2").tablesorter(
|
||||
{
|
||||
sortList: [[1,1]],
|
||||
headers: { 0: { sorter: false }},
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
|
||||
@@ -56,6 +56,12 @@ $uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
$is_employee = false;
|
||||
if (check_lektor($uid))
|
||||
{
|
||||
$is_employee = true;
|
||||
}
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
// Wenn ein anderer User sich das Profil ansieht (Bei Personensuche) sollen bestimmte persönliche Daten nicht angezeigt werden
|
||||
@@ -346,7 +352,7 @@ if ($type == 'mitarbeiter')
|
||||
$kontakt->load_pers($user->person_id);
|
||||
foreach($kontakt->result as $k)
|
||||
{
|
||||
if ($k->kontakttyp == 'firmenhandy')
|
||||
if ($k->kontakttyp == 'firmenhandy' && $is_employee)
|
||||
echo 'Firmenhandy: '.$k->kontakt.'<br>';
|
||||
}
|
||||
|
||||
|
||||
@@ -163,6 +163,68 @@ if (isset($_GET['rechts_x']) || isset($_POST['rechts_x']))
|
||||
$wjahr=$wjahr;
|
||||
}
|
||||
}
|
||||
|
||||
//Bereits freigegebenen Eintrag löschen
|
||||
//Eintragung löschen
|
||||
if((isset($_GET['delete']) && isset($_GET['informSupervisor'])) || (isset($_POST['delete']) && isset($_POST['informSupervisor'])))
|
||||
{
|
||||
$zeitsperre = new zeitsperre();
|
||||
$zeitsperre->load($_GET['delete']);
|
||||
|
||||
$vondatum = $zeitsperre->getVonDatum();
|
||||
$bisdatum = $zeitsperre->getBisDatum();
|
||||
|
||||
if(!$zeitsperre->delete($_GET['delete']))
|
||||
echo $zeitsperre->errormsg;
|
||||
|
||||
//Mail an Vorgesetzten
|
||||
$prsn = new person();
|
||||
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
{
|
||||
$to='';
|
||||
$fullName ='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
{
|
||||
if($to!='')
|
||||
{
|
||||
$to.=', '.$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=', '.$name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to.=$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=$name;
|
||||
}
|
||||
}
|
||||
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
|
||||
$p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n";
|
||||
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n";
|
||||
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName))."</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Eintragung löschen
|
||||
if((isset($_GET['delete']) || isset($_POST['delete'])))
|
||||
{
|
||||
@@ -257,19 +319,26 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
|
||||
if(!$error)
|
||||
{
|
||||
//Mail an Vorgesetzten
|
||||
$prsn = new person();
|
||||
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
{
|
||||
$to='';
|
||||
$fullName ='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
{
|
||||
if($to!='')
|
||||
{
|
||||
$to.=', '.$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=', '.$name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to.=$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=$name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,7 +364,7 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</span>";
|
||||
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName))."</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -373,10 +442,14 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
if(date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum
|
||||
&& date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum)
|
||||
{
|
||||
if($row->freigabevon!='' || $row->bisdatum<date("Y-m-d",time()))
|
||||
if($row->freigabevon!='' && $row->vondatum<=date("Y-m-d",time()))
|
||||
{
|
||||
$hgfarbe[$i]='#bbb';
|
||||
}
|
||||
elseif ($row->freigabevon!='' && $row->vondatum>date("Y-m-d",time()))
|
||||
{
|
||||
$hgfarbe[$i]='#CDDDEE';
|
||||
}
|
||||
else
|
||||
{
|
||||
$hgfarbe[$i]='#FFFC7F';
|
||||
@@ -389,7 +462,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
}
|
||||
else
|
||||
{
|
||||
if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb')
|
||||
if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#CDDDEE')
|
||||
{
|
||||
|
||||
$hgfarbe[$i]='#E9ECEE';
|
||||
@@ -696,7 +769,7 @@ for ($i=0;$i<6;$i++)
|
||||
}
|
||||
if($tage[$j+7*$i]!='')
|
||||
{
|
||||
if($hgfarbe[$j+7*$i]=='#FFFC7F')
|
||||
if($hgfarbe[$j+7*$i]=='#FFFC7F' )//|| $hgfarbe[$j+7*$i]=='#CDDDEE')
|
||||
{
|
||||
echo '<b title='.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';;
|
||||
$k=$j+7*$i;
|
||||
@@ -724,7 +797,13 @@ for ($i=0;$i<6;$i++)
|
||||
}
|
||||
elseif(isset($freigabeamum[$j+7*$i]))
|
||||
{
|
||||
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurchAm', array($freigabevon[$j+7*$i])).' '.date("d-m-Y",strtotime($freigabeamum[$j+7*$i])).'"></td>';
|
||||
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurch', array($freigabevon[$j+7*$i])).': '.$freigabevon[$j+7*$i].'"><span> </span>';
|
||||
if($hgfarbe[$j+7*$i]=='#CDDDEE')
|
||||
{
|
||||
$k=$j+7*$i;
|
||||
echo "<a href='$PHP_SELF?wmonat=$wmonat&wjahr=$wjahr&delete=$datensatz[$k]&informSupervisor=True' onclick='return conf_del()'>";
|
||||
echo '<img src="../../../skin/images/delete_x.png" alt="loeschen" title="'.$p->t('urlaubstool/eintragungLoeschen').'"></a></td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+299
-277
@@ -1,277 +1,299 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
$uid=get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = "&uid=" . $uid;
|
||||
}
|
||||
else
|
||||
$getParam = "";
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>'.$p->t('tools/zahlungen').'</title>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>';
|
||||
|
||||
include('../../../include/meta/jquery.php');
|
||||
include('../../../include/meta/jquery-tablesorter.php');
|
||||
|
||||
echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
table.tablesorter
|
||||
{
|
||||
width: auto;
|
||||
}
|
||||
table.tablesorter tbody td
|
||||
{
|
||||
padding: 1px 3px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
// Parser für Datum DD.MM.YYYY
|
||||
$.tablesorter.addParser({
|
||||
id: "customDate",
|
||||
is: function(s) {
|
||||
//return false;
|
||||
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||
return /\d{1,2}.\d{1,2}.\d{1,4}/.test(s);
|
||||
},
|
||||
// replace regex-wildcards and return new date
|
||||
format: function(s) {
|
||||
s = s.replace(/\-/g," ");
|
||||
s = s.replace(/:/g," ");
|
||||
s = s.replace(/\./g," ");
|
||||
s = s.split(" ");
|
||||
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0]).getTime());
|
||||
},
|
||||
type: "numeric"
|
||||
});
|
||||
// Parser für Betrag
|
||||
$.tablesorter.addParser({
|
||||
id: "customCurrancy",
|
||||
is: function(s) {
|
||||
//return false;
|
||||
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||
//alert(/€\s\d*.*/.test(s))
|
||||
return /€\s\d*.*/.test(s);
|
||||
},
|
||||
// replace regex-wildcards and return new date
|
||||
format: function(s) {
|
||||
s = s.replace(/\-/g," ");
|
||||
s = s.replace(/:/g," ");
|
||||
s = s.replace(/\./g," ");
|
||||
s = s.split(" ");
|
||||
return $.tablesorter.formatFloat(s[1]);
|
||||
},
|
||||
type: "numeric"
|
||||
});
|
||||
// Parser für Studiensemester
|
||||
$.tablesorter.addParser({
|
||||
// set a unique id
|
||||
id: "studiensemester",
|
||||
is: function(s) {
|
||||
// return false so this parser is not auto detected
|
||||
return false;
|
||||
},
|
||||
format: function(s) {
|
||||
// format data for normalization
|
||||
var result = s.substr(2) + s.substr(0, 2);
|
||||
return result;
|
||||
},
|
||||
// set type, either numeric or text
|
||||
type: "text"
|
||||
});
|
||||
// For correct sorting of Umlauts
|
||||
$.tablesorter.characterEquivalents = {
|
||||
"a" : "\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5", // áàâãäąå
|
||||
"A" : "\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5", // ÁÀÂÃÄĄÅ
|
||||
"c" : "\u00e7\u0107\u010d", // çćč
|
||||
"C" : "\u00c7\u0106\u010c", // ÇĆČ
|
||||
"e" : "\u00e9\u00e8\u00ea\u00eb\u011b\u0119", // éèêëěę
|
||||
"E" : "\u00c9\u00c8\u00ca\u00cb\u011a\u0118", // ÉÈÊËĚĘ
|
||||
"i" : "\u00ed\u00ec\u0130\u00ee\u00ef\u0131", // íìİîïı
|
||||
"I" : "\u00cd\u00cc\u0130\u00ce\u00cf", // ÍÌİÎÏ
|
||||
"o" : "\u00f3\u00f2\u00f4\u00f5\u00f6\u014d", // óòôõöō
|
||||
"O" : "\u00d3\u00d2\u00d4\u00d5\u00d6\u014c", // ÓÒÔÕÖŌ
|
||||
"ss": "\u00df", // ß (s sharp)
|
||||
"SS": "\u1e9e", // ẞ (Capital sharp s)
|
||||
"u" : "\u00fa\u00f9\u00fb\u00fc\u016f", // úùûüů
|
||||
"U" : "\u00da\u00d9\u00db\u00dc\u016e" // ÚÙÛÜŮ
|
||||
};
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
// Adding Function for sorting images by title
|
||||
textExtraction:function(s)
|
||||
{
|
||||
if($(s).find(\'img\').length == 0) return $(s).text();
|
||||
return $(s).find(\'img\').attr(\'title\');
|
||||
},
|
||||
sortList: [[0,1],[1,1]],
|
||||
widgets: ["zebra"],
|
||||
sortLocaleCompare : true,
|
||||
headers: { 0: { sorter: "customDate"}, 3: { sorter: "studiensemester"}, 5: { sorter: "customCurrancy"}, 6: { sorter: false}}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<body>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->getAll(null,null);
|
||||
|
||||
$stg_arr = array();
|
||||
foreach ($studiengang->result as $row)
|
||||
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
|
||||
|
||||
$benutzer = new benutzer();
|
||||
if(!$benutzer->load($uid))
|
||||
die('Benutzer wurde nicht gefunden');
|
||||
|
||||
echo '<h1>'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'</h1>';
|
||||
|
||||
$konto = new konto();
|
||||
$konto->getBuchungstyp();
|
||||
$buchungstyp = array();
|
||||
|
||||
foreach ($konto->result as $row)
|
||||
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
|
||||
|
||||
$konto = new konto();
|
||||
$konto->getBuchungen($benutzer->person_id);
|
||||
if(count($konto->result)>0)
|
||||
{
|
||||
echo '<br><br><table class="tablesorter" id="t1"><thead>';
|
||||
echo '<tr>';
|
||||
echo '
|
||||
<th>'.$p->t('global/datum').'</th>
|
||||
<th>'.$p->t('tools/zahlungstyp').'</th>
|
||||
<th>'.$p->t('lvplan/stg').'</th>
|
||||
<th>'.$p->t('global/studiensemester').'</th>
|
||||
<th>'.$p->t('tools/buchungstext').'</th>
|
||||
<th>'.$p->t('tools/betrag').'</th>
|
||||
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
|
||||
foreach ($konto->result as $row)
|
||||
{
|
||||
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
|
||||
$buchungsnummern='';
|
||||
|
||||
if(!isset($row['parent']))
|
||||
continue;
|
||||
$betrag = $row['parent']->betrag;
|
||||
|
||||
|
||||
if(isset($row['childs']))
|
||||
{
|
||||
foreach ($row['childs'] as $key => $row_child)
|
||||
{
|
||||
$betrag += $row_child->betrag;
|
||||
$betrag = round($betrag, 2);
|
||||
$buchungsnummern .= ';'.$row['childs'][$key]->buchungsnr;
|
||||
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
|
||||
}
|
||||
}
|
||||
else
|
||||
$buchungsnummern = $row['parent']->buchungsnr;
|
||||
|
||||
if($betrag<0)
|
||||
$style='style="background-color: #FF8888;"';
|
||||
elseif($betrag>0)
|
||||
$style='style="background-color: #88DD88;"';
|
||||
else
|
||||
$style='';
|
||||
|
||||
echo "<tr>";
|
||||
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
|
||||
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
|
||||
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
|
||||
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
|
||||
|
||||
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
|
||||
echo '<td align="right" '.$style.'>€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).'</td>';
|
||||
echo '<td align="center" '.$style.'>';
|
||||
if($betrag>=0 && $row['parent']->betrag<=0)
|
||||
{
|
||||
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
|
||||
}
|
||||
elseif($row['parent']->betrag>0)
|
||||
{
|
||||
//Auszahlung
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a onclick="window.open(';
|
||||
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
|
||||
echo '" href="#">'.$p->t('tools/offen').'</a>(€ '.sprintf('%.2f',$betrag*-1).')';
|
||||
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('tools/keineZahlungenVorhanden');
|
||||
}
|
||||
echo '</td></tr></table';
|
||||
|
||||
echo '</body></html>';
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../config/global.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
$uid=get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
{
|
||||
// Administratoren duerfen die UID als Parameter uebergeben um die Zahlungen
|
||||
// von anderen Personen anzuzeigen
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
{
|
||||
$uid = $_GET['uid'];
|
||||
$getParam = "&uid=" . $uid;
|
||||
}
|
||||
else
|
||||
$getParam = "";
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
if (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN') && !ZAHLUNGSBESTAETIGUNG_ANZEIGEN)
|
||||
{
|
||||
die('Um diese Seite anzuzeigen, ist ein entsprechender Eintrag in der Konfigurationsdatei nötig.');
|
||||
}
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<title>'.$p->t('tools/zahlungen').'</title>
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>';
|
||||
|
||||
include('../../../include/meta/jquery.php');
|
||||
include('../../../include/meta/jquery-tablesorter.php');
|
||||
|
||||
echo ' <script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
table.tablesorter
|
||||
{
|
||||
width: auto;
|
||||
}
|
||||
table.tablesorter tbody td
|
||||
{
|
||||
padding: 1px 3px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
// Parser für Datum DD.MM.YYYY
|
||||
$.tablesorter.addParser({
|
||||
id: "customDate",
|
||||
is: function(s) {
|
||||
//return false;
|
||||
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||
return /\d{1,2}.\d{1,2}.\d{1,4}/.test(s);
|
||||
},
|
||||
// replace regex-wildcards and return new date
|
||||
format: function(s) {
|
||||
s = s.replace(/\-/g," ");
|
||||
s = s.replace(/:/g," ");
|
||||
s = s.replace(/\./g," ");
|
||||
s = s.split(" ");
|
||||
return $.tablesorter.formatFloat(new Date(s[2], s[1]-1, s[0]).getTime());
|
||||
},
|
||||
type: "numeric"
|
||||
});
|
||||
// Parser für Betrag
|
||||
$.tablesorter.addParser({
|
||||
id: "customCurrancy",
|
||||
is: function(s) {
|
||||
//return false;
|
||||
//use the above line if you don\'t want table sorter to auto detected this parser
|
||||
// match dd.mm.yyyy e.g. 01.01.2001 as regex
|
||||
//alert(/€\s\d*.*/.test(s))
|
||||
return /€\s\d*.*/.test(s);
|
||||
},
|
||||
// replace regex-wildcards and return new date
|
||||
format: function(s) {
|
||||
s = s.replace(/\-/g," ");
|
||||
s = s.replace(/:/g," ");
|
||||
s = s.replace(/\./g," ");
|
||||
s = s.split(" ");
|
||||
return $.tablesorter.formatFloat(s[1]);
|
||||
},
|
||||
type: "numeric"
|
||||
});
|
||||
// Parser für Studiensemester
|
||||
$.tablesorter.addParser({
|
||||
// set a unique id
|
||||
id: "studiensemester",
|
||||
is: function(s) {
|
||||
// return false so this parser is not auto detected
|
||||
return false;
|
||||
},
|
||||
format: function(s) {
|
||||
// format data for normalization
|
||||
var result = s.substr(2) + s.substr(0, 2);
|
||||
return result;
|
||||
},
|
||||
// set type, either numeric or text
|
||||
type: "text"
|
||||
});
|
||||
// For correct sorting of Umlauts
|
||||
$.tablesorter.characterEquivalents = {
|
||||
"a" : "\u00e1\u00e0\u00e2\u00e3\u00e4\u0105\u00e5", // áàâãäąå
|
||||
"A" : "\u00c1\u00c0\u00c2\u00c3\u00c4\u0104\u00c5", // ÁÀÂÃÄĄÅ
|
||||
"c" : "\u00e7\u0107\u010d", // çćč
|
||||
"C" : "\u00c7\u0106\u010c", // ÇĆČ
|
||||
"e" : "\u00e9\u00e8\u00ea\u00eb\u011b\u0119", // éèêëěę
|
||||
"E" : "\u00c9\u00c8\u00ca\u00cb\u011a\u0118", // ÉÈÊËĚĘ
|
||||
"i" : "\u00ed\u00ec\u0130\u00ee\u00ef\u0131", // íìİîïı
|
||||
"I" : "\u00cd\u00cc\u0130\u00ce\u00cf", // ÍÌİÎÏ
|
||||
"o" : "\u00f3\u00f2\u00f4\u00f5\u00f6\u014d", // óòôõöō
|
||||
"O" : "\u00d3\u00d2\u00d4\u00d5\u00d6\u014c", // ÓÒÔÕÖŌ
|
||||
"ss": "\u00df", // ß (s sharp)
|
||||
"SS": "\u1e9e", // ẞ (Capital sharp s)
|
||||
"u" : "\u00fa\u00f9\u00fb\u00fc\u016f", // úùûüů
|
||||
"U" : "\u00da\u00d9\u00db\u00dc\u016e" // ÚÙÛÜŮ
|
||||
};
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#t1").tablesorter(
|
||||
{
|
||||
// Adding Function for sorting images by title
|
||||
textExtraction:function(s)
|
||||
{
|
||||
if($(s).find(\'img\').length == 0) return $(s).text();
|
||||
return $(s).find(\'img\').attr(\'title\');
|
||||
},
|
||||
sortList: [[0,1],[1,1]],
|
||||
widgets: ["zebra"],
|
||||
sortLocaleCompare : true,
|
||||
headers: { 0: { sorter: "customDate"}, 3: { sorter: "studiensemester"}, 5: { sorter: "customCurrancy"}, 6: { sorter: false}}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<body>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->getAll(null,null);
|
||||
|
||||
$stg_arr = array();
|
||||
foreach ($studiengang->result as $row)
|
||||
$stg_arr[$row->studiengang_kz]=$row->kuerzel;
|
||||
|
||||
$benutzer = new benutzer();
|
||||
if(!$benutzer->load($uid))
|
||||
die('Benutzer wurde nicht gefunden');
|
||||
|
||||
echo '<h1>'.$p->t('tools/zahlungen').' - '.$benutzer->vorname.' '.$benutzer->nachname.'</h1>';
|
||||
|
||||
$konto = new konto();
|
||||
$konto->getBuchungstyp();
|
||||
$buchungstyp = array();
|
||||
|
||||
foreach ($konto->result as $row)
|
||||
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
|
||||
|
||||
$konto = new konto();
|
||||
$konto->getBuchungen($benutzer->person_id);
|
||||
if(count($konto->result)>0)
|
||||
{
|
||||
echo '<br><br><table class="tablesorter" id="t1"><thead>';
|
||||
echo '<tr>';
|
||||
echo '
|
||||
<th>'.$p->t('global/datum').'</th>
|
||||
<th>'.$p->t('tools/zahlungstyp').'</th>
|
||||
<th>'.$p->t('lvplan/stg').'</th>
|
||||
<th>'.$p->t('global/studiensemester').'</th>
|
||||
<th>'.$p->t('tools/buchungstext').'</th>
|
||||
<th>'.$p->t('tools/betrag').'</th>
|
||||
<th>'.$p->t('tools/zahlungsbestaetigung').'</th>';
|
||||
echo '</tr></thead><tbody>';
|
||||
|
||||
foreach ($konto->result as $row)
|
||||
{
|
||||
$i=0; //Zaehler fuer Anzahl Gegenbuchungen
|
||||
$count_studiengangszahlung = 0;
|
||||
$buchungsnummern='';
|
||||
|
||||
// Für die FHTW sollen nur Zahlungsbestaetigungen von FHTW-Studien angezeigt werden. (Nicht von Lehrgaengen)
|
||||
if (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN_FUER_LEHRGAENGE') && !ZAHLUNGSBESTAETIGUNG_ANZEIGEN_FUER_LEHRGAENGE)
|
||||
{
|
||||
$is_lehrgang = $row['parent']->studiengang_kz < 0 ? true : false;
|
||||
if ($is_lehrgang) continue;
|
||||
}
|
||||
|
||||
if(!isset($row['parent']))
|
||||
continue;
|
||||
$betrag = $row['parent']->betrag;
|
||||
$count_studiengangszahlung ++;
|
||||
|
||||
if(isset($row['childs']))
|
||||
{
|
||||
foreach ($row['childs'] as $key => $row_child)
|
||||
{
|
||||
$betrag += $row_child->betrag;
|
||||
$betrag = round($betrag, 2);
|
||||
$buchungsnummern = !empty($buchungsnummern) ? ';' : '';
|
||||
$buchungsnummern .= $row['childs'][$key]->buchungsnr;
|
||||
$i = $key; //Zaehler auf letzten Gegenbuchungseintrag setzen
|
||||
}
|
||||
}
|
||||
else
|
||||
$buchungsnummern = $row['parent']->buchungsnr;
|
||||
|
||||
if($betrag<0)
|
||||
$style='style="background-color: #FF8888;"';
|
||||
elseif($betrag>0)
|
||||
$style='style="background-color: #88DD88;"';
|
||||
else
|
||||
$style='';
|
||||
|
||||
echo "<tr>";
|
||||
echo '<td '.$style.'>'.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).'</td>';
|
||||
echo '<td '.$style.'>'.$buchungstyp[$row['parent']->buchungstyp_kurzbz].'</td>';
|
||||
echo '<td '.$style.'>'.$stg_arr[$row['parent']->studiengang_kz].'</td>';
|
||||
echo '<td '.$style.'>'.$row['parent']->studiensemester_kurzbz.'</td>';
|
||||
|
||||
echo '<td '.$style.'>'.$row['parent']->buchungstext.'</td>';
|
||||
echo '<td align="right" '.$style.'>€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).'</td>';
|
||||
echo '<td align="center" '.$style.'>';
|
||||
if($betrag>=0 && $row['parent']->betrag<=0)
|
||||
{
|
||||
echo '<a href="../pdfExport.php?xml=konto.rdf.php&xsl=Zahlung&uid='.$uid.'&buchungsnummern='.$buchungsnummern.'" title="'.$p->t('tools/bestaetigungDrucken').'"><img src="../../../skin/images/pdfpic.gif" alt="'.$p->t('tools/bestaetigungDrucken').'"></a>';
|
||||
}
|
||||
elseif($row['parent']->betrag>0)
|
||||
{
|
||||
//Auszahlung
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<a onclick="window.open(';
|
||||
echo "'zahlungen_details.php?buchungsnr=".$row['parent']->buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
|
||||
echo '" href="#">'.$p->t('tools/offen').'</a>(€ '.sprintf('%.2f',$betrag*-1).')';
|
||||
|
||||
echo '</td>';
|
||||
}
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
// Wenn die Tabelle keine Eintraege hat, wird eine Tabellenzeile mit entsprechender Information angezeigt.
|
||||
if ($count_studiengangszahlung == 0)
|
||||
{
|
||||
echo "<tr><td colspan='7' style='background-color: white;'>" .$p->t('tools/keineZahlungenVorhanden'). "</td></tr>";
|
||||
}
|
||||
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $p->t('tools/keineZahlungenVorhanden');
|
||||
}
|
||||
echo '</td></tr></table';
|
||||
|
||||
echo '</body></html>';
|
||||
?>
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Martin Tatzber <tatzberm@technikum-wien.at>,
|
||||
* Authors: Martin Tatzber <tatzberm@technikum-wien.at>,
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../config/global.config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/konto.class.php');
|
||||
require_once('../../../include/bankverbindung.class.php');
|
||||
@@ -28,7 +29,7 @@ require_once('../../../include/benutzer.class.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/student.class.php');
|
||||
require_once('../../../include/prestudent.class.php');
|
||||
|
||||
|
||||
$uid = get_uid();
|
||||
|
||||
if(isset($_GET['uid']))
|
||||
@@ -48,7 +49,7 @@ if(isset($_GET['uid']))
|
||||
}
|
||||
else
|
||||
$getParam='';
|
||||
|
||||
|
||||
$benutzer = new benutzer();
|
||||
if(!$benutzer->load($uid))
|
||||
die('Benutzer nicht gefunden');
|
||||
@@ -88,7 +89,7 @@ $oe=new organisationseinheit();
|
||||
$oe->load($studiengang->oe_kurzbz);
|
||||
|
||||
$konto->getBuchungstyp();
|
||||
$buchungstyp = array();
|
||||
$buchungstyp = array();
|
||||
foreach ($konto->result as $row)
|
||||
$buchungstyp[$row->buchungstyp_kurzbz]=$row->beschreibung;
|
||||
|
||||
@@ -153,7 +154,13 @@ if($bic!='')
|
||||
<td>'.$bic.'</td>
|
||||
</tr>';
|
||||
}
|
||||
if($konto->zahlungsreferenz!='')
|
||||
if ($konto->zahlungsreferenz != ''
|
||||
&&
|
||||
(
|
||||
!defined('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN')
|
||||
|| ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN == true
|
||||
)
|
||||
)
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
@@ -189,7 +196,7 @@ foreach($addon->result as $a)
|
||||
</tbody>
|
||||
</table>';
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
echo '</body></html>';
|
||||
|
||||
@@ -413,15 +413,23 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
if($zeitsperre->new && $zeitsperre->zeitsperretyp_kurzbz=='Urlaub')
|
||||
{
|
||||
//Beim Anlegen von neuen Urlauben wird ein Mail an den Vorgesetzten versendet um diesen Freizugeben
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
$prsn = new person();
|
||||
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
{
|
||||
$to='';
|
||||
$fullName='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
{
|
||||
if (!empty($to))
|
||||
{
|
||||
$to.=',';
|
||||
$fullName.=',';
|
||||
}
|
||||
$to.=trim($vg.'@'.DOMAIN);
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=$name;
|
||||
}
|
||||
|
||||
$benutzer = new benutzer();
|
||||
@@ -440,11 +448,11 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
$mail = new mail($to, $from, 'Freigabeansuchen', $message);
|
||||
if($mail->send())
|
||||
{
|
||||
echo "<br><b>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</b>";
|
||||
echo "<br><b>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($fullName))."</b>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."</span>";
|
||||
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -461,8 +469,69 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
|
||||
echo "<span class='error'>$error_msg</span>";
|
||||
}
|
||||
|
||||
//loeschen eines bereits freigegebenen Urlaubs
|
||||
if((isset($_GET['type']) && $_GET['type']=='delete_sperre' && isset($_GET['informSupervisor'])))
|
||||
{
|
||||
$zeitsperre = new zeitsperre();
|
||||
$zeitsperre->load($_GET['id']);
|
||||
|
||||
$vondatum = $zeitsperre->getVonDatum();
|
||||
$bisdatum = $zeitsperre->getBisDatum();
|
||||
|
||||
if(!$zeitsperre->delete($_GET['id']))
|
||||
echo $zeitsperre->errormsg;
|
||||
|
||||
//Mail an Vorgesetzten
|
||||
$prsn = new person();
|
||||
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
{
|
||||
$to='';
|
||||
$fullName ='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
{
|
||||
if($to!='')
|
||||
{
|
||||
$to.=', '.$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=', '.$name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to.=$vg.'@'.DOMAIN;
|
||||
$name = $prsn->getFullNameFromBenutzer($vg);
|
||||
$fullName.=$name;
|
||||
}
|
||||
}
|
||||
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
|
||||
$p->t('urlaubstool/xHatUrlaubGeloescht',array($benutzer->nachname,$benutzer->vorname)).":\n";
|
||||
|
||||
|
||||
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($vondatum))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($bisdatum))."\n";
|
||||
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigegebenerUrlaubGeloescht'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
echo "<br><b>".$p->t('urlaubstool/VorgesetzteInformiert',array($fullName))."</b>";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($fullName))."!</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
|
||||
}
|
||||
}
|
||||
|
||||
//loeschen einer zeitsperre
|
||||
if(isset($_GET['type']) && $_GET['type']=='delete_sperre')
|
||||
if(isset($_GET['type']) && $_GET['type']=='delete_sperre' && !isset($_GET['informSupervisor']) )
|
||||
{
|
||||
$zeit = new zeitsperre();
|
||||
$zeit->load($_GET['id']);
|
||||
@@ -518,7 +587,7 @@ if(count($zeit->result)>0)
|
||||
$row_vertretung = $db->db_fetch_object($result_vertretung);
|
||||
$content_table.= "<tr class='liste".($i%2)."'>
|
||||
<td>$row->bezeichnung</td>
|
||||
<td>$row->zeitsperretyp_kurzbz</td>
|
||||
<td>$row->zeitsperretyp_beschreibung</td>
|
||||
<td nowrap>".$datum_obj->convertISODate($row->vondatum)." ".($row->vonstunde!=''?'('.$row->vonstunde.')':'')."</td>
|
||||
<td nowrap>".$datum_obj->convertISODate($row->bisdatum)." ".($row->bisstunde!=''?'('.$row->bisstunde.')':'')."</td>
|
||||
<td>".(isset($row_vertretung->kurzbz)?$row_vertretung->kurzbz:'')."</td>
|
||||
@@ -532,10 +601,14 @@ if(count($zeit->result)>0)
|
||||
$content_table.="<td><a href='$PHP_SELF?type=edit&id=$row->zeitsperre_id' class='Item'>".$p->t('zeitsperre/edit')."</a></td>";
|
||||
if ($row->vondatum < $gesperrt_bis AND in_array($row->zeitsperretyp_kurzbz,$typen_arr))
|
||||
$content_table .= '<td> </td>';
|
||||
else if($row->freigabeamum=='' || $row->zeitsperretyp_kurzbz!='Urlaub')
|
||||
else if($row->vondatum>=date("Y-m-d",time()) && $row->zeitsperretyp_kurzbz=='Urlaub')
|
||||
{
|
||||
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
|
||||
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id&informSupervisor=True' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
|
||||
}
|
||||
elseif($row->zeitsperretyp_kurzbz!='Urlaub')
|
||||
{
|
||||
$content_table.="\n<td><a href='$PHP_SELF?type=delete_sperre&id=$row->zeitsperre_id' onclick='return conf_del()' class='Item'>".$p->t('zeitsperre/loeschen')."</a></td>";
|
||||
}
|
||||
else
|
||||
$content_table .= '<td> </td>';
|
||||
$content_table.="</tr>";
|
||||
@@ -587,15 +660,15 @@ $content_form.= '<form method="POST" name="zeitsperre_form" action="'.$action.'"
|
||||
$content_form.= "<table>\n";
|
||||
$content_form.= '<tr><td style="width:150px">'.$p->t('zeitsperre/grund').'</td><td colspan="2" style="width:450px"><SELECT name="zeitsperretyp_kurzbz"'.$style.' onchange="showHideBezeichnungDropDown()" class="dd_breit">';
|
||||
//dropdown fuer zeitsperretyp
|
||||
$qry = "SELECT * FROM campus.tbl_zeitsperretyp ORDER BY zeitsperretyp_kurzbz";
|
||||
$qry = "SELECT * FROM campus.tbl_zeitsperretyp ORDER BY beschreibung";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row=$db->db_fetch_object($result))
|
||||
{
|
||||
if($zeitsperre->zeitsperretyp_kurzbz == $row->zeitsperretyp_kurzbz)
|
||||
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz' selected>$row->zeitsperretyp_kurzbz - $row->beschreibung</OPTION>";
|
||||
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz' selected>$row->beschreibung</OPTION>";
|
||||
else
|
||||
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz'$disabled>$row->zeitsperretyp_kurzbz - $row->beschreibung</OPTION>";
|
||||
$content_form.= "<OPTION value='$row->zeitsperretyp_kurzbz'$disabled>$row->beschreibung</OPTION>";
|
||||
}
|
||||
}
|
||||
$content_form.= '</SELECT></td></tr>';
|
||||
|
||||
@@ -1039,9 +1039,10 @@ if($projekt->getProjekteMitarbeiter($user, true))
|
||||
echo '<p><a href="../../../cms/dms.php?id='.$p->t("dms_link/fiktiveNormalarbeitszeit").'" target="_blank">'.$p->t("zeitaufzeichnung/fiktiveNormalarbeitszeit").'</a></p>';
|
||||
}
|
||||
echo '<p><a href="../profile/zeitsperre_resturlaub.php">'.$p->t("urlaubstool/meineZeitsperren").'</a></p>';
|
||||
echo "</td>
|
||||
echo $p->t("zeitaufzeichnung/supportAnfragen");
|
||||
echo '</td>
|
||||
</tr>
|
||||
</table>";
|
||||
</table>';
|
||||
echo '<table>
|
||||
<tr>
|
||||
<td rowspan="2">';
|
||||
|
||||
@@ -62,11 +62,15 @@ TZOFFSETTO:+0100
|
||||
END:STANDARD
|
||||
END:VTIMEZONE\n";
|
||||
//echo 'URL:',APP_ROOT,'cis/public/ical_coodle.php/',$uid,"\n";
|
||||
echo "BEGIN:VEVENT";
|
||||
|
||||
// Alle Umfragen holen an denen der User beteiligt ist
|
||||
$umfragen = new coodle();
|
||||
$umfragen->getCoodleFromUser($uid);
|
||||
$i = 0;
|
||||
if (count($umfragen->result) > 0)
|
||||
{
|
||||
//echo "BEGIN:VEVENT";
|
||||
}
|
||||
foreach($umfragen->result as $umfrage)
|
||||
{
|
||||
if($umfrage->coodle_status_kurzbz=='laufend')
|
||||
@@ -88,10 +92,7 @@ foreach($umfragen->result as $umfrage)
|
||||
$uhrzeit_ende = $date->format('H:i:s');
|
||||
$dtende = $date->format('Ymd\THis');
|
||||
|
||||
if ($i > 0)
|
||||
{
|
||||
echo "\nBEGIN:VEVENT";
|
||||
}
|
||||
echo "\nBEGIN:VEVENT";
|
||||
echo "\nUID:Coodle_Terminoption".$dtstart."_".$dtende."";
|
||||
echo "\nSUMMARY:Coodle Terminoption";
|
||||
echo "\nDTSTART;TZID=Europe/Vienna:$dtstart";
|
||||
|
||||
@@ -294,4 +294,16 @@ define('STUDIENGANG_KZ_QUALIFIKATIONKURSE', null);
|
||||
|
||||
// Gibt an ob der Login ins Testtool ueber das Bewerbungstool stattfindet oder nicht
|
||||
define('TESTTOOL_LOGIN_BEWERBUNGSTOOL', false);
|
||||
|
||||
// Prueft ob Buchungen bereits ins SAP uebertragen wurden und sperrt ggf die Bearbeitung
|
||||
define('BUCHUNGEN_CHECK_SAP', true);
|
||||
|
||||
// Gibt an, ob im FAS die Zahlungsbestaetigungen zum Download / im CIS generell die Zahlungen angezeigt werden
|
||||
define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN', true);
|
||||
|
||||
// Gibt an, ob im CIS die Zahlungsbestaetigungen fuer Lehrgaenge zum Download angezeigt werden
|
||||
define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN_FUER_LEHRGAENGE', true);
|
||||
|
||||
// Gibt an, ob im CIS die Zahlungsreferenz angezeigt wird
|
||||
define ('ZAHLUNGSBESTAETIGUNG_ZAHLUNGSREFERENZ_ANZEIGEN', false);
|
||||
?>
|
||||
|
||||
@@ -249,4 +249,9 @@ define('BIS_FUNKTIONSCODE_6_ARR', array(
|
||||
'Team'
|
||||
));
|
||||
|
||||
// Standortcode fuer Lehrgaenge
|
||||
define('BIS_STANDORTCODE_LEHRGAENGE', '0');
|
||||
|
||||
// bPk Abfrage
|
||||
define('BPK_FUER_ALLE_BENUTZER_ABFRAGEN', false);
|
||||
?>
|
||||
|
||||
+206
-203
@@ -1,204 +1,207 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
|
||||
$user = get_uid();
|
||||
loadVariables($user);
|
||||
?>
|
||||
|
||||
// ****
|
||||
// * Laedt die zu bearbeitenden Daten
|
||||
// ****
|
||||
function AdresseInit(adresse_id, person_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
if(adresse_id!='')
|
||||
{
|
||||
//Daten holen
|
||||
var url = '<?php echo APP_ROOT ?>rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var dsource = rdfService.GetDataSourceBlocking(url);
|
||||
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/adresse/rdf";
|
||||
|
||||
//RDF parsen
|
||||
|
||||
person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
|
||||
strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" ));
|
||||
plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" ));
|
||||
ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" ));
|
||||
gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" ));
|
||||
nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" ));
|
||||
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
|
||||
heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" ));
|
||||
zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" ));
|
||||
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
|
||||
rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" ));
|
||||
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
||||
neu = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Defaultwerte bei Neuem Datensatz
|
||||
neu = true;
|
||||
name='';
|
||||
strasse='';
|
||||
plz='';
|
||||
ort='';
|
||||
gemeinde=''
|
||||
nation='A';
|
||||
typ='h';
|
||||
heimatadresse='Ja';
|
||||
zustelladresse='Ja';
|
||||
firma_id='';
|
||||
rechnungsadresse='Nein';
|
||||
anmerkung='';
|
||||
}
|
||||
|
||||
document.getElementById('adresse-checkbox-neu').checked=neu;
|
||||
document.getElementById('adresse-textbox-person_id').value=person_id;
|
||||
document.getElementById('adresse-textbox-adresse_id').value=adresse_id;
|
||||
document.getElementById('adresse-textbox-name').value=name;
|
||||
document.getElementById('adresse-textbox-strasse').value=strasse;
|
||||
document.getElementById('adresse-textbox-plz').value=plz;
|
||||
AdresseLoadGemeinde(true);
|
||||
document.getElementById('adresse-textbox-gemeinde').value=gemeinde;
|
||||
AdresseLoadOrtschaft(true);
|
||||
document.getElementById('adresse-textbox-ort').value=ort;
|
||||
document.getElementById('adresse-menulist-nation').value=nation;
|
||||
document.getElementById('adresse-menulist-typ').value=typ;
|
||||
if(heimatadresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-heimatadresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-heimatadresse').checked=false;
|
||||
|
||||
if(zustelladresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-zustelladresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-zustelladresse').checked=false;
|
||||
document.getElementById('adresse-menulist-firma').value=firma_id;
|
||||
document.getElementById('adresse-textbox-anmerkung').value=anmerkung;
|
||||
if(rechnungsadresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-rechnungsadresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-rechnungsadresse').checked=false;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Speichern der Daten
|
||||
// ****
|
||||
function AdresseSpeichern()
|
||||
{
|
||||
if(window.opener.KontaktAdresseSpeichern(document))
|
||||
window.close();
|
||||
else
|
||||
this.focus();
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt die Gemeinden zur eingegebenen Postleitzahl
|
||||
// ****
|
||||
function AdresseLoadGemeinde(blocking)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde');
|
||||
if(document.getElementById('adresse-menulist-nation').value=='A')
|
||||
{
|
||||
menulist_gemeinde.value='';
|
||||
document.getElementById('adresse-textbox-ort').value='';
|
||||
}
|
||||
plz = document.getElementById('adresse-textbox-plz').value;
|
||||
|
||||
if(plz.length>3)
|
||||
{
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp();
|
||||
|
||||
var oldDatasources = menulist_gemeinde.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
menulist_gemeinde.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
if(blocking)
|
||||
var datasource = rdfService.GetDataSourceBlocking(url);
|
||||
else
|
||||
var datasource = rdfService.GetDataSource(url);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
menulist_gemeinde.database.AddDataSource(datasource);
|
||||
|
||||
menulist_gemeinde.builder.rebuild();
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt die Ortschaften zu Plz und Gemeinde
|
||||
// ****
|
||||
function AdresseLoadOrtschaft(blocking)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
gemeinde = document.getElementById('adresse-textbox-gemeinde').value;
|
||||
menulist_ort = document.getElementById('adresse-textbox-ort');
|
||||
if(document.getElementById('adresse-menulist-nation').value=='A')
|
||||
{
|
||||
menulist_ort.value='';
|
||||
}
|
||||
plz = document.getElementById('adresse-textbox-plz').value;
|
||||
|
||||
if(plz.length>3 && gemeinde!='')
|
||||
{
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp();
|
||||
|
||||
var oldDatasources = menulist_ort.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menulist_ort.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
menulist_ort.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
if(blocking)
|
||||
var datasource1 = rdfService.GetDataSourceBlocking(url);
|
||||
else
|
||||
var datasource1 = rdfService.GetDataSource(url);
|
||||
datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
menulist_ort.database.AddDataSource(datasource1);
|
||||
|
||||
menulist_ort.builder.rebuild();
|
||||
}
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
|
||||
$user = get_uid();
|
||||
loadVariables($user);
|
||||
?>
|
||||
|
||||
// ****
|
||||
// * Laedt die zu bearbeitenden Daten
|
||||
// ****
|
||||
function AdresseInit(adresse_id, person_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
if(adresse_id!='')
|
||||
{
|
||||
//Daten holen
|
||||
var url = '<?php echo APP_ROOT ?>rdf/adresse.rdf.php?adresse_id='+adresse_id+'&'+gettimestamp();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
var dsource = rdfService.GetDataSourceBlocking(url);
|
||||
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/adresse/" + adresse_id);
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/adresse/rdf";
|
||||
|
||||
//RDF parsen
|
||||
|
||||
person_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#person_id" ));
|
||||
name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#name" ));
|
||||
strasse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#strasse" ));
|
||||
plz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#plz" ));
|
||||
ort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ort" ));
|
||||
gemeinde = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#gemeinde" ));
|
||||
nation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nation" ));
|
||||
typ = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#typ" ));
|
||||
heimatadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#heimatadresse" ));
|
||||
zustelladresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zustelladresse" ));
|
||||
co_name = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#co_name" ));
|
||||
firma_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#firma_id" ));
|
||||
rechnungsadresse = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#rechnungsadresse" ));
|
||||
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
||||
neu = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Defaultwerte bei Neuem Datensatz
|
||||
neu = true;
|
||||
name='';
|
||||
strasse='';
|
||||
plz='';
|
||||
ort='';
|
||||
gemeinde=''
|
||||
nation='A';
|
||||
typ='h';
|
||||
heimatadresse='Ja';
|
||||
zustelladresse='Ja';
|
||||
co_name = '';
|
||||
firma_id='';
|
||||
rechnungsadresse='Nein';
|
||||
anmerkung='';
|
||||
}
|
||||
|
||||
document.getElementById('adresse-checkbox-neu').checked=neu;
|
||||
document.getElementById('adresse-textbox-person_id').value=person_id;
|
||||
document.getElementById('adresse-textbox-adresse_id').value=adresse_id;
|
||||
document.getElementById('adresse-textbox-name').value=name;
|
||||
document.getElementById('adresse-textbox-strasse').value=strasse;
|
||||
document.getElementById('adresse-textbox-plz').value=plz;
|
||||
AdresseLoadGemeinde(true);
|
||||
document.getElementById('adresse-textbox-gemeinde').value=gemeinde;
|
||||
AdresseLoadOrtschaft(true);
|
||||
document.getElementById('adresse-textbox-ort').value=ort;
|
||||
document.getElementById('adresse-menulist-nation').value=nation;
|
||||
document.getElementById('adresse-menulist-typ').value=typ;
|
||||
if(heimatadresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-heimatadresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-heimatadresse').checked=false;
|
||||
|
||||
if(zustelladresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-zustelladresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-zustelladresse').checked=false;
|
||||
document.getElementById('adresse-textbox-co_name').value = co_name;
|
||||
document.getElementById('adresse-menulist-firma').value=firma_id;
|
||||
document.getElementById('adresse-textbox-anmerkung').value=anmerkung;
|
||||
if(rechnungsadresse=='Ja')
|
||||
document.getElementById('adresse-checkbox-rechnungsadresse').checked=true;
|
||||
else
|
||||
document.getElementById('adresse-checkbox-rechnungsadresse').checked=false;
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Speichern der Daten
|
||||
// ****
|
||||
function AdresseSpeichern()
|
||||
{
|
||||
if(window.opener.KontaktAdresseSpeichern(document))
|
||||
window.close();
|
||||
else
|
||||
this.focus();
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt die Gemeinden zur eingegebenen Postleitzahl
|
||||
// ****
|
||||
function AdresseLoadGemeinde(blocking)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
menulist_gemeinde = document.getElementById('adresse-textbox-gemeinde');
|
||||
if(document.getElementById('adresse-menulist-nation').value=='A')
|
||||
{
|
||||
menulist_gemeinde.value='';
|
||||
document.getElementById('adresse-textbox-ort').value='';
|
||||
}
|
||||
plz = document.getElementById('adresse-textbox-plz').value;
|
||||
|
||||
if(plz.length>3)
|
||||
{
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&'+gettimestamp();
|
||||
|
||||
var oldDatasources = menulist_gemeinde.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menulist_gemeinde.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
menulist_gemeinde.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
if(blocking)
|
||||
var datasource = rdfService.GetDataSourceBlocking(url);
|
||||
else
|
||||
var datasource = rdfService.GetDataSource(url);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
menulist_gemeinde.database.AddDataSource(datasource);
|
||||
|
||||
menulist_gemeinde.builder.rebuild();
|
||||
}
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Laedt die Ortschaften zu Plz und Gemeinde
|
||||
// ****
|
||||
function AdresseLoadOrtschaft(blocking)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
gemeinde = document.getElementById('adresse-textbox-gemeinde').value;
|
||||
menulist_ort = document.getElementById('adresse-textbox-ort');
|
||||
if(document.getElementById('adresse-menulist-nation').value=='A')
|
||||
{
|
||||
menulist_ort.value='';
|
||||
}
|
||||
plz = document.getElementById('adresse-textbox-plz').value;
|
||||
|
||||
if(plz.length>3 && gemeinde!='')
|
||||
{
|
||||
var url = '<?php echo APP_ROOT; ?>rdf/gemeinde.rdf.php?plz='+plz+'&gemeinde='+encodeURIComponent(gemeinde)+'&'+gettimestamp();
|
||||
|
||||
var oldDatasources = menulist_ort.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
menulist_ort.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
menulist_ort.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
if(blocking)
|
||||
var datasource1 = rdfService.GetDataSourceBlocking(url);
|
||||
else
|
||||
var datasource1 = rdfService.GetDataSource(url);
|
||||
datasource1.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
|
||||
datasource1.QueryInterface(Components.interfaces.nsIRDFXMLSink);
|
||||
menulist_ort.database.AddDataSource(datasource1);
|
||||
|
||||
menulist_ort.builder.rebuild();
|
||||
}
|
||||
}
|
||||
+205
-198
@@ -1,199 +1,206 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../config/vilesci.config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
|
||||
|
||||
if(isset($_GET['adresse_id']) && is_numeric($_GET['adresse_id']))
|
||||
$adresse_id=$_GET['adresse_id'];
|
||||
else
|
||||
$adresse_id='';
|
||||
|
||||
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
|
||||
$person_id=$_GET['person_id'];
|
||||
else
|
||||
$person_id='';
|
||||
?>
|
||||
|
||||
<window id="adresse-dialog" title="Adresse"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="AdresseInit(<?php echo ($adresse_id!=''?$adresse_id:"''").','.($person_id!=''?$person_id:"''"); ?>)"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/adressedialog.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
|
||||
|
||||
<vbox>
|
||||
|
||||
|
||||
|
||||
<textbox id="adresse-textbox-adresse_id" hidden="true"/>
|
||||
<textbox id="adresse-textbox-person_id" hidden="true"/>
|
||||
<checkbox id="adresse-checkbox-neu" hidden="true"/>
|
||||
|
||||
<groupbox id="adresse-groupbox" flex="1">
|
||||
<caption label="Details"/>
|
||||
<grid id="adresse-grid-detail" style="overflow:auto;margin:4px;" flex="1">
|
||||
<columns >
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Typ" control="adresse-menulist-typ"/>
|
||||
<menulist id="adresse-menulist-typ"
|
||||
flex="1">
|
||||
<menupopup>
|
||||
<menuitem value="h" label="Hauptwohnsitz"/>
|
||||
<menuitem value="n" label="Nebenwohnsitz"/>
|
||||
<menuitem value="f" label="Firma"/>
|
||||
<menuitem value="r" label="Rechnungsadresse"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Strasse" control="adresse-textbox-strasse"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-strasse" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Nation" control="adresse-menulist-nation"/>
|
||||
<menulist id="adresse-menulist-nation"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Plz" control="adresse-textbox-plz"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-plz" maxlength="16" size="5" oninput="AdresseLoadGemeinde(false)"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Gemeinde" />
|
||||
<!--<hbox>
|
||||
<textbox id="adresse-textbox-gemeinde" maxlength="256" size="30" />
|
||||
<spacer flex="1" />
|
||||
</hbox>-->
|
||||
<menulist id="adresse-textbox-gemeinde"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
ref="http://www.technikum-wien.at/gemeinde/liste"
|
||||
oncommand="AdresseLoadOrtschaft(false)"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
|
||||
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Ortschaft" control="adresse-textbox-ort"/>
|
||||
<!--<hbox>
|
||||
<textbox id="adresse-textbox-ort" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>-->
|
||||
<menulist id="adresse-textbox-ort"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
ref="http://www.technikum-wien.at/gemeinde/liste"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
|
||||
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Heimatadresse" control="adresse-checkbox-heimatadresse"/>
|
||||
<checkbox id="adresse-checkbox-heimatadresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Zustelladresse" control="adresse-checkbox-zustelladresse"/>
|
||||
<checkbox id="adresse-checkbox-zustelladresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Rechnungsadresse" control="adresse-checkbox-rechnungsadresse"/>
|
||||
<checkbox id="adresse-checkbox-rechnungsadresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Firma" control="adresse-menulist-firma"/>
|
||||
<!--
|
||||
<menulist id="adresse-menulist-firma"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/firma/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
|
||||
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
-->
|
||||
<box class="Firma" id="adresse-menulist-firma" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Name" control="adresse-textbox-name"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-name" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anmerkung" control="adresse-textbox-anmerkung"/>
|
||||
<textbox id="adresse-textbox-anmerkung" multiline="true"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
<spacer flex="1" />
|
||||
<button id="adresse-button-speichern" oncommand="AdresseSpeichern()" label="Speichern" />
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
include('../config/vilesci.config.inc.php');
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
|
||||
|
||||
if(isset($_GET['adresse_id']) && is_numeric($_GET['adresse_id']))
|
||||
$adresse_id=$_GET['adresse_id'];
|
||||
else
|
||||
$adresse_id='';
|
||||
|
||||
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
|
||||
$person_id=$_GET['person_id'];
|
||||
else
|
||||
$person_id='';
|
||||
?>
|
||||
|
||||
<window id="adresse-dialog" title="Adresse"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="AdresseInit(<?php echo ($adresse_id!=''?$adresse_id:"''").','.($person_id!=''?$person_id:"''"); ?>)"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/adressedialog.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
|
||||
|
||||
<vbox>
|
||||
|
||||
|
||||
|
||||
<textbox id="adresse-textbox-adresse_id" hidden="true"/>
|
||||
<textbox id="adresse-textbox-person_id" hidden="true"/>
|
||||
<checkbox id="adresse-checkbox-neu" hidden="true"/>
|
||||
|
||||
<groupbox id="adresse-groupbox" flex="1">
|
||||
<caption label="Details"/>
|
||||
<grid id="adresse-grid-detail" style="overflow:auto;margin:4px;" flex="1">
|
||||
<columns >
|
||||
<column flex="1"/>
|
||||
<column flex="5"/>
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Typ" control="adresse-menulist-typ"/>
|
||||
<menulist id="adresse-menulist-typ"
|
||||
flex="1">
|
||||
<menupopup>
|
||||
<menuitem value="h" label="Hauptwohnsitz"/>
|
||||
<menuitem value="n" label="Nebenwohnsitz"/>
|
||||
<menuitem value="f" label="Firma"/>
|
||||
<menuitem value="r" label="Rechnungsadresse"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Strasse" control="adresse-textbox-strasse"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-strasse" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Nation" control="adresse-menulist-nation"/>
|
||||
<menulist id="adresse-menulist-nation"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/nation.rdf.php" flex="1"
|
||||
ref="http://www.technikum-wien.at/nation/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/nation/rdf#nation_code"
|
||||
label="rdf:http://www.technikum-wien.at/nation/rdf#kurztext"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Plz" control="adresse-textbox-plz"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-plz" maxlength="16" size="5" oninput="AdresseLoadGemeinde(false)"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Gemeinde" />
|
||||
<!--<hbox>
|
||||
<textbox id="adresse-textbox-gemeinde" maxlength="256" size="30" />
|
||||
<spacer flex="1" />
|
||||
</hbox>-->
|
||||
<menulist id="adresse-textbox-gemeinde"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
ref="http://www.technikum-wien.at/gemeinde/liste"
|
||||
oncommand="AdresseLoadOrtschaft(false)"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
|
||||
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#name"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Ortschaft" control="adresse-textbox-ort"/>
|
||||
<!--<hbox>
|
||||
<textbox id="adresse-textbox-ort" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>-->
|
||||
<menulist id="adresse-textbox-ort"
|
||||
editable="true"
|
||||
datasources="rdf:null" flex="1"
|
||||
ref="http://www.technikum-wien.at/gemeinde/liste"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
|
||||
label="rdf:http://www.technikum-wien.at/gemeinde/rdf#ortschaftsname"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Heimatadresse" control="adresse-checkbox-heimatadresse"/>
|
||||
<checkbox id="adresse-checkbox-heimatadresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Zustelladresse" control="adresse-checkbox-zustelladresse"/>
|
||||
<checkbox id="adresse-checkbox-zustelladresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Abweichender Empfänger (c/o)" control="adresse-textbox-co_name"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-co_name" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Rechnungsadresse" control="adresse-checkbox-rechnungsadresse"/>
|
||||
<checkbox id="adresse-checkbox-rechnungsadresse" checked="true"/>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Firma" control="adresse-menulist-firma"/>
|
||||
<!--
|
||||
<menulist id="adresse-menulist-firma"
|
||||
datasources="<?php echo APP_ROOT ?>rdf/firma.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/firma/liste" >
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/firma/rdf#firma_id"
|
||||
label="rdf:http://www.technikum-wien.at/firma/rdf#name"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
-->
|
||||
<box class="Firma" id="adresse-menulist-firma" />
|
||||
</row>
|
||||
<row>
|
||||
<label value="Name" control="adresse-textbox-name"/>
|
||||
<hbox>
|
||||
<textbox id="adresse-textbox-name" maxlength="256" size="30"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Anmerkung" control="adresse-textbox-anmerkung"/>
|
||||
<textbox id="adresse-textbox-anmerkung" multiline="true"/>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<hbox>
|
||||
<spacer flex="1" />
|
||||
<button id="adresse-button-speichern" oncommand="AdresseSpeichern()" label="Speichern" />
|
||||
</hbox>
|
||||
</groupbox>
|
||||
</vbox>
|
||||
</window>
|
||||
@@ -123,8 +123,6 @@ if(isset($_POST['submitbild']))
|
||||
$dokument = new dokument();
|
||||
$dokument->loadDokumenttyp($_REQUEST['dokumenttyp']);
|
||||
|
||||
$extension = end(explode(".",strtolower($_FILES['file']['name'])));
|
||||
|
||||
$akte->dokument_kurzbz = $_REQUEST['dokumenttyp'];
|
||||
$akte->person_id = $_GET['person_id'];
|
||||
//$akte->inhalt = base64_encode($content);
|
||||
|
||||
+823
-822
File diff suppressed because it is too large
Load Diff
+799
-797
File diff suppressed because it is too large
Load Diff
+343
-338
@@ -1,338 +1,343 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
|
||||
|
||||
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
die('Parameter person_id muss uebergeben werden');
|
||||
|
||||
$uid = get_uid();
|
||||
?>
|
||||
|
||||
<window id="kontakt-window" title="Kontakt"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="loadKontakte(<?php echo $person_id; ?>);"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/kontakt.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
|
||||
|
||||
<vbox>
|
||||
<!-- ADRESSEN -->
|
||||
<groupbox id="kontakt-groupbox-adresse">
|
||||
<caption label="Adressen" />
|
||||
<hbox>
|
||||
<tree id="kontakt-adressen-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/adresse/liste"
|
||||
ondblclick="KontaktAdresseBearbeiten()"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-adressen-treecol-typ" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-strasse" label="Strasse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-plz" label="Plz" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#plz" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-ort" label="Ort" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#ort" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-gemeinde" label="Gemeinde" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-nation" label="Nation" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#nation" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-heimatadresse" label="Heimatadresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-adresse_id" label="Adresse_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-name" label="Name" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-firma_name" label="Firma" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-rechnungsadresse" label="Rechnungsadresse" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-anmerkung" label="Anmerkung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#plz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#ort" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#nation" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id='kontakt-adressen-neu' label='Neu' oncommand='KontaktAdresseNeu()' />
|
||||
<button id='kontakt-adressen-bearbeiten' label='Bearbeiten' oncommand='KontaktAdresseBearbeiten()' />
|
||||
<button id='kontakt-adressen-loeschen' label='Loeschen' oncommand='KontaktAdresseDelete()' />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<groupbox id="kontakt-groupbox-adresse">
|
||||
<caption label="Kontakt" />
|
||||
<hbox>
|
||||
<tree id="kontakt-kontakt-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/kontakt/liste"
|
||||
ondblclick="KontaktKontaktBearbeiten();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakttyp" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakt" label="Kontakt" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-zustellung" label="Zustellung" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-anmerkung" label="Anmerkung" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-firma_name" label="Firma" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakt_id" label="Kontakt_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="kontakt-kontakt-neu" label="Neu" oncommand="KontaktKontaktNeu()" />
|
||||
<button id="kontakt-kontakt-bearbeiten" label="Bearbeiten" oncommand="KontaktKontaktBearbeiten()" />
|
||||
<button id="kontakt-kontakt-loeschen" label="Loeschen" oncommand="KontaktKontaktDelete()" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
<?php
|
||||
$recht = new benutzerberechtigung();
|
||||
$recht->getBerechtigungen($uid);
|
||||
if($recht->isberechtigt('mitarbeiter/bankdaten') || $recht->isberechtigt('student/bankdaten'))
|
||||
echo '
|
||||
<groupbox id="kontakt-groupbox-bankverbindung">
|
||||
<caption label="Bankverbindungen" />
|
||||
<hbox>
|
||||
<tree id="kontakt-bankverbindung-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/bankverbindung/liste"
|
||||
ondblclick="KontaktBankverbindungBearbeiten()"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-bankverbindung-treecol-name" label="Name" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-anschrift" label="Anschrift" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-bic" label="BIC" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-blz" label="BLZ" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-iban" label="IBAN" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-kontonr" label="Kontonummer" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-typ_bezeichnung" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-verrechnung" label="Verrechnung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-bankverbindung_id" label="Bankverbindung_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" />
|
||||
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="kontakt-bankverbindung-neu" label="Neu" oncommand="KontaktBankverbindungNeu()" />
|
||||
<button id="kontakt-bankverbindung-bearbeiten" label="Bearbeiten" oncommand="KontaktBankverbindungBearbeiten()" />
|
||||
<button id="kontakt-bankverbindung-loeschen" label="Loeschen" oncommand="KontaktBankverbindungDelete()" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>';
|
||||
?>
|
||||
</vbox>
|
||||
</window>
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
header("Cache-Control: no-cache");
|
||||
header("Cache-Control: post-check=0, pre-check=0",false);
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
|
||||
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
|
||||
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'skin/tempus.css" type="text/css"?>';
|
||||
echo '<?xml-stylesheet href="'.APP_ROOT.'content/bindings.css" type="text/css"?>';
|
||||
|
||||
if(isset($_GET['person_id']) && is_numeric($_GET['person_id']))
|
||||
$person_id = $_GET['person_id'];
|
||||
else
|
||||
die('Parameter person_id muss uebergeben werden');
|
||||
|
||||
$uid = get_uid();
|
||||
?>
|
||||
|
||||
<window id="kontakt-window" title="Kontakt"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="loadKontakte(<?php echo $person_id; ?>);"
|
||||
>
|
||||
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/kontakt.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/functions.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/fasoverlay.js.php" />
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
|
||||
|
||||
<vbox>
|
||||
<!-- ADRESSEN -->
|
||||
<groupbox id="kontakt-groupbox-adresse">
|
||||
<caption label="Adressen" />
|
||||
<hbox>
|
||||
<tree id="kontakt-adressen-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/adresse/liste"
|
||||
ondblclick="KontaktAdresseBearbeiten()"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-adressen-treecol-typ" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-strasse" label="Strasse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-plz" label="Plz" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#plz" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-ort" label="Ort" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#ort" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-gemeinde" label="Gemeinde" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-nation" label="Nation" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#nation" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-heimatadresse" label="Heimatadresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-zustelladresse" label="Zustelladresse" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-co_name" label="Abweich.Empf.(c/o)" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#co_name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-adresse_id" label="Adresse_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-name" label="Name" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-firma_name" label="Firma" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-rechnungsadresse" label="Rechnungsadresse" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-adressen-treecol-anmerkung" label="Anmerkung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" onclick="KontaktAdresseTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#typ_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#strasse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#plz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#ort" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#gemeinde" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#nation" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#heimatadresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#zustelladresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#co_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#adresse_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#updateamum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#firma_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#rechnungsadresse" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/adresse/rdf#anmerkung" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id='kontakt-adressen-neu' label='Neu' oncommand='KontaktAdresseNeu()' />
|
||||
<button id='kontakt-adressen-bearbeiten' label='Bearbeiten' oncommand='KontaktAdresseBearbeiten()' />
|
||||
<button id='kontakt-adressen-loeschen' label='Loeschen' oncommand='KontaktAdresseDelete()' />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
|
||||
<groupbox id="kontakt-groupbox-adresse">
|
||||
<caption label="Kontakt" />
|
||||
<hbox>
|
||||
<tree id="kontakt-kontakt-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/kontakt/liste"
|
||||
ondblclick="KontaktKontaktBearbeiten();"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakttyp" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakt" label="Kontakt" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-zustellung" label="Zustellung" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-anmerkung" label="Anmerkung" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-firma_name" label="Firma" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-firma_id" label="Firma_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-kontakt_id" label="Kontakt_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-kontakt-treecol-updateamum" label="letzte Aenderung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" onclick="KontaktKontaktTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakttyp" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#zustellung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#firma_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#kontakt_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/kontakt/rdf#updateamum" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="kontakt-kontakt-neu" label="Neu" oncommand="KontaktKontaktNeu()" />
|
||||
<button id="kontakt-kontakt-bearbeiten" label="Bearbeiten" oncommand="KontaktKontaktBearbeiten()" />
|
||||
<button id="kontakt-kontakt-loeschen" label="Loeschen" oncommand="KontaktKontaktDelete()" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>
|
||||
<?php
|
||||
$recht = new benutzerberechtigung();
|
||||
$recht->getBerechtigungen($uid);
|
||||
if($recht->isberechtigt('mitarbeiter/bankdaten') || $recht->isberechtigt('student/bankdaten'))
|
||||
echo '
|
||||
<groupbox id="kontakt-groupbox-bankverbindung">
|
||||
<caption label="Bankverbindungen" />
|
||||
<hbox>
|
||||
<tree id="kontakt-bankverbindung-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/bankverbindung/liste"
|
||||
ondblclick="KontaktBankverbindungBearbeiten()"
|
||||
flags="dont-build-content"
|
||||
enableColumnDrag="true"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;" height="100"
|
||||
persist="hidden, height"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="kontakt-bankverbindung-treecol-name" label="Name" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-anschrift" label="Anschrift" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-bic" label="BIC" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-blz" label="BLZ" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-iban" label="IBAN" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-kontonr" label="Kontonummer" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-typ_bezeichnung" label="Typ" flex="1" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-verrechnung" label="Verrechnung" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-person_id" label="Person_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="kontakt-bankverbindung-treecol-bankverbindung_id" label="Bankverbindung_id" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" onclick="KontaktBankverbindungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
<rule>
|
||||
<treechildren>
|
||||
<treeitem uri="rdf:*">
|
||||
<treerow>
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#name" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#anschrift" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bic" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#blz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#iban" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#kontonr" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#typ_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#verrechnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#person_id" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/bankverbindung/rdf#bankverbindung_id" />
|
||||
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
</rule>
|
||||
</template>
|
||||
</tree>
|
||||
<vbox>
|
||||
<button id="kontakt-bankverbindung-neu" label="Neu" oncommand="KontaktBankverbindungNeu()" />
|
||||
<button id="kontakt-bankverbindung-bearbeiten" label="Bearbeiten" oncommand="KontaktBankverbindungBearbeiten()" />
|
||||
<button id="kontakt-bankverbindung-loeschen" label="Loeschen" oncommand="KontaktBankverbindungDelete()" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
</groupbox>';
|
||||
?>
|
||||
</vbox>
|
||||
</window>
|
||||
|
||||
@@ -458,7 +458,7 @@ else
|
||||
}
|
||||
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
|
||||
if ($sign === true)
|
||||
{
|
||||
$dokument->sign($user);
|
||||
@@ -566,6 +566,9 @@ else
|
||||
$dokument->setFilename($filename);
|
||||
|
||||
$error = false;
|
||||
|
||||
// XML-tag archivierbar ergaenzen
|
||||
$dokument->setXMLTag_archivierbar();
|
||||
|
||||
// Beim Archivieren wird das Dokument immer signiert wenn moeglich
|
||||
if($vorlage->signierbar)
|
||||
@@ -575,7 +578,7 @@ else
|
||||
{
|
||||
$dokument->sign($user);
|
||||
}
|
||||
|
||||
|
||||
if ($dokument->create($output))
|
||||
$doc = $dokument->output(false);
|
||||
else
|
||||
|
||||
@@ -166,7 +166,7 @@ function generateMatrikelnummer($studiengang_kz, $studiensemester_kurzbz)
|
||||
* @param $note
|
||||
* @return null, error wird direkt in globale Variable geschrieben
|
||||
*/
|
||||
function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note)
|
||||
function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $note, $punkte)
|
||||
{
|
||||
global $return, $error, $errormsg;
|
||||
|
||||
@@ -227,6 +227,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
if(count($benutzerfunktion->result)>0)
|
||||
$anwesenheitsbefreit=true;
|
||||
|
||||
$gesamtnote_punkte = defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE;
|
||||
|
||||
// Wenn nicht Anwesenheitsbefreit und Anwesenheit unter einem bestimmten Prozentsatz faellt dann wird ein
|
||||
// Pruefungsantritt abgezogen
|
||||
if(isset($anwesenheit->result[0]) && $anwesenheit->result[0]->prozent < FAS_ANWESENHEIT_ROT && !$anwesenheitsbefreit)
|
||||
@@ -239,6 +241,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
// 2. Termin mit Note erstellen
|
||||
$pruefung->pruefungstyp_kurzbz = "Termin2";
|
||||
$pruefung->note = $note;
|
||||
if($gesamtnote_punkte)
|
||||
$pruefung->punkte = $punkte;
|
||||
if($pruefung->save())
|
||||
{
|
||||
$return = true;
|
||||
@@ -260,6 +264,8 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
// 1. Termin mit Note erstellen
|
||||
$pruefung->pruefungstyp_kurzbz = "Termin1";
|
||||
$pruefung->note = $note;
|
||||
if($gesamtnote_punkte)
|
||||
$pruefung->punkte = $punkte;
|
||||
|
||||
if($pruefung->save())
|
||||
{
|
||||
@@ -274,6 +280,80 @@ function NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranst
|
||||
}
|
||||
}
|
||||
|
||||
function deleteFromSAP($buchung)
|
||||
{
|
||||
global $db, $user;
|
||||
|
||||
if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true)
|
||||
{
|
||||
$qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$qry = "DELETE FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung->buchungsnr);
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
$log = new log();
|
||||
$log->mitarbeiter_uid = $user;
|
||||
$log->beschreibung = 'Buchungszuordnung SAP geloescht: SalesOrder:'.$row->sap_sales_order_id;
|
||||
$log->sql = $qry;
|
||||
if(!$log->save(true))
|
||||
{
|
||||
echo "Fehler beim Schreiben des Log".$log->errormsg;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Fehler beim Löschen der Zahlungszuordnung";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//Gegenbuchung
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Zahlung nicht gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die Kontobuchung bereits ins SAP Ubertragen wurde oder noch geändert werden darf
|
||||
*/
|
||||
function isBuchungAllowedToChange($buchung_obj)
|
||||
{
|
||||
global $db;
|
||||
|
||||
if(defined('BUCHUNGEN_CHECK_SAP') && BUCHUNGEN_CHECK_SAP == true)
|
||||
{
|
||||
$qry = "SELECT * FROM sync.tbl_sap_salesorder WHERE buchungsnr=".$db->db_add_param($buchung_obj->buchungsnr);
|
||||
if ($buchung_obj->buchungsnr_verweis != '')
|
||||
$qry .= " OR buchungsnr=".$db->db_add_param($buchung_obj->buchungsnr_verweis);
|
||||
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
if($db->db_num_rows($result) > 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
|
||||
@@ -1946,27 +2026,36 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
$buchung->betrag = $_POST['betrag'];
|
||||
$buchung->buchungsdatum = $_POST['buchungsdatum'];
|
||||
$buchung->buchungstext = $_POST['buchungstext'];
|
||||
$buchung->mahnspanne = $_POST['mahnspanne'];
|
||||
$buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz'];
|
||||
$buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
|
||||
$buchung->studiengang_kz = $_POST['studiengang_kz'];
|
||||
$buchung->credit_points = $_POST['credit_points'];
|
||||
$buchung->new = false;
|
||||
$buchung->updateamum = date('Y-m-d H:i:s');
|
||||
$buchung->updatevon = $user;
|
||||
$buchung->anmerkung = $_POST['anmerkung'];
|
||||
|
||||
if($buchung->save())
|
||||
if(isBuchungAllowedToChange($buchung)
|
||||
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
|
||||
{
|
||||
$return = true;
|
||||
$buchung->betrag = $_POST['betrag'];
|
||||
$buchung->buchungsdatum = $_POST['buchungsdatum'];
|
||||
$buchung->buchungstext = $_POST['buchungstext'];
|
||||
$buchung->mahnspanne = $_POST['mahnspanne'];
|
||||
$buchung->buchungstyp_kurzbz = $_POST['buchungstyp_kurzbz'];
|
||||
$buchung->studiensemester_kurzbz = $_POST['studiensemester_kurzbz'];
|
||||
$buchung->studiengang_kz = $_POST['studiengang_kz'];
|
||||
$buchung->credit_points = $_POST['credit_points'];
|
||||
$buchung->new = false;
|
||||
$buchung->updateamum = date('Y-m-d H:i:s');
|
||||
$buchung->updatevon = $user;
|
||||
$buchung->anmerkung = $_POST['anmerkung'];
|
||||
|
||||
if($buchung->save())
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Speichern:'.$buchung->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Speichern:'.$buchung->errormsg;
|
||||
$errormsg = 'Buchung wurde bereits übertragen und darf nicht geändert werden';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2019,26 +2108,35 @@ if(!$error)
|
||||
{
|
||||
if($buchung->buchungsnr_verweis=='')
|
||||
{
|
||||
$kto = new konto();
|
||||
//$buchung->betrag*(-1);
|
||||
$buchung->betrag = $kto->getDifferenz($buchungsnr);
|
||||
$buchung->buchungsdatum = $gegenbuchungsdatum;
|
||||
$buchung->mahnspanne = '0';
|
||||
$buchung->buchungsnr_verweis = $buchung->buchungsnr;
|
||||
$buchung->new = true;
|
||||
$buchung->insertamum = date('Y-m-d H:i:s');
|
||||
$buchung->insertvon = $user;
|
||||
$buchung->anmerkung = '';
|
||||
|
||||
if($buchung->save())
|
||||
if(isBuchungAllowedToChange($buchung)
|
||||
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid'))
|
||||
{
|
||||
//$data = $buchung->buchungsnr;
|
||||
$return = true;
|
||||
$kto = new konto();
|
||||
//$buchung->betrag*(-1);
|
||||
$buchung->betrag = $kto->getDifferenz($buchungsnr);
|
||||
$buchung->buchungsdatum = $gegenbuchungsdatum;
|
||||
$buchung->mahnspanne = '0';
|
||||
$buchung->buchungsnr_verweis = $buchung->buchungsnr;
|
||||
$buchung->new = true;
|
||||
$buchung->insertamum = date('Y-m-d H:i:s');
|
||||
$buchung->insertvon = $user;
|
||||
$buchung->anmerkung = '';
|
||||
|
||||
if($buchung->save())
|
||||
{
|
||||
//$data = $buchung->buchungsnr;
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg .= "\n".'Fehler beim Speichern:'.$buchung->errormsg;
|
||||
$errormsg .= "\n".'Buchung wurde bereits Übertragen und darf nicht geändert werden';
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -2088,14 +2186,32 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
if($buchung->delete($_POST['buchungsnr']))
|
||||
$isAllowedToChange = isBuchungAllowedToChange($buchung);
|
||||
if($isAllowedToChange
|
||||
|| $rechte->isBerechtigt('student/zahlungAdmin',$buchung->studiengang_kz,'suid')
|
||||
)
|
||||
{
|
||||
$return = true;
|
||||
if(!$isAllowedToChange)
|
||||
{
|
||||
// Buchung aus SAP Zwischentabelle loeschen
|
||||
deleteFromSAP($buchung);
|
||||
}
|
||||
|
||||
if($buchung->delete($_POST['buchungsnr']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $buchung->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $buchung->errormsg;
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Diese Buchung darf nicht gelöscht werden da diese bereits übertragen wurde';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2495,7 +2611,7 @@ if(!$error)
|
||||
$_POST['nummer']=$bm->transform_kartennummer($_POST['nummer']);
|
||||
|
||||
//Das speichern von Zutrittskarten ohne Nummern verhindern
|
||||
if($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer']=='')
|
||||
if($_POST['betriebsmitteltyp']=='Zutrittskarte' && ($_POST['nummer']=='' && $_POST['nummer2']==''))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
@@ -2503,14 +2619,23 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($_POST['betriebsmitteltyp']=='Zutrittskarte' && $_POST['nummer'] == '')
|
||||
{
|
||||
$resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],null, $_POST['nummer2']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$resultBM = $bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']);
|
||||
}
|
||||
|
||||
//Nachschauen ob dieses Betriebsmittel schon existiert
|
||||
if($bm->getBetriebsmittel($_POST['betriebsmitteltyp'],$_POST['nummer']))
|
||||
if($resultBM)
|
||||
{
|
||||
if(count($bm->result)>0)
|
||||
{
|
||||
//Wenn die Nummer gleich bleibt dann die alte ID verwenden da es
|
||||
//unterschiedliche Schluessel gibt die die gleiche nummer haben ?!?
|
||||
if($_POST['nummer']==$_POST['nummerold'])
|
||||
if($_POST['nummer'] != '' && $_POST['nummer'] == $_POST['nummerold'])
|
||||
{
|
||||
$betriebsmittel_id = $_POST['betriebsmittel_id'];
|
||||
}
|
||||
@@ -3077,7 +3202,7 @@ if(!$error)
|
||||
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $return == true && $noten->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note);
|
||||
NotePruefungAnlegen($studiensemester_kurzbz, $student_uid, $lehrveranstaltung_id, $noten->note, $noten->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3205,7 +3330,7 @@ if(!$error)
|
||||
{
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note);
|
||||
NotePruefungAnlegen($zeugnisnote->studiensemester_kurzbz, $zeugnisnote->student_uid, $zeugnisnote->lehrveranstaltung_id, $zeugnisnote->note, $zeugnisnote->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3374,7 +3499,7 @@ if(!$error)
|
||||
{
|
||||
if(defined('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN') && FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN && $zeugnisnote->new == true)
|
||||
{
|
||||
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note);
|
||||
NotePruefungAnlegen($semester_aktuell, $uid, $_POST['lehrveranstaltung_id'], $zeugnisnote->note, $zeugnisnote->punkte);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3776,6 +3901,9 @@ if(!$error)
|
||||
$pruefung->pruefer2 = $_POST['pruefer2'];
|
||||
$pruefung->pruefer3 = $_POST['pruefer3'];
|
||||
$pruefung->abschlussbeurteilung_kurzbz = $_POST['abschlussbeurteilung_kurzbz'];
|
||||
if(isset($_POST['pruefungsantritt_kurzbz']))
|
||||
$pruefung->pruefungsantritt_kurzbz = $_POST['pruefungsantritt_kurzbz'];
|
||||
|
||||
$pruefung->note = $_POST['notekommpruef'];
|
||||
$pruefung->akadgrad_id = $_POST['akadgrad_id'];
|
||||
$pruefung->pruefungstyp_kurzbz = $_POST['pruefungstyp_kurzbz'];
|
||||
@@ -3815,10 +3943,25 @@ if(!$error)
|
||||
if(isset($_POST['abschlusspruefung_id']) && is_numeric($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$pruefung = new abschlusspruefung();
|
||||
|
||||
if($pruefung->delete($_POST['abschlusspruefung_id']))
|
||||
if($pruefung->load($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$return = true;
|
||||
if ($pruefung->freigabedatum == '')
|
||||
{
|
||||
if($pruefung->delete($_POST['abschlusspruefung_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = $pruefung->errormsg;
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'Löschen ist nicht möglich da bereits ein freigegebenes Protokoll vorhanden ist';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -163,6 +163,7 @@ function StudentAbschlusspruefungDetailDisableFields(val)
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer2').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer3').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-akadgrad').disabled=val;
|
||||
document.getElementById('student-abschlusspruefung-menulist-typ').disabled=val;
|
||||
@@ -186,6 +187,7 @@ function StudentAbschlusspruefungResetFields()
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer2').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefer3').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value='';
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value='';
|
||||
//document.getElementById('student-abschlusspruefung-menulist-akadgrad').value='';
|
||||
//document.getElementById('student-abschlusspruefung-menulist-typ').value='Bachelor';
|
||||
@@ -342,6 +344,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
pruefer3 = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3" ));
|
||||
pruefer3_nachname = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefer3_nachname" ));
|
||||
abschlussbeurteilung_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#abschlussbeurteilung_kurzbz" ));
|
||||
pruefungsantritt_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefungsantritt_kurzbz" ));
|
||||
notekommpruef = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#notekommpruef" ));
|
||||
akadgrad_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#akadgrad_id" ));
|
||||
datum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#datum" ));
|
||||
@@ -349,6 +352,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
sponsion = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#sponsion" ));
|
||||
pruefungstyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefungstyp_kurzbz" ));
|
||||
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
||||
protokoll = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#protokoll" ));
|
||||
|
||||
stg_kz = studiengang_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
||||
|
||||
@@ -395,6 +399,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer2', pruefer2);
|
||||
MenulistSelectItemOnValue('student-abschlusspruefung-menulist-pruefer3', pruefer3);
|
||||
document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value=abschlussbeurteilung_kurzbz;
|
||||
document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value=pruefungsantritt_kurzbz;
|
||||
document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value=notekommpruef;
|
||||
document.getElementById('student-abschlusspruefung-menulist-akadgrad').value=akadgrad_id;
|
||||
document.getElementById('student-abschlusspruefung-datum-datum').value=datum;
|
||||
@@ -406,6 +411,7 @@ function StudentAbschlusspruefungAuswahl()
|
||||
document.getElementById('student-abschlusspruefung-textbox-anmerkung').value=anmerkung;
|
||||
document.getElementById('student-abschlusspruefung-textbox-abschlusspruefung_id').value=abschlusspruefung_id;
|
||||
document.getElementById('student-abschlusspruefung-checkbox-neu').checked=false;
|
||||
document.getElementById('student-abschlusspruefung-textbox-protokoll').value=protokoll;
|
||||
|
||||
StudentAbschlusspruefungTypChange();
|
||||
}
|
||||
@@ -424,6 +430,7 @@ function StudentAbschlusspruefungSpeichern()
|
||||
var pruefer2 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer2');
|
||||
var pruefer3 = MenulistGetSelectedValue('student-abschlusspruefung-menulist-pruefer3');
|
||||
var abschlussbeurteilung_kurzbz = document.getElementById('student-abschlusspruefung-menulist-abschlussbeurteilung').value;
|
||||
var pruefungsantritt_kurzbz = document.getElementById('student-abschlusspruefung-menulist-pruefungsantritt').value;
|
||||
var notekommpruef = document.getElementById('student-abschlusspruefung-menulist-notekommpruef').value;
|
||||
var akadgrad_id = document.getElementById('student-abschlusspruefung-menulist-akadgrad').value;
|
||||
var datum = document.getElementById('student-abschlusspruefung-datum-datum').value;
|
||||
@@ -482,6 +489,7 @@ function StudentAbschlusspruefungSpeichern()
|
||||
req.add('pruefer2', pruefer2);
|
||||
req.add('pruefer3', pruefer3);
|
||||
req.add('abschlussbeurteilung_kurzbz', abschlussbeurteilung_kurzbz);
|
||||
req.add('pruefungsantritt_kurzbz', pruefungsantritt_kurzbz);
|
||||
req.add('notekommpruef', notekommpruef);
|
||||
req.add('akadgrad_id', akadgrad_id);
|
||||
req.add('datum', ConvertDateToISO(datum));
|
||||
|
||||
@@ -97,6 +97,14 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-freigabedatum" label="Freigabe" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#freigabedatum_iso" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-pruefungsantritt" label="Prüfungsantritt" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefungsantritt_bezeichnung" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="student-abschlusspruefung-treecol-sponsion" label="Sponsion" flex="1" persist="hidden, width" hidden="false"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#sponsion_iso" onclick="StudentAbschlusspruefungTreeSort()"/>
|
||||
@@ -132,6 +140,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlussbeurteilung_kurzbz" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#datum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#freigabedatum" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefungsantritt_bezeichnung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#sponsion" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#anmerkung" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlusspruefung_id" />
|
||||
@@ -165,12 +175,13 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<rows>
|
||||
<row>
|
||||
<label value="Typ" control="student-abschlusspruefung-menulist-typ" />
|
||||
<menulist id="student-abschlusspruefung-menulist-typ"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/pruefungstyp.rdf.php?abschluss=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/pruefungstyp/liste"
|
||||
oncommand="StudentAbschlusspruefungTypChange()"
|
||||
>
|
||||
<menulist
|
||||
id="student-abschlusspruefung-menulist-typ"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/pruefungstyp.rdf.php?abschluss=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/pruefungstyp/liste"
|
||||
oncommand="StudentAbschlusspruefungTypChange()"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/pruefungstyp/rdf#pruefungstyp_kurzbz"
|
||||
@@ -178,8 +189,9 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
<label value="Note komm. Pruefung" control="student-abschlusspruefung-menulist-notekommpruef" />
|
||||
</menulist>
|
||||
|
||||
<label value="Note komm. Pruefung" control="student-abschlusspruefung-menulist-notekommpruef" />
|
||||
<menulist id="student-abschlusspruefung-menulist-notekommpruef"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT;?>rdf/note.rdf.php?optional=true" flex="1"
|
||||
@@ -194,6 +206,23 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Prüfungsantritt" control="student-abschlusspruefung-menulist-pruefungsantritt" />
|
||||
<menulist
|
||||
id="student-abschlusspruefung-menulist-pruefungsantritt"
|
||||
disabled="true"
|
||||
datasources="<?php echo APP_ROOT; ?>rdf/abschlusspruefung_antritt.rdf.php?optional=true" flex="1"
|
||||
ref="http://www.technikum-wien.at/abschlusspruefung_antritt/liste"
|
||||
>
|
||||
<template>
|
||||
<menupopup>
|
||||
<menuitem value="rdf:http://www.technikum-wien.at/abschlusspruefung_antritt/rdf#pruefungsantritt_kurzbz"
|
||||
label="rdf:http://www.technikum-wien.at/abschlusspruefung_antritt/rdf#bezeichnung"
|
||||
uri="rdf:*"/>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</row>
|
||||
<row>
|
||||
<label value="Vorsitz" control="student-abschlusspruefung-menulist-vorsitz" />
|
||||
<menulist id="student-abschlusspruefung-menulist-vorsitz"
|
||||
@@ -310,6 +339,8 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<vbox>
|
||||
<box class="Datum" id="student-abschlusspruefung-datum-sponsion" disabled="true"/>
|
||||
</vbox>
|
||||
<label value="Protokoll" control="student-abschlusspruefung-textbox-protokoll" />
|
||||
<textbox id="student-abschlusspruefung-textbox-protokoll" multiline="true" rows="5" readonly="true"/>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
||||
@@ -195,13 +195,16 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</tree>
|
||||
</vbox>
|
||||
<vbox flex="1">
|
||||
<?php
|
||||
$is_hidden = (defined('ZAHLUNGSBESTAETIGUNG_ANZEIGEN') && ZAHLUNGSBESTAETIGUNG_ANZEIGEN) ? 'false' : 'true';
|
||||
?>
|
||||
<hbox>
|
||||
<button id="student-konto-button-neu" label="Neu" oncommand="StudentKontoNeu();" disabled="true"/>
|
||||
<button id="student-konto-button-gegenbuchung" label="Gegenbuchung" oncommand="StudentKontoGegenbuchung();" disabled="true"/>
|
||||
<box class="Datum" id="student-konto-textbox-gegenbuchungsdatum" disabled="true" tooltiptext="Optionales Datum der Gegenbuchung"/>
|
||||
<button id="student-konto-button-loeschen" label="Loeschen" oncommand="StudentKontoDelete();" disabled="true"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="student-konto-button-zahlungsbestaetigung" label="Zahlungsbestaetigung drucken" oncommand="StudentKontoZahlungsbestaetigung();" disabled="true"/>
|
||||
<button id="student-konto-button-zahlungsbestaetigung" label="Zahlungsbestaetigung drucken" oncommand="StudentKontoZahlungsbestaetigung();" disabled="true" hidden="<?php echo $is_hidden?>"/>
|
||||
</hbox>
|
||||
<vbox hidden="true">
|
||||
<label value="Buchungsnr" control="student-konto-textbox-buchungsnr"/>
|
||||
|
||||
@@ -3058,6 +3058,11 @@ function StudentAkteDel()
|
||||
}
|
||||
|
||||
studiengang_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
|
||||
//Wenn es kein Student ist, Studiengangs_kz vom PreStudenten ermitteln
|
||||
if (studiengang_kz == '')
|
||||
{
|
||||
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
||||
}
|
||||
//Abfrage ob wirklich geloescht werden soll
|
||||
if (confirm('Dokument wirklich entfernen?'))
|
||||
{
|
||||
@@ -3200,6 +3205,11 @@ function StudentZeugnisDokumentArchivieren()
|
||||
alert('Dieses Dokument kann nur für Studierende erstellt werden. Mindestens eine ausgewählte Person hat keine UID');
|
||||
continue;
|
||||
}
|
||||
if(vorlage == 'Ausbildungsver' || vorlage == 'AusbVerEng')
|
||||
{
|
||||
// Ausbildungsvertrag nimmt nur PrestudentID
|
||||
uid = '';
|
||||
}
|
||||
|
||||
var req = new phpRequest(url,'','');
|
||||
req.add('xsl', vorlage);
|
||||
|
||||
@@ -267,7 +267,7 @@ foreach ($uid_arr as $uid)
|
||||
'titelpost' => $bn->titelpost,
|
||||
'studiengang' => $studiengang->kurzbzlang,
|
||||
'gebdatum' => $datum_obj->formatDatum($bn->gebdatum, 'd.m.Y'),
|
||||
'matrikelnummer' => $student->matrikelnr,
|
||||
'matrikelnummer' => rtrim($student->matrikelnr),
|
||||
'matr_nr' => $person->matr_nr,
|
||||
'ausstellungsdatum' => date('M.Y'),
|
||||
'gueltigbis' => $datum_obj->formatDatum($gueltigbis, 'd.m.Y')
|
||||
|
||||
@@ -50,6 +50,11 @@ class abschlusspruefung extends basis_db
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $ext_id;
|
||||
public $protokoll;
|
||||
public $endezeit;
|
||||
public $pruefungsantritt_kurzbz;
|
||||
public $freigabedatum;
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -108,6 +113,10 @@ class abschlusspruefung extends basis_db
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->protokoll = $row->protokoll;
|
||||
$this->endezeit = $row->endezeit;
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->freigabedatum = $row->freigabedatum;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -195,7 +204,7 @@ class abschlusspruefung extends basis_db
|
||||
$qry = "BEGIN;INSERT INTO lehre.tbl_abschlusspruefung (student_uid, vorsitz, pruefer1,
|
||||
pruefer2, pruefer3, abschlussbeurteilung_kurzbz, akadgrad_id, datum, uhrzeit, sponsion,
|
||||
pruefungstyp_kurzbz, anmerkung, updateamum, updatevon, insertamum, insertvon,
|
||||
note) VALUES (".
|
||||
note, protokoll, endezeit, pruefungsantritt_kurzbz, freigabedatum) VALUES (".
|
||||
$this->db_add_param($this->student_uid).', '.
|
||||
$this->db_add_param($this->vorsitz).', '.
|
||||
$this->db_add_param($this->pruefer1).', '.
|
||||
@@ -212,7 +221,11 @@ class abschlusspruefung extends basis_db
|
||||
$this->db_add_param($this->updatevon).', '.
|
||||
$this->db_add_param($this->insertamum).', '.
|
||||
$this->db_add_param($this->insertvon).', '.
|
||||
$this->db_add_param($this->note, FHC_INTEGER).');';
|
||||
$this->db_add_param($this->note, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->protokoll).','.
|
||||
$this->db_add_param($this->endezeit).','.
|
||||
$this->db_add_param($this->pruefungsantritt_kurzbz).','.
|
||||
$this->db_add_param($this->freigabedatum).');';
|
||||
|
||||
}
|
||||
else
|
||||
@@ -233,7 +246,11 @@ class abschlusspruefung extends basis_db
|
||||
" pruefungstyp_kurzbz=".$this->db_add_param($this->pruefungstyp_kurzbz).",".
|
||||
" anmerkung=".$this->db_add_param($this->anmerkung).",".
|
||||
" updateamum=".$this->db_add_param($this->updateamum).",".
|
||||
" updatevon=".$this->db_add_param($this->updatevon).
|
||||
" updatevon=".$this->db_add_param($this->updatevon).",".
|
||||
" protokoll=".$this->db_add_param($this->protokoll).",".
|
||||
" endezeit=".$this->db_add_param($this->endezeit).",".
|
||||
" pruefungsantritt_kurzbz=".$this->db_add_param($this->pruefungsantritt_kurzbz).",".
|
||||
" freigabedatum=".$this->db_add_param($this->freigabedatum)." ".
|
||||
" WHERE abschlusspruefung_id=".$this->db_add_param($this->abschlusspruefung_id, FHC_INTEGER, false);
|
||||
}
|
||||
|
||||
@@ -315,6 +332,10 @@ class abschlusspruefung extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->protokoll = $row->protokoll;
|
||||
$obj->endezeit = $row->endezeit;
|
||||
$obj->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$obj->freigabedatum = $row->freigabedatum;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -366,6 +387,11 @@ class abschlusspruefung extends basis_db
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->ext_id = $row->ext_id;
|
||||
$this->protokoll = $row->protokoll;
|
||||
$this->endezeit = $row->endezeit;
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->freigabedatum = $row->freigabedatum;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
<?php
|
||||
/* Copyright (C) 2020 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
*/
|
||||
/**
|
||||
* Klasse zur Verwaltung der Abschlusspruefungsantritte
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class abschlusspruefung_antritt extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $pruefungsantritt_kurzbz;
|
||||
public $bezeichnung;
|
||||
public $bezeichnung_english;
|
||||
public $sort;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param $pruefungsantritt_kurzbz kurzbz des zu ladenden Datensatzes
|
||||
*/
|
||||
public function __construct($pruefungsantritt_kurzbz=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($pruefungsantritt_kurzbz))
|
||||
$this->load($pruefungsantritt_kurzbz);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param $pruefungsantritt_kurzbz Kurzbz des zu ladenden Datensatzes
|
||||
*/
|
||||
public function load($pruefungsantritt_kurzbz)
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung_antritt
|
||||
WHERE pruefungsantritt_kurzbz=".$this->db_add_param($pruefungsantritt_kurzbz).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$this->bezeichnung = $row->bezeichnung;
|
||||
$this->bezeichnung_english = $row->bezeichnung_english;
|
||||
$this->sort = $row->sort;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Abschlussprüfungsantritt
|
||||
* @return boolean true wenn erfolgreich, false im Fehlerfall
|
||||
*/
|
||||
public function getAll()
|
||||
{
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
lehre.tbl_abschlusspruefung_antritt
|
||||
ORDER BY sort";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new abschlusspruefung_antritt();
|
||||
$obj->pruefungsantritt_kurzbz = $row->pruefungsantritt_kurzbz;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->bezeichnung_english = $row->bezeichnung_english;
|
||||
$obj->sort = $row->sort;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -43,6 +43,7 @@ class adresse extends basis_db
|
||||
public $typ; // string
|
||||
public $heimatadresse; // boolean
|
||||
public $zustelladresse; // boolean
|
||||
public $coname; // string
|
||||
public $firma_id; // integer
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // string
|
||||
@@ -51,6 +52,7 @@ class adresse extends basis_db
|
||||
public $ext_id; // integer
|
||||
public $rechnungsadresse=false; // boolean
|
||||
public $anmerkung; // string
|
||||
public $co_name;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -99,6 +101,7 @@ class adresse extends basis_db
|
||||
$this->person_id = $row->person_id;
|
||||
$this->plz = $row->plz;
|
||||
$this->strasse = $row->strasse;
|
||||
$this->co_name = $row->co_name;
|
||||
$this->typ = $row->typ;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
@@ -161,6 +164,7 @@ class adresse extends basis_db
|
||||
$adr_obj->insertamum = $row->insertamum;
|
||||
$adr_obj->insertvon = $row->insertvon;
|
||||
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
|
||||
$adr_obj->co_name = $row->co_name;
|
||||
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$adr_obj->anmerkung = $row->anmerkung;
|
||||
|
||||
@@ -217,6 +221,7 @@ class adresse extends basis_db
|
||||
$adr_obj->insertamum = $row->insertamum;
|
||||
$adr_obj->insertvon = $row->insertvon;
|
||||
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
|
||||
$adr_obj->co_name = $row->co_name;
|
||||
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$adr_obj->anmerkung = $row->anmerkung;
|
||||
|
||||
@@ -269,6 +274,12 @@ class adresse extends basis_db
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($this->co_name)>64)
|
||||
{
|
||||
$this->errormsg = 'Gemeinde darf nicht länger als 64 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
@@ -289,7 +300,7 @@ class adresse extends basis_db
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
$qry='BEGIN;INSERT INTO public.tbl_adresse (person_id, name, strasse, plz, typ, ort, nation, insertamum, insertvon,
|
||||
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon, rechnungsadresse, anmerkung) VALUES('.
|
||||
gemeinde, heimatadresse, zustelladresse, firma_id, updateamum, updatevon, rechnungsadresse, anmerkung, co_name) VALUES('.
|
||||
$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->name).', '.
|
||||
$this->db_add_param($this->strasse).', '.
|
||||
@@ -304,7 +315,8 @@ class adresse extends basis_db
|
||||
$this->db_add_param($this->firma_id, FHC_INTEGER).', now(), '.
|
||||
$this->db_add_param($this->updatevon).','.
|
||||
$this->db_add_param($this->rechnungsadresse, FHC_BOOLEAN, false).','.
|
||||
$this->db_add_param($this->anmerkung).');';
|
||||
$this->db_add_param($this->anmerkung).','.
|
||||
$this->db_add_param($this->co_name).');';
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -314,6 +326,7 @@ class adresse extends basis_db
|
||||
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry='UPDATE public.tbl_adresse SET'.
|
||||
' person_id='.$this->db_add_param($this->person_id, FHC_INTEGER).', '.
|
||||
' name='.$this->db_add_param($this->name).', '.
|
||||
@@ -329,7 +342,8 @@ class adresse extends basis_db
|
||||
' heimatadresse='.$this->db_add_param($this->heimatadresse, FHC_BOOLEAN, false).', '.
|
||||
' zustelladresse='.$this->db_add_param($this->zustelladresse, FHC_BOOLEAN, false).', '.
|
||||
' rechnungsadresse='.$this->db_add_param($this->rechnungsadresse, FHC_BOOLEAN, false).','.
|
||||
' anmerkung='.$this->db_add_param($this->anmerkung).' '.
|
||||
' anmerkung='.$this->db_add_param($this->anmerkung).', '.
|
||||
' co_name='.$this->db_add_param($this->co_name).' '.
|
||||
'WHERE adresse_id='.$this->db_add_param($this->adresse_id, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
@@ -442,6 +456,7 @@ class adresse extends basis_db
|
||||
$this->firma_id = $row->firma_id;
|
||||
$this->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$this->anmerkung = $row->anmerkung;
|
||||
$this->co_name = $row->co_name;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -498,6 +513,7 @@ class adresse extends basis_db
|
||||
$adr_obj->zustelladresse = $this->db_parse_bool($row->zustelladresse);
|
||||
$adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse);
|
||||
$adr_obj->anmerkung = $row->anmerkung;
|
||||
$adr_obj->co_name = $row->co_name;
|
||||
|
||||
$this->result[] = $adr_obj;
|
||||
}
|
||||
|
||||
@@ -534,7 +534,7 @@ class akte extends basis_db
|
||||
if(!is_null($stud_selfservice))
|
||||
$qry.=" AND stud_selfservice=".($stud_selfservice?'true':'false');
|
||||
|
||||
$qry.=" ORDER BY erstelltam";
|
||||
$qry.=" ORDER BY erstelltam DESC";
|
||||
|
||||
$this->errormsg = $qry;
|
||||
|
||||
|
||||
@@ -407,7 +407,7 @@ class betriebsmittel extends basis_db
|
||||
* @param $nummer
|
||||
* @return boolean
|
||||
*/
|
||||
public function getBetriebsmittel($betriebsmitteltyp, $nummer)
|
||||
public function getBetriebsmittel($betriebsmitteltyp, $nummer, $nummer2 = null)
|
||||
{
|
||||
// Initialisieren
|
||||
$this->result=array();
|
||||
@@ -415,7 +415,16 @@ class betriebsmittel extends basis_db
|
||||
|
||||
$qry= 'SELECT * ';
|
||||
$qry.= ' FROM wawi.tbl_betriebsmittel ';
|
||||
$qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp)." AND nummer=".$this->db_add_param($nummer);
|
||||
$qry.= " WHERE betriebsmitteltyp=".$this->db_add_param($betriebsmitteltyp);
|
||||
if (is_null($nummer2))
|
||||
{
|
||||
$qry.= " AND nummer=".$this->db_add_param($nummer);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry.= " AND nummer2=".$this->db_add_param($nummer2);
|
||||
}
|
||||
|
||||
$qry.= ' ORDER BY updateamum DESC';
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -1222,7 +1231,7 @@ class betriebsmittel extends basis_db
|
||||
{
|
||||
$this->result='';
|
||||
$this->errormsg = '';
|
||||
|
||||
|
||||
$qry ="SELECT * FROM wawi.tbl_betriebsmittelperson WHERE uid =".$this->db_add_param($uid, FHC_STRING)."
|
||||
AND betriebsmittel_id IN(
|
||||
SELECT betriebsmittel_id
|
||||
@@ -1252,7 +1261,7 @@ class betriebsmittel extends basis_db
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -368,6 +368,47 @@ class betriebsmittel_betriebsmittelstatus extends basis_db
|
||||
$this->errormsg = 'Fehler beim Entfernen des Betriebsmittel Betriebsmittelstatus-Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den letzten Stauts eines Betriebsmittels
|
||||
* @param $betriebsmittel_id
|
||||
* @return betriebsmittelstatus_kurzbz wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load_last_status_by_betriebsmittel_id($betriebsmittel_id)
|
||||
{
|
||||
$this->result=array();
|
||||
$this->errormsg='';
|
||||
if ($betriebsmittel_id)
|
||||
$this->betriebsmittel_id=$betriebsmittel_id;
|
||||
|
||||
if(!is_numeric($this->betriebsmittel_id))
|
||||
{
|
||||
$this->errormsg = 'Betriebsmittel_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry=' SELECT * FROM wawi.tbl_betriebsmittel_betriebsmittelstatus
|
||||
WHERE betriebsmittel_id='.$this->db_add_param(trim($this->betriebsmittel_id), FHC_INTEGER).'
|
||||
ORDER BY betriebsmittelbetriebsmittelstatus_id DESC LIMIT 1';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
return $row->betriebsmittelstatus_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Es wurde kein Eintrag gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -595,7 +595,7 @@ class betriebsmittelperson extends basis_db
|
||||
FROM
|
||||
wawi.tbl_betriebsmittel
|
||||
JOIN wawi.tbl_betriebsmittelperson USING(betriebsmittel_id)
|
||||
WHERE tbl_betriebsmittel.nummer='.$this->db_add_param($nummer).'
|
||||
WHERE tbl_betriebsmittel.nummer2='.$this->db_add_param($nummer).'
|
||||
AND tbl_betriebsmittel.betriebsmitteltyp=\'Zutrittskarte\'
|
||||
AND tbl_betriebsmittelperson.person_id='.$this->db_add_param($person_id);
|
||||
|
||||
|
||||
@@ -575,5 +575,11 @@ class dokument_export
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function setXMLTag_archivierbar()
|
||||
{
|
||||
$archivierbar = $this->xml_data->createElement("archivierbar", "true");
|
||||
$this->xml_data->documentElement->appendChild($archivierbar);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+198
-17
@@ -41,7 +41,7 @@ class dvb extends basis_db
|
||||
const DVB_URL_WEBSERVICE_MATRIKELNUMMER = DVB_PORTAL.'/rws/0.2/simpleStudentByMatrikelnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/rws/0.5/matrikelreservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/rws/0.5/matrikelmeldung.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.2/pruefeBpk.xml';
|
||||
const DVB_URL_WEBSERVICE_BPK = DVB_PORTAL.'/rws/0.5/pruefebpk.xml';
|
||||
|
||||
public $authentication;
|
||||
private $username;
|
||||
@@ -188,6 +188,7 @@ class dvb extends basis_db
|
||||
AND tbl_benutzer.aktiv
|
||||
AND tbl_prestudentstatus.status_kurzbz in('Student','Incoming')
|
||||
AND tbl_prestudent.bismelden
|
||||
AND tbl_prestudent.studiengang_kz<10000
|
||||
ORDER BY tbl_prestudentstatus.datum desc LIMIT 1
|
||||
";
|
||||
|
||||
@@ -394,10 +395,12 @@ class dvb extends basis_db
|
||||
|
||||
$this->debug('getMatrikelnrBySVNR');
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
$curl = curl_init();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_SVNR;
|
||||
$url .= '?sozialVersicherungsNummer='.curl_escape($curl, $svnr);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -507,9 +510,10 @@ class dvb extends basis_db
|
||||
|
||||
$this->debug('getMatrikelnrByErsatzkennzeichen');
|
||||
$curl = curl_init();
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
$url = self::DVB_URL_WEBSERVICE_ERSATZKZ;
|
||||
$url .= '?ersatzKennzeichen='.curl_escape($curl, $ersatzkennzeichen);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1009,6 +1013,134 @@ class dvb extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
public function setMatrikelnummerErnp($bildungseinrichtung, $person, $reisepass)
|
||||
{
|
||||
$this->debug('ernpMeldung');
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
if ($this->tokenIsExpired())
|
||||
{
|
||||
$result = $this->authenticate();
|
||||
if (ErrorHandler::isError($result))
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
|
||||
$data = '<?xml version="1.0" encoding="UTF-8"?>';
|
||||
$data .= '<matrikelnummernmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<uuid>'.$uuid.'</uuid>';
|
||||
|
||||
$data .= $this->getPersonmeldungXml($bildungseinrichtung, $person);
|
||||
|
||||
$data .= '
|
||||
<ernpmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<ausgabedatum>'.$reisepass->ausgabedatum.'</ausgabedatum>
|
||||
<ausstellBehoerde>'.$reisepass->ausstellBehoerde.'</ausstellBehoerde>
|
||||
<ausstellland>'.$reisepass->ausstellland.'</ausstellland>
|
||||
<dokumentnr>'.$reisepass->dokumentnr.'</dokumentnr>
|
||||
<dokumenttyp>'.$reisepass->dokumenttyp.'</dokumenttyp>
|
||||
</ernpmeldung>
|
||||
';
|
||||
$data .= '</matrikelnummernmeldung>';
|
||||
|
||||
$curl = curl_init();
|
||||
$url = self::DVB_URL_WEBSERVICE_MELDUNG;
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_POST, true);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
|
||||
|
||||
$headers = array(
|
||||
'Accept: application/xml',
|
||||
'Content-Type: application/xml',
|
||||
'Authorization: Bearer '.$this->authentication->access_token,
|
||||
'User-Agent: FHComplete',
|
||||
'Connection: Keep-Alive',
|
||||
'Expect:'
|
||||
);
|
||||
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
|
||||
|
||||
$this->debug('Request URL:'.$url);
|
||||
$this->debug('Request Data:'.$data);
|
||||
$response = curl_exec($curl);
|
||||
$curl_info = curl_getinfo($curl);
|
||||
curl_close($curl);
|
||||
|
||||
$this->debug('Response: '.$curl_info['http_code']);
|
||||
|
||||
$this->debug('Response: '.print_r($response, true));
|
||||
|
||||
if ($curl_info['http_code'] == '200')
|
||||
{
|
||||
$dom = new DOMDocument();
|
||||
$dom->loadXML($response);
|
||||
$domnodes_fehlerliste = $dom->getElementsByTagName('fehlerliste');
|
||||
|
||||
$fehleranzahl = $domnodes_fehlerliste->item(0)->getAttribute('fehleranzahl');
|
||||
if ($fehleranzahl === '0')
|
||||
{
|
||||
// Keine Fehler -> Meldung erfolgreich
|
||||
$retval = new stdClass();
|
||||
$retval->matrikelnummer = $person->matrikelnummer;
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Es gab '.$fehleranzahl.' Fehler:';
|
||||
$domnodes_fehler = $dom->getElementsByTagName('fehler');
|
||||
foreach ($domnodes_fehler as $row)
|
||||
{
|
||||
$fehlernummer = $row->getElementsByTagName('fehlernummer');
|
||||
|
||||
/**
|
||||
* Bei Fehlernummer ED10065 wurde die Matrikelnummer korrekt gesetzt.
|
||||
* Das BPK wurde vom Datenverbund versucht zu ermitteln und wird in der Fehlermeldung
|
||||
* zurückgeliefert. Dieses sollte dann gespeichert werden.
|
||||
* Es muss eine erneute Vergabemeldung mit korrigierten Daten vorgenommen werden um die Daten im
|
||||
* DVB zu aktualisieren
|
||||
* Dies gilt nur, wenn ED10065 alleine geliefert wird und keine sonstigen Fehler auftreten
|
||||
*/
|
||||
if ($fehlernummer->length == 1 && $fehlernummer->item(0)->textContent == 'ED10065')
|
||||
{
|
||||
$this->debug('ED10065 Response');
|
||||
$domnodes_feldinhalt = $row->getElementsByTagName('feldinhalt');
|
||||
if ($domnodes_feldinhalt->length > 0 && $domnodes_feldinhalt->item(0)->textContent!='')
|
||||
{
|
||||
$bpk = $domnodes_feldinhalt->item(0)->textContent;
|
||||
$retval = new stdClass();
|
||||
$retval->matrikelnummer = $person->matrikelnummer;
|
||||
if ($bpk != 'keine bPK gefunden')
|
||||
$retval->bpk = $bpk;
|
||||
|
||||
$this->errormsg .= 'ED10065 Response';
|
||||
$this->errormsg .= 'Eine Personendatenprüfung ist erforderlich';
|
||||
$this->errormsg .= 'Danach muss eine erneute Vergabemeldung mit dieser Matrikelnummer erfolgen.';
|
||||
$this->debug('BPK:'.$bpk);
|
||||
$this->debug('MatrNr:'.$person->matrikelnummer);
|
||||
|
||||
return ErrorHandler::success($retval);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$datenfeld = $row->getElementsByTagName('datenfeld');
|
||||
$fehlertext = $row->getElementsByTagName('fehlertext');
|
||||
$this->errormsg .= ' Datenfeld:'.$datenfeld->item(0)->textContent;
|
||||
$this->errormsg .= ' Fehlertext:'.$fehlertext->item(0)->textContent;
|
||||
}
|
||||
}
|
||||
return ErrorHandler::error();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg = 'Request Failed with HTTP Code:'.$curl_info['http_code'].' and Response:'.$response;
|
||||
return ErrorHandler::error($errormsg);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get BPK from Person
|
||||
* @param string $person_id ID of the Person.
|
||||
@@ -1136,11 +1268,14 @@ class dvb extends basis_db
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_BPK;
|
||||
$url .= '?geburtsDatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '?geburtsdatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&vorname='.curl_escape($curl, $vorname);
|
||||
$url .= '&nachname='.curl_escape($curl, $nachname);
|
||||
$url .= '&geschlecht='.curl_escape($curl, $geschlecht);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
if (!is_null($plz))
|
||||
$url .= '&plz='.curl_escape($curl, $plz);
|
||||
@@ -1175,19 +1310,22 @@ class dvb extends basis_db
|
||||
if ($curl_info['http_code'] == '200')
|
||||
{
|
||||
/* Example Response:
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<simpleBpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<personenkennzeichen>1234567890ABCDEFGH=</personenkennzeichen>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<simpleBpkResponse xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<bpk>12345ABCDEFGHXXXXXXX=</bpk>
|
||||
<personInfo>
|
||||
<person>
|
||||
<vorname>Max</vorname>
|
||||
<nachname>Mustermann</nachname>
|
||||
<geschlecht>M</geschlecht>
|
||||
<gebdat>19901231</gebdat>
|
||||
</person>
|
||||
<adresse>
|
||||
<ort></ort>
|
||||
</adresse>
|
||||
<person>
|
||||
<vorname>Hans</vorname>
|
||||
<nachname>Huber</nachname>
|
||||
<geschlecht>M</geschlecht>
|
||||
<gebdat>1990-01-01</gebdat>
|
||||
</person>
|
||||
<adresse>
|
||||
<staat></staat>
|
||||
<plz>1100</plz>
|
||||
<ort></ort>
|
||||
<strasse></strasse>
|
||||
</adresse>
|
||||
</personInfo>
|
||||
</simpleBpkResponse>
|
||||
|
||||
@@ -1229,7 +1367,7 @@ class dvb extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
$domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'personenkennzeichen');
|
||||
$domnodes_bpk = $dom->getElementsByTagNameNS($namespace, 'bpk');
|
||||
if ($domnodes_bpk->length > 0)
|
||||
{
|
||||
$retval = new stdClass();
|
||||
@@ -1349,9 +1487,12 @@ class dvb extends basis_db
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $geburtsdatum);
|
||||
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_NACHNAME;
|
||||
$url .= '?nachName='.curl_escape($curl, $nachname);
|
||||
$url .= '&geburtsDatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1472,11 +1613,13 @@ class dvb extends basis_db
|
||||
$curl = curl_init();
|
||||
|
||||
$geburtsdatum = str_replace("-", "", $geburtsdatum);
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_NAME;
|
||||
$url .= '?nachName='.curl_escape($curl, $nachname);
|
||||
$url .= '&vorName='.curl_escape($curl, $vorname);
|
||||
$url .= '&geburtsDatum='.curl_escape($curl, $geburtsdatum);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1594,8 +1737,11 @@ class dvb extends basis_db
|
||||
|
||||
$curl = curl_init();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_MATRIKELNUMMER;
|
||||
$uuid = $this->getUUID();
|
||||
|
||||
$url = self::DVB_URL_WEBSERVICE_MATRIKELNUMMER;
|
||||
$url .= '?matrikelNummer='.curl_escape($curl, $matrikelnr);
|
||||
$url .= '&uuid='.curl_escape($curl, $uuid);
|
||||
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||||
@@ -1719,6 +1865,41 @@ class dvb extends basis_db
|
||||
$this->debug_output .= "\n".date('Y-m-d H:i:s').': '.$msg;
|
||||
}
|
||||
|
||||
private function getPersonmeldungXml($bildungseinrichtung, $person)
|
||||
{
|
||||
$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
|
||||
$data = '<personmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<be>'.$bildungseinrichtung.'</be>
|
||||
<gebdat>'.$gebdat.'</gebdat>
|
||||
<geschlecht>'.$person->geschlecht.'</geschlecht>
|
||||
<matrikelnummer>'.$person->matrikelnummer.'</matrikelnummer>';
|
||||
if (isset($person->matura) && $person->matura != '')
|
||||
$data .= '<matura>'.$person->matura.'</matura>';
|
||||
else
|
||||
$data .= '<matura>00000000</matura>';
|
||||
|
||||
$data .= '<nachname>'.$person->nachname.'</nachname>';
|
||||
|
||||
if (isset($person->plz) && $person->plz != '')
|
||||
$data .= '<plz>'.$person->plz.'</plz>';
|
||||
|
||||
$data .= '<staat>'.$person->staat.'</staat>';
|
||||
|
||||
if (isset($person->svnr) && $person->svnr != '')
|
||||
$data .= '<svnr>'.$person->svnr.'</svnr>';
|
||||
|
||||
$data .= '<vorname>'.$person->vorname.'</vorname>';
|
||||
|
||||
if (isset($person->writeonerror) && $person->writeonerror === true)
|
||||
$data .= '<writeOnError>J</writeOnError>';
|
||||
|
||||
$data .= '
|
||||
</personmeldung>';
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt einen Logeintrag
|
||||
* @param object $person Personen objekt.
|
||||
|
||||
@@ -1097,7 +1097,7 @@ class mitarbeiter extends benutzer
|
||||
* beschäftigten Untergebenen der Kind-OEs des Leiters zurückgegeben.
|
||||
* @return boolean
|
||||
*/
|
||||
public function getUntergebene($uid=null, $include_OE_childs = false)
|
||||
public function getUntergebene($uid=null, $include_OE_childs = false, $fixangestellte_only = true)
|
||||
{
|
||||
if (is_null($uid))
|
||||
$uid=$this->uid;
|
||||
@@ -1192,6 +1192,9 @@ class mitarbeiter extends benutzer
|
||||
JOIN
|
||||
public.tbl_benutzer
|
||||
USING (uid)
|
||||
JOIN
|
||||
public.tbl_mitarbeiter
|
||||
ON (uid = mitarbeiter_uid)
|
||||
WHERE ((funktion_kurzbz='oezuordnung' AND (false ";
|
||||
|
||||
if($oe!='')
|
||||
@@ -1205,7 +1208,10 @@ class mitarbeiter extends benutzer
|
||||
AND
|
||||
(tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())
|
||||
AND
|
||||
tbl_benutzer.aktiv = 'true';";
|
||||
tbl_benutzer.aktiv = 'true'";
|
||||
if ($fixangestellte_only)
|
||||
$qry .= " AND tbl_mitarbeiter.fixangestellt";
|
||||
$qry .= ";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -374,7 +374,7 @@ class person extends basis_db
|
||||
$this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//Pruefen ob das Geburtsdatum mit der SVNR uebereinstimmt.
|
||||
if ($this->svnr != '' && $this->gebdatum != '')
|
||||
{
|
||||
@@ -1018,4 +1018,33 @@ class person extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getFullNameFromBenutzer($uid)
|
||||
{
|
||||
$qry = "SELECT
|
||||
vorname, nachname
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE
|
||||
uid=".$this->db_add_param($uid, FHC_STRING);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
return (string)$row->vorname.' '.$row->nachname;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Keine Personendaten zu dieser UID gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden der Personendaten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,7 +590,7 @@ class pruefungCis extends basis_db
|
||||
* @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs
|
||||
* @return boolean true, wenn ok; false, im Fehlerfall
|
||||
*/
|
||||
public function getPruefungByLv($lehrveranstaltung_IDs)
|
||||
public function getPruefungByLv($lehrveranstaltung_IDs, $uid = null)
|
||||
{
|
||||
if(empty($lehrveranstaltung_IDs))
|
||||
{
|
||||
@@ -612,7 +612,24 @@ class pruefungCis extends basis_db
|
||||
$in = $lehrveranstaltung_IDs;
|
||||
}
|
||||
|
||||
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');';
|
||||
$qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.')';
|
||||
|
||||
if ($uid !== null)
|
||||
{
|
||||
// LVs entfernen wo schon eine positive Note für UID vorhanden ist
|
||||
$qry .= " AND lehrveranstaltung_id NOT IN (
|
||||
SELECT lehrveranstaltung_id
|
||||
FROM lehre.tbl_pruefung
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE student_uid = " . $this->db_add_param($uid) . "
|
||||
AND note NOT IN (5, 7, 9, 11, 13, 14)
|
||||
UNION
|
||||
SELECT lehrveranstaltung_id
|
||||
FROM lehre.tbl_zeugnisnote
|
||||
WHERE student_uid = " . $this->db_add_param($uid) . "
|
||||
AND note NOT IN (5, 7, 9, 11, 13, 14)
|
||||
);";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
|
||||
@@ -510,6 +510,15 @@ class zeitsperre extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
public function getVonDatum()
|
||||
{
|
||||
return $this->vondatum;
|
||||
}
|
||||
|
||||
public function getBisDatum()
|
||||
{
|
||||
return $this->bisdatum;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
+194
-193
@@ -1,193 +1,194 @@
|
||||
<?php
|
||||
$this->phrasen['global/studiengang']='Studiengang';
|
||||
$this->phrasen['global/studienrichtung']='Studienrichtung';
|
||||
$this->phrasen['global/institut']='Institut';
|
||||
$this->phrasen['global/semester']='Semester';
|
||||
$this->phrasen['global/studiensemester']='Studiensemester';
|
||||
$this->phrasen['global/studienplan']='Studienplan';
|
||||
$this->phrasen['global/studienzentrum']='Studienzentrum';
|
||||
$this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
|
||||
$this->phrasen['global/leitung']='Leitung';
|
||||
$this->phrasen['global/koordination']='Koordination';
|
||||
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
|
||||
$this->phrasen['global/lehreinheit']='Lehreinheit';
|
||||
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
|
||||
$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
|
||||
$this->phrasen['global/organisationsform']='Organisationsform';
|
||||
$this->phrasen['global/studienjahr']='Studienjahr';
|
||||
$this->phrasen['global/lektorIn']='LektorIn';
|
||||
$this->phrasen['global/lektorInnen']='LektorInnen';
|
||||
|
||||
$this->phrasen['global/ects']='ECTS';
|
||||
$this->phrasen['global/semesterstunden']='Semesterstunden';
|
||||
|
||||
$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement';
|
||||
$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung';
|
||||
$this->phrasen['global/stellvertreter']='Stellvertretung';
|
||||
$this->phrasen['global/sekretariat']='Sekretariat';
|
||||
$this->phrasen['global/studentenvertreter']='Studienvertretung';
|
||||
$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung';
|
||||
$this->phrasen['global/hochschulvertretung']='Hochschulvertretung';
|
||||
|
||||
$this->phrasen['global/lehrziele']='Lehrziele';
|
||||
$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download';
|
||||
$this->phrasen['global/newsgroups']='Newsgroups';
|
||||
|
||||
$this->phrasen['global/speichern']='Speichern';
|
||||
$this->phrasen['global/loeschen']='Löschen';
|
||||
$this->phrasen['global/entfernen']='Entfernen';
|
||||
$this->phrasen['global/editieren']='Editieren';
|
||||
$this->phrasen['global/suchen']='Suchen';
|
||||
$this->phrasen['global/lesen']='Lesen';
|
||||
$this->phrasen['global/bestaetigen']='Bestätigen';
|
||||
$this->phrasen['global/alle']='Alle';
|
||||
$this->phrasen['global/abbrechen']='Abbrechen';
|
||||
$this->phrasen['global/eintragen']='Eintragen';
|
||||
$this->phrasen['global/erstellen']='Erstellen';
|
||||
$this->phrasen['global/zurueck']='Zurück';
|
||||
$this->phrasen['global/abschicken']='Abschicken';
|
||||
$this->phrasen['global/zuruecksetzen']='Zurücksetzen';
|
||||
$this->phrasen['global/datei']='Datei';
|
||||
$this->phrasen['global/auswaehlen']='Auswählen';
|
||||
$this->phrasen['global/umbenennen']='Umbenennen';
|
||||
$this->phrasen['global/anzeigen']='Anzeigen';
|
||||
$this->phrasen['global/ausblenden']='Ausblenden';
|
||||
$this->phrasen['global/bearbeiten']='Bearbeiten';
|
||||
$this->phrasen['global/aendern']='Ändern';
|
||||
$this->phrasen['global/kopieren']='Kopieren';
|
||||
$this->phrasen['global/ja']='Ja';
|
||||
$this->phrasen['global/nein']='Nein';
|
||||
$this->phrasen['global/download']='Download';
|
||||
$this->phrasen['global/auswahl']='Auswahl';
|
||||
$this->phrasen['global/hinzufuegen']='Hinzufügen';
|
||||
$this->phrasen['global/drucken']='Drucken';
|
||||
$this->phrasen['global/pdfExport']='PDF Export';
|
||||
$this->phrasen['global/und']='und';
|
||||
$this->phrasen['global/oder']='oder';
|
||||
$this->phrasen['global/faelligAm']='Fällig am';
|
||||
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='Vorname';
|
||||
$this->phrasen['global/nachname']='Nachname';
|
||||
$this->phrasen['global/anrede']='Anrede';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
$this->phrasen['global/postnomen']='Postnomen';
|
||||
$this->phrasen['global/strasse']='Straße';
|
||||
$this->phrasen['global/plz']='Postleitzahl';
|
||||
$this->phrasen['global/ort']='Ort';
|
||||
$this->phrasen['global/anmerkung']='Anmerkung';
|
||||
$this->phrasen['global/anmerkungen']='Anmerkungen';
|
||||
$this->phrasen['global/sprache']='Sprache';
|
||||
$this->phrasen['global/englisch']='Englisch';
|
||||
$this->phrasen['global/deutsch']='Deutsch';
|
||||
$this->phrasen['global/titel']='Titel';
|
||||
$this->phrasen['global/geschlecht']='Geschlecht';
|
||||
$this->phrasen['global/mann']='Mann';
|
||||
$this->phrasen['global/frau']='Frau';
|
||||
$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft';
|
||||
$this->phrasen['global/geburtsdatum']='Geburtsdatum';
|
||||
$this->phrasen['global/geburtsort']='Geburtsort';
|
||||
$this->phrasen['global/universität']='Universität';
|
||||
$this->phrasen['global/code']='Code';
|
||||
$this->phrasen['global/adresse']='Adresse';
|
||||
$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz';
|
||||
$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz';
|
||||
$this->phrasen['global/emailAdresse']='E-Mail Adresse';
|
||||
$this->phrasen['global/mail']='Mail';
|
||||
$this->phrasen['global/telefon']='Telefon';
|
||||
$this->phrasen['global/telefonnummer']='Telefonnummer';
|
||||
$this->phrasen['global/handy']='Handy';
|
||||
$this->phrasen['global/fax']='Fax';
|
||||
$this->phrasen['global/bezeichnung']='Bezeichnung';
|
||||
$this->phrasen['global/datum']='Datum';
|
||||
$this->phrasen['global/stunde']='Stunde';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Uhrzeit';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personen']='Personen';
|
||||
$this->phrasen['global/personenkz']='Personenkz.';
|
||||
$this->phrasen['global/beschreibung']='Beschreibung';
|
||||
$this->phrasen['global/angelegtAm']='angelegt am';
|
||||
$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz
|
||||
$this->phrasen['global/montag']='Montag';
|
||||
$this->phrasen['global/dienstag']='Dienstag';
|
||||
$this->phrasen['global/mittwoch']='Mittwoch';
|
||||
$this->phrasen['global/donnerstag']='Donnerstag';
|
||||
$this->phrasen['global/freitag']='Freitag';
|
||||
$this->phrasen['global/samstag']='Samstag';
|
||||
$this->phrasen['global/sonntag']='Sonntag';
|
||||
$this->phrasen['global/matrikelnummer']='Matrikelnummer';
|
||||
$this->phrasen['global/personenkennzeichen']='Personenkennzeichen';
|
||||
|
||||
$this->phrasen['global/von']='Von';
|
||||
$this->phrasen['global/bis']='Bis';
|
||||
$this->phrasen['global/zweck']='Zweck';
|
||||
$this->phrasen['global/aktion']='Aktion';
|
||||
$this->phrasen['global/nummer']='Nummer';
|
||||
$this->phrasen['global/gruppe']='Gruppe';
|
||||
$this->phrasen['global/verband']='Verband';
|
||||
$this->phrasen['global/kalender']='Kalender';
|
||||
$this->phrasen['global/beginn']='Beginn';
|
||||
$this->phrasen['global/ende']='Ende';
|
||||
$this->phrasen['global/beispiele']='Beispiele';
|
||||
$this->phrasen['global/neu']='Neu';
|
||||
$this->phrasen['global/ok']='OK';
|
||||
|
||||
$this->phrasen['global/anmelden']='Anmelden';
|
||||
$this->phrasen['global/angemeldet']='Angemeldet';
|
||||
$this->phrasen['global/löschen']='Löschen';
|
||||
$this->phrasen['global/dateiLoeschen']='Datei Löschen';
|
||||
$this->phrasen['global/betreff']='Betreff';
|
||||
$this->phrasen['global/handbuch']='Handbuch';
|
||||
$this->phrasen['global/hilfe']='Hilfe';
|
||||
$this->phrasen['global/benutzer']='Benutzer';
|
||||
$this->phrasen['global/anleitung']='Anleitung';
|
||||
$this->phrasen['global/bericht']='Bericht';
|
||||
$this->phrasen['global/fixangestellt']='Fixangestellt';
|
||||
|
||||
// Statusmeldungen
|
||||
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
|
||||
$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht';
|
||||
$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten';
|
||||
$this->phrasen['global/emailgesendetan']='E-Mail gesendet an';
|
||||
$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden';
|
||||
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite';
|
||||
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung';
|
||||
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank';
|
||||
$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden';
|
||||
$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt';
|
||||
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden';
|
||||
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden';
|
||||
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden';
|
||||
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID';
|
||||
$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
|
||||
$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar';
|
||||
$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten';
|
||||
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter';
|
||||
$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?';
|
||||
$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen';
|
||||
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang';
|
||||
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte';
|
||||
$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht';
|
||||
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten';
|
||||
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes';
|
||||
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten';
|
||||
$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert';
|
||||
$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht';
|
||||
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags';
|
||||
$this->phrasen['global/keineBerechtigung']='Keine Berechtigung';
|
||||
$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden';
|
||||
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes';
|
||||
$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden';
|
||||
$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt';
|
||||
$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor';
|
||||
$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie';
|
||||
|
||||
|
||||
//infrastruktur
|
||||
|
||||
$this->phrasen['global/passwort']='Passwort';
|
||||
$this->phrasen['global/abmelden']='Abmelden';
|
||||
$this->phrasen['global/emailAnAssistenz']='Email an Assistenz';
|
||||
?>
|
||||
<?php
|
||||
$this->phrasen['global/studiengang']='Studiengang';
|
||||
$this->phrasen['global/studienrichtung']='Studienrichtung';
|
||||
$this->phrasen['global/institut']='Institut';
|
||||
$this->phrasen['global/semester']='Semester';
|
||||
$this->phrasen['global/studiensemester']='Studiensemester';
|
||||
$this->phrasen['global/studienplan']='Studienplan';
|
||||
$this->phrasen['global/studienzentrum']='Studienzentrum';
|
||||
$this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
|
||||
$this->phrasen['global/leitung']='Leitung';
|
||||
$this->phrasen['global/koordination']='Koordination';
|
||||
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
|
||||
$this->phrasen['global/lehreinheit']='Lehreinheit';
|
||||
$this->phrasen['global/organisationseinheit']='Organisationseinheit';
|
||||
$this->phrasen['global/organisationseinheiten']='Organisationseinheiten';
|
||||
$this->phrasen['global/organisationsform']='Organisationsform';
|
||||
$this->phrasen['global/studienjahr']='Studienjahr';
|
||||
$this->phrasen['global/lektorIn']='LektorIn';
|
||||
$this->phrasen['global/lektorInnen']='LektorInnen';
|
||||
|
||||
$this->phrasen['global/ects']='ECTS';
|
||||
$this->phrasen['global/semesterstunden']='Semesterstunden';
|
||||
|
||||
$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement';
|
||||
$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung';
|
||||
$this->phrasen['global/stellvertreter']='Stellvertretung';
|
||||
$this->phrasen['global/sekretariat']='Sekretariat';
|
||||
$this->phrasen['global/studentenvertreter']='Studienvertretung';
|
||||
$this->phrasen['global/jahrgangsvertretung']='Jahrgangsvertretung';
|
||||
$this->phrasen['global/hochschulvertretung']='Hochschulvertretung';
|
||||
|
||||
$this->phrasen['global/lehrziele']='Lehrziele';
|
||||
$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download';
|
||||
$this->phrasen['global/newsgroups']='Newsgroups';
|
||||
|
||||
$this->phrasen['global/speichern']='Speichern';
|
||||
$this->phrasen['global/loeschen']='Löschen';
|
||||
$this->phrasen['global/entfernen']='Entfernen';
|
||||
$this->phrasen['global/editieren']='Editieren';
|
||||
$this->phrasen['global/suchen']='Suchen';
|
||||
$this->phrasen['global/lesen']='Lesen';
|
||||
$this->phrasen['global/bestaetigen']='Bestätigen';
|
||||
$this->phrasen['global/alle']='Alle';
|
||||
$this->phrasen['global/abbrechen']='Abbrechen';
|
||||
$this->phrasen['global/eintragen']='Eintragen';
|
||||
$this->phrasen['global/erstellen']='Erstellen';
|
||||
$this->phrasen['global/durchfuehren']='Durchführen';
|
||||
$this->phrasen['global/zurueck']='Zurück';
|
||||
$this->phrasen['global/abschicken']='Abschicken';
|
||||
$this->phrasen['global/zuruecksetzen']='Zurücksetzen';
|
||||
$this->phrasen['global/datei']='Datei';
|
||||
$this->phrasen['global/auswaehlen']='Auswählen';
|
||||
$this->phrasen['global/umbenennen']='Umbenennen';
|
||||
$this->phrasen['global/anzeigen']='Anzeigen';
|
||||
$this->phrasen['global/ausblenden']='Ausblenden';
|
||||
$this->phrasen['global/bearbeiten']='Bearbeiten';
|
||||
$this->phrasen['global/aendern']='Ändern';
|
||||
$this->phrasen['global/kopieren']='Kopieren';
|
||||
$this->phrasen['global/ja']='Ja';
|
||||
$this->phrasen['global/nein']='Nein';
|
||||
$this->phrasen['global/download']='Download';
|
||||
$this->phrasen['global/auswahl']='Auswahl';
|
||||
$this->phrasen['global/hinzufuegen']='Hinzufügen';
|
||||
$this->phrasen['global/drucken']='Drucken';
|
||||
$this->phrasen['global/pdfExport']='PDF Export';
|
||||
$this->phrasen['global/und']='und';
|
||||
$this->phrasen['global/oder']='oder';
|
||||
$this->phrasen['global/faelligAm']='Fällig am';
|
||||
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='Vorname';
|
||||
$this->phrasen['global/nachname']='Nachname';
|
||||
$this->phrasen['global/anrede']='Anrede';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
$this->phrasen['global/postnomen']='Postnomen';
|
||||
$this->phrasen['global/strasse']='Straße';
|
||||
$this->phrasen['global/plz']='Postleitzahl';
|
||||
$this->phrasen['global/ort']='Ort';
|
||||
$this->phrasen['global/anmerkung']='Anmerkung';
|
||||
$this->phrasen['global/anmerkungen']='Anmerkungen';
|
||||
$this->phrasen['global/sprache']='Sprache';
|
||||
$this->phrasen['global/englisch']='Englisch';
|
||||
$this->phrasen['global/deutsch']='Deutsch';
|
||||
$this->phrasen['global/titel']='Titel';
|
||||
$this->phrasen['global/geschlecht']='Geschlecht';
|
||||
$this->phrasen['global/mann']='Mann';
|
||||
$this->phrasen['global/frau']='Frau';
|
||||
$this->phrasen['global/staatsbuergerschaft']='Staatsbürgerschaft';
|
||||
$this->phrasen['global/geburtsdatum']='Geburtsdatum';
|
||||
$this->phrasen['global/geburtsort']='Geburtsort';
|
||||
$this->phrasen['global/universität']='Universität';
|
||||
$this->phrasen['global/code']='Code';
|
||||
$this->phrasen['global/adresse']='Adresse';
|
||||
$this->phrasen['global/hauptwohnsitz']='Hauptwohnsitz';
|
||||
$this->phrasen['global/nebenwohnsitz']='Nebenwohnsitz';
|
||||
$this->phrasen['global/emailAdresse']='E-Mail Adresse';
|
||||
$this->phrasen['global/mail']='Mail';
|
||||
$this->phrasen['global/telefon']='Telefon';
|
||||
$this->phrasen['global/telefonnummer']='Telefonnummer';
|
||||
$this->phrasen['global/handy']='Handy';
|
||||
$this->phrasen['global/fax']='Fax';
|
||||
$this->phrasen['global/bezeichnung']='Bezeichnung';
|
||||
$this->phrasen['global/datum']='Datum';
|
||||
$this->phrasen['global/stunde']='Stunde';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Uhrzeit';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personen']='Personen';
|
||||
$this->phrasen['global/personenkz']='Personenkz.';
|
||||
$this->phrasen['global/beschreibung']='Beschreibung';
|
||||
$this->phrasen['global/angelegtAm']='angelegt am';
|
||||
$this->phrasen['global/funktion']='Funktion'; //Mitarbeiterfunktion zB Assistenz
|
||||
$this->phrasen['global/montag']='Montag';
|
||||
$this->phrasen['global/dienstag']='Dienstag';
|
||||
$this->phrasen['global/mittwoch']='Mittwoch';
|
||||
$this->phrasen['global/donnerstag']='Donnerstag';
|
||||
$this->phrasen['global/freitag']='Freitag';
|
||||
$this->phrasen['global/samstag']='Samstag';
|
||||
$this->phrasen['global/sonntag']='Sonntag';
|
||||
$this->phrasen['global/matrikelnummer']='Matrikelnummer';
|
||||
$this->phrasen['global/personenkennzeichen']='Personenkennzeichen';
|
||||
|
||||
$this->phrasen['global/von']='Von';
|
||||
$this->phrasen['global/bis']='Bis';
|
||||
$this->phrasen['global/zweck']='Zweck';
|
||||
$this->phrasen['global/aktion']='Aktion';
|
||||
$this->phrasen['global/nummer']='Nummer';
|
||||
$this->phrasen['global/gruppe']='Gruppe';
|
||||
$this->phrasen['global/verband']='Verband';
|
||||
$this->phrasen['global/kalender']='Kalender';
|
||||
$this->phrasen['global/beginn']='Beginn';
|
||||
$this->phrasen['global/ende']='Ende';
|
||||
$this->phrasen['global/beispiele']='Beispiele';
|
||||
$this->phrasen['global/neu']='Neu';
|
||||
$this->phrasen['global/ok']='OK';
|
||||
|
||||
$this->phrasen['global/anmelden']='Anmelden';
|
||||
$this->phrasen['global/angemeldet']='Angemeldet';
|
||||
$this->phrasen['global/löschen']='Löschen';
|
||||
$this->phrasen['global/dateiLoeschen']='Datei Löschen';
|
||||
$this->phrasen['global/betreff']='Betreff';
|
||||
$this->phrasen['global/handbuch']='Handbuch';
|
||||
$this->phrasen['global/hilfe']='Hilfe';
|
||||
$this->phrasen['global/benutzer']='Benutzer';
|
||||
$this->phrasen['global/anleitung']='Anleitung';
|
||||
$this->phrasen['global/bericht']='Bericht';
|
||||
$this->phrasen['global/fixangestellt']='Fixangestellt';
|
||||
|
||||
// Statusmeldungen
|
||||
$this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
|
||||
$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht';
|
||||
$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten';
|
||||
$this->phrasen['global/emailgesendetan']='E-Mail gesendet an';
|
||||
$this->phrasen['global/emailNichtVersendet']='E-Mail konnte nicht versendet werden';
|
||||
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='Sie haben keine Berechtigung für diese Seite';
|
||||
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Fehler beim Öffnen der Datenbankverbindung';
|
||||
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Fehler beim Lesen aus der Datenbank';
|
||||
$this->phrasen['global/userNichtGefunden']='Es wurde kein User gefunden';
|
||||
$this->phrasen['global/datumNichtGesetzt']='Datum ist nicht gesetzt';
|
||||
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'Studiensemester konnte nicht gefunden werden';
|
||||
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Studiengang konnte nicht gefunden werden';
|
||||
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Studienjahr konnte nicht gefunden werden';
|
||||
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Fehler beim ermitteln der UID';
|
||||
$this->phrasen['global/nichtAngemeldet'] = 'Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
|
||||
$this->phrasen['global/LDAPserverNichtErreichbar']='Der LDAP-Server ist nicht erreichbar';
|
||||
$this->phrasen['global/unbekannterFehleraufgetreten']='Es ist ein unbekannter Fehler aufgetreten';
|
||||
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Fehler bei der Uebergabe der Parameter';
|
||||
$this->phrasen['global/warnungWirklichLoeschen']='Wollen Sie diesen Datensatz wirklich löschen?';
|
||||
$this->phrasen['global/dateiErfolgreichHochgeladen']='Die Datei wurde erfolgreich hochgeladen';
|
||||
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Die Datei wurde nicht erfolgreich hochgeladen. Bitte wiederholen Sie den Vorgang';
|
||||
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='Fuer diese Aktion benoetigen Sie Administratorenrechte';
|
||||
$this->phrasen['global/dateiExistiertNicht']='Die Datei existiert nicht';
|
||||
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Fehler beim Aktualisieren der Daten';
|
||||
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Fehler beim Laden des Datensatzes';
|
||||
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Fehler beim Speichern der Daten';
|
||||
$this->phrasen['global/datenWurdenGespeichert']='Daten wurden gespeichert';
|
||||
$this->phrasen['global/eintragWurdeGeloescht']='Eintrag wurde gelöscht';
|
||||
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Fehler beim Löschen des Eintrags';
|
||||
$this->phrasen['global/keineBerechtigung']='Keine Berechtigung';
|
||||
$this->phrasen['global/datensatzWurdeNichtGefunden']='Datensatz wurde nicht gefunden';
|
||||
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='Keine Berechtigung zum Ändern des Datensatzes';
|
||||
$this->phrasen['global/keineDatenGefunden']='Keine Daten gefunden';
|
||||
$this->phrasen['global/erfolgreichAngelegt']='Erfolgreich angelegt';
|
||||
$this->phrasen['global/keineSuchergebnisse']='Es liegen keine Daten zu Ihrer Suchanfrage vor';
|
||||
$this->phrasen['global/bitteWaehlen']='Bitte wählen Sie';
|
||||
|
||||
|
||||
//infrastruktur
|
||||
|
||||
$this->phrasen['global/passwort']='Passwort';
|
||||
$this->phrasen['global/abmelden']='Abmelden';
|
||||
$this->phrasen['global/emailAnAssistenz']='Email an Assistenz';
|
||||
?>
|
||||
|
||||
@@ -36,4 +36,8 @@ $this->phrasen['urlaubstool/meineZeitsperren']='Meine Zeitsperren';
|
||||
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben';
|
||||
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub';
|
||||
$this->phrasen['urlaubstool/freigabeFehlt']='Urlaub wurde noch nicht freigegeben';
|
||||
$this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebener Urlaub wurde gelöscht';
|
||||
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
|
||||
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
|
||||
$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
|
||||
?>
|
||||
|
||||
@@ -62,3 +62,4 @@ $this->phrasen['zeitaufzeichnung/dienstreise']='Dienstreise';
|
||||
$this->phrasen['zeitaufzeichnung/projektphase']='AP';
|
||||
$this->phrasen['zeitaufzeichnung/pauseEinfuegen']='Pause automatisch einfügen';
|
||||
$this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Zeitraum zu kurz für automatische Pause';
|
||||
$this->phrasen['zeitaufzeichnung/supportAnfragen']='<p><hr>Supportanfragen unter<br><a href="mailto:zeiterfassung@technikum-wien.at">zeiterfassung@technikum-wien.at</a></p>';
|
||||
|
||||
+191
-190
@@ -1,190 +1,191 @@
|
||||
<?php
|
||||
$this->phrasen['global/studiengang']='Degree Program';
|
||||
$this->phrasen['global/studienrichtung']='Degree Program';
|
||||
$this->phrasen['global/institut']='Institute';
|
||||
$this->phrasen['global/semester']='Semester';
|
||||
$this->phrasen['global/studiensemester']='Semester';
|
||||
$this->phrasen['global/studienplan']='Study Plan';
|
||||
$this->phrasen['global/studienzentrum']='Study Center';
|
||||
$this->phrasen['global/studiengangsleitung']='Program Director';
|
||||
$this->phrasen['global/leitung']='Head';
|
||||
$this->phrasen['global/koordination']='Coordination';
|
||||
$this->phrasen['global/lehrveranstaltung']='Subject';
|
||||
$this->phrasen['global/lehreinheit']='Teaching unit';
|
||||
$this->phrasen['global/organisationseinheit']='Organisation Unit';
|
||||
$this->phrasen['global/organisationseinheiten']='Organisation Units';
|
||||
$this->phrasen['global/organisationsform']='Organisational form';
|
||||
$this->phrasen['global/studienjahr']='Academic year';
|
||||
$this->phrasen['global/lektorIn']='Lector';
|
||||
$this->phrasen['global/lektorInnen']='Lectors';
|
||||
|
||||
$this->phrasen['global/ects']='ECTS';
|
||||
$this->phrasen['global/semesterstunden']='Units per semester';
|
||||
|
||||
$this->phrasen['global/studiengangsmanagement']='Study Management';
|
||||
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
|
||||
$this->phrasen['global/stellvertreter']='Deputy Program Director';
|
||||
$this->phrasen['global/sekretariat']='Administrative Assistant';
|
||||
$this->phrasen['global/studentenvertreter']='Degree Program Representative';
|
||||
$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative';
|
||||
$this->phrasen['global/hochschulvertretung']='UAS Representative';
|
||||
|
||||
$this->phrasen['global/lehrziele']='Teaching goals';
|
||||
$this->phrasen['global/allgemeinerdownload']='Global Download';
|
||||
$this->phrasen['global/newsgroups']='Newsgroups';
|
||||
|
||||
$this->phrasen['global/speichern']='Save';
|
||||
$this->phrasen['global/loeschen']='Delete';
|
||||
$this->phrasen['global/entfernen']='Delete';
|
||||
$this->phrasen['global/editieren']='Edit';
|
||||
$this->phrasen['global/suchen']='Search';
|
||||
$this->phrasen['global/lesen']='Read';
|
||||
$this->phrasen['global/bestaetigen']='Confirm';
|
||||
$this->phrasen['global/alle']='All';
|
||||
$this->phrasen['global/abbrechen']='Cancel';
|
||||
$this->phrasen['global/eintragen']='Register';
|
||||
$this->phrasen['global/erstellen']='Create';
|
||||
$this->phrasen['global/zurueck']='Back';
|
||||
$this->phrasen['global/abschicken']='Submit';
|
||||
$this->phrasen['global/zuruecksetzen']='Reset';
|
||||
$this->phrasen['global/datei']='File';
|
||||
$this->phrasen['global/auswaehlen']='Select';
|
||||
$this->phrasen['global/umbenennen']='Rename';
|
||||
$this->phrasen['global/anzeigen']='Show';
|
||||
$this->phrasen['global/ausblenden']='Hide';
|
||||
$this->phrasen['global/bearbeiten']='Edit';
|
||||
$this->phrasen['global/aendern']='Change';
|
||||
$this->phrasen['global/kopieren']='Copy';
|
||||
$this->phrasen['global/ja']='Yes';
|
||||
$this->phrasen['global/nein']='No';
|
||||
$this->phrasen['global/download']='Download';
|
||||
$this->phrasen['global/auswahl']='Select';
|
||||
$this->phrasen['global/hinzufuegen']='Add';
|
||||
$this->phrasen['global/drucken']='Print';
|
||||
$this->phrasen['global/und']='and';
|
||||
$this->phrasen['global/oder']='or';
|
||||
$this->phrasen['global/faelligAm']='Due on';
|
||||
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='First Name';
|
||||
$this->phrasen['global/nachname']='Last Name';
|
||||
$this->phrasen['global/anrede']='Title';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
$this->phrasen['global/postnomen']='Postnomen';
|
||||
$this->phrasen['global/strasse']='Street';
|
||||
$this->phrasen['global/plz']='Postal Code';
|
||||
$this->phrasen['global/ort']='City';
|
||||
$this->phrasen['global/anmerkung']='Comment';
|
||||
$this->phrasen['global/anmerkungen']='Comments';
|
||||
$this->phrasen['global/sprache']='Language';
|
||||
$this->phrasen['global/englisch']='English';
|
||||
$this->phrasen['global/deutsch']='German';
|
||||
$this->phrasen['global/titel']='Title';
|
||||
$this->phrasen['global/geschlecht']='Gender';
|
||||
$this->phrasen['global/mann']='Male';
|
||||
$this->phrasen['global/frau']='Female';
|
||||
$this->phrasen['global/staatsbuergerschaft']='Citizenship';
|
||||
$this->phrasen['global/geburtsdatum']='Date of Birth';
|
||||
$this->phrasen['global/geburtsort']='Place of Birth';
|
||||
$this->phrasen['global/universität']='University';
|
||||
$this->phrasen['global/code']='Code';
|
||||
$this->phrasen['global/adresse']='Address';
|
||||
$this->phrasen['global/hauptwohnsitz']='Principal residence';
|
||||
$this->phrasen['global/nebenwohnsitz']='Secondary residence';
|
||||
$this->phrasen['global/emailAdresse']='E-Mail Address';
|
||||
$this->phrasen['global/mail']='Mail';
|
||||
$this->phrasen['global/telefon']='Telephone';
|
||||
$this->phrasen['global/telefonnummer']='Telephone number';
|
||||
$this->phrasen['global/handy']='Mobile phone';
|
||||
$this->phrasen['global/fax']='Fax';
|
||||
$this->phrasen['global/bezeichnung']='Description';
|
||||
$this->phrasen['global/datum']='Date';
|
||||
$this->phrasen['global/stunde']='Hour';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Time';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personenkz']='StudentID';
|
||||
$this->phrasen['global/personen']='Number of Persons';
|
||||
$this->phrasen['global/beschreibung']='Description';
|
||||
$this->phrasen['global/angelegtAm']='created:';
|
||||
$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz
|
||||
$this->phrasen['global/montag']='Monday';
|
||||
$this->phrasen['global/dienstag']='Tuesday';
|
||||
$this->phrasen['global/mittwoch']='Wednesday';
|
||||
$this->phrasen['global/donnerstag']='Thursday';
|
||||
$this->phrasen['global/freitag']='Friday';
|
||||
$this->phrasen['global/samstag']='Saturday';
|
||||
$this->phrasen['global/sonntag']='Sunday';
|
||||
$this->phrasen['global/matrikelnummer']='Matriculation number';
|
||||
$this->phrasen['global/personenkennzeichen']='Personal identifier';
|
||||
|
||||
$this->phrasen['global/von']='From';
|
||||
$this->phrasen['global/bis']='To';
|
||||
$this->phrasen['global/zweck']='Purpose';
|
||||
$this->phrasen['global/aktion']='Action';
|
||||
$this->phrasen['global/nummer']='Number';
|
||||
$this->phrasen['global/gruppe']='Group';
|
||||
$this->phrasen['global/verband']='Division';
|
||||
$this->phrasen['global/kalender']='Calendar';
|
||||
$this->phrasen['global/beginn']='Start';
|
||||
$this->phrasen['global/ende']='End';
|
||||
$this->phrasen['global/beispiele']='Examples';
|
||||
$this->phrasen['global/neu']='New';
|
||||
$this->phrasen['global/ok']='OK';
|
||||
|
||||
$this->phrasen['global/anmelden']='Register';
|
||||
$this->phrasen['global/angemeldet']='Registered';
|
||||
$this->phrasen['global/löschen']='Delete';
|
||||
$this->phrasen['global/dateiLoeschen']='Delete File';
|
||||
$this->phrasen['global/betreff']='Subject';
|
||||
$this->phrasen['global/handbuch']='Manual';
|
||||
$this->phrasen['global/hilfe']='Help';
|
||||
$this->phrasen['global/benutzer']='User';
|
||||
$this->phrasen['global/anleitung']='Manual';
|
||||
$this->phrasen['global/bericht']='Report';
|
||||
$this->phrasen['global/fixangestellt']='Salaried';
|
||||
|
||||
// Statusmeldungen
|
||||
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
|
||||
$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted';
|
||||
$this->phrasen['global/fehleraufgetreten']='Error occurred';
|
||||
$this->phrasen['global/emailgesendetan']='E-Mail sent to';
|
||||
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site';
|
||||
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection';
|
||||
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database';
|
||||
$this->phrasen['global/userNichtGefunden']='No user found';
|
||||
$this->phrasen['global/datumNichtGesetzt']='Date is missing';
|
||||
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found';
|
||||
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found';
|
||||
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found';
|
||||
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID';
|
||||
$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found';
|
||||
$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server';
|
||||
$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred';
|
||||
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer';
|
||||
$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?';
|
||||
$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded';
|
||||
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry';
|
||||
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.';
|
||||
$this->phrasen['global/dateiExistiertNicht']='File not found';
|
||||
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. ';
|
||||
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries';
|
||||
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data';
|
||||
$this->phrasen['global/datenWurdenGespeichert']='Data saved';
|
||||
$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted';
|
||||
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry';
|
||||
$this->phrasen['global/keineBerechtigung']='No authority';
|
||||
$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found';
|
||||
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data';
|
||||
$this->phrasen['global/keineDatenGefunden']='No data found';
|
||||
$this->phrasen['global/erfolgreichAngelegt']='Created successfully';
|
||||
$this->phrasen['global/keineSuchergebnisse']='No matches found';
|
||||
$this->phrasen['global/bitteWaehlen']='Please select';
|
||||
|
||||
//infrastruktur
|
||||
|
||||
$this->phrasen['global/passwort']='Password';
|
||||
$this->phrasen['global/abmelden']='Logout';
|
||||
$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant';
|
||||
?>
|
||||
<?php
|
||||
$this->phrasen['global/studiengang']='Degree Program';
|
||||
$this->phrasen['global/studienrichtung']='Degree Program';
|
||||
$this->phrasen['global/institut']='Institute';
|
||||
$this->phrasen['global/semester']='Semester';
|
||||
$this->phrasen['global/studiensemester']='Semester';
|
||||
$this->phrasen['global/studienplan']='Study Plan';
|
||||
$this->phrasen['global/studienzentrum']='Study Center';
|
||||
$this->phrasen['global/studiengangsleitung']='Program Director';
|
||||
$this->phrasen['global/leitung']='Head';
|
||||
$this->phrasen['global/koordination']='Coordination';
|
||||
$this->phrasen['global/lehrveranstaltung']='Subject';
|
||||
$this->phrasen['global/lehreinheit']='Teaching unit';
|
||||
$this->phrasen['global/organisationseinheit']='Organisation Unit';
|
||||
$this->phrasen['global/organisationseinheiten']='Organisation Units';
|
||||
$this->phrasen['global/organisationsform']='Organisational form';
|
||||
$this->phrasen['global/studienjahr']='Academic year';
|
||||
$this->phrasen['global/lektorIn']='Lector';
|
||||
$this->phrasen['global/lektorInnen']='Lectors';
|
||||
|
||||
$this->phrasen['global/ects']='ECTS';
|
||||
$this->phrasen['global/semesterstunden']='Units per semester';
|
||||
|
||||
$this->phrasen['global/studiengangsmanagement']='Study Management';
|
||||
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
|
||||
$this->phrasen['global/stellvertreter']='Deputy Program Director';
|
||||
$this->phrasen['global/sekretariat']='Administrative Assistant';
|
||||
$this->phrasen['global/studentenvertreter']='Degree Program Representative';
|
||||
$this->phrasen['global/jahrgangsvertretung']='Academic Year Representative';
|
||||
$this->phrasen['global/hochschulvertretung']='UAS Representative';
|
||||
|
||||
$this->phrasen['global/lehrziele']='Teaching goals';
|
||||
$this->phrasen['global/allgemeinerdownload']='Global Download';
|
||||
$this->phrasen['global/newsgroups']='Newsgroups';
|
||||
|
||||
$this->phrasen['global/speichern']='Save';
|
||||
$this->phrasen['global/loeschen']='Delete';
|
||||
$this->phrasen['global/entfernen']='Delete';
|
||||
$this->phrasen['global/editieren']='Edit';
|
||||
$this->phrasen['global/suchen']='Search';
|
||||
$this->phrasen['global/lesen']='Read';
|
||||
$this->phrasen['global/bestaetigen']='Confirm';
|
||||
$this->phrasen['global/alle']='All';
|
||||
$this->phrasen['global/abbrechen']='Cancel';
|
||||
$this->phrasen['global/eintragen']='Register';
|
||||
$this->phrasen['global/erstellen']='Create';
|
||||
$this->phrasen['global/durchfuehren']='Run';
|
||||
$this->phrasen['global/zurueck']='Back';
|
||||
$this->phrasen['global/abschicken']='Submit';
|
||||
$this->phrasen['global/zuruecksetzen']='Reset';
|
||||
$this->phrasen['global/datei']='File';
|
||||
$this->phrasen['global/auswaehlen']='Select';
|
||||
$this->phrasen['global/umbenennen']='Rename';
|
||||
$this->phrasen['global/anzeigen']='Show';
|
||||
$this->phrasen['global/ausblenden']='Hide';
|
||||
$this->phrasen['global/bearbeiten']='Edit';
|
||||
$this->phrasen['global/aendern']='Change';
|
||||
$this->phrasen['global/kopieren']='Copy';
|
||||
$this->phrasen['global/ja']='Yes';
|
||||
$this->phrasen['global/nein']='No';
|
||||
$this->phrasen['global/download']='Download';
|
||||
$this->phrasen['global/auswahl']='Select';
|
||||
$this->phrasen['global/hinzufuegen']='Add';
|
||||
$this->phrasen['global/drucken']='Print';
|
||||
$this->phrasen['global/und']='and';
|
||||
$this->phrasen['global/oder']='or';
|
||||
$this->phrasen['global/faelligAm']='Due on';
|
||||
|
||||
$this->phrasen['global/username']='Username';
|
||||
$this->phrasen['global/vorname']='First Name';
|
||||
$this->phrasen['global/nachname']='Last Name';
|
||||
$this->phrasen['global/anrede']='Title';
|
||||
$this->phrasen['global/name']='Name';
|
||||
$this->phrasen['global/uid']='UID';
|
||||
$this->phrasen['global/postnomen']='Postnomen';
|
||||
$this->phrasen['global/strasse']='Street';
|
||||
$this->phrasen['global/plz']='Postal Code';
|
||||
$this->phrasen['global/ort']='City';
|
||||
$this->phrasen['global/anmerkung']='Comment';
|
||||
$this->phrasen['global/anmerkungen']='Comments';
|
||||
$this->phrasen['global/sprache']='Language';
|
||||
$this->phrasen['global/englisch']='English';
|
||||
$this->phrasen['global/deutsch']='German';
|
||||
$this->phrasen['global/titel']='Title';
|
||||
$this->phrasen['global/geschlecht']='Gender';
|
||||
$this->phrasen['global/mann']='Male';
|
||||
$this->phrasen['global/frau']='Female';
|
||||
$this->phrasen['global/staatsbuergerschaft']='Citizenship';
|
||||
$this->phrasen['global/geburtsdatum']='Date of Birth';
|
||||
$this->phrasen['global/geburtsort']='Place of Birth';
|
||||
$this->phrasen['global/universität']='University';
|
||||
$this->phrasen['global/code']='Code';
|
||||
$this->phrasen['global/adresse']='Address';
|
||||
$this->phrasen['global/hauptwohnsitz']='Principal residence';
|
||||
$this->phrasen['global/nebenwohnsitz']='Secondary residence';
|
||||
$this->phrasen['global/emailAdresse']='E-Mail Address';
|
||||
$this->phrasen['global/mail']='Mail';
|
||||
$this->phrasen['global/telefon']='Telephone';
|
||||
$this->phrasen['global/telefonnummer']='Telephone number';
|
||||
$this->phrasen['global/handy']='Mobile phone';
|
||||
$this->phrasen['global/fax']='Fax';
|
||||
$this->phrasen['global/bezeichnung']='Description';
|
||||
$this->phrasen['global/datum']='Date';
|
||||
$this->phrasen['global/stunde']='Hour';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Time';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personenkz']='StudentID';
|
||||
$this->phrasen['global/personen']='Number of Persons';
|
||||
$this->phrasen['global/beschreibung']='Description';
|
||||
$this->phrasen['global/angelegtAm']='created:';
|
||||
$this->phrasen['global/funktion']='Role'; //Mitarbeiterfunktion zB Assistenz
|
||||
$this->phrasen['global/montag']='Monday';
|
||||
$this->phrasen['global/dienstag']='Tuesday';
|
||||
$this->phrasen['global/mittwoch']='Wednesday';
|
||||
$this->phrasen['global/donnerstag']='Thursday';
|
||||
$this->phrasen['global/freitag']='Friday';
|
||||
$this->phrasen['global/samstag']='Saturday';
|
||||
$this->phrasen['global/sonntag']='Sunday';
|
||||
$this->phrasen['global/matrikelnummer']='Matriculation number';
|
||||
$this->phrasen['global/personenkennzeichen']='Personal identifier';
|
||||
|
||||
$this->phrasen['global/von']='From';
|
||||
$this->phrasen['global/bis']='To';
|
||||
$this->phrasen['global/zweck']='Purpose';
|
||||
$this->phrasen['global/aktion']='Action';
|
||||
$this->phrasen['global/nummer']='Number';
|
||||
$this->phrasen['global/gruppe']='Group';
|
||||
$this->phrasen['global/verband']='Division';
|
||||
$this->phrasen['global/kalender']='Calendar';
|
||||
$this->phrasen['global/beginn']='Start';
|
||||
$this->phrasen['global/ende']='End';
|
||||
$this->phrasen['global/beispiele']='Examples';
|
||||
$this->phrasen['global/neu']='New';
|
||||
$this->phrasen['global/ok']='OK';
|
||||
|
||||
$this->phrasen['global/anmelden']='Register';
|
||||
$this->phrasen['global/angemeldet']='Registered';
|
||||
$this->phrasen['global/löschen']='Delete';
|
||||
$this->phrasen['global/dateiLoeschen']='Delete File';
|
||||
$this->phrasen['global/betreff']='Subject';
|
||||
$this->phrasen['global/handbuch']='Manual';
|
||||
$this->phrasen['global/hilfe']='Help';
|
||||
$this->phrasen['global/benutzer']='User';
|
||||
$this->phrasen['global/anleitung']='Manual';
|
||||
$this->phrasen['global/bericht']='Report';
|
||||
$this->phrasen['global/fixangestellt']='Salaried';
|
||||
|
||||
// Statusmeldungen
|
||||
$this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
|
||||
$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted';
|
||||
$this->phrasen['global/fehleraufgetreten']='Error occurred';
|
||||
$this->phrasen['global/emailgesendetan']='E-Mail sent to';
|
||||
$this->phrasen['global/keineBerechtigungFuerDieseSeite']='You dont have the authority to view this site';
|
||||
$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='Cant open Database connection';
|
||||
$this->phrasen['global/fehlerBeimLesenAusDatenbank']='Error reading from database';
|
||||
$this->phrasen['global/userNichtGefunden']='No user found';
|
||||
$this->phrasen['global/datumNichtGesetzt']='Date is missing';
|
||||
$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden'] = 'No semester found';
|
||||
$this->phrasen['global/studiengangKonnteNichtGefundenWerden'] = 'Program not found';
|
||||
$this->phrasen['global/studienjahrKonnteNichtGefundenWerden'] = 'Academic year not found';
|
||||
$this->phrasen['global/fehlerBeimErmittelnDerUID'] = 'Error finding the UID';
|
||||
$this->phrasen['global/nichtAngemeldet'] = 'You are not logged in. No UID found';
|
||||
$this->phrasen['global/LDAPserverNichtErreichbar']='Error connecting to LDAP-Server';
|
||||
$this->phrasen['global/unbekannterFehleraufgetreten']='Unknown error occurred';
|
||||
$this->phrasen['global/fehlerBeiDerParameteruebergabe']='Error in the parameter transfer';
|
||||
$this->phrasen['global/warnungWirklichLoeschen']='Do you want to delete this record?';
|
||||
$this->phrasen['global/dateiErfolgreichHochgeladen']='File successfully uploaded';
|
||||
$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='Failed to upload File. Please retry';
|
||||
$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='You must be Administrator.';
|
||||
$this->phrasen['global/dateiExistiertNicht']='File not found';
|
||||
$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='Error updating the data. ';
|
||||
$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='Error loading entries';
|
||||
$this->phrasen['global/fehlerBeimSpeichernDerDaten']='Error saving the data';
|
||||
$this->phrasen['global/datenWurdenGespeichert']='Data saved';
|
||||
$this->phrasen['global/eintragWurdeGeloescht']='Entry deleted';
|
||||
$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='Error deleting entry';
|
||||
$this->phrasen['global/keineBerechtigung']='No authority';
|
||||
$this->phrasen['global/datensatzWurdeNichtGefunden']='Data not found';
|
||||
$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='You dont have the authority to change to data';
|
||||
$this->phrasen['global/keineDatenGefunden']='No data found';
|
||||
$this->phrasen['global/erfolgreichAngelegt']='Created successfully';
|
||||
$this->phrasen['global/keineSuchergebnisse']='No matches found';
|
||||
$this->phrasen['global/bitteWaehlen']='Please select';
|
||||
|
||||
//infrastruktur
|
||||
|
||||
$this->phrasen['global/passwort']='Password';
|
||||
$this->phrasen['global/abmelden']='Logout';
|
||||
$this->phrasen['global/emailAnAssistenz']='Email Administrative Assistant';
|
||||
?>
|
||||
|
||||
@@ -62,3 +62,4 @@ $this->phrasen['zeitaufzeichnung/dienstreise']='Business Trip';
|
||||
$this->phrasen['zeitaufzeichnung/projektphase']='WP';
|
||||
$this->phrasen['zeitaufzeichnung/pauseEinfuegen']='insert break automatically';
|
||||
$this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Timeslot too short for automatic break.';
|
||||
$this->phrasen['zeitaufzeichnung/supportAnfragen']='<p><hr>Contact for support<br><a href="mailto:zeiterfassung@technikum-wien.at">zeiterfassung@technikum-wien.at</a></p>';
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
/* threshold for full screen form */
|
||||
@media (max-width:1075px) {
|
||||
#page-wrapper {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#protocoltbl textarea {
|
||||
/* notiz field should stay in table */
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#protocoltbl td:nth-child(1), .cellbg {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
/* table date and time cell widths */
|
||||
.timecellwidth {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.namecellwidth {
|
||||
width: 15%;
|
||||
}
|
||||
|
||||
.datevalcellwidth {
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
#hrbottom {
|
||||
border-top: 2px solid #eee;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* timepicker */
|
||||
.ui-timepicker-table td a {
|
||||
width: inherit;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
}
|
||||
@@ -3,7 +3,8 @@
|
||||
|
||||
@media (min-width:768px) {
|
||||
#page-wrapper {
|
||||
margin-right: 250px;
|
||||
margin-right: 180px;
|
||||
margin-left: 180px;
|
||||
margin-top: 8px;
|
||||
border: 1px solid #e7e7e7;
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user