Merge branch 'feature-3994/Digitaler_Lehrauftrag'

This commit is contained in:
Andreas Österreicher
2019-11-14 14:41:47 +01:00
84 changed files with 9580 additions and 1542 deletions
+1
View File
@@ -146,6 +146,7 @@ class lehreinheitmitarbeiter extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->ext_id = $row->ext_id;
$obj->vertrag_id = $row->vertrag_id;
$this->lehreinheitmitarbeiter[] = $obj;
}
+15 -4
View File
@@ -514,6 +514,13 @@ class statistik extends basis_db
if($this->sql!='')
{
$sql = $this->sql;
// Wenn im SQL ein $user vorkommt wird das durch den eingeloggten User ersetzt
if(strpos($sql, '$user')!==false)
{
$uid = get_uid();
$sql = str_replace('$user',$this->db_add_param($uid),$sql);
}
foreach($_REQUEST as $name=>$value)
{
if (is_array($value))
@@ -615,11 +622,15 @@ class statistik extends basis_db
$check = '/\$[0-9A-z]+/';
preg_match_all($check, $value, $result);
$result = $result[0];
$vars = array();
for($i=0;$i<count($result);$i++)
{
$result[$i] = mb_str_replace('$','',$result[$i]);
// $user wird automatisch ersetzt und daher auch nicht geliefert
if($result[$i]!='$user')
{
$vars[$i] = mb_str_replace('$','',$result[$i]);
}
}
return array_unique($result);
return array_unique($vars);
}
}
}
+48 -3
View File
@@ -19,6 +19,7 @@
* Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/functions.inc.php');
class vertrag extends basis_db
{
@@ -65,6 +66,8 @@ class vertrag extends basis_db
$this->anmerkung = $row->anmerkung;
$this->vertragsdatum = $row->vertragsdatum;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->vertragsstunden = $row->vertragsstunden;
$this->vertragsstunden_studiensemester_kurzbz = $row->vertragsstunden_studiensemester_kurzbz;
$this->new=false;
@@ -142,6 +145,8 @@ class vertrag extends basis_db
$obj->anmerkung = $row->anmerkung;
$obj->vertragsdatum = $row->vertragsdatum;
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$obj->vertragsstunden = $row->vertragsstunden;
$obj->vertragsstunden_studiensemester_kurzbz = $row->vertragsstunden_studiensemester_kurzbz;
$obj->vertragstyp_bezeichnung = $row->vertragstyp_bezeichnung;
@@ -375,7 +380,7 @@ class vertrag extends basis_db
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
tbl_projektbetreuer.person_id=".$this->db_add_param($person_id, FHC_INTEGER)."
AND vertrag_id IS NULL";
/*
UNION
@@ -518,10 +523,13 @@ class vertrag extends basis_db
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE
lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id)
as bezeichnung
as bezeichnung,
vertragsstunden,
vertragsstunden_studiensemester_kurzbz
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_vertrag USING (vertrag_id)
WHERE
vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER)."
UNION
@@ -535,11 +543,14 @@ class vertrag extends basis_db
tbl_lehreinheit.studiensemester_kurzbz,
tbl_projektbetreuer.betreuerart_kurzbz,
(SELECT nachname || ' ' || vorname FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid=tbl_projektarbeit.student_uid)
as bezeichnung
as bezeichnung,
vertragsstunden,
vertragsstunden_studiensemester_kurzbz
FROM
lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING(projektarbeit_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_vertrag USING (vertrag_id)
WHERE
vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";";
/* UNION
@@ -580,6 +591,8 @@ class vertrag extends basis_db
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$obj->betreuerart_kurzbz = $row->betreuerart_kurzbz;
$obj->bezeichnung = $row->bezeichnung;
$obj->vertragsstunden = $row->vertragsstunden;
$obj->vertragsstunden_studiensemester_kurzbz = $row->vertragsstunden_studiensemester_kurzbz;
$this->result[] = $obj;
}
return true;
@@ -1016,6 +1029,38 @@ class vertrag extends basis_db
}
}
/**
* Storniert einen Vertrag und seine Verbindungen
* @param $vertrag_id ID des Vertrags
* @param $mitarbeiter_uid
*/
public function cancel($vertrag_id, $mitarbeiter_uid)
{
$insertvon = get_uid();
$qry = "
UPDATE lehre.tbl_lehreinheitmitarbeiter SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
UPDATE lehre.tbl_projektbetreuer SET vertrag_id=null WHERE vertrag_id=".$this->db_add_param($vertrag_id, FHC_INTEGER).";
INSERT INTO lehre.tbl_vertrag_vertragsstatus(vertragsstatus_kurzbz, vertrag_id, uid, datum, insertamum, insertvon)
VALUES(".
$this->db_qoute('storno'). ", ".
$this->db_add_param($vertrag_id, FHC_INTEGER). ", ".
$this->db_add_param($mitarbeiter_uid). ", ".
$this->db_qoute('NOW()'). ", ".
$this->db_qoute('NOW()'). ", ".
$this->db_qoute($insertvon). "
);
";
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Stornieren des Vertrags';
return false;
}
}
/**
* Liefert alle Vertraege bei denen die Lehraufträge nicht zur Person passen.
* (zB Aufgrund Lektorenaenderung)