impliment zeitaufzeichnungs checks

This commit is contained in:
OliiverHacker
2020-09-09 10:50:42 +02:00
parent 2e44f58df9
commit e4f3139205
3 changed files with 92 additions and 6 deletions
+6 -4
View File
@@ -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 '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')</b></span><br>';
//elseif (isset($data[8]) && ( filter_var($data[8], FILTER_VALIDATE_INT) === false ))
//{
// echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Service ID ist keine Zahl ('.$data[8].')</b></span><br>';
//}
elseif (!empty($data[6]) && !$projects_of_user->checkProjectInCorrectTime($data[6], $data[2], $data[3]))
{
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.</b></span><br>';
@@ -877,6 +874,11 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import']))
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.</b></span><br>';
$saveerror = 1;
}
elseif (!$projectphase->checkProjectphaseInCorrectTime($projektphase_id, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d')))
{
echo '<span style="color:red"><b>'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt.</b></span><br>';
$saveerror = 1;
}
elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit'])))
{
+1 -1
View File
@@ -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
+85 -1
View File
@@ -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;
}
}
}
?>