Merge branch 'feature-18887/Datenverbund_Clearing_und_Community_Changes'

This commit is contained in:
Andreas Österreicher
2022-06-28 14:28:04 +02:00
4 changed files with 89 additions and 34 deletions
+47 -32
View File
@@ -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;
+29 -1
View File
@@ -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 '<strong>public.tbl_studiengang: '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
else
echo '<br>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 '<strong>system.tbl_berechtigung '.$db->db_last_error().'</strong><br>';
else
echo 'system.tbl_berechtigung: Added permission for student/keine_studstatuspruefung<br>';
}
}
@@ -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"),
+3 -1
View File
@@ -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'
@@ -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'))
</td>
<td valign="top">
<table>
<tr>
<td>Meldestudiengangskennzahl</td>
<td>
<input class="detail" type="text" name="melde_studiengang_kz" size="16" maxlength="7" value="<?php echo $melde_studiengang_kz ?>" onchange="submitable()">
</td>
</tr>
<tr>
<td>Bezeichnung</td>
<td>