mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-17 03:59:28 +00:00
Personen Zusammenlegen ueberarbeitet
- Personen können aus FAS heraus zusammengelegt werden (bis zu 2 Personen markieren -> Rechte Maustaste -> Personen zusammenlegen" - Fotos und die existierenden Rollen werden in der Übersicht angezeigt - Recht muss "basis/person" mit SUID sein - Alle derzeit vorhandenen DB-Tabellen werden berücksichtigt - Aktuelleres Foto wird übernommen, Fotosperren werden übernommen, Fotohistorie wird übernommen - Ersatzkennzeichen bzw Sozialversicherungsnummer wird übernommen - Letztbenutzter Zugangscode wird übernommen - Adressen der verbliebenen Person werden zusammengeräumt (Doppelte löschen, Unvollständige zusammenführen) - Kontakte der verbliebenen Person werden zusammengeräumt (Doppelte löschen, Unvollständige zusammenführen) - Doppelte PreStudenten (im selben Studiensemester) werden gelöscht - Neue Funktion getLog in personlog.class laedt die Log-Einträge einer Person
This commit is contained in:
@@ -82,6 +82,10 @@ else
|
||||
</menu>
|
||||
<menuseparator />
|
||||
<menuitem label="Personendetails anzeigen" oncommand="StudentShowPersonendetails();" id="student-tree-popup-personendetails" hidden="false"/>
|
||||
<?php
|
||||
if($rechte->isBerechtigt('basis/person', null, 'suid'))
|
||||
echo '<menuitem label="Person(en) zusammenlegen" oncommand="StudentPersonenZusammenlegen();" id="student-tree-popup-personenzusammenlegen" hidden="false"/>';
|
||||
?>
|
||||
<!--
|
||||
<menuitem label="Interessenten löschen" oncommand="StudentDeleteInteressent();" id="student-tree-popup-deleteinteressent" hidden="false"/>
|
||||
-->
|
||||
|
||||
@@ -5616,3 +5616,46 @@ function StudentExportBescheid()
|
||||
else
|
||||
alert('Bitte einen Studenten auswaehlen');
|
||||
}
|
||||
|
||||
//****
|
||||
//* Übergibt die PersonIDs an das Skript personen_wartung.php um Personen zusammenzulegen
|
||||
//****
|
||||
function StudentPersonenZusammenlegen()
|
||||
{
|
||||
tree = document.getElementById('student-tree');
|
||||
//Alle markierten Studenten holen
|
||||
var start = new Object();
|
||||
var end = new Object();
|
||||
var numRanges = tree.view.selection.getRangeCount();
|
||||
var anzahl = 0;
|
||||
var person1 = '';
|
||||
var person2 = '';
|
||||
|
||||
for (var t = 0; t < numRanges; t++)
|
||||
{
|
||||
tree.view.selection.getRangeAt(t,start,end);
|
||||
for (var v = start.value; v <= end.value; v++)
|
||||
{
|
||||
if (person1 == '')
|
||||
{
|
||||
person1 = getTreeCellText(tree, 'student-treecol-person_id', v);
|
||||
anzahl = anzahl+1;
|
||||
continue;
|
||||
}
|
||||
|
||||
person2 = getTreeCellText(tree, 'student-treecol-person_id', v);
|
||||
anzahl = anzahl+1;
|
||||
}
|
||||
}
|
||||
|
||||
if(anzahl > 2)
|
||||
{
|
||||
alert('Sie können maximal 2 Personen zum Zusammenlegen auswählen');
|
||||
return false;
|
||||
}
|
||||
|
||||
if(anzahl > 0)
|
||||
window.open('<?php echo APP_ROOT ?>vilesci/stammdaten/personen_wartung.php?person_id_1='+person1+'&person_id_2='+person2,'Personen-Zusammenlegen','');
|
||||
else
|
||||
alert('Bitte eine oder 2 Personen zum Zusammenlegen auswählen');
|
||||
}
|
||||
|
||||
@@ -76,6 +76,85 @@ class personlog extends basis_db
|
||||
$this->errormsg = 'Fehler beim Speichern des Logeintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Log-Einträge einer Person.
|
||||
* Optional können weitere Paramenter übergeben werden.
|
||||
*
|
||||
* @param integer $person_id ID der Person.
|
||||
* @param string $logtype_kurzbz Typ des Logeintrages
|
||||
* @param array $logdata Array mit den zusaetzlichen Logdaten zu diesem Typ.
|
||||
* @param string $taetigkeit_kurzbz Kurzbz der Verarbeitungstaetigkeit.
|
||||
* @param string $app Applikation von der dieser Logeintrag stammt.
|
||||
* @param string $oe_kurzbz Kurzbz der Organisationseinheit. (optional)
|
||||
* @param string $user User der die Aktion durchgefuehrt hat. (optional)
|
||||
* @return boolean true wenn erfolgreich, false im Fehlerfall.
|
||||
*/
|
||||
public function getLog($person_id, $app = null, $logtype_kurzbz = null, $logdata = null, $taetigkeit_kurzbz = null, $oe_kurzbz = null, $order = 'zeitpunkt DESC')
|
||||
{
|
||||
if (! is_numeric($person_id))
|
||||
{
|
||||
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT * FROM system.tbl_log
|
||||
WHERE
|
||||
person_id=" . $this->db_add_param($person_id, FHC_INTEGER);
|
||||
if ($app != null)
|
||||
$qry .= " AND app=" . $this->db_add_param($app);
|
||||
|
||||
if ($logtype_kurzbz != null)
|
||||
$qry .= " AND logtype_kurzbz=" . $this->db_add_param($logtype_kurzbz);
|
||||
|
||||
if ($logdata != null)
|
||||
{
|
||||
if (is_array($logdata))
|
||||
{
|
||||
foreach ($logdata AS $key => $value)
|
||||
$qry .= " AND logdata ->> " . $this->db_add_param($key) . " = " . $this->db_add_param($value);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Logdata muss ein Array sein';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($taetigkeit_kurzbz != null)
|
||||
$qry .= " AND taetigkeit_kurzbz=" . $this->db_add_param($taetigkeit_kurzbz);
|
||||
|
||||
if ($oe_kurzbz != null)
|
||||
$qry .= " AND oe_kurzbz=" . $this->db_add_param($oe_kurzbz);
|
||||
|
||||
$qry .= " ORDER BY " . $order;
|
||||
|
||||
if ($this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object())
|
||||
{
|
||||
$log = new personlog();
|
||||
|
||||
$log->log_id = $row->log_id;
|
||||
$log->person_id = $row->person_id;
|
||||
$log->zeitpunkt = $row->zeitpunkt;
|
||||
$log->app = $row->app;
|
||||
$log->oe_kurzbz = $row->oe_kurzbz;
|
||||
$log->logtype_kurzbz = $row->logtype_kurzbz;
|
||||
$log->logdata = $row->logdata;
|
||||
$log->insertvon = $row->insertvon;
|
||||
$log->taetigkeit_kurzbz = $row->taetigkeit_kurzbz;
|
||||
|
||||
$this->logs[] = $log;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der LogDaten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -445,6 +445,8 @@ class prestudent extends person
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->num_rows=0;
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$rolle = new prestudent();
|
||||
@@ -468,6 +470,7 @@ class prestudent extends person
|
||||
$rolle->rt_stufe = $row->rt_stufe;
|
||||
$rolle->statusgrund_id = $row->statusgrund_id;
|
||||
$this->result[] = $rolle;
|
||||
$this->num_rows++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -1898,7 +1901,7 @@ class prestudent extends person
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Loeschen der Daten';
|
||||
$this->errormsg = 'Fehler beim Loeschen des PreStudenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+1085
-184
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user