Merge branch 'RechteAnpassen' into benutzerberechtigungGUIneu

This commit is contained in:
Manfred
2024-03-01 15:27:11 +01:00
25 changed files with 619 additions and 299 deletions
+2 -1
View File
@@ -356,7 +356,8 @@ function sanitizeProblemChars($str)
'ss' => '/ß/'
);
return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
$tmp = preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc));
return html_entity_decode($tmp, ENT_NOQUOTES | ENT_HTML5, $enc);
}
/**
@@ -210,7 +210,7 @@ class Pruefung_model extends DB_Model
$this->db->where('ps.prestudent_id', $prestudent_id);
if ($max_date !== null) {
$this->db->where('p.datum <', $max_date);
$this->db->where('p.datum <=', $max_date);
}
if ($studiensemester_kurzbz !== null) {
$this->db->where('le.studiensemester_kurzbz', $studiensemester_kurzbz);
@@ -54,7 +54,7 @@ class Studierendenantrag_model extends DB_Model
$this->addJoin('public.tbl_person', 'person_id');
$this->addJoin('public.tbl_studiengang stg', 'p.studiengang_kz=stg.studiengang_kz');
$this->addJoin('public.tbl_studiensemester ss', 'studiensemester_kurzbz');
$this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=ss.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ss.studiensemester_kurzbz)');
$this->addJoin('public.tbl_prestudentstatus ps', 'ps.prestudent_id=p.prestudent_id AND ps.studiensemester_kurzbz=ss.studiensemester_kurzbz AND ps.status_kurzbz=get_rolle_prestudent(p.prestudent_id, ss.studiensemester_kurzbz)', 'LEFT');
$this->addJoin('lehre.tbl_studienplan plan', 'studienplan_id', 'LEFT');
$this->addJoin('bis.tbl_orgform of', 'of.orgform_kurzbz=COALESCE(plan.orgform_kurzbz, ps.orgform_kurzbz, stg.orgform_kurzbz)');
$this->addJoin(
+7 -1
View File
@@ -215,7 +215,13 @@ function loadampel()
</td>
<td valign="middle" align="center">
<form name="searchform" action="private/tools/suche.php" method="GET" target="content" style="display:inline">
<input id="globalsearch" type="search" size="55" name="search" placeholder=" <?php echo $p->t('menu/suchePersonOrtDokumentInhalt');?> ..." title="<?php echo $p->t('menu/suchePersonOrtDokumentInhaltLang');?>"/>
<?php
if (defined('CIS_ALLOW_PERSON_SEARCH') && !CIS_ALLOW_PERSON_SEARCH)
$searchText = $p->t('menu/sucheOrtDokumentInhalt');
else
$searchText = $p->t('menu/suchePersonOrtDokumentInhalt');
?>
<input id="globalsearch" type="search" size="55" name="search" placeholder=" <?php echo $searchText ;?> ..." title="<?php echo $searchText ;?>"/>
<img src="../skin/images/search.png" onclick="document.searchform.submit()" class="suchicon"/>
</form>
</td>
+7 -9
View File
@@ -126,6 +126,9 @@ if (!$searchPerson && !$searchOrt && !$searchDms && !$searchContent && !$searchO
function searchPerson($searchItems)
{
if (defined('CIS_ALLOW_PERSON_SEARCH') && !CIS_ALLOW_PERSON_SEARCH)
return false;
global $db, $p, $noalias, $uid;
$bn = new benutzer();
//search only active and Mitarbeiter with positive Personalnr
@@ -182,18 +185,13 @@ function searchPerson($searchItems)
echo '<td>',$row->vorname, '</td>';
echo '<td>';
if(!defined('CIS_SUCHE_PROFIL_ANZEIGEN'))
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
else if(!CIS_SUCHE_PROFIL_ANZEIGEN)
{
$mitarbeiter = new Mitarbeiter($uid);
if($mitarbeiter->errormsg === NULL)
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname, ' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
else
$mitarbeiter = new Mitarbeiter();
if (defined('CIS_SUCHE_PROFIL_ANZEIGEN') && CIS_SUCHE_PROFIL_ANZEIGEN === false && !$mitarbeiter->load($uid))
echo $row->nachname;
}
else
echo '<a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->wahlname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
if($row->aktiv==false)
echo '<span style="color: red"> (ausgeschieden)</span>';
elseif(isKarenziert($row->uid))
+28 -31
View File
@@ -784,23 +784,23 @@ echo '
{
/* Checkt nicht mehr Bisverwendung, sondern Vertragsbestandteil Zeitaufzeichnung */
$.ajax({
url: "zeitaufzeichnung_bisverwendung.php",
data: {
day: day,
uid: uid
},
success: function (result)
{
if (result==\'true\')
{
$("#homeofficeBlock").show();
}
else
{
$("#homeofficeBlock").hide();
}
}
});
url: "zeitaufzeichnung_bisverwendung.php",
data: {
day: day,
uid: uid
},
success: function (result)
{
if (result==\'true\')
{
$("#homeofficeBlock").show();
}
else
{
$("#homeofficeBlock").hide();
}
}
});
}
function checkZeitsperre(day, uid)
@@ -1042,7 +1042,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
echo "
<hr><br>
<select name='mas' id='mas' onchange='location = this.options[this.selectedIndex].value;''>
<select name='mas' id='mas' onchange='location = this.options[this.selectedIndex].value;'>
<option>-- Timesheets Mitarbeiter*Innen --</option>";
foreach($mitarbeiter->result as $row)
{
@@ -1247,9 +1247,9 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$p->t("zeitaufzeichnung/projektphase").'
<SELECT name="projektphase" id="projektphase">
<OPTION value="" id="projektphasekeineausw">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
if ($showprojphases)
{
foreach ($projektphasen as $projektphase)
{
if (($projektphase->start != "" ) && ($projektphase->ende != " "))
@@ -1270,13 +1270,12 @@ if ($projekt->getProjekteMitarbeiter($user, true))
echo '<option value="'.$db->convert_html_chars($projektphase->projektphase_id).'" '.$selected.'>'.$db->convert_html_chars($projektphase->bezeichnung).
$phasentext. '</option>';
}
echo '</SELECT></span>';
}
echo '</SELECT></span>';
echo '</td></tr>';
}
echo "<input type ='hidden' value='$user'id=uidpass>";
if ($za_simple == 0)
{
// Service
@@ -1370,22 +1369,19 @@ if ($projekt->getProjekteMitarbeiter($user, true))
<td>&nbsp;</td>
<td colspan="3">
<span id="pausenblock">
<input type="checkbox" name="genPause" id="genPause" onChange="checkPausenzeit()"> '.$p->t("zeitaufzeichnung/pauseEinfuegen").' <input type="text" name="pause_von" class="timepicker" size="4" id="pause_von"> - <input type="text" name="pause_bis" class="timepicker" size="4" id="pause_bis">
<input type="checkbox" name="genPause" id="genPause" onChange="checkPausenzeit()"> <label for="genPause">'.$p->t("zeitaufzeichnung/pauseEinfuegen").'</label> <input type="text" name="pause_von" class="timepicker" size="4" id="pause_von"> - <input type="text" name="pause_bis" class="timepicker" size="4" id="pause_bis">
</span>
</td>
</tr>
';
//Zeitsperren
echo '<p id="outputZs"></p>';
//Homeoffice Checkbox
echo '
<tr>
<td>&nbsp;</td>
<td colspan="1">
<span id="homeofficeBlock">
<input type="checkbox" name="homeoffice" id="homeoffice" '. $homeofficeChecked . '>Homeoffice</input>
<input type="checkbox" name="homeoffice" id="homeoffice" '. $homeofficeChecked . '> <label for="homeoffice">Homeoffice</label>
</span>
</td>
</tr>
@@ -1412,7 +1408,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$vbt = new vertragsbestandteil();
$isAllin = $vbt->isAllin($user);
if ($isAllin)
{
echo '<span id="saldoAllin"></span><br>';
@@ -1432,6 +1428,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
echo '</td></tr>';
echo '</table>';
echo '</form>';
echo "<input type ='hidden' value='$user' id='uidpass'>";
echo '<hr>';
echo '<h3>'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'</h3>';
if ($alle===true)
@@ -1569,7 +1566,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$tagessaldo = date('H:i', ($tagessaldo));
$colspan = ($za_simple)?6:8;
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'")>';
echo '<tr id="tag_row_'.$datum->formatDatum($tag,'d_m_Y').'"><td '.$style.' colspan="'.$colspan.'">';
// Zusaetzlicher span fuer Addon Informationen
@@ -1626,8 +1623,8 @@ if ($projekt->getProjekteMitarbeiter($user, true))
<tr>
<th colspan="'.$colspan.'" style="background-color: #8DBDD8;"></th>
<th style="background-color: #8DBDD8;" align="right" colspan="2" style="font-weight: normal;"><b>'.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").':</b></th>
<th style="background-color: #8DBDD8;" align="right" style="font-weight: normal;"><b>'.$wochensaldo.$erstr.'</b></th>
<th style="background-color: #8DBDD8; font-weight: normal;" align="right" colspan="2"><b>'.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").':</b></th>
<th style="background-color: #8DBDD8; font-weight: normal;" align="right"><b>'.$wochensaldo.$erstr.'</b></th>
<th style="background-color: #8DBDD8;" colspan="3"></th>
</tr>
+2
View File
@@ -129,6 +129,8 @@ define('MAILVERTEILER_SPERRE', true);
// Bezeichnung des Campus
define('CAMPUS_NAME','FH Technikum Wien');
define('CI_ENVIRONMENT', 'development'); // Code igniter environment variable
// Anzahl der Tag die eine Nachricht am Pinboard angezeigt wird.
define("MAXNEWSALTER",60);
// Anzahl der Newseintraege die maximal angezeigt werden
+5
View File
@@ -57,8 +57,13 @@ define('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN',true);
define('CIS_SUCHE_LVPLAN_ANZEIGEN',true);
// Anzeige des Links zum Profil von Personen bei globaler Suche
// Wenn ein Mitarbeiter sucht, wird der Link IMMER angezeigt, unabhängig von der Config
// Wenn ein Studierender sucht und die Config auf false ist, wird der Link nicht angezeigt - ansonsten schon
define('CIS_SUCHE_PROFIL_ANZEIGEN',true);
// Anzeige von Personen bei globaler Suche
define('CIS_ALLOW_PERSON_SEARCH', true);
// Soll geprueft werden ob das Passwort innerhalb des letzten Jahres geaendert wurde true|false
// Wenn dies nicht geaendert wurde wird nach dem Login auf die Passwort aendern Seite umgeleitet
define('CIS_CHECK_PASSWORD_CHANGE',false);
@@ -261,15 +261,25 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
<hbox>
<label value="Note" control="lehrveranstaltung-noten-menulist-note"/>
<menulist id="lehrveranstaltung-noten-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste"
oncommand="LehrveranstaltungNoteSpeichern()">
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste"
oncommand="LehrveranstaltungNoteSpeichern()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
<label value="Punkte" control="lehrveranstaltung-noten-textbox-punkte" hidden="<?php echo $punktehidden; ?>"/>
+1 -1
View File
@@ -4665,7 +4665,7 @@ if(!$error)
WHERE person_id=".$db->db_add_param($_POST['person_id'], FHC_INTEGER) ."
AND stundensatztyp = ". $db->db_add_param('lehre') ."
AND gueltig_von <= ". $db->db_add_param($studiensemester->ende) ."
AND (gueltig_bis => ". $db->db_add_param($studiensemester->start) ." OR gueltig_bis IS NULL)
AND (gueltig_bis >= ". $db->db_add_param($studiensemester->start) ." OR gueltig_bis IS NULL)
ORDER BY gueltig_bis DESC NULLS FIRST, gueltig_von DESC NULLS LAST LIMIT 1
";
if($result = $db->db_query($qry))
@@ -194,17 +194,27 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<label value="Note komm. Pruefung" control="student-abschlusspruefung-menulist-notekommpruef" />
<menulist id="student-abschlusspruefung-menulist-notekommpruef"
disabled="true"
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT;?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste"
>
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<template>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
<row>
<label value="Prüfungsantritt" control="student-abschlusspruefung-menulist-pruefungsantritt" />
+17 -7
View File
@@ -346,15 +346,25 @@ echo "<?xml-stylesheet href=\"".APP_ROOT."content/bindings.css\" type=\"text/css
<hbox>
<label value="Note" control="student-noten-menulist-note"/>
<menulist id="student-noten-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste"
oncommand="StudentNoteSpeichern()">
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste"
oncommand="StudentNoteSpeichern()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
<label value="Punkte" control="student-noten-textbox-punkte" hidden="<?php echo $punktehidden; ?>"/>
@@ -279,14 +279,24 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
</hbox>
<label value="Gesamtnote" control="student-projektarbeit-menulist-note"/>
<menulist id="student-projektarbeit-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
@@ -483,14 +493,24 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<row>
<label value="Note" control="student-projektbetreuer-menulist-note"/>
<menulist id="student-projektbetreuer-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT ?>rdf/note.rdf.php?optional=true" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
+16 -6
View File
@@ -216,14 +216,24 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<row>
<label value="Note" control="student-pruefung-menulist-note"/>
<menulist id="student-pruefung-menulist-note" disabled="true"
datasources="<?php echo APP_ROOT; ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
xmlns:NOTE="http://www.technikum-wien.at/note/rdf#"
datasources="<?php echo APP_ROOT; ?>rdf/note.rdf.php" flex="1"
ref="http://www.technikum-wien.at/note/liste" >
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
<rule NOTE:aktiv='false'>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*" style="text-decoration:line-through;"/>
</menupopup>
</rule>
<rule>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/note/rdf#note"
label="rdf:http://www.technikum-wien.at/note/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</rule>
</template>
</menulist>
</row>
+182 -12
View File
@@ -1086,12 +1086,33 @@ class mitarbeiter extends benutzer
funktion_kurzbz='Leitung' AND
(datum_von is null OR datum_von<=now()) AND
(datum_bis is null OR datum_bis>=now()) AND
oe_kurzbz in (SELECT oe_kurzbz
FROM public.tbl_benutzerfunktion
WHERE
oe_kurzbz in (
SELECT
oe_kurzbz
FROM
public.tbl_benutzerfunktion
WHERE
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
(datum_von is null OR datum_von<=now()) AND
(datum_bis is null OR datum_bis>=now())
ORDER BY
(
SELECT
1
FROM
hr.tbl_vertragsbestandteil_funktion
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
WHERE
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
AND
(
now()::date BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
OR
now()::date BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
)
) NULLS FIRST LIMIT 1
)
ORDER BY datum_von DESC ";
@@ -1120,6 +1141,138 @@ class mitarbeiter extends benutzer
return $return;
}
/**
* Prueft ob eine Person im angegebenen Zeitraum Vorgesetzter von einem Mitarbeiter ist
* @param $leiter UID der zu pruefenden Leitungsposition
* @param $mitarbeiter UID der zu pruefenden Leitungsposition
* @param $datumvon Von Datum des zu pruefenden Zeitraums
* @param $datumbis BIS Datum des zu pruefenden Zeitraums
*/
public function isVorgesetzterByDate($leiter, $mitarbeiter, $datumvon, $datumbis)
{
// Alle OEs der zu pruefenden Leitungsposition holen (oes_leitung)
// Alle OEs des zu pruefenden Mitarbeiters holen (oes_mitarbeiter)
// OE-Ueberschneidungen pruefen
$qry = "
WITH RECURSIVE
oes_leitung (oe_kurzbz, oe_parent_kurzbz, level) AS
(
SELECT
oe_kurzbz,
oe_parent_kurzbz,
1 as level
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz IN (
-- Leitung im Zeitraum X
SELECT oe_kurzbz FROM public.tbl_benutzerfunktion
WHERE
funktion_kurzbz='Leitung'
AND uid=".$this->db_add_param($leiter)."
AND
(
".$this->db_add_param($datumvon)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
OR
".$this->db_add_param($datumbis)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
)
)
UNION ALL
SELECT
o.oe_kurzbz,
o.oe_parent_kurzbz,
oes_leitung.level + 1 as level
FROM
public.tbl_organisationseinheit o, oes_leitung
WHERE
o.oe_parent_kurzbz = oes_leitung.oe_kurzbz
),
oes_mitarbeiter (oe_kurzbz, oe_parent_kurzbz, level) AS
(
SELECT
oe_kurzbz,
oe_parent_kurzbz,
1 as level
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz IN (
-- OEZuordnung im Zeitraum X - bevorzugt nicht karenziert
SELECT oe_kurzbz FROM public.tbl_benutzerfunktion
WHERE
funktion_kurzbz='oezuordnung'
AND uid=".$this->db_add_param($mitarbeiter)."
AND (
".$this->db_add_param($datumvon)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
OR
".$this->db_add_param($datumbis)." BETWEEN COALESCE(tbl_benutzerfunktion.datum_von, '1970-01-01') AND COALESCE(tbl_benutzerfunktion.datum_bis, '2170-12-31')
)
ORDER BY
(
SELECT
1
FROM
hr.tbl_vertragsbestandteil_funktion
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
WHERE
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
AND
(
".$this->db_add_param($datumvon)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
OR
".$this->db_add_param($datumbis)." BETWEEN COALESCE(vbskarenz.von, '1970-01-01') AND COALESCE(vbskarenz.bis, '2170-12-31')
)
) NULLS FIRST LIMIT 1
)
UNION ALL
SELECT
o.oe_kurzbz,
o.oe_parent_kurzbz,
oes_mitarbeiter.level + 1 as level
FROM
public.tbl_organisationseinheit o, oes_mitarbeiter
WHERE
o.oe_kurzbz = oes_mitarbeiter.oe_parent_kurzbz
)
SELECT
oe_kurzbz, level
FROM
oes_leitung
WHERE
oe_kurzbz in (SELECT oe_kurzbz FROM oes_mitarbeiter)
ORDER BY
oe_kurzbz, level
";
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result) > 0)
{
return true;
}
else
{
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Gibt ein Array mit den UIDs der Vorgesetzten zum Zeitpunkt des korrespondierenden Timesheets zurück
* @param $uid
@@ -1139,13 +1292,30 @@ class mitarbeiter extends benutzer
funktion_kurzbz='Leitung' AND
(datum_von is null OR datum_von<=".$this->db_add_param($date).") AND
(datum_bis is null OR datum_bis>=".$this->db_add_param($date).") AND
oe_kurzbz in (SELECT oe_kurzbz
FROM public.tbl_benutzerfunktion
WHERE
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
(datum_von is null OR (datum_von<= ".$this->db_add_param($date).")) AND
(datum_bis is null OR (datum_bis>=".$this->db_add_param($date)."))
)
oe_kurzbz in (
SELECT
oe_kurzbz
FROM
public.tbl_benutzerfunktion
WHERE
funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND
(datum_von is null OR (datum_von<= ".$this->db_add_param($date).")) AND
(datum_bis is null OR (datum_bis>=".$this->db_add_param($date)."))
ORDER BY
(
SELECT
1
FROM
hr.tbl_vertragsbestandteil_funktion
JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id)
JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id)
WHERE
tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id
AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz'
AND (vbskarenz.von <= ".$this->db_add_param($date)." OR vbskarenz.von is null)
AND (vbskarenz.bis >= ".$this->db_add_param($date)." OR vbskarenz.bis is null)
) NULLS FIRST LIMIT 1
)
ORDER BY datum_von DESC ";
if (is_numeric($limit))
@@ -1754,7 +1924,7 @@ class mitarbeiter extends benutzer
{
if (is_null($uid))
$uid = $this->uid;
$qry = "
SELECT o.oe_kurzbz AS standardkostenstelle, o.bezeichnung
FROM public.tbl_benutzerfunktion bf
@@ -1771,7 +1941,7 @@ class mitarbeiter extends benutzer
$obj = new StdClass();
$obj->oekurzbz = $row->standardkostenstelle;
$obj->bezeichnung = $row->bezeichnung;
$this->result []= $obj;
}
return true;
+35 -35
View File
@@ -98,7 +98,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
@@ -108,8 +108,8 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- Zeitaufzeichnungspflichtig...
AND zeitaufzeichnung = TRUE
-- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
AND zeitaufzeichnung = TRUE
-- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
-- Vorerst nur check, ob zumindest eine aufrechte Zeitaufzeichnungspflicht. Später Unterscheidung nach Dienstverhältnis.
ORDER BY vbt.von DESC --aktuellster
@@ -174,7 +174,7 @@ class vertragsbestandteil extends basis_db
return false;
}
$qry = 'SELECT
$qry = 'SELECT
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
@@ -184,10 +184,10 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- Zeitaufzeichnungspflichtig
AND zeitaufzeichnung = TRUE
-- Vertragsbestandteile sind aktuell, liegen nach dem GoLive und starten vor dem aktuellen Monatsletzten
AND zeitaufzeichnung = TRUE
-- Vertragsbestandteile sind aktuell, liegen nach dem GoLive und starten vor dem aktuellen Monatsletzten
AND(
(COALESCE(vbt.bis, NOW()::date) > '. $this->db_add_param(CASETIME_TIMESHEET_GOLIVE). '::date) AND
(COALESCE(vbt.bis, NOW()::date) > '. $this->db_add_param(CASETIME_TIMESHEET_GOLIVE). '::date) AND
(vbt.von < (date_trunc(\'month\', NOW()) + interval \'1 month - 1 day\')::date)
)
ORDER BY vbt.von ' . $order;
@@ -251,7 +251,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
@@ -261,11 +261,11 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- AZG-relevant...
AND azgrelevant = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND azgrelevant = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND (
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
OR
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date > vbt.von)
)
ORDER BY vbt.von DESC --zur Sicherheit: aktuellster
@@ -324,7 +324,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
@@ -334,12 +334,12 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- Homeoffice...
AND homeoffice = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND homeoffice = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND (
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date > vbt.von)
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date >= vbt.von)
)
ORDER BY vbt.von DESC -- Zur Sicherheit: aktuellster
LIMIT 1';
@@ -396,7 +396,7 @@ class vertragsbestandteil extends basis_db
{
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
vbtft.freitexttyp_kurzbz, vbtftt.bezeichnung, vbtft.titel, vbtft.anmerkung
@@ -467,19 +467,19 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = '
SELECT
SELECT
1
FROM
hr.tbl_vertragsbestandteil vbt
JOIN
FROM
hr.tbl_vertragsbestandteil vbt
JOIN
hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
WHERE
dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
vbt.von::date <= '. $timestamp. '::date
AND
AND
vbt.bis::date >= '. $timestamp. '::date
';
@@ -515,7 +515,7 @@ class vertragsbestandteil extends basis_db
{
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbtstd.vertragsbestandteil_id,
vbtstd.wochenstunden,
vbtstd.teilzeittyp_kurzbz
@@ -528,17 +528,17 @@ class vertragsbestandteil extends basis_db
AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
-- DV mit Vertragsbestandteile Karenz herausnehmen, weil die Wochenstunden dieser DV dann ruhen
AND (
SELECT
COUNT(*) AS karenzen
FROM
hr.tbl_vertragsbestandteil vbt
WHERE
SELECT
COUNT(*) AS karenzen
FROM
hr.tbl_vertragsbestandteil vbt
WHERE
vbt.dienstverhaeltnis_id = dv.dienstverhaeltnis_id
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
vbt.von::date <= '. $timestamp. '::date
AND
AND
vbt.bis::date >= '. $timestamp. '::date
) = 0
ORDER BY vbt.von DESC -- aktuellster
+163 -144
View File
@@ -25,23 +25,23 @@ require_once(dirname(__FILE__).'/sprache.class.php');
class zgv extends basis_db
{
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $bezeichnung;
public $bezeichnung;
public $result = array();
public $result = array();
public function __construct($zgv_code=null)
public function __construct($zgv_code=null)
{
parent::__construct();
@@ -49,155 +49,174 @@ class zgv extends basis_db
$this->load($zgv_code);
}
/**
* Lädt eine zgv von tbl_zgv
* @param $zgv_code
* @return boolean
*/
public function load($zgv_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
/**
* Lädt eine zgv von tbl_zgv
* @param $zgv_code
* @return boolean
*/
public function load($zgv_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Lädt eine Master-ZGV von tbl_zgvmaster
* @param $zgvmas_code
* @return boolean
*/
public function load_mas($zgvmas_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
* Lädt eine Master-ZGV von tbl_zgvmaster
* @param $zgvmas_code
* @return boolean
*/
public function load_mas($zgvmas_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
/**
* lädt alle ZGVs von tbl_zgv
* @return boolean
*/
public function getAll($onlyAktiv = false)
{
$sprache = new sprache();
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv';
/**
* lädt alle ZGVs von tbl_zgv
* @return boolean
*/
public function getAll()
{
$sprache = new sprache();
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv;';
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$qry .= " ORDER BY zgv_bez";
$this->result[] = $zgv;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
/**
* Lädt alle Master ZGVs von tbl_zgvmaster
* @return boolean
*/
public function getAllMaster()
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster;';
$this->result[] = $zgv;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv_master = new zgv();
/**
* Lädt alle Master ZGVs von tbl_zgvmaster
* @return boolean
*/
public function getAllMaster($onlyAktiv = false)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster';
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
$this->result[] = $zgv_master;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
$qry .= " ORDER BY zgvmas_bez";
/**
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
* @return boolean
*/
public function getAllDoktor()
{
$sprache = new sprache();
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv_master = new zgv();
if($result = $this->db_query($qry))
{
while($row= $this->db_fetch_object($result))
{
$zgv_doktor = new zgv();
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_master;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
$this->result[] = $zgv_doktor;
}
/**
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
* @return boolean
*/
public function getAllDoktor($onlyAktiv = false)
{
$sprache = new sprache();
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
$qry .= " ORDER BY zgvdoktor_bez";
if($result = $this->db_query($qry))
{
while($row= $this->db_fetch_object($result))
{
$zgv_doktor = new zgv();
}
else
{
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_doktor;
}
}
else
{
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
?>
+1
View File
@@ -8,5 +8,6 @@ $this->phrasen['menu/assistenz']='Zeitsperren aller AssistentInnen';
$this->phrasen['menu/lektoren']='Lektoren';
$this->phrasen['menu/urlaubAlle']='Alle';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Suche Person / OE / Ort / Dokument / Inhalt / DW';
$this->phrasen['menu/sucheOrtDokumentInhalt']='Suche OE / Ort / Dokument / Inhalt / DW';
$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']='Suche Person / Organisationseinheit / Ort / Dokument / Inhalt / Durchwahl';
?>
+1
View File
@@ -8,5 +8,6 @@ $this->phrasen['menu/assistenz']='Assistants';
$this->phrasen['menu/lektoren']='Lector';
$this->phrasen['menu/urlaubAlle']='All';
$this->phrasen['menu/suchePersonOrtDokumentInhalt']='Search Person / OU / Room / Document / Content / Ext.';
$this->phrasen['menu/sucheOrtDokumentInhalt']='Search OU / Room / Document / Content / Ext.';
$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']='Search Person / Organisation Unit / Room / Document / Content / Extension';
?>
@@ -111,7 +111,8 @@ export default {
headerSort: false
}, {
field: 'studierendenantrag_id',
title: '#'
title: '#',
sorter: 'number'
}, {
field: 'bezeichnung',
title: this.$p.t('lehre', 'studiengang'),
+14 -12
View File
@@ -40,7 +40,7 @@ echo '
xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:NOTE="'.$rdf_url.'/rdf#"
>
<RDF:Seq about="'.$rdf_url.'/liste">
<RDF:Seq about="'.$rdf_url.'/liste">
';
//Daten holen
@@ -48,13 +48,14 @@ $qry = 'SELECT * FROM lehre.tbl_note ORDER BY note';
if(isset($_GET['optional']))
{
echo '
<RDF:li>
<RDF:Description id="" about="'.$rdf_url.'/" >
<NOTE:note><![CDATA[]]></NOTE:note>
<NOTE:bezeichnung><![CDATA[-- keine Auswahl --]]></NOTE:bezeichnung>
<NOTE:anmerkung><![CDATA[]]></NOTE:anmerkung>
</RDF:Description>
</RDF:li>';
<RDF:li>
<RDF:Description id="" about="'.$rdf_url.'/" >
<NOTE:note><![CDATA[]]></NOTE:note>
<NOTE:bezeichnung><![CDATA[-- keine Auswahl --]]></NOTE:bezeichnung>
<NOTE:anmerkung><![CDATA[]]></NOTE:anmerkung>
<NOTE:aktiv><![CDATA[]]></NOTE:aktiv>
</RDF:Description>
</RDF:li>';
}
$db = new basis_db();
@@ -63,13 +64,14 @@ if($db->db_query($qry))
while($row = $db->db_fetch_object())
{
echo '
<RDF:li>
<RDF:Description id="'.$row->note.'" about="'.$rdf_url.'/'.$row->note.'" >
<RDF:li>
<RDF:Description id="'.$row->note.'" about="'.$rdf_url.'/'.$row->note.'" >
<NOTE:note><![CDATA['.$row->note.']]></NOTE:note>
<NOTE:bezeichnung><![CDATA['.$row->bezeichnung.']]></NOTE:bezeichnung>
<NOTE:anmerkung><![CDATA['.$row->anmerkung.']]></NOTE:anmerkung>
</RDF:Description>
</RDF:li>';
<NOTE:aktiv><![CDATA['.($db->db_parse_bool($row->aktiv)?'true':'false') .']]></NOTE:aktiv>
</RDF:Description>
</RDF:li>';
}
}
?>
+1
View File
@@ -49,6 +49,7 @@ 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/36275_zeitaufzeichnung_karenz.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
@@ -0,0 +1,16 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
// Add index to system.tbl_log
if ($result = $db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_vertragsbestandteil_funktion' AND table_schema='hr' AND grantee='web' AND privilege_type='SELECT'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "GRANT SELECT ON hr.tbl_vertragsbestandteil_funktion TO web;";
if (! $db->db_query($qry))
echo '<strong>Vertragsbestandteil Funktion Rechte: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Leserechte für Web User auf vertragsbetandteil_funktion hinzugefuegt';
}
}
+47 -7
View File
@@ -11642,13 +11642,13 @@ Any unusual occurrences
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründen Sie die Gleichwertigkeit der ECTS',
'text' => 'Erläutern Sie die Gleichwertigkeit der ECTS',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Give reasons for the equivalence of ECTS',
'text' => 'Explain ECTS equivalencies',
'description' => '',
'insertvon' => 'system'
)
@@ -11662,13 +11662,13 @@ Any unusual occurrences
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Begründen Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
'text' => 'Erläutern Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Give reasons for the equivalence of the course contents',
'text' => 'Explain the equivalence of course content',
'description' => '',
'insertvon' => 'system'
)
@@ -18040,6 +18040,26 @@ array(
)
)
),
array(
'app' => 'international',
'category' => 'international',
'phrase' => 'alleGeplantenMarkieren',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle geplanten markieren',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Mark all planned',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'international',
'category' => 'international',
@@ -19682,7 +19702,7 @@ array(
)
),
/*
// es kann fuer jede Kombination Typ und Status eine Phrase der Form info_<Typ>_<Status
// es kann fuer jede Kombination Typ und Status eine Phrase der Form info_<Typ>_<Status
// erstellt werden, die dann in der Studierendenansicht in einer infobox angezeigt werden
array(
'app' => 'core',
@@ -20607,6 +20627,26 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'ui',
'phrase' => 'keineBerechtigung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Keine Berechtigung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'No authority',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'studierendenantrag',
@@ -23330,7 +23370,7 @@ array(
)
),
array(
'app' => 'personalverwaltung',
'category' => 'person',
@@ -23411,7 +23451,7 @@ array(
)
)
),
array(
+1 -1
View File
@@ -56,7 +56,7 @@ $uid_benutzer = get_uid();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid_benutzer);
if(!$rechte->isBerechtigt('mitarbeiter', null, 's'))
if(!$rechte->isBerechtigt('mitarbeiter/zeitwuensche', null, 's'))
die($rechte->errormsg);
$datum_obj = new datum();