mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
merge master into feature-12808
This commit is contained in:
@@ -47,6 +47,7 @@ class bisverwendung extends basis_db
|
||||
public $dv_art;
|
||||
public $inkludierte_lehre;
|
||||
public $zeitaufzeichnungspflichtig;
|
||||
public $azgrelevant;
|
||||
|
||||
public $ba1bez;
|
||||
public $ba2bez;
|
||||
@@ -122,6 +123,7 @@ class bisverwendung extends basis_db
|
||||
$this->dv_art = $row->dv_art;
|
||||
$this->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$this->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -247,13 +249,21 @@ class bisverwendung extends basis_db
|
||||
{
|
||||
$zeitaufzeichnungspflichtig = 'null';
|
||||
}
|
||||
if(is_bool($this->azgrelevant))
|
||||
{
|
||||
$azgrelevant = $this->db_add_param($this->azgrelevant, FHC_BOOLEAN);
|
||||
}
|
||||
else
|
||||
{
|
||||
$azgrelevant = 'null';
|
||||
}
|
||||
|
||||
if($new)
|
||||
{
|
||||
//Neuen Datensatz anlegen
|
||||
$qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode,
|
||||
verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden,
|
||||
updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig) VALUES (".
|
||||
updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig, azgrelevant) VALUES (".
|
||||
$this->db_add_param($this->ba1code, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->ba2code, FHC_INTEGER).', '.
|
||||
$this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '.
|
||||
@@ -271,7 +281,8 @@ class bisverwendung extends basis_db
|
||||
$this->db_add_param($this->insertvon).', '.
|
||||
$this->db_add_param($this->dv_art).','.
|
||||
$this->db_add_param($this->inkludierte_lehre).','.
|
||||
$zeitaufzeichnungspflichtig. ');';
|
||||
$zeitaufzeichnungspflichtig.','.
|
||||
$azgrelevant. ');';
|
||||
|
||||
}
|
||||
else
|
||||
@@ -295,7 +306,8 @@ class bisverwendung extends basis_db
|
||||
" insertvon=".$this->db_add_param($this->insertvon).",".
|
||||
" dv_art=".$this->db_add_param($this->dv_art).",".
|
||||
" inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",".
|
||||
" zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig.
|
||||
" zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig.",".
|
||||
" azgrelevant =". $azgrelevant.
|
||||
" WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
@@ -388,7 +400,7 @@ class bisverwendung extends basis_db
|
||||
$obj->dv_art = $row->dv_art;
|
||||
$obj->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
|
||||
$obj->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -445,6 +457,7 @@ class bisverwendung extends basis_db
|
||||
$obj->dv_art = $row->dv_art;
|
||||
$obj->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$obj->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -503,6 +516,7 @@ class bisverwendung extends basis_db
|
||||
$obj->dv_art = $row->dv_art;
|
||||
$obj->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$obj->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -524,12 +538,13 @@ class bisverwendung extends basis_db
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
*
|
||||
*, tbl_hauptberuf.bezeichnung as hauptberuf
|
||||
FROM
|
||||
bis.tbl_bisverwendung
|
||||
LEFT JOIN bis.tbl_hauptberuf USING(hauptberufcode)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$this->db_add_param($uid)."
|
||||
ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -543,6 +558,7 @@ class bisverwendung extends basis_db
|
||||
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
|
||||
$this->hauptberufcode = $row->hauptberufcode;
|
||||
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
|
||||
$this->hauptberuf = $row->hauptberuf;
|
||||
$this->habilitation = $this->db_parse_bool($row->habilitation);
|
||||
$this->beginn = $row->beginn;
|
||||
$this->ende = $row->ende;
|
||||
@@ -554,6 +570,7 @@ class bisverwendung extends basis_db
|
||||
$this->dv_art = $row->dv_art;
|
||||
$this->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$this->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -582,7 +599,7 @@ class bisverwendung extends basis_db
|
||||
(beginn<=now() OR beginn IS NULL)
|
||||
AND
|
||||
(ende>=now() OR ende IS NULL)
|
||||
ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -607,6 +624,7 @@ class bisverwendung extends basis_db
|
||||
$this->dv_art = $row->dv_art;
|
||||
$this->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$this->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -669,6 +687,7 @@ class bisverwendung extends basis_db
|
||||
$obj->dv_art = $row->dv_art;
|
||||
$obj->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$obj->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -797,5 +816,35 @@ class bisverwendung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function inZeitaufzeichnungspflichtigPeriod($PeriodStartDate, $PeriodEndDate)
|
||||
{
|
||||
$PeriodStartDateISO = date('Y-m-d', strtotime($PeriodStartDate));
|
||||
$PeriodEndDateISO = date('Y-m-d', strtotime($PeriodEndDate));
|
||||
|
||||
$beginn = date('Y-m-d', strtotime($this->beginn));
|
||||
$end = date('Y-m-d', strtotime($this->ende));
|
||||
$zp = $this->zeitaufzeichnungspflichtig;
|
||||
|
||||
if ($zp)
|
||||
{
|
||||
if (
|
||||
(($PeriodStartDateISO >= $beginn) && (($PeriodStartDateISO <= $end) || is_null($this->ende)))
|
||||
||
|
||||
(($PeriodEndDateISO >= $beginn) && (($PeriodEndDateISO <= $end) || is_null($this->ende)))
|
||||
)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
+24
-5
@@ -148,17 +148,37 @@ class datum
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob das Datum im Format dd.mm.YYYY oder YYYY-mm-dd ist
|
||||
* @return true wenn ok, false wenn falsches Format
|
||||
* Prueft ob das Datum im Format dd.mm.YYYY oder YYYY-mm-dd ist UND ob es sich um ein gültiges Datum handelt
|
||||
* @return true wenn ok, false wenn falsches Format und/oder nicht gültig
|
||||
*/
|
||||
public function checkDatum($datum)
|
||||
{
|
||||
if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})$",$datum) || mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$",$datum))
|
||||
return true;
|
||||
//Format dd.mm.yyyy
|
||||
if(mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$", $datum))
|
||||
{
|
||||
|
||||
$year = substr($datum, 6, 4);
|
||||
$month = substr($datum, 3, 2);
|
||||
$day = substr($datum, 0, 2);
|
||||
}
|
||||
|
||||
//Format yyyy-mm-dd
|
||||
elseif(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})$", $datum))
|
||||
{
|
||||
$year = substr($datum, 0, 4);
|
||||
$month = substr($datum, 5, 2);
|
||||
$day = substr($datum, 8, 2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return checkdate($month, $day, $year);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen)
|
||||
* @param $datum1
|
||||
@@ -395,6 +415,5 @@ class datum
|
||||
{
|
||||
return intval(substr($timestring, 0, 2)) + intval(substr($timestring, 3, 2)) / 60;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
+141
-9
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 fhcomplete.org
|
||||
/* Copyright (C) 2021 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
@@ -339,11 +339,11 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
$qry = "SELECT tbl_dokumentprestudent.* , tbl_dokument.*
|
||||
FROM public.tbl_dokumentprestudent
|
||||
FROM public.tbl_dokumentprestudent
|
||||
JOIN public.tbl_dokument USING(dokument_kurzbz)
|
||||
LEFT JOIN public.tbl_vorlage ON (tbl_dokumentprestudent.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz)
|
||||
WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if(!$archivdokumente)
|
||||
{
|
||||
$qry.=" AND (tbl_vorlage.archivierbar = FALSE OR tbl_vorlage.archivierbar IS NULL)";
|
||||
@@ -401,7 +401,7 @@ class dokument extends basis_db
|
||||
}
|
||||
|
||||
$qry = "SELECT tbl_dokument.* , tbl_dokumentstudiengang.*
|
||||
FROM public.tbl_dokument
|
||||
FROM public.tbl_dokument
|
||||
JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz)
|
||||
LEFT JOIN public.tbl_vorlage ON (tbl_dokument.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz)
|
||||
WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
|
||||
@@ -836,11 +836,11 @@ class dokument extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert die Studiengänge bei denen das übergebene Dokument benötigt wird
|
||||
* @param string $dokument_kurzbz Kurzbz des Dokuments
|
||||
* @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
|
||||
* @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
|
||||
* @return object Objekt mit den Studiengängen oder false.
|
||||
*/
|
||||
public function getStudiengaengeDokument($dokument_kurzbz, $person_id = null)
|
||||
@@ -854,7 +854,7 @@ class dokument extends basis_db
|
||||
AND person_id =".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND tbl_prestudentstatus.status_kurzbz = 'Interessent'
|
||||
AND get_rolle_prestudent (prestudent_id, NULL) NOT IN ('Abgewiesener','Abbrecher')
|
||||
|
||||
|
||||
ORDER BY kuerzel";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
@@ -869,12 +869,12 @@ class dokument extends basis_db
|
||||
$stg_obj->studiengang_kz = $row->studiengang_kz;
|
||||
$stg_obj->english = $row->english;
|
||||
$stg_obj->stufe = $row->stufe;
|
||||
|
||||
|
||||
$this->result[] = $stg_obj;
|
||||
}
|
||||
return $stg_obj;
|
||||
}
|
||||
else
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@@ -882,6 +882,138 @@ class dokument extends basis_db
|
||||
$this->errormsg="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Akzeptiert ein bestimmtes Dokument
|
||||
* @param char $dokument_kurzbz Bezeichner Dokument.
|
||||
* @param int $person_id Personenkennzeichen.
|
||||
* @return boolean true wenn akzeptiert bzw geprüft ohne Akzeptieren, false wenn Fehler
|
||||
*/
|
||||
public function akzeptiereDokument($dokument_kurzbz, $person_id)
|
||||
{
|
||||
$db = new basis_db();
|
||||
$arrayDoksZuAkzeptieren = array();
|
||||
|
||||
//get Prestudent_ids
|
||||
$qry = "SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
tbl_prestudent ps, tbl_studiengang sg
|
||||
WHERE
|
||||
ps.studiengang_kz = sg.studiengang_kz
|
||||
AND sg.typ = 'm'
|
||||
AND person_id = ".$this->db_add_param($person_id)."
|
||||
AND not exists(
|
||||
SELECT *
|
||||
from tbl_dokumentprestudent dok
|
||||
where dok.prestudent_id = ps.prestudent_id
|
||||
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
|
||||
|
||||
//gibt ein Array von zu akzeptierenden Dokumenten zurück
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
$arrayDoksZuAkzeptieren[] = $row->prestudent_id;
|
||||
}
|
||||
|
||||
//für alle prestudent_ids das Dokument akzeptieren
|
||||
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
|
||||
|
||||
foreach ($arrayDoksZuAkzeptieren as $prestudent_id)
|
||||
{
|
||||
$qry .= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id. ")";
|
||||
|
||||
if (next($arrayDoksZuAkzeptieren) == true)
|
||||
{
|
||||
$qry .= ",";
|
||||
}
|
||||
}
|
||||
$qry .= ";";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Akzeptieren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* entakzeptiert ein bestimmtes Dokument
|
||||
* @param char $dokument_kurzbz Kurzbezeichnung des zu entakzeptierenden Dokuments.
|
||||
* @param int $person_id Personenkennzeichen.
|
||||
* @return boolean true wenn entakzeptiert bzw geprüft ohne Entakzeptieren, false wenn Fehler
|
||||
*/
|
||||
public function entakzeptiereDokument($dokument_kurzbz, $person_id)
|
||||
{
|
||||
$db = new basis_db();
|
||||
$arrayDoksZuEntakzeptieren = array();
|
||||
|
||||
//get Prestudent_ids
|
||||
$qry = "SELECT
|
||||
prestudent_id
|
||||
from
|
||||
tbl_dokumentprestudent
|
||||
join
|
||||
tbl_prestudent using (prestudent_id)
|
||||
where
|
||||
person_id = ".$this->db_add_param($person_id)."
|
||||
and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz);
|
||||
|
||||
//gibt ein Array von zu Entakzeptierenden Dokumenten zurück
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
$arrayDoksZuEntakzeptieren[] = $row->prestudent_id;
|
||||
}
|
||||
|
||||
//für alle prestudent_ids das Dokument Entakzeptieren
|
||||
$qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in (";
|
||||
|
||||
foreach ($arrayDoksZuEntakzeptieren as $prestudent_id)
|
||||
{
|
||||
$qry .= $prestudent_id;
|
||||
|
||||
if (next($arrayDoksZuEntakzeptieren) == true)
|
||||
{
|
||||
$qry .= ",";
|
||||
}
|
||||
}
|
||||
$qry .= ") AND dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).";";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Entakzeptieren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+619
-618
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* Copyright (C) 2007 fhcomplete.org
|
||||
/* Copyright (C) 2021 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
@@ -16,8 +16,9 @@
|
||||
* 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>.
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
|
||||
* Manuela Thamer <manuela.thamer@technikum-wien.at>.
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/person.class.php');
|
||||
require_once(dirname(__FILE__).'/log.class.php');
|
||||
@@ -2215,9 +2216,9 @@ class prestudent extends person
|
||||
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
|
||||
AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
if ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->prio_relativ;
|
||||
}
|
||||
@@ -2232,6 +2233,222 @@ class prestudent extends person
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
* @return true wenn vorhanden
|
||||
* false wenn nicht vorhanden
|
||||
* false und errormsg wenn Fehler aufgetreten ist
|
||||
*/
|
||||
public function existsZGVIntern($person_id)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
|
||||
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang USING (studiengang_kz)
|
||||
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
|
||||
AND typ in ('b','m','d')";
|
||||
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($row->anzahl > 0)
|
||||
{
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = '';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Befüllt MasterZGV-Felder: Nation mit Österreich und MasterZGV-code mit FH-Bachelor(I)
|
||||
* @param int $person_id Personenkennzeichen.
|
||||
* @param varchar $ort Ort.
|
||||
* @return true wenn erfolgreich durchgeführt
|
||||
* false und errormsg wenn ein Fehler aufgetreten ist
|
||||
*/
|
||||
public function setZGVMasterFields($person_id, $ort)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
$arrayleereManations = array();
|
||||
|
||||
//all prestudent_ids mit Status Interessent
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
JOIN
|
||||
public.tbl_studiengang USING (studiengang_kz)
|
||||
WHERE
|
||||
person_id = ".$this->db_add_param($person_id)."
|
||||
AND
|
||||
typ ='m'
|
||||
And
|
||||
get_rolle_prestudent(prestudent_id, null) = 'Interessent';";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
while ($row = $db->db_fetch_object())
|
||||
{
|
||||
$arrayleereManations[] = $row->prestudent_id;
|
||||
}
|
||||
|
||||
if ($arrayleereManations)
|
||||
{
|
||||
$qry = "UPDATE
|
||||
public.tbl_prestudent
|
||||
SET
|
||||
(zgvmanation, zgvmaort, zgvmas_code) = ('A',".$this->db_add_param($ort).",1)
|
||||
WHERE
|
||||
prestudent_id in (";
|
||||
|
||||
foreach ($arrayleereManations as $prestudent_id)
|
||||
{
|
||||
$qry .= $prestudent_id;
|
||||
|
||||
if (next($arrayleereManations) == true)
|
||||
{
|
||||
$qry .= ",";
|
||||
}
|
||||
}
|
||||
$qry .= ");";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Eintragen zgvMasterFields';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag Interessent für einen Masterstudiengang besitzt
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
* @return true wenn vorhanden, false wenn nicht vorhanden
|
||||
*/
|
||||
public function existsStatusInteressentMaster($person_id)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$db = new basis_db();
|
||||
$prestudentsOfMaster = array();
|
||||
|
||||
$qry = "SELECT
|
||||
prestudent_id
|
||||
FROM
|
||||
tbl_prestudent ps, tbl_studiengang sg
|
||||
WHERE
|
||||
ps.studiengang_kz = sg.studiengang_kz
|
||||
AND
|
||||
sg.typ in ('m')
|
||||
AND
|
||||
person_id = ".$this->db_add_param($person_id)."
|
||||
And
|
||||
get_rolle_prestudent(prestudent_id, null) = 'Interessent';";
|
||||
|
||||
if ($db->db_query($qry))
|
||||
{
|
||||
$num_rows = $db->db_num_rows();
|
||||
if ($num_rows > 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert den wahrscheinlichen Studiengang der MasterZGV einer Person
|
||||
* @param int $person_id ID der zu überprüfenden Person.
|
||||
* @return string studiengangkurzbzlang
|
||||
*/
|
||||
public function getZGVMasterStg($person_id)
|
||||
{
|
||||
if (!is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT kurzbzlang
|
||||
FROM public.tbl_prestudent
|
||||
JOIN public.tbl_prestudentstatus USING (prestudent_id)
|
||||
JOIN public.tbl_studiengang USING (studiengang_kz)
|
||||
WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
|
||||
AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
|
||||
AND typ in ('b','m','d')
|
||||
ORDER BY status_kurzbz ASC
|
||||
LIMIT 1;";
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
$stg = $row->kurzbzlang;
|
||||
return $stg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+239
-124
@@ -28,26 +28,25 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class projekt extends basis_db
|
||||
{
|
||||
public $new; // boolean
|
||||
public $result = array(); // projekt Objekt
|
||||
public $new; // boolean
|
||||
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 $insertamum; // timestamp
|
||||
public $insertvon; // string
|
||||
public $updateamum; // timestamp
|
||||
public $updatevon; // string
|
||||
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
|
||||
public $budget;
|
||||
public $farbe;
|
||||
public $anzahl_ma; // integer
|
||||
public $aufwand_pt; // integer
|
||||
|
||||
public $anzahl_ma; // integer
|
||||
public $aufwand_pt; // integer
|
||||
|
||||
|
||||
/**
|
||||
@@ -58,23 +57,21 @@ class projekt extends basis_db
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if($projekt_kurzbz != null)
|
||||
if ($projekt_kurzbz != null)
|
||||
$this->load($projekt_kurzbz);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Projek mit der Kurzbezeichnung $projekt_kurzbz
|
||||
* @param string $projekt_kurzbz Kurzbz des Projekts.
|
||||
* @param string $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->db_add_param($projekt_kurzbz);
|
||||
$qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=" . $this->db_add_param($projekt_kurzbz);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
if ($row = $this->db_fetch_object()) {
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->titel = $row->titel;
|
||||
@@ -102,30 +99,28 @@ class projekt extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle aktuellen Projekte
|
||||
* @param bool $filter_kommende Lädt auch alle zukünftigen.
|
||||
/**
|
||||
* Laedt alle aktuellen Projekte
|
||||
* @param bool $filter_kommende Lädt auch alle zukünftigen.
|
||||
* @param string $oe Organisationseinheit.
|
||||
* @return bool
|
||||
*/
|
||||
public function getProjekteAktuell($filter_kommende = false, $oe = null)
|
||||
{
|
||||
$qry = 'SELECT * FROM fue.tbl_projekt WHERE ';
|
||||
* @return bool
|
||||
*/
|
||||
public function getProjekteAktuell($filter_kommende = false, $oe = null)
|
||||
{
|
||||
$qry = 'SELECT * FROM fue.tbl_projekt WHERE ';
|
||||
|
||||
if($filter_kommende)
|
||||
$qry .= " ((beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP) OR beginn > CURRENT_TIMESTAMP)";
|
||||
else
|
||||
$qry .= " (beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP)";
|
||||
if ($filter_kommende)
|
||||
$qry .= " ((beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP) OR beginn > CURRENT_TIMESTAMP)";
|
||||
else
|
||||
$qry .= " (beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP)";
|
||||
|
||||
|
||||
if (!is_null($oe))
|
||||
$qry .= ' AND oe_kurzbz='.$this->db_add_param($oe);
|
||||
if (!is_null($oe))
|
||||
$qry .= ' AND oe_kurzbz=' . $this->db_add_param($oe);
|
||||
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -150,26 +145,24 @@ class projekt extends basis_db
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Projekte die zwischen beginn und ende liegen
|
||||
* @param date $beginn Anfang.
|
||||
* @param date $ende Ende.
|
||||
* @param string $oe Organisationseinheit.
|
||||
* @return bool
|
||||
*/
|
||||
public function getProjekteInZeitraum($beginn, $ende, $oe = null)
|
||||
{
|
||||
$qry = 'select * from fue.tbl_projekt where beginn <= '.$this->db_add_param($ende).' and ende >= '.$this->db_add_param($beginn);
|
||||
/**
|
||||
* Laedt alle Projekte die zwischen beginn und ende liegen
|
||||
* @param date $beginn Anfang.
|
||||
* @param date $ende Ende.
|
||||
* @param string $oe Organisationseinheit.
|
||||
* @return bool
|
||||
*/
|
||||
public function getProjekteInZeitraum($beginn, $ende, $oe = null)
|
||||
{
|
||||
$qry = 'select * from fue.tbl_projekt where beginn <= ' . $this->db_add_param($ende) . ' and ende >= ' . $this->db_add_param($beginn);
|
||||
if (!is_null($oe))
|
||||
$qry .= " AND oe_kurzbz=".$this->db_add_param($oe);
|
||||
$qry .= " AND oe_kurzbz=" . $this->db_add_param($oe);
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
//echo $qry;
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -193,7 +186,7 @@ class projekt extends basis_db
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -205,13 +198,11 @@ class projekt extends basis_db
|
||||
{
|
||||
$qry = 'SELECT * FROM fue.tbl_projekt';
|
||||
if (!is_null($oe))
|
||||
$qry .= " WHERE oe_kurzbz=".$this->db_add_param($oe);
|
||||
$qry .= " WHERE oe_kurzbz=" . $this->db_add_param($oe);
|
||||
$qry .= ' ORDER BY oe_kurzbz;';
|
||||
//echo $qry;
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object()) {
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -245,26 +236,21 @@ class projekt extends basis_db
|
||||
protected function validate()
|
||||
{
|
||||
//Gesamtlaenge pruefen
|
||||
if ($this->projekt_kurzbz == null)
|
||||
{
|
||||
if ($this->projekt_kurzbz == null) {
|
||||
$this->errormsg = 'Projekt kurzbz darf nicht NULL sein!';
|
||||
}
|
||||
if ($this->oe_kurzbz == null)
|
||||
{
|
||||
if ($this->oe_kurzbz == null) {
|
||||
$this->errormsg = 'OE kurbz darf nicht NULL sein!';
|
||||
}
|
||||
if (mb_strlen($this->projekt_kurzbz) > 16)
|
||||
{
|
||||
if (mb_strlen($this->projekt_kurzbz) > 16) {
|
||||
$this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->nummer) > 8)
|
||||
{
|
||||
if (mb_strlen($this->nummer) > 8) {
|
||||
$this->errormsg = 'Nummer darf nicht länger als 8 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
if (mb_strlen($this->titel) > 256)
|
||||
{
|
||||
if (mb_strlen($this->titel) > 256) {
|
||||
$this->errormsg = 'Titel darf nicht länger als 256 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
@@ -283,52 +269,50 @@ class projekt extends basis_db
|
||||
public function save($new = null)
|
||||
{
|
||||
//Variablen pruefen
|
||||
if(!$this->validate())
|
||||
if (!$this->validate())
|
||||
return false;
|
||||
|
||||
if ($new == null)
|
||||
$new = $this->new;
|
||||
|
||||
if ($new)
|
||||
{
|
||||
if ($new) {
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
$qry = 'INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES('.
|
||||
$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
$this->db_add_param($this->nummer).', '.
|
||||
$this->db_add_param($this->titel).', '.
|
||||
$this->db_add_param($this->beschreibung).', '.
|
||||
$this->db_add_param($this->beginn).', '.
|
||||
$this->db_add_param($this->ende).', '.
|
||||
$this->db_add_param($this->budget).', '.
|
||||
$this->db_add_param($this->farbe).', '.
|
||||
$this->db_add_param($this->oe_kurzbz).','.
|
||||
$this->db_add_param($this->aufwand_pt).','.
|
||||
$this->db_add_param($this->anzahl_ma).','.
|
||||
$this->db_add_param($this->aufwandstyp_kurzbz).');';
|
||||
$qry = 'INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES(' .
|
||||
$this->db_add_param($this->projekt_kurzbz) . ', ' .
|
||||
$this->db_add_param($this->nummer) . ', ' .
|
||||
$this->db_add_param($this->titel) . ', ' .
|
||||
$this->db_add_param($this->beschreibung) . ', ' .
|
||||
$this->db_add_param($this->beginn) . ', ' .
|
||||
$this->db_add_param($this->ende) . ', ' .
|
||||
$this->db_add_param($this->budget) . ', ' .
|
||||
$this->db_add_param($this->farbe) . ', ' .
|
||||
$this->db_add_param($this->oe_kurzbz) . ',' .
|
||||
$this->db_add_param($this->aufwand_pt) . ',' .
|
||||
$this->db_add_param($this->anzahl_ma) . ',' .
|
||||
$this->db_add_param($this->aufwandstyp_kurzbz) . ');';
|
||||
}
|
||||
else
|
||||
{
|
||||
//Updaten des bestehenden Datensatzes
|
||||
|
||||
$qry = 'UPDATE fue.tbl_projekt SET '.
|
||||
'projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
'nummer='.$this->db_add_param($this->nummer).', '.
|
||||
'titel='.$this->db_add_param($this->titel).', '.
|
||||
'beschreibung='.$this->db_add_param($this->beschreibung).', '.
|
||||
'beginn='.$this->db_add_param($this->beginn).', '.
|
||||
'ende='.$this->db_add_param($this->ende).', '.
|
||||
'budget='.$this->db_add_param($this->budget).', '.
|
||||
'farbe='.$this->db_add_param($this->farbe).', '.
|
||||
'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '.
|
||||
'anzahl_ma='.$this->db_add_param($this->anzahl_ma).', '.
|
||||
'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '.
|
||||
'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).' '.
|
||||
'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';';
|
||||
$qry = 'UPDATE fue.tbl_projekt SET ' .
|
||||
'projekt_kurzbz=' . $this->db_add_param($this->projekt_kurzbz) . ', ' .
|
||||
'nummer=' . $this->db_add_param($this->nummer) . ', ' .
|
||||
'titel=' . $this->db_add_param($this->titel) . ', ' .
|
||||
'beschreibung=' . $this->db_add_param($this->beschreibung) . ', ' .
|
||||
'beginn=' . $this->db_add_param($this->beginn) . ', ' .
|
||||
'ende=' . $this->db_add_param($this->ende) . ', ' .
|
||||
'budget=' . $this->db_add_param($this->budget) . ', ' .
|
||||
'farbe=' . $this->db_add_param($this->farbe) . ', ' .
|
||||
'oe_kurzbz=' . $this->db_add_param($this->oe_kurzbz) . ', ' .
|
||||
'anzahl_ma=' . $this->db_add_param($this->anzahl_ma) . ', ' .
|
||||
'aufwand_pt=' . $this->db_add_param($this->aufwand_pt) . ', ' .
|
||||
'aufwandstyp_kurzbz=' . $this->db_add_param($this->aufwandstyp_kurzbz) . ' ' .
|
||||
'WHERE projekt_kurzbz=' . $this->db_add_param($this->projekt_kurzbz) . ';';
|
||||
}
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -345,10 +329,9 @@ class projekt extends basis_db
|
||||
*/
|
||||
public function delete($projekt_kurzbz)
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
|
||||
$qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz=" . $this->db_add_param($projekt_kurzbz);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -367,7 +350,7 @@ class projekt extends basis_db
|
||||
*/
|
||||
function getProjekteMitarbeiter($mitarbeiter_uid, $projektphasen = false)
|
||||
{
|
||||
$qry = "SELECT DISTINCT
|
||||
$qry = "SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_ressource
|
||||
@@ -377,12 +360,12 @@ class projekt extends basis_db
|
||||
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
|
||||
AND
|
||||
(
|
||||
mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid)." OR
|
||||
student_uid=".$this->db_add_param($mitarbeiter_uid)."
|
||||
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
|
||||
student_uid=" . $this->db_add_param($mitarbeiter_uid) . "
|
||||
)";
|
||||
|
||||
if ($projektphasen == true)
|
||||
$qry .= "UNION
|
||||
if ($projektphasen == true)
|
||||
$qry .= "UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
@@ -401,12 +384,10 @@ class projekt extends basis_db
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid);
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
if ($result = $this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object($result)) {
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
@@ -427,16 +408,86 @@ class projekt extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert Ein Array mit Porjekten von allen Projekten des Mitarbeiters mit UID.
|
||||
* Optional auch mit den Zuteilungen zu Projektphasen.
|
||||
* @param string $mitarbeiter_uid MitarbeiterUID.
|
||||
* @param bool $projektphasen Default false. Wenn true, werden auch Zuteilungen zu Projektphasen geliefert.
|
||||
* @return array wenn ok, false im Fehlerfall
|
||||
*/
|
||||
function getProjekteListForMitarbeiter($mitarbeiter_uid, $projektphasen = false)
|
||||
{
|
||||
$projectList = array();
|
||||
$qry = "SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
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 + interval '1 month 1 day' >=now() OR ende is null)
|
||||
AND
|
||||
(
|
||||
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
|
||||
student_uid=" . $this->db_add_param($mitarbeiter_uid) . "
|
||||
)";
|
||||
|
||||
if ($projektphasen == true)
|
||||
$qry .= "UNION
|
||||
|
||||
SELECT DISTINCT
|
||||
tbl_projekt.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) OR (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
|
||||
if ($result = $this->db_query($qry)) {
|
||||
while ($row = $this->db_fetch_object($result)) {
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->nummer = $row->nummer;
|
||||
$obj->titel = $row->titel;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
array_push($projectList, $obj);
|
||||
}
|
||||
return $projectList;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->erromsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getProjektFromBestellung($bestellung_id)
|
||||
{
|
||||
$qry = "select * from fue.tbl_projekt
|
||||
join wawi.tbl_projekt_bestellung USING (projekt_kurzbz)
|
||||
where bestellung_id= ".$this->db_add_param($bestellung_id);
|
||||
where bestellung_id= " . $this->db_add_param($bestellung_id);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
if ($row = $this->db_fetch_object())
|
||||
{
|
||||
if ($this->db_query($qry)) {
|
||||
if ($row = $this->db_fetch_object()) {
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->nummer = $row->nummer;
|
||||
$this->titel = $row->titel;
|
||||
@@ -463,5 +514,69 @@ class projekt extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert True zurück wenn die angegebenen Start und Endzeitpunkt der Arbeitsdauer in die Projektdauer fallen
|
||||
* @param string $mitarbeiter_uid MitarbeiterUID.
|
||||
* @param bool $projektphasen Default false. Wenn true, werden auch Zuteilungen zu Projektphasen geliefert.
|
||||
* @return array wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function checkProjectInCorrectTime($projekt_kurzbz, $give_project_start, $give_projekt_ende)
|
||||
{
|
||||
if(empty($projekt_kurzbz))
|
||||
return true;
|
||||
try
|
||||
{
|
||||
$projekt = $this->getProjectByKurzbz($projekt_kurzbz);
|
||||
if(strtotime($projekt->beginn))
|
||||
$projekt_start = date('Y-m-d', strtotime($projekt->beginn));
|
||||
else
|
||||
$projekt_start = NULL;
|
||||
if(strtotime($projekt->ende))
|
||||
$projekt_ende = date('Y-m-d', strtotime($projekt->ende));
|
||||
else
|
||||
$projekt_ende = NULL;
|
||||
|
||||
$given_start = date('Y-m-d', strtotime($give_project_start));
|
||||
$given_ende = date('Y-m-d', strtotime($give_projekt_ende));
|
||||
|
||||
if ((empty($projekt_start) || $given_start >= $projekt_start) && (empty($projekt_ende) || $given_ende <= $projekt_ende))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
error_log('Exception abgefangen: ', $e->getMessage(), "\n");
|
||||
}
|
||||
}
|
||||
|
||||
public function getProjectByKurzbz($projekt_kurzbz)
|
||||
{
|
||||
$qry = "SELECT * FROM fue.tbl_projekt
|
||||
WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
$row = $this->db_fetch_object($result);
|
||||
$obj = new projekt();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->nummer = $row->nummer;
|
||||
$obj->titel = $row->titel;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->beginn = $row->beginn;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
|
||||
return $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -335,7 +335,7 @@ class projektbetreuer extends basis_db
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves all projektarbeiten by person (only with stundensatz > 0)
|
||||
* Retrieves all projektarbeiten by person
|
||||
* @param $person_id
|
||||
* @return boolean If succeeded true and result-array with objects of each projektarbeit of the person.
|
||||
*/
|
||||
@@ -349,8 +349,6 @@ class projektbetreuer extends basis_db
|
||||
FROM
|
||||
lehre.tbl_projektbetreuer
|
||||
WHERE
|
||||
(stundensatz IS NOT NULL) AND (stundensatz > 0)
|
||||
AND
|
||||
person_id =' . $this->db_add_param($person_id, FHC_INTEGER);
|
||||
|
||||
if ($this->db_query($qry))
|
||||
|
||||
+334
-101
@@ -37,10 +37,10 @@ class projektphase extends basis_db
|
||||
public $bezeichnung; //string
|
||||
public $typ='Projektphase'; //string
|
||||
public $beschreibung; //string
|
||||
public $start; //date
|
||||
public $ende; //date
|
||||
public $start; //date
|
||||
public $ende; //date
|
||||
public $personentage; //integer
|
||||
public $farbe;
|
||||
public $farbe;
|
||||
public $budget; // numeric
|
||||
public $ressource_id; // bigint
|
||||
public $ressource_bezeichnung; // string
|
||||
@@ -58,7 +58,7 @@ class projektphase extends basis_db
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if($projektphase_id != null)
|
||||
if($projektphase_id != null)
|
||||
$this->load($projektphase_id);
|
||||
}
|
||||
|
||||
@@ -74,11 +74,11 @@ class projektphase extends basis_db
|
||||
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichnung
|
||||
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichnung
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
@@ -102,20 +102,20 @@ class projektphase extends basis_db
|
||||
$this->updatevon = $row->updatevon;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Projektphasen mit zu einem Projekt
|
||||
* @param $projekt_kurzbz Projekt der zu ladenden Projektphasen
|
||||
@@ -125,23 +125,23 @@ class projektphase extends basis_db
|
||||
{
|
||||
$this->result=array();
|
||||
$qry = "Select * from fue.tbl_projektphase where projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz)." and projektphase_id not in (
|
||||
WITH RECURSIVE tasks(projektphase_fk) as
|
||||
WITH RECURSIVE tasks(projektphase_fk) as
|
||||
(
|
||||
SELECT projektphase_id FROM fue.tbl_projektphase
|
||||
WHERE projektphase_fk=".$this->db_add_param($projektphase_id, FHC_INTEGER)."
|
||||
UNION ALL
|
||||
SELECT p.projektphase_id FROM fue.tbl_projektphase p, tasks
|
||||
SELECT p.projektphase_id FROM fue.tbl_projektphase p, tasks
|
||||
WHERE p.projektphase_fk=tasks.projektphase_fk
|
||||
) SELECT *
|
||||
FROM tasks) and projektphase_id not in (".$this->db_add_param($projektphase_id, FHC_INTEGER).")";
|
||||
//echo "\n".$qry."\n";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
@@ -158,25 +158,25 @@ class projektphase extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
//var_dump($this->result);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Projektphasen zu einem Projekt
|
||||
* @param $projekt_kurzbz Projekt der zu ladenden Projektphasen
|
||||
* @param $foreignkey wenn ! gib nur die Erste Ebene der Projektphasen zurück
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
*/
|
||||
public function getProjektphasen($projekt_kurzbz, $foreignkey = null)
|
||||
{
|
||||
$this->result=array();
|
||||
@@ -184,18 +184,18 @@ class projektphase extends basis_db
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
|
||||
//echo "\n".$qry."\n";
|
||||
|
||||
|
||||
if(!is_null($foreignkey))
|
||||
$qry .= " and projektphase_fk is NULL";
|
||||
|
||||
$qry .= " ORDER BY start, projektphase_fk DESC;";
|
||||
|
||||
|
||||
$qry .= " ORDER BY start, projektphase_fk DESC;";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
@@ -213,36 +213,36 @@ class projektphase extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
//var_dump($this->result);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Lädt alle Unterphasen zu einem Projekt
|
||||
* @param type $phase_id
|
||||
* @return boolean
|
||||
* @return boolean
|
||||
*/
|
||||
public function getAllUnterphasen($phase_id)
|
||||
{
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichung
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projektphase_fk =".$this->db_add_param($phase_id, FHC_INTEGER);
|
||||
|
||||
WHERE projektphase_fk =".$this->db_add_param($phase_id, FHC_INTEGER);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
$obj = new projektphase();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
@@ -260,15 +260,15 @@ class projektphase extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim laden der Daten";
|
||||
return false;
|
||||
$this->errormsg = "Fehler beim laden der Daten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,11 +296,11 @@ class projektphase extends basis_db
|
||||
$this->errormsg.='Projekt Kurzbz darf nicht länger als 16 Zeichen sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$this->errormsg = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert den aktuellen Datensatz in die Datenbank
|
||||
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
@@ -315,12 +315,12 @@ class projektphase extends basis_db
|
||||
|
||||
if($new==null)
|
||||
$new = $this->new;
|
||||
|
||||
|
||||
if($new)
|
||||
{
|
||||
//Neuen Datensatz einfuegen
|
||||
|
||||
$qry='BEGIN; INSERT INTO fue.tbl_projektphase (projekt_kurzbz, projektphase_fk, bezeichnung, typ,
|
||||
$qry='BEGIN; INSERT INTO fue.tbl_projektphase (projekt_kurzbz, projektphase_fk, bezeichnung, typ,
|
||||
beschreibung, start, ende, budget, ressource_id, insertvon, insertamum, updatevon, updateamum, farbe, personentage) VALUES ('.
|
||||
$this->db_add_param($this->projekt_kurzbz).', '.
|
||||
$this->db_add_param($this->projektphase_fk).', '.
|
||||
@@ -356,7 +356,7 @@ class projektphase extends basis_db
|
||||
'updatevon='.$this->db_add_param($this->updatevon).' '.
|
||||
'WHERE projektphase_id='.$this->db_add_param($this->projektphase_id, FHC_INTEGER).';';
|
||||
}
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($new)
|
||||
@@ -371,21 +371,21 @@ class projektphase extends basis_db
|
||||
$this->db_query('COMMIT');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK;');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -394,7 +394,7 @@ class projektphase extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loescht den Datenensatz mit der ID die uebergeben wird
|
||||
* @param $projekt_kurzbz ID die geloescht werden soll
|
||||
@@ -407,77 +407,81 @@ class projektphase extends basis_db
|
||||
$this->errormsg = 'Projektphase_ID ist ungueltig';
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// an projektphase hängt noch eine phase
|
||||
if($this->existPhaseFk($projektphase_id))
|
||||
{
|
||||
$this->errormsg ="Phase kann nicht gelöscht werden, da noch eine andere Phase daran hängt. Bitte zuerst Phase abhängen. ";
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Beginne Transaktion und lösche alle Tasks der Phase
|
||||
$qry1 ="Begin; DELETE FROM fue.tbl_projekttask
|
||||
$qry1 ="Begin; DELETE FROM fue.tbl_projekttask
|
||||
WHERE projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
|
||||
|
||||
|
||||
if($this->db_query($qry1))
|
||||
{
|
||||
// Lösche alle zugewiesenen Ressourcen
|
||||
$qry2 = "DELETE FROM fue.tbl_projekt_ressource
|
||||
$qry2 = "DELETE FROM fue.tbl_projekt_ressource
|
||||
WHERE projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
|
||||
|
||||
|
||||
if($this->db_query($qry2))
|
||||
{
|
||||
// Lösche den Phaseneintrag
|
||||
$qry3 = "DELETE FROM fue.tbl_projektphase
|
||||
$qry3 = "DELETE FROM fue.tbl_projektphase
|
||||
WHERE projektphase_id = ".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
|
||||
|
||||
|
||||
if($this->db_query($qry3))
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
return true;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg ="Fehler beim löschen der Projektphase aufgetreten";
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg ="Fehler beim löschen der Ressourcen aufgetreten";
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg ="Fehler beim löschen der Tasks aufgetreten";
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
$this->db_query('ROLLBACK');
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Überprüft ob an übergebenr Phase noch eine andere Phase hängt. true wenn noch eine daran hängt
|
||||
* @param $projektphase_id
|
||||
*/
|
||||
public function existPhaseFk($projektphase_id)
|
||||
{
|
||||
$qry = "SELECT * FROM fue.tbl_projektphase WHERE projektphase_fk =".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
return true;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* Löscht Ressourcen einer Phase
|
||||
* @param $projektphase_id
|
||||
* @param $ressource_id -> wenn != null wird nur die eine ressource gelöscht
|
||||
@@ -492,58 +496,60 @@ class projektphase extends basis_db
|
||||
$this->errormsg = "Keine gültige ID übergeben";
|
||||
return false;
|
||||
}
|
||||
$qry ="DELETE from fue.tbl_projekt_ressource
|
||||
WHERE projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER)." and
|
||||
$qry ="DELETE from fue.tbl_projekt_ressource
|
||||
WHERE projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER)." and
|
||||
ressource_id=".$this->db_add_param($ressource_id, FHC_INTEGER).";";
|
||||
}else
|
||||
}
|
||||
else
|
||||
{
|
||||
// gesamte Ressourcen von Phase werden gelöscht
|
||||
if(!is_numeric($projektphase_id))
|
||||
{
|
||||
$this->errormsg ="Keine gültige ID übergeben";
|
||||
}
|
||||
$qry ="DELETE from fue.tbl_projekt_ressource
|
||||
$qry ="DELETE from fue.tbl_projekt_ressource
|
||||
WHERE projektphase_id =".$this->db_add_param($projektphase_id, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* gibt den Fortschritt der Phase in Prozent zurück --> Phasen die auf die übergebene Phase zeigen werden berücksichtigt
|
||||
* @param $projektphase_id
|
||||
*/
|
||||
public function getFortschritt($projektphase_id)
|
||||
public function getFortschritt($projektphase_id)
|
||||
{
|
||||
$qry = "Select * from fue.tbl_projektphase phase
|
||||
join fue.tbl_projekttask task using(projektphase_id)
|
||||
$qry = "Select * from fue.tbl_projektphase phase
|
||||
join fue.tbl_projekttask task using(projektphase_id)
|
||||
where task.projektphase_id = ".$this->db_add_param($projektphase_id, FHC_INTEGER)."
|
||||
OR task.projektphase_id IN (
|
||||
|
||||
WITH RECURSIVE tasks(projektphase_fk) as
|
||||
|
||||
WITH RECURSIVE tasks(projektphase_fk) as
|
||||
(
|
||||
SELECT projektphase_id FROM fue.tbl_projektphase
|
||||
WHERE projektphase_fk=".$this->db_add_param($projektphase_id, FHC_INTEGER)."
|
||||
UNION ALL
|
||||
SELECT p.projektphase_id FROM fue.tbl_projektphase p, tasks
|
||||
SELECT p.projektphase_id FROM fue.tbl_projektphase p, tasks
|
||||
WHERE p.projektphase_fk=tasks.projektphase_fk
|
||||
)SELECT *
|
||||
FROM tasks)";
|
||||
|
||||
$taskAnzahl = 0;
|
||||
|
||||
$taskAnzahl = 0;
|
||||
// erledige tasks
|
||||
$i = 0;
|
||||
$ergebnis = 0;
|
||||
|
||||
$i = 0;
|
||||
$ergebnis = 0;
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
@@ -553,25 +559,252 @@ class projektphase extends basis_db
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
$taskAnzahl = ($taskAnzahl == 0)? 1 : $taskAnzahl;
|
||||
$ergebnis = ($i*100)/$taskAnzahl;
|
||||
|
||||
return sprintf("%01.2f", $ergebnis);
|
||||
$taskAnzahl = ($taskAnzahl == 0)? 1 : $taskAnzahl;
|
||||
$ergebnis = ($i*100)/$taskAnzahl;
|
||||
|
||||
return sprintf("%01.2f", $ergebnis);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Überprüft ob alle Tasks einer Phase erledigt sind
|
||||
*/
|
||||
public function isPhaseErledigt($phase_id)
|
||||
{
|
||||
$task = new projekttask();
|
||||
|
||||
$task->getProjekttasks($phase_id,null,'offen');
|
||||
$task = new projekttask();
|
||||
|
||||
$task->getProjekttasks($phase_id,null,'offen');
|
||||
if(count($task->result)==0)
|
||||
return true;
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
public function checkProjectphaseInCorrectTime($projektphase_id, $given_projectphase_start, $given_projektphase_ende)
|
||||
{
|
||||
if(empty($projektphase_id))
|
||||
return true;
|
||||
try
|
||||
{
|
||||
$projektphase = $this->getProjectphaseById($projektphase_id);
|
||||
if(strtotime($projektphase->start))
|
||||
{
|
||||
$projektphase_start = date('Y-m-d', strtotime($projektphase->start));
|
||||
}
|
||||
else
|
||||
{
|
||||
$projektphase_start = NULL;
|
||||
}
|
||||
if(strtotime($projektphase->ende))
|
||||
{
|
||||
$projektphase_ende = date('Y-m-d', strtotime($projektphase->ende));
|
||||
}
|
||||
else
|
||||
{
|
||||
$projektphase_ende = NULL;
|
||||
}
|
||||
|
||||
$given_start = date('Y-m-d', strtotime($given_projectphase_start));
|
||||
$given_ende = date('Y-m-d', strtotime($given_projektphase_ende));
|
||||
|
||||
if ((empty($projektphase_start) || $given_start >= $projektphase_start)
|
||||
&& (empty($projektphase_ende) || $given_ende <= $projektphase_ende))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
error_log('Exception abgefangen: ', $e->getMessage(), "\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Projektphase mit der ID $projektphase_id
|
||||
* @param $projektphase_id ID der zu ladenden Projektphase
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getProjectphaseById($projektphase_id)
|
||||
{
|
||||
if(!is_numeric($projektphase_id))
|
||||
{
|
||||
$this->errormsg = 'Projektarbeit_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT tbl_projektphase.*, tbl_ressource.bezeichnung AS ressource_bezeichnung
|
||||
FROM fue.tbl_projektphase LEFT OUTER JOIN fue.tbl_ressource USING (ressource_id)
|
||||
WHERE projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new projektphase();
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_id;
|
||||
$obj->ressource_bezeichnung = $row->ressource_bezeichnung;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
return $obj;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Datensatz wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Projektphase mit der ID des mitarbeiters
|
||||
* @param $mitarbeiter_uid der zu ladenden Projektphase des users
|
||||
* @return array wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getProjectphaseForMitarbeiter($mitarbeiter_uid)
|
||||
{
|
||||
$projecphasetList = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT tbl_projektphase.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_id;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
array_push($projecphasetList, $obj);
|
||||
}
|
||||
return $projecphasetList;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Projektphase mit der ID des mitarbeiters für das jeweilige Projekt
|
||||
* @param $mitarbeiter_uid der zu ladenden Projektphase des users
|
||||
* @param $projekt_kurzbz des zu landenen Projekts
|
||||
* @return array wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getProjectphaseForMitarbeiterByKurzBz($mitarbeiter_uid, $projekt_kurzbz)
|
||||
{
|
||||
$projecphasetList = array();
|
||||
|
||||
$qry = "
|
||||
SELECT
|
||||
DISTINCT tbl_projektphase.*
|
||||
FROM
|
||||
fue.tbl_projektphase
|
||||
JOIN fue.tbl_projekt USING (projekt_kurzbz)
|
||||
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
|
||||
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
|
||||
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
|
||||
) AND (
|
||||
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
|
||||
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
|
||||
)
|
||||
)
|
||||
AND mitarbeiter_uid = ".$this->db_add_param($mitarbeiter_uid)."
|
||||
AND tbl_projekt.projekt_kurzbz = ".$this->db_add_param($projekt_kurzbz);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new projektphase();
|
||||
|
||||
$obj->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$obj->projektphase_id = $row->projektphase_id;
|
||||
$obj->projektphase_fk = $row->projektphase_fk;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->start = $row->start;
|
||||
$obj->ende = $row->ende;
|
||||
$obj->personentage = $row->personentage;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->budget = $row->budget;
|
||||
$obj->ressource_id = $row->ressource_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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
+83
-11
@@ -86,7 +86,7 @@ class ressource extends basis_db
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->updateamum = $row->updateamum;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->updatevon = $row->updatevon;
|
||||
$this->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
return true;
|
||||
}
|
||||
@@ -130,7 +130,7 @@ class ressource extends basis_db
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
//var_dump($this->result);
|
||||
@@ -174,7 +174,7 @@ class ressource extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->aufwand = $row->aufwand;
|
||||
$obj->aufwand = $row->aufwand;
|
||||
$obj->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$obj->projekt_ressource_id= $row->projekt_ressource_id;
|
||||
|
||||
@@ -189,8 +189,8 @@ class ressource extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt die Projektressource
|
||||
@@ -203,15 +203,15 @@ class ressource extends basis_db
|
||||
$this->result=array();
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->ressource_id = $row->ressource_id;
|
||||
$this->beschreibung = $row->beschreibung;
|
||||
$this->aufwand = $row->aufwand;
|
||||
$this->aufwand = $row->aufwand;
|
||||
$this->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$this->projekt_ressource_id= $row->projekt_ressource_id;
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->projekt_ressource_id= $row->projekt_ressource_id;
|
||||
$this->projekt_kurzbz = $row->projekt_kurzbz;
|
||||
$this->projektphase_id = $row->projektphase_id;
|
||||
return true;
|
||||
}
|
||||
@@ -223,7 +223,7 @@ class ressource extends basis_db
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -256,7 +256,7 @@ class ressource extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->updateamum = $row->updateamum;
|
||||
$obj->updatevon = $row->updatevon;
|
||||
$obj->aufwand = $row->aufwand;
|
||||
$obj->aufwand = $row->aufwand;
|
||||
$obj->funktion_kurzbz = $row->funktion_kurzbz;
|
||||
$obj->projekt_ressource_id = $row->projekt_ressource_id;
|
||||
$this->result[] = $obj;
|
||||
@@ -688,5 +688,77 @@ class ressource extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht eine Ressource zu Projekt Zuordnung
|
||||
* @param type $ressource_id
|
||||
* @param type $projekt_kurzbz
|
||||
* @return boolean
|
||||
*/
|
||||
public function deleteFromProjektWithProjektRessourceId($ressource_id, $projekt_kurzbz, $project_ressource_id)
|
||||
{
|
||||
if($ressource_id == '' || !is_numeric($ressource_id))
|
||||
{
|
||||
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
|
||||
return false;
|
||||
}
|
||||
/*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
|
||||
AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
|
||||
*/
|
||||
$qry="
|
||||
DELETE FROM fue.tbl_projekt_ressource pr
|
||||
USING fue.tbl_ressource r
|
||||
WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). "
|
||||
AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). "
|
||||
AND pr.projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Löscht eine Ressource zu Phase Zuordnung
|
||||
* @param type $ressource_id
|
||||
* @param type $projekt_kurzbz
|
||||
* @return boolean
|
||||
*/
|
||||
public function deleteFromPhaseWithProjektRessourceId($ressource_id, $projektphase_id, $project_ressource_id)
|
||||
{
|
||||
if($ressource_id == '' || !is_numeric($ressource_id))
|
||||
{
|
||||
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($projektphase_id == '' || !is_numeric($projektphase_id))
|
||||
{
|
||||
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
|
||||
return false;
|
||||
}
|
||||
|
||||
/*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
|
||||
AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
|
||||
*/
|
||||
$qry="
|
||||
DELETE FROM fue.tbl_projekt_ressource pr
|
||||
USING fue.tbl_ressource r
|
||||
WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). "
|
||||
AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). "
|
||||
AND pr.projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
|
||||
if($this->db_query($qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -33,10 +33,12 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
|
||||
* @param string $to Email-adress.
|
||||
* @param string $subject Subject of mail.
|
||||
* @param string $headerImg Filename of the specific Sancho header image.
|
||||
* @param string $footerImg
|
||||
* @param string $replyTo default Email-adress for reply.
|
||||
* @param string | array $cc
|
||||
* @return boolean True, if succeeded.
|
||||
*/
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '')
|
||||
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '', $cc = '')
|
||||
{
|
||||
$from = 'sancho@'. DOMAIN;
|
||||
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
|
||||
@@ -69,6 +71,10 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm
|
||||
// * Set reply-to
|
||||
if (isset($replyTo) && $replyTo != '')
|
||||
$mail->setReplyTo($replyTo);
|
||||
|
||||
// * Set cc
|
||||
if (isset($cc) && $cc != '')
|
||||
$mail->setCCRecievers($cc);
|
||||
|
||||
// * embed the html content
|
||||
$mail->setHTMLContent($body);
|
||||
|
||||
@@ -174,7 +174,7 @@ class zeitaufzeichnung extends basis_db
|
||||
}
|
||||
if ($this->aktivitaet_kurzbz != 'Ersatzruhe' && $this->aktivitaet_kurzbz != 'DienstreiseMT')
|
||||
{
|
||||
$check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and aktivitaet_kurzbz != 'DienstreiseMT' and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
|
||||
$check_qry = "SELECT count(*) from campus.tbl_zeitaufzeichnung where uid=".$this->db_add_param($this->uid)." and (aktivitaet_kurzbz != 'DienstreiseMT' or aktivitaet_kurzbz IS NULL ) and (start < ".$this->db_add_param($this->ende)." and ende > ".$this->db_add_param($this->start).")";
|
||||
if($this->db_query($check_qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
|
||||
Reference in New Issue
Block a user