Stundensatz wird bei Fixangestellten mit voller inkludierter Lehre (-1) immer auf NULL gesetzt. (abhängig von Config)

This commit is contained in:
Andreas Österreicher
2020-02-14 13:54:06 +01:00
parent 58a458dc73
commit 99dc36b501
3 changed files with 144 additions and 26 deletions
+3
View File
@@ -128,6 +128,9 @@ define('FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN',false);
// Legt fest, ob Vertragsdetails zum Lehrauftrag im Reiter LektorInnenzuteilung angezeigt werden
define('FAS_LV_LEKTORINNENZUTEILUNG_VERTRAGSDETAILS_ANZEIGEN', false);
// Legt fest ob bei Fixangestellten Lektoren der Stundensatz vorgeschlagen wird
define('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ', true);
// Legt fest, ob Vertragsdetails zum Projektauftrag im Reiter Projektarbeit angezeigt werden
define('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN', false);
+72 -20
View File
@@ -36,6 +36,7 @@
// ****************************************
require_once('../../config/vilesci.config.inc.php');
require_once('../../config/global.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/lehreinheit.class.php');
require_once('../../include/lehreinheitmitarbeiter.class.php');
@@ -52,6 +53,7 @@ require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/vertrag.class.php');
require_once('../../include/benutzergruppe.class.php');
require_once('../../include/bisverwendung.class.php');
$user = get_uid();
$db = new basis_db();
@@ -440,11 +442,18 @@ if(!$error)
elseif(isset($_POST['type']) && $_POST['type']=='lehreinheit_mitarbeiter_add')
{
//neue Lehreinheitmitarbeiterzuteilung anlegen
$qry = "SELECT tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id,
(SELECT fachbereich_kurzbz FROM public.tbl_fachbereich WHERE oe_kurzbz=lehrfach.oe_kurzbz) as fachbereich_kurzbz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
$qry = "SELECT
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.lehrveranstaltung_id,
lehrfach.oe_kurzbz as lehrfach_oe_kurzbz
FROM
lehre.tbl_lehrveranstaltung,
lehre.tbl_lehreinheit,
lehre.tbl_lehrveranstaltung as lehrfach
WHERE
tbl_lehrveranstaltung.lehrveranstaltung_id = tbl_lehreinheit.lehrveranstaltung_id
AND tbl_lehreinheit.lehrfach_id = lehrfach.lehrveranstaltung_id
AND lehreinheit_id = ".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
if($db->db_query($qry))
{
if($row = $db->db_fetch_object())
@@ -454,8 +463,8 @@ if(!$error)
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'suid') &&
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
!$rechte->isBerechtigtMultipleOe('assistenz', $row->lehrfach_oe_kurzbz, 'suid') &&
!$rechte->isBerechtigtMultipleOe('admin', $row->lehrfach_oe_kurzbz, 'suid'))
{
$error = true;
$return = false;
@@ -496,29 +505,47 @@ if(!$error)
$fixangestellt=false;
//Stundensatz aus tbl_mitarbeiter holen
$qry = "SELECT stundensatz, fixangestellt FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid=".$db->db_add_param($_POST['mitarbeiter_uid']);
if($result = $db->db_query($qry))
$mitarbeiter = new mitarbeiter();
if ($mitarbeiter->load($_POST['mitarbeiter_uid']))
{
if($row = $db->db_fetch_object($result))
$fixangestellt = $mitarbeiter->fixangestellt;
$lem->stundensatz = $mitarbeiter->stundensatz;
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
{
if($row->stundensatz!='')
$lem->stundensatz = $row->stundensatz;
else
$lem->stundensatz = '0';
$fixangestellt = ($row->fixangestellt=='t'?true:false);
$stsem = new studiensemester();
$stsem->load($semester_aktuell);
$bisverwendung = new bisverwendung();
$data = $mitarbeiter->stundensatz;
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
{
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
$bisverwendung->result[] = $bisverwendung;
}
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ($row_verwendung->ba1code == 3 && $row_verwendung->inkludierte_lehre == -1)
{
$fixangestellt = true;
$lem->stundensatz = '';
break;
}
}
}
else
{
$error=true;
$return=false;
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
$lem->stundensatz = $mitarbeiter->stundensatz;
}
}
else
{
$error=true;
$return=false;
$errormsg='Fehler bei einer Datenbankabfrage:'.$db->db_last_error();
$errormsg='Mitarbeiter '.$db->convert_html_chars($_POST['mitarbeiter_uid']).' wurde nicht gefunden';
}
$maxstunden=9999;
@@ -1381,7 +1408,32 @@ if(!$error)
$mitarbeiter = new mitarbeiter();
if($mitarbeiter->load($_POST['mitarbeiter_uid']))
{
$data = $mitarbeiter->stundensatz;
if (defined('FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ')
&& !FAS_LV_LEKTORINNENZUTEILUNG_FIXANGESTELLT_STUNDENSATZ)
{
$stsem = new studiensemester();
$stsem->load($semester_aktuell);
$bisverwendung = new bisverwendung();
$data = $mitarbeiter->stundensatz;
if(!$bisverwendung->getVerwendungRange($mitarbeiter->uid, $stsem->start, $stsem->ende))
{
$bisverwendung->getLastAktVerwendung($mitarbeiter->uid);
$bisverwendung->result[] = $bisverwendung;
}
foreach($bisverwendung->result as $row_verwendung)
{
// Bei echten Dienstvertraegen mit voller inkludierter Lehre wird kein Stundensatz
// geliefert da dies im Vertrag inkludiert ist.
if ($row_verwendung->ba1code == 3 && $row_verwendung->inkludierte_lehre == -1)
{
$data = '';
break;
}
}
}
else
$data = $mitarbeiter->stundensatz;
$return = true;
}
else
+69 -6
View File
@@ -404,8 +404,8 @@ class bisverwendung extends basis_db
$obj->verwendung_code = $row->verwendung_code;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->hauptberufcode = $row->hauptberufcode;
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$obj->habilitation = $this->db_parse_bool($row->habilitation);
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$obj->habilitation = $this->db_parse_bool($row->habilitation);
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->updatevon = $row->updatevon;
@@ -513,8 +513,8 @@ class bisverwendung extends basis_db
$this->verwendung_code = $row->verwendung_code;
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
$this->hauptberufcode = $row->hauptberufcode;
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$this->habilitation = $this->db_parse_bool($row->habilitation);
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$this->habilitation = $this->db_parse_bool($row->habilitation);
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->updatevon = $row->updatevon;
@@ -566,8 +566,8 @@ class bisverwendung extends basis_db
$this->verwendung_code = $row->verwendung_code;
$this->mitarbeiter_uid = $row->mitarbeiter_uid;
$this->hauptberufcode = $row->hauptberufcode;
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$this->habilitation = $this->db_parse_bool($row->habilitation);
$this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$this->habilitation = $this->db_parse_bool($row->habilitation);
$this->beginn = $row->beginn;
$this->ende = $row->ende;
$this->updatevon = $row->updatevon;
@@ -587,5 +587,68 @@ class bisverwendung extends basis_db
return false;
}
}
/**
* Laedt alle Verwendungen eines Mitarbeiters die in einen Datumsbereich fallen
* @param $uid UID des Mitarbeiters
* @param $von
* @param $bis
* @return true wenn ok, false wenn Fehler
*/
public function getVerwendungRange($uid, $von, $bis)
{
$datum_obj = new datum();
//laden des Datensatzes
$qry = "
SELECT
*
FROM
bis.tbl_bisverwendung
WHERE
mitarbeiter_uid=".$this->db_add_param($uid)."
AND
(
".$this->db_add_param($datum_obj->formatDatum($von,'Y-m-d'))." BETWEEN COALESCE(beginn,'1970-01-01') AND COALESCE(ende,'2999-12-31')
OR
".$this->db_add_param($datum_obj->formatDatum($bis,'Y-m-d'))." BETWEEN COALESCE(beginn,'1970-01-01') AND COALESCE(ende,'2999-12-31')
)
ORDER BY ende desc;";
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$obj = new bisverwendung();
$obj->bisverwendung_id = $row->bisverwendung_id;
$obj->ba1code = $row->ba1code;
$obj->ba2code = $row->ba2code;
$obj->beschausmasscode = $row->beschausmasscode;
$obj->verwendung_code = $row->verwendung_code;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->hauptberufcode = $row->hauptberufcode;
$obj->hauptberuflich = $this->db_parse_bool($row->hauptberuflich);
$obj->habilitation = $this->db_parse_bool($row->habilitation);
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->updatevon = $row->updatevon;
$obj->updateamum = $row->updateamum;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->vertragsstunden = $row->vertragsstunden;
$obj->dv_art = $row->dv_art;
$obj->inkludierte_lehre = $row->inkludierte_lehre;
$obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig);
$this->result[] = $obj;
}
return true;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
}
}
?>