mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-16 22:42:16 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
@@ -14,6 +14,7 @@ $config['navigation_header'] = array(
|
||||
'icon' => 'sitemap',
|
||||
'description' => 'Organisation',
|
||||
'sort' => 20,
|
||||
'requiredPermissions' => 'basis/vilesci:r',
|
||||
'children'=> array(
|
||||
'vilesci' => array(
|
||||
'link' => base_url('vilesci'),
|
||||
@@ -30,6 +31,7 @@ $config['navigation_header'] = array(
|
||||
'icon' => 'graduation-cap',
|
||||
'description' => 'Lehre',
|
||||
'sort' => 30,
|
||||
'requiredPermissions' => 'basis/vilesci:r',
|
||||
'children'=> array(
|
||||
'cis' => array(
|
||||
'link' => CIS_ROOT,
|
||||
@@ -68,6 +70,7 @@ $config['navigation_header'] = array(
|
||||
'icon' => 'user',
|
||||
'description' => 'Personen',
|
||||
'sort' => 40,
|
||||
'requiredPermissions' => 'basis/vilesci:r',
|
||||
'children'=> array(
|
||||
'bpk' => array(
|
||||
'link' => site_url('person/BPKWartung'),
|
||||
@@ -156,6 +159,13 @@ $config['navigation_menu']['lehre/lehrauftrag/Lehrauftrag/*'] = array(
|
||||
'icon' => '',
|
||||
'sort' => 1,
|
||||
'requiredPermissions' => 'lehre/lehrauftrag_erteilen:r'
|
||||
),
|
||||
'lehrauftragLehrendeÜbersicht' => array(
|
||||
'link' => site_url('lehre/lehrauftrag/Lehrauftrag/LehrendeUebersicht'),
|
||||
'description' => 'Lehrendenübersicht',
|
||||
'icon' => '',
|
||||
'sort' => 1,
|
||||
'requiredPermissions' => array('lehre/lehrauftrag_bestellen:r')
|
||||
)
|
||||
);
|
||||
$config['navigation_menu']['lehre/lehrauftrag/LehrauftragErteilen/*'] = array(
|
||||
|
||||
@@ -0,0 +1,536 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*
|
||||
* Cronjobs to be run for sending emails informing about status of Lehrauftraege.
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
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
|
||||
**/
|
||||
public function mailLehrauftraegeToApprove()
|
||||
{
|
||||
// Get vertrag_ids of lehrauftraege that had been ordered and had NOT been approved or cancelled YESTERDAY
|
||||
$this->VertragvertragsstatusModel->addSelect('vertrag_id');
|
||||
$result = $this->VertragvertragsstatusModel->getOrdered_fromDate('YESTERDAY');
|
||||
|
||||
// Get lehrveranstaltung_ids and studiensemester of the lehr-/or projektauftrag contracts
|
||||
$lehreinheit_data_arr = array();
|
||||
if ($vertrag_arr = getData($result))
|
||||
{
|
||||
foreach ($vertrag_arr as $vertrag)
|
||||
{
|
||||
$result = $this->VertragModel->getLehreinheitData($vertrag->vertrag_id, 'lehrveranstaltung_id, studiensemester_kurzbz');
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$obj = new StdClass();
|
||||
$obj->lehrveranstaltung_id = $result->retval[0]->lehrveranstaltung_id;
|
||||
$obj->studiensemester_kurzbz = $result->retval[0]->studiensemester_kurzbz;
|
||||
$lehreinheit_data_arr []= $obj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the data array to be used in the email. Data array is clustered as follows:
|
||||
* Array
|
||||
* [studiensemester_kurzbz] // studiensemester of lehreinheit
|
||||
* Array
|
||||
* [oe_kurzbz] // oe of lehreinheits lehrveranstaltung
|
||||
* [oe_bezeichnung]
|
||||
* Array
|
||||
* [stg_kz] // stg of lehreinheits lehrveranstaltung
|
||||
* [stg_kurzbz]
|
||||
* [stg_bezeichnung]
|
||||
* [amount] // amount of new ordered lehrauftraege of that stg
|
||||
*/
|
||||
$data_arr = array();
|
||||
foreach ($lehreinheit_data_arr as $lehreinheit_data)
|
||||
{
|
||||
$result = $this->_getLVData($lehreinheit_data->lehrveranstaltung_id);
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
// Search if studiensemester exists in data_arr
|
||||
$ss_index = array_search($lehreinheit_data->studiensemester_kurzbz, array_column($data_arr, 'studiensemester_kurzbz'));
|
||||
|
||||
// If studiensemester is new, add studienesemester, oe and stg
|
||||
if ($ss_index === false)
|
||||
{
|
||||
$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,
|
||||
'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz),
|
||||
'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung,
|
||||
'amount' => 1
|
||||
);
|
||||
|
||||
// Push to final data_arr
|
||||
$data_arr []= $data;
|
||||
}
|
||||
// Else if studiensemester exists
|
||||
else
|
||||
{
|
||||
// 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)
|
||||
{
|
||||
// Add oe data
|
||||
$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,
|
||||
'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz),
|
||||
'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung,
|
||||
'amount' => 1
|
||||
)
|
||||
);
|
||||
}
|
||||
// Else if oe exists
|
||||
else
|
||||
{
|
||||
// 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)
|
||||
{
|
||||
$data_arr[$ss_index][$oe_index][] = array(
|
||||
'stg_kz' => $result->retval[0]->studiengang_kz,
|
||||
'stg_kurzbz' => strtoupper($result->retval[0]->stg_typ. $result->retval[0]->stg_kurzbz),
|
||||
'stg_bezeichnung' => $result->retval[0]->lv_stg_bezeichnung,
|
||||
'amount' => 1
|
||||
);
|
||||
}
|
||||
// Else if stg exists
|
||||
else
|
||||
{
|
||||
// Increase amount +1
|
||||
$data_arr[$ss_index][$oe_index][$stg_index]['amount']++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cluster data by uid of entitled mail receivers.
|
||||
* Returning array is clustered as follows:
|
||||
* Array
|
||||
* [uid]
|
||||
* Array
|
||||
* [studiensemester_kurzbz] // studiensemester of lehreinheit
|
||||
* Array
|
||||
* [oe_kurzbz] // oe of lehreinheits lehrveranstaltung
|
||||
* [oe_bezeichnung]
|
||||
* Array
|
||||
* [stg_kz] // stg of lehreinheits lehrveranstaltung
|
||||
* [stg_kurzbz]
|
||||
* [stg_bezeichnung]
|
||||
* [amount] // amount of new ordered lehrauftraege of that stg
|
||||
*/
|
||||
$data_arr = $this->_clusterData_byReceiver($data_arr);
|
||||
|
||||
// Send email
|
||||
if(!$this->_sendMail_toApprove($data_arr))
|
||||
{
|
||||
$this->logInfo('SUCCEDED: Sending emails about yesterdays ordered lehrauftraege succeded.');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->logError('Error when sending emails in job MailLehrauftragToApprove');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This daily job sends information about all lehr-/projektauftraege approved the day bofore.
|
||||
* Receivers: lectors
|
||||
**/
|
||||
public function mailLehrauftraegeToAccept()
|
||||
{
|
||||
// Get vertrag_id and uid of lehrauftraege that had been approved and had NOT been accepted or cancelled YESTERDAY
|
||||
$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
|
||||
* [uid] // lectors uid (mail receiver)
|
||||
* [studiensemester] // studiensemester of the lehrauftraege (can be more, e.g. 'WS2019 and SS2020')
|
||||
* [amount] // amount of new approved lehrauftraege
|
||||
**/
|
||||
$data_arr = array();
|
||||
if ($vertrag_arr = getData($result))
|
||||
{
|
||||
foreach ($vertrag_arr as $vertrag)
|
||||
{
|
||||
// Get studiensemester of the lehrauftrag
|
||||
$this->VertragModel->addSelect('vertragsstunden_studiensemester_kurzbz');
|
||||
$result = $this->VertragModel->load($vertrag->vertrag_id);
|
||||
if ($studiensemester = getData($result))
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$data = array();
|
||||
$data['uid'] = $vertrag->uid;
|
||||
$data['studiensemester'] = $studiensemester;
|
||||
$data['amount']= 1;
|
||||
$data_arr []= $data;
|
||||
}
|
||||
// Else if uid exists
|
||||
else
|
||||
{
|
||||
// If studiensemester is new, add to studiensemester-string
|
||||
if (strpos($data_arr[$uid_index]['studiensemester'], $studiensemester) === false)
|
||||
{
|
||||
$data_arr[$uid_index]['studiensemester'] .= ' und '. $studiensemester;
|
||||
}
|
||||
|
||||
// Increase amount +1
|
||||
$data_arr[$uid_index]['amount']++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send email
|
||||
if ($this->_sendMail_toAccept($data_arr))
|
||||
{
|
||||
$this->logInfo('SUCCEDED: Sending emails about yesterdays approved lehrauftraege succeded.');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->logError('Error when sending emails in job MailLehrauftragToAccept');
|
||||
}
|
||||
}
|
||||
|
||||
//******************************************************************************************************************
|
||||
// PRIVATE FUNCTIONS
|
||||
//******************************************************************************************************************
|
||||
|
||||
/**
|
||||
* Get data of given lehrveranstaltung.
|
||||
* @param $lehrveranstaltung_id
|
||||
* @return mixed
|
||||
*/
|
||||
private function _getLVData($lehrveranstaltung_id)
|
||||
{
|
||||
$this->LehrveranstaltungModel->addSelect('
|
||||
tbl_lehrveranstaltung.oe_kurzbz,
|
||||
oe.bezeichnung AS "lv_oe_bezeichnung",
|
||||
tbl_lehrveranstaltung.studiengang_kz,
|
||||
stg.bezeichnung AS "lv_stg_bezeichnung",
|
||||
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');
|
||||
$this->LehrveranstaltungModel->addJoin('public.tbl_studiengang stg', 'ON stg.studiengang_kz = tbl_lehrveranstaltung.studiengang_kz');
|
||||
$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
|
||||
*/
|
||||
private function _sendMail_toApprove($data_arr)
|
||||
{
|
||||
// Loop through 'container' of mail recipients
|
||||
foreach($data_arr as $data)
|
||||
{
|
||||
// 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,
|
||||
$to,
|
||||
'Bestellung neuer Lehraufträge',
|
||||
'sancho_header_min_bw.jpg',
|
||||
'sancho_footer_min_bw.jpg'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cluster the data array by entitled mail receiver.
|
||||
* Returning array is clustered as follows:
|
||||
* Array
|
||||
* [uid]
|
||||
* Array
|
||||
* [studiensemester_kurzbz] // studiensemester of lehreinheit
|
||||
* Array
|
||||
* [oe_kurzbz] // oe of lehreinheits lehrveranstaltung
|
||||
* [oe_bezeichnung]
|
||||
* Array
|
||||
* [stg_kz] // stg of lehreinheits lehrveranstaltung
|
||||
* [stg_kurzbz]
|
||||
* [stg_bezeichnung]
|
||||
* [amount] // amount of new ordered lehrauftraege of that stg
|
||||
* @param $data_arr
|
||||
* @return array
|
||||
*
|
||||
*/
|
||||
private function _clusterData_byReceiver($data_arr)
|
||||
{
|
||||
$mail_data_arr = array(); // final array with all data clustered by mail receiver
|
||||
|
||||
// Loop through 'container' of studiensemester
|
||||
foreach ($data_arr as $data)
|
||||
{
|
||||
$data_len = count($data) - 1;
|
||||
|
||||
// Loop through 'container' of organisational units
|
||||
for ($i = 0; $i < $data_len; $i++)
|
||||
{
|
||||
// Get all users entitled by organisational unit
|
||||
$result = $this->BenutzerrolleModel->getBenutzerByBerechtigung(self::BERECHTIGUNG_LEHRAUFTRAG_ERTEILEN, $data[$i]['oe_kurzbz']);
|
||||
|
||||
if ($berechtigung_arr = getData($result))
|
||||
{
|
||||
// Loop through entitled users
|
||||
foreach ($berechtigung_arr as $berechtigung)
|
||||
{
|
||||
// Search if UID exists inside mail_data_arr
|
||||
$uid_index = array_search($berechtigung->uid, array_column($mail_data_arr, 'uid'));
|
||||
|
||||
// If UID is new, add UID to final array
|
||||
if ($uid_index === false)
|
||||
{
|
||||
// add UID with corresponding data
|
||||
$mail_data_arr [] = array(
|
||||
'uid' => $berechtigung->uid,
|
||||
array(
|
||||
'studiensemester_kurzbz' => $data['studiensemester_kurzbz'],
|
||||
$data[$i]
|
||||
)
|
||||
);
|
||||
} // Else if UID exists
|
||||
else
|
||||
{
|
||||
// Search if studiensemester exists
|
||||
$ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr, 'studiensemester_kurzbz'));
|
||||
|
||||
// If studiensemester is new, add studiensemester to existing UID
|
||||
if ($ss_index === false)
|
||||
{
|
||||
$mail_data_arr[$uid_index] []= array(
|
||||
'studiensemester_kurzbz' => $data['studiensemester_kurzbz'],
|
||||
$data[$i]
|
||||
);
|
||||
}
|
||||
// Else if studiensemester exists
|
||||
else
|
||||
{
|
||||
// Add corresponding data to existing studiensemester of UID
|
||||
$mail_data_arr[$uid_index]['studiensemester_kurbz'][] = $data[$i];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
* @return string HTML table to be embedded in eMail
|
||||
*/
|
||||
private function _renderData_LehrauftraegeToApprove($data_arr)
|
||||
{
|
||||
$html = '';
|
||||
foreach ($data_arr as $studiensemester_container)
|
||||
{
|
||||
if (is_array($studiensemester_container)) // is_array 'trims' the outer associative key [uid]
|
||||
{
|
||||
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>
|
||||
<span style="font-size: small;"><b>Studiensemester: '. $studiensemester. '</b></span>
|
||||
<br><br>
|
||||
<table style="width: 100%; border-collapse: collapse;" border="1" cellpadding="5">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width: 30%; font-size: 12px;"><span>LV-Organisationseinheit</span></th>
|
||||
<th style="width: 40%; font-size: 12px;"><span>Studiengang</span></th>
|
||||
<th style="width: 15%; font-size: 12px;"><span>STG-Kurzbezeichnung</span></th>
|
||||
<th style="width: 15%; font-size: 12px;"><span><strong>Anzahl neu bestellter Lehraufträge</strong></span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>'
|
||||
;
|
||||
|
||||
// HTML table body
|
||||
foreach ($studiensemester_container as $oe_container)
|
||||
{
|
||||
if (is_array($oe_container)) // is_array 'trims' the outer associative key [studiensemester_kurzbz]
|
||||
{
|
||||
if (isset($oe_container['oe_bezeichnung']))
|
||||
{
|
||||
$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]
|
||||
{
|
||||
$html .= '
|
||||
<tr>
|
||||
<td><span style="font-size: small;">'. $oe_bezeichnung. '</span></td>
|
||||
<td><span style="font-size: small;">'. $stg_data['stg_bezeichnung']. '</span></td>
|
||||
<td align="center"><span style="font-size: small;">'. $stg_data['stg_kurzbz']. '</span></td>
|
||||
<td align="center"><span style="font-size: small;"><strong>'. $stg_data['amount']. '</strong></span></td>
|
||||
</tr>
|
||||
';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// HTML table body end and link
|
||||
$html .= '
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<span style="font-size: small;">'. anchor($url, 'Lehraufträge Übersicht '. $studiensemester). '</span>
|
||||
<br><br>
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
return $html;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send Sancho eMail about ordered Lehrauftraege.
|
||||
* @param $data_arr
|
||||
*/
|
||||
private function _sendMail_toAccept($data_arr)
|
||||
{
|
||||
// Loop through 'container' of mail recipients
|
||||
foreach($data_arr as $data)
|
||||
{
|
||||
// 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,
|
||||
'studiensemester' => $data['studiensemester'],
|
||||
'anzahl' => $data['amount'],
|
||||
'link' => anchor($url, 'Lehraufträge Übersicht')
|
||||
);
|
||||
|
||||
sendSanchoMail(
|
||||
'LehrauftragNeueErteilte',
|
||||
$content_data_arr,
|
||||
$to,
|
||||
'Neu erteilte Lehraufträge zum Annehmen bereit'
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,8 @@ class Lehrauftrag extends Auth_Controller
|
||||
array(
|
||||
'index' => 'lehre/lehrauftrag_bestellen:r',
|
||||
'orderLehrauftrag' => 'lehre/lehrauftrag_bestellen:rw',
|
||||
'Dashboard' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:rw')
|
||||
'Dashboard' => array('lehre/lehrauftrag_bestellen:r', 'lehre/lehrauftrag_erteilen:rw'),
|
||||
'LehrendeUebersicht' => array('lehre/lehrauftrag_bestellen:r')
|
||||
)
|
||||
);
|
||||
|
||||
@@ -69,6 +70,14 @@ class Lehrauftrag extends Auth_Controller
|
||||
$this->load->view('lehre/lehrauftrag/Dashboard.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display of Lehrauftragsübersicht report
|
||||
*/
|
||||
public function LehrendeUebersicht()
|
||||
{
|
||||
$this->load->view('lehre/lehrauftrag/LehrendeUebersicht.php');
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
/**
|
||||
|
||||
@@ -168,9 +168,9 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
|
||||
/**
|
||||
* Check if lectors latest active Verwendung has inkludierte Lehre
|
||||
* - inkludierte_lehre is null: freelancer lector -> has NO inkludierte Lehre
|
||||
* - inkludierte_lehre -1: fix employed lector -> all inclusive Lehre
|
||||
* - inkludierte_lehre > 0: fix employed lector -> given value is inclusive Lehre
|
||||
* - inkludierte_lehre is null OR 0: freelancer lector -> has NO inkludierte Lehre
|
||||
* - inkludierte_lehre -1: fix employed lector -> has inkludierte Lehre (all inclusive)
|
||||
* - inkludierte_lehre > 0: fix employed lector -> has inkludierte Lehre (value is amount of hours included)
|
||||
*/
|
||||
public function checkInkludierteLehre()
|
||||
{
|
||||
@@ -178,7 +178,7 @@ class LehrauftragAkzeptieren extends Auth_Controller
|
||||
|
||||
if (hasData($result))
|
||||
{
|
||||
$this->outputJsonSuccess(!is_null($result->retval[0]->inkludierte_lehre));
|
||||
$this->outputJsonSuccess(!is_null($result->retval[0]->inkludierte_lehre) && $result->retval[0]->inkludierte_lehre != 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
* Provides data to the ajax get calls about the filter
|
||||
* This controller works with JSON calls on the HTTP GET or POST and the output is always JSON
|
||||
*/
|
||||
class Navigation extends Auth_Controller
|
||||
class Navigation extends FHC_Controller
|
||||
{
|
||||
const NAVIGATION_PAGE_PARAM = 'navigation_page'; // Navigation page parameter name
|
||||
|
||||
@@ -16,12 +16,9 @@ class Navigation extends Auth_Controller
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
array(
|
||||
'menu' => 'basis/vilesci:r',
|
||||
'header' => 'basis/vilesci:r'
|
||||
)
|
||||
);
|
||||
parent::__construct();
|
||||
|
||||
$this->load->library('AuthLib');
|
||||
|
||||
$this->_loadNavigationLib(); // Loads the NavigationLib with parameters
|
||||
}
|
||||
|
||||
@@ -130,5 +130,61 @@ class Vertragvertragsstatus_model extends DB_Model
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all contracts, where the status had been set to 'bestellt' on given date
|
||||
* @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW'
|
||||
* @param bool $further_processed If true, ALL ordered contracts of that day are retrieved, even if they were
|
||||
* were ALSO approved/accepted/cancelled (further processed) on that same day.
|
||||
* @return array
|
||||
*/
|
||||
public function getOrdered_fromDate($string_date = 'TODAY', $further_processed = false)
|
||||
{
|
||||
$condition = '
|
||||
vertragsstatus_kurzbz = \'bestellt\' AND
|
||||
(datum)::date = date \''. $string_date .'\'
|
||||
';
|
||||
|
||||
if (!$further_processed)
|
||||
{
|
||||
$condition .= '
|
||||
AND
|
||||
vertrag_id NOT IN (
|
||||
SELECT vertrag_id
|
||||
FROM lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE vertragsstatus_kurzbz IN (\'erteilt\', \'akzeptiert\', \'storno\')
|
||||
)
|
||||
';
|
||||
}
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all contracts, where the status had been set to 'erteilt' on given date
|
||||
* @param string $string_date e.g. '01.11.2019' or special Date/Time inputs like 'YESTERDAY', 'TODAY', 'NOW'
|
||||
* @param bool $further_processed If true, ALL contracts approved on that day are retrieved, even if they were
|
||||
* were ALSO accepted/cancelled (further processed) on that same day.
|
||||
* @return array
|
||||
*/
|
||||
public function getApproved_fromDate($string_date = 'TODAY', $further_processed = false)
|
||||
{
|
||||
$condition = '
|
||||
vertragsstatus_kurzbz = \'erteilt\' AND
|
||||
(datum)::date = date \''. $string_date .'\'
|
||||
';
|
||||
|
||||
if (!$further_processed)
|
||||
{
|
||||
$condition .= '
|
||||
AND
|
||||
vertrag_id NOT IN (
|
||||
SELECT vertrag_id
|
||||
FROM lehre.tbl_vertrag_vertragsstatus
|
||||
WHERE vertragsstatus_kurzbz IN (\'akzeptiert\', \'storno\')
|
||||
)
|
||||
';
|
||||
}
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class Benutzerfunktion_model extends DB_Model
|
||||
|
||||
if (is_string($funktion_kurzbz))
|
||||
{
|
||||
$query .= " AND funktion_kurzbz = ".$funktion_kurzbz.")";
|
||||
$query .= " AND funktion_kurzbz = '".$funktion_kurzbz."'";
|
||||
}
|
||||
elseif (is_array($funktion_kurzbz) && count($funktion_kurzbz) > 0)
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@ class Benutzerrolle_model extends DB_Model
|
||||
$this->dbTable = 'system.tbl_benutzerrolle';
|
||||
$this->pk = 'benutzerberechtigung_id';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if the given user is an admin
|
||||
*/
|
||||
@@ -19,9 +19,9 @@ class Benutzerrolle_model extends DB_Model
|
||||
{
|
||||
// Join with the table tbl_benutzer
|
||||
$this->addJoin('public.tbl_benutzer', 'uid');
|
||||
|
||||
|
||||
$result = $this->loadWhere(array('person_id' => $person_id, 'rolle_kurzbz' => 'admin'));
|
||||
|
||||
|
||||
if (!isError($result))
|
||||
{
|
||||
if (hasData($result))
|
||||
@@ -33,25 +33,35 @@ class Benutzerrolle_model extends DB_Model
|
||||
$result = success(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit.
|
||||
* @param $berechtigung_kurzbz
|
||||
* @param null $oe_kurzbz
|
||||
* @return array
|
||||
*/
|
||||
public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null){
|
||||
/**
|
||||
* Get user who are authorized with berechtigung and, if given, authorized for the specific organisational unit.
|
||||
* @param $berechtigung_kurzbz
|
||||
* @param null $oe_kurzbz
|
||||
* @return array
|
||||
*/
|
||||
public function getBenutzerByBerechtigung($berechtigung_kurzbz, $oe_kurzbz = null)
|
||||
{
|
||||
$params = array();
|
||||
$query = '
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
system.vw_berechtigung_nichtrekursiv
|
||||
WHERE
|
||||
berechtigung_kurzbz = ?';
|
||||
|
||||
$condition = array('berechtigung_kurzbz' => $berechtigung_kurzbz);
|
||||
$params[] = $berechtigung_kurzbz;
|
||||
|
||||
if (is_string($oe_kurzbz))
|
||||
{
|
||||
$condition['oe_kurzbz'] = $oe_kurzbz;
|
||||
}
|
||||
if (!is_null($oe_kurzbz))
|
||||
{
|
||||
$query .= ' AND oe_kurzbz = ?';
|
||||
$params[] = $oe_kurzbz;
|
||||
}
|
||||
|
||||
return $this->loadWhere($condition);
|
||||
}
|
||||
}
|
||||
return $this->execQuery($query, $params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
$this->load->view(
|
||||
'templates/FHC-Header',
|
||||
array(
|
||||
'title' => 'Lehrauftrag bestellen',
|
||||
'jquery' => true,
|
||||
'bootstrap' => true,
|
||||
'fontawesome' => true,
|
||||
'sbadmintemplate' => true,
|
||||
'ajaxlib' => true,
|
||||
'navigationwidget' => true,
|
||||
)
|
||||
);
|
||||
?>
|
||||
|
||||
<body>
|
||||
<?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">
|
||||
Lehraufträge - Lehrendenübersicht
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<iframe src="<?php echo base_url() . '/addons/reports/cis/vorschau.php?statistik_kurzbz=LehrauftraegeOeUebersicht'; ?>"
|
||||
style="height: 950px; width: 100%; border: none">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<?php $this->load->view('templates/FHC-Footer'); ?>
|
||||
@@ -14,7 +14,6 @@ $this->load->view(
|
||||
'ajaxlib' => true,
|
||||
'dialoglib' => true,
|
||||
'tablewidget' => true,
|
||||
'navigationwidget' => true,
|
||||
'phrases' => array(
|
||||
'global' => array('lehrauftraegeAnnehmen'),
|
||||
),
|
||||
@@ -48,23 +47,52 @@ $this->load->view(
|
||||
<div class="well">
|
||||
<h4>Wie nehme ich Lehraufträge an?</h4>
|
||||
<div class="panel panel-body">
|
||||
<p>
|
||||
Sobald Ihnen ein oder mehrere Lehraufträge erteilt wurden, können Sie diese annehmen.
|
||||
<ol>
|
||||
<li>Klicken Sie unten auf das Status-Icon 'Nur erteilte anzeigen' oder 'Alle anzeigen'</li>
|
||||
<li>Wählen Sie einzelne Lehraufträge mit Klick auf die Zeilen oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Wählen Sie die Lehraufträge, die Sie annehmen möchten, selbst oder alle über den Button 'Alle auswählen'.</li>
|
||||
<li>Geben Sie Ihr CIS-Passwort ein und klicken auf Lehrauftrag annehmen.</li>
|
||||
</ol>
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Warum kann ich manche Lehraufträge nicht auswählen?</h4>
|
||||
<div class="panel panel-body">
|
||||
<p>
|
||||
Nur Lehraufträge mit dem Status 'erteilt' können gewählt werden.<br>
|
||||
Angenommene Lehraufträge oder Lehraufträge in Bearbeitung werden nur zu Ihrer Information angezeigt.
|
||||
</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Filter</h4>
|
||||
<div class="panel panel-body">
|
||||
<div class="col-xs-12 col-md-8 col-lg-6">
|
||||
<table class="table table-bordered">
|
||||
<tr class="text-center">
|
||||
<td class="col-xs-1"><i class='fa fa-users'></i></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-tag.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><img src="../../../public/images/icons/fa-user-check.png" style="height: 30px; width: 30px;"></td>
|
||||
<td class="col-xs-1"><i class='fa fa-handshake-o'></i></td>
|
||||
</tr>
|
||||
<tr class="text-center">
|
||||
<td><b>Alle</b><br>Alle Lehraufträge mit jedem Status</td>
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND bestellte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte Lehraufträge, die in Bearbeitung sind</td>
|
||||
<td><b>Angenommen</b><br>Nur von Ihnen angenommene Lehraufträge</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
<h4>Auswahl</h4>
|
||||
<div class="panel panel-body">
|
||||
<ul>
|
||||
<li>Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)</li>
|
||||
<li>Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile</li>
|
||||
<li>Alle auswählen: Button 'Alle auswählen'</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -121,7 +149,7 @@ $this->load->view(
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div><!-- end container -->
|
||||
</div><!-- end page-wrapper -->
|
||||
<br>
|
||||
|
||||
@@ -85,10 +85,16 @@ FROM
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -183,10 +189,16 @@ FROM
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -296,7 +308,7 @@ $filterWidgetArray = array(
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'Auftrag',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Semester',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
@@ -357,14 +369,14 @@ $filterWidgetArray = array(
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input", width: "7%"},
|
||||
auftrag: {headerFilter:"input", width: "23%"},
|
||||
auftrag: {headerFilter:"input", width: "15%"},
|
||||
semester: {headerFilter:"input"},
|
||||
lv_oe_kurzbz: {headerFilter:"input", width: "12%"},
|
||||
lv_oe_kurzbz: {headerFilter:"input", width: "8%"},
|
||||
gruppe: {headerFilter:"input", width: "5%"},
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}, width: "5%"},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
betrag: {align:"right", width: "6%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"},
|
||||
width: "8%"},
|
||||
@@ -372,9 +384,9 @@ $filterWidgetArray = array(
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
|
||||
@@ -116,7 +116,7 @@ $this->load->view(
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur geänderte Lehraufträge, die den Status 'bestellt' oder 'erteilt' haben</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -87,10 +87,16 @@ FROM
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -188,10 +194,16 @@ FROM
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -306,7 +318,7 @@ $filterWidgetArray = array(
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'Auftrag',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Semester',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
@@ -373,7 +385,7 @@ $filterWidgetArray = array(
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
@@ -385,16 +397,16 @@ $filterWidgetArray = array(
|
||||
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money", bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
vertrag_id: {visible: false},
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false},
|
||||
|
||||
@@ -86,6 +86,7 @@ $this->load->view(
|
||||
<h4>Geänderte Lehraufträge</h4>
|
||||
<div class="panel panel-body">
|
||||
Im FAS können Änderungen an Stunden/Stundensatz eines Lehrauftrags durchgeführt werden, solange dieser nicht vom Lehrenden angenommen wurde.<br>
|
||||
Diese müssen dann erneut bestellt werden.<br><br>
|
||||
Wenn Änderungen an bereits bestellten oder erteilten Lehraufträgen vorgenommen wurden, werden diese in einem tooltip angezeigt.<br>
|
||||
Fahren Sie dazu mit der Maus über dem Status-Icon am Beginn der Zeile.<br>
|
||||
</div>
|
||||
@@ -117,7 +118,7 @@ $this->load->view(
|
||||
<td><b>Bestellt</b><br>Nur bestellte UND geänderte bestellte Lehraufträge</td>
|
||||
<td><b>Erteilt</b><br>Nur erteilte UND geänderte erteilte Lehraufträge</td>
|
||||
<td><b>Angenommen</b><br>Nur vom Lehrenden angenommene Lehraufträge</td>
|
||||
<td><b>Geändert</b><br>Nur geänderte Lehraufträge, die den Status 'bestellt' oder 'erteilt' haben</td>
|
||||
<td><b>Geändert</b><br>Nur Lehraufträge, die geändert wurden, nachdem sie bereits bestellt oder erteilt worden sind</td>
|
||||
<td><b>Dummies</b><br>Nur Lehraufträge, die mit einem Dummylektor angelegt sind</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -16,6 +16,36 @@ SELECT
|
||||
studiensemester_kurzbz,
|
||||
studiengang_kz,
|
||||
stg_typ_kurzbz,
|
||||
/* get valid STPL(s), to which the lehrveranstaltung is assigned to (can be more) */
|
||||
/* therefore join over lv, studiensemester and semester */
|
||||
(
|
||||
SELECT
|
||||
string_agg(bezeichnung, \', \')
|
||||
FROM (
|
||||
SELECT stpl.bezeichnung
|
||||
FROM lehre.tbl_studienplan stpl
|
||||
JOIN lehre.tbl_studienplan_semester stplsem USING (studienplan_id)
|
||||
JOIN lehre.tbl_studienplan_lehrveranstaltung stpllv USING (studienplan_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheit le USING (lehrveranstaltung_id)
|
||||
WHERE
|
||||
/* join over lv of the le */
|
||||
le.lehreinheit_id = auftraege.lehreinheit_id
|
||||
AND stpl.aktiv
|
||||
/* then restrict on stpl of les studiensemester */
|
||||
AND stplsem.studiensemester_kurzbz = le.studiensemester_kurzbz
|
||||
/* then restrict on stpl of lvs semester*/
|
||||
AND stplsem.semester = stpllv.semester
|
||||
/* then restrict on most recent inserted studienplan of the lv */
|
||||
AND studienplan_id = (
|
||||
SELECT stpllv.studienplan_id
|
||||
FROM lehre.tbl_studienplan_lehrveranstaltung
|
||||
WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id
|
||||
ORDER BY insertamum DESC
|
||||
LIMIT 1
|
||||
)
|
||||
) AS tmp_stpl
|
||||
) AS "studienplan_bezeichnung",
|
||||
orgform_kurzbz,
|
||||
person_id,
|
||||
typ,
|
||||
@@ -88,10 +118,16 @@ FROM
|
||||
SELECT *,
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_lehrauftraege.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -190,10 +226,16 @@ FROM
|
||||
LIMIT 1) AS "mitarbeiter_uid",
|
||||
/* concatinated and aggregated gruppen */
|
||||
(SELECT
|
||||
string_agg(concat(stg_typ_kurzbz, \'-\', semester, verband, gruppe
|
||||
|| gruppe_kurzbz), \', \')
|
||||
string_agg(
|
||||
CASE WHEN gruppe_kurzbz is null THEN
|
||||
concat(upper(grpstg.typ || grpstg.kurzbz), \'-\', semester, verband, gruppe)
|
||||
ELSE
|
||||
gruppe_kurzbz
|
||||
END
|
||||
, \', \')
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe
|
||||
JOIN public.tbl_studiengang grpstg USING(studiengang_kz)
|
||||
WHERE
|
||||
lehreinheit_id = tmp_projektbetreuung.lehreinheit_id
|
||||
) AS "gruppe",
|
||||
@@ -305,10 +347,11 @@ $filterWidgetArray = array(
|
||||
'Studiensemester',
|
||||
'Studiengang-KZ',
|
||||
'Studiengang',
|
||||
'Studienplan',
|
||||
'OrgForm',
|
||||
'Person-ID',
|
||||
'Typ',
|
||||
'Auftrag',
|
||||
'LV- / Projektbezeichnung',
|
||||
'Semester',
|
||||
'Organisationseinheit',
|
||||
'Gruppe',
|
||||
@@ -377,11 +420,12 @@ $filterWidgetArray = array(
|
||||
projektarbeit_id: {visible: false},
|
||||
studiensemester_kurzbz: {headerFilter:"input"},
|
||||
studiengang_kz: {visible: false},
|
||||
stg_typ_kurzbz: {visible: false},
|
||||
stg_typ_kurzbz: {headerFilter:"input", width: "5%"},
|
||||
studienplan_bezeichnung: {headerFilter:"input", width: "7%"},
|
||||
orgform_kurzbz: {headerFilter:"input"},
|
||||
person_id: {visible: false},
|
||||
typ: {headerFilter:"input"},
|
||||
auftrag: {headerFilter:"input", width:"20%"},
|
||||
auftrag: {headerFilter:"input", width:"15%"},
|
||||
semester: {headerFilter:"input"},
|
||||
lv_oe_kurzbz: {headerFilter:"input"},
|
||||
gruppe: {headerFilter:"input"},
|
||||
@@ -390,7 +434,7 @@ $filterWidgetArray = array(
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:1}},
|
||||
stundensatz: {visible: false},
|
||||
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
|
||||
betrag: {align:"right", width: "8%", formatter: form_formatNulltoStringNumber,
|
||||
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
|
||||
bottomCalc:"sum", bottomCalcParams:{precision:2}, bottomCalcFormatter:"money",
|
||||
bottomCalcFormatterParams:{decimal: ",", thousand: ".", symbol:"€"}},
|
||||
@@ -398,12 +442,12 @@ $filterWidgetArray = array(
|
||||
vertrag_stunden: {visible: false},
|
||||
vertrag_betrag: {visible: false},
|
||||
mitarbeiter_uid: {visible: false},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip},
|
||||
bestellt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: bestellt_tooltip, width: "8%"},
|
||||
erteilt: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: erteilt_tooltip, width: "8%"},
|
||||
akzeptiert: {align:"center", headerFilter:"input", mutator: mut_formatStringDate, tooltip: akzeptiert_tooltip, width: "8%"},
|
||||
bestellt_von: {visible: false},
|
||||
erteilt_von: {visible: false},
|
||||
akzeptiert_von: {visible: false},
|
||||
akzeptiert_von: {visible: false}
|
||||
}', // col properties
|
||||
);
|
||||
|
||||
|
||||
@@ -758,9 +758,10 @@ function convertDateTime(string, type)
|
||||
* Lädt die Anmeldungen zu einer Prüfung
|
||||
* @param {type} pruefungstermin_id ID des Prüfungstermins
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @param saveReihungAfterShow speichert Reihung neu wenn true
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
|
||||
function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id, saveReihungAfterShow = false)
|
||||
{
|
||||
$("#kommentar").empty();
|
||||
$("#kommentarSpeichernButton").empty();
|
||||
@@ -778,6 +779,9 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id)
|
||||
writeAnmeldungen(data);
|
||||
$("#sortable").sortable();
|
||||
$("#sortable").disableSelection();
|
||||
|
||||
if(saveReihungAfterShow)
|
||||
saveReihung(pruefungstermin_id, lehrveranstaltung_id);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -806,7 +810,8 @@ function writeAnmeldungen(data)
|
||||
{
|
||||
case 'angemeldet':
|
||||
liste += "<li class='ui-state-default' id='"+d.student.uid+"'><span class='ui-icon ui-icon-arrowthick-2-n-s'></span><a href='#' onclick='showKommentar(\""+vorname+"\",\""+nachname+"\", \""+d.pruefungsanmeldung_id+"\", \""+d.kommentar+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"+vorname+" "+nachname+"</a>";
|
||||
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 25%;'><input style='vertical-align: top; height: 24px;' type='button' value='<?php echo $p->t('pruefung/bestaetigen'); ?>' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
|
||||
liste += "<div style='width: 3%; text-align: right;'>"+count+"</div><div style='text-align: center; width: 34%;'><input style='vertical-align: top; height: 24px;' type='button' value='<?php echo $p->t('pruefung/bestaetigen'); ?>' onclick='anmeldungBestaetigen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'>";
|
||||
liste += "<input style='vertical-align: top; height: 24px; background-color: #dd514c;' type='button' value='X' onclick='anmeldungLoeschen(\""+d.pruefungsanmeldung_id+"\", \""+terminId+"\", \""+lehrveranstaltung_id+"\");'></div>";
|
||||
if(d.wuensche !== null)
|
||||
{
|
||||
liste += "<div class='anmerkungInfo'><a href='#' title='<?php echo $p->t('pruefung/anmerkungDesStudenten'); ?>"+d.wuensche+"'><img style='width: 20px;' src='../../../../skin/images/button_lvinfo.png'></a></div>";
|
||||
@@ -945,6 +950,43 @@ function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltun
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht eine Prüfungsanmeldung
|
||||
* @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung
|
||||
* @param {type} termin_id ID des Prüfungstermines
|
||||
* @param {type} lehrveranstaltung_id ID der Lehrveranstaltung
|
||||
* @returns {undefined}
|
||||
*/
|
||||
function anmeldungLoeschen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id)
|
||||
{
|
||||
if (!confirm("Möchten Sie die Anmeldung wirklich löschen?"))
|
||||
return undefined;
|
||||
|
||||
$.ajax({
|
||||
dataType: 'json',
|
||||
url: "./pruefungsanmeldung.json.php",
|
||||
type: "POST",
|
||||
data: {
|
||||
method: "anmeldungLoeschen",
|
||||
pruefungsanmeldung_id: pruefungsanmeldung_id
|
||||
},
|
||||
error: loadError,
|
||||
success: function(data){
|
||||
if(data.error === 'false' && data.result === true)
|
||||
{
|
||||
if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined')
|
||||
{
|
||||
showAnmeldungen(termin_id, lehrveranstaltung_id, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
messageBox("message", data.errormsg, "red", "highlight", 1000);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Ändert den Status aller Anmeldungen eines Termins auf "bestätigt"
|
||||
* @param {type} termin_id ID des Prüfungstermines
|
||||
|
||||
@@ -97,6 +97,9 @@ switch($method)
|
||||
case 'anmeldungBestaetigen':
|
||||
$data = anmeldungBestaetigen($uid);
|
||||
break;
|
||||
case 'anmeldungLoeschen':
|
||||
$data = anmeldungLoeschen();
|
||||
break;
|
||||
case 'alleBestaetigen':
|
||||
$data = alleBestaetigen($uid);
|
||||
break;
|
||||
@@ -1066,6 +1069,30 @@ function anmeldungBestaetigen($uid)
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht eine Prüfungsanmeldung
|
||||
* @return Array
|
||||
*/
|
||||
function anmeldungLoeschen()
|
||||
{
|
||||
$pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"];
|
||||
$anmeldung = new pruefungsanmeldung();
|
||||
|
||||
if($anmeldung->delete($pruefungsanmeldung_id))
|
||||
{
|
||||
$data['result']=true;
|
||||
$data['error']='false';
|
||||
$data['errormsg']='';
|
||||
}
|
||||
else
|
||||
{
|
||||
$data['error']='true';
|
||||
$data['errormsg']=$anmeldung->errormsg;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lädt alle Studiengänge
|
||||
* @return Array
|
||||
|
||||
@@ -693,8 +693,11 @@ if(!$error)
|
||||
//Lehreinheitmitarbeiterzuteilung loeschen
|
||||
if(isset($_POST['lehreinheit_id']) && is_numeric($_POST['lehreinheit_id']) && isset($_POST['mitarbeiter_uid']))
|
||||
{
|
||||
// Wenn der Mitarbeiter schon einen Vertrag hat, wird das Loeschen verhindert
|
||||
if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id']))
|
||||
// Wenn der Mitarbeiter schon einen Vertrag hat UND
|
||||
// der config Eintrag zum Anzeigen der Vertragsdetails true ist,
|
||||
// wird das Loeschen verhindert
|
||||
if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id']) &&
|
||||
(defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Löschen nur nach Stornierung des Vertrags möglich.';
|
||||
|
||||
@@ -43,6 +43,10 @@ var lehrveranstaltungLvGesamtNotenSelectUID=null; //LehreinheitID des Noten Eint
|
||||
var lehrveranstaltungNotenTreeloaded=false;
|
||||
var lehrveranstaltungGesamtNotenTreeloaded=false;
|
||||
var LehrveranstaltungAusbildungssemesterFilter='';
|
||||
|
||||
// Config-Eintrag, ob Vertragsdetails angezeigt werden sollen
|
||||
var lehrveranstaltung_vertragsdetails_anzeigen = Boolean(<?php echo (defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN) ? true : false ?>);
|
||||
|
||||
// ********** Observer und Listener ************* //
|
||||
|
||||
// ****
|
||||
@@ -1331,12 +1335,9 @@ function LeMitarbeiterAuswahl()
|
||||
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-checkbox-bismelden').checked=false;
|
||||
|
||||
var gesamtkosten = LeMitarbeiterGesamtkosten();
|
||||
|
||||
// Prüfe ob Vertragsdetails angezeigt werden
|
||||
var vertragsdetails_anzeigen = new Boolean(<?php echo (defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN) ? 'true' : 'false' ?>);
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (vertragsdetails_anzeigen) {
|
||||
if (lehrveranstaltung_vertragsdetails_anzeigen) {
|
||||
|
||||
// Reset attributes
|
||||
document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-label-vertragsstatus').setAttribute("style", "font-weight: normal");
|
||||
|
||||
@@ -41,11 +41,11 @@ function onLVAFilter()
|
||||
var filter=document.getElementById('tempus-lva-filter').value;
|
||||
var vorher='';
|
||||
var nachher='';
|
||||
|
||||
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
|
||||
|
||||
|
||||
var orig=datasources.substring(0);
|
||||
var idx = datasources.indexOf("&filter=")
|
||||
if(idx!=-1)
|
||||
@@ -56,13 +56,14 @@ function onLVAFilter()
|
||||
nachher=datasources.slice(idx2);
|
||||
datasources=vorher+nachher;
|
||||
}
|
||||
|
||||
|
||||
datasources=datasources+"&filter="+encodeURIComponent(filter);
|
||||
|
||||
|
||||
//alert('Orig:'+orig+' Source: '+datasources+' Vorher:'+vorher+' Nachher:'+nachher);
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
|
||||
}
|
||||
|
||||
|
||||
// LVA-Panel aktualisieren
|
||||
function onLektorRefresh()
|
||||
{
|
||||
@@ -121,7 +122,7 @@ function LehrstundeGetSortOrder()
|
||||
{
|
||||
var toolbar = document.getElementById('toolbarTimeTableSort');
|
||||
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
|
||||
|
||||
|
||||
for each(var button in tbbuttons)
|
||||
{
|
||||
if(button.getAttribute('checked')=='true')
|
||||
@@ -132,17 +133,61 @@ function LehrstundeGetSortOrder()
|
||||
return 'stundenDESC';
|
||||
}
|
||||
|
||||
// Setzt den Vertragsfilter zurueck
|
||||
function LVAFilterReset()
|
||||
{
|
||||
//Filtermarkierung von allen entfernen
|
||||
var toolbar = document.getElementById('toolbarTimeTableFilterVertrag');
|
||||
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
|
||||
|
||||
for each(var button in tbbuttons)
|
||||
{
|
||||
if(button.id)
|
||||
button.setAttribute('checked','false');
|
||||
}
|
||||
}
|
||||
|
||||
// LVA-Panel auf Vertragsstatus filtern
|
||||
function onLVAFilterVertrag(item)
|
||||
{
|
||||
var vorher='';
|
||||
var nachher='';
|
||||
var vertragsstatus=item.getAttribute('value');
|
||||
|
||||
LVAFilterReset();
|
||||
//Element als gedrueckt markieren
|
||||
item.setAttribute('checked','true');
|
||||
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
|
||||
|
||||
var orig=datasources.substring(0);
|
||||
var idx = datasources.indexOf("&vertrag=")
|
||||
if(idx!=-1)
|
||||
{
|
||||
idx2=datasources.indexOf("&",idx+10);
|
||||
vorher=datasources.slice(0,idx);
|
||||
if(idx2!=-1)
|
||||
nachher=datasources.slice(idx2);
|
||||
datasources=vorher+nachher;
|
||||
}
|
||||
|
||||
datasources=datasources+"&vertrag="+encodeURIComponent(vertragsstatus);
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
|
||||
}
|
||||
|
||||
// LVA-Panel filtern
|
||||
function onLVASort(item)
|
||||
{
|
||||
var vorher='';
|
||||
var nachher='';
|
||||
var order=item.getAttribute('value');
|
||||
|
||||
|
||||
//Sortiermarkierung von allen entfernen
|
||||
var toolbar = document.getElementById('toolbarTimeTableSort');
|
||||
var tbbuttons = toolbar.getElementsByTagName('toolbarbutton');
|
||||
|
||||
|
||||
for each(var button in tbbuttons)
|
||||
{
|
||||
if(button.id)
|
||||
@@ -150,11 +195,11 @@ function onLVASort(item)
|
||||
}
|
||||
//Element als gedrueckt markieren
|
||||
item.setAttribute('checked','true');
|
||||
|
||||
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var datasources=vboxLehrveranstalungPlanung.getAttribute('datasources');
|
||||
|
||||
|
||||
var orig=datasources.substring(0);
|
||||
var idx = datasources.indexOf("&order=")
|
||||
if(idx!=-1)
|
||||
@@ -165,9 +210,9 @@ function onLVASort(item)
|
||||
nachher=datasources.slice(idx2);
|
||||
datasources=vorher+nachher;
|
||||
}
|
||||
|
||||
|
||||
datasources=datasources+"&order="+encodeURIComponent(order);
|
||||
|
||||
|
||||
//alert('Orig:'+orig+' Source: '+datasources+' Vorher:'+vorher+' Nachher:'+nachher);
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources',datasources);
|
||||
}
|
||||
@@ -301,7 +346,7 @@ function StplSearchRoom(target)
|
||||
saveScrollPositionTimeTableWeek();
|
||||
if(typeof(target)==='undefined')
|
||||
target = document.popupNode;
|
||||
|
||||
|
||||
var contentFrame=document.getElementById('iframeTimeTableWeek');
|
||||
var daten=document.getElementById('TimeTableWeekData');
|
||||
var datum=parseInt(daten.getAttribute("datum"));
|
||||
@@ -316,7 +361,7 @@ function StplSearchRoom(target)
|
||||
var aktion=target.getAttribute("aktion");
|
||||
aktion+="_single_search";
|
||||
var idList=target.getAttribute("idList");
|
||||
|
||||
|
||||
var attributes="\n?type="+type+"&datum="+datum+"&ort="+ort+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&gruppe="+gruppe;
|
||||
attributes+=idList+"&aktion="+aktion;
|
||||
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
||||
@@ -336,7 +381,7 @@ function TimeTableWeekMarkiere(item)
|
||||
if(!item)
|
||||
{
|
||||
items = document.getElementsByTagName('button');
|
||||
|
||||
|
||||
for each(var button in items)
|
||||
{
|
||||
if(button.id && button.id.startsWith('buttonSTPL'))
|
||||
@@ -346,7 +391,7 @@ function TimeTableWeekMarkiere(item)
|
||||
//button.style.fontStyle='normal';
|
||||
//button.style.fontWeight='normal';
|
||||
button.style.border = "1px solid transparent";
|
||||
|
||||
|
||||
button.style.MozBorderTopColors='transparent';
|
||||
button.style.MozBorderLeftColors='transparent';
|
||||
button.style.MozBorderBottomColors='transparent';
|
||||
@@ -358,19 +403,19 @@ function TimeTableWeekMarkiere(item)
|
||||
else
|
||||
{
|
||||
item.setAttribute('marked','true');
|
||||
|
||||
|
||||
item.style.color='darkred';
|
||||
//item.style.fontStyle='italic';
|
||||
//item.style.fontWeight='bold';
|
||||
|
||||
|
||||
item.style.border = "1px solid darkred";
|
||||
|
||||
|
||||
item.style.MozBorderTopColors='darkred';
|
||||
item.style.MozBorderLeftColors='darkred';
|
||||
item.style.MozBorderBottomColors='darkred';
|
||||
item.style.MozBorderRightColors='darkred';
|
||||
|
||||
TimeTableWeekLastMarkedItem=item;
|
||||
|
||||
TimeTableWeekLastMarkedItem=item;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,7 +508,7 @@ function TimeTableWeekClick(event)
|
||||
}
|
||||
else if(event.shiftKey)
|
||||
{
|
||||
//Wenn mit Shift auf eine Stunde geklickt wird, dann werden alle Stunden markiert,
|
||||
//Wenn mit Shift auf eine Stunde geklickt wird, dann werden alle Stunden markiert,
|
||||
//die zwischen der zuletzt markierten und dieser Stunde liegen
|
||||
start = parseInt(TimeTableWeekLastMarkedItem.id.substring('buttonSTPL'.length));
|
||||
ende = parseInt(event.target.id.substring('buttonSTPL'.length));
|
||||
@@ -473,7 +518,7 @@ function TimeTableWeekClick(event)
|
||||
ende = start;
|
||||
start = hlp;
|
||||
}
|
||||
|
||||
|
||||
for(var i=start;i<=ende;i++)
|
||||
{
|
||||
item = document.getElementById('buttonSTPL'+i);
|
||||
@@ -482,13 +527,13 @@ function TimeTableWeekClick(event)
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
|
||||
//alle markierungen entfernen
|
||||
TimeTableWeekMarkiere();
|
||||
|
||||
|
||||
//aktuellen Eintrag markieren
|
||||
TimeTableWeekMarkiere(event.target);
|
||||
|
||||
|
||||
//Details anzeigen
|
||||
onStplDetail(event);
|
||||
}
|
||||
@@ -510,7 +555,7 @@ function TimeTableWeekDblClick(event)
|
||||
{
|
||||
buttonunr=button.getAttribute('unr');
|
||||
buttonwochentag=button.getAttribute('wochentag');
|
||||
|
||||
|
||||
if(buttonunr==unr && buttonwochentag==wochentag)
|
||||
{
|
||||
TimeTableWeekMarkiere(button);
|
||||
@@ -597,7 +642,7 @@ function STPLDetailSave(dialog)
|
||||
}
|
||||
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
|
||||
req.add('type', 'savestundenplaneintrag');
|
||||
|
||||
req.add('stundenplan_id', id);
|
||||
@@ -614,7 +659,7 @@ function STPLDetailSave(dialog)
|
||||
req.add('fix', fix);
|
||||
req.add('mitarbeiter_uid', mitarbeiter_uid);
|
||||
req.add('semester',semester);
|
||||
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
@@ -630,14 +675,14 @@ function STPLDetailSave(dialog)
|
||||
else
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
var treeStplDetails=parent.document.getElementById('treeStplDetails');
|
||||
//alert('url'+STPLlastDetailUrl);
|
||||
treeStplDetails.setAttribute('datasources', '');
|
||||
treeStplDetails.setAttribute('datasources', STPLlastDetailUrl+"&ts="+gettimestamp());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// ****
|
||||
@@ -647,7 +692,7 @@ function STPLDetailDelete()
|
||||
{
|
||||
//alert('url'+STPLlastDetailUrl);
|
||||
//return false;
|
||||
|
||||
|
||||
tree = document.getElementById('treeStplDetails');
|
||||
if(tree.currentIndex==-1)
|
||||
{
|
||||
@@ -657,15 +702,15 @@ function STPLDetailDelete()
|
||||
|
||||
var col = tree.columns ? tree.columns["stundenplan_id"] : "stundenplan_id";
|
||||
var stundenplanid = tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
|
||||
var col = tree.columns ? tree.columns["stpl-details-overlay-lehrstunde-reservierung"] : "stpl-details-overlay-lehrstunde-reservierung";
|
||||
var reservierung = tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
|
||||
if(confirm('Wollen Sie diesen Datensatz wirklich loeschen?'))
|
||||
{
|
||||
var url = '<?php echo APP_ROOT ?>content/tempusDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
|
||||
if(reservierung=='true')
|
||||
{
|
||||
req.add('type', 'deletereservierung');
|
||||
@@ -676,11 +721,11 @@ function STPLDetailDelete()
|
||||
req.add('type', 'deletestundenplaneintrag');
|
||||
req.add('stundenplan_id', stundenplanid);
|
||||
}
|
||||
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
if(val.dbdml_errormsg=='')
|
||||
@@ -691,7 +736,7 @@ function STPLDetailDelete()
|
||||
else
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
var treeStplDetails=parent.document.getElementById('treeStplDetails');
|
||||
//alert('url'+STPLlastDetailUrl);
|
||||
treeStplDetails.setAttribute('datasources', '');
|
||||
@@ -758,18 +803,18 @@ function TimetableDeleteEntries()
|
||||
var pers_uid=daten.getAttribute("pers_uid");
|
||||
var doIt=true;
|
||||
var aktion='stpl_delete_single';
|
||||
|
||||
|
||||
doIt=confirm('Es werden die gewaehlten Eintraege aus dem LV-Plan geloescht!\nSind Sie sicher?')
|
||||
|
||||
var attributes="\n?type="+type+"&datum="+datum+"&ort="+encodeURIComponent(ort)+"&pers_uid="+pers_uid+"\n&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"\n&gruppe="+gruppe;
|
||||
attributes+="&aktion="+aktion;
|
||||
var url = "<?php echo APP_ROOT; ?>content/lvplanung/timetable-week.xul.php";
|
||||
url+=attributes;
|
||||
|
||||
|
||||
//IDs der Stunden dazuhaengen
|
||||
idList = TimeTableWeekGetMarkedIdList();
|
||||
url+=idList
|
||||
|
||||
|
||||
if (url && doIt)
|
||||
location.href=url;
|
||||
}
|
||||
@@ -795,7 +840,7 @@ function BetriebsmittelZuordnen(item)
|
||||
{
|
||||
for(i in stunden)
|
||||
url = url+'&stunde[]='+stunden[i];
|
||||
|
||||
|
||||
// Alle StundenplanIDs holen von den Eintraegen die markiert sind
|
||||
var ids = TimeTableWeekGetMarkedIdArray();
|
||||
for(i in ids)
|
||||
@@ -805,7 +850,7 @@ function BetriebsmittelZuordnen(item)
|
||||
{
|
||||
// Wenn kein eintrag markiert ist, wird der genommen auf den geklickt wurde
|
||||
url = url+'&stunde[]'+item.getAttribute('stunde');
|
||||
|
||||
|
||||
idlist = item.getAttribute('idList');
|
||||
idarr = idlist.split(/&stundenplan_id[0-9]=/);
|
||||
for(i in idarr)
|
||||
@@ -815,6 +860,6 @@ function BetriebsmittelZuordnen(item)
|
||||
url = url+'&stplid[]'+idarr[i];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
window.open(url,'Details', 'height=350,width=800,left=100,top=100,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');
|
||||
}
|
||||
|
||||
@@ -22,7 +22,16 @@
|
||||
*/
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
include('../../config/vilesci.config.inc.php');
|
||||
include('../../config/global.config.inc.php');
|
||||
|
||||
if(defined('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN') && FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN)
|
||||
{
|
||||
$showvertragsfilter = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$showvertragsfilter = false;
|
||||
}
|
||||
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
|
||||
echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul.php"?>';
|
||||
?>
|
||||
@@ -100,7 +109,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
<grippy />
|
||||
</splitter>
|
||||
|
||||
<vbox style="margin:0px;" flex="1">
|
||||
<vbox style="margin:0px; width:250px" flex="1">
|
||||
<toolbox>
|
||||
<toolbar id="toolbarTimeTableLeftWeek" tbautostretch="always" persist="collapsed">
|
||||
<toolbarbutton id="toolbarbuttonStplWeekRefresh"
|
||||
@@ -110,7 +119,40 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
/>
|
||||
<textbox id="tempus-lva-filter" size="10" oninput="onLVAFilter()" flex="1"/>
|
||||
</toolbar>
|
||||
|
||||
<toolbar
|
||||
id="toolbarTimeTableFilterVertrag"
|
||||
tbautostretch="always"
|
||||
persist="collapsed"
|
||||
hidden="<?php echo ($showvertragsfilter?'false':'true');?>"
|
||||
>
|
||||
<toolbarbutton
|
||||
image="../public/images/icons/fa-user-clock.png"
|
||||
label="Alle"
|
||||
class="timetablefilter-vertrag"
|
||||
oncommand="onLVAFilterVertrag(this);"
|
||||
value=""
|
||||
id="toolbarTimeTableFilter-alle"
|
||||
tooltiptext="Filter Status Alle"
|
||||
/>
|
||||
<toolbarbutton
|
||||
image="../public/images/icons/fa-user-tag.png"
|
||||
label="Bestellt"
|
||||
class="timetablefilter-vertrag"
|
||||
oncommand="onLVAFilterVertrag(this);"
|
||||
value="bestellt"
|
||||
id="toolbarTimeTableFilter-bestellt"
|
||||
tooltiptext="Filter Status Bestellt"
|
||||
/>
|
||||
<toolbarbutton
|
||||
image="../public/images/icons/fa-user-check.png"
|
||||
label="Erteilt"
|
||||
class="timetablefilter-vertrag"
|
||||
oncommand="onLVAFilterVertrag(this);"
|
||||
value="erteilt"
|
||||
id="toolbarTimeTableFilter-erteilt"
|
||||
tooltiptext="Filter Status Erteilt"
|
||||
/>
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
|
||||
<vbox id="vboxLehrveranstalungPlanung" style="overflow:auto;margin:0px;" flex="1"
|
||||
@@ -163,8 +205,12 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
</hbox>
|
||||
</row>
|
||||
<row>
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrform"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach_bez" />
|
||||
<hbox>
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrform"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lehrfach_bez" />
|
||||
<spacer flex="1" />
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#vertragsstatus" class="tempus_vertrag_info"/>
|
||||
</hbox>
|
||||
<label align="right" value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#raumtyp"
|
||||
tooltiptext="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#raumtypalternativ" />
|
||||
</row>
|
||||
@@ -184,6 +230,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
<row>
|
||||
<hbox>
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#lektor" />
|
||||
<spacer flex="1"/>
|
||||
<label value="rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#fixangestellt_info" class="tempus_lektor_fix_info"/>
|
||||
</hbox>
|
||||
<label value="WR: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#wochenrythmus Bl: rdf:http://www.technikum-wien.at/lehreinheit-lvplan/rdf#stundenblockung"
|
||||
@@ -252,7 +299,6 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/stpl-details-overlay.xul
|
||||
id="toolbarTimeTableSort-stundenASC"
|
||||
tooltiptext="Offenen Stunden aufsteigend"
|
||||
/>
|
||||
|
||||
</toolbar>
|
||||
</toolbox>
|
||||
</vbox>
|
||||
|
||||
@@ -4041,7 +4041,8 @@ if(!$error)
|
||||
else
|
||||
{
|
||||
// Wenn der Projektbetreuer schon einen Vertrag hat, wird das Loeschen verhindert
|
||||
if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id']))
|
||||
if (isset($_POST['vertrag_id']) && is_numeric($_POST['vertrag_id']) &&
|
||||
(defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Löschen nur nach Stornierung des Vertrags möglich.';
|
||||
|
||||
@@ -31,7 +31,9 @@ var StudentProjektbetreuerTreeDatasource=null; //Datasource des Projektbetreuer
|
||||
var StudentProjektbetreuerSelectPersonID=null;
|
||||
var StudentProjektbetreuerSelectProjektarbeitID=null;
|
||||
var StudentProjektbetreuerSelectBetreuerartKurzbz=null;
|
||||
vertragsdetails_anzeigen = new Boolean(<?php echo (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN) ? 'true' : 'false' ?>);
|
||||
|
||||
// Config-Eintrag, ob Vertragsdetails angezeigt werden sollen
|
||||
var projektarbeit_vertragsdetails_anzeigen = Boolean(<?php echo (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN) ? true : false ?>);
|
||||
|
||||
// ********** Observer und Listener ************* //
|
||||
|
||||
@@ -117,7 +119,7 @@ var StudentProjektbetreuerTreeListener =
|
||||
//ohne dem setTimeout
|
||||
window.setTimeout(StudentProjektbetreuerTreeSelectID,10);
|
||||
|
||||
if(vertragsdetails_anzeigen)
|
||||
if(projektarbeit_vertragsdetails_anzeigen)
|
||||
{
|
||||
var mindEinVertragExistiert = StudentProjektbetreuer_VertragExistiert();
|
||||
|
||||
@@ -181,10 +183,9 @@ function StudentProjektarbeitTreeLoad(uid)
|
||||
tree.builder.addListener(StudentProjektarbeitTreeListener);
|
||||
|
||||
StudentProjektarbeitDisableFields(false);
|
||||
var vertragsdetails_anzeigen = new Boolean(<?php echo (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN) ? 'true' : 'false' ?>);
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (vertragsdetails_anzeigen) {
|
||||
if (projektarbeit_vertragsdetails_anzeigen) {
|
||||
//Reset attributes
|
||||
document.getElementById('student-projektbetreuer-label-vertragsstatus').value = '';
|
||||
document.getElementById('student-projektbetreuer-label-vertragsstunden').value = '';
|
||||
@@ -891,12 +892,9 @@ function StudentProjektbetreuerAuswahl()
|
||||
document.getElementById('student-projektbetreuer-checkbox-neu').checked=false;
|
||||
|
||||
var gesamtkosten = StudentProjektbetreuerGesamtkosten();
|
||||
|
||||
// Prüfe ob Vertragsdetails angezeigt werden
|
||||
var vertragsdetails_anzeigen = new Boolean(<?php echo (defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN') && FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN) ? 'true' : 'false' ?>);
|
||||
|
||||
|
||||
// Wenn Vertragsdetails angezeigt werden
|
||||
if (vertragsdetails_anzeigen) {
|
||||
if (projektarbeit_vertragsdetails_anzeigen) {
|
||||
//Reset attributes
|
||||
document.getElementById('student-projektbetreuer-label-vertragsstatus').setAttribute("style", "font-weight: normal");
|
||||
document.getElementById('student-projektbetreuer-button-vertrag-stornieren').setAttribute("tooltiptext",
|
||||
|
||||
@@ -101,6 +101,7 @@ function onVerbandSelect()
|
||||
}
|
||||
|
||||
var order = LehrstundeGetSortOrder();
|
||||
LVAFilterReset();
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
var attribute='../rdf/lehreinheit-lvplan.rdf.php'+type+"&stg_kz="+stg_kz+"&sem="+sem+"&ver="+ver+"&grp="+grp+"&gruppe="+gruppe+"&order="+order+"&orgform="+orgform;
|
||||
@@ -196,7 +197,7 @@ function onOrtSelect()
|
||||
url+=attributes+'&'+gettimestamp();
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
|
||||
|
||||
// Semesterplan
|
||||
var semesterplan=document.getElementById('tabpanels-main');
|
||||
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
||||
@@ -238,7 +239,7 @@ function onLektorSelect(event)
|
||||
url+=attributes+'&'+gettimestamp();
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
|
||||
|
||||
// Semesterplan
|
||||
var semesterplan=document.getElementById('tabpanels-main');
|
||||
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
||||
@@ -251,8 +252,9 @@ function onLektorSelect(event)
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
|
||||
var order = LehrstundeGetSortOrder();
|
||||
LVAFilterReset();
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=lektor&lektor="+uid+"&order="+order+"&"+gettimestamp());
|
||||
@@ -307,7 +309,7 @@ function onLektorSelect(event)
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
treeLV.database.RemoveDataSource(oldDatasources.getNext());
|
||||
@@ -363,7 +365,7 @@ function onFachbereichSelect(event)
|
||||
|
||||
col = tree.columns ? tree.columns["fachbereich-treecol-uid"] : "fachbereich-treecol-uid";
|
||||
var uid=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
|
||||
//Wenn auf einen Mitarbeiter geklickt wird, dann die kurzbz vom uebergeordneten
|
||||
//Fachbereich holen
|
||||
if(uid!='')
|
||||
@@ -387,7 +389,7 @@ function onFachbereichSelect(event)
|
||||
url+=attributes+'&'+gettimestamp();
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
|
||||
|
||||
// Semesterplan
|
||||
var semesterplan=document.getElementById('tabpanels-main');
|
||||
var panelIndex=semesterplan.getAttribute("selectedIndex");
|
||||
@@ -400,8 +402,9 @@ function onFachbereichSelect(event)
|
||||
if (url)
|
||||
contentFrame.setAttribute('src', url);
|
||||
}
|
||||
|
||||
|
||||
var order = LehrstundeGetSortOrder();
|
||||
LVAFilterReset();
|
||||
// LVAs
|
||||
var vboxLehrveranstalungPlanung=document.getElementById('vboxLehrveranstalungPlanung');
|
||||
vboxLehrveranstalungPlanung.setAttribute('datasources','../rdf/lehreinheit-lvplan.rdf.php?'+"type=fachbereich&fachbereich_kurzbz="+kurzbz+"&order="+order+"&"+gettimestamp());
|
||||
@@ -424,7 +427,7 @@ function onFachbereichSelect(event)
|
||||
}
|
||||
catch(e)
|
||||
{}
|
||||
|
||||
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
treeLV.database.RemoveDataSource(oldDatasources.getNext());
|
||||
@@ -444,4 +447,3 @@ function onFachbereichSelect(event)
|
||||
debug(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,8 +39,8 @@ class dvb extends basis_db
|
||||
const DVB_URL_WEBSERVICE_NACHNAME = DVB_PORTAL.'/rws/0.2/simpleStudentByNachname.xml';
|
||||
const DVB_URL_WEBSERVICE_NAME = DVB_PORTAL.'/rws/0.2/simpleStudentByName.xml';
|
||||
const DVB_URL_WEBSERVICE_MATRIKELNUMMER = DVB_PORTAL.'/rws/0.2/simpleStudentByMatrikelnummer.xml';
|
||||
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/dvb/matrikelnummern/1.0/reservierung.xml';
|
||||
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/dvb/matrikelnummern/1.0/meldung.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';
|
||||
|
||||
public $authentication;
|
||||
@@ -747,7 +747,7 @@ class dvb extends basis_db
|
||||
}
|
||||
|
||||
$data = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<matrikelnummernanfrage>
|
||||
<matrikelnummernanfrage xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<uuid>'.$uuid.'</uuid>
|
||||
<kontingentblock>
|
||||
<anzahl>'.$anzahl.'</anzahl>
|
||||
@@ -828,13 +828,13 @@ class dvb extends basis_db
|
||||
$gebdat = str_replace("-", "", $person->geburtsdatum);
|
||||
|
||||
$data = '<?xml version="1.0" encoding="UTF-8"?>
|
||||
<matrikelnummernmeldung>
|
||||
<matrikelnummernmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<uuid>'.$uuid.'</uuid>
|
||||
<personmeldung>
|
||||
<personmeldung xmlns="http://www.brz.gv.at/datenverbund-unis">
|
||||
<be>'.$bildungseinrichtung.'</be>
|
||||
<gebdat>'.$gebdat.'</gebdat>
|
||||
<geschlecht>'.$person->geschlecht.'</geschlecht>
|
||||
<matrikel>'.$person->matrikelnummer.'</matrikel>';
|
||||
<matrikelnummer>'.$person->matrikelnummer.'</matrikelnummer>';
|
||||
if (isset($person->matura) && $person->matura != '')
|
||||
$data .= '<matura>'.$person->matura.'</matura>';
|
||||
else
|
||||
|
||||
@@ -802,6 +802,9 @@ class lehreinheit extends basis_db
|
||||
$this->lehreinheiten[$row->unr]->lehrverband[]=$row->gruppe_kurzbz;
|
||||
else
|
||||
$this->lehreinheiten[$row->unr]->lehrverband[]=$lvb;
|
||||
$this->lehreinheiten[$row->unr]->lem[]=array(
|
||||
'lehreinheit_id' => $row->lehreinheit_id,
|
||||
'mitarbeiter_uid' => $row->lektor_uid);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
+26
-25
@@ -529,7 +529,7 @@ class vertrag extends basis_db
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_vertrag USING (vertrag_id)
|
||||
JOIN lehre.tbl_vertrag USING (vertrag_id)
|
||||
WHERE
|
||||
vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."
|
||||
UNION
|
||||
@@ -728,9 +728,10 @@ class vertrag extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Stati eines Vertrags
|
||||
* Laedt den letzten Status eines Vertrags
|
||||
*
|
||||
* @param $vertrag_id
|
||||
* @param $status optional
|
||||
* @return boolean
|
||||
*/
|
||||
public function getStatus($vertrag_id, $status=NULL)
|
||||
@@ -745,32 +746,32 @@ class vertrag extends basis_db
|
||||
|
||||
if(!is_null($status))
|
||||
{
|
||||
$qry .= " AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz=".$this->db_add_param($status);
|
||||
$qry .= " AND tbl_vertrag_vertragsstatus.vertragsstatus_kurzbz=".$this->db_add_param($status);
|
||||
}
|
||||
|
||||
$qry .= " ORDER BY datum DESC;";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->vertrag_id = $row->vertrag_id;
|
||||
$this->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz;
|
||||
$this->vertragsstatus_bezeichnung = $row->bezeichnung;
|
||||
$this->datum = $row->datum;
|
||||
$this->uid = $row->uid;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Eintrag wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->vertrag_id = $row->vertrag_id;
|
||||
$this->vertragsstatus_kurzbz = $row->vertragsstatus_kurzbz;
|
||||
$this->vertragsstatus_bezeichnung = $row->bezeichnung;
|
||||
$this->datum = $row->datum;
|
||||
$this->uid = $row->uid;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->new=false;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Eintrag wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1041,7 +1042,7 @@ class vertrag extends basis_db
|
||||
$qry = "
|
||||
UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
|
||||
UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
|
||||
INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertamum, insertvon)
|
||||
INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertamum, insertvon)
|
||||
VALUES(".
|
||||
$this->db_qoute('storno'). ", ".
|
||||
$this->db_add_param($vertrag_id, FHC_INTEGER). ", ".
|
||||
@@ -1123,7 +1124,7 @@ class vertrag extends basis_db
|
||||
*/
|
||||
public function getFalscheBetraege($studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM
|
||||
$qry = "SELECT * FROM
|
||||
(
|
||||
SELECT
|
||||
tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id,
|
||||
@@ -1136,7 +1137,7 @@ class vertrag extends basis_db
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
)x
|
||||
WHERE
|
||||
WHERE
|
||||
x.semesterstunden * x.stundensatz != x.betrag";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
|
||||
@@ -96,7 +96,7 @@ function func_initialFilter(){
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Formats the group header
|
||||
function func_groupHeader(data){
|
||||
return data[0].lv_bezeichnung; // change name to lehrveranstaltung
|
||||
return data[0].lv_bezeichnung + " " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung;
|
||||
};
|
||||
|
||||
// Formats the rows
|
||||
|
||||
@@ -100,9 +100,9 @@ function func_dataLoaded(data, table){
|
||||
// Tabulator table format functions
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Formats the group header
|
||||
function func_groupHeader(data){
|
||||
return data[0].lv_bezeichnung; // change name to lehrveranstaltung
|
||||
};
|
||||
function func_groupHeader(data) {
|
||||
return data[0].lv_bezeichnung + " " + ' ( LV-ID: ' + data[0].lehrveranstaltung_id + ' )'; // change name to lehrveranstaltung;
|
||||
}
|
||||
|
||||
// Formats the rows
|
||||
function func_rowFormatter(row){
|
||||
|
||||
@@ -38,6 +38,8 @@ require_once('../include/lehreinheit.class.php');
|
||||
require_once('../include/notiz.class.php');
|
||||
require_once('../include/mitarbeiter.class.php');
|
||||
require_once('../include/zeitaufzeichnung_gd.class.php');
|
||||
require_once('../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../include/vertrag.class.php');
|
||||
|
||||
$uid=get_uid();
|
||||
$error_msg='';
|
||||
@@ -90,6 +92,10 @@ if (isset($_GET['orgform']))
|
||||
$orgform=$_GET['orgform'];
|
||||
else
|
||||
$orgform=null;
|
||||
if (isset($_GET['vertrag']))
|
||||
$vertrag=$_GET['vertrag'];
|
||||
else
|
||||
$vertrag=null;
|
||||
|
||||
//Sortierreihenfolge
|
||||
if(isset($_GET['order']))
|
||||
@@ -304,6 +310,59 @@ if ($anz>0)
|
||||
else
|
||||
$fixangestellt_info = 'EXT';
|
||||
|
||||
$vertragsstatus_arr = array();
|
||||
$vertragsstatus_kurzbz_arr = array();
|
||||
// Lehrauftragsstatus ermitteln
|
||||
foreach ($l->lem as $row_lem)
|
||||
{
|
||||
$lem_obj = new lehreinheitmitarbeiter();
|
||||
if ($lem_obj->load($row_lem['lehreinheit_id'], $row_lem['mitarbeiter_uid']))
|
||||
{
|
||||
if ($lem_obj->vertrag_id != '')
|
||||
{
|
||||
$vertrag_obj = new vertrag();
|
||||
if($vertrag_obj->getStatus($lem_obj->vertrag_id))
|
||||
{
|
||||
$vertragsstatus_arr[] = $vertrag_obj->vertragsstatus_bezeichnung;
|
||||
$vertragsstatus_kurzbz_arr[] = $vertrag_obj->vertragsstatus_kurzbz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vertragsstatus_arr[] = 'Neu';
|
||||
}
|
||||
}
|
||||
}
|
||||
$vertragsstatus = implode(',', array_unique($vertragsstatus_arr));
|
||||
|
||||
if (!is_null($vertrag) && $vertrag != '')
|
||||
{
|
||||
switch($vertrag)
|
||||
{
|
||||
// Alle ab Status erteilt herausfiltern
|
||||
// der rest wird verworfen
|
||||
case 'erteilt':
|
||||
if (!in_array('erteilt', $vertragsstatus_kurzbz_arr)
|
||||
&& !in_array('akzeptiert', $vertragsstatus_kurzbz_arr))
|
||||
{
|
||||
continue 2;
|
||||
}
|
||||
break;
|
||||
|
||||
// Alle ab Status bestellt herausfiltern
|
||||
// der rest wird verworfen
|
||||
case 'bestellt':
|
||||
if (!in_array('bestellt', $vertragsstatus_kurzbz_arr)
|
||||
&& !in_array('erteilt', $vertragsstatus_kurzbz_arr)
|
||||
&& !in_array('akzeptiert', $vertragsstatus_kurzbz_arr))
|
||||
{
|
||||
continue 2;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo'<RDF:li>
|
||||
<RDF:Description id="lva'.($anz--).'" about="'.$rdf_url.$l->unr.'">
|
||||
<LVA:lvnr>'.$lvnr.'</LVA:lvnr>
|
||||
@@ -335,6 +394,7 @@ if ($anz>0)
|
||||
<LVA:lehrverband>'.$lehrverband.'</LVA:lehrverband>
|
||||
<LVA:anzahl_notizen>'.$anzahl_notizen.'</LVA:anzahl_notizen>
|
||||
<LVA:lehreinheit_id>'.$l->lehreinheit_id[0].'</LVA:lehreinheit_id>
|
||||
<LVA:vertragsstatus>'.$vertragsstatus.'</LVA:vertragsstatus>
|
||||
</RDF:Description>
|
||||
</RDF:li>';
|
||||
}
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ $uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('vertrag/mitarbeiter'))
|
||||
if(!$rechte->isBerechtigt('vertrag/mitarbeiter') && !$rechte->isBerechtigt('lehre/lehrauftrag_bestellen'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$datum_obj = new datum();
|
||||
|
||||
@@ -10,6 +10,16 @@ label.tempus_lektor_fix_info
|
||||
font-size: x-small
|
||||
}
|
||||
|
||||
label.tempus_vertrag_info
|
||||
{
|
||||
border-top: 1px solid black;
|
||||
border-bottom: 1px solid black;
|
||||
font-weight: bold;
|
||||
padding-left:2px;
|
||||
padding-right:2px;
|
||||
font-size: x-small
|
||||
}
|
||||
|
||||
label.kalenderwoche
|
||||
{
|
||||
font-size: medium;
|
||||
@@ -209,3 +219,8 @@ treechildren::-moz-tree-row(makeItMarked)
|
||||
{
|
||||
background-color: #ceffb0;
|
||||
}
|
||||
|
||||
.timetablefilter-vertrag .toolbarbutton-icon {
|
||||
width: 25px;
|
||||
height:25px;
|
||||
}
|
||||
|
||||
+73
-8
@@ -29,11 +29,15 @@ class stip extends basis_db
|
||||
public $Semester;
|
||||
public $Studienjahr;
|
||||
public $PersKz;
|
||||
public $Matrikelnummer;
|
||||
public $StgKz;
|
||||
public $SVNR;
|
||||
public $Familienname;
|
||||
public $Vorname;
|
||||
public $Typ;
|
||||
public $PersKz_Antwort;
|
||||
public $Matrikelnummer_Antwort;
|
||||
public $StgKz_Antwort;
|
||||
public $SVNR_Antwort;
|
||||
public $Familienname_Antwort;
|
||||
public $Vorname_Antwort;
|
||||
@@ -47,7 +51,6 @@ class stip extends basis_db
|
||||
public $OrgFormTeilCode;
|
||||
public $AntwortStatusCode;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Überprüft die Daten
|
||||
@@ -82,6 +85,20 @@ class stip extends basis_db
|
||||
//return false;
|
||||
}
|
||||
|
||||
// kein Mussfeld
|
||||
if($Bezieher->Matrikelnummer != null && strlen($Bezieher->Matrikelnummer) != 8)
|
||||
{
|
||||
$this->errormsg = "Kein gültiger Wert für Matrikelnummer";
|
||||
return false;
|
||||
}
|
||||
|
||||
// kein Mussfeld
|
||||
if($Bezieher->StgKz != null && strlen($Bezieher->StgKz) != 4)
|
||||
{
|
||||
$this->errormsg = "Kein gültiger Wert für StgKz";
|
||||
return false;
|
||||
}
|
||||
|
||||
if(mb_strlen($Bezieher->SVNR) != 10 || !is_numeric($Bezieher->SVNR))
|
||||
{
|
||||
$this->errormsg = "Kein gültiger Wert für SVNR";
|
||||
@@ -119,7 +136,7 @@ class stip extends basis_db
|
||||
function searchPersonKz($PersonKz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
|
||||
@@ -134,12 +151,56 @@ class stip extends basis_db
|
||||
$this->Familienname_Antwort = $row->nachname;
|
||||
$this->SVNR_Antwort = $row->svnr;
|
||||
$this->PersKz_Antwort = trim($row->matrikelnr);
|
||||
$this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT);
|
||||
$this->Matrikelnummer = $row->matr_nr;
|
||||
$this->AntwortStatusCode = 1;
|
||||
return $row->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->AntwortStatusCode =2;
|
||||
$this->AntwortStatusCode = 2;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
*
|
||||
* Suche Studenten anhand PersonKz
|
||||
* @param $PersonKz
|
||||
*/
|
||||
function searchMatrikelnummerStg($Matrikelnummer, $StgKz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
|
||||
JOIN public.tbl_person person using(person_id)
|
||||
WHERE
|
||||
person.matr_nr = ".$this->db_add_param($Matrikelnummer)."
|
||||
AND student.studiengang_kz=".$this->db_add_param(ltrim($StgKz,0)).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->Vorname_Antwort = $row->vorname;
|
||||
$this->Familienname_Antwort = $row->nachname;
|
||||
$this->SVNR_Antwort = $row->svnr;
|
||||
$this->PersKz_Antwort = trim($row->matrikelnr);
|
||||
$this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT);
|
||||
$this->Matrikelnummer = $row->matr_nr;
|
||||
$this->AntwortStatusCode = 1;
|
||||
return $row->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->AntwortStatusCode = 2;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -157,7 +218,7 @@ class stip extends basis_db
|
||||
function searchSvnr($Svnr)
|
||||
{
|
||||
$qry = "SELECT
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
|
||||
@@ -175,12 +236,14 @@ class stip extends basis_db
|
||||
$this->Familienname_Antwort = $row->nachname;
|
||||
$this->SVNR_Antwort = $row->svnr;
|
||||
$this->PersKz_Antwort = trim($row->matrikelnr);
|
||||
$this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT);
|
||||
$this->Matrikelnummer = $row->matr_nr;
|
||||
$this->AntwortStatusCode = 1;
|
||||
return $row->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->AntwortStatusCode =2;
|
||||
$this->AntwortStatusCode = 2;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -206,7 +269,7 @@ class stip extends basis_db
|
||||
function searchVorNachname($Vorname, $Nachname)
|
||||
{
|
||||
$qry = "SELECT
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr
|
||||
prestudent_id, vorname, nachname, svnr, matrikelnr, student.studiengang_kz, person.matr_nr
|
||||
FROM
|
||||
public.tbl_student student
|
||||
JOIN public.tbl_benutzer benutzer on(benutzer.uid=student.student_uid)
|
||||
@@ -226,12 +289,14 @@ class stip extends basis_db
|
||||
$this->Familienname_Antwort = $row->nachname;
|
||||
$this->SVNR_Antwort = $row->svnr;
|
||||
$this->PersKz_Antwort = trim($row->matrikelnr);
|
||||
$this->StgKz = str_pad($row->studiengang_kz, 4,'0', STR_PAD_LEFT);
|
||||
$this->Matrikelnummer = $row->matr_nr;
|
||||
$this->AntwortStatusCode = 1;
|
||||
return $row->prestudent_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->AntwortStatusCode =2;
|
||||
$this->AntwortStatusCode = 2;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -446,7 +511,7 @@ class stip extends basis_db
|
||||
public function getSemester($prestudent_id, $studiensemester_kurzbz, $bisdatum=null)
|
||||
{
|
||||
$sem = '';
|
||||
|
||||
|
||||
$qrystatus="
|
||||
SELECT
|
||||
*
|
||||
|
||||
+33
-21
@@ -96,25 +96,35 @@ function GetStipendienbezieherStip($parameters)
|
||||
$StipBezieher->Semester = $BezieherStip->Semester;
|
||||
$StipBezieher->Studienjahr = $BezieherStip->Studienjahr;
|
||||
$StipBezieher->PersKz = $BezieherStip->PersKz;
|
||||
$StipBezieher->Matrikelnummer = $BezieherStip->Matrikelnummer;
|
||||
$StipBezieher->StgKz = $BezieherStip->StgKz;
|
||||
$StipBezieher->SVNR = $BezieherStip->SVNR;
|
||||
$StipBezieher->Familienname = $BezieherStip->Familienname;
|
||||
$StipBezieher->Vorname = $BezieherStip->Vorname;
|
||||
$StipBezieher->Typ = $BezieherStip->Typ;
|
||||
|
||||
// Studiensemester_kurzbz auslesen
|
||||
if($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws")
|
||||
if ($BezieherStip->Semester == "WS" || $BezieherStip->Semester == "ws")
|
||||
{
|
||||
$year = mb_substr($BezieherStip->Studienjahr, 0,4);
|
||||
$studSemester = "WS".$year;
|
||||
}elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss")
|
||||
}
|
||||
elseif ($BezieherStip->Semester == "SS" || $BezieherStip->Semester == "ss")
|
||||
{
|
||||
$year = mb_substr($BezieherStip->Studienjahr, 0,2).mb_substr($BezieherStip->Studienjahr, 5,7);
|
||||
$studSemester = "SS".$year;
|
||||
}
|
||||
|
||||
if(!$prestudentID = $StipBezieher->searchPersonKz($BezieherStip->PersKz))
|
||||
if(!$prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR))
|
||||
$prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname);
|
||||
{
|
||||
if(!$prestudentID = $StipBezieher->searchMatrikelnummerStg($BezieherStip->Matrikelnummer, $BezieherStip->StgKz))
|
||||
{
|
||||
if(!$prestudentID = $StipBezieher->searchSvnr($BezieherStip->SVNR))
|
||||
{
|
||||
$prestudentID = $StipBezieher->searchVorNachname($BezieherStip->Vorname, $BezieherStip->Familienname);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Student wurde gefunden
|
||||
if($StipBezieher->AntwortStatusCode == 1)
|
||||
@@ -127,8 +137,8 @@ function GetStipendienbezieherStip($parameters)
|
||||
$student = new student();
|
||||
$studentUID = $student->getUID($prestudentID);
|
||||
|
||||
$abschlusspruefung = new abschlusspruefung();
|
||||
$abschlusspruefung->getLastAbschlusspruefung($studentUID);
|
||||
$abschlusspruefung = new abschlusspruefung();
|
||||
$abschlusspruefung->getLastAbschlusspruefung($studentUID);
|
||||
|
||||
$student->load($studentUID);
|
||||
$studiengang_kz = $student->studiengang_kz;
|
||||
@@ -145,33 +155,33 @@ function GetStipendienbezieherStip($parameters)
|
||||
if(!$prestudentStatus->getLastStatus($prestudentID,$studSemester))
|
||||
$StipBezieher->Inskribiert = 'n';
|
||||
else
|
||||
{
|
||||
// wenn nur Interessent letzer Status ist -> nicht inskribiert
|
||||
if($prestudentStatus->status_kurzbz == 'Interessent')
|
||||
$StipBezieher->Inskribiert = 'n';
|
||||
else
|
||||
$StipBezieher->Inskribiert = 'j';
|
||||
}
|
||||
{
|
||||
// wenn nur Interessent letzer Status ist -> nicht inskribiert
|
||||
if($prestudentStatus->status_kurzbz == 'Interessent')
|
||||
$StipBezieher->Inskribiert = 'n';
|
||||
else
|
||||
$StipBezieher->Inskribiert = 'j';
|
||||
}
|
||||
|
||||
if($BezieherStip->Typ == "as" || $BezieherStip->Typ == "AS")
|
||||
{
|
||||
$StipBezieher->getOrgFormTeilCode($studentUID, $studSemester, $prestudentID);
|
||||
$StipBezieher->Studienbeitrag = $studGebuehr;
|
||||
|
||||
// Wenn letzter Status von Semester Interessent ist -> Semester = null
|
||||
if($prestudentStatus->status_kurzbz != 'Interessent')
|
||||
$StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester);
|
||||
// Wenn letzter Status von Semester Interessent ist -> Semester = null
|
||||
if($prestudentStatus->status_kurzbz != 'Interessent')
|
||||
$StipBezieher->Ausbildungssemester = $StipBezieher->getSemester($prestudentID, $studSemester);
|
||||
else
|
||||
$StipBezieher->Ausbildungssemester = null;
|
||||
$StipBezieher->Ausbildungssemester = null;
|
||||
|
||||
$StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester);
|
||||
$StipBezieher->StudStatusCode = $StipBezieher->getStudStatusCode($prestudentID, $studSemester);
|
||||
|
||||
// Ausgeschieden ohne Abschluss
|
||||
// Ausgeschieden ohne Abschluss
|
||||
if($StipBezieher->StudStatusCode==4)
|
||||
$StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($prestudent->datum,'dmY');
|
||||
else if($StipBezieher->StudStatusCode==3) // Absolvent -> letzte Prüfung nehmen
|
||||
$StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($abschlusspruefung->datum,'dmY');
|
||||
else
|
||||
$StipBezieher->BeendigungsDatum = $datum_obj->formatDatum($abschlusspruefung->datum,'dmY');
|
||||
else
|
||||
$StipBezieher->BeendigungsDatum = null;
|
||||
|
||||
$StipBezieher->Erfolg = $StipBezieher->getErfolg($prestudentID, $studSemester);
|
||||
@@ -193,6 +203,8 @@ function GetStipendienbezieherStip($parameters)
|
||||
{
|
||||
// Student wurde nicht gefunden
|
||||
$StipBezieher->PersKz_Antwort = null;
|
||||
$StipBezieher->Matrikelnummer_Antwort = null;
|
||||
$StipBezieher->StgKz_Antwort = null;
|
||||
$StipBezieher->SVNR_Antwort = null;
|
||||
$StipBezieher->Familienname_Antwort = null;
|
||||
$StipBezieher->Vorname_Antwort = null;
|
||||
|
||||
+156
-152
@@ -1,174 +1,178 @@
|
||||
<?php
|
||||
<?php
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
header("Content-type: text/plain");
|
||||
echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
?>
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
|
||||
xmlns:tns="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized"
|
||||
xmlns:s="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
|
||||
targetNamespace="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized"
|
||||
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
|
||||
xmlns:tns="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized"
|
||||
xmlns:s="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
|
||||
targetNamespace="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized">
|
||||
<s:element name="GetStipendienbezieherStip">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="passWord" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="anfrageDaten" type="tns:GetStipendienbezieherStipRequest"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="GetStipendienbezieherStipRequest">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AnfragedatenID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Stipendiumsbezieher" type="tns:ArrayOfStipendiumsbezieherAnfrage"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfStipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="StipendiumsbezieherAnfrage" nillable="true" type="tns:StipendiumsbezieherAnfrage"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="StipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Semester" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Studienjahr" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="PersKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="SVNR" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Familienname" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Vorname" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Typ" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="StipendiumsbezieherAntwort">
|
||||
<s:complexContent mixed="false">
|
||||
<s:extension base="tns:StipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="PersKz_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="SVNR_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Familienname_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Vorname_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Ausbildungssemester" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StudStatusCode" type="s:string"/>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="BeendigungsDatum" type="s:string"/>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="VonNachPersKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Studienbeitrag" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Inskribiert" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Erfolg" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="OrgFormTeilCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AntwortStatusCode" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:extension>
|
||||
</s:complexContent>
|
||||
</s:complexType>
|
||||
<s:element name="GetStipendienbezieherStipResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetStipendienbezieherStipResult" type="tns:GetStipendienbezieherStipResponse"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="GetStipendienbezieherStipResponse">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AnfragedatenID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Stipendiumsbezieher" type="tns:ArrayOfStipendiumsbezieherAntwort"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfStipendiumsbezieherAntwort">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="StipendiumsbezieherAntwort" nillable="true" type="tns:StipendiumsbezieherAntwort"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:element name="SendStipendienbezieherStipError">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="passWord" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="errorReport" type="tns:SendStipendienbezieherStipErrorRequest"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="SendStipendienbezieherStipErrorRequest">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StateCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StateMessage" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorStatusCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="JobID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorContent" type="tns:ArrayOfErrorContentItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfErrorContentItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="ErrorContentItem" nillable="true" type="tns:ErrorContentItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ErrorContentItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorNumber" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="KeyAttribute" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="KeyValues" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CheckAttribute" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CheckValue" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorText" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:element name="SendStipendienbezieherStipErrorResponse">
|
||||
<s:complexType/>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized">
|
||||
<s:element name="GetStipendienbezieherStip">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="passWord" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="anfrageDaten" type="tns:GetStipendienbezieherStipRequest"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="GetStipendienbezieherStipRequest">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AnfragedatenID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Stipendiumsbezieher" type="tns:ArrayOfStipendiumsbezieherAnfrage"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfStipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="StipendiumsbezieherAnfrage" nillable="true" type="tns:StipendiumsbezieherAnfrage"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="StipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Semester" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Studienjahr" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="PersKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Matrikelnummer" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StgKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="SVNR" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Familienname" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Vorname" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Typ" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="StipendiumsbezieherAntwort">
|
||||
<s:complexContent mixed="false">
|
||||
<s:extension base="tns:StipendiumsbezieherAnfrage">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="PersKz_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Matrikelnummer_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StgKz_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="SVNR_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Familienname_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Vorname_Antwort" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Ausbildungssemester" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StudStatusCode" type="s:string"/>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="BeendigungsDatum" type="s:string"/>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="VonNachPersKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Studienbeitrag" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Inskribiert" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Erfolg" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="OrgFormTeilCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AntwortStatusCode" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:extension>
|
||||
</s:complexContent>
|
||||
</s:complexType>
|
||||
<s:element name="GetStipendienbezieherStipResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GetStipendienbezieherStipResult" type="tns:GetStipendienbezieherStipResponse"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="GetStipendienbezieherStipResponse">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="AnfragedatenID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="Stipendiumsbezieher" type="tns:ArrayOfStipendiumsbezieherAntwort"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfStipendiumsbezieherAntwort">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="StipendiumsbezieherAntwort" nillable="true" type="tns:StipendiumsbezieherAntwort"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:element name="SendStipendienbezieherStipError">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="userName" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="passWord" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="errorReport" type="tns:SendStipendienbezieherStipErrorRequest"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="SendStipendienbezieherStipErrorRequest">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErhKz" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StateCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="StateMessage" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorStatusCode" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="JobID" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorContent" type="tns:ArrayOfErrorContentItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfErrorContentItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="ErrorContentItem" nillable="true" type="tns:ErrorContentItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ErrorContentItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorNumber" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="KeyAttribute" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="KeyValues" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CheckAttribute" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="CheckValue" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="ErrorText" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:element name="SendStipendienbezieherStipErrorResponse">
|
||||
<s:complexType/>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="GetStipendienbezieherStipSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GetStipendienbezieherStip"/>
|
||||
<wsdl:part name="parameters" element="tns:GetStipendienbezieherStip"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GetStipendienbezieherStipSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GetStipendienbezieherStipResponse"/>
|
||||
<wsdl:part name="parameters" element="tns:GetStipendienbezieherStipResponse"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SendStipendienbezieherStipErrorSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:SendStipendienbezieherStipError"/>
|
||||
<wsdl:part name="parameters" element="tns:SendStipendienbezieherStipError"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="SendStipendienbezieherStipErrorSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:SendStipendienbezieherStipErrorResponse"/>
|
||||
<wsdl:part name="parameters" element="tns:SendStipendienbezieherStipErrorResponse"/>
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="STIPServiceDecentralizedSoap">
|
||||
<wsdl:operation name="GetStipendienbezieherStip">
|
||||
<wsdl:input message="tns:GetStipendienbezieherStipSoapIn"/>
|
||||
<wsdl:output message="tns:GetStipendienbezieherStipSoapOut"/>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="SendStipendienbezieherStipError">
|
||||
<wsdl:input message="tns:SendStipendienbezieherStipErrorSoapIn"/>
|
||||
<wsdl:output message="tns:SendStipendienbezieherStipErrorSoapOut"/>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="GetStipendienbezieherStip">
|
||||
<wsdl:input message="tns:GetStipendienbezieherStipSoapIn"/>
|
||||
<wsdl:output message="tns:GetStipendienbezieherStipSoapOut"/>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="SendStipendienbezieherStipError">
|
||||
<wsdl:input message="tns:SendStipendienbezieherStipErrorSoapIn"/>
|
||||
<wsdl:output message="tns:SendStipendienbezieherStipErrorSoapOut"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="STIPServiceDecentralizedSoap" type="tns:STIPServiceDecentralizedSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="GetStipendienbezieherStip">
|
||||
<soap:operation soapAction="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized/GetStipendienbezieherStip" style="document"/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="SendStipendienbezieherStipError">
|
||||
<soap:operation soapAction="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized/SendStipendienbezieherStipError" style="document"/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="GetStipendienbezieherStip">
|
||||
<soap:operation soapAction="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized/GetStipendienbezieherStip" style="document"/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="SendStipendienbezieherStipError">
|
||||
<soap:operation soapAction="http://www.fhr.ac.at/BISWS/STIP/WebServices/Services/STIPServiceDecentralized/SendStipendienbezieherStipError" style="document"/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="STIPServiceDecentralized">
|
||||
<wsdl:port name="STIPServiceDecentralizedSoap" binding="tns:STIPServiceDecentralizedSoap">
|
||||
<soap:address location="<?php echo APP_ROOT."/soap/stip.soap.php?".microtime(true);?>"/>
|
||||
</wsdl:port>
|
||||
<wsdl:port name="STIPServiceDecentralizedSoap" binding="tns:STIPServiceDecentralizedSoap">
|
||||
<soap:address location="<?php echo APP_ROOT."/soap/stip.soap.php?".microtime(true);?>"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
|
||||
+68
-55
@@ -30,11 +30,11 @@ $db = new basis_db();
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<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 type="text/javascript" src="../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
|
||||
<script type="text/javascript" src="../vendor/components/jqueryui/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="../include/js/jquery.ui.datepicker.translation.js"></script>
|
||||
<script type="text/javascript" src="../vendor/jquery/sizzle/sizzle.js"></script>
|
||||
<title>STIP-Client</title>
|
||||
</head>
|
||||
<body>
|
||||
@@ -43,57 +43,65 @@ $db = new basis_db();
|
||||
<a href="stip_client_error.php">Error Tester</a>
|
||||
<br><br>
|
||||
<form action="stip_client.php" method="post">
|
||||
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
|
||||
<table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
|
||||
<tr>
|
||||
<td align="right">Username:</td>
|
||||
<td><input name="username" type="text" size="30" maxlength="50" value="<?php echo $db->convert_html_chars((isset($_REQUEST['username']) ? $_REQUEST['username'] : ""));?>"></td>
|
||||
</tr>
|
||||
<td align="right">Username:</td>
|
||||
<td><input name="username" type="text" size="30" maxlength="50" value="<?php echo $db->convert_html_chars((isset($_REQUEST['username']) ? $_REQUEST['username'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Passwort:</td>
|
||||
<td><input name="password" type="password" size="30" maxlength="50" value=""></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">ErhKz:</td>
|
||||
<td><input name="ErhKz" type="text" size="30" maxlength="3" value="<?php echo $db->convert_html_chars((isset($_REQUEST['ErhKz']) ? $_REQUEST['ErhKz'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">AnfragedatenID:</td>
|
||||
<td><input name="AnfragedatenID" type="text" size="30" maxlength="40" value="<?php echo $db->convert_html_chars((isset($_REQUEST['AnfragedatenID']) ? $_REQUEST['AnfragedatenID'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Semester:</td>
|
||||
<td><input name="Semester" type="text" size="30" maxlength="2" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Semester']) ? $_REQUEST['Semester'] : ""));?>"> WS | SS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Studienjahr:</td>
|
||||
<td><input name="Studienjahr" type="text" size="30" maxlength="7" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Studienjahr']) ? $_REQUEST['Studienjahr'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">PersKz:</td>
|
||||
<td><input name="PersKz" type="text" size="30" maxlength="11" value="<?php echo $db->convert_html_chars((isset($_REQUEST['PersKz']) ? $_REQUEST['PersKz'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">SVNR:</td>
|
||||
<td><input name="Svnr" type="text" size="30" maxlength="10" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Svnr']) ? $_REQUEST['Svnr'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Familienname:</td>
|
||||
<td><input name="Familienname" type="text" size="30" maxlength="255" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Familienname']) ? $_REQUEST['Familienname'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Vorname:</td>
|
||||
<td><input name="Vorname" type="text" size="30" maxlength="255" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Vorname']) ? $_REQUEST['Vorname'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Typ:</td>
|
||||
<td><input name="Typ" type="text" size="30" maxlength="2" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Typ']) ? $_REQUEST['Typ'] : ""));?>"> AS | AG</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"></td>
|
||||
<td>
|
||||
<input type="submit" value=" Absenden " name="submit">
|
||||
</td>
|
||||
</tr>
|
||||
<td align="right">Passwort:</td>
|
||||
<td><input name="password" type="password" size="30" maxlength="50" value=""></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">ErhKz:</td>
|
||||
<td><input name="ErhKz" type="text" size="30" maxlength="3" value="<?php echo $db->convert_html_chars((isset($_REQUEST['ErhKz']) ? $_REQUEST['ErhKz'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">AnfragedatenID:</td>
|
||||
<td><input name="AnfragedatenID" type="text" size="30" maxlength="40" value="<?php echo $db->convert_html_chars((isset($_REQUEST['AnfragedatenID']) ? $_REQUEST['AnfragedatenID'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Semester:</td>
|
||||
<td><input name="Semester" type="text" size="30" maxlength="2" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Semester']) ? $_REQUEST['Semester'] : ""));?>"> WS | SS</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Studienjahr:</td>
|
||||
<td><input name="Studienjahr" type="text" size="30" maxlength="7" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Studienjahr']) ? $_REQUEST['Studienjahr'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">PersKz:</td>
|
||||
<td><input name="PersKz" type="text" size="30" maxlength="11" value="<?php echo $db->convert_html_chars((isset($_REQUEST['PersKz']) ? $_REQUEST['PersKz'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Matrikelnummer:</td>
|
||||
<td><input name="Matrikelnummer" type="text" size="30" maxlength="11" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Matrikelnummer']) ? $_REQUEST['Matrikelnummer'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">StgKz:</td>
|
||||
<td><input name="StgKz" type="text" size="30" maxlength="11" value="<?php echo $db->convert_html_chars((isset($_REQUEST['StgKz']) ? $_REQUEST['StgKz'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">SVNR:</td>
|
||||
<td><input name="Svnr" type="text" size="30" maxlength="10" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Svnr']) ? $_REQUEST['Svnr'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Familienname:</td>
|
||||
<td><input name="Familienname" type="text" size="30" maxlength="255" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Familienname']) ? $_REQUEST['Familienname'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Vorname:</td>
|
||||
<td><input name="Vorname" type="text" size="30" maxlength="255" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Vorname']) ? $_REQUEST['Vorname'] : ""));?>"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">Typ:</td>
|
||||
<td><input name="Typ" type="text" size="30" maxlength="2" value="<?php echo $db->convert_html_chars((isset($_REQUEST['Typ']) ? $_REQUEST['Typ'] : ""));?>"> AS | AG</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"></td>
|
||||
<td>
|
||||
<input type="submit" value=" Absenden " name="submit">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
|
||||
@@ -114,6 +122,8 @@ if(isset($_REQUEST['submit']))
|
||||
$bezieher->Semester = $_REQUEST['Semester'];
|
||||
$bezieher->Studienjahr = $_REQUEST['Studienjahr'];
|
||||
$bezieher->PersKz= $_REQUEST['PersKz'];
|
||||
$bezieher->Matrikelnummer= $_REQUEST['Matrikelnummer'];
|
||||
$bezieher->StgKz= $_REQUEST['StgKz'];
|
||||
$bezieher->SVNR= $_REQUEST['Svnr'];
|
||||
$bezieher->Familienname= $_REQUEST['Familienname'];
|
||||
$bezieher->Vorname= $_REQUEST['Vorname'];
|
||||
@@ -122,6 +132,8 @@ if(isset($_REQUEST['submit']))
|
||||
$bezieher1->Semester = $_REQUEST['Semester'];
|
||||
$bezieher1->Studienjahr = $_REQUEST['Studienjahr'];
|
||||
$bezieher1->PersKz= $_REQUEST['PersKz'];
|
||||
$bezieher1->Matrikelnummer= $_REQUEST['Matrikelnummer'];
|
||||
$bezieher1->StgKz= $_REQUEST['StgKz'];
|
||||
$bezieher1->SVNR= $_REQUEST['Svnr'];
|
||||
$bezieher1->Familienname= $_REQUEST['Familienname'];
|
||||
$bezieher1->Vorname= $_REQUEST['Vorname'];
|
||||
@@ -138,7 +150,7 @@ if(isset($_REQUEST['submit']))
|
||||
}
|
||||
catch(SoapFault $fault)
|
||||
{
|
||||
echo "SOAP Fault: (faultcode: ".$fault->faultcode.", faultstring: ".$fault->faultstring.")", E_USER_ERROR;
|
||||
echo "SOAP Fault: (faultcode: ".$fault->faultcode.", faultstring: ".$fault->faultstring.")", E_USER_ERROR;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -147,5 +159,6 @@ if(isset($_REQUEST['submit']))
|
||||
Legende:<br>
|
||||
Antwortstatuscode: 1=gefunden; 2=nicht gefunden<br>
|
||||
StudStatusCode: 1=aktiver Student; 2=Unterbrecher; 3=Absolvent; 4=Abbrecher<br>
|
||||
Typ: AS = Antragsteller, AG = Angehöriger
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -3291,6 +3291,26 @@ $phrases = array(
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'global',
|
||||
'phrase' => 'rueckstelldatum',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'rückstelldatum',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'onHold date',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
|
||||
@@ -441,7 +441,7 @@ Dylan;Bob;1234567;MEE;750;03.10.2016</pre>
|
||||
// Fills the select element with all the loaded studiengang
|
||||
foreach($studiengang->result as $val)
|
||||
{
|
||||
echo sprintf("<option value=\"%s\">%s - %s</option>", $val->studiengang_kz, $val->kurzbzlang, $val->bezeichnung);
|
||||
echo sprintf("<option value=\"%s\">%s [%s%s] - %s</option>", $val->studiengang_kz, $val->kurzbzlang,$val->typ, $val->kurzbz, $val->bezeichnung);
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
|
||||
Reference in New Issue
Block a user