display only projektphasen of the user

This commit is contained in:
OliiverHacker
2020-09-10 13:07:51 +02:00
parent 612c339305
commit a565b66751
3 changed files with 128 additions and 33 deletions
+21 -16
View File
@@ -1936,6 +1936,9 @@ function getDataForProjectOverviewCSV($user)
$projects_of_user = new projekt();
$projects= $projects_of_user->getProjekteListForMitarbeiter($user);
$projektphase = new projektphase();
$projektphasen = $projektphase->getProjectphaseForMitarbeiter($user);
$csvData = array();
//headers schreiben
$csvData[] = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE');
@@ -1951,25 +1954,27 @@ function getDataForProjectOverviewCSV($user)
$csvData[] = array($titel, $projekt_kurzbz,$projekt_phase,$projekt_phase_id, $beginn, $ende);
$projektphasen = new projektphase();
//$projektphasen = new projektphase();
if($projektphasen->getProjectphaseForMitarbeiter($user))
{
foreach($projektphasen->result as $projektphase)
foreach($projektphasen as $prjp)
{
$projekt_phase = $projektphase->bezeichnung;
$projekt_phase_id = $projektphase->projektphase_id;
if(!empty($projektphase->beginn))
$beginn = $projektphase->beginn;
else
$beginn = $project->beginn;
if(!empty($projektphase->ende))
$ende = $projektphase->ende;
else
$ende = $project->ende;
$csvData[] = array($titel, $projekt_kurzbz,$projekt_phase, $projekt_phase_id, $beginn, $ende);
if($prjp->projekt_kurzbz===$projekt_kurzbz)
{
$projekt_phase = $prjp->bezeichnung;
$projekt_phase_id = $prjp->projektphase_id;
if (!empty($prjp->beginn))
$beginn = $prjp->beginn;
else
$beginn = $project->beginn;
if (!empty($prjp->ende))
$ende = $prjp->ende;
else
$ende = $project->ende;
$csvData[] = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
}
}
}
}
return $csvData;
}
@@ -1,26 +1,36 @@
<?php
require_once('../../../config/cis.config.inc.php');
/*require_once('../../../include/functions.inc.php');*/
require_once('../../../include/functions.inc.php');
require_once('../../../include/basis_db.class.php');
require_once('../../../include/projektphase.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
//$uid=get_uid();
$user = get_uid();
if(isset($_GET['projekt_kurzbz'])) // TODO maybe check that phasen only shown if projekt is projekt of logged in user
{
$projekt_kurzbz = $_GET['projekt_kurzbz'];
$projektphase = new projektphase();
$projektphasen_user = $projektphase->getProjectphaseForMitarbeiterByKurzBz($user, $projekt_kurzbz);
$pp_user_ids = array();
foreach ($projektphasen_user as $pp_user)
{
array_push($pp_user_ids, $pp_user->projektphase_id);
}
if($projektphase->getProjektphasen($projekt_kurzbz))
{
$result_obj = array();
foreach($projektphase->result as $row)
{
$item['projektphase_id']=$row->projektphase_id;
$item['bezeichnung']=$row->bezeichnung;
$result_obj[]=$item;
if(in_array($row->projektphase_id, $pp_user_ids))
{
$item['projektphase_id'] = $row->projektphase_id;
$item['bezeichnung'] = $row->bezeichnung;
$result_obj[] = $item;
}
}
echo json_encode($result_obj);
}
+92 -12
View File
@@ -657,9 +657,14 @@ class projektphase extends basis_db
}
}
/**
* 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_projekt.*
FROM
@@ -697,10 +702,10 @@ class projektphase extends basis_db
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object())
while($row = $this->db_fetch_object($result))
{
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;
@@ -713,21 +718,97 @@ class projektphase extends basis_db
$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;
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Datensatz wurde nicht gefunden';
return false;
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 $prjkzbz des zu landenen Projekts
* @return array wenn ok, false im Fehlerfall
*/
public function getProjectphaseForMitarbeiterByKurzBz($mitarbeiter_uid, $prjkzbz)
{
$projecphasetList = 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) . "
)";*/
$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)
) 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 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;
if($prjkzbz === $row->projekt_kurzbz )
array_push($projecphasetList, $obj);
}
return $projecphasetList;
}
else
{
@@ -735,6 +816,5 @@ class projektphase extends basis_db
return false;
}
}
}
?>