Compare commits

...

18 Commits

Author SHA1 Message Date
Cris 3c225a6723 Merge branch 'master' into feature-39158/Sonstiges-Sprint-217 2024-04-09 11:39:57 +02:00
Cris 3358c91907 Added app softwarebereitstellung to dbupdate_3.4.php 2024-04-09 11:38:45 +02:00
Cris 1d0c2be449 Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-04-09 11:33:38 +02:00
Andreas Österreicher bdb0a5702d Fehler behoben wodurch keine Note im Freigabemail angezeigt wurde
Fehler behoben wodurch keine Punkteübernahme bie Nachprüfungen möglich
war
2024-04-09 11:24:44 +02:00
Andreas Österreicher 8a9477eaf0 Fixed PHP7.4 Warning 2024-04-08 12:54:05 +02:00
Andreas Österreicher 257c7a5aac Projektzeitenexport für Administration/HR im Vilesci hinzugefügt 2024-04-05 14:14:13 +02:00
Cris a566f3cc57 Bugfix Zeitaufzeichnung auf Projekt ohne Phase 2024-04-04 12:09:09 +02:00
Cris cfe73b361e Sorted project phases by start date and bezeichnung in Zeitaufzeichnung
Sorted within dropdown
2024-04-03 15:13:32 +02:00
Cris a2791fecd1 Sorted projects in alphabetical order in Zeitaufzeichnung
Sorted within dropdown and in project cvs export file.
2024-04-03 13:10:30 +02:00
Cris d2a8d59f6d Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-04-03 12:59:00 +02:00
Cris 8d8e45b6de Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-03-28 13:20:16 +01:00
Cris 0940ea77de Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-03-06 13:59:06 +01:00
Cris 7f735e9a10 Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-03-05 13:05:03 +01:00
Cris 91f43665fd Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-02-13 10:54:14 +01:00
Cris 7e14fff7f3 Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-01-30 17:18:55 +01:00
Cris af010a51e9 Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-01-17 11:33:54 +01:00
Cris 579c1c6aff Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2024-01-15 10:28:10 +01:00
Cris 8a29146fc2 Merge branch 'master' of https://github.com/FH-Complete/FHC-Core 2023-12-06 14:42:45 +01:00
12 changed files with 211 additions and 35 deletions
@@ -102,6 +102,22 @@ $noten_obj->getAll();
$sprachen = new sprache();
$sprachen->getAll(true);
$noten_array = array();
$js_noten='';
foreach ($noten_obj->result as $row)
{
$js_noten .= " noten_array['" . $row->note . "']='" . addslashes($row->bezeichnung) . "';\n";
$noten_array[$row->note]['bezeichnung'] = $row->bezeichnung;
$noten_array[$row->note]['positiv'] = $row->positiv;
$noten_array[$row->note]['aktiv'] = $row->aktiv;
$noten_array[$row->note]['lehre'] = $row->lehre;
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
foreach ($sprachen->result as $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
}
$errormsg = '';
// eingetragene lv-gesamtnoten freigeben
@@ -326,19 +342,7 @@ echo '<!DOCTYPE HTML>
var noten_array = Array();
';
$noten_array = array();
foreach ($noten_obj->result as $row)
{
echo " noten_array['" . $row->note . "']='" . addslashes($row->bezeichnung) . "';\n";
$noten_array[$row->note]['bezeichnung'] = $row->bezeichnung;
$noten_array[$row->note]['positiv'] = $row->positiv;
$noten_array[$row->note]['aktiv'] = $row->aktiv;
$noten_array[$row->note]['lehre'] = $row->lehre;
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
foreach ($sprachen->result as $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
}
echo $js_noten;
?>
@@ -806,16 +810,16 @@ foreach ($noten_obj->result as $row)
for(row in rows)
{
linenumber++;
if( rows[row] == '' )
if( rows[row] == '' )
{
//skip empty lines
continue;
}
zeile = rows[row].split(" ");
if( zeile.length < 2 )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ 'Zu wenig Paramter - 2 erforderlich. '
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
continue;
@@ -917,36 +921,36 @@ foreach ($noten_obj->result as $row)
for(row in rows)
{
linenumber++;
if( rows[row] == '' )
if( rows[row] == '' )
{
//skip empty lines
continue;
}
zeile = rows[row].split(" ");
if( zeile.length < 3 )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ 'Zu wenig Paramter - 3 erforderlich. '
+ 'Die Zeile wurde uebersprungen.' + "\n\n";
continue;
}
if( zeile[1] == '' && zeile[2] == '' )
{
// ignore lines just copied from excel
// ignore lines just copied from excel
continue;
}
if( zeile[2] == '' )
if( zeile[2] == '' )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Die Note oder Punkte fehlen. "
+ "Die Zeile wurde uebersprungen. \n\n";
continue;
continue;
}
if (CIS_GESAMTNOTE_PUNKTE == false)
if (CIS_GESAMTNOTE_PUNKTE == false)
{
// check for valid grades
if (validGrades.indexOf(zeile[2]) === -1)
@@ -958,7 +962,7 @@ foreach ($noten_obj->result as $row)
}
}
if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
{
alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ "Das Datum "+zeile[1]+" fehlt oder ist nicht zulaessig. "
@@ -251,7 +251,7 @@ else
// deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
$lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note);
$response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte);
echo $response;
}
else
-2
View File
@@ -1222,7 +1222,6 @@ if ($projekt->getProjekteMitarbeiter($user, true))
<td colspan="4"><SELECT name="projekt" id="projekt">
<OPTION value="">-- '.$p->t('zeitaufzeichnung/keineAuswahl').' --</OPTION>';
sort($projekt->result);
$projektfound = false;
foreach ($projekt->result as $row_projekt)
{
@@ -1976,7 +1975,6 @@ function getDataForProjectOverviewCSV($user)
}
}
sort($csvData);
//headers schreiben
$header = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE');
@@ -60,7 +60,7 @@ if (isset($_GET['uid']))
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if ($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr)))
if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/zeitsperre') || (in_array($_GET['uid'], $untergebenen_arr)))
{
$uid = $_GET['uid'];
}
+2
View File
@@ -413,6 +413,8 @@ class projekt extends basis_db
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
}
$qry .= ' ORDER BY titel';
if ($result = $this->db_query($qry))
{
while ($row = $this->db_fetch_object($result))
+3 -2
View File
@@ -190,7 +190,7 @@ class projektphase extends basis_db
if(!is_null($foreignkey))
$qry .= " and projektphase_fk is NULL";
$qry .= " ORDER BY start, projektphase_fk DESC;";
$qry .= " ORDER BY tbl_projektphase.start, tbl_projektphase.bezeichnung, projektphase_fk DESC;";
if($this->db_query($qry))
{
@@ -794,7 +794,8 @@ class projektphase extends basis_db
)
)
AND mitarbeiter_uid = ".$this->db_add_param($mitarbeiter_uid)."
AND tbl_projekt.projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz);
AND tbl_projekt.projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz). "
ORDER BY tbl_projektphase.start, tbl_projektphase.bezeichnung";
if($result = $this->db_query($qry))
{
+1
View File
@@ -120,6 +120,7 @@ $menu=array
'name'=>'Mitarbeiter','permissions'=>array('admin','mitarbeiter','support'),
'Übersicht'=>array('name'=>'Übersicht', 'link'=>'personen/lektor_uebersicht.php', 'target'=>'main'),
'Zeitsperren'=>array('name'=>'Zeitsperren/Urlaub', 'link'=>'personen/urlaubsverwaltung.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre:begrenzt')),
'Projektexport'=>array('name'=>'Projektexport', 'link'=>'personen/projektexport.php', 'target'=>'main','permissions'=>array('mitarbeiter/zeitsperre')),
),
'Betriebsmittel'=>array('name'=>'Betriebsmittel', 'link'=>'stammdaten/betriebsmittel_frameset.php', 'target'=>'main','permissions'=>array('basis/betriebsmittel')),
'AnwesenheitslistenBarcode'=>array('name'=>'Anwesenheitslisten mit Barcodes', 'link'=>'personen/anwesenheitslisten_barcode.php', 'target'=>'main','permissions'=>array('basis/person')),
@@ -71,9 +71,9 @@ class zeitaufzeichnung_import_post extends zeitaufzeichnung_import {
$this->checkPhaseInterval($this->data['projektphase_id'], $this->data['von'], $this->data['bis']);
$this->checkDienstreise($this->data['von'], $this->data['bis'], $this->data['aktivitaet_kurzbz']);
$this->checkTagesgenau($this->data['bis']);
$this->checkIfArbeitspaketZuWaehlen($this->data['projekt_kurzbz'], $this->data['projektphase_id']); // TODO löst check aus
$this->processPause($this->data['von_pause'], $this->data['bis_pause']);
$this->checkPhaseBebuchbar($this->data['projektphase_id']);
$this->checkIfArbeitspaketZuWaehlen($this->data['projekt_kurzbz'], $this->data['projektphase_id']);
$this->saveZeit();
} catch (Exception $ex) {
$this->addError($ex->getMessage());
+1
View File
@@ -54,6 +54,7 @@ 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/37558_softwarebereitstellung.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -0,0 +1,17 @@
<?php
if (! defined('DB_NAME')) exit('No direct script access allowed');
if ($result = @$db->db_query("SELECT 1 FROM system.tbl_app WHERE app='softwarebereitstellung' LIMIT 1"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = "INSERT INTO system.tbl_app(app) VALUES('softwarebereitstellung');";
if(!$db->db_query($qry))
echo '<strong>system.tbl_app: '.$db->db_last_error().'</strong><br>';
else
echo ' system.tbl_app: softwarebereitstellung hinzugefügt<br>';
}
}
+1 -1
View File
@@ -48,7 +48,7 @@ foreach ($cj->result as $cronjob)
if($cronjob->execute())
{
echo "\n".date('d.m.Y H:i:s').' '.$cronjob->titel.'('.$cronjob->cronjob_id.') executed<br>'."\n";
echo implode($cronjob->output,"\n");
echo implode("\n",$cronjob->output);
}
else
{
+152
View File
@@ -0,0 +1,152 @@
<?php
/* Copyright (C) 2024 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
*/
/**
*
* Export von Projektlisten für HR
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/zeitsperre.class.php');
require_once('../../include/person.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/mitarbeiter.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzerfunktion.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
$user = get_uid();
$datum = new datum();
//Rechte Pruefen
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
if(!$rechte->isBerechtigt('mitarbeiter/zeitsperre'))
die($rechte->errormsg);
//Kopfzeile
echo '<html>
<head>
<title>Zeitsperren (Urlaube) der MitarbeiterInnen</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
<link rel="stylesheet" href="../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">';
include('../../include/meta/jquery.php');
include('../../include/meta/jquery-tablesorter.php');
echo ' <script type="text/javascript" src="../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script language="Javascript">
$(document).ready(function()
{
$("#ma_name").autocomplete({
source: "../../cis/private/tools/zeitaufzeichnung_autocomplete.php?autocomplete=kunde",
minLength:2,
response: function(event, ui)
{
//Value und Label fuer die Anzeige setzen
for(i in ui.content)
{
ui.content[i].value=ui.content[i].uid;
ui.content[i].label=ui.content[i].vorname+" "+ui.content[i].nachname+" ("+ui.content[i].uid+")";
}
},
select: function(event, ui)
{
//Ausgeaehlte Ressource zuweisen und Textfeld wieder leeren
$("#ma_name").val(ui.item.uid);
}
});
$("#t1").tablesorter(
{
sortList: [[3,1]],
widgets: [\'zebra\', \'filter\'],
headers : { 3 : { sorter: "shortDate", dateFormat: "ddmmyyyy" },4 : { sorter: "shortDate", dateFormat: "ddmmyyyy" } }
});
$( ".datepicker_datum" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
});
})
</script>
</head>
<body class="Background_main">
<h2>Projektexport</h2>
Wähle einen Mitarbeiter und einen Zeitraum um die Projektliste für diesen Monat zu erstellen.<br /><br />
';
$redirect = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
echo '<form accept-charset="UTF-8" action="../../cis/private/tools/zeitaufzeichnung_projektliste.php" method="GET" taget="_blank">
<table>
<tr>
<td>
User
</td>
<td>
<input type="text" id="ma_name" name="uid">
</td>
</tr>
<tr>
<td>Monat</td>
<td>
<select name="projexpmonat" >
<option value="1">Jänner</option>
<option value="2">Februar</option>
<option value="3">März</option>
<option value="4">April</option>
<option value="5">Mai</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">August</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Dezember</option>
</select>
</td>
</tr>
<tr>
<td>Jahr</td>
<td>
<input type="text" name="projexpjahr" value="'.date('Y').'" size="4"/>
</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Export" name="export">
</td>
</tr>
</table>
</form>';
echo '</body></html>';
?>