This commit is contained in:
Cris
2023-10-31 12:58:03 +01:00
13 changed files with 123 additions and 58 deletions
+5 -1
View File
@@ -166,8 +166,12 @@ class AntragJob extends JOB_Controller
$data['table'] = $data['table_' . DEFAULT_LANGUAGE];
//Mail an Stgl und Assistenz
$to = $leitung['Details']->uid . '@' . DOMAIN;
$cc = $leitung['Details']->email;
// NOTE(chris): Sancho mail
if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $leitung['Details']->uid . '@' . DOMAIN, 'Anträge - Aktion(en) erforderlich'))
if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $to, 'Anträge - Aktion(en) erforderlich', DEFAULT_SANCHO_HEADER_IMG, DEFAULT_SANCHO_FOOTER_IMG, '', $cc))
$count++;
}
@@ -20,7 +20,7 @@ class Rueckstellung_model extends DB_Model
$this->addLimit(1);
$this->addJoin('tbl_rueckstellung_status', 'status_kurzbz');
$this->addSelect('*,
array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . 'as bezeichnung');
array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . ' as bezeichnung');
$this->addOrder('datum_bis', 'DESC');
$where['person_id'] = $person_id;
@@ -142,7 +142,7 @@ FROM
WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung)
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
END AS "lv_oe_kurzbz",
TRUNC(lema.semesterstunden, 1) AS "stunden",
TRUNC(lema.semesterstunden, 2) AS "stunden",
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
vertrag_id,
vertragsstunden AS "vertrag_stunden",
@@ -375,9 +375,9 @@ $filterWidgetArray = array(
orgform_kurzbz: {visible: false, headerFilter:"input"},
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}
bottomCalc:"sum", bottomCalcParams:{precision:2}
},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
@@ -149,7 +149,7 @@ FROM
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
END AS "lv_oe_kurzbz",
(person.nachname || \' \' || person.vorname) AS "lektor",
TRUNC(lema.semesterstunden, 1) AS "stunden",
TRUNC(lema.semesterstunden, 2) AS "stunden",
lema.stundensatz,
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
vertrag_id,
@@ -400,9 +400,9 @@ $filterWidgetArray = array(
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {visible: false, headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 2},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}},
bottomCalc:"sum", bottomCalcParams:{precision:2}},
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
@@ -159,7 +159,7 @@ FROM
(
SELECT
/* lehrauftraege also planned with dummies, therefore personalnummer is needed */
ma.personalnummer,
ma.personalnummer::text,
lema.lehreinheit_id,
lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung",
@@ -179,7 +179,7 @@ FROM
ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung)
END AS "lv_oe_kurzbz",
(person.nachname || \' \' || person.vorname) AS "lektor",
TRUNC(lema.semesterstunden, 1) AS "stunden",
TRUNC(lema.semesterstunden, 2) AS "stunden",
lema.stundensatz,
TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag",
vertrag_id,
@@ -219,7 +219,7 @@ FROM
(SELECT
uid
FROM
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
public.tbl_benutzer JOIN public.tbl_mitarbeiter ma
ON tbl_benutzer.uid = ma.mitarbeiter_uid
WHERE
person_id = tmp_projektbetreuung.person_id
@@ -272,7 +272,7 @@ FROM
pa.lehreinheit_id,
lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung",
pa.projektarbeit_id AS "projektarbeit_id",
pa.projektarbeit_id::text AS "projektarbeit_id",
le.studiensemester_kurzbz,
stg.studiengang_kz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
@@ -414,7 +414,7 @@ $filterWidgetArray = array(
row_index: {visible: false},
personalnummer: {visible: false, headerFilter:"input"},
auftrag: {
headerFilter:"input", widthGrow: 2,
headerFilter:"input", widthGrow: 2,
bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();}
},
stg_typ_kurzbz: {headerFilter:"input"},
@@ -432,9 +432,9 @@ $filterWidgetArray = array(
person_id: {visible: false, headerFilter:"input"},
lv_oe_kurzbz: {headerFilter:"input"},
lektor: {headerFilter:"input", widthGrow: 2},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1},
stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2},
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator,
bottomCalc:"sum", bottomCalcParams:{precision:1}},
bottomCalc:"sum", bottomCalcParams:{precision:2}},
stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber,
headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator},
betrag: {align:"right", formatter: form_formatNulltoStringNumber,
+63 -40
View File
@@ -79,7 +79,12 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE
else
$gesperrt_bis = '2015-08-31';
//echo $gesperrt_bis;
//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar
$maxDauerZS = 730;
if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') {
$maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER;
}
//Stundentabelleholen
if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde"))
@@ -204,66 +209,72 @@ function berechnen()
function checkdatum()
{
if(document.getElementById('vondatum').value.length<10)
if (document.getElementById('vondatum').value.length < 10)
{
alert('<?php echo $p->t('zeitsperre/vonDatumIstUngueltigNullenAngeben');?>');
return false;
}
if(document.getElementById('bisdatum').value.length<10)
if (document.getElementById('bisdatum').value.length < 10)
{
alert('<?php echo $p->t('zeitsperre/bisDatumIstUngueltigNullenAngeben');?>');
return false;
}
var Datum, Tag, Monat,Jahr,vonDatum,bisDatum, diff;
var Datum, Tag, Monat, Jahr, vonDatum, bisDatum, vonDatumDate, bisDatumDate, diff, diffTime, diffmax;
Datum=document.getElementById('vondatum').value;
Tag=Datum.substring(0,2);
Monat=Datum.substring(3,5);
if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12)
{
alert('<?php echo $p->t('zeitsperre/vonDatumMonat');?>'+ document.getElementById('vondatum').value+ ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
Datum = document.getElementById('vondatum').value;
Tag = Datum.substring(0, 2);
Monat = Datum.substring(3, 5);
if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12)
{
alert('<?php echo $p->t('zeitsperre/vonDatumMonat');?>' + document.getElementById('vondatum').value + ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
document.getElementById('vondatum').focus();
return false;
}
return false;
}
Jahr=Datum.substring(6,10);
Jahr = Datum.substring(6, 10);
vonDatum=Jahr+''+Monat+''+Tag;
vonDatum = Jahr + '' + Monat + '' + Tag;
vonDatumDate = Jahr + '-' + Monat + '-' + Tag;
Datum=document.getElementById('bisdatum').value;
Tag=Datum.substring(0,2);
Monat=Datum.substring(3,5);
if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12)
{
alert('<?php echo $p->t('zeitsperre/bisDatumMonat');?>'+ document.getElementById('bisdatum').value+ ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
Datum = document.getElementById('bisdatum').value;
Tag = Datum.substring(0, 2);
Monat = Datum.substring(3, 5);
if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12) {
alert('<?php echo $p->t('zeitsperre/bisDatumMonat');?>' + document.getElementById('bisdatum').value + ' <?php echo $p->t('zeitsperre/istNichtRichtig');?>.');
document.getElementById('bisdatum').focus();
return false;
}
return false;
}
Jahr=Datum.substring(6,10);
Jahr = Datum.substring(6, 10);
bisDatum = Jahr + '' + Monat + '' + Tag;
bisDatumDate = Jahr + '-' + Monat + '-' + Tag;
bisDatum=Jahr+''+Monat+''+Tag;
bisDatumDate = new Date(bisDatumDate);
vonDatumDate = new Date(vonDatumDate);
diff=bisDatum-vonDatum;
diffTime = bisDatumDate.getTime() - vonDatumDate.getTime();
diff = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
diffmax = <?php echo $maxDauerZS ;?>
if (vonDatum>bisDatum)
{
alert('<?php echo $p->t('zeitsperre/vonDatum');?> '+ document.getElementById('vondatum').value+ ' <?php echo $p->t('zeitsperre/istGroesserAlsBisDatum');?> '+document.getElementById('bisdatum').value);
if (vonDatum > bisDatum) {
alert('<?php echo $p->t('zeitsperre/vonDatum');?> ' + document.getElementById('vondatum').value + ' <?php echo $p->t('zeitsperre/istGroesserAlsBisDatum');?> ' + document.getElementById('bisdatum').value);
document.getElementById('vondatum').focus();
return false;
}
else if (diff>14)
{
Check = confirm('<?php echo $p->t('zeitaufzeichnung/zeitraumAuffallendHoch');?>');
return false;
}
else if (diff > 14 && diff < diffmax) {
Check = confirm('<?php echo $p->t('zeitaufzeichnung/zeitraumAuffallendHoch');?>');
document.getElementById('bisdatum').focus();
if (Check == false)
return false;
else
return true;
}
if (Check == false)
return false;
else
return true;
} else if (diff >= diffmax) {
alert('<?php echo $p->t('zeitsperre/bisDatumGroesserMax');?> ');
document.getElementById('bisdatum').focus();
return false;
}
return true;
}
@@ -445,7 +456,8 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
$date=explode('.',$_POST['bisdatum']);
if (@checkdate($date[1], $date[0], $date[2]))
{
$bisdatum=$date[2].$date[1].$date[0];
$bisdatum=$date[2].$date[1].$date[0];
$bisdatum_iso = $date[2].'-'.$date[1].'-'.$date[0];
}
else
{
@@ -464,6 +476,17 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_
$error_msg .= $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! ';
}
//check if bis-Datum zu weit in der Zukunft
$bis = new DateTime($bisdatum);
$von = new DateTime($vondatum);
$intervall = $bis->diff($von);
if ($intervall->days >= $maxDauerZS)
{
$error=true;
$error_msg = $p->t('zeitsperre/bisDatumGroesserMax');
}
//von-datum pruefen TODO
if($vondatum_iso < $gesperrt_bis && in_array($_POST['zeitsperretyp_kurzbz'],$typen_arr))
{
-1
View File
@@ -294,5 +294,4 @@ define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]);
//Echter Dienstvertrag
define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]);
?>
+3
View File
@@ -47,6 +47,9 @@ define('CIS_PROFIL_STUDIENINFORMATION_ANZEIGEN',true);
// Zeitaufzeichnung gesperrt_bis Datum YYYY-MM-DD
define('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS','');
// maximale Dauer einer Zeitsperre in Tagen
define('CIS_ZEITSPERREN_MAX_DAUER', 730);
// Anzeige des Links zur Noteneingabe in der LVA Uebersicht
define('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN',true);
+1 -1
View File
@@ -212,7 +212,7 @@
<!ENTITY menu-dokumente-diplsupplement.accesskey "S">
<!ENTITY menu-dokumente-antrag.key "N">
<!ENTITY menu-dokumente-antrag.label "Antrag">
<!ENTITY menu-dokumente-antrag.label "Verwaltung des Studierendenstatus">
<!ENTITY menu-dokumente-antrag.accesskey "N">
<!ENTITY menu-dokumente-antrag-abmeldung.key "A">
+1
View File
@@ -26,6 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='Von-Datum Monat';
$this->phrasen['zeitsperre/bisDatumMonat']='Bis-Datum Monat';
$this->phrasen['zeitsperre/istGroesserAlsBisDatum']='ist größer als das Bis-Datum';
$this->phrasen['zeitsperre/vonDatum']='Von-Datum';
$this->phrasen['zeitsperre/bisDatumGroesserMax']='BisDatum liegt zu weit in der Zukunft, nicht zulässig!';
$this->phrasen['zeitsperre/resturlaubstage']='Resturlaubstage';
$this->phrasen['zeitsperre/aktuellerStand']='aktueller Stand';
+1
View File
@@ -26,6 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='From-date month';
$this->phrasen['zeitsperre/bisDatumMonat']='To-date month';
$this->phrasen['zeitsperre/istGroesserAlsBisDatum']='is later than To-date';
$this->phrasen['zeitsperre/vonDatum']='From-date';
$this->phrasen['zeitsperre/bisDatumGroesserMax']='TO-Date value is too far in the future, action not permitted';
$this->phrasen['zeitsperre/resturlaubstage']='Carry-over days';
$this->phrasen['zeitsperre/aktuellerStand']='Available vacation';
@@ -44,7 +44,10 @@ export default {
this.table.replaceData(this.ajaxUrl + (stg || ''));
},
download() {
this.table.download("csv", "data.csv");
this.table.download("csv", "data.csv", {
delimiter: ';',
bom: true
});
},
getHistory() {
if (this.lastHistoryClickedId === null)
+31
View File
@@ -34,6 +34,7 @@ require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/addon.class.php');
require_once('../../include/benutzerfunktion.class.php');
require_once('../../include/phrasen.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -63,6 +64,16 @@ $message='';
$error=false;
$mlAbgeschickt = '';
//Phrasen
$sprache = getSprache();
$p = new phrasen($sprache);
//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar
$maxDauerZS = 730;
if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') {
$maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER;
}
//prüfen, ob addon casetime aktiviert ist
$addon_obj = new addon();
$addoncasetime = $addon_obj->checkActiveAddon("casetime");
@@ -205,6 +216,24 @@ if(isset($_POST['save']))
if(!$berechtigt)
die('Sie haben keine Berechtigung für diese Aktion');
//Validierungen Felder Bis-Datum und Von-Datum
if($vondatum > $bisdatum)
{
$errormsg = $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! ';
$error=true;
}
//Check if Bisdatum zu weit in der Zukunft
$von = new DateTime($vondatum);
$bis = new DateTime($bisdatum);
$intervall = $bis->diff($von);
if ($intervall->days > $maxDauerZS)
{
$error=true;
$errormsg = $p->t('zeitsperre/bisDatumGroesserMax');
}
//Speichern der Daten
$zeitsperre = new zeitsperre();
@@ -225,6 +254,8 @@ if(isset($_POST['save']))
$zeitsperre->mitarbeiter_uid=$uid;
}
if(!$error)
{
$zeitsperre->zeitsperretyp_kurzbz=$zeitsperretyp_kurzbz;