diff --git a/include/dokument.class.php b/include/dokument.class.php index a2eab0e68..b2b59b6dd 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -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; +} + + + } diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 823e5a9aa..3b1e4d8a2 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -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; + } + } + } diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index e658d7a97..bed369c1a 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -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 'dokumentprestudent Berechtigungen: '.$db->db_last_error().'
'; + else + echo '
Granted privileges to public.tbl_dokumentprestudent'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -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"),