Zeitaufzeichnung an Ressourcen angepasst

This commit is contained in:
Andreas Österreicher
2011-09-16 10:16:51 +00:00
parent dcd3e51908
commit 1347b89b2e
5 changed files with 124 additions and 133 deletions
+8 -4
View File
@@ -27,6 +27,9 @@
require_once('../../../include/fachbereich.class.php');
require_once('../../../include/zeitaufzeichnung.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/projekt.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
echo '
@@ -205,11 +208,12 @@ if(isset($_GET['type']) && $_GET['type']=='edit')
}
//Projekte holen fuer zu denen der Benutzer zugeteilt ist
$qry_projekt = "SELECT distinct tbl_projekt.* FROM fue.tbl_projektbenutzer JOIN fue.tbl_projekt USING(projekt_kurzbz) WHERE beginn<=now() AND (ende>=now() OR ende is null) AND uid='$user'";
$projekt = new projekt();
if($result_projekt = $db->db_query($qry_projekt))
if($projekt->getProjekteMitarbeiter($user))
{
if($db->db_num_rows($result_projekt)>0)
if(count($projekt->result)>0)
{
$bn = new benutzer();
if(!$bn->load($user))
@@ -224,7 +228,7 @@ if($result_projekt = $db->db_query($qry_projekt))
echo '<table>';
//Projekt
echo '<tr><td>Projekt</td><td><SELECT name="projekt" id="projekt">';
while($row_projekt = $db->db_fetch_object($result_projekt))
foreach($projekt->result as $row_projekt)
{
if($projekt_kurzbz == $row_projekt->projekt_kurzbz)
$selected = 'selected';
+50 -126
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
/* Copyright (C) 2011 FH 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
@@ -15,32 +15,33 @@
* 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>
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
/**
* Klasse projektarbeit
* @create 08-02-2007
* Klasse projekt
*
* Verwaltet die Projekte
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class projekt extends basis_db
{
public $new; // boolean
public $result = array(); // adresse Objekt
public $result = array(); // projekt Objekt
//Tabellenspalten
public $projekt_kurzbz; //string
public $nummer; //string
public $titel; //string
public $beschreibung; //string
public $beginn; //date
public $ende; //date
public $oe_kurzbz; //string
public $ext_id; // integer
public $insertamum; // timestamp
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $projekt_kurzbz; // string
public $nummer; // string
public $titel; // string
public $beschreibung; // string
public $beginn; // date
public $ende; // date
public $oe_kurzbz; // string
public $insertamum; // timestamp
public $insertvon; // string
public $updateamum; // timestamp
public $updatevon; // string
/**
@@ -56,15 +57,13 @@ class projekt extends basis_db
}
/**
* Laedt die Projektarbeit mit der ID $projekt_kurzbz
* @param $projekt_kurzbz ID der zu ladenden Projektarbeit
* Laedt die Projek mit der Kurzbezeichnung $projekt_kurzbz
* @param $projekt_kurzbz Kurzbz des Projekts
* @return true wenn ok, false im Fehlerfall
*/
public function load($projekt_kurzbz)
{
$qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=".$this->addslashes($projekt_kurzbz);
$qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz='".addslashes($projekt_kurzbz)."'";
if($this->db_query($qry))
{
@@ -94,15 +93,15 @@ class projekt extends basis_db
}
/**
* Laedt die Projektarbeit mit der ID $projekt_kurzbz
* @param $projekt_kurzbz ID der zu ladenden Projektarbeit
* Laedt die Projeke einer Organisationseinheit
* @param $projekt_kurzbz Kurzbezeichnung des Projekts
* @return true wenn ok, false im Fehlerfall
*/
public function getProjekte($oe=null,$uid=null)
public function getProjekte($oe=null)
{
$qry = 'SELECT * FROM fue.tbl_projekt';
if (!is_null($oe))
$qry.= " WHERE oe_kurzbz='$oe'";
$qry.= " WHERE oe_kurzbz='".addslashes($oe)."'";
$qry.= ' ORDER BY oe_kurzbz;';
//echo $qry;
if($this->db_query($qry))
@@ -185,7 +184,7 @@ class projekt extends basis_db
{
//Neuen Datensatz einfuegen
$qry='BEGIN; INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, oe_kurzbz) VALUES('.
$qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, oe_kurzbz) VALUES('.
$this->addslashes($this->projekt_kurzbz).', '.
$this->addslashes($this->nummer).', '.
$this->addslashes($this->titel).', '.
@@ -210,10 +209,7 @@ class projekt extends basis_db
}
if($this->db_query($qry))
{
if($new)
$this->db_query('COMMIT');
{
return true;
}
else
@@ -224,19 +220,14 @@ class projekt extends basis_db
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $projekt_kurzbz ID die geloescht werden soll
* Loescht den Datenensatz
* @param $projekt_kurzbz Projekt das geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
public function delete($projekt_kurzbz)
{
if(!is_numeric($projekt_kurzbz))
{
$this->errormsg = 'Projektarbeit_id ist ungueltig';
return true;
}
$qry = "DELETE FROM lehre.tbl_projektarbeit WHERE projekt_kurzbz='$projekt_kurzbz'";
$qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz='".addslashes($projekt_kurzbz)."'";
if($this->db_query($qry))
{
@@ -250,109 +241,42 @@ class projekt extends basis_db
}
/**
* Laedt alle Projektarbeiten eines Studenten
* @param student_uid
* @return true wenn ok, false wenn Fehler
* Liefert die Projekte zu denen ein Mitarbeiter zugeordnet ist
* @param $mitarbeiter_uid
*/
public function getProjektarbeit($student_uid)
{
$qry = "SELECT * FROM lehre.tbl_projektarbeit WHERE student_uid='".addslashes($student_uid)."'";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new projektarbeit();
$obj->projekt_kurzbz = $row->projekt_kurzbz;
$obj->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$obj->titel = $row->titel;
$obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id;
$obj->note = $row->note;
$obj->punkte = $row->punkte;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->faktor = $row->faktor;
$obj->freigegeben = ($row->freigegeben=='t'?true:false);
$obj->gesperrtbis = $row->gesperrtbis;
$obj->stundensatz = $row->stundensatz;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->themenbereich = $row->themenbereich;
$obj->anmerkung = $row->anmerkung;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Laedt alle Projektarbeiten eines Studienganges/Studiensemesters
* @param studiengang_kz, studiensemester_kurzbz
* @return true wenn ok, false wenn Fehler
*/
public function getProjektarbeitStudiensemester($studiengang_kz, $studiensemester_kurzbz)
function getProjekteMitarbeiter($mitarbeiter_uid)
{
$qry = "SELECT
tbl_projektarbeit.*
distinct tbl_projekt.*
FROM
lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE
tbl_projektarbeit.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id AND
tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang_kz)."' AND
tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
WHERE (beginn<=now() or beginn is null)
AND (ende>=now() OR ende is null)
AND mitarbeiter_uid='".addslashes($mitarbeiter_uid)."'";
if($this->db_query($qry))
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object())
while($row = $this->db_fetch_object($result))
{
$obj = new projektarbeit();
$obj = new projekt();
$obj->projekt_kurzbz = $row->projekt_kurzbz;
$obj->projekttyp_kurzbz = $row->projekttyp_kurzbz;
$obj->nummer = $row->nummer;
$obj->titel = $row->titel;
$obj->titel_english = $row->titel_english;
$obj->lehreinheit_id = $row->lehreinheit_id;
$obj->student_uid = $row->student_uid;
$obj->firma_id = $row->firma_id;
$obj->note = $row->note;
$obj->punkte = $row->punkte;
$obj->beschreibung = $row->beschreibung;
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->faktor = $row->faktor;
$obj->freigegeben = ($row->freigegeben=='t'?true:false);
$obj->gesperrtbis = $row->gesperrtbis;
$obj->stundensatz = $row->stundensatz;
$obj->gesamtstunden = $row->gesamtstunden;
$obj->themenbereich = $row->themenbereich;
$obj->anmerkung = $row->anmerkung;
$obj->ext_id = $row->ext_id;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->oe_kurzbz = $row->oe_kurzbz;
$this->result[] = $obj;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
$this->erromsg = 'Fehler beim Laden der Daten';
return false;
}
}
-1
View File
@@ -300,6 +300,5 @@ class ressource extends basis_db
return false;
}
}
}
?>
+2
View File
@@ -2712,6 +2712,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_ressource LIMIT 1;"))
ALTER TABLE fue.tbl_ressource ALTER COLUMN ressource_id SET DEFAULT nextval('fue.seq_ressource_ressource_id');
GRANT SELECT, UPDATE, INSERT, DELETE ON fue.tbl_ressource TO vilesci;
GRANT SELECT ON fue.tbl_ressource TO web;
GRANT SELECT, UPDATE ON SEQUENCE fue.seq_ressource_ressource_id TO web;
GRANT SELECT, UPDATE ON SEQUENCE fue.seq_ressource_ressource_id TO vilesci;
@@ -2739,6 +2740,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM fue.tbl_ressource LIMIT 1;"))
ALTER TABLE fue.tbl_projekt_ressource ALTER COLUMN projekt_ressource_id SET DEFAULT nextval('fue.seq_projekt_ressource_projekt_ressource_id');
GRANT SELECT, UPDATE, INSERT, DELETE ON fue.tbl_projekt_ressource TO vilesci;
GRANT SELECT ON fue.tbl_projekt_ressource TO web;
GRANT SELECT, UPDATE ON SEQUENCE fue.seq_projekt_ressource_projekt_ressource_id TO web;
GRANT SELECT, UPDATE ON SEQUENCE fue.seq_projekt_ressource_projekt_ressource_id TO vilesci;
+64 -2
View File
@@ -979,9 +979,9 @@ $error_msg='';
flush();
}
// **************************************************************
// Mitarbeiter Sprachen Institut
$mlist_name='sprachen';
$mlist_name='SPRACHEN';
$grp = new gruppe();
if(!$grp->exists($mlist_name))
@@ -1008,6 +1008,68 @@ $error_msg='';
}
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<br>'.$mlist_name.' wird abgeglichen!';
flush();
$sql_query = "SELECT distinct uid
FROM
public.tbl_benutzer
JOIN public.tbl_benutzerfunktion USING(uid)
JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid)
WHERE oe_kurzbz in('Sprachen')
AND tbl_benutzer.aktiv
AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null)
AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)";
$sql_querys="DELETE FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name' AND uid NOT IN ($sql_query)";
if(!$db->db_query($sql_querys))
{
$error_msg.=$db->db_last_error().' '.$sql_querys;
}
$sql_query.=" AND uid NOT IN (SELECT uid FROM public.tbl_benutzergruppe WHERE gruppe_kurzbz='$mlist_name')";
if(!($result_oe = $db->db_query($sql_query)))
$error_msg.=$db->db_last_error().' '.$sql_query;
// Lektoren holen die nicht im Verteiler sind
while($row_oe = $db->db_fetch_object($result_oe))
{
$sql_query="INSERT INTO public.tbl_benutzergruppe(uid, gruppe_kurzbz, insertamum, insertvon) VALUES ('$row_oe->uid','".$mlist_name."', now(), 'mlists_generate')";
if(!$db->db_query($sql_query))
{
$error_msg.=$db->db_last_error().$sql_query;
}
}
// **************************************************************
//Mitarbeiter sprachen Institut
$mlist_name='HUMANITIES';
$grp = new gruppe();
if(!$grp->exists($mlist_name))
{
$grp->gruppe_kurzbz = $mlist_name;
$grp->studiengang_kz = '0';
$grp->bezeichnung = 'humanities';
$grp->beschreibung = 'Mitarbeiter des Instituts Sprachen und Kulturwissenschaften';
$grp->semester = '0';
$grp->mailgrp = true;
$grp->sichtbar = true;
$grp->generiert = true;
$grp->aktiv = true;
$grp->lehre = true;
$grp->insertamum = date('Y-m-d H:i:s');
$grp->insertvon = 'mlists_generate';
if(!$grp->save(true, false))
die('Fehler: '.$grp->errormsg);
}
else
{
setGeneriert($mlist_name);
}
// Lektoren holen die nicht mehr in den Verteiler gehoeren
echo '<br>'.$mlist_name.' wird abgeglichen!';
flush();