*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
@@ -28,6 +29,13 @@ require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/addon.class.php');
+require_once('../../../include/mail.class.php');
+require_once('../../../include/phrasen.class.php');
+require_once('../../../include/globals.inc.php');
+require_once('../../../include/sprache.class.php');
+
+$sprache = getSprache();
+$p = new phrasen($sprache);
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -43,16 +51,16 @@ else
{
//Bis August das aktuelle Jahr anzeigen
//Ab September das naechste
- if(date('m')<9)
+ if (date('m') < 9)
$year = date('Y');
else
- $year = date('Y')+1;
+ $year = date('Y') + 1;
}
-if(isset($_GET['uid']))
- $uid=$_GET['uid'];
+if (isset($_GET['uid']))
+ $uid = $_GET['uid'];
else
- $uid='';
+ $uid = '';
$datum_obj = new datum();
@@ -98,50 +106,74 @@ echo '
$mitarbeiter = new mitarbeiter();
$mitarbeiter->getUntergebene($user);
-if(count($mitarbeiter->untergebene)==0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
+if (count($mitarbeiter->untergebene) == 0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
die('Es sind Ihnen keine Mitarbeiter zugeteilt für die sie den Urlaub freigeben dürfen');
$untergebene = '';
foreach ($mitarbeiter->untergebene as $row)
{
- if($untergebene!='')
- $untergebene.=',';
+ if ($untergebene != '')
+ $untergebene .= ',';
$untergebene .= $db->db_add_param($row);
}
-if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
+if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
{
- if($untergebene!='')
- $untergebene.=',';
+ if ($untergebene != '')
+ $untergebene .= ',';
$untergebene .= $db->db_add_param($uid);
}
$qry = "SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid in($untergebene)";
$mitarbeiter = array();
-if($result = $db->db_query($qry))
+if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
- $mitarbeiter[$row->uid]['vorname']=$row->vorname;
- $mitarbeiter[$row->uid]['nachname']=$row->nachname;
- $mitarbeiter[$row->uid]['titelpre']=$row->titelpre;
- $mitarbeiter[$row->uid]['titelpost']=$row->titelpost;
+ $mitarbeiter[$row->uid]['vorname'] = $row->vorname;
+ $mitarbeiter[$row->uid]['nachname'] = $row->nachname;
+ $mitarbeiter[$row->uid]['titelpre'] = $row->titelpre;
+ $mitarbeiter[$row->uid]['titelpost'] = $row->titelpost;
}
}
-if($uid!='' && !isset($mitarbeiter[$uid]) && $uid!=$user && !$rechte->isBerechtigt('admin'))
+if ($uid != '' && !isset($mitarbeiter[$uid]) && $uid != $user && !$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diesen Mitarbeiter');
//Freigeben eines Urlaubes
-if(isset($_GET['action']) && $_GET['action']=='freigabe')
+if (isset($_GET['action']) && $_GET['action'] == 'freigabe')
{
$zeitsperre = new zeitsperre();
- if($zeitsperre->load($_GET['id']))
+ if ($zeitsperre->load($_GET['id']))
{
- if(isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
+ if (isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
{
$zeitsperre->freigabeamum = date('Y-m-d H:i:s');
$zeitsperre->freigabevon = $user;
- if(!$zeitsperre->save(false))
+ if (!$zeitsperre->save(false))
+ {
echo "Fehler bei der Freigabe: $zeitsperre->errormsg ";
+ }
+
+ //Bestätigungsmail an Mitarbeiter*in
+ $to = $zeitsperre->mitarbeiter_uid. '@'.DOMAIN;
+ $person = new person();
+ $fullNameVG = $person->getFullNameFromBenutzer($user);
+ $fullNameMA = $person->getFullNameFromBenutzer($zeitsperre->mitarbeiter_uid);
+ $from = 'noreply@'.DOMAIN;
+ $subject = $p->t('urlaubstool/urlaubsfreigabe'). date("d.m.Y", strtotime($zeitsperre->vondatum)). " ".
+ $p->t('urlaubstool/bis'). " ". date("d.m.Y", strtotime($zeitsperre->bisdatum));
+ $text = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n";
+ $text .= $p->t('urlaubstool/urlaubVon')." ".date("d.m.Y", strtotime($zeitsperre->vondatum))." ".
+ $p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($zeitsperre->bisdatum));
+ $text .= $p->t('urlaubstool/urlaubBis', array($fullNameVG));
+ $text .= "\n". "\n". $p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen');
+ $text .= "\n". APP_ROOT. 'cis/private/profile/urlaubstool.php';
+
+ $mail = new mail($to, $from, $subject, $text);
+
+ if ($mail->send())
+ {
+ echo "".$p->t('urlaubstool/bestaetigungsmailWurdeVersandt', array($fullNameMA))." ";
+ }
}
else
{
@@ -152,40 +184,38 @@ if(isset($_GET['action']) && $_GET['action']=='freigabe')
{
echo 'Die Zeitsperre konnte nicht geladen werden ';
}
-
}
-//Monat zeichenen
+//Monat zeichnen
function draw_monat($monat)
{
global $untergebene, $mitarbeiter, $year, $datum_obj, $uid;
- if (!$db = new basis_db())
- die('Fehler beim Oeffnen der Datenbankverbindung');
-
+ if (!$db = new basis_db())
+ die('Fehler beim Oeffnen der Datenbankverbindung');
echo '';
echo '';
- echo date('F',mktime(0,0,0,$monat,1,date('Y')));
- echo " ".($monat>8?$year-1:$year);
+ echo date('F', mktime(0,0,0,$monat,1,date('Y')));
+ echo " ".($monat > 8?$year-1:$year);
echo ' ';
//Alle Anzeigen bei denen das von- oder bisdatum in dieses monat fallen
$qry = "SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub'
AND
(
- (date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat>8?$year-1:$year)."')
+ (date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat > 8?$year - 1:$year)."')
OR
- (date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat>8?$year-1:$year)."')
+ (date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat > 8?$year - 1:$year)."')
)";
- if($uid=='')
- $qry.=" AND mitarbeiter_uid in($untergebene)";
+ if($uid == '')
+ $qry.= " AND mitarbeiter_uid in($untergebene)";
else
- $qry.=" AND mitarbeiter_uid=".$db->db_add_param($uid);
+ $qry.= " AND mitarbeiter_uid=". $db->db_add_param($uid);
$qry.="ORDER BY vondatum, mitarbeiter_uid";
- if($result = $db->db_query($qry))
+ if ($result = $db->db_query($qry))
{
- while($row = $db->db_fetch_object($result))
+ while ($row = $db->db_fetch_object($result))
{
$vertretung = new benutzer($row->vertretung_uid);
$freigabe='';
@@ -207,7 +237,7 @@ function draw_monat($monat)
}
//Jahr mit Pfeilen zum blaettern anzeigen
-if($uid!='')
+if ($uid!='')
{
echo '';
echo "Alle Mitarbeiter anzeigen ";
@@ -232,16 +262,16 @@ echo ' ';
//Tabelle mit den Monaten ausgeben
echo '';
$monat=9;
-for($i=0;$i<12;$i++)
+for($i = 0;$i < 12;$i++)
{
- if($i%3==0)
+ if ($i%3 == 0)
{
echo ' ';
}
draw_monat($monat);
$monat++;
- if($monat>12)
- $monat=1;
+ if ($monat > 12)
+ $monat = 1;
}
echo '
diff --git a/cms/dms.php b/cms/dms.php
index aa79ab0c3..d6ee5be58 100644
--- a/cms/dms.php
+++ b/cms/dms.php
@@ -85,6 +85,7 @@ if($doc->isLocked($id))
$dokumente_arr[] .= 'ZgvBaPre';
$dokumente_arr[] .= 'ZgvMaPre';
$dokumente_arr[] .= 'InvitLet';
+ $dokumente_arr[] .= 'VorlSpB2';
$dokumente_arr[] .= 'ZeitBest';
}
if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr))
diff --git a/cms/menu.inc.php b/cms/menu.inc.php
index 136187f70..7375ee849 100644
--- a/cms/menu.inc.php
+++ b/cms/menu.inc.php
@@ -19,7 +19,7 @@
*/
/**
* Dieses File enthaelt Hilfsklassen zur Anzeige des CMS-Menues
- *
+ *
* mit drawSubmenu($id) wird das enstprechende Menue gezeichnet.
*/
require_once(dirname(__FILE__).'/../include/functions.inc.php');
@@ -30,13 +30,14 @@ $params = array();
foreach($_REQUEST as $key=>$value)
$params[$key]=$value;
+$user = null;
//Parameter fuer Include Addons
$includeparams = array();
$contentobjects=array();
$chldsobject = array();
/**
* Zeichnet einen Menueeintrag aus dem CMS System
- *
+ *
* @param $content_id
*/
function drawSubmenu($content_id)
@@ -47,16 +48,16 @@ function drawSubmenu($content_id)
global $contentobjects;
$content = new content();
$sprache = getSprache();
-
+
// Daten Laden
-
+
// Alle Kindelemente des Contents holen
$ids = $content->getAllChilds($content_id);
- // Alle vorkommenden Contenteintraege laden
+ // Alle vorkommenden Contenteintraege laden
$content->loadArray($ids, $sprache, true);
$contentobjects = $content->result;
-
+
// Baumstruktur laden
$childsobject = $content->getChildArray($content_id);
@@ -91,7 +92,7 @@ function drawSubmenu1($content_id)
drawEntry($contentobj);
}
}
-
+
}
}
@@ -101,12 +102,13 @@ function drawSubmenu1($content_id)
*/
function drawEntry($item)
{
- global $childsobject;
+ global $childsobject, $user;
//pruefen ob der Content eine Berechtigung erfordert
if($item->locked)
{
- $user = get_uid();
+ if(is_null($user))
+ $user = get_uid();
$content = new content();
//wenn der User nicht berechtigt ist, dann wird der Eintrag nicht angezeigt
if(!$content->berechtigt($item->content_id, $user))
@@ -139,7 +141,7 @@ function drawEntry($item)
Redirect($item);
else
DrawLink(APP_ROOT.'cms/content.php?content_id='.$item->content_id,'content',$item->titel);
-
+
echo "";
}
}
@@ -155,7 +157,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
{
if($target=='')
$target='content';
-
+
if($open)
$class='class="selected"';
else
@@ -167,7 +169,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
* Redirects sind Links Seiten ausserhalb des CMS
* die URL kann Variablen enthalten. Diese werden hier ersetzt.
* Danach wird der Link angezeigt.
- *
+ *
* @param $content_id ContentID des Redirects
* @param $name Anzeigename des Links
* @param $content_id_Submenu ID des Submenues das geoeffnet werden soll (optional)
@@ -175,42 +177,42 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
function Redirect($content, $content_id_Submenu=null)
{
global $sprache, $params;
-
+
$xml = new DOMDocument();
if($content->content!='')
{
$xml->loadXML($content->content);
}
-
+
if($xml->getElementsByTagName('url')->item(0))
$url = $xml->getElementsByTagName('url')->item(0)->nodeValue;
else
$url='';
-
+
//Variablen Ersetzen
foreach($params as $key=>$value)
{
$url = str_replace('$'.$key,addslashes($value),$url);
}
-
+
if($xml->getElementsByTagName('target')->item(0))
$target = $xml->getElementsByTagName('target')->item(0)->nodeValue;
else
$target='';
-
+
DrawLink($url, $target, $content->titel, $content_id_Submenu, $content->menu_open);
}
/**
- * Bei Content mit Include Templates wird
+ * Bei Content mit Include Templates wird
* das entsprechende Menu-Addon geladen und inkludiert
- *
+ *
* @param $content_id
*/
function IncludeMenuAddon($content)
{
global $sprache, $includeparams;
-
+
$xml = new DOMDocument();
if($content->content!='')
{
@@ -223,6 +225,6 @@ function IncludeMenuAddon($content)
if($url!='')
{
$includeparams['content']=$content;
- include(dirname(__FILE__).'/menu/'.$url);
+ include(dirname(__FILE__).'/menu/'.$url);
}
}
diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php
index f7a30158f..9504285ce 100644
--- a/content/fasoverlay.js.php
+++ b/content/fasoverlay.js.php
@@ -1539,7 +1539,7 @@ function OpenAboutDialog()
// ****
function OpenManual()
{
- window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
+ window.open('https://wiki.fhcomplete.info/','_blank');
}
// ****
diff --git a/content/mitarbeiter/mitarbeiterDBDML.php b/content/mitarbeiter/mitarbeiterDBDML.php
index 6bb1513d0..eb7ba6650 100644
--- a/content/mitarbeiter/mitarbeiterDBDML.php
+++ b/content/mitarbeiter/mitarbeiterDBDML.php
@@ -174,7 +174,13 @@ if(!$error)
elseif($_POST['zeitaufzeichnungspflichtig']=='false')
$verwendung->zeitaufzeichnungspflichtig = false;
else
- $verwendung->zeitaufzeichnungspflichtig = '';
+ $verwendung->azgrelevant = '';
+ if($_POST['azgrelevant']=='true')
+ $verwendung->azgrelevant = true;
+ elseif($_POST['azgrelevant']=='false')
+ $verwendung->azgrelevant = false;
+ else
+ $verwendung->azgrelevant = '';
if($verwendung->save())
{
diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php
index 3495ce3c3..d4d2aae9a 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.js.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.js.php
@@ -1233,6 +1233,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
dv_art = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-dv_art').value;
inkludierte_lehre = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value;
zeitaufzeichnungspflichtig = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked;
+ azgrelevant = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked;
if(verwendung_code=='1')
{
@@ -1291,6 +1292,7 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
req.add('dv_art', dv_art);
req.add('inkludierte_lehre', inkludierte_lehre);
req.add('zeitaufzeichnungspflichtig', zeitaufzeichnungspflichtig);
+ req.add('azgrelevant', azgrelevant);
var response = req.executePOST();
diff --git a/content/mitarbeiter/mitarbeiterverwendungdialog.js.php b/content/mitarbeiter/mitarbeiterverwendungdialog.js.php
index 841f167e9..1119c468d 100644
--- a/content/mitarbeiter/mitarbeiterverwendungdialog.js.php
+++ b/content/mitarbeiter/mitarbeiterverwendungdialog.js.php
@@ -70,6 +70,7 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
dv_art = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dv_art" ));
inkludierte_lehre = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#inkludierte_lehre" ));
zeitaufzeichnungspflichtig = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zeitaufzeichnungspflichtig" ));
+ azgrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#azgrelevant" ));
}
else
{
@@ -87,7 +88,7 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
var predicateNS = "http://www.technikum-wien.at/mitarbeiter/rdf";
fixangestellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fixangestellt" ));
-
+ azgrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#azgrelevant" ));
//neuer Datensatz wird angelegt
MitarbeiterVerwendungDetailNeu='true';
@@ -112,6 +113,14 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
{
zeitaufzeichnungspflichtig='Nein';
}
+ if (!azgrelevant)
+ {
+ azgrelevant='Nein';
+ }
+ else
+ {
+ azgrelevant='Ja';
+ }
}
document.getElementById('mitarbeiter-verwendung-detail-menulist-beschart1').value=ba1code;
@@ -138,7 +147,10 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=true;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=false;
-
+ if(azgrelevant=='Nein')
+ document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=false;
+ else
+ document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=true;
MitarbeiterVerwendungDetailToggleHauptberuf();
MitarbeiterVerwendungVerwendungChange();
}
diff --git a/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php b/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php
index bc87a097d..197df7d27 100644
--- a/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php
+++ b/content/mitarbeiter/mitarbeiterverwendungdialog.xul.php
@@ -167,6 +167,10 @@ echo '
+
+
+
+
diff --git a/content/tempus.js.php b/content/tempus.js.php
index e4dad5e43..5a734ebf3 100644
--- a/content/tempus.js.php
+++ b/content/tempus.js.php
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
- window.open('https://wiki.fhcomplete.org/doku.php?id=tempus:allgemeines','Manual');
+ window.open('https://wiki.fhcomplete.info/doku.php?id=tempus:allgemeines','Manual');
}
// ****
diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php
index 799cfc93e..598edcac1 100644
--- a/include/bisverwendung.class.php
+++ b/include/bisverwendung.class.php
@@ -47,6 +47,7 @@ class bisverwendung extends basis_db
public $dv_art;
public $inkludierte_lehre;
public $zeitaufzeichnungspflichtig;
+ public $azgrelevant;
public $ba1bez;
public $ba2bez;
@@ -122,6 +123,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);
return true;
}
else
@@ -247,13 +249,21 @@ 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($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).', '.
@@ -271,7 +281,8 @@ 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. ');';
}
else
@@ -295,7 +306,8 @@ 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.
" WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER);
}
@@ -388,7 +400,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);
$this->result[] = $obj;
}
return true;
@@ -445,6 +457,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);
$this->result[] = $obj;
}
@@ -503,6 +516,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);
$this->result[] = $obj;
}
@@ -524,12 +538,13 @@ class bisverwendung extends basis_db
{
//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))
{
@@ -543,6 +558,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;
@@ -554,6 +570,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);
}
return true;
}
@@ -582,7 +599,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))
{
@@ -607,6 +624,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);
}
return true;
}
@@ -669,6 +687,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);
$this->result[] = $obj;
}
@@ -797,5 +816,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;
+ }
+ }
}
?>
diff --git a/include/dokument.class.php b/include/dokument.class.php
index a2eab0e68..6dec9a66d 100644
--- a/include/dokument.class.php
+++ b/include/dokument.class.php
@@ -1,5 +1,5 @@
db_add_param($prestudent_id, FHC_INTEGER);
-
+
if(!$archivdokumente)
{
$qry.=" AND (tbl_vorlage.archivierbar = FALSE OR tbl_vorlage.archivierbar IS NULL)";
@@ -401,7 +401,7 @@ class dokument extends basis_db
}
$qry = "SELECT tbl_dokument.* , tbl_dokumentstudiengang.*
- FROM public.tbl_dokument
+ FROM public.tbl_dokument
JOIN public.tbl_dokumentstudiengang USING(dokument_kurzbz)
LEFT JOIN public.tbl_vorlage ON (tbl_dokument.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz)
WHERE studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER);
@@ -836,11 +836,11 @@ class dokument extends basis_db
return false;
}
}
-
+
/**
* Liefert die Studiengänge bei denen das übergebene Dokument benötigt wird
* @param string $dokument_kurzbz Kurzbz des Dokuments
- * @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
+ * @param integer $person_id Optional. Die Dokumente werden zusätzlich auf die Studiengänge eingeschränkt für die sich eine Person beworben hat.
* @return object Objekt mit den Studiengängen oder false.
*/
public function getStudiengaengeDokument($dokument_kurzbz, $person_id = null)
@@ -854,7 +854,7 @@ class dokument extends basis_db
AND person_id =".$this->db_add_param($person_id, FHC_INTEGER)."
AND tbl_prestudentstatus.status_kurzbz = 'Interessent'
AND get_rolle_prestudent (prestudent_id, NULL) NOT IN ('Abgewiesener','Abbrecher')
-
+
ORDER BY kuerzel";
if($result = $this->db_query($qry))
@@ -869,12 +869,12 @@ class dokument extends basis_db
$stg_obj->studiengang_kz = $row->studiengang_kz;
$stg_obj->english = $row->english;
$stg_obj->stufe = $row->stufe;
-
+
$this->result[] = $stg_obj;
}
return $stg_obj;
}
- else
+ else
return false;
}
else
@@ -882,6 +882,138 @@ class dokument extends basis_db
$this->errormsg="Fehler bei der Abfrage aufgetreten";
return false;
}
+ }
+ /**
+ * Akzeptiert ein bestimmtes Dokument
+ * @param char $dokument_kurzbz Bezeichner Dokument.
+ * @param int $person_id Personenkennzeichen.
+ * @return boolean true wenn akzeptiert bzw geprüft ohne Akzeptieren, false wenn Fehler
+ */
+ public function akzeptiereDokument($dokument_kurzbz, $person_id)
+ {
+ $db = new basis_db();
+ $arrayDoksZuAkzeptieren = array();
+
+ //get Prestudent_ids
+ $qry = "SELECT
+ prestudent_id
+ FROM
+ tbl_prestudent ps, tbl_studiengang sg
+ WHERE
+ ps.studiengang_kz = sg.studiengang_kz
+ AND sg.typ = 'm'
+ AND person_id = ".$this->db_add_param($person_id)."
+ AND not exists(
+ SELECT *
+ from tbl_dokumentprestudent dok
+ where dok.prestudent_id = ps.prestudent_id
+ and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).")";
+
+ //gibt ein Array von zu akzeptierenden Dokumenten zurück
+ if ($db->db_query($qry))
+ {
+ $num_rows = $db->db_num_rows();
+
+ if ($num_rows > 0)
+ {
+ while ($row = $db->db_fetch_object())
+ {
+ $arrayDoksZuAkzeptieren[] = $row->prestudent_id;
+ }
+
+ //für alle prestudent_ids das Dokument akzeptieren
+ $qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
+
+ foreach ($arrayDoksZuAkzeptieren as $prestudent_id)
+ {
+ $qry .= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id. ")";
+
+ if (next($arrayDoksZuAkzeptieren) == true)
+ {
+ $qry .= ",";
+ }
+ }
+ $qry .= ";";
+
+ if ($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Akzeptieren';
+ return false;
+ }
+ }
+ return true;
+ }
+
+ else
+ return false;
+ }
+
+ /**
+ * entakzeptiert ein bestimmtes Dokument
+ * @param char $dokument_kurzbz Kurzbezeichnung des zu entakzeptierenden Dokuments.
+ * @param int $person_id Personenkennzeichen.
+ * @return boolean true wenn entakzeptiert bzw geprüft ohne Entakzeptieren, false wenn Fehler
+ */
+ public function entakzeptiereDokument($dokument_kurzbz, $person_id)
+ {
+ $db = new basis_db();
+ $arrayDoksZuEntakzeptieren = array();
+
+ //get Prestudent_ids
+ $qry = "SELECT
+ prestudent_id
+ from
+ tbl_dokumentprestudent
+ join
+ tbl_prestudent using (prestudent_id)
+ where
+ person_id = ".$this->db_add_param($person_id)."
+ and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz);
+
+ //gibt ein Array von zu Entakzeptierenden Dokumenten zurück
+ if ($db->db_query($qry))
+ {
+ $num_rows = $db->db_num_rows();
+
+ if ($num_rows > 0)
+ {
+ while ($row = $db->db_fetch_object())
+ {
+ $arrayDoksZuEntakzeptieren[] = $row->prestudent_id;
+ }
+
+ //für alle prestudent_ids das Dokument Entakzeptieren
+ $qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in (";
+
+ foreach ($arrayDoksZuEntakzeptieren as $prestudent_id)
+ {
+ $qry .= $prestudent_id;
+
+ if (next($arrayDoksZuEntakzeptieren) == true)
+ {
+ $qry .= ",";
+ }
+ }
+ $qry .= ") AND dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).";";
+
+ if ($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Entakzeptieren';
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ return false;
}
}
diff --git a/include/notiz.class.php b/include/notiz.class.php
index 459bdc6a6..5d237e2b8 100644
--- a/include/notiz.class.php
+++ b/include/notiz.class.php
@@ -1,618 +1,619 @@
- and
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-require_once(dirname(__FILE__).'/dms.class.php');
-
-class notiz extends basis_db
-{
- public $new;
- public $result=array();
- public $dokumente=array();
-
- //Tabellenspalten
- public $notiz_id;
- public $titel;
- public $text;
- public $verfasser_uid;
- public $bearbeiter_uid;
- public $start;
- public $ende;
- public $erledigt;
- public $insertamum;
- public $insertvon;
- public $updateamum;
- public $updatevon;
-
- public $projekt_kurzbz;
- public $projektphase_id;
- public $projekttask_id;
- public $uid;
- public $person_id;
- public $prestudent_id;
- public $bestellung_id;
- public $lehreinheit_id;
- public $anrechnung_id;
-
- /**
- * Konstruktor
- * @param $notiz_id
- */
- public function __construct($notiz_id = null)
- {
- parent::__construct();
-
- if($notiz_id != null)
- $this->load($notiz_id);
- }
-
- /**
- * Laedt eine Notiz
- * @param $notiz_id
- * @return true wenn ok, false im Fehlerfall
- */
- public function load($notiz_id)
- {
- if(!is_numeric($notiz_id))
- {
- $this->errormsg = 'NotizID ist ungueltig';
- return false;
- }
-
- $qry = "SELECT * FROM public.tbl_notiz WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->notiz_id=$row->notiz_id;
- $this->titel=$row->titel;
- $this->text=$row->text;
- $this->verfasser_uid=$row->verfasser_uid;
- $this->bearbeiter_uid=$row->bearbeiter_uid;
- $this->start=$row->start;
- $this->ende=$row->ende;
- $this->erledigt=$this->db_parse_bool($row->erledigt);
- $this->insertamum=$row->insertamum;
- $this->insertvon=$row->insertvon;
- $this->updateamum=$row->updateamum;
- $this->updatevon=$row->updatevon;
- $this->getDokumente($row->notiz_id);
-
- return true;
- }
- else
- {
- $this->errormsg = 'Datensatz wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Löscht eine Notiz
- * @param $notiz_id
- * @return true wenn ok, false im Fehlerfall
- */
- public function delete($notiz_id)
- {
- if(!is_numeric($notiz_id))
- {
- $this->errormsg = 'NotizID ist ungueltig';
- return false;
- }
-
- // Dokumente der Notiz löschen
- $this->getDokumente($notiz_id);
- if(!empty($this->dokumente))
- {
- $dms = new dms();
-
- foreach($this->dokumente as $dms_id)
- {
- $dms->deleteDms($dms_id);
- }
- }
-
- $qry = "Delete FROM public.tbl_notiz WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
-
- if(!$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Loeschen der Daten';
- return false;
- }
- return true;
- }
-
- /**
- * Prueft die Daten vor dem Speichern
- * auf Gueltigkeit
- */
- public function validate()
- {
- return true;
- }
-
- /**
- * Speichert den aktuellen Datensatz in die Datenbank
- * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
- * andernfalls wird der Datensatz mit der ID in $notiz_id aktualisiert
- * @return true wenn ok, false im Fehlerfall
- */
- public function save($new=null)
- {
- if($new==null)
- $new=$this->new;
-
- if(!$this->validate())
- return false;
-
- if($new)
- {
- //Neuen Datensatz einfuegen
- $qry='BEGIN;INSERT INTO public.tbl_notiz (titel, text, verfasser_uid,
- bearbeiter_uid, start, ende, erledigt, insertamum, insertvon,
- updateamum, updatevon) VALUES('.
- $this->db_add_param($this->titel).', '.
- $this->db_add_param($this->text).', '.
- $this->db_add_param($this->verfasser_uid).','.
- $this->db_add_param($this->bearbeiter_uid).','.
- $this->db_add_param($this->start).','.
- $this->db_add_param($this->ende).','.
- $this->db_add_param($this->erledigt,FHC_BOOLEAN).','.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).','.
- $this->db_add_param($this->updateamum).','.
- $this->db_add_param($this->updatevon).');';
- }
- else
- {
- $qry='UPDATE public.tbl_notiz SET '.
- 'titel='.$this->db_add_param($this->titel).', '.
- 'text='.$this->db_add_param($this->text).', '.
- 'verfasser_uid='.$this->db_add_param($this->verfasser_uid).', '.
- 'bearbeiter_uid='.$this->db_add_param($this->bearbeiter_uid).', '.
- 'start='.$this->db_add_param($this->start).', '.
- 'ende='.$this->db_add_param($this->ende).', '.
- 'erledigt='.$this->db_add_param($this->erledigt,FHC_BOOLEAN).', '.
- 'updateamum='.$this->db_add_param($this->updateamum).', '.
- 'updatevon='.$this->db_add_param($this->updatevon).' '.
- 'WHERE notiz_id='.$this->db_add_param($this->notiz_id,FHC_INTEGER).';';
- }
-
- if($this->db_query($qry))
- {
- if($new)
- {
- $qry="SELECT currval('seq_notiz_notiz_id') as id;";
- if($result = $this->db_query($qry))
- {
- if($row = $this->db_fetch_object($result))
- {
- $this->notiz_id = $row->id;
- $this->db_query('COMMIT;');
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- $this->db_query('ROLLBACK');
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- $this->db_query('ROLLBACK');
- return false;
- }
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern des Datensatzes';
- return false;
- }
- }
-
- /**
- * Speichert die Zuordnung einer Notiz
- *
- */
- public function saveZuordnung()
- {
- $qry = "INSERT INTO public.tbl_notizzuordnung(notiz_id, projekt_kurzbz, projektphase_id, projekttask_id,
- uid, person_id, prestudent_id, bestellung_id, lehreinheit_id, anrechnung_id) VALUES(".
- $this->db_add_param($this->notiz_id, FHC_INTEGER).','.
- $this->db_add_param($this->projekt_kurzbz).','.
- $this->db_add_param($this->projektphase_id, FHC_INTEGER).','.
- $this->db_add_param($this->projekttask_id, FHC_INTEGER).','.
- $this->db_add_param($this->uid).','.
- $this->db_add_param($this->person_id, FHC_INTEGER).','.
- $this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
- $this->db_add_param($this->bestellung_id, FHC_INTEGER).','.
- $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
- $this->db_add_param($this->anrechnung_id, FHC_INTEGER).');';
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern der Daten';
- return false;
- }
- }
-
- /**
- * Speichert ein Dokument zur Notiz
- * @param int $dms_id
- * @return boolean
- */
- public function saveDokument($dms_id)
- {
- $qry = "INSERT INTO public.tbl_notiz_dokument(notiz_id, dms_id) VALUES(".
- $this->db_add_param($this->notiz_id, FHC_INTEGER).','.
- $this->db_add_param($dms_id, FHC_INTEGER).');';
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern der Daten';
- return false;
- }
- }
-
- /**
- *
- * Laedt die Notizen
- * @param $erledigt
- * @param $projekt_kurzbz
- * @param $projektphase_id
- * @param $projekttask_id
- * @param $uid
- * @param $person_id
- * @param $prestudent_id
- * @param $bestellung_id
- * @param $user
- * @param $lehreinheit_id
- * @param $anrechnung_id
- * @return boolean
- */
- public function getNotiz(
- $erledigt=null,
- $projekt_kurzbz=null,
- $projektphase_id=null,
- $projekttask_id=null,
- $uid=null,
- $person_id=null,
- $prestudent_id=null,
- $bestellung_id=null,
- $user=null,
- $lehreinheit_id=null,
- $stundenplandev_id=null,
- $anrechnung_id=null,
- $titel=null)
- {
- $qry = "SELECT
- *
- FROM
- public.tbl_notiz
- LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
- WHERE 1=1";
-
- if(!is_null($erledigt))
- {
- if($erledigt)
- $qry.=" AND erledigt=true";
- else
- $qry.=" AND erledigt=false";
- }
- if($projekt_kurzbz!='')
- $qry.=" AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
- if($projektphase_id!='')
- $qry.=" AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
- if($projekttask_id!='')
- $qry.=" AND projekttask_id=".$this->db_add_param($projekttask_id, FHC_INTEGER);
- if($uid!='')
- $qry.=" AND uid=".$this->db_add_param($uid);
- if($person_id!='')
- $qry.=" AND person_id=".$this->db_add_param($person_id, FHC_INTEGER);
- if($prestudent_id!='')
- $qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
- if($bestellung_id!='')
- $qry.=" AND bestellung_id=".$this->db_add_param($bestellung_id, FHC_INTEGER);
- if($user!='')
- $qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
- if($lehreinheit_id!='')
- $qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
- if($anrechnung_id!='')
- $qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
- if($titel!='')
- $qry.=" AND titel=".$this->db_add_param($titel);
-
- $qry.=' ORDER BY start, ende, titel';
-
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new notiz();
-
- $obj->notiz_id=$row->notiz_id;
- $obj->titel=$row->titel;
- $obj->text=$row->text;
- $obj->verfasser_uid=$row->verfasser_uid;
- $obj->bearbeiter_uid=$row->bearbeiter_uid;
- $obj->start=$row->start;
- $obj->ende=$row->ende;
- $obj->erledigt=$this->db_parse_bool($row->erledigt);
- $obj->insertamum=$row->insertamum;
- $obj->insertvon=$row->insertvon;
- $obj->updateamum=$row->updateamum;
- $obj->updatevon=$row->updatevon;
- $obj->getDokumente($row->notiz_id);
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- *
- * Laedt die Notizen vom Bewerbungstool
- * @param integer $person_id
- * @param integer $prestudent_id
- * @return boolean
- */
- public function getBewerbungstoolNotizen($person_id, $prestudent_id = null)
- {
- $qry = "SELECT
- *
- FROM
- public.tbl_notiz
- LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
- WHERE (insertvon = 'online' OR insertvon = 'online_notiz')
- AND person_id = ".$this->db_add_param($person_id, FHC_INTEGER);
- if ($prestudent_id != '')
- {
- $qry .= " AND prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
- }
-
- $qry .= " ORDER BY notiz_id";
-
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new notiz();
-
- $obj->notiz_id=$row->notiz_id;
- $obj->titel=$row->titel;
- $obj->text=$row->text;
- $obj->verfasser_uid=$row->verfasser_uid;
- $obj->bearbeiter_uid=$row->bearbeiter_uid;
- $obj->start=$row->start;
- $obj->ende=$row->ende;
- $obj->erledigt=$this->db_parse_bool($row->erledigt);
- $obj->insertamum=$row->insertamum;
- $obj->insertvon=$row->insertvon;
- $obj->updateamum=$row->updateamum;
- $obj->updatevon=$row->updatevon;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
-
- /**
- * TEMPORARY: kurzfristig wird für das Onlinebewerbungstool die Ausbildung
- * (Name und Adresse der besuchten Schule) in eine Notiz mit
- * insertvon = online_ausbildung gespeichert.
- * Wird auf UDF umgebaut!
- *
- * Laedt die Notizen zur Ausbilund vom Bewerbungstool
- * @param $person_id int
- * @return boolean
- */
- public function getBewerbungstoolNotizenAusbildung($person_id)
- {
- $qry = 'SELECT
- *
- FROM
- public.tbl_notiz
- LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
- WHERE person_id = ' . $this->db_add_param($person_id, FHC_INTEGER) .
- ' AND insertvon = ' . $this->db_add_param('online_ausbildung') .
- ' ORDER BY notiz_id';
-
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new notiz();
-
- $obj->notiz_id=$row->notiz_id;
- $obj->titel=$row->titel;
- $obj->text=$row->text;
- $obj->verfasser_uid=$row->verfasser_uid;
- $obj->bearbeiter_uid=$row->bearbeiter_uid;
- $obj->start=$row->start;
- $obj->ende=$row->ende;
- $obj->erledigt=$this->db_parse_bool($row->erledigt);
- $obj->insertamum=$row->insertamum;
- $obj->insertvon=$row->insertvon;
- $obj->updateamum=$row->updateamum;
- $obj->updatevon=$row->updatevon;
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
-
-
- /**
-
- *
-
- * Laedt die Notizen
- * @param $erledigt
- * @param $projekt_kurzbz
- * @param $projektphase_id
- * @param $projekttask_id
- * @param $uid
- * @param $person_id
- * @param $prestudent_id
- * @param $bestellung_id
- * @param $user
- * @param $lehreinheit_id
- * @param $anrechnung_id
- * @return boolean
- */
- public function getAnzahlNotizen($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null, $anrechnung_id=null)
- {
- $qry = "SELECT
- count(*) as anzahl
- FROM
- public.tbl_notiz
- LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
- WHERE 1=1";
-
- if(!is_null($erledigt))
- {
- if($erledigt)
- $qry.=" AND erledigt=true";
- else
- $qry.=" AND erledigt=false";
- }
- if($projekt_kurzbz!='')
- $qry.=" AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
- if($projektphase_id!='')
- $qry.=" AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
- if($projekttask_id!='')
- $qry.=" AND projekttask_id=".$this->db_add_param($projekttask_id, FHC_INTEGER);
- if($uid!='')
- $qry.=" AND uid=".$this->db_add_param($uid);
- if($person_id!='')
- $qry.=" AND person_id=".$this->db_add_param($person_id, FHC_INTEGER);
- if($prestudent_id!='')
- $qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
- if($bestellung_id!='')
- $qry.=" AND bestellung_id=".$this->db_add_param($bestellung_id, FHC_INTEGER);
- if($user!='')
- $qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
- if($lehreinheit_id!='')
- $qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
- if($anrechnung_id!='')
- $qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
-
- if($result = $this->db_query($qry))
- {
- if($row = $this->db_fetch_object($result))
- return $row->anzahl;
- else
- {
- $this->errormsg='Fehler beim Laden der Daten';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Laedt die Dokumente der Notiz
- * @return boolean
- */
- public function getDokumente($notiz_id)
- {
- $qry = "SELECT dms_id FROM public.tbl_notiz_dokument WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- while($row = $this->db_fetch_object())
- {
- $this->dokumente[] = $row->dms_id;
- }
-
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
- /**
- * Prueft ob das Dokument an einer Notiz haengt
- * @param $dms_id DMS id des Dokuments.
- * @return boolean true wenn das Dokument an einer Notiz hängt, sonst false.
- */
- public function isNotizDokument($dms_id)
- {
- $qry = "SELECT * FROM public.tbl_notiz_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER);
-
- if($result = $this->db_query($qry))
- {
- if($this->db_num_rows($result)>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-}
+ and
+ */
+require_once(dirname(__FILE__).'/basis_db.class.php');
+require_once(dirname(__FILE__).'/dms.class.php');
+
+class notiz extends basis_db
+{
+ public $new;
+ public $result=array();
+ public $dokumente=array();
+
+ //Tabellenspalten
+ public $notiz_id;
+ public $titel;
+ public $text;
+ public $verfasser_uid;
+ public $bearbeiter_uid;
+ public $start;
+ public $ende;
+ public $erledigt;
+ public $insertamum;
+ public $insertvon;
+ public $updateamum;
+ public $updatevon;
+
+ public $projekt_kurzbz;
+ public $projektphase_id;
+ public $projekttask_id;
+ public $uid;
+ public $person_id;
+ public $prestudent_id;
+ public $bestellung_id;
+ public $lehreinheit_id;
+ public $anrechnung_id;
+
+ /**
+ * Konstruktor
+ * @param $notiz_id
+ */
+ public function __construct($notiz_id = null)
+ {
+ parent::__construct();
+
+ if($notiz_id != null)
+ $this->load($notiz_id);
+ }
+
+ /**
+ * Laedt eine Notiz
+ * @param $notiz_id
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function load($notiz_id)
+ {
+ if(!is_numeric($notiz_id))
+ {
+ $this->errormsg = 'NotizID ist ungueltig';
+ return false;
+ }
+
+ $qry = "SELECT * FROM public.tbl_notiz WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object())
+ {
+ $this->notiz_id=$row->notiz_id;
+ $this->titel=$row->titel;
+ $this->text=$row->text;
+ $this->verfasser_uid=$row->verfasser_uid;
+ $this->bearbeiter_uid=$row->bearbeiter_uid;
+ $this->start=$row->start;
+ $this->ende=$row->ende;
+ $this->erledigt=$this->db_parse_bool($row->erledigt);
+ $this->insertamum=$row->insertamum;
+ $this->insertvon=$row->insertvon;
+ $this->updateamum=$row->updateamum;
+ $this->updatevon=$row->updatevon;
+ $this->getDokumente($row->notiz_id);
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Datensatz wurde nicht gefunden';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Löscht eine Notiz
+ * @param $notiz_id
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function delete($notiz_id)
+ {
+ if(!is_numeric($notiz_id))
+ {
+ $this->errormsg = 'NotizID ist ungueltig';
+ return false;
+ }
+
+ // Dokumente der Notiz löschen
+ $this->getDokumente($notiz_id);
+ if(!empty($this->dokumente))
+ {
+ $dms = new dms();
+
+ foreach($this->dokumente as $dms_id)
+ {
+ $dms->deleteDms($dms_id);
+ }
+ }
+
+ $qry = "Delete FROM public.tbl_notiz WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
+
+ if(!$this->db_query($qry))
+ {
+ $this->errormsg = 'Fehler beim Loeschen der Daten';
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Prueft die Daten vor dem Speichern
+ * auf Gueltigkeit
+ */
+ public function validate()
+ {
+ return true;
+ }
+
+ /**
+ * Speichert den aktuellen Datensatz in die Datenbank
+ * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ * andernfalls wird der Datensatz mit der ID in $notiz_id aktualisiert
+ * @return true wenn ok, false im Fehlerfall
+ */
+ public function save($new=null)
+ {
+ if($new==null)
+ $new=$this->new;
+
+ if(!$this->validate())
+ return false;
+
+ if($new)
+ {
+ //Neuen Datensatz einfuegen
+ $qry='BEGIN;INSERT INTO public.tbl_notiz (titel, text, verfasser_uid,
+ bearbeiter_uid, start, ende, erledigt, insertamum, insertvon,
+ updateamum, updatevon) VALUES('.
+ $this->db_add_param($this->titel).', '.
+ $this->db_add_param($this->text).', '.
+ $this->db_add_param($this->verfasser_uid).','.
+ $this->db_add_param($this->bearbeiter_uid).','.
+ $this->db_add_param($this->start).','.
+ $this->db_add_param($this->ende).','.
+ $this->db_add_param($this->erledigt,FHC_BOOLEAN).','.
+ $this->db_add_param($this->insertamum).','.
+ $this->db_add_param($this->insertvon).','.
+ $this->db_add_param($this->updateamum).','.
+ $this->db_add_param($this->updatevon).');';
+ }
+ else
+ {
+ $qry='UPDATE public.tbl_notiz SET '.
+ 'titel='.$this->db_add_param($this->titel).', '.
+ 'text='.$this->db_add_param($this->text).', '.
+ 'verfasser_uid='.$this->db_add_param($this->verfasser_uid).', '.
+ 'bearbeiter_uid='.$this->db_add_param($this->bearbeiter_uid).', '.
+ 'start='.$this->db_add_param($this->start).', '.
+ 'ende='.$this->db_add_param($this->ende).', '.
+ 'erledigt='.$this->db_add_param($this->erledigt,FHC_BOOLEAN).', '.
+ 'updateamum='.$this->db_add_param($this->updateamum).', '.
+ 'updatevon='.$this->db_add_param($this->updatevon).' '.
+ 'WHERE notiz_id='.$this->db_add_param($this->notiz_id,FHC_INTEGER).';';
+ }
+
+ if($this->db_query($qry))
+ {
+ if($new)
+ {
+ $qry="SELECT currval('seq_notiz_notiz_id') as id;";
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ {
+ $this->notiz_id = $row->id;
+ $this->db_query('COMMIT;');
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Lesen der Sequence';
+ $this->db_query('ROLLBACK');
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Lesen der Sequence';
+ $this->db_query('ROLLBACK');
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Datensatzes';
+ return false;
+ }
+ }
+
+ /**
+ * Speichert die Zuordnung einer Notiz
+ *
+ */
+ public function saveZuordnung()
+ {
+ $qry = "INSERT INTO public.tbl_notizzuordnung(notiz_id, projekt_kurzbz, projektphase_id, projekttask_id,
+ uid, person_id, prestudent_id, bestellung_id, lehreinheit_id, anrechnung_id) VALUES(".
+ $this->db_add_param($this->notiz_id, FHC_INTEGER).','.
+ $this->db_add_param($this->projekt_kurzbz).','.
+ $this->db_add_param($this->projektphase_id, FHC_INTEGER).','.
+ $this->db_add_param($this->projekttask_id, FHC_INTEGER).','.
+ $this->db_add_param($this->uid).','.
+ $this->db_add_param($this->person_id, FHC_INTEGER).','.
+ $this->db_add_param($this->prestudent_id, FHC_INTEGER).','.
+ $this->db_add_param($this->bestellung_id, FHC_INTEGER).','.
+ $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
+ $this->db_add_param($this->anrechnung_id, FHC_INTEGER).');';
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Speichert ein Dokument zur Notiz
+ * @param int $dms_id
+ * @return boolean
+ */
+ public function saveDokument($dms_id)
+ {
+ $qry = "INSERT INTO public.tbl_notiz_dokument(notiz_id, dms_id) VALUES(".
+ $this->db_add_param($this->notiz_id, FHC_INTEGER).','.
+ $this->db_add_param($dms_id, FHC_INTEGER).');';
+
+ if($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten';
+ return false;
+ }
+ }
+
+ /**
+ *
+ * Laedt die Notizen
+ * @param $erledigt
+ * @param $projekt_kurzbz
+ * @param $projektphase_id
+ * @param $projekttask_id
+ * @param $uid
+ * @param $person_id
+ * @param $prestudent_id
+ * @param $bestellung_id
+ * @param $user
+ * @param $lehreinheit_id
+ * @param $anrechnung_id
+ * @return boolean
+ */
+ public function getNotiz(
+ $erledigt=null,
+ $projekt_kurzbz=null,
+ $projektphase_id=null,
+ $projekttask_id=null,
+ $uid=null,
+ $person_id=null,
+ $prestudent_id=null,
+ $bestellung_id=null,
+ $user=null,
+ $lehreinheit_id=null,
+ $stundenplandev_id=null,
+ $anrechnung_id=null,
+ $titel=null)
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_notiz
+ LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
+ WHERE 1=1";
+
+ if(!is_null($erledigt))
+ {
+ if($erledigt)
+ $qry.=" AND erledigt=true";
+ else
+ $qry.=" AND erledigt=false";
+ }
+ if($projekt_kurzbz!='')
+ $qry.=" AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
+ if($projektphase_id!='')
+ $qry.=" AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
+ if($projekttask_id!='')
+ $qry.=" AND projekttask_id=".$this->db_add_param($projekttask_id, FHC_INTEGER);
+ if($uid!='')
+ $qry.=" AND uid=".$this->db_add_param($uid);
+ if($person_id!='')
+ $qry.=" AND person_id=".$this->db_add_param($person_id, FHC_INTEGER);
+ if($prestudent_id!='')
+ $qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
+ if($bestellung_id!='')
+ $qry.=" AND bestellung_id=".$this->db_add_param($bestellung_id, FHC_INTEGER);
+ if($user!='')
+ $qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
+ if($lehreinheit_id!='')
+ $qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
+ if($anrechnung_id!='')
+ $qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
+ if($titel!='')
+ $qry.=" AND titel=".$this->db_add_param($titel);
+
+ $qry.=' ORDER BY start, ende, titel';
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new notiz();
+
+ $obj->notiz_id=$row->notiz_id;
+ $obj->titel=$row->titel;
+ $obj->text=$row->text;
+ $obj->verfasser_uid=$row->verfasser_uid;
+ $obj->bearbeiter_uid=$row->bearbeiter_uid;
+ $obj->start=$row->start;
+ $obj->ende=$row->ende;
+ $obj->erledigt=$this->db_parse_bool($row->erledigt);
+ $obj->insertamum=$row->insertamum;
+ $obj->insertvon=$row->insertvon;
+ $obj->updateamum=$row->updateamum;
+ $obj->updatevon=$row->updatevon;
+ $obj->getDokumente($row->notiz_id);
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ *
+ * Laedt die Notizen vom Bewerbungstool
+ * @param integer $person_id
+ * @param integer $prestudent_id
+ * @param string $order Sorting order. Default: "notiz_id"
+ * @return boolean
+ */
+ public function getBewerbungstoolNotizen($person_id, $prestudent_id = null, $order = 'notiz_id')
+ {
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_notiz
+ LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
+ WHERE (insertvon = 'online' OR insertvon = 'online_notiz')
+ AND person_id = ".$this->db_add_param($person_id, FHC_INTEGER);
+ if ($prestudent_id != '')
+ {
+ $qry .= " AND prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER);
+ }
+
+ $qry .= " ORDER BY ".$order;
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new notiz();
+
+ $obj->notiz_id=$row->notiz_id;
+ $obj->titel=$row->titel;
+ $obj->text=$row->text;
+ $obj->verfasser_uid=$row->verfasser_uid;
+ $obj->bearbeiter_uid=$row->bearbeiter_uid;
+ $obj->start=$row->start;
+ $obj->ende=$row->ende;
+ $obj->erledigt=$this->db_parse_bool($row->erledigt);
+ $obj->insertamum=$row->insertamum;
+ $obj->insertvon=$row->insertvon;
+ $obj->updateamum=$row->updateamum;
+ $obj->updatevon=$row->updatevon;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+
+ /**
+ * TEMPORARY: kurzfristig wird für das Onlinebewerbungstool die Ausbildung
+ * (Name und Adresse der besuchten Schule) in eine Notiz mit
+ * insertvon = online_ausbildung gespeichert.
+ * Wird auf UDF umgebaut!
+ *
+ * Laedt die Notizen zur Ausbilund vom Bewerbungstool
+ * @param $person_id int
+ * @return boolean
+ */
+ public function getBewerbungstoolNotizenAusbildung($person_id)
+ {
+ $qry = 'SELECT
+ *
+ FROM
+ public.tbl_notiz
+ LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
+ WHERE person_id = ' . $this->db_add_param($person_id, FHC_INTEGER) .
+ ' AND insertvon = ' . $this->db_add_param('online_ausbildung') .
+ ' ORDER BY notiz_id';
+
+ if($result = $this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object($result))
+ {
+ $obj = new notiz();
+
+ $obj->notiz_id=$row->notiz_id;
+ $obj->titel=$row->titel;
+ $obj->text=$row->text;
+ $obj->verfasser_uid=$row->verfasser_uid;
+ $obj->bearbeiter_uid=$row->bearbeiter_uid;
+ $obj->start=$row->start;
+ $obj->ende=$row->ende;
+ $obj->erledigt=$this->db_parse_bool($row->erledigt);
+ $obj->insertamum=$row->insertamum;
+ $obj->insertvon=$row->insertvon;
+ $obj->updateamum=$row->updateamum;
+ $obj->updatevon=$row->updatevon;
+
+ $this->result[] = $obj;
+ }
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+
+
+ /**
+
+ *
+
+ * Laedt die Notizen
+ * @param $erledigt
+ * @param $projekt_kurzbz
+ * @param $projektphase_id
+ * @param $projekttask_id
+ * @param $uid
+ * @param $person_id
+ * @param $prestudent_id
+ * @param $bestellung_id
+ * @param $user
+ * @param $lehreinheit_id
+ * @param $anrechnung_id
+ * @return boolean
+ */
+ public function getAnzahlNotizen($erledigt=null, $projekt_kurzbz=null, $projektphase_id=null, $projekttask_id=null, $uid=null, $person_id=null, $prestudent_id=null, $bestellung_id=null, $user=null, $lehreinheit_id=null, $anrechnung_id=null)
+ {
+ $qry = "SELECT
+ count(*) as anzahl
+ FROM
+ public.tbl_notiz
+ LEFT JOIN public.tbl_notizzuordnung USING(notiz_id)
+ WHERE 1=1";
+
+ if(!is_null($erledigt))
+ {
+ if($erledigt)
+ $qry.=" AND erledigt=true";
+ else
+ $qry.=" AND erledigt=false";
+ }
+ if($projekt_kurzbz!='')
+ $qry.=" AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz);
+ if($projektphase_id!='')
+ $qry.=" AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER);
+ if($projekttask_id!='')
+ $qry.=" AND projekttask_id=".$this->db_add_param($projekttask_id, FHC_INTEGER);
+ if($uid!='')
+ $qry.=" AND uid=".$this->db_add_param($uid);
+ if($person_id!='')
+ $qry.=" AND person_id=".$this->db_add_param($person_id, FHC_INTEGER);
+ if($prestudent_id!='')
+ $qry.=" AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
+ if($bestellung_id!='')
+ $qry.=" AND bestellung_id=".$this->db_add_param($bestellung_id, FHC_INTEGER);
+ if($user!='')
+ $qry.=" AND (verfasser_uid=".$this->db_add_param($user)." OR bearbeiter_uid=".$this->db_add_param($user).")";
+ if($lehreinheit_id!='')
+ $qry.=" AND lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
+ if($anrechnung_id!='')
+ $qry.=" AND anrechnung_id=".$this->db_add_param($anrechnung_id, FHC_INTEGER);
+
+ if($result = $this->db_query($qry))
+ {
+ if($row = $this->db_fetch_object($result))
+ return $row->anzahl;
+ else
+ {
+ $this->errormsg='Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Laedt die Dokumente der Notiz
+ * @return boolean
+ */
+ public function getDokumente($notiz_id)
+ {
+ $qry = "SELECT dms_id FROM public.tbl_notiz_dokument WHERE notiz_id=".$this->db_add_param($notiz_id, FHC_INTEGER);
+
+ if($this->db_query($qry))
+ {
+ while($row = $this->db_fetch_object())
+ {
+ $this->dokumente[] = $row->dms_id;
+ }
+
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Prueft ob das Dokument an einer Notiz haengt
+ * @param $dms_id DMS id des Dokuments.
+ * @return boolean true wenn das Dokument an einer Notiz hängt, sonst false.
+ */
+ public function isNotizDokument($dms_id)
+ {
+ $qry = "SELECT * FROM public.tbl_notiz_dokument WHERE dms_id=".$this->db_add_param($dms_id, FHC_INTEGER);
+
+ if($result = $this->db_query($qry))
+ {
+ if($this->db_num_rows($result)>0)
+ return true;
+ else
+ return false;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+}
diff --git a/include/prestudent.class.php b/include/prestudent.class.php
index 823e5a9aa..eb8767883 100644
--- a/include/prestudent.class.php
+++ b/include/prestudent.class.php
@@ -1,5 +1,5 @@
,
- * Andreas Oesterreicher and
- * Rudolf Hangl .
+ * Andreas Oesterreicher ,
+ * Rudolf Hangl and
+ * Manuela Thamer .
*/
require_once(dirname(__FILE__).'/person.class.php');
require_once(dirname(__FILE__).'/log.class.php');
@@ -2215,9 +2216,9 @@ class prestudent extends person
WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent')
AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER);
- if($result = $this->db_query($qry))
+ if ($result = $this->db_query($qry))
{
- if($row = $this->db_fetch_object($result))
+ if ($row = $this->db_fetch_object($result))
{
return $row->prio_relativ;
}
@@ -2232,6 +2233,222 @@ class prestudent extends person
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
+ }
+ /**
+ * Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt
+ * @param int $person_id ID der zu überprüfenden Person.
+ * @return true wenn vorhanden
+ * false wenn nicht vorhanden
+ * false und errormsg wenn Fehler aufgetreten ist
+ */
+ public function existsZGVIntern($person_id)
+ {
+ if (!is_numeric($person_id))
+ {
+ $this->errormsg = 'Person_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+
+ $qry = "SELECT count(*) as anzahl FROM public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING (prestudent_id)
+ JOIN public.tbl_studiengang USING (studiengang_kz)
+ WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
+ AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
+ AND typ in ('b','m','d')";
+
+
+ if ($this->db_query($qry))
+ {
+ if ($row = $this->db_fetch_object())
+ {
+ if ($row->anzahl > 0)
+ {
+ $this->errormsg = '';
+ return true;
+ }
+ else
+ {
+ $this->errormsg = '';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+
+ /**
+ * Befüllt MasterZGV-Felder: Nation mit Österreich und MasterZGV-code mit FH-Bachelor(I)
+ * @param int $person_id Personenkennzeichen.
+ * @param varchar $ort Ort.
+ * @return true wenn erfolgreich durchgeführt
+ * false und errormsg wenn ein Fehler aufgetreten ist
+ */
+ public function setZGVMasterFields($person_id, $ort)
+ {
+ if (!is_numeric($person_id))
+ {
+ $this->errormsg = 'Person_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $db = new basis_db();
+ $arrayleereManations = array();
+
+ //all prestudent_ids mit Status Interessent
+ $qry = "SELECT
+ *
+ FROM
+ public.tbl_prestudent
+ JOIN
+ public.tbl_studiengang USING (studiengang_kz)
+ WHERE
+ person_id = ".$this->db_add_param($person_id)."
+ AND
+ typ ='m'
+ And
+ get_rolle_prestudent(prestudent_id, null) = 'Interessent';";
+
+ if ($db->db_query($qry))
+ {
+ $num_rows = $db->db_num_rows();
+
+ if ($num_rows > 0)
+ {
+ while ($row = $db->db_fetch_object())
+ {
+ $arrayleereManations[] = $row->prestudent_id;
+ }
+
+ if ($arrayleereManations)
+ {
+ $qry = "UPDATE
+ public.tbl_prestudent
+ SET
+ (zgvmanation, zgvmaort, zgvmas_code) = ('A',".$this->db_add_param($ort).",1)
+ WHERE
+ prestudent_id in (";
+
+ foreach ($arrayleereManations as $prestudent_id)
+ {
+ $qry .= $prestudent_id;
+
+ if (next($arrayleereManations) == true)
+ {
+ $qry .= ",";
+ }
+ }
+ $qry .= ");";
+
+ if ($this->db_query($qry))
+ {
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Eintragen zgvMasterFields';
+ return false;
+ }
+ }
+ }
+ else
+ return true;
+ }
+ }
+
+
+ /**
+ * Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag Interessent für einen Masterstudiengang besitzt
+ * @param int $person_id ID der zu überprüfenden Person.
+ * @return true wenn vorhanden, false wenn nicht vorhanden
+ */
+ public function existsStatusInteressentMaster($person_id)
+ {
+ if (!is_numeric($person_id))
+ {
+ $this->errormsg = 'Person_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $db = new basis_db();
+ $prestudentsOfMaster = array();
+
+ $qry = "SELECT
+ prestudent_id
+ FROM
+ tbl_prestudent ps, tbl_studiengang sg
+ WHERE
+ ps.studiengang_kz = sg.studiengang_kz
+ AND
+ sg.typ in ('m')
+ AND
+ person_id = ".$this->db_add_param($person_id)."
+ And
+ get_rolle_prestudent(prestudent_id, null) = 'Interessent';";
+
+ if ($db->db_query($qry))
+ {
+ $num_rows = $db->db_num_rows();
+ if ($num_rows > 0)
+ {
+ return true;
+ }
+ }
+ else
+ return false;
+ }
+
+
+ /**
+ * Liefert den wahrscheinlichen Studiengang der MasterZGV einer Person
+ * @param int $person_id ID der zu überprüfenden Person.
+ * @return string studiengangkurzbzlang
+ */
+ public function getZGVMasterStg($person_id)
+ {
+ if (!is_numeric($person_id))
+ {
+ $this->errormsg = 'Person_id muss eine gueltige Zahl sein';
+ return false;
+ }
+
+ $qry = "SELECT kurzbzlang
+ FROM public.tbl_prestudent
+ JOIN public.tbl_prestudentstatus USING (prestudent_id)
+ JOIN public.tbl_studiengang USING (studiengang_kz)
+ WHERE person_id = ".$this->db_add_param($person_id, FHC_INTEGER)."
+ AND status_kurzbz in ('Absolvent','Diplomand','Unterbrecher','Student')
+ AND typ in ('b','m','d')
+ ORDER BY status_kurzbz ASC
+ LIMIT 1;";
+
+ if ($this->db_query($qry))
+ {
+ if ($row = $this->db_fetch_object())
+ {
+ $stg = $row->kurzbzlang;
+ return $stg;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Laden der Daten';
+ return false;
+ }
}
}
diff --git a/include/sancho.inc.php b/include/sancho.inc.php
index b52a7fb28..5fc6fcdab 100644
--- a/include/sancho.inc.php
+++ b/include/sancho.inc.php
@@ -33,10 +33,12 @@ const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
* @param string $to Email-adress.
* @param string $subject Subject of mail.
* @param string $headerImg Filename of the specific Sancho header image.
+ * @param string $footerImg
* @param string $replyTo default Email-adress for reply.
+ * @param string | array $cc
* @return boolean True, if succeeded.
*/
-function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '')
+function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '', $cc = '')
{
$from = 'sancho@'. DOMAIN;
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
@@ -69,6 +71,10 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm
// * Set reply-to
if (isset($replyTo) && $replyTo != '')
$mail->setReplyTo($replyTo);
+
+ // * Set cc
+ if (isset($cc) && $cc != '')
+ $mail->setCCRecievers($cc);
// * embed the html content
$mail->setHTMLContent($body);
diff --git a/locale/de-AT/urlaubstool.php b/locale/de-AT/urlaubstool.php
index cd34be0da..6d6edde09 100644
--- a/locale/de-AT/urlaubstool.php
+++ b/locale/de-AT/urlaubstool.php
@@ -40,4 +40,10 @@ $this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebene
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
+$this->phrasen['urlaubstool/urlaubsfreigabe']='Freigabe Urlaub: ';
+$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Bestätigungsmail an %s versandt';
+$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von';
+$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.';
+$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:';
+
?>
diff --git a/locale/en-US/urlaubstool.php b/locale/en-US/urlaubstool.php
index f52f2d981..697117c34 100644
--- a/locale/en-US/urlaubstool.php
+++ b/locale/en-US/urlaubstool.php
@@ -36,4 +36,10 @@ $this->phrasen['urlaubstool/meineZeitsperren']='My Planned Absences';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeFehlt']='Vacation has not been approved yet';
+$this->phrasen['urlaubstool/urlaubsfreigabe']='Vacation approval: ';
+$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Confirmation mail to %s sent';
+$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
+
?>
diff --git a/public/css/infocenter/infocenterDetails.css b/public/css/infocenter/infocenterDetails.css
index 38a7824fa..2f2debc00 100644
--- a/public/css/infocenter/infocenterDetails.css
+++ b/public/css/infocenter/infocenterDetails.css
@@ -76,6 +76,17 @@
font-weight: normal;
}
+.nachreichungInfos
+{
+ float: right;
+ margin: 5px 15px 0 0;
+}
+
+.nachreichungInputs .row
+{
+ margin-top: 5px;
+}
+
@media screen and (max-width: 1510px)
{
#postponing{
diff --git a/public/js/infocenter/docUeberpruefung.js b/public/js/infocenter/docUeberpruefung.js
new file mode 100644
index 000000000..acb0ca60f
--- /dev/null
+++ b/public/js/infocenter/docUeberpruefung.js
@@ -0,0 +1,218 @@
+const ALLOWED_DOC_TYPES = ['VorlSpB2', 'ZgvBaPre', 'ZgvMaPre'];
+
+$(document).ready(function ()
+{
+ DocUeberpruefung._formatDocTable();
+ DocUeberpruefung.checkNachreichungButtons();
+
+ var personid = $("#hiddenpersonid").val();
+
+ //add click events to "formal geprüft" checkboxes
+ $(".prchbox").click(function ()
+ {
+ var boxid = this.id;
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
+ var checked = this.checked;
+ DocUeberpruefung.saveFormalGeprueft(personid, akteid, checked)
+ });
+
+ $('select.aktenid').change(function()
+ {
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ var typ = $(this).val();
+ DocUeberpruefung.saveDocTyp(personid, akteid, typ);
+ });
+
+ $('.nachreichungInfos').click(function()
+ {
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ DocUeberpruefung.checkNachreichungInputs(akteid);
+ });
+
+ $('.nachreichungAbbrechen').click(function()
+ {
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ DocUeberpruefung.checkNachreichungInputs(akteid);
+ });
+
+ $('.nachreichungSpeichern').click(function()
+ {
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ var typ = $('#aktenid_' + akteid).val();
+
+ var nachreichungAm = $('#nachreichungAm_' + akteid).val();
+ var nachreichungAnmerkung = $('#nachreichungAnmerkung_' + akteid).val();
+
+ if(nachreichungAm === '')
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'));
+ return false;
+ }
+
+ var regEx = /^\d{2}\.\d{2}\.(\d{2}|\d{4})$/;
+
+ if(nachreichungAm.match(regEx) === null)
+ {
+ FHC_DialogLib.alertError(FHC_PhrasesLib.t('infocenter', 'datumUngueltig'))
+ return false;
+ }
+
+ DocUeberpruefung.saveNachreichung(personid, nachreichungAm, nachreichungAnmerkung, typ);
+ })
+});
+
+var DocUeberpruefung = {
+
+ saveFormalGeprueft: function(personid, akteid, checked)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ CALLED_PATH + '/saveFormalGeprueft/' + encodeURIComponent(personid),
+ {
+ akte_id: akteid,
+ formal_geprueft: checked
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ var timestamp = data.retval[0];
+ if (timestamp === "")
+ {
+ $("#formalgeprueftam_" + akteid).text("");
+ }
+ else
+ {
+ var fgdatum = $.datepicker.parseDate("yy-mm-dd", timestamp);
+ var gerfgdatum = $.datepicker.formatDate("dd.mm.yy", fgdatum);
+ $("#formalgeprueftam_" + akteid).text(gerfgdatum);
+ }
+ //refresh doctable tablesorter, formal geprueft changed!
+ $("#doctable").trigger("update");
+ InfocenterDetails._refreshLog();
+ }
+ else
+ {
+ InfocenterDetails._genericSaveError();
+ }
+ },
+ errorCallback: InfocenterDetails._genericSaveError,
+ veilTimeout: 0
+ }
+ );
+ },
+
+ saveDocTyp: function(personid, akteid, typ)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ CALLED_PATH + "/saveDocTyp/" + encodeURIComponent(personid),
+ {
+ "akte_id": akteid,
+ "typ" : typ
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.isSuccess(data))
+ {
+ FHC_DialogLib.alertSuccess("Done!");
+ InfocenterDetails._refreshLog();
+ DocUeberpruefung.checkNachreichungButton(akteid);
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
+ }
+ },
+ errorCallback: function() {
+ FHC_DialogLib.alertWarning("Fehler beim Speichern!");
+ }
+ }
+ );
+ },
+
+ saveNachreichung: function (personid, nachreichungAm, nachreichungAnmerkung, typ)
+ {
+ FHC_AjaxClient.ajaxCallPost(
+ CALLED_PATH + "/saveNachreichung/" + encodeURIComponent(personid),
+ {
+ "nachreichungAm": nachreichungAm,
+ "nachreichungAnmerkung" : nachreichungAnmerkung,
+ "typ" : typ
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.isSuccess(data))
+ {
+ DocUeberpruefung._refreshNachzureichendeDoks();
+ InfocenterDetails._refreshLog();
+ FHC_DialogLib.alertSuccess("Done!");
+ }
+ else
+ {
+ FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
+ }
+ },
+ errorCallback: function() {
+ FHC_DialogLib.alertWarning("Fehler beim Speichern!");
+ }
+ }
+ );
+ },
+
+ checkNachreichungInputs: function(akteid)
+ {
+ var inputs = $('#nachreichungInputs_' + akteid);
+
+ if (inputs.hasClass('hidden'))
+ {
+ inputs.removeClass('hidden');
+ }
+ else
+ {
+ inputs.addClass('hidden');
+ $('#nachreichungAnmerkung_' + akteid).val("");
+ $('#nachreichungAm_' + akteid).val("");
+ }
+ },
+
+ checkNachreichungButtons: function()
+ {
+ $('select.aktenid').each(function () {
+ var akteid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ DocUeberpruefung.checkNachreichungButton(akteid);
+ });
+ },
+
+ checkNachreichungButton: function(akteid)
+ {
+ var typ = $('#aktenid_' + akteid).val();
+ var infos = $('#nachreichungInfos_' + akteid);
+
+ if ($.inArray(typ, ALLOWED_DOC_TYPES) === -1)
+ {
+ infos.addClass('hidden');
+ }
+ else
+ {
+ infos.removeClass('hidden');
+ }
+ },
+
+ _refreshNachzureichendeDoks: function()
+ {
+ var personid = $("#hiddenpersonid").val();
+
+ $("#nachzureichendeDoks").load(
+ CONTROLLER_URL + '/reloadDoks/' + personid + '?fhc_controller_id=' + FHC_AjaxClient.getUrlParameter('fhc_controller_id'),
+ function () {
+ DocUeberpruefung._formatDocTable();
+ }
+ );
+ },
+
+ _formatDocTable: function()
+ {
+ Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
+ Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
+ },
+
+}
\ No newline at end of file
diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js
index 7023af277..70f5ed982 100644
--- a/public/js/infocenter/infocenterDetails.js
+++ b/public/js/infocenter/infocenterDetails.js
@@ -3,9 +3,13 @@ const BASE_URL = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJEC
const CALLED_PATH = FHC_JS_DATA_STORAGE_OBJECT.called_path;
const CONTROLLER_URL = BASE_URL + "/"+CALLED_PATH;
const RTFREIGABE_MESSAGE_VORLAGE = "InfocenterRTfreigegeben";
+const RTFREIGABE_MESSAGE_VORLAGE_MASTER = "InfocenterRTfreigegebenM";
+const RTFREIGABE_MESSAGE_VORLAGE_MASTER_ENGLISCH = "InfocenterRTfreigegebenMEnglisch";
const RTFREIGABE_MESSAGE_VORLAGE_QUER = "InfocenterRTfreigegQuer";
const RTFREIGABE_MESSAGE_VORLAGE_QUER_KURZ = "InfocenterRTfreigegQuerKurz";
const STGFREIGABE_MESSAGE_VORLAGE = "InfocenterSTGfreigegeben";
+const STGFREIGABE_MESSAGE_VORLAGE_MASTER = "InfocenterSTGfreigegebenM";
+const STGFREIGABE_MESSAGE_VORLAGE_MASTER_ENGLISCH = "InfocenterSTGfreigegebenMEng";
//Statusgründe for which no Studiengang Freigabe Message should be sent
const FIT_PROGRAMM_STUDIENGAENGE = [10021, 10027];
@@ -18,9 +22,6 @@ const ONHOLDNAME = 'onhold';
*/
$(document).ready(function ()
{
- //initialise table sorter
- Tablesort.addTablesorter("doctable", [[2, 1], [1, 0]], ["zebra"]);
- Tablesort.addTablesorter("nachgdoctable", [[2, 0], [1, 1]], ["zebra"]);
InfocenterDetails._formatMessageTable();
InfocenterDetails._formatNotizTable();
@@ -34,15 +35,6 @@ $(document).ready(function ()
$("#sendmsgform").submit();
});
- //add click events to "formal geprüft" checkboxes
- $(".prchbox").click(function ()
- {
- var boxid = this.id;
- var akteid = InfocenterDetails._getPrestudentIdFromElementId(boxid);
- var checked = this.checked;
- InfocenterDetails.saveFormalGeprueft(personid, akteid, checked)
- });
-
//add click events to zgv Prüfung section
InfocenterDetails._addZgvPruefungEvents(personid);
@@ -114,7 +106,8 @@ $(document).ready(function ()
{
$('html,body').animate({scrollTop:0},250,'linear');
}
- )
+ );
+
});
var InfocenterDetails = {
@@ -129,43 +122,6 @@ var InfocenterDetails = {
// -----------------------------------------------------------------------------------------------------------------
// ajax calls
- saveFormalGeprueft: function(personid, akteid, checked)
- {
- FHC_AjaxClient.ajaxCallPost(
- CALLED_PATH + '/saveFormalGeprueft/' + encodeURIComponent(personid),
- {
- akte_id: akteid,
- formal_geprueft: checked
- },
- {
- successCallback: function(data, textStatus, jqXHR) {
- if (FHC_AjaxClient.hasData(data))
- {
- var timestamp = data.retval[0];
- if (timestamp === "")
- {
- $("#formalgeprueftam_" + akteid).text("");
- }
- else
- {
- var fgdatum = $.datepicker.parseDate("yy-mm-dd", timestamp);
- var gerfgdatum = $.datepicker.formatDate("dd.mm.yy", fgdatum);
- $("#formalgeprueftam_" + akteid).text(gerfgdatum);
- }
- //refresh doctable tablesorter, formal geprueft changed!
- $("#doctable").trigger("update");
- InfocenterDetails._refreshLog();
- }
- else
- {
- InfocenterDetails._genericSaveError();
- }
- },
- errorCallback: InfocenterDetails._genericSaveError,
- veilTimeout: 0
- }
- );
- },
saveBewPriorisierung: function(data)
{
FHC_AjaxClient.ajaxCallPost(
@@ -207,6 +163,22 @@ var InfocenterDetails = {
$("#zgvort_" + prestudentid).val(zgvort);
$("#zgvdatum_" + prestudentid).val(gerzgvdatum);
$("#zgvnation_" + prestudentid).val(zgvnation);
+
+ var zgvmas_code = prestudent.zgvmas_code !== null ? prestudent.zgvmas_code : "null";
+ var zgvmaort = prestudent.zgvmaort !== null ? prestudent.zgvmaort : "";
+ var zgvmadatum = prestudent.zgvmadatum;
+ var gerzgvmadatum = "";
+ if (zgvmadatum !== null)
+ {
+ zgvmadatum = $.datepicker.parseDate("yy-mm-dd", prestudent.zgvmadatum);
+ gerzgvmadatum = $.datepicker.formatDate("dd.mm.yy", zgvmadatum);
+ }
+ var zgvmanation = prestudent.zgvmanation !== null ? prestudent.zgvmanation : "null";
+
+ $("#zgvmas_" + prestudentid).val(zgvmas_code);
+ $("#zgvmaort_" + prestudentid).val(zgvmaort);
+ $("#zgvmadatum_" + prestudentid).val(gerzgvmadatum);
+ $("#zgvmanation_" + prestudentid).val(zgvmanation);
}
else
{
@@ -221,6 +193,7 @@ var InfocenterDetails = {
}
);
},
+
saveZgv: function(data)
{
var zgvError = function(){
@@ -340,8 +313,9 @@ var InfocenterDetails = {
}
);
},
- saveNotiz: function(personid, data)
+ saveNotiz: function(personid, data, callback)
{
+ var callbackValue = data;
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveNotiz/' + encodeURIComponent(personid),
data,
@@ -351,6 +325,8 @@ var InfocenterDetails = {
{
InfocenterDetails._refreshNotizen();
InfocenterDetails._refreshLog();
+ if ($.isFunction(callback))
+ callback(callbackValue);
}
else
{
@@ -595,8 +571,9 @@ var InfocenterDetails = {
{
var fitstg = $.inArray(parseInt(prestudent.studiengang_kz), FIT_PROGRAMM_STUDIENGAENGE) >= 0;
- if (receiverPrestudentstatus.studiensemester_kurzbz === prestudentstatus.studiensemester_kurzbz
- && (prestudent.studiengangtyp === "b" || fitstg))
+ if ((receiverPrestudentstatus.studiensemester_kurzbz === prestudentstatus.studiensemester_kurzbz)
+ && (receiverPrestudent.studiengangtyp === prestudent.studiengangtyp)
+ && (prestudent.studiengangtyp === "b" || prestudent.studiengangtyp === "m" || fitstg))
{
if (prestudent.isRtFreigegeben)
{
@@ -613,13 +590,14 @@ var InfocenterDetails = {
var ausbildungssemester = receiverPrestudentstatus.ausbildungssemester;
var studiengangbezeichnung = receiverPrestudentstatus.studiengangbezeichnung;
var studiengangbezeichnung_englisch = receiverPrestudentstatus.studiengangbezeichnung_englisch;
+ var vorlage = null;
var orgform_deutsch, orgform_englisch;
orgform_deutsch = orgform_englisch = "";
if (typeof receiverPrestudentstatus.bezeichnung_orgform_german === 'string')
{
- orgform_deutsch = receiverPrestudentstatus.bezeichnung_orgform_german.toLowerCase();
+ orgform_deutsch = receiverPrestudentstatus.bezeichnung_orgform_german;
}
if (typeof receiverPrestudentstatus.bezeichnung_orgform_english === 'string')
@@ -650,7 +628,6 @@ var InfocenterDetails = {
}
else //not already for RT freigegeben - send RTfreigabe message
{
- var vorlage = null;
//send Quereinstiegsmessage if later Ausbildungssemester
if (ausbildungssemester > 1)
{
@@ -660,7 +637,15 @@ var InfocenterDetails = {
else
{
//send normal RTfreigabe message
- vorlage = RTFREIGABE_MESSAGE_VORLAGE
+ if (receiverPrestudent.studiengangtyp === 'm') {
+ if (receiverPrestudentstatus.sprache === 'English')
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE_MASTER_ENGLISCH
+ else
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE_MASTER
+ } else
+ {
+ vorlage = RTFREIGABE_MESSAGE_VORLAGE
+ }
}
InfocenterDetails.sendFreigabeMessage(prestudent_id, vorlage, msgvars);
@@ -668,8 +653,23 @@ var InfocenterDetails = {
}
else
{
+ if (receiverPrestudent.studiengangtyp === 'm' && (freigabedata.statusgrundbezeichnung === 'Ergänzungsprüfungen' || freigabedata.statusgrundbezeichnung === 'Supplementary exams'))
+ {
+ msgvars = {
+ 'studiengangbezeichnung': studiengangbezeichnung,
+ 'studiengangbezeichnung_englisch': studiengangbezeichnung_englisch,
+ 'orgform_deutsch': orgform_deutsch,
+ 'orgform_englisch': orgform_englisch
+ }
+ if (receiverPrestudentstatus.sprache === 'English')
+ vorlage = STGFREIGABE_MESSAGE_VORLAGE_MASTER_ENGLISCH
+ else
+ vorlage = STGFREIGABE_MESSAGE_VORLAGE_MASTER
+
+ InfocenterDetails.sendFreigabeMessage(prestudent_id, vorlage, msgvars);
+ }
//if Freigabe to Studiengang, send StgFreigabe Message if not already sent and allowed to send
- if (!stgFreigegeben && receiverPrestudent.sendStgFreigabeMsg === true)
+ else if (!stgFreigegeben && receiverPrestudent.sendStgFreigabeMsg === true)
{
InfocenterDetails.sendFreigabeMessage(prestudent_id, STGFREIGABE_MESSAGE_VORLAGE, msgvars);
}
@@ -746,6 +746,10 @@ var InfocenterDetails = {
InfocenterDetails.zgvUebernehmen(personid, prestudentid, btn);
});
+ $('.notizModal').on('hidden.bs.modal', function () {
+ $(':input', this).val('');
+ });
+
//zgv speichern
$(".saveZgv").click(function ()
{
@@ -885,6 +889,8 @@ var InfocenterDetails = {
}
}
);
+
+ zgvUeberpruefung.checkAfterReload();
},
_refreshMessages: function()
{
diff --git a/public/js/infocenter/infocenterPersonDataset.js b/public/js/infocenter/infocenterPersonDataset.js
index 87a40c0f1..252f6ac1f 100644
--- a/public/js/infocenter/infocenterPersonDataset.js
+++ b/public/js/infocenter/infocenterPersonDataset.js
@@ -20,22 +20,44 @@ if (FHC_JS_DATA_STORAGE_OBJECT.called_method == 'index')
*/
var InfocenterPersonDataset = {
infocenter_studiensemester_variablename: 'infocenter_studiensemester',
+ infocenter_studienganstyp_variablename: 'infocenter_studiensgangtyp',
/**
* adds person table additional actions html (above and beneath it)
*/
- appendTableActionsHtml: function(infocenter_studiensemester)
+ appendTableActionsHtml: function(infocenter_studiensemester, infocenter_studiengangstyp)
{
var url = FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + "/system/messages/Messages/writeTemplate";
var formHtml = '';
$("#datasetActionsTop").before(formHtml);
+ var auswahlStudienart =
+ '' +
+ ' Alle ' +
+ ' Master ' +
+ ' Bachelor ' +
+ ' ';
+
+ var auswahlAbsageToggle =
+ 'Erweiterte Einstellungen ';
+
+ var auswahlAbsage =
+ '' +
+ ' Absagegrund ' +
+ ' ' +
+ '' +
+ ' Studiengang ' +
+ ' ' +
+ ' Absage ';
+
+ InfocenterPersonDataset.getAbsageData();
+
var studienSemesterHtml = '' +
' ' +
' ' +
infocenter_studiensemester +
- ' ' +
+ ' ' +
' ' +
' ';
@@ -56,10 +78,28 @@ var InfocenterPersonDataset = {
// userdefined Semestervariable shown independently of personcount,
// it is possible to change the semester
$("#datasetActionsTop, #datasetActionsBottom").append(
- ""+
- "
"+studienSemesterHtml+"
"+
- "
");
+ "" +
+ "
" + auswahlStudienart + "
" +
+ "
" + studienSemesterHtml + "
" +
+ "
" +
+ "
"
+ );
+ InfocenterPersonDataset.selectStudiengangTyp(infocenter_studiengangstyp)
+
+ $('.auswahlStudienArt').change(function()
+ {
+ InfocenterPersonDataset.changeStudengangsTyp($(this).find('option:selected').attr('data-id'));
+ });
+
+ $("#datasetActionsBottom").append(
+ ""+
+ "
"+auswahlAbsageToggle+"
"+
+ "
"+auswahlAbsage+"
"+
+ "
" +
+ "
" +
+ " "
+ )
$("button.incStudiensemester").click(function() {
InfocenterPersonDataset.changeStudiensemesterUservar(1);
});
@@ -68,6 +108,29 @@ var InfocenterPersonDataset = {
InfocenterPersonDataset.changeStudiensemesterUservar(-1);
});
+ $('button.auswahlAbsageBtn').click(function()
+ {
+ var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
+
+ if(idsel.length <= 0)
+ return FHC_DialogLib.alertInfo("Bitte wählen Sie die Personen aus.");
+
+ if($('.absgstatusgrund').val() === 'null' || $('.auswahlAbsageStg').val() === 'null')
+ return FHC_DialogLib.alertInfo("Bitte den Absagegrund und Studiengang auswählen.");
+
+ $(".absageModalForAll").modal("show");
+ });
+
+ $('#saveAbsageForAll').click(function()
+ {
+ InfocenterPersonDataset.saveAbsageForAll();
+ });
+
+ $('a.absageToggle').click(function()
+ {
+ $('#absagePunkte').toggle();
+ })
+
var personcount = 0;
FHC_AjaxClient.ajaxCallGet(
@@ -115,6 +178,22 @@ var InfocenterPersonDataset = {
);
},
+ selectStudiengangTyp: function(typ)
+ {
+ switch (typ)
+ {
+ case 'b, m' :
+ $('.auswahlStudienArt [data-id="all"]').attr('selected', 'selected');
+ break;
+ case 'b' :
+ $('.auswahlStudienArt [data-id="bachelor"]').attr('selected', 'selected');
+ break;
+ case 'm' :
+ $('.auswahlStudienArt [data-id="master"]').attr('selected', 'selected');
+ break;
+ }
+ },
+
/**
* sets functionality for the actions above and beneath the person table
*/
@@ -173,6 +252,45 @@ var InfocenterPersonDataset = {
});
},
+ changeStudengangsTyp: function($typ)
+ {
+ switch ($typ)
+ {
+ case 'all' :
+ var change = 'b\', \'m';
+ break;
+ case 'bachelor' :
+ var change = 'b';
+ break;
+ case 'master' :
+ var change = 'm';
+ break;
+ }
+
+ FHC_AjaxClient.showVeil();
+
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/Variables/changeStudengangsTypVar',
+ {
+ 'name': InfocenterPersonDataset.infocenter_studienganstyp_variablename,
+ 'change': change,
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ // refresh filterwidget with page reload
+ FHC_FilterWidget.reloadDataset();
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_AjaxClient.hideVeil();
+ alert(textStatus);
+ }
+ }
+ );
+ },
+
/**
* initializes change of the uservariable infocenter_studiensemesster, either
* to next semester (change > 0) or previous semester (change < 0)
@@ -203,6 +321,75 @@ var InfocenterPersonDataset = {
);
},
+ saveAbsageForAll: function()
+ {
+ var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
+
+ var statusgrund = $('.absgstatusgrund').val();
+ var studiengang = $('.auswahlAbsageStg').val();
+
+ var personen = [];
+
+ for (var i = 0; i < idsel.length; i++)
+ {
+ personen.push($(idsel[i]).val());
+ }
+
+ FHC_AjaxClient.ajaxCallPost(
+ 'system/infocenter/InfoCenter/saveAbsageForAll',
+ {
+ 'statusgrund': statusgrund,
+ 'studiengang': studiengang,
+ 'personen' : personen
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.isError(data))
+ FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
+
+ if (FHC_AjaxClient.hasData(data))
+ FHC_DialogLib.alertSuccess("Erfolgreich gespeichert.")
+
+ $(".absageModalForAll").modal("hide");
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
+
+ getAbsageData: function()
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ 'system/infocenter/InfoCenter/getAbsageData',
+ {},
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ data = FHC_AjaxClient.getData(data);
+ $.each(data.statusgruende, function(key, value){
+ $('.absgstatusgrund').append($(" ", {
+ value: value.statusgrund_id,
+ text: value.bezeichnung_mehrsprachig[0]
+ }))
+ })
+ $.each(data.studiengaenge, function(key, value){
+ $('.auswahlAbsageStg').append($(" ", {
+ value: value.studiengang,
+ text: value.studiengang
+ }))
+ })
+
+ }
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown) {
+ FHC_DialogLib.alertError(textStatus);
+ }
+ }
+ );
+ },
/**
* initializes call to get the Studiensemester user variable
*/
@@ -211,7 +398,8 @@ var InfocenterPersonDataset = {
FHC_AjaxClient.ajaxCallGet(
'system/Variables/getVar',
{
- 'name': InfocenterPersonDataset.infocenter_studiensemester_variablename
+ 'name' : InfocenterPersonDataset.infocenter_studiensemester_variablename,
+ 'typ' : InfocenterPersonDataset.infocenter_studienganstyp_variablename
},
{
successCallback: function(data, textStatus, jqXHR) {
@@ -220,7 +408,7 @@ var InfocenterPersonDataset = {
if (typeof callback === "function")
{
var infocenter_studiensemester = FHC_AjaxClient.getData(data);
- callback(infocenter_studiensemester[InfocenterPersonDataset.infocenter_studiensemester_variablename]);
+ callback(infocenter_studiensemester[InfocenterPersonDataset.infocenter_studiensemester_variablename], infocenter_studiensemester[InfocenterPersonDataset.infocenter_studienganstyp_variablename]);
}
}
},
diff --git a/public/js/infocenter/zgvUeberpruefung.js b/public/js/infocenter/zgvUeberpruefung.js
new file mode 100644
index 000000000..6181083f2
--- /dev/null
+++ b/public/js/infocenter/zgvUeberpruefung.js
@@ -0,0 +1,196 @@
+$(document).ready(function ()
+{
+ var personid = $("#hiddenpersonid").val();
+
+ var studiengang = $('#studiengangtyp').val();
+
+ zgvUeberpruefung.checkAfterReload();
+
+ $('.zgvRueckfragen').click(function ()
+ {
+ var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+
+ var data = {
+ 'person_id' : personid,
+ 'prestudent_id' : prestudentid
+ }
+ zgvUeberpruefung.zgvRueckfragen(data);
+ });
+
+ $('.zgvAkzeptieren').click(function (){
+ var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+
+ if (studiengang === 'b')
+ {
+ $('#inputStatus_' + prestudentid).val('accepted');
+ $('#notizModal_' + prestudentid).modal('show');
+ $('#notizModal_' + prestudentid + ' #inputNotizTitelModal').val('ZGV wurde erfüllt')
+ }
+ else
+ {
+ var data = {
+ 'person_id' : personid,
+ 'prestudent_id' : prestudentid,
+ 'status' : 'accepted'
+ }
+ zgvUeberpruefung.zgvStatusUpdate(data);
+ }
+
+ });
+
+ $('.zgvAblehnen').click(function (){
+ var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ $('#inputStatus_' + prestudentid).val('rejected');
+ $('#notizModal_' + prestudentid).modal('show');
+ $('#notizModal_' + prestudentid + ' #inputNotizTitelModal').val('ZGV wurde nicht erfüllt')
+ });
+
+ $('.zgvAkzeptierenPruefung').click(function (){
+ var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+ $('#inputStatus_' + prestudentid).val('accepted_pruefung');
+ $('#notizModal_' + prestudentid).modal('show');
+ $('#notizModal_' + prestudentid + ' #inputNotizTitelModal').val('ZGV mit Prüfungen erfüllt')
+ });
+
+ $('.saveZgvNotiz').click(function (){
+ var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
+
+ if ($('#inputNotizTitelModal').val() === '' || $('#inputNotizTextModal').val() === '')
+ return FHC_DialogLib.alertWarning('Please fill out all fields');
+
+ var data = {
+ 'person_id' : personid,
+ 'notiztitel' : $('#inputNotizTitelModal').val(),
+ 'notiz' : $('#inputNotizTextModal').val(),
+ 'prestudent_id' : prestudentid,
+ 'status' : $('#inputStatus_' + prestudentid).val()
+ }
+
+ InfocenterDetails.saveNotiz(personid, data, zgvUeberpruefung.zgvStatusUpdate);
+
+ $('#notizModal_' + prestudentid).modal('hide');
+ });
+});
+
+var zgvUeberpruefung = {
+ checkStatus: function(prestudent_id)
+ {
+ FHC_AjaxClient.ajaxCallGet(
+ "system/infocenter/ZGVUeberpruefung/getZgvStatusByPrestudent",
+ {
+ prestudent_id : prestudent_id
+ },
+ {
+ successCallback: function(data, textStatus, jqXHR) {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ $('#zgvBearbeitungButtons_' + prestudent_id +' button').each(function() {
+ $(this).attr('disabled', false);
+ });
+
+ var status = FHC_AjaxClient.getData(data);
+
+ switch (status)
+ {
+ case 'rejected' :
+ $('#zgvAblehnen_' + prestudent_id).attr('disabled', true);
+ $('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvNichtErfuellt'));
+ break;
+ case 'accepted' :
+ $('#zgvAkzeptieren_' + prestudent_id).attr('disabled', true);
+ $('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvErfuellt'));
+ break;
+ case 'accepted_pruefung' :
+ $('#zgvAkzeptierenPruefung_' + prestudent_id).attr('disabled', true);
+ $('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvErfuelltPruefung'));
+ break;
+ case 'pruefung_stg' :
+ $('#zgvRueckfragen_' + prestudent_id).attr('disabled', true);
+ $('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvInPruefung'));
+ break;
+ }
+ }
+ },
+ errorCallback: function(data, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError(data);
+ },
+ veilTimeout: 0
+ }
+ );
+ },
+
+ zgvRueckfragen: function(data)
+ {
+ var prestudent_id = data.prestudent_id;
+ FHC_AjaxClient.ajaxCallPost(
+ CALLED_PATH + '/zgvRueckfragen',
+ data,
+ {
+ successCallback: function(data, textStatus, jqXHR)
+ {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ zgvUeberpruefung.checkStatus(prestudent_id);
+
+ var response = FHC_AjaxClient.getData(data);
+
+ if (response.hold === false)
+ {
+ var datum = new Date();
+ datum.setDate(datum.getDate() + 14);
+ var formatedDate = $.datepicker.formatDate("mm/dd/yy", datum);
+ InfocenterDetails.setPersonOnHold(response.person_id, formatedDate);
+ }
+
+ InfocenterDetails._refreshLog();
+ FHC_DialogLib.alertSuccess(response.msg);
+ } else if(FHC_AjaxClient.isError(data))
+ FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError((jqXHR.responseText));
+ }
+ }
+ );
+ },
+
+ zgvStatusUpdate: function(data)
+ {
+ var prestudent_id = data.prestudent_id;
+ FHC_AjaxClient.ajaxCallPost(
+ CALLED_PATH + '/zgvStatusUpdate',
+ data,
+ {
+ successCallback: function(data, textStatus, jqXHR)
+ {
+ if (FHC_AjaxClient.hasData(data))
+ {
+ zgvUeberpruefung.checkStatus(prestudent_id);
+ var response = FHC_AjaxClient.getData(data)
+
+ if (response.openZgv === false)
+ InfocenterDetails.removePersonOnHold(response.person_id);
+
+ FHC_DialogLib.alertSuccess(response.msg);
+ } else if (FHC_AjaxClient.isError(data))
+ FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
+ },
+ errorCallback: function(jqXHR, textStatus, errorThrown)
+ {
+ FHC_DialogLib.alertError((jqXHR.responseText));
+ }
+ }
+ );
+ },
+
+ checkAfterReload: function()
+ {
+ $('.zgvStatusText').each(function() {
+ if ($(this).data('info')) {
+ zgvUeberpruefung.checkStatus(InfocenterDetails._getPrestudentIdFromElementId($(this).attr('id')));
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/rdf/bisverwendung.rdf.php b/rdf/bisverwendung.rdf.php
index 81eb1f444..16e6daba5 100644
--- a/rdf/bisverwendung.rdf.php
+++ b/rdf/bisverwendung.rdf.php
@@ -84,12 +84,17 @@ function draw_row($row)
$hauptberuflich = $row->hauptberuflich?'Ja':'Nein';
else
$hauptberuflich = '';
-
+
if(is_bool($row->zeitaufzeichnungspflichtig))
$zeitaufzeichnungspflichtig = $row->zeitaufzeichnungspflichtig?'Ja':'Nein';
else
$zeitaufzeichnungspflichtig = '';
-
+
+ if(is_bool($row->azgrelevant))
+ $azgrelevant = $row->azgrelevant?'Ja':'Nein';
+ else
+ $azgrelevant = '';
+
echo '
@@ -119,6 +124,7 @@ function draw_row($row)
dv_art.']]>
inkludierte_lehre.']]>
+
';
diff --git a/rdf/lehrauftrag_annehmen.xml.php b/rdf/lehrauftrag_annehmen.xml.php
index c0f691fe3..990701901 100644
--- a/rdf/lehrauftrag_annehmen.xml.php
+++ b/rdf/lehrauftrag_annehmen.xml.php
@@ -275,29 +275,29 @@ function drawLehrauftrag($uid)
FROM
campus.vw_lehreinheit
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid)
- JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
+ JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($uid)."
AND studiensemester_kurzbz=".$db->db_add_param($ss). "
- AND lema.vertrag_id IS NOT NULL
- AND vertragsstatus_kurzbz = 'akzeptiert'";
+ AND lema.vertrag_id IS NOT NULL
+ AND vertragsstatus_kurzbz = 'akzeptiert'";
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
- {
- $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
- }
+ {
+ $qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
+ }
elseif (!empty($xsl_oe_kurzbz))
- {
- if ($xsl_oe_kurzbz == 'etw')
- {
- $qry .= " AND lv_studiengang_kz > 0";
- }
+ {
+ if ($xsl_oe_kurzbz == 'etw')
+ {
+ $qry .= " AND lv_studiengang_kz > 0";
+ }
- if ($xsl_oe_kurzbz == 'lehrgang')
- {
- $qry .= " AND lv_studiengang_kz <= 0";
- }
- }
+ if ($xsl_oe_kurzbz == 'lehrgang')
+ {
+ $qry .= " AND lv_studiengang_kz <= 0";
+ }
+ }
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
@@ -390,8 +390,8 @@ function drawLehrauftrag($uid)
$gesamtstunden = $gesamtstunden + $stunden;
}
}
- $qry = 'SELECT
- pa.projektarbeit_id,
+ $qry = 'SELECT
+ pa.projektarbeit_id,
pb.faktor,
pb.stunden,
pb.stundensatz,
@@ -401,37 +401,37 @@ function drawLehrauftrag($uid)
student.studiengang_kz,
projekttyp_kurzbz,
lv.oe_kurzbz,
- vertragsstatus_kurzbz
+ vertragsstatus_kurzbz
FROM lehre.tbl_projektbetreuer pb
- JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
- JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
- JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
- JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
- JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
- JOIN campus.vw_student student ON pa.student_uid = student.uid
- LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
- LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
+ JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
+ JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
+ JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
+ JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
+ JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
+ JOIN campus.vw_student student ON pa.student_uid = student.uid
+ LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
+ LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE pb.vertrag_id IS NOT NULL
- AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
- AND benutzer.uid = '.$db->db_add_param($uid).'
- AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
+ AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
+ AND benutzer.uid = '.$db->db_add_param($uid).'
+ AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
if ($studiengang_kz != '')
- {
- $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
- }
- elseif (!empty($xsl_oe_kurzbz))
- {
- if ($xsl_oe_kurzbz == 'etw')
- {
- $qry .= " AND lv.studiengang_kz > 0";
- }
+ {
+ $qry .= " AND lv.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
+ }
+ elseif (!empty($xsl_oe_kurzbz))
+ {
+ if ($xsl_oe_kurzbz == 'etw')
+ {
+ $qry .= " AND lv.studiengang_kz > 0";
+ }
- if ($xsl_oe_kurzbz == 'lehrgang')
- {
- $qry .= " AND lv.studiengang_kz <= 0";
- }
- }
+ if ($xsl_oe_kurzbz == 'lehrgang')
+ {
+ $qry .= " AND lv.studiengang_kz <= 0";
+ }
+ }
if ($result = $db->db_query($qry))
{
@@ -471,8 +471,6 @@ function drawLehrauftrag($uid)
}
}
-
-
foreach ($lv as $lv_row)
{
$xml .= '
diff --git a/system/checkroles.php b/system/checkroles.php
index 54839437e..e7365ef91 100644
--- a/system/checkroles.php
+++ b/system/checkroles.php
@@ -54,7 +54,7 @@ $data = array
'rolle_kurzbz' => 'admin',
'berechtigung' => array
(
- 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
+ 'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lehre/zgvpruefung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'mitarbeiter/zeitwuensche', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
)
)
);
diff --git a/system/checksystem.php b/system/checksystem.php
index 3253dd5d4..adc78eb5b 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -162,6 +162,7 @@ $berechtigungen = array(
array('lehre/studienordnungInaktiv','Studienordnung Inaktiv'),
array('lehre/studienplan','Studienplan'),
array('lehre/vorrueckung','Lehreinheitenvorrückung'),
+ array('lehre/zgvpruefung','Berechtigung um ZGV Überprüfungen vorzunehmen'),
array('lv-plan','Stundenplan'),
array('lv-plan/gruppenentfernen','Erlaut das Entfernen von Gruppen aus LVPlan vom FAS aus'),
array('lv-plan/lektorentfernen','Erlaut das Entfernen von Lektoren aus LVPlan vom FAS aus'),
@@ -171,6 +172,7 @@ $berechtigungen = array(
array('mitarbeiter/stammdaten','Stammdaten der Mitarbeiter'),
array('mitarbeiter/urlaube','Mit diesem Recht werden im CIS die Urlaube von allen Mitarbeiter sichtbar'),
array('mitarbeiter/zeitsperre','Zeitsperren- und Urlaubsverwaltung'),
+ array('mitarbeiter/zeitwuensche','Berechtigung um Zeitwünsche zu editieren'),
array('news','News eintragen'),
array('planner','Planner Verwaltung'),
array('preinteressent','Verwaltung der Preinteressenten'),
diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php
index e658d7a97..7e0aefe09 100644
--- a/system/dbupdate_3.3.php
+++ b/system/dbupdate_3.3.php
@@ -3265,6 +3265,20 @@ if(!@$db->db_query("SELECT 0 FROM public.tbl_variablenname WHERE 0 = 1"))
echo ' Granted privileges to vilesci on public.tbl_variablenname';
}
+// Add new name type in public.tbl_variablenname
+if ($result = @$db->db_query("SELECT 1 FROM public.tbl_variablenname WHERE name = 'infocenter_studiensgangtyp';"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_variablenname(name, defaultwert) VALUES('infocenter_studiensgangtyp', 'b');";
+
+ if (!$db->db_query($qry))
+ echo 'public.tbl_variablenname '.$db->db_last_error().' ';
+ else
+ echo 'public.tbl_variablenname: Added name "infocenter_studiensgangtyp" ';
+ }
+}
+
// Add column projektphase_id to tbl_zeitaufzeichnung
if(!$result = @$db->db_query("SELECT projektphase_id FROM campus.tbl_zeitaufzeichnung LIMIT 1"))
{
@@ -4465,6 +4479,21 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE
}
}
+// ADD COLUMN azgrelevant in bis.tbl_bisverwendung
+if(!$result = @$db->db_query("SELECT azgrelevant FROM bis.tbl_bisverwendung LIMIT 1"))
+{
+ $qry = "
+ ALTER TABLE bis.tbl_bisverwendung ADD COLUMN azgrelevant boolean;
+ UPDATE bis.tbl_bisverwendung SET azgrelevant = zeitaufzeichnungspflichtig;
+ UPDATE bis.tbl_bisverwendung SET zeitaufzeichnungspflichtig = true WHERE ba1code=103 AND beschausmasscode!=5;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'bis.tbl_bisverwendung: '.$db->db_last_error().' ';
+ else
+ echo ' bis.tbl_bisverwendung Spalte azgrelevant hinzugefügt.';
+}
+
// Add new funktion type kstzuordnung for cost center assignment in public.tbl_funktion
if ($result = @$db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kurzbz = 'kstzuordnung';"))
{
@@ -4767,6 +4796,144 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
+
+// INSERT,DELETE,UPDATE Berechtigung für tbl_dokumentprestudent hinzufügen
+if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_dokumentprestudent' AND table_schema='public' AND grantee='web' AND privilege_type in ('INSERT','DELETE','UPDATE')"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "GRANT INSERT, DELETE, UPDATE ON public.tbl_dokumentprestudent TO web;";
+
+ if(!$db->db_query($qry))
+ echo 'dokumentprestudent Berechtigungen: '.$db->db_last_error().' ';
+ else
+ echo ' Granted privileges to public.tbl_dokumentprestudent';
+ }
+}
+
+// Add table zgvpruefungstatus
+if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE public.tbl_zgvpruefungstatus
+ (
+ status_kurzbz character varying(32),
+ bezeichnung character varying(256)
+ );
+
+ ALTER TABLE public.tbl_zgvpruefungstatus ADD CONSTRAINT status_kurzbz PRIMARY KEY (status_kurzbz);
+ INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('pruefung_stg', 'Wird vom Studiengang geprüft');
+ INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('rejected', 'Vom Studiengang abgelehnt');
+ INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted', 'Vom Studiengang akzeptiert');
+ INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted_pruefung', 'Vom Studiengang akzeptiert mit Prüfung');
+
+ GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus TO vilesci;
+ GRANT SELECT ON public.tbl_zgvpruefungstatus TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_zgvpruefungstatus: '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_zgvpruefungstatus: Tabelle hinzugefuegt ';
+}
+
+// Add table zgvpruefung
+if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE public.tbl_zgvpruefung
+ (
+ zgvpruefung_id integer NOT NULL,
+ prestudent_id integer NOT NULL,
+ insertamum timestamp without time zone,
+ insertvon character varying(32),
+ updateamum timestamp without time zone,
+ updatevon character varying(32)
+ );
+
+ CREATE SEQUENCE public.tbl_zgvpruefung_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+ ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT pk_tbl_zgvpruefung PRIMARY KEY (zgvpruefung_id);
+ ALTER TABLE public.tbl_zgvpruefung ALTER COLUMN zgvpruefung_id SET DEFAULT nextval('public.tbl_zgvpruefung_id_seq');
+ ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT fk_tbl_zgvpruefung_student FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent (prestudent_id) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ GRANT SELECT, UPDATE ON public.tbl_zgvpruefung_id_seq TO vilesci;
+ GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefung TO vilesci;
+ GRANT SELECT ON public.tbl_zgvpruefung TO web;
+
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_zgvpruefung: '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_zgvpruefung: Tabelle hinzugefuegt ';
+}
+
+// Add table zgvpruefungstatus_status
+if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status LIMIT 1;"))
+{
+ $qry = "
+ CREATE TABLE public.tbl_zgvpruefungstatus_status
+ (
+ zgv_pruefung_status_id integer NOT NULL,
+ zgvpruefung_id integer NOT NULL,
+ status character varying(32),
+ datum timestamp without time zone DEFAULT now()
+ );
+
+ CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq
+ INCREMENT BY 1
+ NO MAXVALUE
+ NO MINVALUE
+ CACHE 1;
+
+ ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT pk_tbl_zgvpruefungstatus_status PRIMARY KEY (zgv_pruefung_status_id);
+ ALTER TABLE public.tbl_zgvpruefungstatus_status ALTER COLUMN zgv_pruefung_status_id SET DEFAULT nextval('tbl_zgvpruefungstatus_status_id_seq');
+ ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_zgvpruefung FOREIGN KEY (zgvpruefung_id) REFERENCES public.tbl_zgvpruefung (zgvpruefung_id) ON DELETE RESTRICT ON UPDATE CASCADE;
+ ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_status FOREIGN KEY (status) REFERENCES public.tbl_zgvpruefungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
+
+ GRANT SELECT, UPDATE ON public.tbl_zgvpruefungstatus_status_id_seq TO vilesci;
+ GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus_status TO vilesci;
+ GRANT SELECT ON public.tbl_zgvpruefungstatus_status TO web;
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'public.tbl_zgvpruefungstatus_status: '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_zgvpruefungstatus_status: Tabelle hinzugefuegt ';
+}
+
+
+// Add index to system.tbl_log
+if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruefung_student_uid'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "CREATE INDEX idx_tbl_pruefung_student_uid ON lehre.tbl_pruefung USING btree (student_uid)";
+
+ if (! $db->db_query($qry))
+ echo 'Indizes: ' . $db->db_last_error() . ' ';
+ else
+ echo 'Index fuer lehre.pruefung.student_uid hinzugefuegt ';
+ }
+}
+
+// Added Buchungstyp "ZuschussIO"
+if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchungstyp_kurzbz = 'ZuschussIO';"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "INSERT INTO public.tbl_buchungstyp (buchungstyp_kurzbz, beschreibung, standardtext) VALUES ('ZuschussIO', 'Zuschuss IO', 'Zuschuss Incoming Outgoing');";
+ if (!$db->db_query($qry))
+ echo 'public.tbl_buchungstyp '.$db->db_last_error().' ';
+ else
+ echo ' public.tbl_buchungstyp: Added buchungstyp "ZuschussIO" ';
+ }
+}
+
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute! ';
@@ -4784,7 +4951,7 @@ $tabellen=array(
"bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id","ects_erworben","ects_angerechnet"),
"bis.tbl_bisio_zweck" => array("bisio_id","zweck_code"),
- "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre","zeitaufzeichnungspflichtig"),
+ "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre","zeitaufzeichnungspflichtig","azgrelevant"),
"bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"),
"bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"),
"bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"),
@@ -4873,10 +5040,8 @@ $tabellen=array(
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
- "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
- "lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id","status_kurzbz","datum", "insertamum","insertvon"),
+ "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
- "lehre.tbl_anrechnungstatus" => array("status_kurzbz","bezeichnung_mehrsprachig"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
"lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"),
@@ -5007,6 +5172,9 @@ $tabellen=array(
"public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype","attribute","archivierbar","signierbar","stud_selfservice","dokument_kurzbz","insertamum","insertvon","updateamum","updatevon"),
"public.tbl_vorlagedokument" => array("vorlagedokument_id","sort","vorlagestudiengang_id","dokument_kurzbz"),
"public.tbl_vorlagestudiengang" => array("vorlagestudiengang_id","vorlage_kurzbz","studiengang_kz","version","text","oe_kurzbz","style","berechtigung","anmerkung_vorlagestudiengang","aktiv","sprache","subject","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon"),
+ "public.tbl_zgvpruefungstatus" => array("status_kurzbz","bezeichnung"),
+ "public.tbl_zgvpruefung" => array("zgvpruefung_id","prestudent_id","insertamum","insertvon","updateamum","updatevon"),
+ "public.tbl_zgvpruefungstatus_status" => array("zgv_pruefung_status_id","zgvpruefung_id","status","datum"),
"testtool.tbl_ablauf" => array("ablauf_id","gebiet_id","studiengang_kz","reihung","gewicht","semester", "insertamum","insertvon","updateamum", "updatevon","ablauf_vorgaben_id","studienplan_id"),
"testtool.tbl_ablauf_vorgaben" => array("ablauf_vorgaben_id","studiengang_kz","sprache","sprachwahl","content_id","insertamum","insertvon","updateamum", "updatevon"),
"testtool.tbl_antwort" => array("antwort_id","pruefling_id","vorschlag_id"),
diff --git a/system/filtersupdate.php b/system/filtersupdate.php
index 2d8daed4d..77e0c3e3a 100644
--- a/system/filtersupdate.php
+++ b/system/filtersupdate.php
@@ -33,11 +33,13 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"}
],
"filters": [
@@ -66,11 +68,13 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"}
],
"filters": [
@@ -105,9 +109,11 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
{"name": "StgNichtAbgeschickt"},
{"name": "StgAbgeschickt"},
@@ -140,8 +146,10 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "LastAction"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
{"name": "StgNichtAbgeschickt"},
{"name": "StgAbgeschickt"},
@@ -180,10 +188,12 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "StgAbgeschickt"},
{"name": "Studiensemester"},
{"name": "LastAction"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"}
],
"filters": [
@@ -218,8 +228,10 @@ $filters = array(
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "ZGVNation"},
+ {"name": "ZGVMNation"},
{"name": "LastAction"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
{"name": "StgNichtAbgeschickt"},
{"name": "StgAbgeschickt"},
@@ -266,6 +278,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "LastAction"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
{"name": "Statusgrund"}
],
@@ -302,6 +315,7 @@ $filters = array(
{"name": "LastAction"},
{"name": "LastActionType"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"},
{"name": "Statusgrund"},
{"name": "Studiensemester"},
@@ -383,6 +397,7 @@ $filters = array(
{"name": "StgAbgeschickt"},
{"name": "LastAction"},
{"name": "User/Operator"},
+ {"name": "InfoCenterMitarbeiter"},
{"name": "LockUser"}
],
"filters": [
@@ -401,6 +416,61 @@ $filters = array(
',
'oe_kurzbz' => null,
),
+ array(
+ 'app' => 'infocenter',
+ 'dataset_name' => 'zgvUeberpruefung',
+ 'filter_kurzbz' => 'zgvOffen',
+ 'description' => '{ZGV Überprüfung}',
+ 'sort' => 1,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Zgv Überprüfung",
+ "columns": [
+ {"name": "PreStudentID"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "Studiengang"}
+ ],
+ "filters": [
+ {
+ "name": "Status",
+ "condition": "stg",
+ "operation": "contains"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'dataset_name' => 'zgvUeberpruefung',
+ 'filter_kurzbz' => 'zgvRest',
+ 'description' => '{ZGV abgeschlossen}',
+ 'sort' => 2,
+ 'default_filter' => true,
+ 'filter' => '
+ {
+ "name": "Zgv abgeschlossen",
+ "columns": [
+ {"name": "PreStudentID"},
+ {"name": "Vorname"},
+ {"name": "Nachname"},
+ {"name": "Studiengang"},
+ {"name": "Status"}
+ ],
+ "filters": [
+ {
+ "name": "Status",
+ "condition": "stg",
+ "operation": "ncontains"
+ }
+ ]
+ }
+ ',
+ 'oe_kurzbz' => null,
+ ),
array(
'app' => 'budget',
'dataset_name' => 'budgetoverview',
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index b49aa6044..9c0f931cf 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -88,6 +88,26 @@ $phrases = array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'global',
+ 'phrase' => 'text',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Text',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'text',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'global',
@@ -3006,6 +3026,106 @@ $phrases = array(
)
)
),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zgvRueckfragen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ZGV Prüfung beantragen',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'apply for a ZGV examination',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zgvErfuellt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ZGV erfüllt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ZGV fulfilled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zgvNichtErfuellt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ZGV nicht erfüllt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ZGV unfulfilled',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zgvErfuelltPruefung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ZGV mit Prüfungen erfüllt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ZGV fulfilled with exam',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'zgvInPruefung',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'ZGV noch in Prüfung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'ZGV still in review',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'infocenter',
'category' => 'infocenter',
@@ -3366,6 +3486,86 @@ $phrases = array(
)
)
),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'dokumentWirdNachgereicht',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Dokument wird nachgereicht',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Document will be submitted later',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'datumUngueltig',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Datumsformat ist ungültig oder liegt außerhalb des gültigen Bereichs. Bitte geben Sie ein gültiges Datum im Format tt.mm.jjjj ein.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Date is invalid or out of range. Please enter a valid date in the format dd.mm.yyyy.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'dokUngueltig',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Bei dem Dokument ist keine Nachreichung möglich.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Date is invalid or out of range. Please enter a valid date in the format dd.mm.yyyy.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'infocenter',
+ 'category' => 'infocenter',
+ 'phrase' => 'nachreichDatumNichtVergangenheit',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Das Datum der Nachreichung darf nicht in der Vergangenheit liegen.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'The date of submission may not be in the past.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'global',
@@ -3549,18 +3749,18 @@ $phrases = array(
array(
'app' => 'infocenter',
'category' => 'infocenter',
- 'phrase' => 'nurBachelorFreigeben',
+ 'phrase' => 'nurBachelorMasterFreigeben',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
- 'text' => 'Nur Bachelorstudiengänge können freigegeben werden.',
+ 'text' => 'Nur Bachelorstudiengänge/Masterstudiengänge können freigegeben werden.',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
- 'text' => 'Only bachelor programmes can be approved.',
+ 'text' => 'Only bachelor/master programmes can be approved.',
'description' => '',
'insertvon' => 'system'
)
@@ -7949,6 +8149,26 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'zukuenftige',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Zukünftige',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'upcoming',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'ui',
diff --git a/vilesci/personen/lektor_uebersicht.php b/vilesci/personen/lektor_uebersicht.php
index 0a1f9b1cc..f96bbac27 100644
--- a/vilesci/personen/lektor_uebersicht.php
+++ b/vilesci/personen/lektor_uebersicht.php
@@ -106,7 +106,8 @@ if(!isset($_GET['searchstr']))
$email=$row->uid.'@'.DOMAIN;
echo "$email ";
- echo "Edit ";
+ if($rechte->isBerechtigt('student/stammdaten', null, 's') || $rechte->isBerechtigt('mitarbeiter/stammdaten', null, 's'))
+ echo "Edit ";
echo "";
if ($row->lektor)
{
diff --git a/vilesci/personen/zeitwunsch.php b/vilesci/personen/zeitwunsch.php
index 36f1c5e87..416c6387d 100644
--- a/vilesci/personen/zeitwunsch.php
+++ b/vilesci/personen/zeitwunsch.php
@@ -66,7 +66,7 @@ $updatevon = 0;
// Zeitwuensche speichern
if (isset($_POST['save']))
{
- if(!$rechte->isBerechtigt('mitarbeiter', null, 'suid'))
+ if(!$rechte->isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
die($rechte->errormsg);
for ($t=1;$t<7;$t++)
@@ -157,7 +157,13 @@ $updatevon = 0;
?>
isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
+ $readonly = '';
+
+ for ($j=1; $j<7; $j++)
{
echo ''.$tagbez[1][$j].' ';
for ($i=0;$i<$num_rows_stunde;$i++)
@@ -166,7 +172,7 @@ $updatevon = 0;
if ($index=="")
$index=1;
$bgcolor=$cfgStdBgcolor[$index+3];
- echo ' ';
+ echo ' ';
}
echo ' ';
}
@@ -189,7 +195,10 @@ $updatevon = 0;
-
+ isBerechtigt('mitarbeiter/zeitwuensche', null, 'suid'))
+ echo ' '
+ ?>
diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php
index c143a1390..2c4c4f0fa 100644
--- a/vilesci/stammdaten/personen_wartung.php
+++ b/vilesci/stammdaten/personen_wartung.php
@@ -135,6 +135,99 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
}
else
{
+ // Prüfen, ob tbl_alma existiert (also ob ALMA extension installiert ist)
+ if($result = @$db->db_query("SELECT 1 FROM sync.tbl_alma LIMIT 1"))
+ {
+ // Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen
+ $alma_has_personToKeep = false;
+ $alma_has_personToDelete = false;
+ $alma_update_obj = new StdClass();
+ $alma_query_upd = '';
+
+ $alma_query = "
+ SELECT *
+ FROM sync.tbl_alma
+ WHERE (
+ person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
+ person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
+ )";
+
+ if ($result = $db->db_query($alma_query))
+ {
+ while ($row = $db->db_fetch_object($result))
+ {
+ if ($row->person_id == $personToKeep)
+ {
+ $alma_has_personToKeep = true;
+ }
+ if ($row->person_id == $personToDelete)
+ {
+ $alma_has_personToDelete = true;
+ $alma_update_obj = $row;
+ }
+ }
+ }
+
+ // Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen
+ if ($alma_has_personToDelete && !$alma_has_personToKeep)
+ {
+ $alma_query_upd = "
+ UPDATE sync.tbl_alma
+ SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
+ WHERE alma_match_id = " . $alma_update_obj->alma_match_id . "
+ AND person_id = " . $alma_update_obj->person_id . ";";
+ }
+ // Falls bereits doppelte Einträge in ALMA vorhanden sind (zu löschende und zu behaltende), manuell lösen
+ elseif ($alma_has_personToDelete && $alma_has_personToKeep)
+ {
+ die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.');
+ }
+ }
+
+ // Prüfen, ob tbl_sap_students exisitiert
+ if($result = @$db->db_query("SELECT 1 FROM sync.tbl_sap_students LIMIT 1"))
+ {
+ // Wenn Person in SAP students vorkommt, ggf. die Person dort übernehmen
+ $sap_students_has_personToKeep = false;
+ $sap_students_has_personToDelete = false;
+ $sap_students_update_obj = new StdClass();
+ $sap_students_query_upd = '';
+
+ $sap_students_query = "
+ SELECT *
+ FROM sync.tbl_sap_students
+ WHERE (
+ person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
+ person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
+ )";
+
+ if ($result = $db->db_query($sap_students_query)) {
+ while ($row = $db->db_fetch_object($result)) {
+ if ($row->person_id == $personToKeep) {
+ $sap_students_has_personToKeep = true;
+ }
+ if ($row->person_id == $personToDelete) {
+ $sap_students_has_personToDelete = true;
+ $sap_students_update_obj = $row;
+ }
+ }
+ }
+
+ // Wenn die zu löschende Person in SAP students eingetragen ist, dann mit der zu behaltenden Person überschreiben
+ if ($sap_students_has_personToDelete && !$sap_students_has_personToKeep) {
+ $sap_students_query_upd = "
+ UPDATE sync.tbl_sap_students
+ SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
+ WHERE sap_user_id = " . $db->db_add_param($sap_students_update_obj->sap_user_id, FHC_STRING) . "
+ AND person_id = " . $sap_students_update_obj->person_id . ";";
+ }
+ // Wenn doppelte Personeneinträge in SAP students vorhanden sind (zu löschende UND zu behaltende Person),
+ // dann manuell lösen
+ elseif ($sap_students_has_personToDelete && $sap_students_has_personToKeep) {
+ die('Es sind bereits beide Personen in SAP vorhanden. Bitte zuerst direkt in der tbl_sap_students lösen.');
+ }
+ }
+
$personToDelete_obj = new person();
if ($personToDelete_obj->load($personToDelete))
{
@@ -346,6 +439,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$sql_query_upd1 .= "UPDATE system.tbl_person_lock SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
+ $sql_query_upd1 .= $alma_query_upd;
+ $sql_query_upd1 .= $sap_students_query_upd;
$sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";