From 0285e3fc92bf1f71e7af55743385d7a4e2bb1029 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 20 May 2021 08:54:14 +0200 Subject: [PATCH 01/17] =?UTF-8?q?Adaptierungen=20Bewerbungstool=20=C3=9Cbe?= =?UTF-8?q?rsichtsseite?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dokument.class.php | 175 +++++++++++++++++++++++++++++++++++ include/prestudent.class.php | 53 +++++++++++ system/dbupdate_3.3.php | 17 +++- 3 files changed, 244 insertions(+), 1 deletion(-) 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"), From 39668890f2a976784a7946cfa95dd32687d659c0 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 27 May 2021 16:22:47 +0200 Subject: [PATCH 02/17] neue Funktion ZGVMasterNation setzen --- include/dokument.class.php | 294 +++++++++++++++++------------------ include/prestudent.class.php | 145 +++++++++++++---- 2 files changed, 252 insertions(+), 187 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index b2b59b6dd..8e1f16346 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -339,11 +339,11 @@ class dokument extends basis_db } $qry = "SELECT tbl_dokumentprestudent.* , tbl_dokument.* - FROM public.tbl_dokumentprestudent + FROM public.tbl_dokumentprestudent JOIN public.tbl_dokument USING(dokument_kurzbz) LEFT JOIN public.tbl_vorlage ON (tbl_dokumentprestudent.dokument_kurzbz = tbl_vorlage.vorlage_kurzbz) WHERE prestudent_id=".$this->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,181 +882,167 @@ class dokument extends basis_db $this->errormsg="Fehler bei der Abfrage aufgetreten"; return false; } - } /** - * 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)) + * Akzeptiert ein bestimmtes Dokument + * @param char $dokument_kurzbz Bezeichner Dokument. + * @param int $person_id Personenkennzeichen. + * @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert + */ + protected function akzeptiereDokument($dokument_kurzbz, $person_id) { - $num_rows = $db->db_num_rows(); - // Wenn kein ergebnis return 0 sonst ID - if ($num_rows>0) + $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)) { - while($row = $db->db_fetch_object()) + $num_rows = $db->db_num_rows(); + // Wenn kein ergebnis return 0 sonst ID + if ($num_rows > 0) { - //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.= ","; + while ($row = $db->db_fetch_object()) + { + //echo var_dump($row->prestudent_id); + $arrayDoksZuAkzeptieren[] = $row->prestudent_id; } - } - $qry.= ";"; + //print_r($arrayDoksZuAkzeptieren); - echo $qry; + //und jetzt für alle prestudent_ids das Dokument akzeptieren - if($this->db_query($qry)) - { - echo " Jawoll: query ausgeführt"; - return true; + $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 { - $this->errormsg = 'Fehler beim Akzeptieren'; - return false; + echo " Keine zu akzeptierenden Doks vorhanden"; } - - + return true; } + else - { - echo "keine zu akzeptierenden Doks vorhanden"; - } - - return true; + return false; } - 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)) + * entakzeptiert ein bestimmtes Dokument + * @param char $dokument_kurzbz Kurzbezeichnung des zu entakzeptierenden Dokuments. + * @param int $person_id Personenkennzeichen. + * @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert + */ + protected function entakzeptiereDokument($dokument_kurzbz, $person_id) { - $num_rows = $db->db_num_rows(); - // Wenn kein ergebnis return 0 sonst ID - if ($num_rows>0) + $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); + + //gibt ein Array von zu Entakzeptierenden Dokumenten zurück + if ($db->db_query($qry)) { - while($row = $db->db_fetch_object()) + $num_rows = $db->db_num_rows(); + // Wenn kein ergebnis return 0 sonst ID + if ($num_rows > 0) { - //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.= ","; + while ($row = $db->db_fetch_object()) + { + //echo var_dump($row->prestudent_id); + $arrayDoksZuEntakzeptieren[] = $row->prestudent_id; } - } - $qry.= ");"; + print_r($arrayDoksZuEntakzeptieren); - echo $qry; + //und jetzt für alle prestudent_ids das Dokument Entakzeptieren - if($this->db_query($qry)) - { - echo " Jawoll: query ausgeführt"; - return true; + $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 .= ") AND dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).";"; + + echo $qry; + + if ($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Entakzeptieren'; + return false; + } } else { - $this->errormsg = 'Fehler beim Entakzeptieren'; - return false; + echo " Keine Entzuakzeptierenden Doks vorhanden"; } - - + return true; } else - { - echo "keine Entzuakzeptierenden Doks vorhanden"; - } - - return true; + return false; } - - else - return false; -} - - - } diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 3b1e4d8a2..a3e0f5620 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2232,51 +2232,44 @@ 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 integer $person_id + * @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) + * false und errormsg wenn Fehler aufgetreten ist + */ + public function existsZGVIntern($person_id) + { + if (!is_numeric($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()) { - $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) { - if($row->anzahl>0) - { - $this->errormsg = ''; - return true; - } - else - { - $this->errormsg = ''; - return false; - } + $this->errormsg = ''; + return true; } else { - $this->errormsg = 'Fehler beim Laden der Daten'; + $this->errormsg = ''; return false; } } @@ -2286,5 +2279,91 @@ class prestudent extends person return false; } } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + /** + * Befüllt MasterZGV Nation mit Österreich + * @param int $person_id Personenkennzeichen. + * @return true wenn erfolgreich durchgeführt + * false und errormsg wenn ein Fehler aufgetreten ist + */ + public function setManationZGV($person_id) + { + 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 leerer ZGV_Nation + $qry = "SELECT + * + FROM + public.tbl_prestudent + JOIN + public.tbl_studiengang USING (studiengang_kz) + WHERE + person_id = ".$this->db_add_param($person_id)." + AND + zgvmanation is NULL + AND + typ in ('m','d')"; + + if ($db->db_query($qry)) + { + $num_rows = $db->db_num_rows(); + + if ($num_rows > 0) + { + while ($row = $db->db_fetch_object()) + { + //echo var_dump($row->prestudent_id); + $arrayleereManations[] = $row->prestudent_id; + } + print_r($arrayleereManations); + + $qry = "UPDATE + public.tbl_prestudent + SET + zgvmanation = 'A' + WHERE + prestudent_id in ("; + + foreach ($arrayleereManations as $prestudent_id) + { + $qry .= $prestudent_id; + + if (next($arrayleereManations) == true) + { + $qry .= ","; + } + } + $qry .= ");"; + + echo $qry; + + if ($this->db_query($qry)) + { + echo " ZGV-Master Nation A eingetragen!"; + return true; + } + else + { + $this->errormsg = 'Fehler beim Eintragen zgvMasternation'; + return false; + } + } + else + echo " Keine leere ZGVManation gefunden"; + return true; + } + } } From 9a0df4352670ee81c1aa03e655b4089fbd9b995a Mon Sep 17 00:00:00 2001 From: manu Date: Tue, 1 Jun 2021 09:47:02 +0200 Subject: [PATCH 03/17] 13219 Master Dokumente: Anzeige akzeptierter Dokumente als nicht erforderlich --- include/dokument.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index 8e1f16346..da03983ab 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -890,7 +890,7 @@ class dokument extends basis_db * @param int $person_id Personenkennzeichen. * @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert */ - protected function akzeptiereDokument($dokument_kurzbz, $person_id) + public function akzeptiereDokument($dokument_kurzbz, $person_id) { $db = new basis_db(); $arrayDoksZuAkzeptieren = array(); @@ -975,7 +975,7 @@ class dokument extends basis_db * @param int $person_id Personenkennzeichen. * @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert */ - protected function entakzeptiereDokument($dokument_kurzbz, $person_id) + public function entakzeptiereDokument($dokument_kurzbz, $person_id) { $db = new basis_db(); $arrayDoksZuEntakzeptieren = array(); From a6b53b8fd7585be4d5e64fe64521dddc43363745 Mon Sep 17 00:00:00 2001 From: manu Date: Mon, 7 Jun 2021 11:29:39 +0200 Subject: [PATCH 04/17] 13412 Refactoring Functions for Master Documents --- include/prestudent.class.php | 95 ++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index a3e0f5620..06115dab2 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2366,4 +2366,99 @@ class prestudent extends person return true; } } + + /** + * liefert den letztgültigen Status des Prestudenten + * @param int $prestudent_id ID der zu überprüfenden Person. + * @return string $result wenn vorhanden + * false und errormsg wenn Fehler aufgetreten ist + */ + public function getLastPrestudentStatus($prestudent_id) + { + if (!is_numeric($prestudent_id)) + { + $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; + return false; + } + + $db = new basis_db(); + //get all prestudents + $qry = "SELECT pss.status_kurzbz + FROM public.tbl_prestudentstatus pss + JOIN public.tbl_prestudent ps using (prestudent_id) + where ps.prestudent_id = ".$this->db_add_param($prestudent_id)." + group by prestudent_id, pss.status_kurzbz, pss.insertamum + order by pss.insertamum DESC limit 1"; + + if ($db->db_query($qry)) + { + $row = $db->db_fetch_object(); + $result = $row->status_kurzbz; + return $result; + } + else + { + return false; + } + } + + /** + * 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 + * false und errormsg wenn Fehler aufgetreten ist + */ + 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(); + //get all prestudents + $qry = "SELECT + prestudent_id + FROM + tbl_prestudent ps, tbl_studiengang sg + WHERE + ps.studiengang_kz = sg.studiengang_kz + AND + sg.typ in ('m','d') + AND person_id = ".$this->db_add_param($person_id).";"; + + + + 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); + $prestudentsOfMaster[] = $row->prestudent_id; + } + + //prestudentIds auf Interessentenstatus prüfen + foreach ($prestudentsOfMaster as $prestudent_id) + { + //echo $prestudent_id; + //echo "last status = " . $this->getLastPrestudentStatus($prestudent_id); + //echo "
"; + if ($this->getLastPrestudentStatus($prestudent_id) == "Interessent") + { + return true; + } + } + } + } + else + return false; + } + } From 472803dbeca2dd4d12c03864945753041b17f0c2 Mon Sep 17 00:00:00 2001 From: manu Date: Mon, 7 Jun 2021 16:55:39 +0200 Subject: [PATCH 05/17] 13412 Refactoring Functions Dokumente ZGV Master --- include/dokument.class.php | 32 +++++--------------------------- include/prestudent.class.php | 14 +++++--------- 2 files changed, 10 insertions(+), 36 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index da03983ab..4d70891c0 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -888,7 +888,7 @@ class dokument extends basis_db * Akzeptiert ein bestimmtes Dokument * @param char $dokument_kurzbz Bezeichner Dokument. * @param int $person_id Personenkennzeichen. - * @return boolean true wenn akzeptiert, false wenn noch nicht akzeptiert + * @return boolean true wenn akzeptiert bzw geprüft ohne Akzeptieren, false wenn Fehler */ public function akzeptiereDokument($dokument_kurzbz, $person_id) { @@ -910,10 +910,7 @@ class dokument extends basis_db 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)) @@ -929,10 +926,8 @@ class dokument extends basis_db } //print_r($arrayDoksZuAkzeptieren); - //und jetzt für alle prestudent_ids das Dokument akzeptieren - + //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) { @@ -945,11 +940,8 @@ class dokument extends basis_db } $qry .= ";"; - echo $qry; - if ($this->db_query($qry)) { - echo " Jawoll: query ausgeführt"; return true; } else @@ -958,10 +950,6 @@ class dokument extends basis_db return false; } } - else - { - echo " Keine zu akzeptierenden Doks vorhanden"; - } return true; } @@ -973,7 +961,7 @@ class dokument extends basis_db * entakzeptiert ein bestimmtes Dokument * @param char $dokument_kurzbz Kurzbezeichnung des zu entakzeptierenden Dokuments. * @param int $person_id Personenkennzeichen. - * @return boolean true wenn entakzeptiert, false wenn noch nicht entakzeptiert + * @return boolean true wenn entakzeptiert bzw geprüft ohne Entakzeptieren, false wenn Fehler */ public function entakzeptiereDokument($dokument_kurzbz, $person_id) { @@ -981,7 +969,6 @@ class dokument extends basis_db $arrayDoksZuEntakzeptieren = array(); //get Prestudent_ids - $qry = "SELECT prestudent_id from @@ -1003,15 +990,12 @@ class dokument extends basis_db { 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 + //print_r($arrayDoksZuEntakzeptieren); + //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) { @@ -1024,8 +1008,6 @@ class dokument extends basis_db } $qry .= ") AND dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz).";"; - echo $qry; - if ($this->db_query($qry)) { return true; @@ -1036,10 +1018,6 @@ class dokument extends basis_db return false; } } - else - { - echo " Keine Entzuakzeptierenden Doks vorhanden"; - } return true; } else diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 06115dab2..747fd5da4 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2215,9 +2215,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; } @@ -2328,7 +2328,7 @@ class prestudent extends person //echo var_dump($row->prestudent_id); $arrayleereManations[] = $row->prestudent_id; } - print_r($arrayleereManations); + //print_r($arrayleereManations); $qry = "UPDATE public.tbl_prestudent @@ -2352,7 +2352,7 @@ class prestudent extends person if ($this->db_query($qry)) { - echo " ZGV-Master Nation A eingetragen!"; + //echo " ZGV-Master Nation A eingetragen!"; return true; } else @@ -2362,7 +2362,7 @@ class prestudent extends person } } else - echo " Keine leere ZGVManation gefunden"; + //echo " Keine leere ZGVManation gefunden"; return true; } } @@ -2447,9 +2447,6 @@ class prestudent extends person //prestudentIds auf Interessentenstatus prüfen foreach ($prestudentsOfMaster as $prestudent_id) { - //echo $prestudent_id; - //echo "last status = " . $this->getLastPrestudentStatus($prestudent_id); - //echo "
"; if ($this->getLastPrestudentStatus($prestudent_id) == "Interessent") { return true; @@ -2460,5 +2457,4 @@ class prestudent extends person else return false; } - } From e157945ae9f016766412cc8e893b44d7686ffbcf Mon Sep 17 00:00:00 2001 From: manu Date: Wed, 9 Jun 2021 08:58:17 +0200 Subject: [PATCH 06/17] Auskommentieren Testausgaben --- include/prestudent.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 747fd5da4..9f8b2fa27 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2348,7 +2348,7 @@ class prestudent extends person } $qry .= ");"; - echo $qry; + //echo $qry; if ($this->db_query($qry)) { From 49363e893b6d4ec0b1ea40ce86954e3dda7d0e51 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 10 Jun 2021 10:30:49 +0200 Subject: [PATCH 07/17] 13218 update Eintragen MasterZGV Nation --- include/prestudent.class.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 9f8b2fa27..8f76a8dd3 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2303,19 +2303,23 @@ class prestudent extends person $db = new basis_db(); $arrayleereManations = array(); - //all prestudent_ids mit leerer ZGV_Nation + //all prestudent_ids mit leerer ZGV_Nation und Status Interessent $qry = "SELECT * FROM public.tbl_prestudent JOIN public.tbl_studiengang USING (studiengang_kz) + JOIN + public.tbl_prestudentstatus USING (prestudent_id) WHERE person_id = ".$this->db_add_param($person_id)." AND zgvmanation is NULL AND - typ in ('m','d')"; + typ in ('m','d') + AND + status_kurzbz = 'Interessent'"; if ($db->db_query($qry)) { From 3fca876f8df3f73f05e2ef986afb183a68acf6c5 Mon Sep 17 00:00:00 2001 From: manu Date: Mon, 21 Jun 2021 15:12:33 +0200 Subject: [PATCH 08/17] #13749 MasterZGV Art und Ort setzen --- include/prestudent.class.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 8f76a8dd3..c5b632ca5 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2287,12 +2287,13 @@ class prestudent extends person } /** - * Befüllt MasterZGV Nation mit Österreich + * Befüllt MasterZGV Nation mit Österreich, + * MasterZGV-code mit FH-Bachelor(I) und MasterZGV-Ort mit Wien(FHTW) * @param int $person_id Personenkennzeichen. * @return true wenn erfolgreich durchgeführt * false und errormsg wenn ein Fehler aufgetreten ist */ - public function setManationZGV($person_id) + public function setZGVMasterFields($person_id) { if (!is_numeric($person_id)) { @@ -2337,7 +2338,7 @@ class prestudent extends person $qry = "UPDATE public.tbl_prestudent SET - zgvmanation = 'A' + (zgvmanation, zgvmaort, zgvmas_code) = ('A','Wien (FHTW)',1) WHERE prestudent_id in ("; @@ -2356,12 +2357,12 @@ class prestudent extends person if ($this->db_query($qry)) { - //echo " ZGV-Master Nation A eingetragen!"; + //echo " ZGV-Master Eintragungen vorgenommen!"; return true; } else { - $this->errormsg = 'Fehler beim Eintragen zgvMasternation'; + $this->errormsg = 'Fehler beim Eintragen zgvMasterFields'; return false; } } From 35366efdadb912cf95bd34fd368ce9f5882240f7 Mon Sep 17 00:00:00 2001 From: manu Date: Tue, 22 Jun 2021 10:20:56 +0200 Subject: [PATCH 09/17] =?UTF-8?q?Bewerbungstool:=20Korrektur=20Anzeige=20v?= =?UTF-8?q?orl=C3=A4ufiges=20Sprachzertifikat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cms/dms.php | 1 + 1 file changed, 1 insertion(+) diff --git a/cms/dms.php b/cms/dms.php index 7e587b6ec..307bc002f 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'; } if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr)) die('Sie haben keinen Zugriff auf dieses Dokument'); From 537ad8ab88d4e59b7b98ad11f21c135edae136c4 Mon Sep 17 00:00:00 2001 From: manu Date: Wed, 23 Jun 2021 11:41:38 +0200 Subject: [PATCH 10/17] Adaptierungen setZGVMasterFields() --- include/prestudent.class.php | 69 ++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index c5b632ca5..73432e76e 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2318,9 +2318,9 @@ class prestudent extends person AND zgvmanation is NULL AND - typ in ('m','d') - AND - status_kurzbz = 'Interessent'"; + typ in ('m','d')";"; + -- AND + -- status_kurzbz = Interessent"; if ($db->db_query($qry)) { @@ -2330,44 +2330,54 @@ class prestudent extends person { while ($row = $db->db_fetch_object()) { - //echo var_dump($row->prestudent_id); - $arrayleereManations[] = $row->prestudent_id; + // echo ($row->prestudent_id . " = id " . $row->status_kurzbz . " = status " . $row->studiengang_kz . " = stg
"); + echo ($this->getLastPrestudentStatus($row->prestudent_id)); + if ($this->getLastPrestudentStatus($row->prestudent_id) == "Interessent") + { + $arrayleereManations[] = $row->prestudent_id; + } + } - //print_r($arrayleereManations); + print_r($arrayleereManations); - $qry = "UPDATE - public.tbl_prestudent - SET - (zgvmanation, zgvmaort, zgvmas_code) = ('A','Wien (FHTW)',1) - WHERE - prestudent_id in ("; - foreach ($arrayleereManations as $prestudent_id) + if($arrayleereManations) { - $qry .= $prestudent_id; + $qry = "UPDATE + public.tbl_prestudent + SET + (zgvmanation, zgvmaort, zgvmas_code) = ('A','Wien (FHTW)',1) + WHERE + prestudent_id in ("; - if (next($arrayleereManations) == true) + foreach ($arrayleereManations as $prestudent_id) { - $qry .= ","; + $qry .= $prestudent_id; + + if (next($arrayleereManations) == true) + { + $qry .= ","; + } } - } - $qry .= ");"; + $qry .= ");"; - //echo $qry; + echo $qry; - if ($this->db_query($qry)) - { - //echo " ZGV-Master Eintragungen vorgenommen!"; - return true; - } - else - { - $this->errormsg = 'Fehler beim Eintragen zgvMasterFields'; - return false; + if ($this->db_query($qry)) + { + echo " ZGV-Master Eintragungen vorgenommen!"; + return true; + } + else + { + $this->errormsg = 'Fehler beim Eintragen zgvMasterFields'; + return false; + } + } } else - //echo " Keine leere ZGVManation gefunden"; + echo " Keine prestudentId Master gefunden"; return true; } } @@ -2445,7 +2455,6 @@ class prestudent extends person { while ($row = $db->db_fetch_object()) { - //echo var_dump($row->prestudent_id); $prestudentsOfMaster[] = $row->prestudent_id; } From 84950649c4b56dc1a37a85728092303021f9c359 Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 24 Jun 2021 12:00:49 +0200 Subject: [PATCH 11/17] Adaptierungen ZGV-Master Funktionen --- include/prestudent.class.php | 97 +++++++----------------------------- 1 file changed, 17 insertions(+), 80 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 73432e76e..8e19927ff 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2287,13 +2287,13 @@ class prestudent extends person } /** - * Befüllt MasterZGV Nation mit Österreich, - * MasterZGV-code mit FH-Bachelor(I) und MasterZGV-Ort mit Wien(FHTW) + * 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) + public function setZGVMasterFields($person_id, $ort) { if (!is_numeric($person_id)) { @@ -2311,16 +2311,14 @@ class prestudent extends person public.tbl_prestudent JOIN public.tbl_studiengang USING (studiengang_kz) - JOIN - public.tbl_prestudentstatus USING (prestudent_id) WHERE person_id = ".$this->db_add_param($person_id)." AND zgvmanation is NULL AND - typ in ('m','d')";"; - -- AND - -- status_kurzbz = Interessent"; + typ ='m' + And + get_rolle_prestudent(prestudent_id, null) = 'Interessent';"; if ($db->db_query($qry)) { @@ -2330,23 +2328,15 @@ class prestudent extends person { while ($row = $db->db_fetch_object()) { - // echo ($row->prestudent_id . " = id " . $row->status_kurzbz . " = status " . $row->studiengang_kz . " = stg
"); - echo ($this->getLastPrestudentStatus($row->prestudent_id)); - if ($this->getLastPrestudentStatus($row->prestudent_id) == "Interessent") - { - $arrayleereManations[] = $row->prestudent_id; - } - + $arrayleereManations[] = $row->prestudent_id; } - print_r($arrayleereManations); - - if($arrayleereManations) + if ($arrayleereManations) { $qry = "UPDATE public.tbl_prestudent SET - (zgvmanation, zgvmaort, zgvmas_code) = ('A','Wien (FHTW)',1) + (zgvmanation, zgvmaort, zgvmas_code) = ('A',".$this->db_add_param($ort).",1) WHERE prestudent_id in ("; @@ -2361,11 +2351,8 @@ class prestudent extends person } $qry .= ");"; - echo $qry; - if ($this->db_query($qry)) { - echo " ZGV-Master Eintragungen vorgenommen!"; return true; } else @@ -2373,56 +2360,18 @@ class prestudent extends person $this->errormsg = 'Fehler beim Eintragen zgvMasterFields'; return false; } - } } else - echo " Keine prestudentId Master gefunden"; return true; } } - /** - * liefert den letztgültigen Status des Prestudenten - * @param int $prestudent_id ID der zu überprüfenden Person. - * @return string $result wenn vorhanden - * false und errormsg wenn Fehler aufgetreten ist - */ - public function getLastPrestudentStatus($prestudent_id) - { - if (!is_numeric($prestudent_id)) - { - $this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein'; - return false; - } - - $db = new basis_db(); - //get all prestudents - $qry = "SELECT pss.status_kurzbz - FROM public.tbl_prestudentstatus pss - JOIN public.tbl_prestudent ps using (prestudent_id) - where ps.prestudent_id = ".$this->db_add_param($prestudent_id)." - group by prestudent_id, pss.status_kurzbz, pss.insertamum - order by pss.insertamum DESC limit 1"; - - if ($db->db_query($qry)) - { - $row = $db->db_fetch_object(); - $result = $row->status_kurzbz; - return $result; - } - else - { - return false; - } - } /** * 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 - * false und errormsg wenn Fehler aufgetreten ist + * @return true wenn vorhanden, false wenn nicht vorhanden */ public function existsStatusInteressentMaster($person_id) { @@ -2434,7 +2383,7 @@ class prestudent extends person $db = new basis_db(); $prestudentsOfMaster = array(); - //get all prestudents + $qry = "SELECT prestudent_id FROM @@ -2442,30 +2391,18 @@ class prestudent extends person WHERE ps.studiengang_kz = sg.studiengang_kz AND - sg.typ in ('m','d') - AND person_id = ".$this->db_add_param($person_id).";"; - - + 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(); - // Wenn kein ergebnis return 0 sonst ID if ($num_rows > 0) { - while ($row = $db->db_fetch_object()) - { - $prestudentsOfMaster[] = $row->prestudent_id; - } - - //prestudentIds auf Interessentenstatus prüfen - foreach ($prestudentsOfMaster as $prestudent_id) - { - if ($this->getLastPrestudentStatus($prestudent_id) == "Interessent") - { - return true; - } - } + return true; } } else From 5d48b0aad049a0e0999e89489874241df4c1e828 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 2 Jul 2021 13:14:08 +0200 Subject: [PATCH 12/17] =?UTF-8?q?BT:=20neue=20zu=20akzeptierende=20Dokumen?= =?UTF-8?q?te,=20Studiengang=20als=20=C3=BCbergebener=20zgvma=5FOrt,=20Sty?= =?UTF-8?q?ling=20nicht=20verpflichtende=20Dokumente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/dokument.class.php | 13 +++------ include/prestudent.class.php | 51 +++++++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 13 deletions(-) diff --git a/include/dokument.class.php b/include/dokument.class.php index 4d70891c0..6dec9a66d 100644 --- a/include/dokument.class.php +++ b/include/dokument.class.php @@ -1,5 +1,5 @@ db_add_param($dokument_kurzbz).")"; - //echo var_dump($qry); - //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); //für alle prestudent_ids das Dokument akzeptieren $qry = "INSERT INTO public.tbl_dokumentprestudent(dokument_kurzbz, prestudent_id) VALUES"; @@ -979,20 +975,17 @@ class dokument extends basis_db person_id = ".$this->db_add_param($person_id)." and dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz); - // echo var_dump($qry); - //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()) { $arrayDoksZuEntakzeptieren[] = $row->prestudent_id; } - //print_r($arrayDoksZuEntakzeptieren); //für alle prestudent_ids das Dokument Entakzeptieren $qry = "DELETE FROM public.tbl_dokumentprestudent WHERE prestudent_id in ("; diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 8e19927ff..0fe4a06e6 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'); @@ -2408,4 +2409,48 @@ class prestudent extends person 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; + } + } } From a10cacaf4b83f2630561b5a6ee9a93b14da979ef Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 9 Jul 2021 08:28:26 +0200 Subject: [PATCH 13/17] =?UTF-8?q?Anzeige=20j=C3=BCngster=20Eintrag=20Beruf?= =?UTF-8?q?st=C3=A4tigkeit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/notiz.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/notiz.class.php b/include/notiz.class.php index 459bdc6a6..e1d9e9006 100644 --- a/include/notiz.class.php +++ b/include/notiz.class.php @@ -411,7 +411,7 @@ class notiz extends basis_db $qry .= " AND prestudent_id = ".$this->db_add_param($prestudent_id, FHC_INTEGER); } - $qry .= " ORDER BY notiz_id"; + $qry .= " ORDER BY notiz_id DESC"; if($result = $this->db_query($qry)) { From bd153921c6df8ab90ce479b8da8bc7076186a9e6 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 9 Jul 2021 11:09:43 +0200 Subject: [PATCH 14/17] =?UTF-8?q?13989=20Merge=20=C3=84nderungen=20Berufst?= =?UTF-8?q?=C3=A4tigkeit=20master?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/notiz.class.php | 1237 ++++++++++++++++++++------------------- 1 file changed, 619 insertions(+), 618 deletions(-) diff --git a/include/notiz.class.php b/include/notiz.class.php index e1d9e9006..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 DESC"; - - 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; + } + } +} From e9705e69e732ee01168cad7ca0d3548cca2c552b Mon Sep 17 00:00:00 2001 From: manu Date: Tue, 13 Jul 2021 14:36:41 +0200 Subject: [PATCH 15/17] =?UTF-8?q?ZGV-Felder=20f=C3=BCr=20alle=20aktuellen?= =?UTF-8?q?=20Bewerbungen=20mit=20Inhouse-ZGV=20=C3=BCberschreiben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/prestudent.class.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 0fe4a06e6..eb8767883 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2305,7 +2305,7 @@ class prestudent extends person $db = new basis_db(); $arrayleereManations = array(); - //all prestudent_ids mit leerer ZGV_Nation und Status Interessent + //all prestudent_ids mit Status Interessent $qry = "SELECT * FROM @@ -2314,8 +2314,6 @@ class prestudent extends person public.tbl_studiengang USING (studiengang_kz) WHERE person_id = ".$this->db_add_param($person_id)." - AND - zgvmanation is NULL AND typ ='m' And From 05a06de109373d8fefe2407cb1e86df8fddb3b6c Mon Sep 17 00:00:00 2001 From: manu Date: Thu, 15 Jul 2021 09:10:35 +0200 Subject: [PATCH 16/17] =?UTF-8?q?alle=20prestudents=20im=20Status=20Intere?= =?UTF-8?q?ssent=20mit=20leerem=20zgvmatum=20=C3=BCberschreiben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/prestudent.class.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index eb8767883..fcafd36b8 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2316,6 +2316,8 @@ class prestudent extends person person_id = ".$this->db_add_param($person_id)." AND typ ='m' + AND + zgvmadatum IS NULL And get_rolle_prestudent(prestudent_id, null) = 'Interessent';"; From 143053b893f320efc9818ebac2b2c9cb023b5d91 Mon Sep 17 00:00:00 2001 From: manu Date: Tue, 20 Jul 2021 13:53:38 +0200 Subject: [PATCH 17/17] =?UTF-8?q?Bewerbungstool:=20alle=20Masterbewerbunge?= =?UTF-8?q?n=20mit=20Status=20Interessent=20mit=20ZGV-Ort=20=C3=BCberschre?= =?UTF-8?q?iben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/prestudent.class.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index fcafd36b8..eb8767883 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2316,8 +2316,6 @@ class prestudent extends person person_id = ".$this->db_add_param($person_id)." AND typ ='m' - AND - zgvmadatum IS NULL And get_rolle_prestudent(prestudent_id, null) = 'Interessent';";