Adaptierungen Bewerbungstool Übersichtsseite

This commit is contained in:
manu
2021-05-20 08:54:14 +02:00
parent d29d80fc59
commit 0285e3fc92
3 changed files with 244 additions and 1 deletions
+175
View File
@@ -884,4 +884,179 @@ class dokument extends basis_db
}
}
/**
* Akzeptiert ein bestimmtes Dokument
* Optional kann auch eine studiengang_kz uebergeben werden, ob speziell dort das Dokument akzeptiert wurde
* @param $dokument_kurzbz
* @param $person_id
* @param $studiengang_kz integer oder array aus mehreren studiengang_kz
* @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert
*/
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).")";
//echo var_dump($qry);
//for all prestudents
//gibt ein Array von zu akzeptierenden Dokumenten zurück
if($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows>0)
{
while($row = $db->db_fetch_object())
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuAkzeptieren[] = $row->prestudent_id;
}
//print_r($arrayDoksZuAkzeptieren);
//und jetzt für alle prestudent_ids das Dokument akzeptieren
$qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES";
//echo $qry;
foreach ($arrayDoksZuAkzeptieren AS $prestudent_id){
$qry.= "(".$this->db_add_param($dokument_kurzbz). ",". $prestudent_id . ")";
if (next($arrayDoksZuAkzeptieren)==true){
$qry.= ",";
}
}
$qry.= ";";
echo $qry;
if($this->db_query($qry))
{
echo " Jawoll: query ausgeführt";
return true;
}
else
{
$this->errormsg = 'Fehler beim Akzeptieren';
return false;
}
}
else
{
echo "keine zu akzeptierenden Doks vorhanden";
}
return true;
}
else
return false;
}
/**
* entakzeptiert ein bestimmtes Dokument
* Optional kann auch eine studiengang_kz uebergeben werden, ob speziell dort das Dokument entakzeptiert wurde
* @param $dokument_kurzbz
* @param $person_id
* @param $studiengang_kz integer oder array aus mehreren studiengang_kz
* @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert
*/
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);
// echo var_dump($qry);
//for all prestudents
//gibt ein Array von zu Entakzeptierenden Dokumenten zurück
if($db->db_query($qry))
{
$num_rows = $db->db_num_rows();
// Wenn kein ergebnis return 0 sonst ID
if ($num_rows>0)
{
while($row = $db->db_fetch_object())
{
//echo var_dump($row->prestudent_id);
$arrayDoksZuEntakzeptieren[] = $row->prestudent_id;
}
print_r($arrayDoksZuEntakzeptieren);
//und jetzt für alle prestudent_ids das Dokument Entakzeptieren
$qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in (";
//echo $qry;
foreach ($arrayDoksZuEntakzeptieren AS $prestudent_id){
$qry.= $prestudent_id;
if (next($arrayDoksZuEntakzeptieren)==true){
$qry.= ",";
}
}
$qry.= ");";
echo $qry;
if($this->db_query($qry))
{
echo " Jawoll: query ausgeführt";
return true;
}
else
{
$this->errormsg = 'Fehler beim Entakzeptieren';
return false;
}
}
else
{
echo "keine Entzuakzeptierenden Doks vorhanden";
}
return true;
}
else
return false;
}
}
+53
View File
@@ -2234,4 +2234,57 @@ class prestudent extends person
}
}
/**
* Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt
* @param integer $person_id
* @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;
}
}
}
+16 -1
View File
@@ -4767,6 +4767,20 @@ 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 '<strong>dokumentprestudent Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Granted privileges to public.tbl_dokumentprestudent';
}
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
@@ -4886,8 +4900,9 @@ $tabellen=array(
"lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen","bezeichnung_kurz","bezeichnung_lang"),
"lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"),
"lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"),
"lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"),
"lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag"),
"lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz"),
"lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"),
"lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"),
"lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"),