- MitarbeiterModul FASo

- Jahresplan aktualisiert
This commit is contained in:
Andreas Österreicher
2007-06-27 15:22:57 +00:00
parent 51a853bd30
commit 452e6fa460
20 changed files with 1796 additions and 123 deletions
+37 -1
View File
@@ -1,4 +1,25 @@
<?php
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
function db_query($conn, $sql_query)
{
if (!$result=pg_query($conn, $sql_query))
@@ -109,7 +130,7 @@ function jump_week($datum, $wochen)
}
function jahreskalenderjump($link)
{
{
$crlf=crlf();
$datum=mktime();
$woche=kalenderwoche($datum);
@@ -201,4 +222,19 @@ function getStudiensemesterFromDatum($conn, $datum, $naechstes=true)
else
return false;
}
// ***************************************************************
// * Diese Funktion liefert sowohl bei UTF-8 als auch
// * bei Latin9 die richtige Anzahl der Zeichen
// * (das normale strlen liefert bei UTF-8 Zeichen falsche Werte.)
// ***************************************************************
function utf8_strlen($str)
{
$count = 0;
for ($i = 0; $i < strlen($str); ++$i)
if ((ord($str[$i]) & 0xC0) != 0x80)
++$count;
return $count;
}
?>
+94 -9
View File
@@ -19,7 +19,11 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Benoetigt: person.class.php
* benutzer.class.php
* functions.inc.php
*/
class mitarbeiter extends benutzer
{
var $new;
@@ -36,6 +40,8 @@ class mitarbeiter extends benutzer
var $telefonklappe; //varchar(25)
var $ort_kurzbz; //varchar(8)
var $ext_id_mitarbeiter; //bigint
var $stundensatz;
var $anmerkung;
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter
@@ -80,11 +86,13 @@ class mitarbeiter extends benutzer
$this->ausbildungcode = $row->ausbildungcode;
$this->personalnummer = $row->personalnummer;
$this->kurzbz = $row->kurzbz;
$this->lektor = $row->lektor;
$this->fixangestellt = $row->fixangestellt;
$this->lektor = ($row->lektor=='t'?true:false);
$this->fixangestellt = ($row->fixangestellt=='t'?true:false);
$this->standort_kurzbz = $row->standort_kurzbz;
$this->telefonklappe = $row->telefonklappe;
$this->ort_kurzbz = $row->ort_kurzbz;
$this->stundensatz = $row->stundensatz;
$this->anmerkung = $row->anmerkung;
$this->ext_id_mitarbeiter = $row->ext_id;
return true;
}
@@ -107,7 +115,7 @@ class mitarbeiter extends benutzer
// ************************************************
function validate()
{
if(strlen($this->uid)>16)
if(utf8_strlen($this->uid)>16)
{
$this->errormsg = "ID darf nicht laenger als 16 Zeichen sein\n";
return false;
@@ -127,12 +135,12 @@ class mitarbeiter extends benutzer
$this->errormsg = "Personalnummer muss eine gueltige Zahl sein\n";
return false;
}
if(strlen($this->kurzbz)>8)
if(utf8_strlen($this->kurzbz)>8)
{
$this->errormsg = "kurzbz darf nicht laenger als 8 Zeichen sein\n";
return false;
}
if(strlen($this->ort_kurzbz)>8)
if(utf8_strlen($this->ort_kurzbz)>8)
{
$this->errormsg = "Ort_kurzbz darf nicht laenger als 8 Zeichen sein\n";
return false;
@@ -147,12 +155,12 @@ class mitarbeiter extends benutzer
$this->errormsg = "fixangestellt muss boolean sein\n";
return false;
}
if(strlen($this->telefonklappe)>25)
if(utf8_strlen($this->telefonklappe)>25)
{
$this->errormsg = "telefonklappe darf nicht laenger als 25 Zeichen sein\n";
return false;
}
if(strlen($this->updatevon)>32)
if(utf8_strlen($this->updatevon)>32)
{
$this->errormsg = "updatevon darf nicht laenger als 32 Zeichen sein\n";
return false;
@@ -185,7 +193,7 @@ class mitarbeiter extends benutzer
//Neuen Datensatz anlegen
$qry = "INSERT INTO public.tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
fixangestellt, standort_kurzbz, telefonklappe, updateamum, updatevon, ext_id)
fixangestellt, standort_kurzbz, telefonklappe, anmerkung, stundensatz updateamum, updatevon, ext_id)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->ausbildungcode).",".
@@ -196,6 +204,8 @@ class mitarbeiter extends benutzer
($this->fixangestellt?'true':'false').','.
$this->addslashes($this->standort_kurzbz).','.
$this->addslashes($this->telefonklappe).','.
$this->addslashes($this->anmerkung).','.
$this->addslashes($this->stundensatz).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).', '.
$this->addslashes($this->ext_id_mitarbeiter).');';
@@ -212,6 +222,8 @@ class mitarbeiter extends benutzer
' standort_kurzbz='.$this->addslashes($this->standort_kurzbz).','.
' telefonklappe='.$this->addslashes($this->telefonklappe).','.
' ort_kurzbz='.$this->addslashes($this->ort_kurzbz).','.
' anmerkung='.$this->addslashes($this->anmerkung).','.
' stundensatz='.$this->addslashes($this->stundensatz).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' ext_id='.$this->addslashes($this->ext_id_mitarbeiter).
@@ -510,5 +522,78 @@ class mitarbeiter extends benutzer
return false;
}
}
function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $ausgeschieden, $studiensemester_kurzbz)
{
$qry = "SELECT *, tbl_benutzer.aktiv as aktiv FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) WHERE true";
if($fix)
$qry .= " AND fixangestellt=true";
if($stgl)
$qry .= " AND funktion_kurzbz='stgl'";
if($fbl)
$qry .= " AND funktion_kurzbz='fbl'";
if($aktiv=='true')
$qry .= " AND tbl_benutzer.aktiv=true";
if($aktiv=='false')
$qry .= " AND tbl_benutzer.aktiv=false";
if($karenziert)
$qry .= " AND uid IN (SELECT mitarbeiter_uid FROM bis.tbl_bisverwendung WHERE beginn<(SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz') AND ende<(SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz='$studiensemester_kurzbz'))";
if($ausgeschieden)
{
//ToDo:
}
//echo $qry;
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$obj = new mitarbeiter($this->conn, null, null);
$obj->person_id = $row->person_id;
$obj->staatsbuergerschaft = $row->staatsbuergerschaft;
$obj->geburtsnation = $row->geburtsnation;
$obj->sprache = $row->sprache;
$obj->anrede = $row->anrede;
$obj->titelpost = $row->titelpost;
$obj->titelpre = $row->titelpre;
$obj->nachname = $row->nachname;
$obj->vorname = $row->vorname;
$obj->vornamen = $row->vornamen;
$obj->gebdatum = $row->gebdatum;
$obj->gebort = $row->gebort;
$obj->gebzeit = $row->gebzeit;
$obj->anmerkungen = $row->anmerkungen;
$obj->homepage = $row->anmerkungen;
$obj->svnr = $row->svnr;
$obj->ersatzkennzeichen = $row->ersatzkennzeichen;
$obj->familienstand = $row->familienstand;
$obj->geschlecht = $row->geschlecht;
$obj->anzahlkinder = $row->anzahlkinder;
$obj->aktiv = ($row->aktiv=='t'?true:false);
$obj->uid = $row->uid;
$obj->personalnummer = $row->personalnummer;
$obj->telefonklappe = $row->telefonklappe;
$obj->kurzbz = $row->kurzbz;
$obj->lektor = ($row->lektor=='t'?true:false);
$obj->fixangestellt = ($row->fixangestellt=='t'?true:false);
$obj->stundensatz = $row->stundensatz;
$obj->ausbildungcode = $row->ausbildungcode;
$obj->ort_kurzbz = $row->ort_kurzbz;
$obj->standort_kurzbz = $row->standort_kurzbz;
$obj->anmerkung = $row->anmerkung;
$obj->alias = $row->alias;
$this->result[] = $obj;
}
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
?>
+29 -8
View File
@@ -41,16 +41,33 @@ class ort
var $lageplan; // @var oid
var $dislozierung; // @var smallint
var $kosten; // @var numeric(8,2)
var $reservieren;
var $ausstattung;
/**
* Konstruktor
* @param $conn Connection zur DB
* $fachb_id ID des zu ladenden Ortes
* $ort_kurzbz Kurzbz des zu ladenden Ortes
*/
function ort($conn, $ort_kurzbz=null)
function ort($conn, $ort_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
if($unicode!=null)
{
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE'";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9'";
if(!pg_query($this->conn, $qry))
{
$this->errormsg ='Fehler beim Setzen des Encodings';
return false;
}
}
if($ort_kurzbz != null)
$this->load($ort_kurzbz);
}
@@ -77,11 +94,13 @@ class ort
$ort_obj->bezeichnung = $row->bezeichnung;
$ort_obj->planbezeichnung = $row->planbezeichnung;
$ort_obj->max_person = $row->max_person;
$ort_obj->aktiv = $row->aktiv;
$ort_obj->lehre = $row->lehre;
$ort_obj->aktiv = ($row->aktiv=='t'?true:false);
$ort_obj->lehre = ($row->lehre=='t'?true:false);
$ort_obj->lageplan = $row->lageplan;
$ort_obj->dislozierung = $row->dislozierung;
$ort_obj->kosten = $row->kosten;
$ort_obj->reservieren = ($row->reservieren=='t'?true:false);
$ort_obj->ausstattung = $row->ausstattung;
$this->result[] = $ort_obj;
}
@@ -115,11 +134,13 @@ class ort
$this->bezeichnung = $row->bezeichnung;
$this->planbezeichnung = $row->planbezeichnung;
$this->max_person = $row->max_person;
$this->aktiv = $row->aktiv;
$ort_obj->lehre = $row->lehre;
$this->aktiv = ($row->aktiv=='t'?true:false);
$ort_obj->lehre = ($row->lehre=='t'?true:false);
$this->lageplan = $row->lageplan;
$this->dislozierung = $row->dislozierung;
$this->kosten = $row->kosten;
$this->dislozierung = $row->dislozierung;
$this->kosten = $row->kosten;
$this->reservieren = ($row->reservieren=='t'?true:false);
$this->ausstattung = $row->ausstattung;
}
else
{
+20 -17
View File
@@ -19,6 +19,9 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/*
* Benoetigt functions.inc.php
*/
class person
{
@@ -156,27 +159,27 @@ class person
// *******************************************
function validate()
{
if(strlen($this->sprache)>16)
if(utf8_strlen($this->sprache)>16)
{
$this->errormsg = "*****\nSprache darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->anrede)>16)
if(utf8_strlen($this->anrede)>16)
{
$this->errormsg = "*****\nAnrede darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->titelpost)>32)
if(utf8_strlen($this->titelpost)>32)
{
$this->errormsg = "*****\nTitelpost darf nicht laenger als 32 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->titelpre)>64)
if(utf8_strlen($this->titelpre)>64)
{
$this->errormsg = "*****\nTitelpre darf nicht laenger als 64 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->nachname)>64)
if(utf8_strlen($this->nachname)>64)
{
$this->errormsg = "*****\nNachname darf nicht laenger als 64 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
@@ -187,12 +190,12 @@ class person
return false;
}
if(strlen($this->vorname)>32)
if(utf8_strlen($this->vorname)>32)
{
$this->errormsg = "*****\nVorname darf nicht laenger als 32 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->vornamen)>128)
if(utf8_strlen($this->vornamen)>128)
{
$this->errormsg = "*****\nVornamen darf nicht laenger als 128 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
@@ -203,28 +206,28 @@ class person
$this->errormsg = "Geburtsdatum muss eingegeben werden\n";
return false;
}*/
if(strlen($this->gebort)>128)
if(utf8_strlen($this->gebort)>128)
{
$this->errormsg = "*****\nGeburtsort darf nicht laenger als 128 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->homepage)>256)
if(utf8_strlen($this->homepage)>256)
{
$this->errormsg = "*****\nHomepage darf nicht laenger als 256 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->svnr)>10)
if(utf8_strlen($this->svnr)>10)
{
$this->errormsg = "*****\nSVNR darf nicht laenger als 10 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
if(utf8_strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = "*****\nErsatzkennzeichen darf nicht laenger als 10 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->familienstand)>1)
if(utf8_strlen($this->familienstand)>1)
{
$this->errormsg = "*****\nFamilienstand ist ungueltig: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
@@ -239,12 +242,12 @@ class person
$this->errormsg = "*****\nAktiv ist ungueltig: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->insertvon)>16)
if(utf8_strlen($this->insertvon)>16)
{
$this->errormsg = "*****\nInsertvon darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->updatevon)>16)
if(utf8_strlen($this->updatevon)>16)
{
$this->errormsg = "*****\nUpdatevon darf nicht laenger als 16 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
@@ -254,17 +257,17 @@ class person
$this->errormsg = "*****\nExt_ID ist keine gueltige Zahl: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->geschlecht)>1)
if(utf8_strlen($this->geschlecht)>1)
{
$this->errormsg = "*****\ngeschlecht darf nicht laenger als 1 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->geburtsnation)>3)
if(utf8_strlen($this->geburtsnation)>3)
{
$this->errormsg = "*****\nGeburtsnation darf nicht laenger als 3 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
}
if(strlen($this->staatsbuergerschaft)>3)
if(utf8_strlen($this->staatsbuergerschaft)>3)
{
$this->errormsg = "*****\nStaatsbuergerschaft darf nicht laenger als 3 Zeichen sein: ".$this->nachname.", ".$this->vorname."\n*****\n";
return false;
+1 -1
View File
@@ -466,7 +466,7 @@ class prestudent extends person
if($semester!=null)
$qry.=" AND tbl_prestudentrolle.ausbildungssemester='$semester'";
//echo $qry;
echo $qry;
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))