diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index 0eb86bdb1..742ef7af3 100644
--- a/cis/private/tools/zeitaufzeichnung.php
+++ b/cis/private/tools/zeitaufzeichnung.php
@@ -46,6 +46,7 @@ require_once('../../../include/studiensemester.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/zeitaufzeichnung_import_csv.class.php');
require_once('../../../include/zeitaufzeichnung_import_post.class.php');
+require_once('../../../include/vertragsbestandteil.class.php');
$sprache = getSprache();
$p=new phrasen($sprache);
@@ -303,7 +304,7 @@ echo '
Monat=Datum.substring(3,5);
Jahr=Datum.substring(6,10);
var day = Jahr + "-" + Monat + "-" + Tag;
- checkBisverwendung(day,uid);
+ checkZeitaufzeichnung(day,uid);
checkZeitsperre(day,uid);
}
)
@@ -762,14 +763,15 @@ echo '
Monat=Datum.substring(3,5);
Jahr=Datum.substring(6,10);
var checkedDay = Jahr + "-" + Monat + "-" + Tag;
- checkBisverwendung(checkedDay, uid);
+ checkZeitaufzeichnung(checkedDay, uid);
checkZeitsperre(checkedDay, uid);
}
- function checkBisverwendung(day, uid)
+ function checkZeitaufzeichnung(day, uid)
{
+ /* Checkt nicht mehr Bisverwendung, sondern Vertragsbestandteil Zeitaufzeichnung */
$.ajax({
- url: "zeitaufzeichnung_bisverwendung.php",
+ url: "zeitaufzeichnung_bisverwendung.php",
data: {
day: day,
uid: uid
@@ -1395,23 +1397,15 @@ if ($projekt->getProjekteMitarbeiter($user, true))
echo '';
echo '
';
- if (defined('DEFAULT_ALLIN_DIENSTVERTRAG') && DEFAULT_ALLIN_DIENSTVERTRAG != '')
+ $vbt = new vertragsbestandteil();
+ $isAllin = $vbt->isAllin($user);
+
+ if ($isAllin)
{
- $bisver = new bisverwendung();
- $bisver->getLastVerwendung($user);
- // $ba1code = $bisver->ba1code;
- $ba1code = null;
-
- if (in_array($bisver->ba1code, DEFAULT_ALLIN_DIENSTVERTRAG))
- {
- echo '
';
- }
- else
- echo ' ';
+ echo ' ';
}
- else
- echo ' ';
+ echo ' ';
@@ -1578,21 +1572,21 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$linkInformation = APP_ROOT. 'skin/images/information.png';
$za = new zeitaufzeichnung();
- $verwendung = new bisverwendung();
+
if ($za->checkPausenErrors($user, $tag))
{
- $verwendung->getVerwendungDatum($user, $tag);
- foreach ($verwendung->result as $v)
+ $vbt = new vertragsbestandteil();
+ $isAzgrelevant = $vbt->isAzgRelevant($user, $tag);
+
+ if ($isAzgrelevant)
{
- if ($v->azgrelevant)
- {
- $pausefehlt_str = ' -- Pause fehlt oder zu kurz -- ';
- }
- else
- {
- $pausefehlt_str = ' -- Pause fehlt --';
- }
+ $pausefehlt_str = ' -- Pause fehlt oder zu kurz -- ';
}
+ else
+ {
+ $pausefehlt_str = ' -- Pause fehlt --';
+ }
+
}
$tagessaldo = date('H:i', ($tagessaldo));
diff --git a/cis/private/tools/zeitaufzeichnung_bisverwendung.php b/cis/private/tools/zeitaufzeichnung_bisverwendung.php
index 2f430ecda..0229aa723 100644
--- a/cis/private/tools/zeitaufzeichnung_bisverwendung.php
+++ b/cis/private/tools/zeitaufzeichnung_bisverwendung.php
@@ -31,7 +31,7 @@ require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/zeitaufzeichnung.class.php');
require_once('../../../include/projekt.class.php');
-require_once('../../../include/bisverwendung.class.php');
+require_once('../../../include/vertragsbestandteil.class.php');
if ((isset($_GET['uid'])) && (isset($_GET['day'])))
{
@@ -57,18 +57,8 @@ if ((isset($_GET['uid'])) && (isset($_GET['day'])))
$day = $_GET['day'];
- $verwendung = new bisverwendung();
-
- $verwendung->getVerwendungDatum($uid, $day);
- $homeoffice = false;
-
- foreach ($verwendung->result as $v)
- {
- if ($v->homeoffice)
- {
- $homeoffice = true;
- }
- }
+ $vbt = new vertragsbestandteil();
+ $homeoffice = $vbt->hasHomeoffice($uid, $day);
echo json_encode($homeoffice);
diff --git a/include/vertragsbestandteil.class.php b/include/vertragsbestandteil.class.php
new file mode 100644
index 000000000..50b0b7b66
--- /dev/null
+++ b/include/vertragsbestandteil.class.php
@@ -0,0 +1,451 @@
+,
+ */
+/**
+ * Klasse Vertragsbestandteil
+ * @create 29.03.2023
+ */
+require_once(dirname(__FILE__).'/basis_db.class.php');
+
+class vertragsbestandteil extends basis_db
+{
+ public $new; // boolean
+ public $result = array();
+
+ //Tabellenspalten
+ public $vertragsbestandteil_id; // serial
+ public $dienstverhaeltnis_id; // integer
+ public $vertragsbestandteiltyp_kurzbz; // varchar(32)
+ public $von; // date
+ public $bis; // date
+ public $insertamum; // timestamp
+ public $insertvon; // varchar(32)
+ public $updateamum; // timestamp
+ public $updatevon; // varchar(32)
+
+ /**
+ * Konstruktor
+ * @param $vertragsbestandteil_id ID des Vertragsbestandteils, der geladen werden soll (Default=null)
+ */
+ public function __construct($vertragsbestandteil_id = null)
+ {
+ parent::__construct();
+
+ if($vertragsbestandteil_id != null)
+ $this->load($vertragsbestandteil_id);
+ }
+
+ /**
+ * Laedt den Vertragsbestandteil mit der uebergebenen ID.
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load($vertragsbestandteil_id)
+ {
+ $qry = "SELECT * FROM hr.tbl_vertragsbestandteil WHERE vertragsbestandteil_id = ". $this->db_add_param($vertragsbestandteil_id, FHC_INTEGER);
+
+ if (!$this->db_query($qry))
+ {
+ $this->errormsg = 'Fehler bei einer Datenbankabfrage';
+ return false;
+ }
+
+ if($row = $this->db_fetch_object())
+ {
+ $this->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $this->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $this->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $this->von = $row->von;
+ $this->bis = $row->bis;
+ $this->insertvon = $row->insertvon;
+ $this->updateamum = $row->updateamum;
+ $this->updatevon = $row->updatevon;
+ }
+ else
+ {
+ $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Prueft ob MitarbeiterIn im Monat des uebergebenen $datums zeitaufzeichnungspflichtig ist.
+ * Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
+ *
+ * @param $mitarbeiter_uid
+ * @param string $timestamp DD-MM-YYYY
+ * @return bool
+ */
+ public function isZaPflichtig($mitarbeiter_uid, $datum = null)
+ {
+
+ $timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
+
+ $qry = 'SELECT
+ vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
+ vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
+ vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
+ FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
+ JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
+ JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
+ -- Dienstverhältnis(se) des Mitarbeiters
+ WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
+ -- Zeitaufzeichnungspflichtig...
+ AND zeitaufzeichnung = TRUE
+ -- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
+ AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
+ -- Vorerst nur check, ob zumindest eine aufrechte Zeitaufzeichnungspflicht. Später Unterscheidung nach Dienstverhältnis.
+ --ORDER BY vbt.von DESC --aktuellster
+ LIMIT 1';
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ {
+ $this->result = array();
+
+ while ($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+
+ $obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->zeitaufzeichnung = $row->zeitaufzeichnung;
+ $obj->azgrelevant = $row->azgrelevant;
+ $obj->homeoffice = $row->homeoffice;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+
+ }
+
+ /**
+ * Holt alle Vertragsbestandteile, die eine Zeitaufzeichnungspflicht haben.
+ *
+ * Set order DESC limit 1 to retrieve only most recent Vertragsbestandteil.
+ * Set order ASC limit 1 to retrieve only first Vertragsbestandteil.
+ *
+ * @param $mitarbeiter_uid
+ * @param string $order
+ * @param null $limit
+ * @return bool
+ */
+ public function getZaPflichtig($mitarbeiter_uid, $order = 'DESC', $limit = null)
+ {
+ if ($order !== 'ASC' && $order !== 'DESC')
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+
+ $qry = 'SELECT
+ vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
+ vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
+ vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
+ FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
+ JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
+ JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
+ -- Dienstverhältnis(se) des Mitarbeiters
+ WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
+ -- Zeitaufzeichnungspflichtig
+ AND zeitaufzeichnung = TRUE
+ -- Vertragsbestandteile sind aktuell, liegen nach dem GoLive und starten vor dem aktuellen Monatsletzten
+ AND(
+ (COALESCE(vbt.bis, NOW()::date) > '. $this->db_add_param(CASETIME_TIMESHEET_GOLIVE). '::date) AND
+ (vbt.von < (date_trunc(\'month\', NOW()) + interval \'1 month - 1 day\')::date)
+ )
+ ORDER BY vbt.von ' . $order;
+
+
+ if (!is_null($limit))
+ {
+ $qry .= ' LIMIT ' . $this->db_add_param($limit, FHC_INTEGER);
+ }
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ {
+ $this->result = array();
+
+ while ($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+
+ $obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->zeitaufzeichnung = $row->zeitaufzeichnung;
+ $obj->azgrelevant = $row->azgrelevant;
+ $obj->homeoffice = $row->homeoffice;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+
+ }
+
+ /**
+ * Prueft ob MitarbeiterIn im Monat des uebergebenen $datums AZG-relevant ist.
+ * Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
+ *
+ * @param $mitarbeiter_uid
+ * @param string $timestamp DD-MM-YYYY
+ * @return bool
+ */
+ public function isAzgRelevant($mitarbeiter_uid, $datum = null)
+ {
+
+ $timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
+
+ $qry = 'SELECT
+ vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
+ vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
+ vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
+ FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
+ JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
+ JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
+ -- Dienstverhältnis(se) des Mitarbeiters
+ WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
+ -- AZG-relevant...
+ AND azgrelevant = TRUE
+ -- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
+ AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
+ -- Vorerst nur check, ob zumindest eine aufrechte Zeitaufzeichnungspflicht. Später Unterscheidung nach Dienstverhältnis.
+ --ORDER BY vbt.von DESC --aktuellster
+ LIMIT 1';
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ {
+ $this->result = array();
+
+ while ($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+
+ $obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->zeitaufzeichnung = $row->zeitaufzeichnung;
+ $obj->azgrelevant = $row->azgrelevant;
+ $obj->homeoffice = $row->homeoffice;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+
+ }
+
+ /**
+ * Prueft ob MitarbeiterIn im Monat des uebergebenen $datums AZG-relevant ist.
+ * Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
+ *
+ * @param $mitarbeiter_uid
+ * @param string $timestamp DD-MM-YYYY
+ * @return bool
+ */
+ public function hasHomeoffice($mitarbeiter_uid, $datum = null)
+ {
+
+ $timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
+
+ $qry = 'SELECT
+ vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
+ vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
+ vbtza.zeitaufzeichnung, vbtza.azgrelevant, vbtza.homeoffice
+ FROM hr.tbl_vertragsbestandteil_zeitaufzeichnung vbtza
+ JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
+ JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
+ -- Dienstverhältnis(se) des Mitarbeiters
+ WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
+ -- Homeoffice...
+ AND homeoffice = TRUE
+ -- ...im aktuellen Monat (default) oder im Monat des übergebenen $datums
+ AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
+ -- Vorerst nur check, ob zumindest eine aufrechte Zeitaufzeichnungspflicht. Später Unterscheidung nach Dienstverhältnis.
+ --ORDER BY vbt.von DESC --aktuellster
+ LIMIT 1';
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ {
+ $this->result = array();
+
+ while ($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+
+ $obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->zeitaufzeichnung = $row->zeitaufzeichnung;
+ $obj->azgrelevant = $row->azgrelevant;
+ $obj->homeoffice = $row->homeoffice;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+
+ }
+
+ /**
+ * Prueft ob MitarbeiterIn im Monat des uebergebenen $datums einen Allin Vertragsbestandteil hat.
+ * Wenn kein Datum übergeben wird, wird das heutige Datum gesetzt.
+ *
+ * @param $mitarbeiter_uid
+ * @param string $datum
+ * @return bool
+ */
+ public function isAllin($mitarbeiter_uid, $datum = null)
+ {
+ $timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
+
+ $qry = 'SELECT
+ vbt.vertragsbestandteil_id, vbt.dienstverhaeltnis_id, vbt.vertragsbestandteiltyp_kurzbz,
+ vbt.von, vbt.bis, vbt.insertamum, vbt.insertvon, vbt.updateamum, vbt.updatevon,
+ vbtft.freitexttyp_kurzbz, vbtftt.bezeichnung, vbtft.titel, vbtft.anmerkung
+ FROM hr.tbl_vertragsbestandteil_freitext vbtft
+ JOIN hr.tbl_vertragsbestandteil vbt USING (vertragsbestandteil_id)
+ JOIN hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
+ JOIN hr.tbl_vertragsbestandteil_freitexttyp vbtftt USING (freitexttyp_kurzbz)
+ -- Dienstverhältnis(se) des Mitarbeiters
+ WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
+ -- All-In
+ AND freitexttyp_kurzbz = \'allin\'
+ -- Vertragsbestandteil Freitext ist im Monat des übergebenen $datums
+ AND ((date_trunc(\'month\', '. $timestamp. ')::date < vbt.bis AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von) OR (vbt.bis IS NULL AND (date_trunc(\'month\', '. $timestamp. ') + interval \'1 month - 1 day\')::date > vbt.von))
+ -- Vorerst nur check, ob zumindest ein aufrechter Allin Vertragsbestandteil. Später Unterscheidung nach Dienstverhältnis.
+ --ORDER BY vbt.von DESC -- aktuellster
+ LIMIT 1';
+
+ if ($result = $this->db_query($qry))
+ {
+ if ($this->db_num_rows($result) > 0)
+ {
+ $this->result = array();
+
+ while ($row = $this->db_fetch_object())
+ {
+ $obj = new stdClass();
+
+ $obj->vertragsbestandteil_id = $row->vertragsbestandteil_id;
+ $obj->dienstverhaeltnis_id = $row->dienstverhaeltnis_id;
+ $obj->vertragsbestandteiltyp_kurzbz = $row->vertragsbestandteiltyp_kurzbz;
+ $obj->von = $row->von;
+ $obj->bis = $row->bis;
+ $obj->insertamum = $row->insertamum;
+ $obj->insertvon = $row->insertvon;
+ $obj->updateamum = $row->updateamum;
+ $obj->updatevon = $row->updatevon;
+ $obj->freitexttyp_kurzbz = $row->freitexttyp_kurzbz;
+ $obj->bezeichnung = $row->bezeichnung;
+ $obj->titel = $row->titel;
+ $obj->anmerkung = $row->anmerkung;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = "Fehler bei der Abfrage aufgetreten";
+ return false;
+ }
+ }
+}
+?>
diff --git a/include/zeitaufzeichnung_import_csv.class.php b/include/zeitaufzeichnung_import_csv.class.php
index 8a8e8bb2f..71f3ab75f 100644
--- a/include/zeitaufzeichnung_import_csv.class.php
+++ b/include/zeitaufzeichnung_import_csv.class.php
@@ -1,6 +1,7 @@
datum->formatDatum($data[self::STARTDT], 'Y-m-d');
- $verwendung = new bisverwendung();
- $verwendung->getVerwendungDatum($data[self::USER], $vonCSV);
- foreach ($verwendung->result as $v) {
- if ($v->homeoffice) {
- $this->zeit->homeoffice = true;
- } else {
- $this->addWarning($this->p->t("zeitaufzeichnung/homeofficeNichtErlaubt", [$vonCSV]));
- $this->zeit->homeoffice = false;
- }
- }
+ $vbt = new vertragsbestandteil();
+ $homeoffice = $vbt->hasHomeoffice($data[self::USER], $vonCSV);
+
+ if ($homeoffice) {
+ $this->zeit->homeoffice = true;
+ } else {
+ $this->addWarning($this->p->t("zeitaufzeichnung/homeofficeNichtErlaubt", [$vonCSV]));
+ $this->zeit->homeoffice = false;
+ }
}
}
}
|