Merge branch 'master' into timesheet

This commit is contained in:
Gerald Raab
2018-08-09 15:50:02 +02:00
358 changed files with 6236 additions and 4995 deletions
+7 -2
View File
@@ -324,7 +324,12 @@ class benutzer extends person
(SELECT planbezeichnung FROM public.tbl_mitarbeiter
LEFT JOIN public.tbl_ort USING (ort_kurzbz)
WHERE mitarbeiter_uid=tbl_benutzer.uid) as raum
WHERE mitarbeiter_uid=tbl_benutzer.uid) as raum,
(SELECT 1
FROM PUBLIC.tbl_mitarbeiter
WHERE mitarbeiter_uid = tbl_benutzer.uid
) AS is_mitarbeiter
FROM
public.tbl_person
JOIN public.tbl_benutzer USING(person_id)
@@ -346,7 +351,7 @@ class benutzer extends person
{
$qry.=" OR lower(uid) = lower(".$this->db_add_param($value).")";
}
$qry.=")) a ORDER BY nachname, vorname";
$qry.=")) a ORDER BY is_mitarbeiter, nachname, vorname";
if(!is_null($limit) && is_numeric($limit))
$qry.=" LIMIT ".$limit;
+247 -223
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -382,7 +382,8 @@ class dokument_export
if($this->styles_xsl!='')
unlink('styles.xml');
unlink($this->temp_filename);
if(file_exists($this->temp_filename))
unlink($this->temp_filename);
if($this->signed_filename != '')
unlink($this->signed_filename);
+5 -5
View File
@@ -32,11 +32,11 @@ require_once(dirname(__FILE__).'/prestudent.class.php');
class dvb extends basis_db
{
const DVB_URL_WEBSERVICE_OAUTH = 'https://stubei-q.portal.at/dvb/oauth/token';
const DVB_URL_WEBSERVICE_SVNR = 'https://stubei-q.portal.at/rws/0.2/simpleStudentBySozialVersicherungsnummer.xml';
const DVB_URL_WEBSERVICE_ERSATZKZ = 'https://stubei-q.portal.at/rws/0.2/simpleStudentByErsatzKennzeichen.xml';
const DVB_URL_WEBSERVICE_RESERVIERUNG = 'https://stubei-q.portal.at/dvb/matrikelnummern/1.0/reservierung.xml';
const DVB_URL_WEBSERVICE_MELDUNG = 'https://stubei-q.portal.at/dvb/matrikelnummern/1.0/meldung.xml';
const DVB_URL_WEBSERVICE_OAUTH = DVB_PORTAL.'/dvb/oauth/token';
const DVB_URL_WEBSERVICE_SVNR = DVB_PORTAL.'/rws/0.2/simpleStudentBySozialVersicherungsnummer.xml';
const DVB_URL_WEBSERVICE_ERSATZKZ = DVB_PORTAL.'/rws/0.2/simpleStudentByErsatzKennzeichen.xml';
const DVB_URL_WEBSERVICE_RESERVIERUNG = DVB_PORTAL.'/dvb/matrikelnummern/1.0/reservierung.xml';
const DVB_URL_WEBSERVICE_MELDUNG = DVB_PORTAL.'/dvb/matrikelnummern/1.0/meldung.xml';
public $authentication;
private $username;
+12 -23
View File
@@ -1,10 +1,4 @@
<?php
// Auth: Benutzer des Webportals
define ('USER_UID','strtolower(trim($_SERVER["REMOTE_USER"]))');
// fuer Testzwecke
//define ('USER_UID','pam');
// Hintergrundfarben fuer Tabellen beim Zeitwunsch
global $cfgStdBgcolor;
$cfgStdBgcolor=array();
@@ -68,25 +62,20 @@
$monatsname[2][9]="October";
$monatsname[2][10]="November";
$monatsname[2][11]="December";
$monatsname[4][0]="Gennaio";
$monatsname[4][1]="Febbraio";
$monatsname[4][2]="Marzo";
$monatsname[4][3]="Aprile";
$monatsname[4][4]="Maggio";
$monatsname[4][5]="Giunio";
$monatsname[4][6]="Luglio";
$monatsname[4][7]="Agosto";
$monatsname[4][8]="Settembre";
$monatsname[4][9]="Ottobre";
$monatsname[4][10]="Novembre";
$monatsname[4][11]="Dicembre";
//$monatsname = array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$monatsname[4][0]="Gennaio";
$monatsname[4][1]="Febbraio";
$monatsname[4][2]="Marzo";
$monatsname[4][3]="Aprile";
$monatsname[4][4]="Maggio";
$monatsname[4][5]="Giunio";
$monatsname[4][6]="Luglio";
$monatsname[4][7]="Agosto";
$monatsname[4][8]="Settembre";
$monatsname[4][9]="Ottobre";
$monatsname[4][10]="Novembre";
$monatsname[4][11]="Dicembre";
// Studiengaenge die keine Alias Email Adressen erhalten
$noalias=array();
//$noalias[0]='330';
//$noalias[1]='331';
//$noalias[2]='204';
?>
+79
View File
@@ -76,6 +76,85 @@ class personlog extends basis_db
$this->errormsg = 'Fehler beim Speichern des Logeintrages';
return false;
}
}
/**
* Laedt die Log-Einträge einer Person.
* Optional können weitere Paramenter übergeben werden.
*
* @param integer $person_id ID der Person.
* @param string $logtype_kurzbz Typ des Logeintrages
* @param array $logdata Array mit den zusaetzlichen Logdaten zu diesem Typ.
* @param string $taetigkeit_kurzbz Kurzbz der Verarbeitungstaetigkeit.
* @param string $app Applikation von der dieser Logeintrag stammt.
* @param string $oe_kurzbz Kurzbz der Organisationseinheit. (optional)
* @param string $user User der die Aktion durchgefuehrt hat. (optional)
* @return boolean true wenn erfolgreich, false im Fehlerfall.
*/
public function getLog($person_id, $app = null, $logtype_kurzbz = null, $logdata = null, $taetigkeit_kurzbz = null, $oe_kurzbz = null, $order = 'zeitpunkt DESC')
{
if (! is_numeric($person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM system.tbl_log
WHERE
person_id=" . $this->db_add_param($person_id, FHC_INTEGER);
if ($app != null)
$qry .= " AND app=" . $this->db_add_param($app);
if ($logtype_kurzbz != null)
$qry .= " AND logtype_kurzbz=" . $this->db_add_param($logtype_kurzbz);
if ($logdata != null)
{
if (is_array($logdata))
{
foreach ($logdata AS $key => $value)
$qry .= " AND logdata ->> " . $this->db_add_param($key) . " = " . $this->db_add_param($value);
}
else
{
$this->errormsg = 'Logdata muss ein Array sein';
return false;
}
}
if ($taetigkeit_kurzbz != null)
$qry .= " AND taetigkeit_kurzbz=" . $this->db_add_param($taetigkeit_kurzbz);
if ($oe_kurzbz != null)
$qry .= " AND oe_kurzbz=" . $this->db_add_param($oe_kurzbz);
$qry .= " ORDER BY " . $order;
if ($this->db_query($qry))
{
while ($row = $this->db_fetch_object())
{
$log = new personlog();
$log->log_id = $row->log_id;
$log->person_id = $row->person_id;
$log->zeitpunkt = $row->zeitpunkt;
$log->app = $row->app;
$log->oe_kurzbz = $row->oe_kurzbz;
$log->logtype_kurzbz = $row->logtype_kurzbz;
$log->logdata = $row->logdata;
$log->insertvon = $row->insertvon;
$log->taetigkeit_kurzbz = $row->taetigkeit_kurzbz;
$this->logs[] = $log;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der LogDaten';
return false;
}
}
/**
+4 -1
View File
@@ -445,6 +445,8 @@ class prestudent extends person
if($this->db_query($qry))
{
$this->num_rows=0;
while($row = $this->db_fetch_object())
{
$rolle = new prestudent();
@@ -468,6 +470,7 @@ class prestudent extends person
$rolle->rt_stufe = $row->rt_stufe;
$rolle->statusgrund_id = $row->statusgrund_id;
$this->result[] = $rolle;
$this->num_rows++;
}
return true;
}
@@ -1898,7 +1901,7 @@ class prestudent extends person
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Loeschen der Daten';
$this->errormsg = 'Fehler beim Loeschen des PreStudenten';
return false;
}
}
+66
View File
@@ -823,4 +823,70 @@ class student extends benutzer
return false;
}
}
/**
* Checkt, ob ein Student schon BIS-Gemeldet wurde.
*
* @param string $uid
* @return boolean True, wenn er schon gemeldet wurde, False, wenn nicht und Null im Fehlerfall
*/
public function isStudentBisGemeldet($uid)
{
$qry = "SELECT datum
FROM PUBLIC.tbl_student
JOIN PUBLIC.tbl_prestudent USING (prestudent_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE student_uid = " . $this->db_add_param($uid) . "
AND status_kurzbz = 'Student'
AND bismelden = true
ORDER BY ausbildungssemester ASC LIMIT 1";
// Datum der letzten BIS-Meldung herausfinden
$datumLetzteMeldung = '';
$datumNovemberVorjahr = date('Y', strtotime("-1 year")).'-11-15';
$datumApril = date('Y').'-04-15';
$datumNovember = date('Y').'-11-15';
$timestampNovemberVorjahr = strtotime(date('Y', strtotime("-1 year")).'-11-15');
$timestampApril = strtotime(date('Y').'-04-15');
$timestampNovember = strtotime(date('Y').'-11-15');
$heute = time();
if ($heute - $timestampNovemberVorjahr >= $heute - $timestampApril &&
$heute - $timestampApril < 0)
$datumLetzteMeldung = $datumNovemberVorjahr;
elseif ($heute - $timestampApril >= $heute - $timestampNovember &&
$heute - $timestampNovember < 0)
$datumLetzteMeldung = $datumApril;
else
$datumLetzteMeldung = $datumNovember;
if($result = $this->db_query($qry))
{
if($this->db_num_rows($result) > 0)
{
if($row = $this->db_fetch_object($result))
{
// Wenn der Studentenstatus kleiner oder gleich dem Datum der letzten Meldung ist, wurde der Student gemeldet
if (strtotime($row->datum) <= strtotime($datumLetzteMeldung))
return true;
else
return false;
}
else
{
$this->errormsg = 'Es wurde kein Datum oder Student gefunden';
return null;
}
}
else
return null;
}
else
{
$this->errormsg = 'Fehler beim ausführen der Abfrage';
return null;
}
}
}