mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-12 01:29:28 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
<?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
|
||||
*/
|
||||
|
||||
if (! defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
|
||||
class ReihungstestJob extends FHC_Controller
|
||||
{
|
||||
private $VILESCI_RT_VERWALTUNGS_URL;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
// Allow script execution only from CLI
|
||||
if ($this->input->is_cli_request())
|
||||
{
|
||||
$cli = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->output->set_status_header(403, 'Jobs must be run from the CLI');
|
||||
echo "Jobs must be run from the CLI";
|
||||
exit;
|
||||
}
|
||||
|
||||
$this->VILESCI_RT_VERWALTUNGS_URL = site_url(). "/organisation/Reihungstest";
|
||||
|
||||
// Load models
|
||||
$this->load->model('crm/Reihungstest_model', 'ReihungstestModel');
|
||||
|
||||
// Load helpers
|
||||
$this->load->helper('hlp_sancho_helper');
|
||||
}
|
||||
|
||||
/**
|
||||
* Main function index as help
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$result = "The following are the available command line interface commands\n\n";
|
||||
$result .= "php index.ci.php jobs/ReihungstestJob runReihungstestInfo";
|
||||
|
||||
echo $result. PHP_EOL;
|
||||
}
|
||||
|
||||
public function runReihungstestJob()
|
||||
{
|
||||
// Get study plans that have no assigned placement tests yet
|
||||
$result = $this->ReihungstestModel->checkMissingReihungstest();
|
||||
|
||||
$missing_rt_arr = array();
|
||||
if (hasData($result))
|
||||
{
|
||||
$missing_rt_arr = $result->retval;
|
||||
}
|
||||
elseif (isError($result))
|
||||
{
|
||||
show_error($result->error);
|
||||
}
|
||||
|
||||
// Get free places
|
||||
$result = $this->ReihungstestModel->getFreePlaces();
|
||||
|
||||
$free_places_arr = array();
|
||||
if (hasData($result))
|
||||
{
|
||||
$free_places_arr = $result->retval;
|
||||
}
|
||||
elseif (isError($result))
|
||||
{
|
||||
show_error($result->error);
|
||||
}
|
||||
|
||||
// Prepare data for mail template 'ReihungstestJob'
|
||||
$content_data_arr = $this->_getContentData($missing_rt_arr, $free_places_arr);
|
||||
|
||||
// Send email in Sancho design
|
||||
if (!empty($missing_rt_arr) || !empty($free_places_arr))
|
||||
{
|
||||
sendSanchoMail(
|
||||
'ReihungstestJob',
|
||||
$content_data_arr,
|
||||
MAIL_INFOCENTER,
|
||||
'Support für die Reihungstest-Verwaltung');
|
||||
}
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
// Private methods
|
||||
/**
|
||||
* Returns associative array with data as needed in the reihungstest job template.
|
||||
* @param array $missing_rt_arr Array with studienpläne, which have no assigned placement tests.
|
||||
* @param array $free_places_arr Array with info and amount of free placement test places.
|
||||
* @return array
|
||||
*/
|
||||
private function _getContentData($missing_rt_arr, $free_places_arr)
|
||||
{
|
||||
$style_tbl1 = ' cellpadding="0" cellspacing="10" width="100%" style="font-family: courier, verdana, sans-serif; font-size: 0.95em; border: 1px solid #000000;" ';
|
||||
$style_tbl2 = ' cellpadding="0" cellspacing="20" width="100%" style="font-family: courier, verdana, sans-serif; font-size: 0.95em; border: 1px solid #000000;" ';
|
||||
|
||||
// Prepare HTML table with study plans that have no placement tests yet
|
||||
if (!empty($missing_rt_arr))
|
||||
{
|
||||
$studienplan_list = '
|
||||
<table'. $style_tbl2.'>
|
||||
';
|
||||
|
||||
foreach ($missing_rt_arr as $rt)
|
||||
{
|
||||
$studienplan_list .= '
|
||||
<tr><td>'. $rt->bezeichnung. '</td></tr>
|
||||
';
|
||||
}
|
||||
|
||||
$studienplan_list .= '
|
||||
</table>
|
||||
';
|
||||
}
|
||||
else
|
||||
{
|
||||
$studienplan_list = '
|
||||
<table'. $style_tbl1.'>
|
||||
<tr><td>Alles okay! Alle Studienpläne haben zumindest einen Reihungstest.</td></tr>
|
||||
</table>
|
||||
';
|
||||
}
|
||||
|
||||
// Prepare HTML table with information and amount of free places
|
||||
if (!empty($free_places_arr))
|
||||
{
|
||||
$freie_plaetze_list = '
|
||||
<table'. $style_tbl2.'>
|
||||
<tr>
|
||||
<th>Fakultät</th>
|
||||
<th>Reihungstesttermine</th>
|
||||
<th>Freie Plätze</th>
|
||||
</tr>
|
||||
';
|
||||
|
||||
foreach ($free_places_arr as $free_place)
|
||||
{
|
||||
$datum = new DateTime($free_place->datum);
|
||||
$style_alarm = ($free_place->freie_plaetze <= 5) ? ' style=" color: red; font-weight: bold" ' : ''; // mark if <=5 free places
|
||||
|
||||
$freie_plaetze_list .= '
|
||||
<tr>
|
||||
<td width="350">'. $free_place->fakultaet. '</td>
|
||||
<td align="center">'. $datum->format('d.m.Y'). '</td>
|
||||
<td align="center"'. $style_alarm.'>'. $free_place->freie_plaetze. '</td>
|
||||
</tr>
|
||||
';
|
||||
}
|
||||
|
||||
$freie_plaetze_list .= '
|
||||
</table>
|
||||
';
|
||||
}
|
||||
else
|
||||
{
|
||||
$freie_plaetze_list = '
|
||||
<table'. $style_tbl1.'>
|
||||
<tr><td>Es gibt heute keine Ergebnisse zu freien Reihungstestplätze.</td></tr>
|
||||
</table>
|
||||
';
|
||||
}
|
||||
|
||||
// Set associative array with the prepared HTML tables and URL be used by the template's variables
|
||||
$content_data_arr['studienplan_list'] = $studienplan_list;
|
||||
$content_data_arr['freie_plaetze_list'] = $freie_plaetze_list;
|
||||
$content_data_arr['link'] = $this->VILESCI_RT_VERWALTUNGS_URL;
|
||||
;
|
||||
|
||||
return $content_data_arr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -857,9 +857,20 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
|
||||
$this->navigationlib->setSessionMenu(
|
||||
array(
|
||||
array('filters' => $this->navigationlib->oneLevel(
|
||||
'Filters', // description
|
||||
'#', // link
|
||||
$filtersArray, // children
|
||||
'filter', // icon
|
||||
true, // expand
|
||||
null, // subscriptDescription
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
1 // sort
|
||||
),
|
||||
'freigegeben' => $this->navigationlib->oneLevel(
|
||||
'zum RT Freigegeben', // description
|
||||
'zum RT freigegeben', // description
|
||||
$freigegebenLink, // link
|
||||
null, // children
|
||||
'thumbs-up', // icon
|
||||
@@ -868,7 +879,7 @@ class InfoCenter extends Auth_Controller
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
1 // sort
|
||||
10 // sort
|
||||
),
|
||||
'reihungstestAbsolviert' => $this->navigationlib->oneLevel(
|
||||
'Reihungstest absolviert', // description
|
||||
@@ -880,19 +891,7 @@ class InfoCenter extends Auth_Controller
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
2 // sort
|
||||
),
|
||||
'filters' => $this->navigationlib->oneLevel(
|
||||
'Filters', // description
|
||||
'#', // link
|
||||
$filtersArray, // children
|
||||
'', // icon
|
||||
true, // expand
|
||||
null, // subscriptDescription
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
10 // sort
|
||||
20 // sort
|
||||
)
|
||||
)
|
||||
);
|
||||
@@ -951,6 +950,8 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
// Generate the home link with the eventually loaded filter
|
||||
$homeLink = site_url(self::INFOCENTER_URI.'/'.self::INDEX_PAGE);
|
||||
$freigegebenLink = site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE);
|
||||
$absolviertLink = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
|
||||
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
|
||||
if (isset($prevFilterId))
|
||||
{
|
||||
@@ -958,20 +959,57 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
|
||||
$this->navigationlib->setElementSessionMenu(
|
||||
$page,
|
||||
'uebersicht',
|
||||
$this->navigationlib->oneLevel(
|
||||
'Home', // description
|
||||
'Infocenter Übersicht', // description
|
||||
$homeLink, // link
|
||||
null, // children
|
||||
'angle-left', // icon
|
||||
'info', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
1 // sort
|
||||
20 // sort
|
||||
)
|
||||
);
|
||||
|
||||
if($page == self::REIHUNGSTESTABSOLVIERT_PAGE)
|
||||
{
|
||||
$this->navigationlib->setElementSessionMenu(
|
||||
'freigegeben',
|
||||
$this->navigationlib->oneLevel(
|
||||
'zum RT freigegeben', // description
|
||||
$freigegebenLink, // link
|
||||
null, // children
|
||||
'thumbs-up', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
30 // sort
|
||||
)
|
||||
);
|
||||
}
|
||||
if($page == self::FREIGEGEBEN_PAGE)
|
||||
{
|
||||
$this->navigationlib->setElementSessionMenu(
|
||||
'reihungstestAbsolviert',
|
||||
$this->navigationlib->oneLevel(
|
||||
'Reihungstest absolviert', // description
|
||||
$absolviertLink, // link
|
||||
null, // children
|
||||
'check', // icon
|
||||
null, // subscriptDescription
|
||||
false, // expand
|
||||
null, // subscriptLinkClass
|
||||
null, // subscriptLinkValue
|
||||
'', // target
|
||||
30 // sort
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -993,25 +1031,6 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method used to fill elements of the InfoCenter left menu of the freigegeben InfoCenter page
|
||||
*/
|
||||
private function _fillFiltersFreigegeben($filters, &$toFill)
|
||||
{
|
||||
foreach ($filters as $filterId => $description)
|
||||
{
|
||||
$toFill['children'][] = $this->navigationlib->oneLevel(
|
||||
$description, // description
|
||||
sprintf(
|
||||
'%s?%s=%s',
|
||||
site_url(self::INFOCENTER_URI.'/'.self::FREIGEGEBEN_PAGE),
|
||||
self::FILTER_ID,
|
||||
$filterId
|
||||
) // link
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Utility method used to fill elements of the InfoCenter left menu
|
||||
* with the list of the custom filter of the authenticated user
|
||||
|
||||
@@ -23,7 +23,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
// Functions needed in the view FHC-Header
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_du_hast_neue_nachrichten.jpg';
|
||||
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
|
||||
|
||||
/**
|
||||
* Send single Mail with Sancho Design and Layout.
|
||||
|
||||
@@ -757,7 +757,7 @@ class FiltersLib
|
||||
self::NAV_MENU_FILTER_NAME, // description
|
||||
'#', // link
|
||||
$childrenArray, // children
|
||||
'', // icon
|
||||
'filter', // icon
|
||||
true, // expand
|
||||
null, // subscriptDescription
|
||||
null, // subscriptLinkClass
|
||||
|
||||
@@ -38,4 +38,190 @@ class Reihungstest_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, array($reihungstest_id));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if there are active studyplans which have no public placement tests assigned yet.
|
||||
* Only check assignment to studyplans that are
|
||||
* - Bachelor,
|
||||
* - active,
|
||||
* - set as online application
|
||||
* - valid for 1st terms
|
||||
* @return array Returns object array with studyplans that have no public placement tests assigned yet.
|
||||
*/
|
||||
public function checkMissingReihungstest()
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
bezeichnung
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
WHERE
|
||||
studienplan_id
|
||||
IN
|
||||
(
|
||||
SELECT DISTINCT
|
||||
studienplan_id
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
JOIN
|
||||
lehre.tbl_studienplan_semester
|
||||
USING (studiensemester_kurzbz)
|
||||
JOIN
|
||||
lehre.tbl_studienplan
|
||||
USING (studienplan_id)
|
||||
JOIN
|
||||
lehre.tbl_studienordnung
|
||||
USING (studienordnung_id)
|
||||
JOIN
|
||||
public.tbl_studiengang
|
||||
USING (studiengang_kz)
|
||||
WHERE
|
||||
tbl_studiengang.aktiv = \'t\'
|
||||
AND
|
||||
tbl_studiensemester.onlinebewerbung = \'t\'
|
||||
AND
|
||||
tbl_studienplan.onlinebewerbung_studienplan = \'t\'
|
||||
AND
|
||||
semester = 1
|
||||
AND
|
||||
typ = \'b\'
|
||||
|
||||
EXCEPT
|
||||
|
||||
SELECT DISTINCT
|
||||
studienplan_id
|
||||
FROM
|
||||
public.tbl_reihungstest
|
||||
JOIN
|
||||
public.tbl_rt_studienplan
|
||||
USING (reihungstest_id)
|
||||
WHERE
|
||||
datum >= now()
|
||||
AND
|
||||
oeffentlich = \'t\'
|
||||
)
|
||||
';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets amount of free places.
|
||||
* @return array Returns object array with faculty and amount of free places
|
||||
* for each public actual placement test date.
|
||||
*/
|
||||
public function getFreePlaces()
|
||||
{
|
||||
$query = '
|
||||
SELECT
|
||||
datum,
|
||||
fakultaet,
|
||||
max_plaetze - anzahl_angemeldet AS freie_plaetze
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
studiengang_kz,
|
||||
oeffentlich,
|
||||
tbl_studiengang.bezeichnung,
|
||||
reihungstest_id,
|
||||
tbl_reihungstest.datum,
|
||||
COALESCE
|
||||
(
|
||||
max_teilnehmer,
|
||||
(
|
||||
SELECT
|
||||
sum(arbeitsplaetze) - ceil(sum(arbeitsplaetze)/100.0*'. REIHUNGSTEST_ARBEITSPLAETZE_SCHWUND. ')
|
||||
FROM
|
||||
public.tbl_rt_ort
|
||||
JOIN
|
||||
public.tbl_ort
|
||||
ON (tbl_rt_ort.ort_kurzbz = tbl_ort.ort_kurzbz)
|
||||
WHERE
|
||||
tbl_rt_ort.rt_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
)
|
||||
AS max_plaetze,
|
||||
(
|
||||
SELECT
|
||||
count(*)
|
||||
FROM
|
||||
public.tbl_rt_person
|
||||
WHERE
|
||||
rt_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
AS anzahl_angemeldet,
|
||||
(
|
||||
WITH RECURSIVE meine_oes
|
||||
(
|
||||
oe_kurzbz,
|
||||
oe_parent_kurzbz,
|
||||
organisationseinheittyp_kurzbz
|
||||
)
|
||||
AS
|
||||
(
|
||||
SELECT
|
||||
oe_kurzbz, oe_parent_kurzbz, organisationseinheittyp_kurzbz
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
WHERE
|
||||
oe_kurzbz in
|
||||
(
|
||||
SELECT
|
||||
oe_kurzbz
|
||||
FROM
|
||||
public.tbl_rt_studienplan
|
||||
JOIN
|
||||
lehre.tbl_studienplan sp USING (studienplan_id)
|
||||
JOIN
|
||||
lehre.tbl_studienordnung USING (studienordnung_id)
|
||||
JOIN
|
||||
public.tbl_studiengang sg USING (studiengang_kz)
|
||||
WHERE
|
||||
tbl_rt_studienplan.reihungstest_id = tbl_reihungstest.reihungstest_id
|
||||
)
|
||||
AND
|
||||
aktiv = true
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
o.oe_kurzbz, o.oe_parent_kurzbz, o.organisationseinheittyp_kurzbz
|
||||
FROM
|
||||
public.tbl_organisationseinheit o, meine_oes
|
||||
WHERE
|
||||
o.oe_kurzbz = meine_oes.oe_parent_kurzbz
|
||||
AND
|
||||
aktiv = true
|
||||
)
|
||||
SELECT
|
||||
ARRAY_TO_STRING(ARRAY_AGG(DISTINCT tbl_organisationseinheit.bezeichnung),\', \')
|
||||
FROM
|
||||
meine_oes
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
WHERE
|
||||
meine_oes.organisationseinheittyp_kurzbz=\'Fakultaet\'
|
||||
)
|
||||
AS fakultaet
|
||||
FROM
|
||||
public.tbl_reihungstest
|
||||
JOIN
|
||||
public.tbl_studiengang
|
||||
USING (studiengang_kz)
|
||||
WHERE
|
||||
tbl_reihungstest.datum >= now()
|
||||
AND
|
||||
tbl_reihungstest.oeffentlich = \'t\'
|
||||
GROUP BY
|
||||
tbl_studiengang.bezeichnung,
|
||||
oe_kurzbz,
|
||||
reihungstest_id
|
||||
)
|
||||
AS tbl
|
||||
ORDER BY
|
||||
fakultaet,
|
||||
freie_plaetze
|
||||
';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
<h3 class="page-header">
|
||||
Freigegebene Interessenten
|
||||
zum Reihungstest freigegeben
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* This Script is for Loading the Codeigniter Context in Non-Codeigniter Scripts
|
||||
* Usage:
|
||||
* $ci = require_once(ci_loader.php');
|
||||
* $ci->load->library('xxx');
|
||||
*/
|
||||
ob_start();
|
||||
require_once('index.ci.php');
|
||||
ob_get_clean();
|
||||
return $CI;
|
||||
@@ -141,6 +141,8 @@ define('MAIL_IT', 'invalid@example.com');
|
||||
define('MAIL_SUPPORT', 'invalid@example.com');
|
||||
// Lehrgaenge
|
||||
define('MAIL_LG', 'invalid@example.com');
|
||||
// Infocenter
|
||||
define('MAIL_INFOCENTER','invalid@example.com');
|
||||
|
||||
// Default Anmerkung fuer neue Lehreinheiten
|
||||
// Beispiel: 'Abhaengigkeiten von anderen LV\'s\n\nSpez. Software/Equipment:\n\n'
|
||||
|
||||
@@ -169,6 +169,28 @@ function ConvertDateToISO(datum)
|
||||
return '';
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Wandelt ein Datum ins ISO Format um
|
||||
// * aus 2007-02-31 wird 31.2.2007
|
||||
// ****
|
||||
function ConvertDateToGerman(datum)
|
||||
{
|
||||
if(datum!='')
|
||||
{
|
||||
arr = datum.split('-');
|
||||
|
||||
if(arr[1].length==1)
|
||||
arr[1]='0'+arr[1];
|
||||
|
||||
if(arr[2].length==1)
|
||||
arr[2]='0'+arr[2];
|
||||
|
||||
return arr[2]+'.'+arr[1]+'.'+arr[0];
|
||||
}
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
// ****
|
||||
// * Liefert die Daten aus der Zwischenablage
|
||||
// ****
|
||||
@@ -281,7 +303,7 @@ function getMultipleTreeCellText(tree, col)
|
||||
returnArray.push(getTreeCellText(tree, col, v));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return returnArray;
|
||||
}
|
||||
|
||||
@@ -295,18 +317,18 @@ function openWindowPostArray(action, dataName, data)
|
||||
{
|
||||
var FORM_HEAD = "<form id='postform-form' name='postfrm' action='' method='POST'>\n";
|
||||
var FORM_FOOT = "</form>";
|
||||
|
||||
|
||||
var inputsHidden = "";
|
||||
|
||||
|
||||
for (var i = 0; i < data.length; i++)
|
||||
{
|
||||
inputsHidden += " <input type='hidden' name='" + dataName + "[]' value='" + data[i] + "' />\n";
|
||||
}
|
||||
|
||||
|
||||
var newwindow = window.open("", "FAS");
|
||||
newwindow.document.getElementsByTagName('body')[0].innerHTML = FORM_HEAD + inputsHidden + FORM_FOOT;
|
||||
newwindow.document.getElementById('postform-form').action = action;
|
||||
|
||||
|
||||
newwindow.document.postfrm.submit();
|
||||
}
|
||||
|
||||
|
||||
@@ -31,29 +31,30 @@ var glob_akte_id;
|
||||
function InteressentDokumenteDialogInit(prestudent_id, akte_id)
|
||||
{
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
|
||||
if(akte_id!='')
|
||||
{
|
||||
{
|
||||
glob_prestudent_id = prestudent_id;
|
||||
glob_akte_id = akte_id;
|
||||
|
||||
//Daten holen
|
||||
var url = '<?php echo APP_ROOT ?>rdf/akte.rdf.php?akte_id='+akte_id+'&'+gettimestamp();
|
||||
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
|
||||
getService(Components.interfaces.nsIRDFService);
|
||||
|
||||
|
||||
var dsource = rdfService.GetDataSourceBlocking(url);
|
||||
|
||||
|
||||
var subject = rdfService.GetResource("http://www.technikum-wien.at/akte/" + akte_id);
|
||||
|
||||
|
||||
var predicateNS = "http://www.technikum-wien.at/akte/rdf";
|
||||
|
||||
//RDF parsen
|
||||
|
||||
//RDF parsen
|
||||
var titel_intern = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#titel_intern" ));
|
||||
var anmerkung_intern = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung_intern" ));
|
||||
var anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
|
||||
var nachgereicht = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachgereicht" ));
|
||||
var nachgereicht_am = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#nachgereicht_am" ));
|
||||
var dokument_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dokument_kurzbz" ));
|
||||
var dokument_bezeichnung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dokument_bezeichnung" ));
|
||||
}
|
||||
@@ -67,7 +68,7 @@ function InteressentDokumenteDialogInit(prestudent_id, akte_id)
|
||||
menuentry.setAttribute("label",dokument_bezeichnung);
|
||||
dokumentemenue.appendChild(menuentry);
|
||||
}
|
||||
|
||||
|
||||
document.getElementById('interessent-dokumente-dialog-textbox-titel').value=titel_intern;
|
||||
document.getElementById('interessent-dokumente-dialog-textbox-anmerkung').value=anmerkung_intern;
|
||||
|
||||
@@ -78,6 +79,8 @@ function InteressentDokumenteDialogInit(prestudent_id, akte_id)
|
||||
document.getElementById('interessent-dokumente-dialog-label-nachgereicht').value='Dokument wird nachgereicht';
|
||||
else
|
||||
document.getElementById('interessent-dokumente-dialog-label-nachgereicht').value='';
|
||||
|
||||
document.getElementById('interessent-dokumente-dialog-textbox-nachgereicht_am').value=ConvertDateToGerman(nachgereicht_am);
|
||||
}
|
||||
|
||||
// ****
|
||||
|
||||
@@ -100,6 +100,12 @@ $db = new basis_db();
|
||||
<textbox multiline="true" rows="10" id="interessent-dokumente-dialog-textbox-anmerkung" />
|
||||
</row>
|
||||
<row id="interessent-dokumente-dialog-row-anmerkung" hidden="false">
|
||||
<label value="Nachreichung am" control="student-detail-textbox-nachgereicht_am"/>
|
||||
<hbox>
|
||||
<box class="Datum" id="interessent-dokumente-dialog-textbox-nachgereicht_am"/>
|
||||
</hbox>
|
||||
</row>
|
||||
<row id="interessent-dokumente-dialog-row-save" hidden="false">
|
||||
<spacer />
|
||||
<hbox>
|
||||
<spacer flex="1" />
|
||||
|
||||
@@ -128,7 +128,7 @@ function InteressentDokumenteAdd()
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
dok = getTreeCellText(tree, "interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz", v);
|
||||
dok = getTreeCellText(tree, "interessent-dokumente-tree-nichtabgegeben-dokument_kurzbz", v);
|
||||
paramList += ';'+dok;
|
||||
}
|
||||
}
|
||||
@@ -137,7 +137,7 @@ function InteressentDokumenteAdd()
|
||||
prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value
|
||||
|
||||
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value
|
||||
|
||||
|
||||
if(paramList!='')
|
||||
{
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
@@ -207,7 +207,7 @@ function InteressentDokumenteRemove()
|
||||
//Prestudent_id holen
|
||||
prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value;
|
||||
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
||||
|
||||
|
||||
if(paramList!='')
|
||||
{
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
@@ -354,10 +354,10 @@ function ShowDokument()
|
||||
i = tree.currentIndex;
|
||||
else
|
||||
i = 0;
|
||||
|
||||
|
||||
col = tree.columns ? tree.columns["interessent-dokumente-tree-nichtabgegeben-akte_id"] : "interessent-dokumente-tree-nichtabgegeben-akte_id";
|
||||
var akte_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
|
||||
window.open("<?php echo APP_ROOT; ?>content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable");
|
||||
}
|
||||
function ShowDokumentAbgegeben()
|
||||
@@ -368,10 +368,10 @@ function ShowDokumentAbgegeben()
|
||||
i = tree.currentIndex;
|
||||
else
|
||||
i = 0;
|
||||
|
||||
|
||||
col = tree.columns ? tree.columns["interessent-dokumente-tree-abgegeben-akte_id"] : "interessent-dokumente-tree-abgegeben-akte_id";
|
||||
var akte_id=tree.view.getCellText(tree.currentIndex,col);
|
||||
|
||||
|
||||
window.open("<?php echo APP_ROOT; ?>content/akte.php?akte_id="+akte_id,"","chrome, status=no, width=500, height=350, centerscreen, resizable");
|
||||
}
|
||||
|
||||
@@ -384,7 +384,7 @@ function InteressentDokumenteUpload()
|
||||
window.open("<?php echo APP_ROOT; ?>content/akteupload.php?person_id="+person_id ,"","chrome, status=no, width=800, height=350, centerscreen, resizable");
|
||||
}
|
||||
else
|
||||
alert("kein Student ausgewählt");
|
||||
alert("kein Student ausgewählt");
|
||||
}
|
||||
|
||||
function InteressentDokumenteFilter()
|
||||
@@ -398,7 +398,7 @@ function InteressentDokumenteFilter()
|
||||
alert('Bitte einen Studiengang/Semester waehlen');
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Progressmeter starten. Ab jetzt keine 'return's mehr.
|
||||
document.getElementById('statusbar-progressmeter').setAttribute('mode','undetermined');
|
||||
//globalProgressmeter.StartPM();
|
||||
@@ -476,6 +476,8 @@ function InteressentDokumenteDialogSpeichern(dialog, prestudent_id, akte_id)
|
||||
var titel_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-titel').value;
|
||||
var anmerkung_intern=dialog.getElementById('interessent-dokumente-dialog-textbox-anmerkung').value;
|
||||
var dokument_kurzbz=dialog.getElementById('interessent-dokumente-dialog-menulist-dokument_kurzbz').value;
|
||||
var nachgereicht_am=dialog.getElementById('interessent-dokumente-dialog-textbox-nachgereicht_am').value;
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
@@ -485,7 +487,8 @@ function InteressentDokumenteDialogSpeichern(dialog, prestudent_id, akte_id)
|
||||
req.add('akte_id', akte_id);
|
||||
req.add('titel_intern', titel_intern);
|
||||
req.add('anmerkung_intern', anmerkung_intern);
|
||||
req.add('dokument_kurzbz',dokument_kurzbz);
|
||||
req.add('dokument_kurzbz', dokument_kurzbz);
|
||||
req.add('nachgereicht_am', ConvertDateToISO(nachgereicht_am));
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
@@ -549,7 +552,7 @@ function InteressentDokumenteAbgegebenEntfernen()
|
||||
var tree = document.getElementById('interessent-dokumente-tree-abgegeben');
|
||||
var akte_id = getTreeCellText(tree, 'interessent-dokumente-tree-abgegeben-akte_id', tree.currentIndex);
|
||||
prestudent_id = document.getElementById('student-prestudent-textbox-prestudent_id').value;
|
||||
|
||||
|
||||
if(confirm('Dieses Dokument wirklich loeschen?'))
|
||||
{
|
||||
InteressentDokumentEntfernen(akte_id, prestudent_id);
|
||||
@@ -599,7 +602,7 @@ function InteressentDokumenteAbgegebenUpload()
|
||||
window.open("<?php echo APP_ROOT; ?>content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable");
|
||||
}
|
||||
else
|
||||
alert("kein Student ausgewählt");
|
||||
alert("kein Student ausgewählt");
|
||||
}
|
||||
function InteressentDokumenteNichtabgegebenUpload()
|
||||
{
|
||||
@@ -613,7 +616,7 @@ function InteressentDokumenteNichtabgegebenUpload()
|
||||
window.open("<?php echo APP_ROOT; ?>content/akteupload.php?person_id="+person_id+"&dokument_kurzbz="+dokument_kurzbz ,"Upload","width=800, height=350, centerscreen, resizable");
|
||||
}
|
||||
else
|
||||
alert("kein Student ausgewählt");
|
||||
alert("kein Student ausgewählt");
|
||||
}
|
||||
|
||||
function InteressentDokumenteTreeNichtAbgegebenPopupShowing()
|
||||
|
||||
@@ -968,7 +968,7 @@ if(!$error)
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='returnDeletePrestudent')
|
||||
{
|
||||
//Prueft, wie viele Prestudentrolle-Eintraege noch vorhanden sind und gibt diese Anzahl als Wert zurueck
|
||||
|
||||
|
||||
if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']))
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER);
|
||||
@@ -2200,6 +2200,7 @@ if(!$error)
|
||||
$akte->anmerkung_intern = $_POST['anmerkung_intern'];
|
||||
$akte->titel_intern = $_POST['titel_intern'];
|
||||
$akte->dokument_kurzbz = $_POST['dokument_kurzbz'];
|
||||
$akte->nachgereicht_am = $_POST['nachgereicht_am'];
|
||||
$akte->updateamum = date('Y-m-d H:i:s');
|
||||
$akte->updatevon = $user;
|
||||
|
||||
@@ -2257,8 +2258,8 @@ if(!$error)
|
||||
else
|
||||
{
|
||||
// Log schreiben
|
||||
$logdata_dms = (array)$dms;
|
||||
$logdata = var_export($logdata_dms, true);
|
||||
$logdata_dms = (array)$dms;
|
||||
$logdata = var_export($logdata_dms, true);
|
||||
$log = new log();
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->mitarbeiter_uid = $user;
|
||||
@@ -2268,8 +2269,8 @@ if(!$error)
|
||||
$log->save(true);
|
||||
}
|
||||
// Log schreiben
|
||||
$logdata_akte = (array)$akte;
|
||||
$logdata = var_export($logdata_akte, true);
|
||||
$logdata_akte = (array)$akte;
|
||||
$logdata = var_export($logdata_akte, true);
|
||||
$log = new log();
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->mitarbeiter_uid = $user;
|
||||
@@ -3972,7 +3973,7 @@ if(!$error)
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//******** AUFNAHMETERMINE *****
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineSave') // **** AufnahmeTermine **** //
|
||||
{
|
||||
@@ -4007,10 +4008,10 @@ if(!$error)
|
||||
$studienplan_id = $_POST['studienplan_id'];
|
||||
|
||||
$reihungstest = new reihungstest();
|
||||
|
||||
|
||||
if($rt_person_id!='')
|
||||
{
|
||||
$reihungstest->loadReihungstestPerson($rt_person_id);
|
||||
$reihungstest->loadReihungstestPerson($rt_person_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -4043,7 +4044,7 @@ if(!$error)
|
||||
$reihungstest->studienplan_id = $studienplan_id;
|
||||
($reihungstest->new) ? $reihungstest->insertamum = date('Y-m-d H:i:s'): $reihungstest->updateamum = date('Y-m-d H:i:s');
|
||||
($reihungstest->new) ? $reihungstest->insertvon = $user : $reihungstest->updatevon = $user;
|
||||
|
||||
|
||||
if($reihungstest->savePersonReihungstest())
|
||||
{
|
||||
$return = true;
|
||||
@@ -4188,7 +4189,7 @@ if(!$error)
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='AufnahmeTermineBerechneGesamtpunkte')
|
||||
{
|
||||
//Speichert einen Aufnahmetermin einer Person
|
||||
|
||||
@@ -24,7 +24,6 @@ require_once(dirname(__FILE__).'/authentication.class.php');
|
||||
require_once(dirname(__FILE__).'/betriebsmittelperson.class.php');
|
||||
require_once(dirname(__FILE__).'/personlog.class.php');
|
||||
require_once(dirname(__FILE__).'/benutzerberechtigung.class.php');
|
||||
require_once(dirname(__FILE__).'/mitarbeiter.class.php');
|
||||
|
||||
// Auth: Benutzer des Webportals
|
||||
/**
|
||||
@@ -1101,10 +1100,10 @@ function PersonLog($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $a
|
||||
}
|
||||
|
||||
/** Sets leading zeros to an integer number. 2 digits by default.
|
||||
*
|
||||
*
|
||||
* @param integer $number
|
||||
* @param integer $length
|
||||
* @return integer
|
||||
* @return integer
|
||||
*/
|
||||
function setLeadingZero($number, $length = 2)
|
||||
{
|
||||
|
||||
@@ -97,6 +97,7 @@ foreach ($akten->result as $row)
|
||||
<AKTE:titel_intern><![CDATA['.$row->titel_intern.']]></AKTE:titel_intern>
|
||||
<AKTE:anmerkung><![CDATA['.$row->anmerkung.']]></AKTE:anmerkung>
|
||||
<AKTE:nachgereicht><![CDATA['.($row->nachgereicht?'Ja':'Nein').']]></AKTE:nachgereicht>
|
||||
<AKTE:nachgereicht_am><![CDATA['.$row->nachgereicht_am.']]></AKTE:nachgereicht_am>
|
||||
<AKTE:signiert><![CDATA['.($row->signiert?'Ja':'Nein').']]></AKTE:signiert>
|
||||
<AKTE:stud_selfservice><![CDATA['.($row->stud_selfservice?'Ja':'Nein').']]></AKTE:stud_selfservice>
|
||||
</RDF:Description>
|
||||
|
||||
@@ -264,7 +264,8 @@ $filters = array(
|
||||
{"name": "StgAbgeschickt"},
|
||||
{"name": "LastAction"},
|
||||
{"name": "User/Operator"},
|
||||
{"name": "LockUser"}
|
||||
{"name": "LockUser"},
|
||||
{"name": "Statusgrund"}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
@@ -298,7 +299,8 @@ $filters = array(
|
||||
{"name": "StgAbgeschickt"},
|
||||
{"name": "LastAction"},
|
||||
{"name": "User/Operator"},
|
||||
{"name": "LockUser"}
|
||||
{"name": "LockUser"},
|
||||
{"name": "Statusgrund"}
|
||||
],
|
||||
"filters": [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user