mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'master' into signatur
This commit is contained in:
+15
-1
@@ -13,7 +13,9 @@
|
||||
- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden
|
||||
- **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen
|
||||
- **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen
|
||||
- **[CORE]** UserDefinedFields
|
||||
- **[CORE]** UserDefinedFields hinzugefügt zur Verwalung von eigenen Eingabefeldern
|
||||
- **[CORE]** Support für Extensions hinzugefügt - eine Weiterentwicklung der Addons für die Verwendung mit Codeigniter
|
||||
- **[CORE]** Infocenter Seite hinzugefügt zur zentralen Verwaltung und ZGV Prüfung von Interessenten
|
||||
|
||||
### CHANGED
|
||||
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben
|
||||
@@ -32,6 +34,18 @@
|
||||
**[CORE]** Removed Support for XSLFO2PDF Documents - use unoconv instead
|
||||
**[CORE]** Removed Support for FOP Documents - use unoconv instead
|
||||
|
||||
### Deprecated
|
||||
- **[CORE]** Die folgenden Datenbank Tabellen und Spalten wurden als DEPRECATED markiert und werden mit der nächsten Version entfernt:
|
||||
public.tbl_aufnahmeschluessel, public.tbl_aufnahmetermin, public.tbl_aufnahmetermintyp, public.tbl_preinteressent,
|
||||
public.tbl_preinteressentstudiengang, campus.tbl_feedback, campus.tbl_lvinfo, campus.tbl_resturlaub, lehre.tbl_lehrfach
|
||||
lehre.tbl_lehrmittel, lehre.tbl_moodle, lehre.tbl_moodle_version, lehre.tbl_studienordnung_semester, lehre.tbl_zeitfenster
|
||||
lehre.tbl_zeugnis, fue.tbl_scrumsprint, fue.tbl_scrumteam, wawi.tbl_aufteilung, wawi.tbl_aufteilung_default,
|
||||
testtool.tbl_kategorie, testtool.tbl_kriterien, public.tbl_prestudent.rt_punkte1, public.tbl_prestudent.rt_punkte2
|
||||
public.tbl_prestudent.rt_punkte3, public.tbl_prestudent.anmeldungreihungstest, public.tbl_prestudent.reihungstest_id
|
||||
public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id
|
||||
- **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon
|
||||
- **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon
|
||||
|
||||
## [3.2]
|
||||
|
||||
### Added
|
||||
|
||||
@@ -74,25 +74,33 @@ class Filters extends VileSci_Controller
|
||||
$allSelectedFields = $_SESSION[self::SESSION_NAME]['allSelectedFields'];
|
||||
$allColumnsAliases = $_SESSION[self::SESSION_NAME]['allColumnsAliases'];
|
||||
|
||||
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'];
|
||||
$json->columnsAliases = $_SESSION[self::SESSION_NAME]['columnsAliases'];
|
||||
|
||||
if (isset($selectedFieldsLst) && is_array($selectedFieldsLst))
|
||||
{
|
||||
$json->selectedFields = $_SESSION[self::SESSION_NAME]['selectedFields'] = $selectedFieldsLst;
|
||||
$json->selectedFields = $selectedFieldsLst;
|
||||
$json->columnsAliases = array();
|
||||
|
||||
for ($i = 0; $i < count($json->selectedFields); $i++)
|
||||
{
|
||||
$pos = array_search($json->selectedFields[$i], $allSelectedFields);
|
||||
|
||||
$json->columnsAliases[$i] = $json->selectedFields[$i];
|
||||
|
||||
if ($pos !== false)
|
||||
{
|
||||
$json->columnsAliases[] = $json->selectedFields[$i];
|
||||
if ($allColumnsAliases != null && is_array($allColumnsAliases))
|
||||
{
|
||||
$json->columnsAliases[] = $allColumnsAliases[$pos];
|
||||
$json->columnsAliases[$i] = $allColumnsAliases[$pos];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION[self::SESSION_NAME]['selectedFields'] = $json->selectedFields;
|
||||
$_SESSION[self::SESSION_NAME]['columnsAliases'] = $json->columnsAliases;
|
||||
|
||||
$this->output->set_content_type('application/json')->set_output(json_encode($json));
|
||||
}
|
||||
|
||||
@@ -125,10 +133,10 @@ class Filters extends VileSci_Controller
|
||||
|
||||
if ($pos !== false)
|
||||
{
|
||||
$json->selectedFiltersAliases[] = $json->selectedFilters[$i];
|
||||
$json->selectedFiltersAliases[$i] = $json->selectedFilters[$i];
|
||||
if ($json->allColumnsAliases != null && is_array($json->allColumnsAliases))
|
||||
{
|
||||
$json->selectedFiltersAliases[] = $json->allColumnsAliases[$pos];
|
||||
$json->selectedFiltersAliases[$i] = $json->allColumnsAliases[$pos];
|
||||
}
|
||||
|
||||
$json->selectedFiltersMetaData[] = $metaData[$pos];
|
||||
|
||||
@@ -690,7 +690,7 @@ class MessageLib
|
||||
|
||||
// Sending email
|
||||
$sent = $this->ci->maillib->send(
|
||||
$sender,
|
||||
null,
|
||||
$receiverContact,
|
||||
is_null($subject) ? $result->retval[0]->subject : $subject, // if parameter subject is not null, use it!
|
||||
$bodyMsg,
|
||||
|
||||
@@ -3,14 +3,20 @@
|
||||
<div class="text-center">
|
||||
<label>Notiz hinzufügen</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Titel: </label><input type="text" class="form-control"
|
||||
name="notiztitel"/>
|
||||
<div>
|
||||
<div class="form-group">
|
||||
<label>Titel: </label>
|
||||
<div class="input-group">
|
||||
<input id="inputNotizTitel" type="text" class="form-control" name="notiztitel"/>
|
||||
<div class="input-group-addon" onclick="document.getElementById('inputNotizTitel').value='Anmerkung zur Bewerbung'">
|
||||
<span class="glyphicon glyphicon-text-background"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Text: </label><textarea name="notiz" class="form-control"
|
||||
rows="10"
|
||||
cols="32"></textarea>
|
||||
<label>Text: </label>
|
||||
<textarea name="notiz" class="form-control" rows="10" cols="32"></textarea>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-default">Speichern</button>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
(
|
||||
SELECT zeitpunkt
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz = \'bewerbung\'
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
@@ -20,7 +20,7 @@
|
||||
(
|
||||
SELECT insertvon
|
||||
FROM system.tbl_log
|
||||
WHERE taetigkeit_kurzbz = \'bewerbung\'
|
||||
WHERE taetigkeit_kurzbz IN(\'bewerbung\',\'kommunikation\')
|
||||
AND person_id = p.person_id
|
||||
ORDER BY zeitpunkt DESC
|
||||
LIMIT 1
|
||||
@@ -83,7 +83,7 @@
|
||||
) AS "AnzahlAbgeschickt",
|
||||
array_to_string(
|
||||
(
|
||||
SELECT array_agg(distinct tbl_studiengang.kurzbzlang)
|
||||
SELECT array_agg(distinct UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz))
|
||||
FROM
|
||||
public.tbl_prestudentstatus pss
|
||||
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
|
||||
@@ -99,7 +99,7 @@
|
||||
WHERE ende >= NOW()
|
||||
)
|
||||
LIMIT 1
|
||||
),\',\'
|
||||
),\', \'
|
||||
) AS "StgAbgeschickt",
|
||||
pl.zeitpunkt AS "LockDate",
|
||||
pl.lockuser as "LockUser"
|
||||
@@ -135,12 +135,14 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
ORDER BY "LastAction" DESC
|
||||
ORDER BY "LastAction" ASC
|
||||
',
|
||||
'hideHeader' => false,
|
||||
'hideSave' => false,
|
||||
'checkboxes' => 'PersonId',
|
||||
'additionalColumns' => array('Details'),
|
||||
'columnsAliases' => array('PersonID','Vorname','Nachname','GebDatum','Letzte Aktion','Letzter Bearbeiter',
|
||||
'StSem','GesendetAm','NumAbgeschickt','Studiengänge','Sperrdatum','GesperrtVon'),
|
||||
'formatRaw' => function($datasetRaw) {
|
||||
|
||||
$datasetRaw->{'Details'} = sprintf(
|
||||
@@ -153,10 +155,18 @@
|
||||
{
|
||||
$datasetRaw->{'SendDate'} = 'Not sent';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'SendDate'} = date_format(date_create($datasetRaw->{'SendDate'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LastAction'} == null)
|
||||
{
|
||||
$datasetRaw->{'LastAction'} = 'Not logged';
|
||||
$datasetRaw->{'LastAction'} = '-';
|
||||
}
|
||||
else
|
||||
{
|
||||
$datasetRaw->{'LastAction'} = date_format(date_create($datasetRaw->{'LastAction'}),'Y-m-d H:i');
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'User/Operator'} == '')
|
||||
@@ -166,12 +176,12 @@
|
||||
|
||||
if ($datasetRaw->{'LockDate'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockDate'} = 'Not locked';
|
||||
$datasetRaw->{'LockDate'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'LockUser'} == null)
|
||||
{
|
||||
$datasetRaw->{'LockUser'} = 'Not locked';
|
||||
$datasetRaw->{'LockUser'} = '-';
|
||||
}
|
||||
|
||||
if ($datasetRaw->{'StgAbgeschickt'} == null)
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
</div>
|
||||
<?php if (isset($stammdaten->zugangscode)): ?>
|
||||
<div class="col-lg-6 text-right">
|
||||
<a href="<?php echo base_url('addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode)) ?>"
|
||||
<a href="<?php echo CIS_ROOT.'addons/bewerbung/cis/registration.php?code='.html_escape($stammdaten->zugangscode) ?>"
|
||||
target='_blank'><i class="glyphicon glyphicon-new-window"></i> Zugang Bewerbung</a>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -136,8 +136,10 @@ $href = str_replace("/system/Messages/write", "/system/Messages/send", $_SERVER[
|
||||
<div class="form-grop form-inline">
|
||||
<label>Recipient:</label>
|
||||
<select id="recipients">
|
||||
<option value="-1">Select...</option>
|
||||
<?php
|
||||
<?php
|
||||
if (count($receivers) > 1)
|
||||
echo '<option value="-1">Select...</option>';
|
||||
|
||||
$idtype = $personOnly === true ? 'person_id' : 'prestudent_id';
|
||||
foreach ($receivers as $receiver)
|
||||
{
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
.filter-name-title {
|
||||
font-family: inherit;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
/*font-weight: bold;*/
|
||||
line-height: 1.1;
|
||||
color: black;
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ class Vorlage_widget extends DropdownWidget
|
||||
// All organization units to which the user belongs
|
||||
$oe_kurzbz = $widgetData['oe_kurzbz'];
|
||||
$idAdmin = $widgetData['isAdmin'];
|
||||
|
||||
|
||||
$vorlage = null;
|
||||
|
||||
|
||||
// If the user is an admin
|
||||
if ($idAdmin === true)
|
||||
{
|
||||
@@ -23,17 +23,17 @@ class Vorlage_widget extends DropdownWidget
|
||||
// organisation unit tree
|
||||
$vorlage = $this->_getUserVorlage($oe_kurzbz);
|
||||
}
|
||||
|
||||
|
||||
$this->setElementsArray(
|
||||
$vorlage,
|
||||
true,
|
||||
'Select a vorlage...',
|
||||
'No vorlage found'
|
||||
);
|
||||
|
||||
|
||||
$this->loadDropDownView($widgetData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all the vorlage with mimetype = text/html
|
||||
*/
|
||||
@@ -41,12 +41,12 @@ class Vorlage_widget extends DropdownWidget
|
||||
{
|
||||
$this->load->model('system/Vorlage_model', 'VorlageModel');
|
||||
$this->VorlageModel->addOrder('vorlage_kurzbz');
|
||||
|
||||
|
||||
$this->addSelectToModel($this->VorlageModel, 'vorlage_kurzbz', 'bezeichnung');
|
||||
|
||||
|
||||
return $this->VorlageModel->loadWhere(array('mimetype' => 'text/html'));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all the vorlage that belongs to the organisation units of the user
|
||||
* and the parents of those organisation units until the root of the
|
||||
@@ -56,9 +56,9 @@ class Vorlage_widget extends DropdownWidget
|
||||
{
|
||||
// Loads library OrganisationseinheitLib
|
||||
$this->load->library('OrganisationseinheitLib');
|
||||
|
||||
|
||||
$vorlage = success(array()); // Default value
|
||||
|
||||
|
||||
$table = '(
|
||||
SELECT v.vorlage_kurzbz, v.bezeichnung, vs.version, vs.oe_kurzbz, vs.aktiv, vs.subject, vs.text, v.mimetype
|
||||
FROM tbl_vorlagestudiengang vs INNER JOIN tbl_vorlage v USING(vorlage_kurzbz)
|
||||
@@ -70,7 +70,7 @@ class Vorlage_widget extends DropdownWidget
|
||||
AND templates.text IS NOT NULL
|
||||
AND templates.mimetype = \'text/html\'';
|
||||
$order_by = 'description ASC';
|
||||
|
||||
|
||||
if (!is_array($oe_kurzbz))
|
||||
{
|
||||
$vorlage = $this->organisationseinheitlib->treeSearchEntire(
|
||||
@@ -95,14 +95,20 @@ class Vorlage_widget extends DropdownWidget
|
||||
$order_by,
|
||||
$val
|
||||
);
|
||||
|
||||
|
||||
// Everything is ok and data are inside
|
||||
if (hasData($tmpVorlage))
|
||||
{
|
||||
// If it's the first vorlage copy it
|
||||
if (count($vorlage->retval) == 0)
|
||||
{
|
||||
$vorlage->retval = $tmpVorlage->retval;
|
||||
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
|
||||
{
|
||||
if ($tmpVorlage->retval[$j]->id != '')
|
||||
{
|
||||
array_push($vorlage->retval, $tmpVorlage->retval[$j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
else // checks for duplicates, if it's not already present push it into the array $vorlage->retval
|
||||
{
|
||||
@@ -110,7 +116,8 @@ class Vorlage_widget extends DropdownWidget
|
||||
{
|
||||
for ($j = 0; $j < count($tmpVorlage->retval); $j++)
|
||||
{
|
||||
if ($vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
|
||||
if ($tmpVorlage->retval[$j]->id != ''
|
||||
&& $vorlage->retval[$i]->_pk != $tmpVorlage->retval[$j]->_pk
|
||||
&& $vorlage->retval[$i]->_ppk != $tmpVorlage->retval[$j]->_ppk
|
||||
&& $vorlage->retval[$i]->_jtpk != $tmpVorlage->retval[$j]->_jtpk)
|
||||
{
|
||||
@@ -122,7 +129,7 @@ class Vorlage_widget extends DropdownWidget
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $vorlage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+121
-84
@@ -1,119 +1,159 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
/*
|
||||
* Copyright (C) 2006 Technikum-Wien
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>
|
||||
* Manfred Kindl <manfred.kindl@technikum-wien.at>.
|
||||
*/
|
||||
// Holt ein Bildes aus der DB wandelt es
|
||||
// um und gibt das ein Bild zurueck.
|
||||
// Aufruf mit <img src='bild.php?src=person&person_id=1>
|
||||
require_once('../../config/cis.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/benutzer.class.php');
|
||||
require_once('../../include/dms.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once ('../../config/cis.config.inc.php');
|
||||
require_once ('../../include/functions.inc.php');
|
||||
require_once ('../../include/basis_db.class.php');
|
||||
require_once ('../../include/benutzer.class.php');
|
||||
require_once ('../../include/dms.class.php');
|
||||
require_once ('../../include/person.class.php');
|
||||
|
||||
session_start();
|
||||
|
||||
if (!$db = new basis_db())
|
||||
if (! $db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$person_id = '';
|
||||
$serverzugriff=false;
|
||||
//Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
|
||||
//Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
|
||||
//(z.B. fuer die Erstellung von PDFs)
|
||||
if($_SERVER['REMOTE_ADDR']!=$_SERVER['SERVER_ADDR'])
|
||||
$person_id_user = '';
|
||||
$person_id_foto = isset($_GET['person_id']) && is_numeric($_GET['person_id']) ? $_GET['person_id'] : '';
|
||||
$serverzugriff = false;
|
||||
$source = isset($_GET['src']) ? $_GET['src'] : '';
|
||||
|
||||
// Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
|
||||
// Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
|
||||
// (z.B. fuer die Erstellung von PDFs)
|
||||
if ($_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'])
|
||||
{
|
||||
// wenn session gesetzt ist von Prestudententool, Incomingtool oder Bewerbungstool -> keine Abfrage da diese Personen noch keine uid haben
|
||||
if(!isset($_SESSION['prestudent/user']) && !isset($_SESSION['incoming/user']) && !isset($_SESSION['bewerbung/personId']))
|
||||
$uid = get_uid();
|
||||
else
|
||||
// Wenn Session gesetzt ist, keine Abfrage, da diese Personen noch keine UID haben
|
||||
// Von Incomingtool
|
||||
if (isset($_SESSION['incoming/user']))
|
||||
{
|
||||
if (isset($_SESSION['incoming/user']))
|
||||
{
|
||||
$person = new person();
|
||||
$person_id = $person->checkZugangscode($_SESSION['incoming/user']);
|
||||
}
|
||||
elseif (isset($_SESSION['prestudent/user']))
|
||||
{
|
||||
$person = new person();
|
||||
$person_id = $person->checkZugangscode($_SESSION['prestudent/user']);
|
||||
}
|
||||
elseif (isset($_SESSION['bewerbung/personId']))
|
||||
{
|
||||
$person_id = $_SESSION['bewerbung/personId'];
|
||||
}
|
||||
$person = new person();
|
||||
$person_id_user = $person->checkZugangscode($_SESSION['incoming/user']);
|
||||
}
|
||||
// Von Prestudententool
|
||||
elseif (isset($_SESSION['prestudent/user']))
|
||||
{
|
||||
$person = new person();
|
||||
$person_id_user = $person->checkZugangscode($_SESSION['prestudent/user']);
|
||||
}
|
||||
// Von Bewerbungstool
|
||||
elseif (isset($_SESSION['bewerbung/personId']))
|
||||
{
|
||||
$person_id_user = $_SESSION['bewerbung/personId'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$uid = get_uid();
|
||||
$benutzer = new benutzer($uid);
|
||||
$person_id_user = $benutzer->person_id;
|
||||
}
|
||||
}
|
||||
else
|
||||
$serverzugriff=true;
|
||||
$serverzugriff = true;
|
||||
|
||||
//default bild (ein weisser pixel)
|
||||
$cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
|
||||
//Hex Dump aus der DB holen
|
||||
if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) && is_numeric($_GET['person_id']))
|
||||
// Default Bild (ein weisser Pixel)
|
||||
/*$cTmpHEX = '/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgc
|
||||
MCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh
|
||||
4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAA
|
||||
AAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';*/
|
||||
|
||||
// Default Bild (Dummy Profilbild)
|
||||
$cTmpHEX = base64_encode(file_get_contents('../../skin/images/profilbild_dummy.jpg'));
|
||||
|
||||
// Hex Dump aus der DB holen
|
||||
|
||||
if($source == 'person' && $person_id_foto != '')
|
||||
{
|
||||
$qry = "SELECT tbl_akte.inhalt as foto, tbl_person.foto_sperre, tbl_akte.dms_id, tbl_person.person_id FROM public.tbl_akte JOIN public.tbl_person USING(person_id) WHERE tbl_akte.person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER)." AND dokument_kurzbz='Lichtbil'";
|
||||
if($result = $db->db_query($qry))
|
||||
$foto_gesperrt = false;
|
||||
// Person laden und Fotosperre überprüfen
|
||||
$person_obj = new person($person_id_foto);
|
||||
if ($person_obj->foto_sperre === true)
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$foto_gesperrt = true;
|
||||
// Wenn der User selbst darauf zugreift darf er das Bild sehen
|
||||
if ($person_id_user == $person_id_foto)
|
||||
$foto_gesperrt = false;
|
||||
}
|
||||
elseif ($person_id_user == '' && ! $serverzugriff)
|
||||
{
|
||||
$foto_gesperrt = true;
|
||||
}
|
||||
|
||||
if ($person_obj->foto != '' && ! $foto_gesperrt)
|
||||
{
|
||||
$cTmpHEX = base64_decode($person_obj->foto);
|
||||
}
|
||||
}
|
||||
if($source == 'akte' && $person_id_foto != '')
|
||||
{
|
||||
$qry = "SELECT tbl_akte.inhalt AS foto,
|
||||
tbl_person.foto_sperre,
|
||||
tbl_akte.dms_id,
|
||||
tbl_person.person_id
|
||||
FROM PUBLIC.tbl_akte
|
||||
JOIN PUBLIC.tbl_person USING (person_id)
|
||||
WHERE tbl_akte.person_id = " . $person_id_foto . "
|
||||
AND dokument_kurzbz = 'Lichtbil'";
|
||||
if ($result = $db->db_query($qry))
|
||||
{
|
||||
if ($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$gesperrt=false;
|
||||
|
||||
//Schauen ob eine Foto Sperre existiert, wenn nicht, schauen, ob der User auch die selbe Person ist
|
||||
if($db->db_parse_bool($row->foto_sperre))
|
||||
$foto_gesperrt = false;
|
||||
|
||||
// Schauen ob eine Foto Sperre existiert, wenn nicht, schauen, ob der User auch die selbe Person ist
|
||||
if ($db->db_parse_bool($row->foto_sperre))
|
||||
{
|
||||
$gesperrt=true;
|
||||
if(isset($uid))
|
||||
$foto_gesperrt = true;
|
||||
if ($person_id_user == $person_id_foto)
|
||||
{
|
||||
//Wenn der User selbst darauf zugreift darf er das Bild sehen
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
if($benutzer->person_id==$_GET['person_id'])
|
||||
$gesperrt=false;
|
||||
|
||||
// Wenn der User selbst darauf zugreift darf er das Bild sehen
|
||||
if ($person_id_user == $person_id_foto)
|
||||
$foto_gesperrt = false;
|
||||
}
|
||||
}
|
||||
elseif(!isset($uid) && $person_id != $row->person_id && !$serverzugriff)
|
||||
elseif ($person_id_user == '' && ! $serverzugriff)
|
||||
{
|
||||
$gesperrt=true;
|
||||
$foto_gesperrt = true;
|
||||
}
|
||||
|
||||
if($row->foto=='' && $row->dms_id!='')
|
||||
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
|
||||
if ($row->foto == '' && $row->dms_id != '')
|
||||
{
|
||||
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
|
||||
$dms = new dms();
|
||||
if(!$dms->load($row->dms_id))
|
||||
if (! $dms->load($row->dms_id))
|
||||
die('Kein Dokument vorhanden');
|
||||
|
||||
$filename=DMS_PATH.$dms->filename;
|
||||
|
||||
|
||||
$filename = DMS_PATH . $dms->filename;
|
||||
|
||||
$dms->touch($dms->dms_id, $dms->version);
|
||||
|
||||
if(file_exists($filename))
|
||||
|
||||
if (file_exists($filename))
|
||||
{
|
||||
if($handle = fopen($filename,"r"))
|
||||
if ($handle = fopen($filename, "r"))
|
||||
{
|
||||
while (!feof($handle))
|
||||
while (! feof($handle))
|
||||
{
|
||||
$row->foto.= fread($handle, 8192);
|
||||
$row->foto .= fread($handle, 8192);
|
||||
}
|
||||
fclose($handle);
|
||||
}
|
||||
@@ -123,31 +163,28 @@ if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) &
|
||||
else
|
||||
echo 'Die Datei existiert nicht';
|
||||
}
|
||||
|
||||
if($row->foto!='' && !$gesperrt)
|
||||
|
||||
if ($row->foto != '' && ! $foto_gesperrt)
|
||||
{
|
||||
if($row->dms_id=='')
|
||||
$cTmpHEX=$row->foto;
|
||||
else
|
||||
$cTmpHEX=$row->foto;
|
||||
$cTmpHEX = $row->foto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
|
||||
//von pdfs kommen kann.
|
||||
// die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
|
||||
// von pdfs kommen kann.
|
||||
|
||||
$im = @imagecreatefromstring(base64_decode($cTmpHEX));
|
||||
if($im!=false)
|
||||
if ($im != false)
|
||||
{
|
||||
@ob_clean();
|
||||
@ob_clean();
|
||||
header("Content-type: image/jpeg");
|
||||
exit(imagejpeg($im));
|
||||
}
|
||||
else
|
||||
{
|
||||
//bei manchen Bildern funktioniert die konvertierung nicht
|
||||
//diese werden dann einfach so angezeigt.
|
||||
// bei manchen Bildern funktioniert die konvertierung nicht
|
||||
// diese werden dann einfach so angezeigt.
|
||||
@ob_clean();
|
||||
header("Content-type: image/gif");
|
||||
exit($cTmpHEX);
|
||||
|
||||
@@ -1681,7 +1681,7 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
else
|
||||
$errormsg .= "Der Student $uid ist bereits in dieser Gruppe\n";
|
||||
$errormsg .= "Der Student $uid ist bereits im $benutzergruppe->studiensemester_kurzbz dieser Gruppe zugeteilt. Entfernen Sie vorher diese Zuteilung.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -459,6 +459,7 @@ else
|
||||
<tabbox id="student-tabbox" flex="3" orient="vertical">
|
||||
<tabs orient="horizontal" id="student-content-tabs">
|
||||
<tab id="student-tab-detail" label="Details" />
|
||||
<tab id="student-tab-notizen" label="Notizen"/>
|
||||
<tab id="student-tab-kontakt" label="Kontakt" />
|
||||
<tab id="student-tab-prestudent" label="PreStudent" />
|
||||
<tab id="student-tab-dokumente" label="Dokumente" />
|
||||
@@ -477,7 +478,6 @@ else
|
||||
<tab id="student-tab-projektarbeit" label="Projektarbeit" />
|
||||
<tab id="student-tab-gruppen" label="Gruppen" onclick="StudentGruppenLoadData();"/>
|
||||
<tab id="student-tab-funktionen" label="Funktionen" onclick="StudentFunktionIFrameLoad();"/>
|
||||
<tab id="student-tab-notizen" label="Notizen"/>
|
||||
<tab id="student-tab-termine" label="LV-Termine" onclick="StudentTermineIFrameLoad();"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('student/anwesenheit'))
|
||||
@@ -497,6 +497,9 @@ else
|
||||
</tabs>
|
||||
<tabpanels id="student-tabpanels-main" flex="1">
|
||||
<vbox id="student-detail" style="margin-top:10px;" />
|
||||
<vbox id="student-box-notiz">
|
||||
<box class="Notiz" flex="1" id="student-box-notizen"/>
|
||||
</vbox>
|
||||
<iframe id="student-kontakt" src="" style="margin-top:10px;" />
|
||||
<vbox id="student-prestudent" style="margin-top:10px;" />
|
||||
<vbox id="interessent-dokumente" style="margin-top:10px;" />
|
||||
@@ -515,9 +518,6 @@ else
|
||||
<vbox id="student-projektarbeit" style="margin-top:10px;" />
|
||||
<vbox id="student-gruppen" style="margin-top:10px;" />
|
||||
<iframe id="student-funktionen" src="" style="margin-top:10px;" />
|
||||
<vbox id="student-box-notiz">
|
||||
<box class="Notiz" flex="1" id="student-box-notizen"/>
|
||||
</vbox>
|
||||
<iframe id="student-termine" src="" style="margin-top:10px;" />
|
||||
<?php
|
||||
if($rechte->isBerechtigt('student/anwesenheit'))
|
||||
|
||||
@@ -50,10 +50,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<hbox>
|
||||
<spacer flex="1" />
|
||||
<button id="student-konto-button-filter" value="alle" oncommand="StudentKontoFilter()" label="offene anzeigen" disabled="true"/>
|
||||
</hbox>
|
||||
<hbox></hbox>
|
||||
<hbox>
|
||||
<!--
|
||||
<button id="student-konto-button-filterstudenten" oncommand="StudentKontoFilterStudenten('konto')" label="Studentenliste auf offene Buchungen filtern" tooltiptext="Liste aller Studenten mit offenen Buchungen"/>
|
||||
@@ -64,7 +61,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
<vbox>
|
||||
<spacer flex="1" />
|
||||
<label value="Liste auf nicht gebuchte"/>
|
||||
<label value="Liste filtern auf nicht belastet: "/>
|
||||
<sapcer flex="1" />
|
||||
</vbox>
|
||||
<vbox flex="1">
|
||||
@@ -91,7 +88,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<hbox>
|
||||
<vbox>
|
||||
<spacer flex="1" />
|
||||
<label value="Liste auf offene"/>
|
||||
<label value="Liste filtern auf fehlende Gegenbuchungen: "/>
|
||||
<sapcer flex="1" />
|
||||
</vbox>
|
||||
<vbox flex="1">
|
||||
@@ -118,7 +115,13 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
|
||||
<row flex="1">
|
||||
<vbox flex="1">
|
||||
<label id="student-konto-label-filter" value="alle Buchungen:"/>
|
||||
<hbox>
|
||||
<button id="student-konto-button-filter" value="alle" oncommand="StudentKontoFilter()" label="Offene anzeigen" disabled="true"/>
|
||||
<spacer flex="1" />
|
||||
</hbox>
|
||||
|
||||
<label id="student-konto-label-filter" value="alle Buchungen:" hidden="true"/>
|
||||
|
||||
<tree id="student-konto-tree" seltype="multi" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/konto/liste"
|
||||
style="margin-left:10px;margin-right:10px;margin-bottom:5px;margin-top: 10px;" enableColumnDrag="true"
|
||||
@@ -195,7 +198,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
|
||||
<hbox>
|
||||
<button id="student-konto-button-neu" label="Neu" oncommand="StudentKontoNeu();" disabled="true"/>
|
||||
<button id="student-konto-button-gegenbuchung" label="Gegenbuchung" oncommand="StudentKontoGegenbuchung();" disabled="true"/>
|
||||
<box class="Datum" id="student-konto-textbox-gegenbuchungsdatum" disabled="true"/>
|
||||
<box class="Datum" id="student-konto-textbox-gegenbuchungsdatum" disabled="true" tooltiptext="Optionales Datum der Gegenbuchung"/>
|
||||
<button id="student-konto-button-loeschen" label="Loeschen" oncommand="StudentKontoDelete();" disabled="true"/>
|
||||
<spacer flex="1"/>
|
||||
<button id="student-konto-button-zahlungsbestaetigung" label="Zahlungsbestaetigung drucken" oncommand="StudentKontoZahlungsbestaetigung();" disabled="true"/>
|
||||
|
||||
@@ -1549,6 +1549,13 @@ function StudentAuswahl()
|
||||
}
|
||||
|
||||
// Notizen laden
|
||||
anzahl_notizen = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anzahl_notizen" ));
|
||||
|
||||
if(anzahl_notizen == "0")
|
||||
document.getElementById('student-tab-notizen').label = "Notizen";
|
||||
else
|
||||
document.getElementById('student-tab-notizen').label = " Notizen (" + anzahl_notizen + ")";
|
||||
|
||||
var studentnotiz = document.getElementById('student-box-notizen');
|
||||
studentnotiz.LoadNotizTree('','','','',person_id,'','','','');
|
||||
|
||||
@@ -2328,13 +2335,13 @@ function StudentKontoFilter()
|
||||
if(filter.value=='offene')
|
||||
{
|
||||
filter.value='alle';
|
||||
filter.label='offene Anzeigen';
|
||||
filter.label='Offene Anzeigen';
|
||||
document.getElementById('student-konto-label-filter').value='alle Buchungen:';
|
||||
}
|
||||
else
|
||||
{
|
||||
filter.value='offene';
|
||||
filter.label='alle Anzeigen';
|
||||
filter.label='Alle Anzeigen';
|
||||
document.getElementById('student-konto-label-filter').value='offene Buchungen:';
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ require_once('../include/reihungstest.class.php');
|
||||
require_once('../include/studienordnung.class.php');
|
||||
require_once('../include/studienplan.class.php');
|
||||
require_once('../include/kontakt.class.php');
|
||||
require_once('../include/notiz.class.php');
|
||||
|
||||
// *********** Funktionen *************************
|
||||
function convdate($date)
|
||||
@@ -242,6 +243,10 @@ function draw_content($row)
|
||||
$stgl .= trim(($i>0?', ':'').$stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost);
|
||||
$i++;
|
||||
}
|
||||
|
||||
// Anzahl Notizen der Person laden
|
||||
$notiz = new notiz();
|
||||
$anzahl_notizen = $notiz->getAnzahlNotizen(null, null, null, null, null, $row->person_id, null, null, null, null, null);
|
||||
|
||||
if($row->prestudent_id!='')
|
||||
{
|
||||
@@ -300,6 +305,7 @@ function draw_content($row)
|
||||
<STUDENT:studiengang_kz_student><![CDATA['.(is_a($row,'student')?$row->studiengang_kz:'').']]></STUDENT:studiengang_kz_student>
|
||||
<STUDENT:matr_nr><![CDATA['.$row->matr_nr.']]></STUDENT:matr_nr>
|
||||
<STUDENT:studiengang_studiengangsleitung><![CDATA['.$stgl.']]></STUDENT:studiengang_studiengangsleitung>
|
||||
<STUDENT:anzahl_notizen><![CDATA['.$anzahl_notizen.']]></STUDENT:anzahl_notizen>
|
||||
';
|
||||
}
|
||||
}
|
||||
|
||||
+228
-2
@@ -1491,6 +1491,20 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
|
||||
}
|
||||
}
|
||||
|
||||
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
|
||||
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='UPDATE'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "GRANT UPDATE ON public.tbl_msg_status TO web;";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo 'UPDATE Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Kommentare fuer Datenbanktabellen
|
||||
*/
|
||||
@@ -1816,10 +1830,218 @@ if($result = $db->db_query("SELECT obj_description('public.ci_apikey'::regclass)
|
||||
else
|
||||
echo 'Kommentare fuer DB Datenbanktabellen hinzugefügt';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplicationAll' AND app='infocenter'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
|
||||
default_filter, filter, oe_kurzbz)
|
||||
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplicationAll', NULL, '{Alle}', 1, false,
|
||||
'{\"name\": \"Abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
|
||||
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
|
||||
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
|
||||
\"filters\": [{\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
|
||||
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Filter InfoCenterSentApplicationAll hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterSentApplication3days' AND app='infocenter'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
|
||||
default_filter, filter, oe_kurzbz)
|
||||
VALUES ('infocenter', 'PersonActions', 'InfoCenterSentApplication3days', NULL,
|
||||
'{\"3 Tage keine Aktion\"}', 2, false, '{\"name\": \"Abgeschickt - 3 Tage keine Aktion\",
|
||||
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
|
||||
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
|
||||
{\"name\": \"StgAbgeschickt\"}],
|
||||
\"filters\": [{\"name\": \"LastAction\", \"option\": \"days\", \"condition\": \"3\",
|
||||
\"operation\": \"gt\"}, {\"name\": \"AnzahlAbgeschickt\", \"option\": \"\",
|
||||
\"condition\": \"0\", \"operation\": \"gt\"}]}', NULL);";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Filter InfoCenterSentApplication3days hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplicationAll' AND app='infocenter'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
|
||||
default_filter, filter, oe_kurzbz)
|
||||
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplicationAll', NULL, '{Alle}', 1, false,
|
||||
'{\"name\": \"Nicht abgeschickt - Alle\", \"columns\": [{\"name\": \"Vorname\"},
|
||||
{\"name\": \"Nachname\"}, {\"name\": \"LastAction\"}, {\"name\": \"LockUser\"},
|
||||
{\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"}, {\"name\": \"StgAbgeschickt\"}],
|
||||
\"filters\": [{\"name\": \"SendDate\", \"option\": \"\",
|
||||
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Filter InfoCenterNotSentApplicationAll hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzbz='InfoCenterNotSentApplication14Days' AND app='infocenter'"))
|
||||
{
|
||||
if($db->db_num_rows($result)==0)
|
||||
{
|
||||
$qry = "INSERT INTO system.tbl_filters(app, dataset_name, filter_kurzbz, person_id, description, sort,
|
||||
default_filter, filter, oe_kurzbz)
|
||||
VALUES ('infocenter', 'PersonActions', 'InfoCenterNotSentApplication14Days', NULL,
|
||||
'{\"14 Tage keine Aktion\"}', 2, false, '{\"name\": \"Nicht abgeschickt - 14 Tage keine Aktion\",
|
||||
\"columns\": [{\"name\": \"Vorname\"}, {\"name\": \"Nachname\"}, {\"name\": \"LastAction\"},
|
||||
{\"name\": \"LockUser\"}, {\"name\": \"Studiensemester\"}, {\"name\": \"SendDate\"},
|
||||
{\"name\": \"StgAbgeschickt\"}], \"filters\": [{\"name\": \"LastAction\", \"option\": \"days\",
|
||||
\"condition\": \"14\", \"operation\": \"gt\"}, {\"name\": \"SendDate\", \"option\": \"\",
|
||||
\"condition\": \"\", \"operation\": \"nset\"}]}', NULL);
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Filter: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Filter InfoCenterNotSentApplication14Days hinzugefuegt';
|
||||
}
|
||||
}
|
||||
|
||||
/** Budget **/
|
||||
if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1"))
|
||||
{
|
||||
$qry = "CREATE TABLE wawi.tbl_budgetantrag
|
||||
(
|
||||
budgetantrag_id integer NOT NULL,
|
||||
kostenstelle_id integer NOT NULL,
|
||||
geschaeftsjahr_kurzbz varchar(32) NOT NULL,
|
||||
bezeichnung varchar(256),
|
||||
insertamum timestamp DEFAULT now(),
|
||||
insertvon varchar(32),
|
||||
updateamum timestamp,
|
||||
updatevon varchar(32)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetantrag IS 'Budget Requests';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT pk_tbl_budgetantrag PRIMARY KEY (budgetantrag_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetantrag_budgetantrag_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetantrag ALTER COLUMN budgetantrag_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_budgetantrag_id_seq');
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_budgetantrag_id_seq TO vilesci;
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_kostenstelle_id FOREIGN KEY (kostenstelle_id) REFERENCES wawi.tbl_kostenstelle(kostenstelle_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_geschaeftsjahr_kurzbz FOREIGN KEY (geschaeftsjahr_kurzbz) REFERENCES public.tbl_geschaeftsjahr(geschaeftsjahr_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetstatus
|
||||
(
|
||||
budgetstatus_kurzbz varchar(32) NOT NULL,
|
||||
bezeichnung varchar(128)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetstatus IS 'Key Table of Budget Request Statuses';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetstatus ADD CONSTRAINT pk_tbl_budgetstatus PRIMARY KEY (budgetstatus_kurzbz);
|
||||
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('new','Neu');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('sent','Abgeschickt');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('approved','Freigegeben');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('accepted','Akzeptiert');
|
||||
INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('rejected','Abgelehnt');
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetantrag_status
|
||||
(
|
||||
budgetantrag_status_id integer NOT NULL,
|
||||
budgetantrag_id integer NOT NULL,
|
||||
budgetstatus_kurzbz varchar(32) NOT NULL,
|
||||
datum timestamp NOT NULL,
|
||||
uid varchar(32),
|
||||
oe_kurzbz varchar(32),
|
||||
insertamum timestamp DEFAULT now(),
|
||||
insertvon varchar(32)
|
||||
);
|
||||
COMMENT ON TABLE wawi.tbl_budgetantrag_status IS 'Statuses of Budget Requests';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT pk_tbl_budgetantrag_status PRIMARY KEY (budgetantrag_status_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ALTER COLUMN budgetantrag_status_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq');
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_budgetstatus_kurzbz FOREIGN KEY (budgetstatus_kurzbz) REFERENCES wawi.tbl_budgetstatus(budgetstatus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq TO vilesci;
|
||||
|
||||
CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
GRANT SELECT, UPDATE ON fue.tbl_projekt_projekt_id_seq TO vilesci;
|
||||
ALTER TABLE fue.tbl_projekt ADD COLUMN projekt_id integer NOT NULL DEFAULT nextval('fue.tbl_projekt_projekt_id_seq');
|
||||
ALTER TABLE fue.tbl_projekt ADD CONSTRAINT uk_tbl_projekt_projekt_id UNIQUE (projekt_id);
|
||||
|
||||
CREATE TABLE wawi.tbl_budgetposition
|
||||
(
|
||||
budgetposition_id integer NOT NULL,
|
||||
budgetantrag_id integer NOT NULL,
|
||||
budgetposten varchar(512),
|
||||
konto_id integer,
|
||||
betrag numeric(12,4),
|
||||
kommentar text,
|
||||
projekt_id integer,
|
||||
insertamum timestamp,
|
||||
insertvon varchar(32),
|
||||
updateamum timestamp,
|
||||
updatevon varchar(32)
|
||||
);
|
||||
|
||||
COMMENT ON TABLE wawi.tbl_budgetposition IS 'Budget position';
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT pk_tbl_budgetposition PRIMARY KEY (budgetposition_id);
|
||||
|
||||
CREATE SEQUENCE wawi.tbl_budgetposition_budgetposition_id_seq
|
||||
INCREMENT BY 1
|
||||
NO MAXVALUE
|
||||
NO MINVALUE
|
||||
CACHE 1;
|
||||
ALTER TABLE wawi.tbl_budgetposition ALTER COLUMN budgetposition_id SET DEFAULT nextval(' wawi.tbl_budgetposition_budgetposition_id_seq');
|
||||
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_budgetantrag_id FOREIGN KEY (budgetantrag_id) REFERENCES wawi.tbl_budgetantrag(budgetantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_konto_id FOREIGN KEY (konto_id) REFERENCES wawi.tbl_konto(konto_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_projekt_id FOREIGN KEY (projekt_id) REFERENCES fue.tbl_projekt(projekt_id) ON UPDATE CASCADE ON DELETE RESTRICT;
|
||||
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetposition TO vilesci;
|
||||
GRANT SELECT, UPDATE ON wawi.tbl_budgetposition_budgetposition_id_seq TO vilesci;
|
||||
";
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>Budget: '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo '<br>Neue Tabellen fuer Budgetantrag in Schema wawi hinzugefuegt';
|
||||
|
||||
}
|
||||
|
||||
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
|
||||
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
|
||||
|
||||
@@ -1910,7 +2132,7 @@ $tabellen=array(
|
||||
"campus.tbl_zeitwunsch" => array("stunde","mitarbeiter_uid","tag","gewicht","updateamum","updatevon","insertamum","insertvon"),
|
||||
"fue.tbl_aktivitaet" => array("aktivitaet_kurzbz","beschreibung","sort"),
|
||||
"fue.tbl_aufwandstyp" => array("aufwandstyp_kurzbz","bezeichnung"),
|
||||
"fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt"),
|
||||
"fue.tbl_projekt" => array("projekt_kurzbz","nummer","titel","beschreibung","beginn","ende","oe_kurzbz","budget","farbe","aufwandstyp_kurzbz","ressource_id","anzahl_ma","aufwand_pt","projekt_id"),
|
||||
"fue.tbl_projektphase" => array("projektphase_id","projekt_kurzbz","projektphase_fk","bezeichnung","typ","beschreibung","start","ende","budget","insertamum","insertvon","updateamum","updatevon","personentage","farbe","ressource_id"),
|
||||
"fue.tbl_projekttask" => array("projekttask_id","projektphase_id","bezeichnung","beschreibung","aufwand","mantis_id","insertamum","insertvon","updateamum","updatevon","projekttask_fk","erledigt","ende","ressource_id","scrumsprint_id"),
|
||||
"fue.tbl_projekt_dokument" => array("projekt_dokument_id","projektphase_id","projekt_kurzbz","dms_id"),
|
||||
@@ -2088,6 +2310,10 @@ $tabellen=array(
|
||||
"wawi.tbl_betriebsmittelstatus" => array("betriebsmittelstatus_kurzbz","beschreibung"),
|
||||
"wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"),
|
||||
"wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"),
|
||||
"wawi.tbl_budgetantrag" => array("budgetantrag_id","kostenstelle_id","geschaeftsjahr_kurzbz","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
|
||||
"wawi.tbl_budgetantrag_status" => array("budgetantrag_status_id","budgetantrag_id","budgetstatus_kurzbz","datum","uid","oe_kurzbz","insertamum","insertvon"),
|
||||
"wawi.tbl_budgetstatus" => array("budgetstatus_kurzbz","bezeichnung"),
|
||||
"wawi.tbl_budgetposition" => array("budgetposition_id","budgetantrag_id","budgetposten","konto_id","betrag","kommentar","projekt_id","insertamum","insertvon","updateamum","updatevon"),
|
||||
"wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"),
|
||||
"wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"),
|
||||
"wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"),
|
||||
|
||||
@@ -255,13 +255,13 @@ if ((isset($_GET['neueVorlage']) && $_GET['neueVorlage'] == 'true'))
|
||||
<tr>
|
||||
<td>Vorlagenkurzbezeichnung</td>
|
||||
<td>
|
||||
<input type="text" size="64" maxlength="64" name="neueVorlage_vorlage_kurzbz">
|
||||
<input type="text" size="50" maxlength="32" name="neueVorlage_vorlage_kurzbz">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bezeichnung</td>
|
||||
<td>
|
||||
<textarea cols="80" rows="4" name="neueVorlage_bezeichnung"></textarea>
|
||||
<input type="text" size="80" maxlength="64" name="neueVorlage_bezeichnung">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -273,7 +273,7 @@ if ((isset($_GET['neueVorlage']) && $_GET['neueVorlage'] == 'true'))
|
||||
<tr>
|
||||
<td>Mimetype</td>
|
||||
<td>
|
||||
<textarea cols="80" rows="4" name="neueVorlage_mimetype">application/vnd.oasis.opendocument.text</textarea>
|
||||
<input type="text" size="80" maxlength="64" name="neueVorlage_mimetype" value="application/vnd.oasis.opendocument.text">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -333,13 +333,13 @@ elseif (isset($_GET['vorlageBearbeiten']))
|
||||
<tr>
|
||||
<td>Vorlagenkurzbezeichnung</td>
|
||||
<td>
|
||||
<input type="text" size="64" maxlength="64" name="updateVorlage_vorlage_kurzbz" value="'.$db->convert_html_chars($vorlage->vorlage_kurzbz).'" disabled>
|
||||
<input type="text" size="50" maxlength="32" name="updateVorlage_vorlage_kurzbz" value="'.$db->convert_html_chars($vorlage->vorlage_kurzbz).'" disabled>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bezeichnung</td>
|
||||
<td>
|
||||
<textarea cols="80" rows="4" name="updateVorlage_bezeichnung">'.$db->convert_html_chars($vorlage->bezeichnung).'</textarea>
|
||||
<input type="text" size="80" maxlength="64" name="updateVorlage_bezeichnung" value="'.$db->convert_html_chars($vorlage->bezeichnung).'">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -351,7 +351,7 @@ elseif (isset($_GET['vorlageBearbeiten']))
|
||||
<tr>
|
||||
<td>Mimetype</td>
|
||||
<td>
|
||||
<textarea cols="80" rows="4" name="updateVorlage_mimetype">'.$db->convert_html_chars($vorlage->mimetype).'</textarea>
|
||||
<input type="text" size="80" maxlength="64" name="updateVorlage_mimetype" value="'.$db->convert_html_chars($vorlage->mimetype).'">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user