diff --git a/include/studiengang.class.php b/include/studiengang.class.php index 530b072c0..676ee97f3 100644 --- a/include/studiengang.class.php +++ b/include/studiengang.class.php @@ -27,35 +27,36 @@ class studiengang extends basis_db public $new; // boolean public $result = array(); // studiengang Objekt - public $studiengang_kz; // integer - public $kurzbz; // varchar(5) - public $kurzbzlang; // varchar(10) - public $bezeichnung; // varchar(128) - public $english; // varchar(128) - public $typ; // char(1) - public $farbe; // char(6) - public $email; // varchar(64) - public $max_semester; // smallint - public $max_verband; // char(1) - public $max_gruppe; // char(1) - public $erhalter_kz; // smallint - public $bescheid; // varchar(256) - public $bescheidbgbl1; // varchar(16) - public $bescheidbgbl2; // varchar(16) - public $bescheidgz; // varchar(16) - public $bescheidvom; // Date - public $titelbescheidvom; // Date - public $ext_id; // bigint - public $orgform_kurzbz; // varchar(3) - public $zusatzinfo_html; // text - public $sprache; // varchar(16) - public $testtool_sprachwahl;// boolean - public $studienplaetze; // smallint - public $oe_kurzbz; // varchar(32) - public $onlinebewerbung; // boolean - public $melderelevant; // boolean - public $foerderrelevant; // boolean - public $standort_code; // integer + public $studiengang_kz; // integer + public $kurzbz; // varchar(5) + public $kurzbzlang; // varchar(10) + public $bezeichnung; // varchar(128) + public $english; // varchar(128) + public $typ; // char(1) + public $farbe; // char(6) + public $email; // varchar(64) + public $max_semester; // smallint + public $max_verband; // char(1) + public $max_gruppe; // char(1) + public $erhalter_kz; // smallint + public $bescheid; // varchar(256) + public $bescheidbgbl1; // varchar(16) + public $bescheidbgbl2; // varchar(16) + public $bescheidgz; // varchar(16) + public $bescheidvom; // Date + public $titelbescheidvom; // Date + public $ext_id; // bigint + public $orgform_kurzbz; // varchar(3) + public $zusatzinfo_html; // text + public $sprache; // varchar(16) + public $testtool_sprachwahl; // boolean + public $studienplaetze; // smallint + public $oe_kurzbz; // varchar(32) + public $onlinebewerbung; // boolean + public $melderelevant; // boolean + public $foerderrelevant; // boolean + public $standort_code; // integer + public $melde_studiengang_kz; // varchar(32) public $kuerzel; // = typ + kurzbz (Bsp: BBE) public $kuerzel_arr = array(); // Array mit allen Kurzeln Index=studiengangs_kz @@ -134,6 +135,7 @@ class studiengang extends basis_db $this->melderelevant = $this->db_parse_bool($row->melderelevant); $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->standort_code = $row->standort_code; + $this->melde_studiengang_kz = $row->melde_studiengang_kz; $this->bezeichnung_arr['German'] = $this->bezeichnung; $this->bezeichnung_arr['English'] = $this->english; @@ -210,6 +212,7 @@ class studiengang extends basis_db $stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant); $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->standort_code = $row->standort_code; + $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['English'] = $row->english; @@ -431,6 +434,7 @@ class studiengang extends basis_db $stg_obj->melderelevant = $this->db_parse_bool($row->melderelevant); $stg_obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $stg_obj->standort_code = $row->standort_code; + $stg_obj->melde_studiengang_kz = $row->melde_studiengang_kz; $stg_obj->bezeichnung_arr['German'] = $row->bezeichnung; $stg_obj->bezeichnung_arr['English'] = $row->english; @@ -474,6 +478,11 @@ class studiengang extends basis_db $this->errormsg = 'studiengang_kz ungueltig!'; return false; } + if(isset($this->melde_studiengang_kz) && $this->melde_studiengang_kz != '' && !is_numeric($this->melde_studiengang_kz)) + { + $this->errormsg = 'melde_studiengang_kz ungueltig!'; + return false; + } $this->errormsg = ''; return true; } @@ -501,7 +510,7 @@ class studiengang extends basis_db typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1, bescheidbgbl2, bescheidgz, bescheidvom, titelbescheidvom, aktiv, onlinebewerbung, orgform_kurzbz, zusatzinfo_html, oe_kurzbz, moodle, sprache, testtool_sprachwahl, studienplaetze, lgartcode, mischform,projektarbeit_note_anzeige, - melderelevant, foerderrelevant, standort_code) VALUES ('. + melderelevant, foerderrelevant, standort_code, melde_studiengang_kz) VALUES ('. $this->db_add_param($this->studiengang_kz, FHC_INTEGER).', '. $this->db_add_param($this->kurzbz).', '. $this->db_add_param($this->kurzbzlang).', '. @@ -535,7 +544,8 @@ class studiengang extends basis_db $this->db_add_param($this->projektarbeit_note_anzeige, FHC_BOOLEAN).','. $this->db_add_param($this->melderelevant, FHC_BOOLEAN).','. $this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).','. - $this->db_add_param($this->standort_code).');'; + $this->db_add_param($this->standort_code).','. + $this->db_add_param($this->melde_studiengang_kz).');'; } else { @@ -575,7 +585,8 @@ class studiengang extends basis_db 'mischform='.$this->db_add_param($this->mischform, FHC_BOOLEAN).', '. 'melderelevant='.$this->db_add_param($this->melderelevant, FHC_BOOLEAN).', '. 'foerderrelevant='.$this->db_add_param($this->foerderrelevant, FHC_BOOLEAN).', '. - 'standort_code='.$this->db_add_param($this->standort_code).' '. + 'standort_code='.$this->db_add_param($this->standort_code).', '. + 'melde_studiengang_kz='.$this->db_add_param($this->melde_studiengang_kz).' '. 'WHERE studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER, false).';'; } @@ -701,6 +712,7 @@ class studiengang extends basis_db $this->melderelevant = $this->db_parse_bool($row->melderelevant); $this->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $this->standort_code = $row->standort_code; + $this->melde_studiengang_kz = $row->melde_studiengang_kz; $this->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige); $this->bezeichnung_arr['German'] = $this->bezeichnung; @@ -844,6 +856,7 @@ class studiengang extends basis_db $obj->melderelevant = $this->db_parse_bool($row->melderelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; + $obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->aktiv = $this->db_parse_bool($row->aktiv); $this->result[] = $obj; @@ -1024,6 +1037,7 @@ class studiengang extends basis_db $obj->melderelevant = $this->db_parse_bool($row->melderelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; + $obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['English'] = $obj->english; @@ -1161,6 +1175,7 @@ class studiengang extends basis_db $obj->melderelevant = $this->db_parse_bool($row->melderelevant); $obj->foerderrelevant = $this->db_parse_bool($row->foerderrelevant); $obj->standort_code = $row->standort_code; + $obj->melde_studiengang_kz = $row->melde_studiengang_kz; $obj->bezeichnung_arr['German'] = $obj->bezeichnung; $obj->bezeichnung_arr['English'] = $obj->english; diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 7965a0518..bca2f9c55 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -6126,6 +6126,33 @@ if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_webservic } } +// Add column melde_studiengang_kz to public.tbl_studiengang and prefill values +if (!$result = @$db->db_query("SELECT melde_studiengang_kz FROM public.tbl_studiengang LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_studiengang ADD COLUMN melde_studiengang_kz varchar(32); + UPDATE public.tbl_studiengang stg SET melde_studiengang_kz = (SELECT lpad(abs(studiengang_kz)::text, 4, '0') FROM tbl_studiengang WHERE studiengang_kz = stg.studiengang_kz) WHERE melderelevant AND lgartcode IS NULL; + UPDATE public.tbl_studiengang stg SET melde_studiengang_kz = (SELECT (SELECT lpad(erhalter_kz::text, 3, '0') FROM public.tbl_erhalter) || lpad(abs(studiengang_kz)::text, 4, '0') FROM tbl_studiengang WHERE studiengang_kz = stg.studiengang_kz) WHERE melderelevant AND lgartcode IS NOT NULL; + COMMENT ON COLUMN public.tbl_studiengang.melde_studiengang_kz IS 'Studiengangskennzahl, mit der der Studiengang gemeldet wird (z.B. Bismeldung)'"; + + if(!$db->db_query($qry)) + echo 'public.tbl_studiengang: '.$db->db_last_error().'
'; + else + echo '
public.tbl_studiengang: Neue Spalte melde_studiengang_kz hinzugefuegt.'; +} + +// Add permission for calling certain APIs in Datenverbund extension +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'extension/dvuh_gui_ekz_anfordern';")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('extension/dvuh_gui_ekz_anfordern', 'Berechtigung für Abfage des Ersatzkennzeichens in der Datenverbund GUI');"; + if(!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo '
system.tbl_berechtigung: Added permission for extension/dvuh_gui_ekz_anfordern'; + } +} + // ADD COLUMN insertamum to system.tbl_fehler_zustaendigkeiten if(!@$db->db_query("SELECT insertamum FROM system.tbl_fehler_zustaendigkeiten LIMIT 1")) { @@ -6241,6 +6268,7 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; else echo 'system.tbl_berechtigung: Added permission for student/keine_studstatuspruefung
'; + } } @@ -6479,7 +6507,7 @@ $tabellen=array( "public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","gruppe","sql","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"), "public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), - "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code"), + "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige", "onlinebewerbung","melderelevant","foerderrelevant","standort_code","melde_studiengang_kz"), "public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung","bezeichnung_mehrsprachig"), "public.tbl_studienjahr" => array("studienjahr_kurzbz","bezeichnung"), "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id","beschreibung","onlinebewerbung"), diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index cf33c5319..bfa916457 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -304,7 +304,9 @@ elseif ($stg_kz == 'alleBaMa') JOIN public.tbl_studiengang ON (tbl_studiengang.studiengang_kz=tbl_student.studiengang_kz) WHERE bismelden=TRUE - AND tbl_studiengang.typ IN ('b','m') + AND tbl_studiengang.typ IN ('b','m','e') + AND tbl_studiengang.melderelevant=TRUE + AND tbl_studiengang.studiengang_kz > 0 AND (((tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($ssem).") AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).") AND (status_kurzbz='Student' OR status_kurzbz='Outgoing' OR status_kurzbz='Praktikant' OR status_kurzbz='Diplomand' OR status_kurzbz='Absolvent' diff --git a/vilesci/stammdaten/studiengang_details.php b/vilesci/stammdaten/studiengang_details.php index 46915f52e..d7f1a61d6 100644 --- a/vilesci/stammdaten/studiengang_details.php +++ b/vilesci/stammdaten/studiengang_details.php @@ -92,6 +92,7 @@ $lgartcode=''; $melderelevant = false; $foerderrelevant = false; $standort_code=''; +$melde_studiengang_kz = ''; $schick = filter_input(INPUT_POST, 'schick'); $onlinebewerbung = false; @@ -155,6 +156,7 @@ if($schick) $melderelevant = filter_input(INPUT_POST, 'melderelevant', FILTER_VALIDATE_BOOLEAN); $foerderrelevant = filter_input(INPUT_POST, 'foerderrelevant', FILTER_VALIDATE_BOOLEAN); $standort_code = filter_input(INPUT_POST, 'standort_code'); + $melde_studiengang_kz = filter_input(INPUT_POST, 'melde_studiengang_kz'); $ext_id = filter_input(INPUT_POST, 'ext_id'); @@ -223,6 +225,7 @@ if($schick) $sg_update->melderelevant = $melderelevant; $sg_update->foerderrelevant = $foerderrelevant; $sg_update->standort_code = $standort_code; + $sg_update->melde_studiengang_kz = $melde_studiengang_kz; $sg_update->bescheidvom=$date->formatDatum($sg_update->bescheidvom,'Y-m-d'); $sg_update->titelbescheidvom=$date->formatDatum($sg_update->titelbescheidvom,'Y-m-d'); @@ -292,6 +295,7 @@ if ((isset($_REQUEST['studiengang_kz'])) && ((!isset($_REQUEST['neu'])) || ($_RE $melderelevant = $sg->melderelevant; $foerderrelevant = $sg->foerderrelevant; $standort_code = $sg->standort_code; + $melde_studiengang_kz = $sg->melde_studiengang_kz; } $erh = new erhalter(); @@ -611,6 +615,12 @@ if (!$erh->getAll('kurzbz')) + + + +
Meldestudiengangskennzahl + +
Bezeichnung