This commit is contained in:
Cris
2024-01-30 17:18:55 +01:00
9 changed files with 119 additions and 78 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(
+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
+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))
+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
@@ -111,7 +111,8 @@ export default {
headerSort: false
}, {
field: 'studierendenantrag_id',
title: '#'
title: '#',
sorter: 'number'
}, {
field: 'bezeichnung',
title: this.$p.t('lehre', 'studiengang'),
+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(