BIS Meldung angepasst für 3. Geschlecht

This commit is contained in:
Andreas Österreicher
2019-12-12 08:27:57 +01:00
parent 113fd0cc10
commit a585b2a26b
3 changed files with 53 additions and 8 deletions
+28
View File
@@ -3483,6 +3483,34 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_geschlecht LIMIT 1"))
echo '<br>public.tbl_geschlecht hinzugefügt. Check Constraint für Geschlecht entfernt.';
}
if($result = $db->db_query("SELECT * FROM pg_proc WHERE proname = 'transform_geschlecht'"))
{
if ($db->db_num_rows($result) == 0)
{
$qry = '
CREATE OR REPLACE FUNCTION transform_geschlecht(character, date) RETURNS character
LANGUAGE plpgsql
AS $_$
DECLARE geschlecht ALIAS FOR $1;
DECLARE gebdatum ALIAS FOR $2;
BEGIN
IF geschlecht=\'x\' THEN
IF date_part(\'day\', gebdatum)::int%2=0 THEN
geschlecht:=\'m\';
ELSE
geschlecht:=\'w\';
END IF;
END IF;
RETURN geschlecht;
END;
$_$;';
if(!$db->db_query($qry))
echo '<strong>transform_geschlecht: '.$db->db_last_error().'</strong><br>';
else
echo '<br>Function transform_geschlecht hinzugefügt.';
}
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';
+1 -1
View File
@@ -197,7 +197,7 @@ if($result = $db->db_query($qry))
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
}
if($row->geschlecht!='m' && $row->geschlecht!='w')
if($row->geschlecht!='m' && $row->geschlecht!='w' && $row->geschlecht!='x')
{
$error_log.=(!empty($error_log)?', ':'')."Geschlecht ('".$row->geschlecht."')";
}
+24 -7
View File
@@ -595,7 +595,7 @@ function GenerateXMLStudentBlock($row)
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
}
if($row->geschlecht!='m' && $row->geschlecht!='w')
if($row->geschlecht!='m' && $row->geschlecht!='w' && $row->geschlecht!='x')
{
$error_log.=(!empty($error_log)?', ':'')."Geschlecht ('".$row->geschlecht."')";
}
@@ -1303,13 +1303,19 @@ function GenerateXMLBewerberBlock($orgformcode=null)
if(mb_strstr($ssem,"WS"))
{
//Bewerber
$qrybw="SELECT * FROM public.tbl_prestudent
$qrybw="
SELECT
*, transform_geschlecht(tbl_person.geschlecht, tbl_person.gebdatum) as geschlecht_imputiert
FROM
public.tbl_prestudent
JOIN public.tbl_prestudentstatus ON(tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id)
JOIN public.tbl_person USING(person_id)
LEFT JOIN bis.tbl_orgform USING(orgform_kurzbz)
WHERE (studiensemester_kurzbz=".$db->db_add_param($ssem)." OR studiensemester_kurzbz=".$db->db_add_param($psem).") AND tbl_prestudent.studiengang_kz=".$db->db_add_param($stg_kz)."
WHERE (studiensemester_kurzbz=".$db->db_add_param($ssem)." OR studiensemester_kurzbz=".$db->db_add_param($psem).")
AND tbl_prestudent.studiengang_kz=".$db->db_add_param($stg_kz)."
AND (tbl_prestudentstatus.datum<=".$db->db_add_param($bisdatum).")
AND status_kurzbz='Bewerber' AND reihungstestangetreten
AND status_kurzbz='Bewerber'
AND reihungstestangetreten
";
if(!is_null($orgformcode))
$qrybw.=" AND tbl_orgform.code=".$db->db_add_param($orgformcode);
@@ -1321,7 +1327,7 @@ function GenerateXMLBewerberBlock($orgformcode=null)
// Bachelor / Diplom
if(($stgart==1 || $stgart==3) && $rowbw->zgv_code!=NULL)
{
if(strtoupper($rowbw->geschlecht)=='M')
if(strtoupper($rowbw->geschlecht_imputiert)=='M')
{
if(!isset($bewerberM[$rowbw->zgv_code]))
{
@@ -1341,7 +1347,7 @@ function GenerateXMLBewerberBlock($orgformcode=null)
// Master
if($stgart==2 && $rowbw->zgvmas_code!=NULL)
{
if(strtoupper($rowbw->geschlecht)=='M')
if(strtoupper($rowbw->geschlecht_imputiert)=='M')
{
if(!isset($bewerberM[$rowbw->zgvmas_code]))
{
@@ -1369,7 +1375,18 @@ function GenerateXMLBewerberBlock($orgformcode=null)
else
$bewerbercount[$bworgform]=1;
$bwlist.='<tr><td>'.trim($rowbw->nachname).'</td><td>'.trim($rowbw->vorname).'</td><td>'.$bworgform.'</td></tr>';
if($rowbw->geschlecht_imputiert!=$rowbw->geschlecht)
$geschlecht_imputiert = ' -> '.$rowbw->geschlecht_imputiert;
else
$geschlecht_imputiert = '';
$bwlist.='
<tr>
<td>'.trim($rowbw->nachname).'</td>
<td>'.trim($rowbw->vorname).'</td>
<td>'.$bworgform.'</td>
<td>'.$rowbw->geschlecht.$geschlecht_imputiert.'</td>
</tr>';
}
}