mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
FAS Prestudenten löschen
Wenn der letzte PreStudentStatus-Eintrag gelöscht wird, wird der ganze Prestudent-Datensatz geloescht (nach vorherigen Hinweis) und ins Log geschrieben (Außer, es hängen noch Verknüpfungen in der DB dran)
This commit is contained in:
@@ -854,6 +854,7 @@ if(!$error)
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='deleterolle')
|
||||
{
|
||||
//Loescht eine Prestudentrolle
|
||||
$deletePrestudent = false;
|
||||
|
||||
if(isset($_POST['studiensemester_kurzbz']) && isset($_POST['status_kurzbz']) &&
|
||||
isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']) &&
|
||||
@@ -871,11 +872,16 @@ if(!$error)
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($row->anzahl<=1 && !$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
// Die letzte Rolle darf nur durch einen Administrator geloescht werden. Danach wird auch der PreStudent-Eintrag geloescht
|
||||
if($row->anzahl<=1)
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden';
|
||||
$error = true;
|
||||
$deletePrestudent = true;
|
||||
if (!$rechte->isBerechtigt('admin', null, 'suid'))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Die letzte Rolle kann nur durch den Administrator geloescht werden';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -901,6 +907,7 @@ if(!$error)
|
||||
{
|
||||
if($rolle->delete_rolle($_POST['prestudent_id'],$_POST['status_kurzbz'],$_POST['studiensemester_kurzbz'], $_POST['ausbildungssemester']))
|
||||
{
|
||||
$log_id = $rolle->log_id;
|
||||
$return = true;
|
||||
// Wenn in diesem Semester kein Status mehr vorhanden ist,
|
||||
// dann wird auch der Studentlehrverband eintrag entfernt
|
||||
@@ -917,6 +924,18 @@ if(!$error)
|
||||
}
|
||||
}
|
||||
}
|
||||
// Wenn kein Prestudent-Eintrag mehr vorhanden ist, wird der ganze Prestudent-Datensatz geloescht
|
||||
if ($deletePrestudent == true)
|
||||
{
|
||||
$prestudent = new prestudent();
|
||||
if(!$prestudent->deletePrestudent($_POST['prestudent_id']))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = "Fehler beim Löschen des Prestudenten.";
|
||||
$log = new log();
|
||||
$log->undo($log_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -944,6 +963,40 @@ if(!$error)
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='returnDeletePrestudent')
|
||||
{
|
||||
//Prueft, wie viele Prestudentrolle-Eintraege noch vorhanden sind und gibt diese Anzahl als Wert zurueck
|
||||
|
||||
if(isset($_POST['prestudent_id']) && is_numeric($_POST['prestudent_id']))
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM public.tbl_prestudentstatus WHERE prestudent_id=".$db->db_add_param($_POST['prestudent_id'], FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$return = true;
|
||||
$data = $row->anzahl;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Zaehlen der Rollen';
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$error = true;
|
||||
$errormsg = 'Fehler beim Zaehlen der Rollen';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='bestaetigerolle')
|
||||
{
|
||||
//Bestaetigt eine Prestudentrolle
|
||||
|
||||
@@ -1712,32 +1712,78 @@ function StudentPrestudentRolleDelete()
|
||||
studiengang_kz = document.getElementById('student-prestudent-menulist-studiengang_kz').value;
|
||||
if(confirm('Diese Rolle wirklich loeschen?'))
|
||||
{
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'deleterolle');
|
||||
|
||||
req.add('status_kurzbz', status_kurzbz);
|
||||
req.add('type', 'returnDeletePrestudent');
|
||||
req.add('prestudent_id', prestudent_id);
|
||||
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
|
||||
req.add('ausbildungssemester', ausbildungssemester);
|
||||
req.add('studiengang_kz', studiengang_kz);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
|
||||
if (val.dbdml_data == 1)
|
||||
{
|
||||
if(val.dbdml_errormsg=='')
|
||||
alert(response)
|
||||
else
|
||||
alert(val.dbdml_errormsg)
|
||||
if(confirm('Das Loeschen der letzten Rolle loescht auch den gesamten Prestudent-Datensatz!\nMoechten Sie Fortfahren?'))
|
||||
{
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'deleterolle');
|
||||
|
||||
req.add('status_kurzbz', status_kurzbz);
|
||||
req.add('prestudent_id', prestudent_id);
|
||||
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
|
||||
req.add('ausbildungssemester', ausbildungssemester);
|
||||
req.add('studiengang_kz', studiengang_kz);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
if(val.dbdml_errormsg=='')
|
||||
alert(response)
|
||||
else
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
{
|
||||
StudentDetailRolleTreeDatasource.Refresh(false);
|
||||
SetStatusBarText('Daten wurden geloescht');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
StudentDetailRolleTreeDatasource.Refresh(false);
|
||||
SetStatusBarText('Daten wurden geloescht');
|
||||
var url = '<?php echo APP_ROOT ?>content/student/studentDBDML.php';
|
||||
var req = new phpRequest(url,'','');
|
||||
|
||||
req.add('type', 'deleterolle');
|
||||
|
||||
req.add('status_kurzbz', status_kurzbz);
|
||||
req.add('prestudent_id', prestudent_id);
|
||||
req.add('studiensemester_kurzbz', studiensemester_kurzbz);
|
||||
req.add('ausbildungssemester', ausbildungssemester);
|
||||
req.add('studiengang_kz', studiengang_kz);
|
||||
|
||||
var response = req.executePOST();
|
||||
|
||||
var val = new ParseReturnValue(response)
|
||||
|
||||
if (!val.dbdml_return)
|
||||
{
|
||||
if(val.dbdml_errormsg=='')
|
||||
alert(response)
|
||||
else
|
||||
alert(val.dbdml_errormsg)
|
||||
}
|
||||
else
|
||||
{
|
||||
StudentDetailRolleTreeDatasource.Refresh(false);
|
||||
SetStatusBarText('Daten wurden geloescht');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+24
-1
@@ -164,7 +164,30 @@ class log extends basis_db
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
if($new)
|
||||
{
|
||||
//Sequence Auslesen
|
||||
$qry = "SELECT currval('public.tbl_log_log_id_seq') as id";
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->log_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
$this->db_query('ROLLBACK');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -872,11 +872,11 @@ class prestudent extends person
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Prestudentstatus
|
||||
* @param $prestudent_id
|
||||
* $status_kurzbz
|
||||
* $studiensemester_kurzbz
|
||||
* $ausbildungssemester
|
||||
* Loescht einen Prestudentstatus und legt einen Log-Eintrag dafuer an
|
||||
* @param integer $prestudent_id
|
||||
* @param string $status_kurzbz
|
||||
* @param string $studiensemester_kurzbz
|
||||
* @param integer $ausbildungssemester
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function delete_rolle($prestudent_id, $status_kurzbz, $studiensemester_kurzbz, $ausbildungssemester)
|
||||
@@ -928,10 +928,10 @@ class prestudent extends person
|
||||
$this->db_add_param($this->statusgrund_id, FHC_INTEGER).');';
|
||||
if($log->save(true))
|
||||
{
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
$this->log_id = $log->log_id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
@@ -1745,4 +1745,101 @@ class prestudent extends person
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht einen Prestudenten und legt einen Log-Eintrag dafuer an
|
||||
* @param integer $prestudent_id
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function deletePrestudent($prestudent_id)
|
||||
{
|
||||
if(!is_numeric($prestudent_id))
|
||||
{
|
||||
$this->errormsg = 'Prestudent_id ist ungueltig';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "DELETE FROM public.tbl_prestudent
|
||||
WHERE
|
||||
prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
if($this->load($prestudent_id))
|
||||
{
|
||||
$this->db_query('BEGIN;');
|
||||
|
||||
$log = new log();
|
||||
|
||||
$log->executetime = date('Y-m-d H:i:s');
|
||||
$log->beschreibung = 'Loeschen der Prestudent ID '.$prestudent_id;
|
||||
$log->mitarbeiter_uid = get_uid();
|
||||
$log->sql = $qry;
|
||||
$log->sqlundo = 'INSERT INTO public.tbl_prestudent(
|
||||
prestudent_id, aufmerksamdurch_kurzbz, studiengang_kz, berufstaetigkeit_code, ausbildungcode,
|
||||
zgv_code, zgvort, zgvdatum, zgvnation, zgvmas_code, zgvmaort, zgvmadatum, zgvmanation,
|
||||
aufnahmeschluessel, facheinschlberuf, anmeldungreihungstest, reihungstestangetreten, reihungstest_id,
|
||||
punkte, rt_punkte1, rt_punkte2, rt_punkte3, bismelden, person_id, anmerkung, mentor, ext_id_prestudent,
|
||||
dual, ausstellungsstaat, zgvdoktor_code, zgvdoktorort, zgvdoktordatum, zgvdoktornation,
|
||||
gsstudientyp_kurzbz, aufnahmegruppe_kurzbz) VALUES('.
|
||||
$this->db_add_param($this->prestudent_id).','.
|
||||
$this->db_add_param($this->aufmerksamdurch_kurzbz).','.
|
||||
$this->db_add_param($this->studiengang_kz).','.
|
||||
$this->db_add_param($this->berufstaetigkeit_code).','.
|
||||
$this->db_add_param($this->ausbildungcode).','.
|
||||
$this->db_add_param($this->zgv_code).','.
|
||||
$this->db_add_param($this->zgvort).','.
|
||||
$this->db_add_param($this->zgvdatum).','.
|
||||
$this->db_add_param($this->zgvnation).','.
|
||||
$this->db_add_param($this->zgvmas_code).','.
|
||||
$this->db_add_param($this->zgvmaort).','.
|
||||
$this->db_add_param($this->zgvmadatum).','.
|
||||
$this->db_add_param($this->zgvmanation).','.
|
||||
$this->db_add_param($this->aufnahmeschluessel).','.
|
||||
$this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->anmeldungreihungstest).','.
|
||||
$this->db_add_param($this->reihungstestangetreten, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->reihungstest_id).','.
|
||||
$this->db_add_param($this->punkte).','.
|
||||
$this->db_add_param($this->rt_punkte1).','.
|
||||
$this->db_add_param($this->rt_punkte2).','.
|
||||
$this->db_add_param($this->rt_punkte3).','.
|
||||
$this->db_add_param($this->bismelden, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->person_id).','.
|
||||
$this->db_add_param($this->anmerkung).','.
|
||||
$this->db_add_param($this->mentor).','.
|
||||
$this->db_add_param($this->ext_id_prestudent).','.
|
||||
$this->db_add_param($this->dual, FHC_BOOLEAN).','.
|
||||
$this->db_add_param($this->ausstellungsstaat).','.
|
||||
$this->db_add_param($this->zgvdoktor_code).','.
|
||||
$this->db_add_param($this->zgvdoktorort).','.
|
||||
$this->db_add_param($this->zgvdoktordatum).','.
|
||||
$this->db_add_param($this->zgvdoktornation).','.
|
||||
$this->db_add_param($this->gsstudientyp_kurzbz).','.
|
||||
$this->db_add_param($this->aufnahmegruppe_kurzbz).');';
|
||||
|
||||
if($log->save(true))
|
||||
{
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->db_query('COMMIT');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Loeschen der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,6 +91,7 @@ $this->phrasen['global/bezeichnung']='Bezeichnung';
|
||||
$this->phrasen['global/datum']='Datum';
|
||||
$this->phrasen['global/stunde']='Stunde';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Uhrzeit';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personen']='Personen';
|
||||
$this->phrasen['global/personenkz']='Personenkz.';
|
||||
|
||||
@@ -6,10 +6,16 @@ $this->phrasen['global/semester']='Semester';
|
||||
$this->phrasen['global/studiensemester']='Semester';
|
||||
$this->phrasen['global/studienzentrum']='Study Center';
|
||||
$this->phrasen['global/studiengangsleitung']='Program Director';
|
||||
$this->phrasen['global/leitung']='Head';
|
||||
$this->phrasen['global/koordination']='Coordination';
|
||||
$this->phrasen['global/lehrveranstaltung']='Subject';
|
||||
$this->phrasen['global/lehreinheit']='Teaching unit';
|
||||
$this->phrasen['global/organisationseinheit']='Organisation Unit';
|
||||
$this->phrasen['global/organisationseinheiten']='Organisation Units';
|
||||
$this->phrasen['global/organisationsform']='Organisational form';
|
||||
|
||||
$this->phrasen['global/ects']='ECTS';
|
||||
$this->phrasen['global/semesterstunden']='Units per semester';
|
||||
|
||||
$this->phrasen['global/studiengangsmanagement']='Study Management';
|
||||
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
|
||||
@@ -85,6 +91,7 @@ $this->phrasen['global/bezeichnung']='Description';
|
||||
$this->phrasen['global/datum']='Date';
|
||||
$this->phrasen['global/stunde']='Hour';
|
||||
$this->phrasen['global/minute']='Minute';
|
||||
$this->phrasen['global/uhrzeit']='Time';
|
||||
$this->phrasen['global/person']='Person';
|
||||
$this->phrasen['global/personenkz']='StudentID';
|
||||
$this->phrasen['global/personen']='Number of Persons';
|
||||
|
||||
Reference in New Issue
Block a user