diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index ba554f5e7..a114eef40 100644
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -680,6 +680,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
{
array_push($project_kurzbz_array, (string) $prjct->projekt_kurzbz);
}
+ $projectphase = new projektphase();
if ($_FILES['csv']['error'] == 0 && isset($_POST['import']))
{
@@ -726,10 +727,6 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
$data[8] = NULL;
if ($datum->formatDatum($data[2], $format='Y-m-d H:i:s') < $sperrdatum)
echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')
';
- //elseif (isset($data[8]) && ( filter_var($data[8], FILTER_VALIDATE_INT) === false ))
- //{
- // echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Service ID ist keine Zahl ('.$data[8].')
';
- //}
elseif (!empty($data[6]) && !$projects_of_user->checkProjectInCorrectTime($data[6], $data[2], $data[3]))
{
echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.
';
@@ -877,6 +874,11 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.
';
$saveerror = 1;
}
+ elseif (!$projectphase->checkProjectphaseInCorrectTime($projektphase_id, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
+ {
+ echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt.
';
+ $saveerror = 1;
+ }
elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit'])))
{
diff --git a/include/projekt.class.php b/include/projekt.class.php
index 036a90bf0..304d6d4ab 100644
--- a/include/projekt.class.php
+++ b/include/projekt.class.php
@@ -25,7 +25,7 @@
* @param string $projekt_kurzbz primary key Projektname.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
-
+error_reporting(E_ALL ^ E_NOTICE);
class projekt extends basis_db
{
public $new; // boolean
diff --git a/include/projektphase.class.php b/include/projektphase.class.php
index 81de4e095..8d96c92af 100644
--- a/include/projektphase.class.php
+++ b/include/projektphase.class.php
@@ -24,7 +24,7 @@
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/projekttask.class.php');
-
+error_reporting(E_ALL ^ E_NOTICE);
class projektphase extends basis_db
{
public $new; // boolean
@@ -572,6 +572,90 @@ class projektphase extends basis_db
else
return false;
}
+
+ public function checkProjectphaseInCorrectTime($projektphase_id, $given_projectphase_start, $given_projektphase_ende)
+ {
+ try
+ {
+ $projektphase = $this->getProjectphaseById($projektphase_id);
+ if(strtotime($projektphase->beginn))
+ $projektphase_start = date('Y-m-d', strtotime($projektphase->beginn));
+ 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)
+ {
+ echo '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;
+ }
+ }
}
?>