Merge branch 'master' into feature-39592/vereinfachte_Sicht_fuer_Assistenz

This commit is contained in:
Harald Bamberger
2024-07-11 14:44:44 +02:00
33 changed files with 2410 additions and 64 deletions
+3 -1
View File
@@ -412,6 +412,8 @@ class AntragJob extends JOB_Controller
$this->StudierendenantragModel->addSelect('studiensemester_kurzbz');
$this->StudierendenantragModel->addSelect('s.insertamum');
$this->StudierendenantragModel->addSelect('s.insertvon');
$this->StudierendenantragModel->addJoin('public.tbl_student pts', 'prestudent_id');
$this->StudierendenantragModel->addSelect('pts.student_uid');
$this->StudierendenantragModel->db->where_in(
'public.get_rolle_prestudent(prestudent_id, studiensemester_kurzbz)',
@@ -484,7 +486,7 @@ class AntragJob extends JOB_Controller
$person = current(getData($result));
$email = $studiengang->email;
$dataMail = array(
'prestudent' => $antrag->prestudent_id,
'prestudent' => 'UID: ' . $antrag->student_uid . ', PreStudentId: ' . $antrag->prestudent_id,
'studiensemester' => $antrag->studiensemester_kurzbz,
'name' => trim($person->vorname . ' '. $person->nachname),
);
@@ -4,14 +4,15 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class MigrateHourlyRate extends CLI_Controller
{
CONST DEFAULT_OE = 'gst';
CONST DEFAULT_DATE = '1970-01-01';
CONST STUNDENSTAZTYP_LEHRE = 'lehre';
CONST STUNDENSTAZTYP_KALKULATORISCH = 'kalkulatorisch';
private $OE_DEFAULT;
private $_ci;
protected $configerrors;
public function __construct()
{
parent::__construct();
@@ -21,10 +22,37 @@ class MigrateHourlyRate extends CLI_Controller
$this->load->model('codex/Bisverwendung_model', 'BisVerwendungModel');
$this->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
$this->load->model('ressource/Stundensatz_model', 'StundensatzModel');
$this->load->config('migratecontract');
$this->OE_DEFAULT = $this->config->item('migratecontract_oe_default');
$this->configerrors = array();
}
public function checkConfig()
{
echo "OE_DEFAULT: " . $this->OE_DEFAULT . "\n";
$this->checkOE_DEFAULT();
if( count($this->configerrors) > 0 )
{
foreach($this->configerrors AS $configerror)
{
echo $configerror . "\n";
}
die("Fehler in der Konfiguration. Abbruch!\n");
}
else
{
echo "Konfiguration OK.\n";
}
}
public function index($user = null)
{
$this->checkConfig();
echo "Lehre Stundensaetze werden migriert.\n";
$mitarbeiterResult = $this->_getMitarbeiterStunden($user);
if (isError($mitarbeiterResult)) return $mitarbeiterResult;
@@ -61,6 +89,18 @@ class MigrateHourlyRate extends CLI_Controller
}
}
protected function checkOE_DEFAULT()
{
$db = new DB_Model();
$oesql = 'SELECT * FROM public.tbl_organisationseinheit WHERE oe_kurzbz = ?';
$oeres = $db->execReadOnlyQuery($oesql, array($this->OE_DEFAULT));
if( !hasData($oeres) )
{
$this->configerrors[] = 'Default Organisationseinheit: "'
. $this->OE_DEFAULT . '" nicht gefunden.';
}
}
protected function checkIfSAPSyncTableExists()
{
$dbModel = new DB_Model();
@@ -167,7 +207,7 @@ class MigrateHourlyRate extends CLI_Controller
$unternehmenResult = $this->_findUnternehmen($mitarbeiter->uid, "'kstzuordnung', 'oezuordnung'");
}
$unternehmen = self::DEFAULT_OE;
$unternehmen = $this->OE_DEFAULT;
if (hasData($unternehmenResult))
$unternehmen = getData($unternehmenResult)[0]->oe_kurzbz;
@@ -29,6 +29,9 @@ class Dienstverhaeltnis extends AbstractBestandteil {
protected $updateamum;
protected $updatevon;
protected $dvendegrund_kurzbz;
protected $dvendegrund_anmerkung;
public function __construct()
{
parent::__construct();
@@ -49,6 +52,8 @@ class Dienstverhaeltnis extends AbstractBestandteil {
isset($data->insertvon) && $this->setInsertvon($data->insertvon);
isset($data->updateamum) && $this->setUpdateamum($data->updateamum);
isset($data->updatevon) && $this->setUpdatevon($data->updatevon);
isset($data->dvendegrund_kurzbz) && $this->setDvendegrund_kurzbz($data->dvendegrund_kurzbz);
isset($data->dvendegrund_anmerkung) && $this->setDvendegrund_anmerkung($data->dvendegrund_anmerkung);
$this->fromdb = false;
}
@@ -64,7 +69,9 @@ class Dienstverhaeltnis extends AbstractBestandteil {
'insertamum' => $this->getInsertamum(),
'insertvon' => $this->getInsertvon(),
'updateamum' => $this->getUpdateamum(),
'updatevon' => $this->getUpdatevon()
'updatevon' => $this->getUpdatevon(),
'dvendegrund_kurzbz' => $this->getDvendegrund_kurzbz(),
'dvendegrund_anmerkung' => $this->getDvendegrund_anmerkung()
);
$tmp = array_filter($tmp, function($k) {
@@ -139,6 +146,16 @@ EOTXT;
return $this->updatevon;
}
public function getDvendegrund_kurzbz()
{
return $this->dvendegrund_kurzbz;
}
public function getDvendegrund_anmerkung()
{
return $this->dvendegrund_anmerkung;
}
public function setDienstverhaeltnis_id($dienstverhaeltnis_id)
{
$this->markDirty('dienstverhaeltnis_id', $this->dienstverhaeltnis_id, $dienstverhaeltnis_id);
@@ -214,6 +231,20 @@ EOTXT;
return $this;
}
public function setDvendegrund_kurzbz($dvendegrund_kurzbz)
{
$this->markDirty('dvendegrund_kurzbz', $this->dvendegrund_kurzbz, $dvendegrund_kurzbz);
$this->dvendegrund_kurzbz = $dvendegrund_kurzbz;
return $this;
}
public function setDvendegrund_anmerkung($dvendegrund_anmerkung)
{
$this->markDirty('dvendegrund_anmerkung', $this->dvendegrund_anmerkung, $dvendegrund_anmerkung);
$this->dvendegrund_anmerkung = $dvendegrund_anmerkung;
return $this;
}
public function validate() {
//do Validation here
$ci = get_instance();
@@ -435,7 +435,7 @@ class VertragsbestandteilLib
return $result;
}
public function endDienstverhaeltnis(Dienstverhaeltnis $dv, $enddate)
public function endDienstverhaeltnis(Dienstverhaeltnis $dv, $enddate, $dvendegrund_kurzbz=null, $dvendegrund_anmerkung=null)
{
if( $dv->getBis() !== null && $dv->getBis() < $enddate )
{
@@ -460,6 +460,14 @@ class VertragsbestandteilLib
$this->endVertragsbestandteil($vb, $enddate);
}
if( $dvendegrund_kurzbz !== null )
{
$dv->setDvendegrund_kurzbz($dvendegrund_kurzbz);
}
if( $dvendegrund_anmerkung !== null )
{
$dv->setDvendegrund_anmerkung($dvendegrund_anmerkung);
}
$dv->setBis($enddate);
$this->updateDienstverhaeltnis($dv);
@@ -188,4 +188,20 @@ class Organisationseinheit_model extends DB_Model
}
return $this->loadWhere($condition);
}
/**
* Get OEs by eventQuery string. Use with autocomplete event queries.
* @param $eventQuery String
* @return array
*/
public function getAutocompleteSuggestions($eventQuery)
{
$this->addSelect('oe_kurzbz');
$this->addSelect('organisationseinheittyp_kurzbz, oe_kurzbz, bezeichnung, aktiv, lehre');
$this->addOrder('organisationseinheittyp_kurzbz, bezeichnung');
return $this->loadWhere("
oe_kurzbz ILIKE '%". $this->escapeLike($eventQuery). "%'
");
}
}
@@ -31,9 +31,13 @@ class Dienstverhaeltnis_model extends DB_Model
org.bezeichnung oe_bezeichnung,
dv.von,
dv.bis,
dv.dvendegrund_kurzbz,
dv.dvendegrund_anmerkung,
dv.vertragsart_kurzbz,
dv.updateamum,
dv.updatevon
dv.updatevon,
dv.dvendegrund_kurzbz,
dv.dvendegrund_anmerkung
FROM tbl_mitarbeiter
JOIN tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text
JOIN tbl_person USING (person_id)
@@ -150,8 +150,6 @@ $this->load->view(
break;
case Studierendenantrag_model::TYP_ABMELDUNG_STGL:
$allowed = [
Studierendenantragstatus_model::STATUS_APPROVED,
Studierendenantragstatus_model::STATUS_OBJECTED,
Studierendenantragstatus_model::STATUS_OBJECTION_DENIED,
Studierendenantragstatus_model::STATUS_DEREGISTERED
];
@@ -127,6 +127,11 @@
generateJSsInclude('vendor/npm-asset/primevue/autocomplete/autocomplete.min.js');
generateJSsInclude('vendor/npm-asset/primevue/overlaypanel/overlaypanel.min.js');
generateJSsInclude('vendor/npm-asset/primevue/datatable/datatable.min.js');
// TODO check ob notwendig
generateJSsInclude('vendor/npm-asset/primevue/toast/toast.min.js');
generateJSsInclude('vendor/npm-asset/primevue/toastservice/toastservice.min.js');
generateJSsInclude('vendor/npm-asset/primevue/confirmdialog/confirmdialog.min.js');
generateJSsInclude('vendor/npm-asset/primevue/confirmationservice/confirmationservice.min.js');
}
// --------------------------------------------------------------------------------------------------------
+1 -1
View File
@@ -270,7 +270,7 @@ if (isset($_POST['titel']))
foreach($addon_obj->result as $addon)
{
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php"></script>';
}
// Wenn Seite fertig geladen ist Addons aufrufen
@@ -122,7 +122,7 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-noten-tree-verband" label="Verband" flex="2" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#verband" />
sort="rdf:http://www.technikum-wien.at/zeugnisnote/rdf#verband" />
<splitter class="tree-splitter"/>
<treecol id="lehrveranstaltung-noten-tree-studiengang_kz_lv" label="LehrveranstaltungStudiengang_kz" flex="1" hidden="true" persist="hidden, width, ordinal"
class="sortDirectionIndicator"
@@ -299,7 +299,7 @@ if(defined('FAS_GESAMTNOTE_PRUEFUNGSHONORAR') && FAS_GESAMTNOTE_PRUEFUNGSHONORAR
<hbox>
<label value="MitarbeiterIn" control="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"/>
<menulist id="lehrveranstaltung-noten-pruefung-menulist-mitarbeiter"
datasources="'.APP_ROOT.'rdf/mitarbeiter.rdf.php" flex="1"
datasources="'.APP_ROOT.'rdf/mitarbeiter.rdf.php?aktiv=true" flex="1"
ref="http://www.technikum-wien.at/mitarbeiter/_alle"
minwidth="250"
>
@@ -137,7 +137,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer1_nachname" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer2_nachname" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#pruefer3_nachname" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlussbeurteilung_kurzbz" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#abschlussbeurteilung_bezeichnung" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#datum" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#uhrzeit" />
<treecell label="rdf:http://www.technikum-wien.at/abschlusspruefung/rdf#freigabedatum" />
+9 -1
View File
@@ -317,7 +317,7 @@ class mitarbeiter extends benutzer
* gibt array mit allen Mitarbeitern zurueck
* @return array mit Mitarbeitern
*/
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null)
public function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null, $aktiv=null)
{
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.uid, titelpre, titelpost, vorname, vornamen, wahlname, nachname, gebdatum, gebort, gebzeit, anmerkung, aktiv,
homepage, campus.vw_mitarbeiter.updateamum, campus.vw_mitarbeiter.updatevon, personalnummer, kurzbz, lektor, fixangestellt, standort_id, telefonklappe FROM campus.vw_mitarbeiter
@@ -346,6 +346,14 @@ class mitarbeiter extends benutzer
$sql_query.=" AND oe_kurzbz=".$this->db_add_param($stg->oe_kurzbz);
}
if(!is_null($aktiv))
{
$sql_query.=' AND';
if (!$aktiv)
$sql_query.=' NOT';
$sql_query.=' aktiv';
}
$sql_query.=' ORDER BY nachname, vornamen, kurzbz;';
if(!$this->db_query($sql_query))
+1 -1
View File
@@ -382,7 +382,7 @@ class projekt extends basis_db
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
WHERE (beginn<=now() or beginn is null)
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
AND (ende + interval '2 month 1 day' >=now() OR ende is null)
AND
(
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
+3 -3
View File
@@ -40,7 +40,7 @@
}
.tabulator-cell .btn {
padding: 0 .5rem;
max-height: 22px;
min-width: 30px;
padding: 0 .7rem;
min-height: 25px;
min-width: 25px;
}
+15 -3
View File
@@ -160,12 +160,12 @@ export default {
},
modelValueCmp: {
get() {
if (this.$attrs.modelValue === undefined)
if (!this.$attrs.hasOwnProperty('modelValue'))
return this.modelValueDummy;
return this.$attrs.modelValue;
},
set(v) {
if (this.$attrs.modelValue === undefined)
if (!this.$attrs.hasOwnProperty('modelValue'))
this.modelValueDummy = v;
this.$emit('update:modelValue', v);
}
@@ -236,12 +236,13 @@ export default {
},
template: `
<component :is="!hasContainer ? 'FhcFragment' : 'div'" class="position-relative" :class="autoContainerClass">
<label v-if="$attrs.label && lcType != 'radio' && lcType != 'checkbox'" :for="idCmp">{{$attrs.label}}</label>
<label v-if="$attrs.label && lcType != 'radio' && lcType != 'checkbox'" :class="!noAutoClass && 'form-label'" :for="idCmp">{{$attrs.label}}</label>
<input v-if="tag == 'input'" :type="lcType" ref="input" v-model="modelValueCmp" v-bind="$attrs" :id="idCmp" :name="name" :class="validationClass" :modelValue="undefined" @input="clearValidationForThisName(); $emit('input', $event)">
<textarea v-else-if="tag == 'textarea'" ref="input" v-model="modelValueCmp" v-bind="$attrs" :id="idCmp" :name="name" :class="validationClass" :modelValue="undefined" @input="clearValidationForThisName(); $emit('input', $event)"></textarea>
<select v-else-if="tag == 'select'" ref="input" v-model="modelValueCmp" v-bind="$attrs" :id="idCmp" :name="name" :class="validationClass" :modelValue="undefined" @input="clearValidationForThisName(); $emit('input', $event)">
<slot></slot>
</select>
<component
v-else-if="tag == 'VueDatePicker'"
ref="input"
@@ -272,6 +273,17 @@ export default {
@update:model-value="clearValidationForThisName"
>
<slot></slot>
<template #chip="data"><slot name="chip" v-bind="data"></slot></template>
<template #header="data"><slot name="header" v-bind="data"></slot></template>
<template #footer="data"><slot name="footer" v-bind="data"></slot></template>
<template #option="data"><slot name="option" v-bind="data"></slot></template>
<template #optiongroup="data"><slot name="optiongroup" v-bind="data"></slot></template>
<template #content="data"><slot name="content" v-bind="data"></slot></template>
<template #loader="data"><slot name="loader" v-bind="data"></slot></template>
<template #empty="data"><slot name="empty" v-bind="data"></slot></template>
<template #dropdownicon="data"><slot name="dropdownicon" v-bind="data"></slot></template>
<template #removetokenicon="data"><slot name="removetokenicon" v-bind="data"></slot></template>
<template #loadingicon="data"><slot name="loadingicon" v-bind="data"></slot></template>
</component>
<component
v-else-if="tag == 'UploadDms'"
@@ -265,7 +265,7 @@ export default {
allowed_status_for_download = ['Genehmigt'];
break;
case 'AbmeldungStgl':
allowed_status_for_download = ['Genehmigt', 'Beeinsprucht', 'EinspruchAbgelehnt', 'Abgemeldet'];
allowed_status_for_download = ['EinspruchAbgelehnt', 'Abgemeldet'];
break;
case 'Unterbrechung':
allowed_status_for_download = ['Genehmigt', 'EmailVersandt'];
+1 -1
View File
@@ -75,7 +75,7 @@ export default {
tabs[key] = {
component: Vue.markRaw(Vue.defineAsyncComponent(() => import(item.component))),
title: item.title || key,
title: Vue.computed(() => item.title || key),
config: item.config,
key
}
+1 -1
View File
@@ -17,7 +17,7 @@
import {CoreRESTClient} from '../../RESTClient.js';
//
//
const CORE_FILTER_CMPT_TIMEOUT = 7000;
/**
+76 -4
View File
@@ -62,7 +62,11 @@ export const CoreFilterCmpt = {
newBtnShow: Boolean,
newBtnClass: [String, Array, Object],
newBtnDisabled: Boolean,
newBtnLabel: String
newBtnLabel: String,
uniqueId: String,
// TODO soll im master kommen?
idField: String,
parentIdField: String
},
data: function() {
return {
@@ -209,6 +213,13 @@ export const CoreFilterCmpt = {
if (tabulatorOptions.columns && tabulatorOptions.columns.filter(el => el.formatter == 'rowSelection').length)
this.tabulatorHasSelector = true;
// TODO check ob im core bleiben soll
if (this.idField) {
// enable nested tabulator if parent Id given
if (this.parentIdField) tabulatorOptions.dataTree = true;
// set tabulator index
tabulatorOptions.index = this.idField;
}
// Start the tabulator with the build options
this.tabulator = new Tabulator(
@@ -226,6 +237,33 @@ export const CoreFilterCmpt = {
this.tabulator.on("rowSelectionChanged", data => {
this.selectedData = data;
});
// TODO check ob im core so bleiben soll
// if nested tabulator, restructure data
if (this.parentIdField && this.idField) {
this.tabulator.on("dataLoading", data => {
let toDelete = [];
// loop through all data
for (let childIdx = 0; childIdx < data.length; childIdx++)
{
let child = data[childIdx];
// if it has parent id, it is a child
if (child[this.parentIdField])
{
// append the child on the right place. If parent found, mark original sw child on 0 level for deleting
if (this.appendChild(data, child)) toDelete.push(childIdx);
}
}
// delete the marked children from 0 level
for (let counter = 0; counter < toDelete.length; counter++)
{
// decrease index by counter as index of data array changes after every deletion
data.splice(toDelete[counter] - counter, 1);
}
});
}
if (this.tableOnly) {
this.tabulator.on('tableBuilt', () => {
const cols = this.tabulator.getColumns();
@@ -406,6 +444,9 @@ export const CoreFilterCmpt = {
apiFunctionParameters.filterUniqueId = FHC_JS_DATA_STORAGE_OBJECT.called_path + "/" + FHC_JS_DATA_STORAGE_OBJECT.called_method;
apiFunctionParameters.filterType = this.filterType;
if (this.uniqueId)
apiFunctionParameters.filterUniqueId += '_' + this.uniqueId;
// Assign parameters to the FetchCmpt binded properties
this.fetchCmptApiFunctionParams = apiFunctionParameters;
// Assign data fetch callback to the FetchCmpt binded properties
@@ -484,6 +525,36 @@ export const CoreFilterCmpt = {
},
this.getFilter
);
},
// TODO check ob im core so bleiben soll
// append child to it's parent
appendChild(data, child) {
// get parent id
let parentId = child[this.parentIdField];
// loop thorugh all data
for (let parentIdx = 0; parentIdx < data.length; parentIdx++)
{
let parent = data[parentIdx];
// if it's the parent
if (parent[this.idField] == parentId)
{
// create children array if not done yet
if (!parent._children) parent._children = [];
// if child is not included in children array, append the child
if (!parent._children.includes(child)) parent._children.push(child);
// parent found
return true;
}
// search children for parents
else if (parent._children) this.appendChild(parent._children, child);
}
// parent not found
return false;
}
},
beforeCreate() {
@@ -512,7 +583,7 @@ export const CoreFilterCmpt = {
<div class="row" v-if="title != null && title != ''">
<div class="col-lg-12">
<h3 class="page-header">
<h3 class="page-header mt-1 mb-4">
{{ title }}
</h3>
</div>
@@ -521,7 +592,7 @@ export const CoreFilterCmpt = {
<div :id="'filterCollapsables' + idExtra">
<div class="d-flex flex-row justify-content-between flex-wrap">
<div v-if="newBtnShow || reload || $slots.actions" class="d-flex gap-2 align-items-baseline flex-wrap">
<div v-if="newBtnShow || reload || $slots.search || $slots.actions" class="d-flex gap-2 align-items-baseline flex-wrap">
<button v-if="newBtnShow" class="btn btn-primary" :class="newBtnClass" :title="newBtnLabel ? undefined : 'New'" :aria-label="newBtnLabel ? undefined : 'New'" @click="$emit('click:new', $event)" :disabled="newBtnDisabled">
<span class="fa-solid fa-plus" aria-hidden="true"></span>
{{ newBtnLabel }}
@@ -529,8 +600,9 @@ export const CoreFilterCmpt = {
<button v-if="reload" class="btn btn-outline-secondary" aria-label="Reload" @click="reloadTable">
<span class="fa-solid fa-rotate-right" aria-hidden="true"></span>
</button>
<span v-if="$slots.actions && tabulatorHasSelector">Mit {{selectedData.length}} ausgewählten: </span>
<span v-if="$slots.actions && tabulatorHasSelector">Mit {{selectedData.length}} ausgewählten:</span>
<slot name="actions" v-bind="tabulatorHasSelector ? selectedData : []"></slot>
<slot name="search"></slot>
</div>
<div class="d-flex gap-1 align-items-baseline flex-grow-1 justify-content-end">
<span v-if="!tableOnly">[ {{ filterName }} ]</span>
+13 -11
View File
@@ -36,7 +36,7 @@ else
$query = "
SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, a.grund
SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, pss.datum, a.grund
FROM
campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
@@ -56,16 +56,18 @@ if (!$db->db_query($query) || !$db->db_num_rows())
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<antraege>
<?php while($row = $db->db_fetch_object()) { ?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
</antrag>
<?php $abmeldedatum = new DateTime($row->datum); ?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<abmeldedatum><![CDATA[<?= $abmeldedatum->format('d.m.Y'); ?>]]></abmeldedatum>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
</antrag>
<?php } ?>
</antraege>
+12 -10
View File
@@ -36,7 +36,7 @@ else
$query = "
SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, a.grund
SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, pss.bestaetigtam, a.grund
FROM
campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
@@ -56,15 +56,17 @@ if (!$db->db_query($query) || !$db->db_num_rows())
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<antraege>
<?php while($row = $db->db_fetch_object()) { ?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
<?php $abmeldedatum = new DateTime($row->bestaetigtam); ?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<abmeldedatum><![CDATA[<?= $abmeldedatum->format('d.m.Y'); ?>]]></abmeldedatum>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
</antrag>
<?php } ?>
</antraege>
+65 -10
View File
@@ -5,6 +5,42 @@ require_once('../config/vilesci.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/basis_db.class.php');
// Get CodeIgniter Config
// Get Environment Var
if (defined('CI_ENVIRONMENT')) $_SERVER['CI_ENV'] = CI_ENVIRONMENT;
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
// Get BASEPATH Var
$system_path = dirname(__FILE__).'/../vendor/codeigniter/framework/system';
if (($_temp = realpath($system_path)) !== FALSE)
$system_path = $_temp.'/';
else
$system_path = rtrim($system_path, '/').'/';
define('BASEPATH', str_replace('\\', '/', $system_path));
// Get APPPATH Var
$application_folder = dirname(__FILE__).'/../application';
if (is_dir($application_folder)) {
if (($_temp = realpath($application_folder)) !== FALSE)
$application_folder = $_temp;
define('APPPATH', $application_folder.DIRECTORY_SEPARATOR);
} else {
if (!is_dir(BASEPATH.$application_folder.DIRECTORY_SEPARATOR)) {
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
echo 'Your application folder path does not appear to be set correctly. Please open the following file and correct this: '.SELF;
exit(3); // EXIT_CONFIG
}
define('APPPATH', BASEPATH.$application_folder.DIRECTORY_SEPARATOR);
}
// Load studierendenantrag Config
foreach (['studierendenantrag', ENVIRONMENT.DIRECTORY_SEPARATOR.'studierendenantrag'] as $location) {
$file_path = APPPATH . 'config/' . $location . '.php';
if (file_exists($file_path))
include($file_path);
}
// Get CodeIgniter Config end
$db = new basis_db();
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
@@ -34,9 +70,24 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
else
die('<error>Format not supported</error>');
$blacklist = '';
if ($config['note_blacklist_wiederholung']) {
$blacklist = " AND n.note NOT IN (" . $db->db_implode4SQL($config['note_blacklist_wiederholung']) . ")";
}
$query = "
SELECT stg.bezeichnung, bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, (SELECT pt.text FROM system.tbl_phrase p JOIN system.tbl_phrasentext pt USING(phrase_id) WHERE p.category=" . $db->db_add_param('studierendenantrag', FHC_STRING) . " AND p.phrase=" . $db->db_add_param('grund_Wiederholung_deadline', FHC_STRING) . " AND pt.sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . " LIMIT 1) AS grund
SELECT stg.bezeichnung, tbl_orgform.bezeichnung_mehrsprachig[(SELECT index FROM public.tbl_sprache WHERE sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . ")], studierendenantrag_id, matrikelnr, studienjahr_kurzbz, a.studiensemester_kurzbz, vorname, nachname, studiengang_kz, pss.ausbildungssemester AS semester, (
SELECT
insertamum::date
FROM
campus.tbl_studierendenantrag_status
WHERE
studierendenantrag_id = a.studierendenantrag_id AND studierendenantrag_statustyp_kurzbz = 'Abgemeldet'
ORDER BY
insertamum DESC
LIMIT 1
) AS abmeldedatum, (SELECT pt.text FROM system.tbl_phrase p JOIN system.tbl_phrasentext pt USING(phrase_id) WHERE p.category=" . $db->db_add_param('studierendenantrag', FHC_STRING) . " AND p.phrase=" . $db->db_add_param('grund_Wiederholung_deadline', FHC_STRING) . " AND pt.sprache=" . $db->db_add_param(getSprache(), FHC_STRING) . " LIMIT 1) AS grund
FROM
campus.tbl_studierendenantrag a
JOIN public.tbl_student USING (prestudent_id)
@@ -56,15 +107,19 @@ if (!$db->db_query($query) || !$db->db_num_rows())
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<antraege>
<?php while($row = $db->db_fetch_object()) { ?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
<?php
$abmeldedatum = new DateTime($row->abmeldedatum);
?>
<antrag>
<name><![CDATA[<?= trim($row->vorname . ' ' . $row->nachname); ?>]]></name>
<studiengang><![CDATA[<?= $row->bezeichnung; ?>]]></studiengang>
<organisationsform><![CDATA[<?= $row->bezeichnung_mehrsprachig; ?>]]></organisationsform>
<personenkz><![CDATA[<?= $row->matrikelnr; ?>]]></personenkz>
<studienjahr><![CDATA[<?= $row->studienjahr_kurzbz; ?>]]></studienjahr>
<studiensemester><![CDATA[<?= $row->studiensemester_kurzbz; ?>]]></studiensemester>
<semester><![CDATA[<?= $row->semester; ?>]]></semester>
<abmeldedatum><![CDATA[<?= $abmeldedatum->format('d.m.Y'); ?>]]></abmeldedatum>
<grund><![CDATA[<?= $row->grund; ?>]]></grund>
</antrag>
<?php } ?>
</antraege>
+2 -1
View File
@@ -343,7 +343,7 @@ if ($xmlformat=='rdf')
$rdf_url='http://www.technikum-wien.at/abschlusspruefung';
function draw_content($row)
{
global $rdf_url, $datum_obj;
global $rdf_url, $datum_obj, $abschlussbeurteilung_arr;
$vorsitz = '';
$pruefer1= '';
$pruefer2= '';
@@ -380,6 +380,7 @@ if ($xmlformat=='rdf')
<ABSCHLUSSPRUEFUNG:pruefer3><![CDATA['.$row->pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3>
<ABSCHLUSSPRUEFUNG:pruefer3_nachname><![CDATA['.$pruefer3.']]></ABSCHLUSSPRUEFUNG:pruefer3_nachname>
<ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz><![CDATA['.$row->abschlussbeurteilung_kurzbz.']]></ABSCHLUSSPRUEFUNG:abschlussbeurteilung_kurzbz>
<ABSCHLUSSPRUEFUNG:abschlussbeurteilung_bezeichnung><![CDATA['.($row->abschlussbeurteilung_kurzbz!=''?$abschlussbeurteilung_arr[$row->abschlussbeurteilung_kurzbz]:'').']]></ABSCHLUSSPRUEFUNG:abschlussbeurteilung_bezeichnung>
<ABSCHLUSSPRUEFUNG:notekommpruef><![CDATA['.$row->note.']]></ABSCHLUSSPRUEFUNG:notekommpruef>
<ABSCHLUSSPRUEFUNG:akadgrad_id><![CDATA['.$row->akadgrad_id.']]></ABSCHLUSSPRUEFUNG:akadgrad_id>
<ABSCHLUSSPRUEFUNG:datum><![CDATA['.$datum_obj->convertISODate($row->datum).']]></ABSCHLUSSPRUEFUNG:datum>
+6 -1
View File
@@ -55,6 +55,11 @@ if (isset($_GET['stg_kz']))
else
$stg_kz=null;
if (isset($_GET['aktiv']))
$aktiv=$_GET['aktiv'];
else
$aktiv=null;
if (isset($_GET['fachbereich_id']))
$fachbereich_id=$_GET['fachbereich_id'];
else
@@ -126,7 +131,7 @@ function draw_row($mitarbeiter)
if($lehrveranstaltung_id==null && $filter==null && $mitarbeiter_uid==null)
{
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz);
$ma=$mitarbeiter->getMitarbeiter($lektor,$fixangestellt,$stg_kz, $aktiv);
$stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false);
+7 -1
View File
@@ -48,12 +48,14 @@ require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruend
require_once('dbupdate_3.4/29529_infocenter_anpassungen.php');
require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php');
require_once('dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php');
require_once('dbupdate_3.4/37107_fristenmanagement.php');
require_once('dbupdate_3.4/33003_bis_meldung_personal.php');
require_once('dbupdate_3.4/36275_zeitaufzeichnung_karenz.php');
require_once('dbupdate_3.4/21620_neues_feld_zum_erfassen_des_ESI.php');
require_once('dbupdate_3.4/36530_bis_internationsalisierung_codextabelle_neuerungen.php');
require_once('dbupdate_3.4/34543_ux_template.php');
require_once('dbupdate_3.4/17513_Entwicklungsteam.php');
require_once('dbupdate_3.4/28575_softwarebereitstellung.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -171,7 +173,8 @@ $tabellen=array(
"hr.tbl_sachaufwandtyp" => array("sachaufwandtyp_kurzbz","bezeichnung","sort", "aktiv"),
"hr.tbl_stundensatz" => array("stundensatz_id","uid","stundensatztyp","stundensatz","oe_kurzbz","gueltig_von","gueltig_bis","insertamum","insertvon","updateamum","updatevon"),
"hr.tbl_stundensatztyp" => array("stundensatztyp","bezeichnung","aktiv","insertamum","insertvon","updateamum","updatevon"),
"hr.tbl_dienstverhaeltnis" => array("dienstverhaeltnis_id","mitarbeiter_uid","vertragsart_kurzbz","oe_kurzbz","von","bis","insertamum","insertvon","updateamum","updatevon"),
"hr.tbl_dienstverhaeltnis" => array("dienstverhaeltnis_id","mitarbeiter_uid","vertragsart_kurzbz","oe_kurzbz","von","bis","insertamum","insertvon","updateamum","updatevon","dvendegrund_kurzbz","dvendegrund_anmerkung"),
"hr.tbl_dvendegrund" => array("dvendegrund_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig", "aktiv", "sort"),
"hr.tbl_vertragsart" => array("vertragsart_kurzbz","bezeichnung","anmerkung","dienstverhaeltnis","vertragsart_kurzbz_parent","aktiv","sort"),
"hr.tbl_vertragsbestandteil" => array("vertragsbestandteil_id","dienstverhaeltnis_id","vertragsbestandteiltyp_kurzbz","von", "bis","insertamum", "insertvon","updateamum","updatevon"),
"hr.tbl_vertragsbestandteiltyp" => array("vertragsbestandteiltyp_kurzbz","bezeichnung","ueberlappend"),
@@ -188,6 +191,9 @@ $tabellen=array(
"hr.tbl_gehaltsbestandteil" => array("gehaltsbestandteil_id","dienstverhaeltnis_id","vertragsbestandteil_id","gehaltstyp_kurzbz","von","bis","anmerkung","grundbetrag","betrag_valorisiert","valorisierungssperre","insertamum", "insertvon","updateamum","updatevon","valorisierung","auszahlungen"),
"hr.tbl_gehaltshistorie" => array("gehaltshistorie_id", "datum","betrag","gehaltsbestandteil_id","mitarbeiter_uid"),
"hr.tbl_gehaltstyp" => array("gehaltstyp_kurzbz","bezeichnung","valorisierung","sort","aktiv"),
"hr.tbl_frist" => array("frist_id","mitarbeiter_uid","ereignis_kurzbz","bezeichnung","datum","status_kurzbz","parameter","insertvon","insertamum","updatevon","updateamum"),
"hr.tbl_frist_ereignis" => array("ereignis_kurzbz","bezeichnung","manuell"),
"hr.tbl_frist_status" => array("status_kurzbz", "bezeichnung"),
"lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
+78 -2
View File
@@ -437,7 +437,83 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'HR Schema und Vertagstabellen wurden neu erstellt<br />';
echo 'HR Schema und Vertagstabellen wurden neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_dvendegrund' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE hr.tbl_dvendegrund (
dvendegrund_kurzbz character varying(32) NOT NULL ,
bezeichnung character varying(255) NOT NULL,
bezeichnung_mehrsprachig character varying(255)[] NOT NULL,
aktiv boolean DEFAULT true NOT NULL,
sort integer DEFAULT 1 NOT NULL,
PRIMARY KEY (dvendegrund_kurzbz),
CONSTRAINT tbl_dvendegrund_bezeichnung_key UNIQUE (bezeichnung)
);
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_dvendegrund TO vilesci;
INSERT INTO
hr.tbl_dvendegrund (dvendegrund_kurzbz, bezeichnung, bezeichnung_mehrsprachig)
VALUES
('kuendigung_arbeitnehmer', 'Kündigung durch Arbeitnehmer', ARRAY['Kündigung durch Arbeitnehmer', 'Cancellation by Employee']),
('kuendigung_arbeitgeber', 'Kündigung durch Arbeitgeber', ARRAY['Kündigung durch Arbeitgeber', 'Cancellation by Employer']),
('entlassung', 'Entlassung', ARRAY['Entlassung', 'Dismissal']),
('sonstige', 'Sonstige', ARRAY['Sonstige', 'Miscellaneous']),
('einvernehmlich', 'Einvernehmliche Auflösung', ARRAY['Einvernehmliche Auflösung', 'Rescission']),
('ablaufzeit', 'Ablauf durch Zeit', ARRAY['Ablauf durch Zeit', 'Expired by lapse of time']);
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Tabelle tbl_dvendegrund wurde im HR Schema neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='dvendegrund_kurzbz' AND table_name='tbl_dienstverhaeltnis' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
ALTER TABLE
hr.tbl_dienstverhaeltnis
ADD COLUMN
dvendegrund_kurzbz character varying(255)
CONSTRAINT
tbl_dvendegrund_fk
REFERENCES
hr.tbl_dvendegrund(dvendegrund_kurzbz)
ON UPDATE
cascade
ON DELETE
restrict
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Spalte dvendegrund_kurzbz wurde in hr.tbl_dienstverhaeltnis neu erstellt<br>';
}
}
if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='dvendegrund_anmerkung' AND table_name='tbl_dienstverhaeltnis' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
ALTER TABLE
hr.tbl_dienstverhaeltnis
ADD COLUMN
dvendegrund_anmerkung character varying(255)
";
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Spalte dvendegrund_anmerkung wurde in hr.tbl_dienstverhaeltnis neu erstellt<br>';
}
}
@@ -493,4 +569,4 @@ if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_
else
echo 'Vertragsart "Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger" erstellt.<br />';
}
}
}
@@ -0,0 +1,16 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// add app softwarebereitstellung
if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='softwarebereitstellung'"))
{
if($db->db_num_rows($result) === 0)
{
$qry = "INSERT INTO system.tbl_app (app) VALUES('softwarebereitstellung');";
if(!$db->db_query($qry))
echo '<strong>System Tabelle app: '.$db->db_last_error().'</strong><br>';
else
echo '<br>app softwarebereitstellung hinzugefuegt<br>';
}
}
@@ -0,0 +1,83 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_frist' AND table_schema='hr'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "
CREATE TABLE IF NOT EXISTS hr.tbl_frist (
frist_id bigserial NOT NULL,
mitarbeiter_uid character varying(32),
ereignis_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(255),
datum date,
status_kurzbz character varying(32) NOT NULL,
parameter jsonb NOT NULL,
insertvon character varying(32) NOT NULL,
insertamum timestamp without time zone DEFAULT now() NOT NULL,
updatevon character varying(32),
updateamum timestamp without time zone,
CONSTRAINT tbl_frist_pkey PRIMARY KEY (frist_id)
);
CREATE TABLE IF NOT EXISTS hr.tbl_frist_ereignis (
ereignis_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(32) NOT NULL,
manuell boolean DEFAULT FALSE,
sort smallint,
CONSTRAINT tbl_ereignis_pkey PRIMARY KEY (ereignis_kurzbz)
);
COMMENT ON TABLE hr.tbl_frist_ereignis IS E'Key-Table of fristen (deadline) events';
CREATE TABLE IF NOT EXISTS hr.tbl_frist_status (
status_kurzbz character varying(32) NOT NULL,
bezeichnung varchar(32),
sort smallint,
CONSTRAINT tbl_frist_status_pk PRIMARY KEY (status_kurzbz)
);
COMMENT ON TABLE hr.tbl_frist_status IS E'Key-Table of fristen status (new, done)';
ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_mitarbeiter_uid_fk FOREIGN KEY (mitarbeiter_uid)
REFERENCES public.tbl_mitarbeiter (mitarbeiter_uid) MATCH FULL
ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_ereignis_kurzbz_fk FOREIGN KEY (ereignis_kurzbz)
REFERENCES hr.tbl_frist_ereignis (ereignis_kurzbz) MATCH FULL
ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_status_kurzbz_fk FOREIGN KEY (status_kurzbz)
REFERENCES hr.tbl_frist_status (status_kurzbz) MATCH FULL
ON DELETE SET NULL ON UPDATE CASCADE;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist_status TO vilesci;
GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist_ereignis TO vilesci;
GRANT USAGE ON hr.tbl_frist_frist_id_seq TO vilesci;
INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('neu','Neu', 1);
INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('in_bearbeitung','In Bearbeitung', 2);
INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('erledigt','Erledigt', 3);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('dv_beginn','DV Beginn', 1);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('dv_ende','DV Ende', 2);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('stunden_beginn','Stunden Beginn', 3);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('stunden_ende','Stunden Ende', 4);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('karenz_beginn','Karenz Beginn', 5);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('karenz_ende','Karenz Ende', 6);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('zeitaufzeichnung_beginn','Zeitaufzeichnung Beginn', 7);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('zeitaufzeichnung_ende','Zeitaufzeichnung Ende', 8);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('befristung_beginn','Befristung Beginn', 9);
INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('befristung_ende','Befristung Ende', 10);
";
if (! $db->db_query($qry))
echo '<strong>Fristenmanagement: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Fristenmanagementtabellen wurden neu erstellt';
}
}
+73
View File
@@ -1280,6 +1280,79 @@ $filters = array(
',
'oe_kurzbz' => null,
),
array(
'app' => 'core',
'dataset_name' => 'softwareManagement',
'filter_kurzbz' => 'SoftwareManagement',
'description' => '{Software Verwaltung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "SoftwareManagement",
"columns": [
{"name": "software_kurzbz"},
{"name": "version"},
{"name": "beschreibung"},
{"name": "hersteller"},
{"name": "os"},
{"name": "lizenzserver_kurzbz"},
{"name": "lizenzserver_port"},
{"name": "softwarestatus_kurzbz"}
],
"filters": []
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'core',
'dataset_name' => 'imageVerwaltung',
'filter_kurzbz' => 'ImageVerwaltung',
'description' => '{Image Verwaltung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "ImageVerwaltung",
"columns": [
{"name": "bezeichnung"},
{"name": "betriebssystem"},
{"name": "verfuegbarkeit_start"},
{"name": "verfuegbarkeit_ende"},
{"name": "anmerkung"},
{"name": "ort_count"},
{"name": "software_count"}
],
"filters": []
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'core',
'dataset_name' => 'lizenzserverVerwaltung',
'filter_kurzbz' => 'LizenzserverVerwaltung',
'description' => '{Lizenzserver Verwaltung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "LizenzserverVerwaltung",
"columns": [
{"name": "lizenzserver_kurzbz"},
{"name": "bezeichnung"},
{"name": "macadresse"},
{"name": "ipadresse"},
{"name": "ansprechpartner"},
{"name": "anmerkung"},
{"name": "location"}
],
"filters": []
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'fhctemplate',
'dataset_name' => 'exampledata',
File diff suppressed because it is too large Load Diff
+10
View File
@@ -345,6 +345,16 @@
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.1">
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">Abmeldedatum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">
<text:span text:style-name="T4"><xsl:value-of select="abmeldedatum"/></text:span>
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.5">
<table:table-cell table:style-name="Tabelle2.A1" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P8">Grund der Abmeldung:</text:p>
+10
View File
@@ -345,6 +345,16 @@
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.1">
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">Abmeldedatum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">
<text:span text:style-name="T4"><xsl:value-of select="abmeldedatum"/></text:span>
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.5">
<table:table-cell table:style-name="Tabelle2.A1" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P8">Grund der Abmeldung:</text:p>
+10
View File
@@ -345,6 +345,16 @@
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.1">
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">Abmeldedatum</text:p>
</table:table-cell>
<table:table-cell table:style-name="Tabelle2.A1" office:value-type="string">
<text:p text:style-name="P5">
<text:span text:style-name="T4"><xsl:value-of select="abmeldedatum"/></text:span>
</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="Tabelle2.5">
<table:table-cell table:style-name="Tabelle2.A1" table:number-columns-spanned="2" office:value-type="string">
<text:p text:style-name="P8">Grund der Abmeldung:</text:p>