Merge branch 'feature-4900/3_Geschlecht'

This commit is contained in:
Andreas Österreicher
2020-02-07 08:43:51 +01:00
14 changed files with 469 additions and 206 deletions
@@ -143,13 +143,18 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</row>
<row>
<label value="Geschlecht" control="mitarbeiter-detail-menulist-geschlecht"/>
<menulist id="mitarbeiter-detail-menulist-geschlecht" disabled="true" oncommand="MitarbeiterDetailValueChange()">
<menupopup>
<menuitem value="m" label="maennlich"/>
<menuitem value="w" label="weiblich"/>
<menuitem value="u" label="unbekannt"/>
</menupopup>
</menulist>
<menulist id="mitarbeiter-detail-menulist-geschlecht" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/geschlecht.rdf.php"
ref="http://www.technikum-wien.at/geschlecht"
oncommand="MitarbeiterDetailValueChange()">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/geschlecht/rdf#geschlecht"
label="rdf:http://www.technikum-wien.at/geschlecht/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Familienstand" control="mitarbeiter-detail-menulist-familienstand" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> />
<menulist id="mitarbeiter-detail-menulist-familienstand" disabled="true" oncommand="MitarbeiterDetailValueChange()" <?php echo ($rechte->isBerechtigt('mitarbeiter/persoenlich'))?'':'hidden="true"'; ?> >
<menupopup>
+11 -7
View File
@@ -145,12 +145,16 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</row>
<row>
<label value="Geschlecht" control="student-detail-menulist-geschlecht"/>
<menulist id="student-detail-menulist-geschlecht" disabled="true">
<menupopup>
<menuitem value="m" label="maennlich"/>
<menuitem value="w" label="weiblich"/>
<menuitem value="u" label="unbekannt"/>
</menupopup>
<menulist id="student-detail-menulist-geschlecht" disabled="true"
datasources="<?php echo APP_ROOT ?>rdf/geschlecht.rdf.php"
ref="http://www.technikum-wien.at/geschlecht">
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/geschlecht/rdf#geschlecht"
label="rdf:http://www.technikum-wien.at/geschlecht/rdf#bezeichnung"
uri="rdf:*"/>
</menupopup>
</template>
</menulist>
<label value="Familienstand" control="student-detail-menulist-familienstand"/>
<menulist id="student-detail-menulist-familienstand" disabled="true">
@@ -475,7 +479,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</hbox>
<hbox>
<label value="Priorität" control="student-prestudent-textbox-priorisierung"/>
<?php
<?php
$readonly = 'readonly="true"';
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($user);
+116
View File
@@ -0,0 +1,116 @@
<?php
/* Copyright (C) 2019 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/sprache.class.php');
class geschlecht extends basis_db
{
public $new; // boolean
public $result = array();
//Tabellenspalten
public $geschlecht; // character(1)
public $bezeichnung_mehrsprachig; // varchar(255)[]
public $bezeichnung_mehrsprachig_arr = array();
/**
* Konstruktor
* @param $geschlecht ID des Geschlechts das geladen werden soll (Default=null)
*/
public function __construct($geschlecht=null)
{
parent::__construct();
if(!is_null($geschlecht))
$this->load($geschlecht);
}
/**
* Laedt ein geschlecht
* @param $geschlecht das zu ladende Geschlecht
* @return true wenn ok, false im Fehlerfall
*/
public function load($geschlecht)
{
$sprache = new sprache();
$qry = "
SELECT
*,".$sprache->getSprachQuery('bezeichnung_mehrsprachig')."
FROM
public.tbl_geschlecht
WHERE
geschlecht=".$this->db_add_param($geschlecht);
if(!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = $this->db_fetch_object())
{
$this->geschlecht = $row->geschlecht;
$this->bezeichnung_mehrsprachig_arr = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt alle Geschlechter
* @return boolean true wenn erfolgreich, false im Fehlerfall
*/
public function getAll()
{
$sprache = new sprache();
$qry = "
SELECT
*,".$sprache->getSprachQuery('bezeichnung_mehrsprachig')."
FROM
public.tbl_geschlecht
ORDER BY sort, geschlecht";
if (!$this->db_query($qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while ($row = $this->db_fetch_object())
{
$obj = new stdClass();
$obj->geschlecht = $row->geschlecht;
$obj->bezeichnung_mehrsprachig_arr = $sprache->parseSprachResult('bezeichnung_mehrsprachig', $row);
$this->result[] = $obj;
}
return true;
}
}
?>
+1 -6
View File
@@ -374,12 +374,7 @@ class person extends basis_db
$this->errormsg = 'Staatsbuergerschaft darf nicht laenger als 3 Zeichen sein';
return false;
}
if ($this->geschlecht != 'm' && $this->geschlecht != 'w' && $this->geschlecht != 'u')
{
$this->errormsg = 'Geschlecht muss w, m oder u sein!';
return false;
}
//Pruefen ob das Geburtsdatum mit der SVNR uebereinstimmt.
if ($this->svnr != '' && $this->gebdatum != '')
{
+40
View File
@@ -0,0 +1,40 @@
<?php
/* Copyright (C) 2019 fhcomplete.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Österreicher <andreas.oesterreicher@technikum-wien.at>
*/
require_once('../config/vilesci.config.inc.php');
require_once('../include/rdf.class.php');
require_once('../include/basis_db.class.php');
require_once('../include/geschlecht.class.php');
$oRdf = new rdf('GESCHLECHT','http://www.technikum-wien.at/geschlecht');
$oRdf->sendHeader();
$geschlecht = new geschlecht();
$geschlecht->getAll();
foreach($geschlecht->result as $row)
{
$i=$oRdf->newObjekt($row->geschlecht);
$oRdf->obj[$i]->setAttribut('geschlecht', $row->geschlecht,true);
$oRdf->obj[$i]->setAttribut('bezeichnung', $row->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE],true);
$oRdf->addSequence($row->geschlecht);
}
$oRdf->sendRdfText();
?>
+139 -140
View File
@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
* Karl Burkhart <burkhart@technikum-wien.at>
* Manfred Kindl <kindlm@technikum-wien.at>
* Karl Burkhart <burkhart@technikum-wien.at>
* Manfred Kindl <kindlm@technikum-wien.at>
*/
header("Content-type: application/xhtml+xml");
require_once('../config/vilesci.config.inc.php');
@@ -36,6 +36,7 @@ require_once('../include/mitarbeiter.class.php');
require_once('../include/organisationsform.class.php');
require_once('../include/zgv.class.php');
require_once('../include/konto.class.php');
require_once('../include/geschlecht.class.php');
$uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null);
$studiensemester = (isset($_REQUEST['ss'])?$_REQUEST['ss']:null);
@@ -52,33 +53,33 @@ $student_help = new student();
// an 2ter stelle da im Aufruf vom FAS ;<uid>; der erste immer '' ist
if($student_help->load($uid))
{
$studiengang = new studiengang();
$studiengang->load($student_help->studiengang_kz);
$studiengang = new studiengang();
$studiengang->load($student_help->studiengang_kz);
switch($studiengang->typ)
{
case 'b':
$studTyp = 'Bachelor';
$titel_kurzbz = 'BSc';
break;
case 'm':
$studTyp = 'Master';
$titel_kurzbz ='MSc';
break;
case 'd':
$studTyp = 'Diplom';
break;
case 'l':
$studTyp = 'Lehrgang';
break;
case 'k':
$studTyp = 'Kurzstudium';
break;
default:
$studTyp ='';
$titel_kurzbz = '';
}
echo "\t<studiengang_typ>".$studTyp."</studiengang_typ>\n";
echo "\t<studiengang><![CDATA[".$studiengang->bezeichnung."]]></studiengang>\n";
{
case 'b':
$studTyp = 'Bachelor';
$titel_kurzbz = 'BSc';
break;
case 'm':
$studTyp = 'Master';
$titel_kurzbz ='MSc';
break;
case 'd':
$studTyp = 'Diplom';
break;
case 'l':
$studTyp = 'Lehrgang';
break;
case 'k':
$studTyp = 'Kurzstudium';
break;
default:
$studTyp ='';
$titel_kurzbz = '';
}
echo "\t<studiengang_typ>".$studTyp."</studiengang_typ>\n";
echo "\t<studiengang><![CDATA[".$studiengang->bezeichnung."]]></studiengang>\n";
}
foreach($uid_arr as $uid)
@@ -105,152 +106,150 @@ foreach($uid_arr as $uid)
$staatsbuergerschaft->load($student->staatsbuergerschaft);
$svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr;
$svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr;
switch($student->geschlecht)
{
case 'm':
$geschlecht = 'Männlich';
break;
case 'w':
$geschlecht = 'Weiblich';
break;
case 'u':
$geschlecht = 'Unbekannt';
break;
default:
$geschlecht ='';
}
$geschlecht_obj = new geschlecht();
$geschlecht_obj->load($student->geschlecht);
//Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen
if ($studienordnung->studiengang_kz<0)
{
$stg = new studiengang();
$stg->load($studienordnung->studiengang_kz);
$geschlecht = $geschlecht_obj->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE];
$geschlecht_englisch = $geschlecht_obj->bezeichnung_mehrsprachig_arr['English'];
$studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studienordnung->studiengang_kz));
}
else
$studiengang_kz = sprintf("%04s", abs($studienordnung->studiengang_kz));
//Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen
if ($studienordnung->studiengang_kz<0)
{
$stg = new studiengang();
$stg->load($studienordnung->studiengang_kz);
$studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studienordnung->studiengang_kz));
}
else
$studiengang_kz = sprintf("%04s", abs($studienordnung->studiengang_kz));
$sprache_obj = new sprache();
$sprache_obj->load($studienplan->sprache);
$studienplan_sprache = $sprache_obj->bezeichnung_arr[DEFAULT_LANGUAGE];
$studienplan_sprache_englisch = $sprache_obj->bezeichnung_arr['English'];
echo "\t\t<quote>1</quote>\n";
echo "\t\t<personenkz>".$uid."</personenkz>\n";
echo "\t\t<geschlecht>".$geschlecht."</geschlecht>\n";
echo "\t\t<personenkz><![CDATA[".$uid."]]></personenkz>\n";
echo "\t\t<geschlecht><![CDATA[".$geschlecht."]]></geschlecht>\n";
echo "\t\t<geschlecht_englisch><![CDATA[".$geschlecht_englisch."]]></geschlecht_englisch>\n";
echo "\t\t<anrede><![CDATA[".$student->anrede."]]></anrede>\n";
echo "\t\t<vorname><![CDATA[".$student->vorname." ".$student->vornamen."]]></vorname>\n";
echo "\t\t<vornamen><![CDATA[".$student->vornamen."]]></vornamen>\n";
echo "\t\t<nachname><![CDATA[".$student->nachname."]]></nachname>\n";
echo "\t\t<titelpre><![CDATA[".$student->titelpre."]]></titelpre>\n";
echo "\t\t<titelpost><![CDATA[".$student->titelpost."]]></titelpost>\n";
echo "\t\t<gebdatum>".$gebdatum."</gebdatum>\n";
echo "\t\t<gebdatum><![CDATA[".$gebdatum."]]></gebdatum>\n";
echo "\t\t<gebort><![CDATA[".$student->gebort."]]></gebort>\n";
echo "\t\t<staatsbuergerschaft><![CDATA[".$staatsbuergerschaft->langtext."]]></staatsbuergerschaft>\n";
echo "\t\t<svnr>".$svnr."</svnr>\n";
echo "\t\t<matr_nr>".trim($student->matr_nr)."</matr_nr>\n";
echo "\t\t<matrikelnr>".trim($student->matrikelnr)."</matrikelnr>\n";
echo "\t\t<svnr><![CDATA[".$svnr."]]></svnr>\n";
echo "\t\t<matr_nr><![CDATA[".trim($student->matr_nr)."]]></matr_nr>\n";
echo "\t\t<matrikelnr><![CDATA[".trim($student->matrikelnr)."]]></matrikelnr>\n";
echo "\t\t<studiengang><![CDATA[".$studienordnung->studiengangbezeichnung."]]></studiengang>\n";
echo "\t\t<studiengang_englisch><![CDATA[".$studienordnung->studiengangbezeichnung_englisch."]]></studiengang_englisch>\n";
echo "\t\t<studiengang_kurzbz><![CDATA[".$studienordnung->studiengangkurzbzlang."]]></studiengang_kurzbz>\n";
echo "\t\t<studiengang_kurzbz><![CDATA[".$studienordnung->studiengangkurzbzlang."]]></studiengang_kurzbz>\n";
echo "\t\t<studiengang_kz><![CDATA[".$studiengang_kz."]]></studiengang_kz>\n";
echo "\t\t<studiengangSprache><![CDATA[".$studienplan->sprache."]]></studiengangSprache>";
echo "\t\t<ects_gesamt>".$studienordnung->ects."</ects_gesamt>";
echo "\t\t<ects_pro_semester>".($studienplan->regelstudiendauer!=0?$studienordnung->ects/$studienplan->regelstudiendauer:0)."</ects_pro_semester>";
echo "\t\t<studiengangSprache><![CDATA[".$studienplan_sprache."]]></studiengangSprache>";
echo "\t\t<studiengangSpracheEnglisch><![CDATA[".$studienplan_sprache_englisch."]]></studiengangSpracheEnglisch>";
echo "\t\t<ects_gesamt><![CDATA[".$studienordnung->ects."]]></ects_gesamt>";
echo "\t\t<ects_pro_semester><![CDATA[".($studienplan->regelstudiendauer!=0?$studienordnung->ects/$studienplan->regelstudiendauer:0)."]]></ects_pro_semester>";
echo "\t\t<aktuellesJahr>".date('Y')."</aktuellesJahr>";
echo "\t\t<aktuellesJahr><![CDATA[".date('Y')."]]></aktuellesJahr>";
echo "\t\t<ausbildungssemester_aktuell>".$prestudent->ausbildungssemester."</ausbildungssemester_aktuell>";
echo "\t\t<ausbildungssemester_aktuell><![CDATA[".$prestudent->ausbildungssemester."]]></ausbildungssemester_aktuell>";
$studiensemester_aktuell = new studiensemester();
$studiensemester_aktuell->load($studiensemester);
$studiensemester_aktuell = new studiensemester();
$studiensemester_aktuell->load($studiensemester);
echo "\t\t<studiensemester_aktuell><![CDATA[".$studiensemester_aktuell->bezeichnung."]]></studiensemester_aktuell>";
echo "\t\t<studiensemester_aktuell><![CDATA[".$studiensemester_aktuell->bezeichnung."]]></studiensemester_aktuell>";
// check ob Oeh-Beitrag bezahlt wurde
$oehbeitrag = $konto->getOehBeitragGesamt($uid, $studiensemester_aktuell->studiensemester_kurzbz);
echo "\t\t<oehbeitrag>".str_replace('.', ',', $oehbeitrag)."</oehbeitrag>";
echo "\t\t<oehbeitrag><![CDATA[".str_replace('.', ',', $oehbeitrag)."]]></oehbeitrag>";
// check ob Quereinsteiger
$ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:'';
echo "\t\t<semesterStudent>".$ausbildungssemester."</semesterStudent>";
// check ob Quereinsteiger
$ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:'';
echo "\t\t<semesterStudent><![CDATA[".$ausbildungssemester."]]></semesterStudent>";
$studiensemester_beginn = new studiensemester();
$studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:'';
$studiensemester_beginn->load($studienbeginn);
$studiensemester_beginn = new studiensemester();
$studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:'';
$studiensemester_beginn->load($studienbeginn);
echo "\t\t<studiensemester_beginn>".$studiensemester_beginn->bezeichnung."</studiensemester_beginn>";
echo "\t\t<studiensemester_beginndatum>".date('d.m.Y',strtotime($studiensemester_beginn->start))."</studiensemester_beginndatum>";
echo "\t\t<studiensemester_beginn><![CDATA[".$studiensemester_beginn->bezeichnung."]]></studiensemester_beginn>";
echo "\t\t<studiensemester_beginndatum><![CDATA[".date('d.m.Y',strtotime($studiensemester_beginn->start))."]]></studiensemester_beginndatum>";
$prestudent->getLastStatus($student->prestudent_id,$studiensemester);
$studiensemester_abschluss = new studiensemester();
$abschluss = $studiensemester_abschluss->jump($prestudent->studiensemester_kurzbz, $studienplan->regelstudiendauer-$prestudent->ausbildungssemester);
$studiensemester_abschluss->load($abschluss);
echo "\t\t<voraussichtlichLetztesStudiensemester>".$studiensemester_abschluss->bezeichnung."</voraussichtlichLetztesStudiensemester>";
echo "\t\t<voraussichtlichLetztesStudiensemester_datum>".date('d.m.Y',strtotime($studiensemester_abschluss->ende))."</voraussichtlichLetztesStudiensemester_datum>";
$prestudent->getLastStatus($student->prestudent_id,$studiensemester);
$studiensemester_abschluss = new studiensemester();
$abschluss = $studiensemester_abschluss->jump($prestudent->studiensemester_kurzbz, $studienplan->regelstudiendauer-$prestudent->ausbildungssemester);
$studiensemester_abschluss->load($abschluss);
echo "\t\t<voraussichtlichLetztesStudiensemester><![CDATA[".$studiensemester_abschluss->bezeichnung."]]></voraussichtlichLetztesStudiensemester>";
echo "\t\t<voraussichtlichLetztesStudiensemester_datum><![CDATA[".date('d.m.Y',strtotime($studiensemester_abschluss->ende))."]]></voraussichtlichLetztesStudiensemester_datum>";
$studiensemester_endedatum = new studiensemester();
$studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1));
$studiensemester_endedatum = new studiensemester();
$studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1));
echo "\t\t<studiensemester_endedatum>".date('d.m.Y',strtotime($studiensemester_endedatum->ende))."</studiensemester_endedatum>";
echo "\t\t<studiensemester_endedatum><![CDATA[".date('d.m.Y',strtotime($studiensemester_endedatum->ende))."]]></studiensemester_endedatum>";
$status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:'';
$status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:'';
switch($status_aktuell)
{
case 'Student':
$studierendenstatus_aktuell = 'Aktive/r StudentIn';
break;
case 'Unterbrecher':
$studierendenstatus_aktuell = 'UnterbrecherIn';
break;
case 'Absolvent':
$studierendenstatus_aktuell = 'AbsolventIn';
break;
case 'Diplomand':
$studierendenstatus_aktuell = 'DiplomandIn';
break;
case 'Abbrecher':
$studierendenstatus_aktuell = 'AbbrecherIn';
break;
default:
$studierendenstatus_aktuell ='';
}
{
case 'Student':
$studierendenstatus_aktuell = 'Aktive/r StudentIn';
break;
case 'Unterbrecher':
$studierendenstatus_aktuell = 'UnterbrecherIn';
break;
case 'Absolvent':
$studierendenstatus_aktuell = 'AbsolventIn';
break;
case 'Diplomand':
$studierendenstatus_aktuell = 'DiplomandIn';
break;
case 'Abbrecher':
$studierendenstatus_aktuell = 'AbbrecherIn';
break;
default:
$studierendenstatus_aktuell ='';
}
echo "\t\t<studierendenstatus_aktuell>".$studierendenstatus_aktuell."</studierendenstatus_aktuell>\n";
echo "\t\t<datum_reifepruefung>".$prestudent->zgvdatum."</datum_reifepruefung>\n";
$zgv = new zgv($prestudent->zgv_code);
echo "\t\t<schulform_zgv><![CDATA[".$zgv->zgv_kurzbz."]]></schulform_zgv>\n";
echo "\t\t<studienplan_bezeichnung><![CDATA[".$studienplan->bezeichnung."]]></studienplan_bezeichnung>\n";
echo "\t\t<anmerkungpre><![CDATA[$prestudent->anmerkung]]></anmerkungpre>\n";
echo "\t\t<studierendenstatus_aktuell><![CDATA[".$studierendenstatus_aktuell."]]></studierendenstatus_aktuell>\n";
echo "\t\t<datum_reifepruefung><![CDATA[".$prestudent->zgvdatum."]]></datum_reifepruefung>\n";
$zgv = new zgv($prestudent->zgv_code);
echo "\t\t<schulform_zgv><![CDATA[".$zgv->zgv_kurzbz."]]></schulform_zgv>\n";
echo "\t\t<studienplan_bezeichnung><![CDATA[".$studienplan->bezeichnung."]]></studienplan_bezeichnung>\n";
echo "\t\t<anmerkungpre><![CDATA[$prestudent->anmerkung]]></anmerkungpre>\n";
$titel_kurzbz = '';
switch($studiengang->typ)
{
case 'b':
$studTyp = 'Bachelor';
$titel_kurzbz = 'BSc';
break;
case 'm':
$studTyp = 'Master';
$titel_kurzbz ='MSc';
break;
case 'd':
$studTyp = 'Diplom';
break;
case 'l':
$studTyp = 'Lehrgang';
break;
case 'k':
$studTyp = 'Kurzstudium';
break;
default:
$studTyp ='';
$titel_kurzbz = '';
}
$titel_kurzbz = '';
switch($studiengang->typ)
{
case 'b':
$studTyp = 'Bachelor';
$titel_kurzbz = 'BSc';
break;
case 'm':
$studTyp = 'Master';
$titel_kurzbz ='MSc';
break;
case 'd':
$studTyp = 'Diplom';
break;
case 'l':
$studTyp = 'Lehrgang';
break;
case 'k':
$studTyp = 'Kurzstudium';
break;
default:
$studTyp ='';
$titel_kurzbz = '';
}
echo "\t\t<titel_kurzbz><![CDATA[".$titel_kurzbz."]]></titel_kurzbz>\n";
echo "\t\t<titel_kurzbz><![CDATA[".$titel_kurzbz."]]></titel_kurzbz>\n";
echo "\t\t<studiengang_typ><![CDATA[".$studTyp."]]></studiengang_typ>\n";
echo "\t\t<studienplan_sprache><![CDATA[".$studienplan->sprache."]]></studienplan_sprache>\n";
echo "\t\t<regelstudiendauer>".$studienplan->regelstudiendauer."</regelstudiendauer>\n";
echo "\t\t<regelstudiendauer><![CDATA[".$studienplan->regelstudiendauer."]]></regelstudiendauer>\n";
$akadgrad = new akadgrad();
$akadgrad->getAkadgradStudent($student->uid);
@@ -272,15 +271,15 @@ foreach($uid_arr as $uid)
$lv_studiengang=new studiengang();
$lv_studiengang->load($lv_studiengang_kz);
$lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung;
$stg_typ->getStudiengangTyp($lv_studiengang->typ);
$stg_typ->getStudiengangTyp($lv_studiengang->typ);
$lv_studiengang_typ=$stg_typ->bezeichnung;
}
echo "\t\t<lv_studiengang_kz>".sprintf('%04s', $lv_studiengang_kz)."</lv_studiengang_kz>";
echo "\t\t<lv_studiengang_kz><![CDATA[".sprintf('%04s', $lv_studiengang_kz)."]]></lv_studiengang_kz>";
echo "\t\t<lv_studiengang_typ><![CDATA[$lv_studiengang_typ]]></lv_studiengang_typ>";
echo "\t\t<lv_studiengang_bezeichnung><![CDATA[$lv_studiengang_bezeichnung]]></lv_studiengang_bezeichnung>";
echo "\t\t<datum_aktuell>".$datum_aktuell."</datum_aktuell>\n";
echo "\t\t<datum_aktuell><![CDATA[".$datum_aktuell."]]></datum_aktuell>\n";
$adresse = new adresse();
$adresse->load_pers($student->person_id);
+63
View File
@@ -3463,6 +3463,68 @@ if ($result = @$db->db_query("SELECT 1 FROM system.tbl_webservicetyp WHERE webse
}
}
// Add new Table for gender
// Add FK to public.tbl_person and Drop old Check Constraint
if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_geschlecht LIMIT 1"))
{
$qry = "
CREATE TABLE public.tbl_geschlecht
(
geschlecht character(1) NOT NULL,
bezeichnung_mehrsprachig varchar(255)[],
sort smallint
);
COMMENT ON TABLE public.tbl_geschlecht IS 'Key-Table of Gender';
ALTER TABLE public.tbl_geschlecht ADD CONSTRAINT pk_tbl_geschlecht PRIMARY KEY (geschlecht);
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('m', '{\"männlich\",\"male\"}', 1);
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('w', '{\"weiblich\",\"female\"}', 2);
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('x', '{\"divers\",\"divers\"}', 3);
INSERT INTO public.tbl_geschlecht(geschlecht, bezeichnung_mehrsprachig, sort) VALUES ('u', '{\"unbekannt\",\"unknown\"}', 4);
ALTER TABLE public.tbl_person ADD CONSTRAINT fk_tbl_person_geschlecht FOREIGN KEY (geschlecht) REFERENCES public.tbl_geschlecht (geschlecht) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE public.tbl_person DROP CONSTRAINT tbl_person_geschlecht;
GRANT SELECT ON TABLE public.tbl_geschlecht TO web;
GRANT SELECT ON TABLE public.tbl_geschlecht TO wawi;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE public.tbl_geschlecht TO vilesci;
";
if(!$db->db_query($qry))
echo '<strong>public.tbl_geschlecht: '.$db->db_last_error().'</strong><br>';
else
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>';
@@ -3640,6 +3702,7 @@ $tabellen=array(
"public.tbl_firmatag" => array("firma_id","tag","insertamum","insertvon"),
"public.tbl_fotostatus" => array("fotostatus_kurzbz","beschreibung"),
"public.tbl_funktion" => array("funktion_kurzbz","beschreibung","aktiv","fachbereich","semester"),
"public.tbl_geschlecht" => array("geschlecht","bezeichnung_mehrsprachig","sort"),
"public.tbl_geschaeftsjahr" => array("geschaeftsjahr_kurzbz","start","ende","bezeichnung"),
"public.tbl_gruppe" => array("gruppe_kurzbz","studiengang_kz","semester","bezeichnung","beschreibung","sichtbar","lehre","aktiv","sort","mailgrp","generiert","updateamum","updatevon","insertamum","insertvon","ext_id","orgform_kurzbz","gid","content_visible","gesperrt","zutrittssystem","aufnahmegruppe","direktinskription"),
"public.tbl_kontakt" => array("kontakt_id","person_id","kontakttyp","anmerkung","kontakt","zustellung","updateamum","updatevon","insertamum","insertvon","ext_id","standort_id"),
+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."')";
}
+7 -2
View File
@@ -115,7 +115,7 @@ $stg_obj = new studiengang();
$stg_obj->getAll(null,false);
$qry="
SELECT DISTINCT ON (UID) *
SELECT DISTINCT ON (UID) *, transform_geschlecht(tbl_person.geschlecht, tbl_person.gebdatum) as geschlecht_imputiert
FROM
public.tbl_mitarbeiter
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
@@ -175,7 +175,12 @@ if($result = $db->db_query($qry))
<Person>
<PersonalNummer>".sprintf("%015s",$row->personalnummer)."</PersonalNummer>
<GeburtsDatum>".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))."</GeburtsDatum>
<Geschlecht>".strtoupper($row->geschlecht)."</Geschlecht>
<Geschlecht>".strtoupper($row->geschlecht)."</Geschlecht>";
if ($row->geschlecht == 'x')
$person_content.="
<GeschlechtX>".strtoupper($row->geschlecht_imputiert)."</GeschlechtX>";
$person_content.="
<HoechsteAbgeschlosseneAusbildung>".$row->ausbildungcode."</HoechsteAbgeschlosseneAusbildung>";
$qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." AND habilitation=true;";
if($resultvw=$db->db_query($qryvw))
+24 -7
View File
@@ -648,7 +648,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."')";
}
@@ -1355,13 +1355,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);
@@ -1373,7 +1379,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]))
{
@@ -1393,7 +1399,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]))
{
@@ -1421,7 +1427,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>';
}
}
@@ -37,6 +37,7 @@ require_once('../../../include/student.class.php');
require_once('../../../include/lehrverband.class.php');
require_once('../../../include/nation.class.php');
require_once('../../../include/studienplan.class.php');
require_once('../../../include/geschlecht.class.php');
$db = new basis_db();
$user = get_uid();
@@ -940,9 +941,17 @@ echo '<tr><td>Weitere Vornamen </td><td><input type="text" id="vornamen" maxleng
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" id="nachname" name="nachname" value="'.$nachname.'" required="required" autofocus/></td></tr>';
echo '<tr><td>Titel(Post)</td><td><input type="text" id="titelpost" name="titelpost" maxlength="64" value="'.$titelpost.'" /></td></tr>';
echo '<tr><td>Geschlecht *</td><td><SELECT id="geschlecht" name="geschlecht">';
echo '<OPTION value="m" '.($geschlecht=='m'?'selected':'').'>m&auml;nnlich</OPTION>';
echo '<OPTION value="w" '.($geschlecht=='w'?'selected':'').'>weiblich</OPTION>';
echo '<OPTION value="u" '.($geschlecht=='u'?'selected':'').'>unbekannt</OPTION>';
$geschlecht_obj = new geschlecht();
$geschlecht_obj->getAll();
foreach ($geschlecht_obj->result as $row_geschlecht)
{
if ($row_geschlecht->geschlecht == $geschlecht)
$selected = 'selected';
else
$selected = '';
echo '<OPTION value="'.$row_geschlecht->geschlecht.'" '.$selected.'>'.$row_geschlecht->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE].'</OPTION>';
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>Geburtsdatum </td><td><input type="text" id="geburtsdatum" size="10" maxlength="10" name="geburtsdatum" value="'.$geburtsdatum_orig.'" /> (Format: dd.mm.JJJJ)</td></tr>';
+13 -3
View File
@@ -30,6 +30,7 @@ require_once('../../../include/kontakt.class.php');
require_once('../../../include/adresse.class.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/nation.class.php');
require_once('../../../include/geschlecht.class.php');
require_once('../../../include/'.EXT_FKT_PATH.'/generateuid.inc.php');
$db = new basis_db();
@@ -932,9 +933,18 @@ echo '<input type="text" id="vornamen" maxlength="32" size="30" name="vornamen"
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" size="30" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
echo '<tr><td>Titel(Post)</td><td><input type="text" id="titelpost" name="titelpost" maxlength="64" size="30" value="'.$titelpost.'" /></td></tr>';
echo '<tr><td>Geschlecht *</td><td><SELECT id="geschlecht" name="geschlecht" onchange="GeschlechtChange()">';
echo '<OPTION value="m" '.($geschlecht=='m'?'selected':'').'>m&auml;nnlich</OPTION>';
echo '<OPTION value="w" '.($geschlecht=='w'?'selected':'').'>weiblich</OPTION>';
echo '<OPTION value="u" '.($geschlecht=='u'?'selected':'').'>unbekannt</OPTION>';
$geschlecht_obj = new geschlecht();
$geschlecht_obj->getAll();
foreach($geschlecht_obj->result as $row_geschlecht)
{
if($geschlecht == $row_geschlecht->geschlecht)
$selected = 'selected';
else
$selected = '';
echo '<OPTION value="'.$row_geschlecht->geschlecht.'" '.$selected.'>'.$row_geschlecht->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE].'</OPTION>';
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>SVNR</td><td><input type="text" id="svnr" size="30" maxlength="16" name="svnr" value="'.$svnr.'" onblur="GeburtsdatumEintragen()" /></td></tr>';
+13 -4
View File
@@ -27,6 +27,7 @@ require_once('../../include/person.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/kontakt.class.php');
require_once('../../include/adresse.class.php');
require_once('../../include/geschlecht.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -39,7 +40,7 @@ loadVariables($user);
<html>
<head>
<meta charset="UTF-8">
<link href="../../skin/cis.css" rel="stylesheet" type="text/css">
<link href="../../skin/style.css.php" rel="stylesheet" type="text/css">
<script language="Javascript">
function disablefields(obj)
{
@@ -347,9 +348,17 @@ echo '<tr><td>Vorname</td><td><input type="text" id="vorname" maxlength="32" nam
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
echo '<tr><td>Titel(Post)</td><td><input type="text" id="titelpost" name="titelpost" maxlength="64" value="'.$titelpost.'" /></td></tr>';
echo '<tr><td>Geschlecht *</td><td><SELECT id="geschlecht" name="geschlecht">';
echo '<OPTION value="m" '.($geschlecht=='m'?'selected':'').'>m&auml;nnlich</OPTION>';
echo '<OPTION value="w" '.($geschlecht=='w'?'selected':'').'>weiblich</OPTION>';
echo '<OPTION value="u" '.($geschlecht=='u'?'selected':'').'>unbekannt</OPTION>';
$geschlecht_obj = new geschlecht();
$geschlecht_obj->getAll();
foreach ($geschlecht_obj->result as $row_geschlecht)
{
if ($geschlecht == $row_geschlecht->geschlecht)
$selected = 'selected';
else
$selected = '';
echo '<OPTION value="'.$row_geschlecht->geschlecht.'" '.$selected.'>'.$row_geschlecht->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE].'</OPTION>';
}
echo '</SELECT>';
echo '</td></tr>';
echo '<tr><td>SVNR</td><td><input type="text" id="svnr" size="10" maxlength="10" name="svnr" value="'.$svnr.'" onblur="GeburtsdatumEintragen()" /></td></tr>';
+17 -26
View File
@@ -31,7 +31,7 @@ require_once('../../include/nation.class.php');
require_once('../../include/ort.class.php');
require_once('../../include/akte.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/fckeditor/fckeditor.php');
require_once('../../include/geschlecht.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -119,7 +119,6 @@ $ort_kurzbz = (isset($_POST['ort_kurzbz'])?$_POST['ort_kurzbz']:'');
$standort_id = (isset($_POST['standort_id'])?$_POST['standort_id']:'');
$anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:'');
$bismelden = (isset($_POST['bismelden'])?$_POST['bismelden']:'');
$kurzbeschreibung = (isset($_POST['kurzbeschreibung'])?$_POST['kurzbeschreibung']:'');
$matrikelnummer = (isset($_POST['matrikelnummer'])?$_POST['matrikelnummer']:'');
$semester = (isset($_POST['semester'])?$_POST['semester']:'');
$verband = (isset($_POST['verband'])?$_POST['verband']:'');
@@ -128,9 +127,9 @@ $dms_id_lichtbild = '';
if($uid!='')
{
$qry = "SELECT person_id, true as mitarbeiter FROM campus.vw_mitarbeiter WHERE uid='".addslashes($uid)."'
$qry = "SELECT person_id, true as mitarbeiter FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($uid)."
UNION
SELECT person_id, false as mitarbeiter FROM campus.vw_student WHERE uid='".addslashes($uid)."'";
SELECT person_id, false as mitarbeiter FROM campus.vw_student WHERE uid=".$db->db_add_param($uid);
if($result = $db->db_query($qry))
{
@@ -176,7 +175,6 @@ if(isset($_POST['saveperson']))
$person->homepage = $homepage;
$person->updateamum = date('Y-m-d H:i:s');
$person->updatevon = $user;
$person->kurzbeschreibung = $kurzbeschreibung;
$person->new = false;
if($person->save())
@@ -344,7 +342,6 @@ if(!$error_person_save)
$anzahlderkinder = $person->anzahlkinder;
$anmerkungen = $person->anmerkungen;
$homepage = $person->homepage;
$kurzbeschreibung = $person->kurzbeschreibung;
}
$akte = new akte();
@@ -452,11 +449,19 @@ echo "
</tr>
<tr>
<td>Geschlecht</td>
<td><SELECT name='geschlecht'>
<option value='m' ".($geschlecht=='m'?'selected':'').">maennlich</option>
<option value='w' ".($geschlecht=='w'?'selected':'').">weiblich</option>
<option value='u' ".($geschlecht=='u'?'selected':'').">unbekannt</option>
</SELECT>
<td><SELECT name='geschlecht'>";
$geschlecht_obj = new geschlecht();
$geschlecht_obj->getAll();
foreach ($geschlecht_obj->result as $row_geschlecht)
{
if($geschlecht == $row_geschlecht->geschlecht)
$selected = 'selected';
else
$selected = '';
echo "<option value='".$row_geschlecht->geschlecht."' ".$selected.">".$row_geschlecht->bezeichnung_mehrsprachig_arr[DEFAULT_LANGUAGE]."</option>";
}
echo " </SELECT>
</td>
<td>Familienstand</td>
<td><SELECT name='familienstand'>
@@ -485,19 +490,6 @@ echo "
<a href=\"../fhausweis/search.php?person_id=".$person_id."\">FH-Ausweis Status</a>
</td>
</tr>
<tr>
<td colspan=6>
";
$oFCKeditor = new FCKeditor('kurzbeschreibung') ;
$sBasePath = '../../include/fckeditor/';
$oFCKeditor->BasePath = $sBasePath ;
$oFCKeditor->Value = $kurzbeschreibung;
$oFCKeditor->Create() ;
echo "
</td>
</tr>
<tr>
<td></td>
<td></td>
@@ -521,7 +513,7 @@ if(isset($uid) && $uid!='')
<legend>Benutzerdaten</legend>
";
$qry = "SELECT * FROM public.tbl_benutzer WHERE uid='".addslashes($uid)."'";
$qry = "SELECT * FROM public.tbl_benutzer WHERE uid=".$db->db_add_param($uid);
if(!$result_benutzer = $db->db_query($qry))
die('Fehler beim Auslesen der Benutzerdaten');
@@ -545,7 +537,6 @@ if(isset($uid) && $uid!='')
echo '<br><a href="../../content/pdfExport.php?xsl=AccountInfo&xml=accountinfoblatt.xml.php&uid='.$uid.'" >AccountInfoBlatt erstellen</a>';
echo '<br><a href="../stammdaten/betriebsmittel_frameset.php?searchstr='.$uid.'" >Betriebsmittel verwalten</a>';
echo "</fieldset></td></tr>";
if($is_mitarbeiter)