mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 07:52:16 +00:00
14774 Zeiterfassung: Homeoffice im CSV Import
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 $homeoffice;
|
||||
|
||||
public $ba1bez;
|
||||
@@ -123,6 +124,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);
|
||||
$this->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
return true;
|
||||
}
|
||||
@@ -179,6 +181,24 @@ class bisverwendung extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft das Datum
|
||||
* @param $date = string
|
||||
* @return true wenn ok, sonst false
|
||||
*/
|
||||
static public function verifyDate($date, $strict = true)
|
||||
{
|
||||
$dateTime = DateTime::createFromFormat('Y-m-d', $date);
|
||||
if ($strict) {
|
||||
$errors = DateTime::getLastErrors();
|
||||
if (!empty($errors['warning_count'])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return $dateTime !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft die Daten vor dem Speichern
|
||||
*
|
||||
@@ -191,6 +211,17 @@ class bisverwendung extends basis_db
|
||||
$this->errormsg = 'Vertragsstunden sind ungueltig';
|
||||
return false;
|
||||
}
|
||||
elseif(!$this->verifyDate($this->beginn) && !empty($this->beginn))
|
||||
{
|
||||
$this->errormsg = 'Start Datum ist kein Valides Datum: '.$this->beginn;
|
||||
return false;
|
||||
}
|
||||
elseif(!$this->verifyDate($this->ende) && !empty($this->ende))
|
||||
{
|
||||
$this->errormsg = 'End Datum ist kein Valides Datum: '.$this->ende;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -220,13 +251,29 @@ 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(is_bool($this->homeoffice))
|
||||
{
|
||||
$homeoffice = $this->db_add_param($this->homeoffice, FHC_BOOLEAN);
|
||||
}
|
||||
else
|
||||
{
|
||||
$homeoffice = '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).', '.
|
||||
@@ -244,7 +291,9 @@ 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.','.
|
||||
$homeoffice. ');';
|
||||
|
||||
}
|
||||
else
|
||||
@@ -268,7 +317,9 @@ 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.",".
|
||||
" homeoffice =". $homeoffice.
|
||||
" WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER);
|
||||
}
|
||||
|
||||
@@ -361,8 +412,8 @@ 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);
|
||||
$obj->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -419,6 +470,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);
|
||||
$obj->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
|
||||
$this->result[] = $obj;
|
||||
@@ -478,9 +530,9 @@ 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);
|
||||
$obj->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
@@ -499,14 +551,15 @@ class bisverwendung extends basis_db
|
||||
*/
|
||||
public function getLastVerwendung($uid)
|
||||
{
|
||||
//laden des Datensatzes18.08.2021
|
||||
//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))
|
||||
{
|
||||
@@ -520,6 +573,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;
|
||||
@@ -531,6 +585,8 @@ 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);
|
||||
$this->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -559,7 +615,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))
|
||||
{
|
||||
@@ -583,8 +639,9 @@ class bisverwendung extends basis_db
|
||||
$this->vertragsstunden = $row->vertragsstunden;
|
||||
$this->dv_art = $row->dv_art;
|
||||
$this->inkludierte_lehre = $row->inkludierte_lehre;
|
||||
$this->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
$this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
|
||||
$this->azgrelevant = $this->db_parse_bool($row->azgrelevant);
|
||||
$this->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -647,6 +704,8 @@ 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);
|
||||
$obj->homeoffice = $this->db_parse_bool($row->homeoffice);
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -775,5 +834,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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -7,6 +7,7 @@ $this->phrasen['zeitaufzeichnung/projekt']='Projekt';
|
||||
$this->phrasen['zeitaufzeichnung/projektphase']='Projektphase';
|
||||
$this->phrasen['zeitaufzeichnung/keineAuswahl']='keine Auswahl';
|
||||
$this->phrasen['zeitaufzeichnung/aktivitaet']='Aktivität';
|
||||
$this->phrasen['zeitaufzeichnung/homeoffice']='Homeoffice';
|
||||
$this->phrasen['zeitaufzeichnung/id']='ID';
|
||||
$this->phrasen['zeitaufzeichnung/user']='User';
|
||||
$this->phrasen['zeitaufzeichnung/start']='Start';
|
||||
@@ -63,3 +64,4 @@ $this->phrasen['zeitaufzeichnung/projektphase']='AP';
|
||||
$this->phrasen['zeitaufzeichnung/pauseEinfuegen']='Pause automatisch einfügen';
|
||||
$this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Zeitraum zu kurz für automatische Pause';
|
||||
$this->phrasen['zeitaufzeichnung/supportAnfragen']='<p><hr>Supportanfragen unter<br><a href="mailto:zeiterfassung@technikum-wien.at">zeiterfassung@technikum-wien.at</a></p>';
|
||||
$this->phrasen['zeitaufzeichnung/homeofficeNichtErlaubt']='Homeoffice für den Tag %s nicht erlaubt';
|
||||
|
||||
@@ -7,6 +7,7 @@ $this->phrasen['zeitaufzeichnung/projekt']='Project';
|
||||
$this->phrasen['zeitaufzeichnung/projektphase']='Projectphase';
|
||||
$this->phrasen['zeitaufzeichnung/keineAuswahl']='no selection';
|
||||
$this->phrasen['zeitaufzeichnung/aktivitaet']='Activity';
|
||||
$this->phrasen['zeitaufzeichnung/homeoffice']='Homeoffice';
|
||||
$this->phrasen['zeitaufzeichnung/id']='ID';
|
||||
$this->phrasen['zeitaufzeichnung/user']='User';
|
||||
$this->phrasen['zeitaufzeichnung/start']='Start';
|
||||
@@ -63,3 +64,4 @@ $this->phrasen['zeitaufzeichnung/projektphase']='WP';
|
||||
$this->phrasen['zeitaufzeichnung/pauseEinfuegen']='insert break automatically';
|
||||
$this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Timeslot too short for automatic break.';
|
||||
$this->phrasen['zeitaufzeichnung/supportAnfragen']='<p><hr>Contact for support<br><a href="mailto:zeiterfassung@technikum-wien.at">zeiterfassung@technikum-wien.at</a></p>';
|
||||
$this->phrasen['zeitaufzeichnung/homeofficeNichtErlaubt']='Homeoffice for day %s not allowed';
|
||||
|
||||
Reference in New Issue
Block a user