This commit is contained in:
kindlm
2024-01-31 16:02:41 +01:00
21 changed files with 419 additions and 286 deletions
+35 -35
View File
@@ -98,7 +98,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$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
@@ -108,8 +108,8 @@ class vertragsbestandteil extends basis_db
-- 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 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
@@ -174,7 +174,7 @@ class vertragsbestandteil extends basis_db
return false;
}
$qry = 'SELECT
$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
@@ -184,10 +184,10 @@ class vertragsbestandteil extends basis_db
-- 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 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
(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;
@@ -251,7 +251,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$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
@@ -261,11 +261,11 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- AZG-relevant...
AND azgrelevant = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND azgrelevant = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND (
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
OR
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date > vbt.von)
)
ORDER BY vbt.von DESC --zur Sicherheit: aktuellster
@@ -324,7 +324,7 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$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
@@ -334,12 +334,12 @@ class vertragsbestandteil extends basis_db
-- Dienstverhältnis(se) des Mitarbeiters
WHERE dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
-- Homeoffice...
AND homeoffice = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND homeoffice = TRUE
-- ...am aktuellen Tag (default) oder am Tag des übergebenen $datums
AND (
(' . $timestamp . '::date BETWEEN vbt.von AND vbt.bis)
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date > vbt.von)
OR
(vbt.bis IS NULL AND ' . $timestamp . '::date >= vbt.von)
)
ORDER BY vbt.von DESC -- Zur Sicherheit: aktuellster
LIMIT 1';
@@ -396,7 +396,7 @@ class vertragsbestandteil extends basis_db
{
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$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
@@ -467,19 +467,19 @@ class vertragsbestandteil extends basis_db
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = '
SELECT
SELECT
1
FROM
hr.tbl_vertragsbestandteil vbt
JOIN
FROM
hr.tbl_vertragsbestandteil vbt
JOIN
hr.tbl_dienstverhaeltnis dv USING (dienstverhaeltnis_id)
WHERE
dv.mitarbeiter_uid = '. $this->db_add_param($mitarbeiter_uid). '
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
vbt.von::date <= '. $timestamp. '::date
AND
AND
vbt.bis::date >= '. $timestamp. '::date
';
@@ -515,7 +515,7 @@ class vertragsbestandteil extends basis_db
{
$timestamp = is_null($datum) ? 'NOW()' : '(date('. $this->db_add_param($datum).'))';
$qry = 'SELECT
$qry = 'SELECT
vbtstd.vertragsbestandteil_id,
vbtstd.wochenstunden,
vbtstd.teilzeittyp_kurzbz
@@ -528,17 +528,17 @@ class vertragsbestandteil extends basis_db
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))
-- DV mit Vertragsbestandteile Karenz herausnehmen, weil die Wochenstunden dieser DV dann ruhen
AND (
SELECT
COUNT(*) AS karenzen
FROM
hr.tbl_vertragsbestandteil vbt
WHERE
SELECT
COUNT(*) AS karenzen
FROM
hr.tbl_vertragsbestandteil vbt
WHERE
vbt.dienstverhaeltnis_id = dv.dienstverhaeltnis_id
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
AND
vbt.vertragsbestandteiltyp_kurzbz = \'karenz\'
AND
vbt.von::date <= '. $timestamp. '::date
AND
AND
vbt.bis::date >= '. $timestamp. '::date
) = 0
ORDER BY vbt.von DESC -- aktuellster
+163 -144
View File
@@ -25,23 +25,23 @@ require_once(dirname(__FILE__).'/sprache.class.php');
class zgv extends basis_db
{
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgv_code;
public $zgv_bez;
public $zgv_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvmas_code;
public $zgvmas_bez;
public $zgvmas_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $zgvdoktor_code;
public $zgvdoktor_bez;
public $zgvdoktor_kurzbz;
public $bezeichnung;
public $bezeichnung;
public $result = array();
public $result = array();
public function __construct($zgv_code=null)
public function __construct($zgv_code=null)
{
parent::__construct();
@@ -49,155 +49,174 @@ class zgv extends basis_db
$this->load($zgv_code);
}
/**
* Lädt eine zgv von tbl_zgv
* @param $zgv_code
* @return boolean
*/
public function load($zgv_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
/**
* Lädt eine zgv von tbl_zgv
* @param $zgv_code
* @return boolean
*/
public function load($zgv_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv WHERE zgv_code = '.$this->db_add_param($zgv_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgv_code = $row->zgv_code;
$this->zgv_bez = $row->zgv_bez;
$this->zgv_kurzbz = $row->zgv_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Lädt eine Master-ZGV von tbl_zgvmaster
* @param $zgvmas_code
* @return boolean
*/
public function load_mas($zgvmas_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
* Lädt eine Master-ZGV von tbl_zgvmaster
* @param $zgvmas_code
* @return boolean
*/
public function load_mas($zgvmas_code)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster WHERE zgvmas_code = '.$this->db_add_param($zgvmas_code, FHC_INTEGER).';';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->zgvmas_code = $row->zgvmas_code;
$this->zgvmas_bez = $row->zgvmas_bez;
$this->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$this->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
}
return true;
}
else
{
$this->errormsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
/**
* lädt alle ZGVs von tbl_zgv
* @return boolean
*/
public function getAll($onlyAktiv = false)
{
$sprache = new sprache();
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv';
/**
* lädt alle ZGVs von tbl_zgv
* @return boolean
*/
public function getAll()
{
$sprache = new sprache();
$qry ='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgv;';
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$qry .= " ORDER BY zgv_bez";
$this->result[] = $zgv;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv = new zgv();
$zgv->zgv_code = $row->zgv_code;
$zgv->zgv_bez = $row->zgv_bez;
$zgv->zgv_kurzbz = $row->zgv_kurzbz;
$zgv->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
/**
* Lädt alle Master ZGVs von tbl_zgvmaster
* @return boolean
*/
public function getAllMaster()
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster;';
$this->result[] = $zgv;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv_master = new zgv();
/**
* Lädt alle Master ZGVs von tbl_zgvmaster
* @return boolean
*/
public function getAllMaster($onlyAktiv = false)
{
$sprache = new sprache();
$qry = 'SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvmaster';
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
$this->result[] = $zgv_master;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
$qry .= " ORDER BY zgvmas_bez";
/**
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
* @return boolean
*/
public function getAllDoktor()
{
$sprache = new sprache();
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$zgv_master = new zgv();
if($result = $this->db_query($qry))
{
while($row= $this->db_fetch_object($result))
{
$zgv_doktor = new zgv();
$zgv_master->zgvmas_code = $row->zgvmas_code;
$zgv_master->zgvmas_bez = $row->zgvmas_bez;
$zgv_master->zgvmas_kurzbz = $row->zgvmas_kurzbz;
$zgv_master->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_master;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Abfrage aufgetreten';
return false;
}
}
$this->result[] = $zgv_doktor;
}
/**
* Lädt alle Doktor ZGVs von tbl_zgvdoktor
* @return boolean
*/
public function getAllDoktor($onlyAktiv = false)
{
$sprache = new sprache();
$qry='SELECT *,'.$sprache->getSprachQuery('bezeichnung').' FROM bis.tbl_zgvdoktor;';
if ($onlyAktiv === true)
{
$qry .= " WHERE aktiv";
}
$qry .= " ORDER BY zgvdoktor_bez";
if($result = $this->db_query($qry))
{
while($row= $this->db_fetch_object($result))
{
$zgv_doktor = new zgv();
}
else
{
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
$zgv_doktor->zgvdoktor_code = $row->zgvdoktor_code;
$zgv_doktor->zgvdoktor_bez = $row->zgvdoktor_bez;
$zgv_doktor->zgvdoktor_kurzbz = $row->zgvdoktor_kurzbz;
$zgv_doktor->bezeichnung=$sprache->parseSprachResult('bezeichnung',$row);
$this->result[] = $zgv_doktor;
}
}
else
{
$this->erromsg = "Fehler bei der Abfrage aufgetreten";
return false;
}
}
}
?>