Merge branch 'master' into feature-15795/DVUH_Mehrsprachigkeit

This commit is contained in:
KarpAlex
2021-11-04 12:05:32 +01:00
31 changed files with 2382 additions and 1980 deletions
@@ -297,6 +297,13 @@ class InfoCenter extends Auth_Controller
}
$persondata = $this->_loadPersonData($person_id);
$checkPerson = $this->PersonModel->checkDuplicate($person_id);
if (isError($checkPerson)) show_error(getError($checkPerson));
$duplicate = array('duplicated' => getData($checkPerson));
$prestudentdata = $this->_loadPrestudentData($person_id);
$this->DokumentModel->addOrder('bezeichnung');
@@ -305,7 +312,8 @@ class InfoCenter extends Auth_Controller
$data = array_merge(
$persondata,
$prestudentdata,
$dokumentdata
$dokumentdata,
$duplicate
);
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
@@ -734,7 +742,7 @@ class InfoCenter extends Auth_Controller
if (hasData($lastStatus) && hasData($statusgrresult))
{
//check if still Interessent
//check if still Interessent, Bewerber or Wartender
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::BEWERBERSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::WARTENDER)
@@ -2134,17 +2142,18 @@ class InfoCenter extends Auth_Controller
{
$statusgrund = $this->input->post('statusgrund');
$studiengang = $this->input->post('studiengang');
$abgeschickt = $this->input->post('abgeschickt');
$personen = $this->input->post('personen');
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
if ($statusgrund === 'null' || $studiengang === 'null' || empty($personen))
$this->terminateWithJsonError("Bitte Statusgrund, Studiengang und Personen auswählen.");
if ($statusgrund === 'null' || $studiengang === 'null' || $abgeschickt === 'null' || empty($personen))
$this->terminateWithJsonError("Bitte füllen Sie alle Felder aus");
foreach($personen as $person)
{
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester);
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt);
if(!hasData($prestudent))
if (!hasData($prestudent))
continue;
$prestudentData = getData($prestudent);
+3 -3
View File
@@ -312,10 +312,10 @@ class UDFLib
{
$resultElement->{$columnName} = $columnValue;
}
}
// And finally remove the UDFs column
unset($resultElement->{self::COLUMN_NAME});
// And finally remove the UDFs column
unset($resultElement->{self::COLUMN_NAME});
}
}
/**
+12 -2
View File
@@ -611,7 +611,7 @@ class Prestudent_model extends DB_Model
));
}
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester, $abgeschickt)
{
$query = "SELECT ps.prestudent_id
FROM public.tbl_prestudentstatus pss
@@ -621,7 +621,17 @@ class Prestudent_model extends DB_Model
WHERE ps.person_id = ?
AND UPPER((sg.typ || sg.kurzbz) || ':' || sp.orgform_kurzbz) = ?
AND pss.studiensemester_kurzbz = ?
";
AND";
if ($abgeschickt === 'true')
$query .= " EXISTS";
else
$query .= " NOT EXISTS";
$query .= " (SELECT 1 FROM public.tbl_prestudentstatus spss
JOIN public.tbl_prestudent sps USING(prestudent_id)
WHERE sps.prestudent_id = ps.prestudent_id
AND spss.bewerbung_abgeschicktamum IS NOT NULL)";
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
}
@@ -265,4 +265,19 @@ class Person_model extends DB_Model
return success($result->vorname. ' '. $result->nachname);
}
public function checkDuplicate($person_id)
{
$qry = "SELECT sp.person_id
FROM public.tbl_person p
LEFT JOIN public.tbl_person sp ON p.vorname = sp.vorname
AND p.nachname = sp.nachname
AND p.gebdatum = sp.gebdatum
JOIN public.tbl_prestudent ps ON sp.person_id = ps.person_id
JOIN public.tbl_prestudentstatus pss ON ps.prestudent_id = pss.prestudent_id
WHERE p.person_id = ? AND sp.person_id != ? AND pss.status_kurzbz = ?";
return $this->execQuery($qry, array($person_id, $person_id, 'Abbrecher'));
}
}
@@ -2,7 +2,7 @@
$STUDIENSEMESTER = $studiensemester_selected;
$ORGANISATIONSEINHEIT = (isset($organisationseinheit_selected) && !is_null($organisationseinheit_selected)) ? array($organisationseinheit_selected) : $organisationseinheit;
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8,9,10';
$query = '
SELECT
@@ -160,7 +160,7 @@ $this->load->view(
'Ausbildungssemester_widget',
array(
DropdownWidget::SELECTED_ELEMENT => $ausbildungssemester_selected,
'number_semester' => 6
'number_semester' => 10
),
array(
'name' => 'ausbildungssemester',
@@ -2,7 +2,7 @@
$STUDIENSEMESTER = $studiensemester_selected;
$STUDIENGANG = (isset($studiengang_selected) && !is_null($studiengang_selected)) ? array($studiengang_selected) : $studiengang;
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8';
$AUSBILDUNGSSEMESTER = (isset($ausbildungssemester_selected) && !is_null($ausbildungssemester_selected)) ? $ausbildungssemester_selected : '1,2,3,4,5,6,7,8,9,10';
$query = '
SELECT
@@ -6,7 +6,7 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\', \'Interessent rejected\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\'';
$LOGDATA_NAME_PARKED = '\'Parked\'';
$LOGDATA_NAME_ONHOLD = '\'Onhold\'';
$LOGTYPE_KURZBZ = '\'Processstate\'';
@@ -14,6 +14,7 @@
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$AKTE_TYP = '\'identity\', \'zgv_bakk\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$query = '
SELECT
@@ -33,7 +34,7 @@
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -42,7 +43,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "LastActionType",
(
@@ -59,7 +60,7 @@
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -254,13 +255,14 @@
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
@@ -439,13 +441,13 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
else
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
return $datasetRaw;
@@ -101,6 +101,22 @@
</div>
</div>
</div>
<?php if (!is_null($duplicated)): ?>
<div class="row alert-warning">
<h3 class="header col-lg-12">
<?php echo $this->p->t('global', 'bewerberVorhanden') . ':'; ?>
</h3>
<div class="text-left col-lg-12">
<?php
foreach ($duplicated as $duplicate)
{
echo 'Person ID: ' . $duplicate->person_id . '<br />';
}
?>
</div>
</div>
<?php endif; ?>
<br/>
<section>
<div class="row">
@@ -5,13 +5,14 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\'';
$REJECTED_STATUS = '\'Abgewiesener\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\'';
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$query = '
$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
@@ -27,7 +28,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -36,7 +37,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "LastActionType",
(
@@ -45,7 +46,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -231,13 +232,14 @@
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
@@ -410,13 +412,13 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
else
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
return $datasetRaw;
@@ -5,11 +5,12 @@
$INTERESSENT_STATUS = '\'Interessent\'';
$STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\'';
$ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz');
$STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\'';
$ORG_NAME = '\'InfoCenter\'';
$query = '
$query = '
SELECT
p.person_id AS "PersonId",
p.vorname AS "Vorname",
@@ -25,7 +26,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "LastAction",
(
@@ -34,7 +35,7 @@
WHERE l.taetigkeit_kurzbz IN('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
) AS "User/Operator",
(
@@ -182,13 +183,14 @@
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_organisationseinheit.bezeichnung = '.$ORG_NAME.'
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
ORDER BY l.log_id DESC
LIMIT 1
)
LIMIT 1
@@ -347,13 +349,13 @@
$datasetRaw->{'ZGVMNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
if ($datasetRaw->{'InfoCenterMitarbeiter'} === null)
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
else
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
return $datasetRaw;
+31 -4
View File
@@ -710,6 +710,10 @@ echo '
else
{
var pausenstart = Math.floor((spanne/2-15)+(von_stunden*60+parseInt(von_minuten)));
if (pausenstart%15 !== 0)
{
pausenstart = Math.round(pausenstart/10)*10;
}
var pausenstart_stunde = Math.floor(pausenstart/60);
var pausenstart_minute = pausenstart - pausenstart_stunde*60;
pausenstart_stunde = (pausenstart_stunde < 10 ? "0"+pausenstart_stunde : pausenstart_stunde);
@@ -2177,6 +2181,7 @@ function exportProjectOverviewAsCSV($user, $delimiter = ',')
function getDataForProjectOverviewCSV($user)
{
$db = new basis_db();
$projects_of_user = new projekt();
$projects = $projects_of_user->getProjekteListForMitarbeiter($user);
@@ -2184,10 +2189,12 @@ function getDataForProjectOverviewCSV($user)
if($projektphase->getProjectphaseForMitarbeiter($user))
$projektphasen = $projektphase->result;
else
$projetkphasen = array();
$projektphasen = array();
$csvData = array();
$exists = @$db->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
foreach ($projects as $project)
{
$titel = $project->titel;
@@ -2197,7 +2204,15 @@ function getDataForProjectOverviewCSV($user)
$beginn = $project->beginn;
$ende = $project->ende;
$csvData[] = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
if ($exists)
{
$sap_projekt_id = $project->sap_project_id;
$inhalt[] = $sap_projekt_id;
}
$csvData[] = $inhalt;
}
foreach ($projektphasen as $prjp)
@@ -2210,14 +2225,26 @@ function getDataForProjectOverviewCSV($user)
$projekt_phase_id = $prjp->projektphase_id;
$beginn = $prjp->start;
$ende = $prjp->ende;
$inhalt = array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende);
array_push($csvData, array($titel, $projekt_kurzbz, $projekt_phase, $projekt_phase_id, $beginn, $ende) );
if ($exists)
{
$project_task_id = $prjp->project_task_id;
$inhalt[] = $project_task_id;
}
array_push($csvData, $inhalt);
}
}
sort($csvData);
//headers schreiben
array_unshift($csvData, array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE'));
$header = array('PROJEKT', 'PROJEKT KURZBEZEICHNUNG', 'PROJEKTPHASE', 'PROJEKTPHASEN ID', 'START', 'PROJEKT ENDE');
if ($exists)
$header[] = 'SAP PROJEKTNUMMER';
array_unshift($csvData, $header);
return $csvData;
}
?>
@@ -750,7 +750,7 @@ foreach ($projektnames as $projektname)
}
$worksheet->setColumn($spalte, $spalte, $phasewidth);
$worksheet->write($zeile, $spalte++, $projekt->beschreibung, $format_cell_leftrightline);
$worksheet->writeString($zeile, $spalte++, $projekt->beschreibung, $format_cell_leftrightline);
}
}
else
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -713,7 +713,7 @@ class konto extends basis_db
$qry = "select sum(betrag) as betrag from public.tbl_konto
join public.tbl_benutzer benutzer using(person_id)
where uid=".$this->db_add_param($uid)." and studiensemester_kurzbz = ".$this->db_add_param($stsem)."
and buchungstyp_kurzbz = 'Studiengebuehr' and betrag > 0";
and buchungstyp_kurzbz in('Studiengebuehr','StudiengebuehrAnzahlung','StudiengebuehrRestzahlung') and betrag > 0";
if($studiengang_kz!= null)
$qry.=" and studiengang_kz = ".$this->db_add_param($studiengang_kz, FHC_INTEGER).";";
+1143 -1142
View File
File diff suppressed because it is too large Load Diff
+43 -4
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2006 fhcomplete.org
/* Copyright (C) 2021 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
@@ -16,9 +16,10 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
* Stefan Puraner <puraner@technikum-wien.at>
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>,
* Stefan Puraner <puraner@technikum-wien.at> and
* Manuela Thamer <manuela.thamer@technikum-wien.at>
*/
require_once(dirname(__FILE__) . '/basis_db.class.php');
require_once(dirname(__FILE__) . '/functions.inc.php');
@@ -2458,6 +2459,44 @@ class lehrveranstaltung extends basis_db
}
}
/**
* Laedt den LV-Leiter einer Lehrveranstaltung
* ist keiner der Lektoren als LV-Leitung eingetragen, wird Null zurückgegeben
* @param int $lehrveranstaltung_id ID der Lehrveranstaltung.
* @param char $studiensemester_kurzbz Studiensemester.
* @return char $mitarbeiter_uid UID des Mitarbeiters oder NULL, wenn keine LV-Leitung vorhanden
*/
public function getEingetrageneLVLeitung($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$qry = "SELECT
mitarbeiter_uid
FROM
lehre.tbl_lehreinheit
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
WHERE
tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id)."
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND lehrfunktion_kurzbz='LV-Leitung';";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
return $row->mitarbeiter_uid;
}
else
{
$this->errormsg = 'Keine Eintrag gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Liefert den Koordinator einer Lehrveranstaltung
* @param $lehrveranstaltung_id
+72 -24
View File
@@ -47,6 +47,7 @@ class projekt extends basis_db
public $farbe;
public $anzahl_ma; // integer
public $aufwand_pt; // integer
public $sap_project_id;
/**
@@ -419,41 +420,86 @@ class projekt extends basis_db
function getProjekteListForMitarbeiter($mitarbeiter_uid, $projektphasen = false)
{
$projectList = array();
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
$qry = "SELECT DISTINCT
tbl_projekt.*
FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
WHERE (beginn<=now() or beginn is null)
";
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_id
";
}
$qry .= "FROM
fue.tbl_ressource
JOIN fue.tbl_projekt_ressource USING(ressource_id)
JOIN fue.tbl_projekt USING(projekt_kurzbz)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project USING(projekt_id)
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE (beginn<=now() or beginn is null)
AND (ende + interval '1 month 1 day' >=now() OR ende is null)
AND
(
mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid) . " OR
student_uid=" . $this->db_add_param($mitarbeiter_uid) . "
)";
)
";
if ($exists)
{
$qry .= "AND tbl_projects_timesheets_project.projektphase_id IS NULL
";
}
if ($projektphasen == true)
{
$qry .= "UNION
SELECT DISTINCT
tbl_projekt.*
";
SELECT DISTINCT
tbl_projekt.*
FROM
fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) OR (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_task_id
";
}
$qry .= "FROM fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) OR (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
";
};
$qry .= "AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if ($result = $this->db_query($qry)) {
while ($row = $this->db_fetch_object($result)) {
@@ -466,6 +512,8 @@ class projekt extends basis_db
$obj->beginn = $row->beginn;
$obj->ende = $row->ende;
$obj->oe_kurzbz = $row->oe_kurzbz;
if ($exists)
$obj->sap_project_id = $row->project_id;
$this->result[] = $obj;
+38 -19
View File
@@ -48,6 +48,7 @@ class projektphase extends basis_db
public $insertvon; // bigint
public $updateamum; // timestamp
public $updatevon; // bigint
public $project_task_id;
/**
@@ -685,26 +686,42 @@ public function getFortschritt($projektphase_id)
public function getProjectphaseForMitarbeiter($mitarbeiter_uid)
{
$projecphasetList = array();
$exists = @$this->db_query('SELECT 1 FROM sync.tbl_projects_timesheets_project LIMIT 1;');
$qry = "
SELECT
DISTINCT tbl_projektphase.*,tbl_projekt.titel
FROM
fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING (projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) AND (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
$qry = "SELECT DISTINCT tbl_projektphase.*,
tbl_projekt.titel
";
if ($exists)
{
$qry .= ", tbl_sap_projects_timesheets.project_task_id
";
}
$qry .= "FROM fue.tbl_projektphase
JOIN fue.tbl_projekt USING (projekt_kurzbz)
JOIN fue.tbl_projekt_ressource USING(projektphase_id)
JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id)
";
if ($exists)
{
$qry .= "LEFT JOIN sync.tbl_projects_timesheets_project ON tbl_projects_timesheets_project.projektphase_id = tbl_projekt_ressource.projektphase_id
LEFT JOIN sync.tbl_sap_projects_timesheets USING(projects_timesheet_id)
";
}
$qry .= "WHERE
(
(
(tbl_projekt.beginn<=now() or tbl_projekt.beginn is null)
AND (tbl_projekt.ende + interval '1 month 1 day' >=now() OR tbl_projekt.ende is null)
) AND (
(tbl_projektphase.start<=now() or tbl_projektphase.start is null)
AND (tbl_projektphase.ende + interval '1 month 1 day' >=now() OR tbl_projektphase.ende is null)
)
)
AND mitarbeiter_uid=" . $this->db_add_param($mitarbeiter_uid);
if($result = $this->db_query($qry))
{
@@ -729,6 +746,8 @@ public function getFortschritt($projektphase_id)
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
if ($exists)
$obj->project_task_id = $row->project_task_id;
$this->result[] = $obj;
+1 -1
View File
@@ -510,7 +510,7 @@ class statistik extends basis_db
$this->html='';
$this->csv='';
$this->json=array();
set_time_limit(60);
set_time_limit(120);
if($this->sql!='')
{
+2 -1
View File
@@ -2,7 +2,8 @@
$this->phrasen['lehre/keineLektorenZugeordnet']='Derzeit sind keine Lektoren für dieses Fach zugeteilt';
$this->phrasen['lehre/lehrveranstaltungsinformation']='Lehrveranstaltungsinformation';
$this->phrasen['lehre/lehrbeauftragter']='Lehrbeauftragte(r)';
$this->phrasen['lehre/lehrbeauftragter']='Lehrbeauftragte*r';
$this->phrasen['lehre/lvleitung']='LV-Leiter*in';
$this->phrasen['lehre/lvInfoBearbeiten']='Bearbeiten';
$this->phrasen['lehre/semesterplan']='Semesterplan';
+1
View File
@@ -3,6 +3,7 @@ $this->phrasen['lehre/keineLektorenZugeordnet']='Currently there are no lecturer
$this->phrasen['lehre/lehrveranstaltungsinformation']='Course Information';
$this->phrasen['lehre/lehrbeauftragter']='Lecturer(s)';
$this->phrasen['lehre/lvleitung']='Head of Course';
$this->phrasen['lehre/lvInfoBearbeiten']='Edit';
$this->phrasen['lehre/semesterplan']='Semesterplan';
@@ -49,6 +49,11 @@ var InfocenterPersonDataset = {
'<select class="form-control auswahlAbsageStg" style="width:auto; float:left;">' +
'<option value="null" selected="selected"> Studiengang </option>' +
'</select>' +
'<select class="form-control auswahlAbsageAbgeschickt" style="width:auto; float:left;">' +
'<option value="null" selected="selected"> Bewerbung abgeschickt? </option>' +
'<option value="true"> Ja </option>' +
'<option value="false"> Nein </option>' +
'</select>' +
'<button class="btn btn-default auswahlAbsageBtn" style="float:left"> Absage </button>';
InfocenterPersonDataset.getAbsageData();
@@ -327,6 +332,7 @@ var InfocenterPersonDataset = {
var statusgrund = $('.absgstatusgrund').val();
var studiengang = $('.auswahlAbsageStg').val();
var abgeschickt = $('.auswahlAbsageAbgeschickt').val();
var personen = [];
@@ -340,7 +346,8 @@ var InfocenterPersonDataset = {
{
'statusgrund': statusgrund,
'studiengang': studiengang,
'personen' : personen
'personen' : personen,
'abgeschickt' : abgeschickt
},
{
successCallback: function(data, textStatus, jqXHR) {
+2 -2
View File
@@ -35,7 +35,7 @@ require_once('../include/organisationseinheit.class.php');
// raumtypen holen
$org=new organisationseinheit();
$org->getAll();
$org->getAll(null, null, 'organisationseinheittyp_kurzbz, bezeichnung');
$rdf_url='http://www.technikum-wien.at/organisationseinheit';
@@ -64,4 +64,4 @@ foreach ($org->result as $oe)
?>
</RDF:Seq>
</RDF:RDF>
</RDF:RDF>
+14
View File
@@ -1725,6 +1725,20 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
}
}
// UPDATE Berechtigungen fuer vilesci User erteilen fuer tbl_person_lock
if ($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_person_lock' AND table_schema='system' AND grantee='vilesci' AND privilege_type='UPDATE'"))
{
if ($db->db_num_rows($result) === 0)
{
$qry = "GRANT UPDATE ON system.tbl_person_lock TO vilesci;";
if(!$db->db_query($qry))
echo '<strong>system.tbl_person_lock Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
echo 'UPDATE Recht fuer system.tbl_person_lock fuer vilesci user gesetzt ';
}
}
/**
* Kommentare fuer Datenbanktabellen
+126 -6
View File
@@ -888,6 +888,26 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'bewerberVorhanden',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'BewerberIn bereits vorhanden',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Applicant already available',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -12560,13 +12580,13 @@ array(
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Zertifikat als PDF hochladen",
'text' => "Zertifikat als PDF hochladen (nur mit QR-Code, kein gescanntes Zertifikat)",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "upload certificate pdf",
'text' => "upload certificate pdf (only with qrcode, no scanned certificate)",
'description' => '',
'insertvon' => 'system'
)
@@ -12580,13 +12600,13 @@ array(
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Validierungsergebnis / aktuelles Gültigkeitsdatum",
'text' => "Validierungsergebnis / gespeichertes Gültigkeitsdatum",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "validation result / current valid date",
'text' => "validation result / stored valid date",
'description' => '',
'insertvon' => 'system'
)
@@ -12680,13 +12700,13 @@ array(
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Das Zertifikat konnte nicht verifiziert werden.",
'text' => "Das Zertifikat konnte nicht verifiziert werden. Stellen Sie bitte sicher, dass ein QR-Code enthalten ist.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "certificate could not be verified.",
'text' => "certificate could not be verified. Please make sure it contains a qr-code.",
'description' => '',
'insertvon' => 'system'
)
@@ -12772,6 +12792,106 @@ array(
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'UploadSuccessful',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Das Gültigkeitsdatum wurde erfolgreich gespeichert.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "validity date has been successfully stored.",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'UploadFailed',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Es wurde kein Gültigkeitsdatum gespeichert.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "validity date has not been stored.",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'uploadbeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Hier kann ein Digitales COVID-Zertifikat der EU mit QR-Code selbst erfasst werden.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "an EU Digital COVID Certificate with QR code can be self registered here.",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'manualbeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Falls das Zertifikat keinen QR-Code enthält oder die Selbst-Erfassung fehlschlägt, kann das Zertifkat beim Empfang manuell erfasst werden.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "if the certificate does not contain a QR code or self registration fails, the certificate can be manually registered at the front desk.",
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'supportbeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Bei technischen Problemen kontaktieren Sie bitte: ",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "in case of technical issues please contact: ",
'description' => '',
'insertvon' => 'system'
)
)
),
//******************* ÖH-Beitragsverwaltung
array(
'app' => 'core',
+26 -16
View File
@@ -242,29 +242,37 @@ if($result = $db->db_query($qry))
$zustell_strasse = $rowzustelladr->strasse;
$zustell_nation = $rowzustelladr->nation;
}
// eMail-Adresse
$qry_mail = "
// FH eMail-Adresse FH aus UID@Domain
$email = '';
if ($row->student_uid != '')
{
$email = $row->student_uid. '@'. DOMAIN;
}
// private eMail-Adresse
$email_privat = '';
$qry_privmail = "
SELECT kontakt
FROM public.tbl_kontakt
WHERE kontakttyp = 'email'
AND zustellung = TRUE
AND person_id = ". $db->db_add_param($row->pers_id). "
ORDER BY insertamum DESC LIMIT 1;
WHERE zustellung = TRUE
AND kontakttyp = 'email'
AND person_id=". $db->db_add_param($row->pers_id). "
ORDER BY insertamum DESC
LIMIT 1;
";
$email = '';
if ($result_email = $db->db_query($qry_mail))
if ($privmail_result = $db->db_query($qry_privmail))
{
if($db->db_num_rows($result_email) == 1)
if($db->db_num_rows($privmail_result) == 1)
{
if($row_mail = $db->db_fetch_object($result_email))
if ($row_privmail = $db->db_fetch_object($privmail_result))
{
$email = $row_mail->kontakt;
$email_privat = $row_privmail->kontakt;
}
}
}
if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
@@ -620,7 +628,8 @@ if($result = $db->db_query($qry))
$datei.="
<SVNR>".$row->svnr."</SVNR>";
}
if($row->ersatzkennzeichen!='')
// Ersatzkennzeichen nur inkludieren wenn svnr nicht gesetzt
if($row->ersatzkennzeichen!='' && $row->svnr == null)
{
$datei.="
<ErsKz>".$row->ersatzkennzeichen."</ErsKz>";
@@ -648,7 +657,8 @@ if($result = $db->db_query($qry))
}
$datei.="
<eMailAdresse>". $email. "</eMailAdresse>
<eMailAdresse>". $email_privat. "</eMailAdresse>
<eMailAdresseBE>". $email. "</eMailAdresseBE>
<ZugangCode>".$row->zgv_code."</ZugangCode>
<ZugangDatum>".date("dmY", $datumobj->mktime_fromdate($row->zgvdatum))."</ZugangDatum>";
+35 -5
View File
@@ -758,6 +758,29 @@ function GenerateXMLStudentBlock($row)
$email = $row->student_uid. '@'. DOMAIN;
}
// private eMail-Adresse
$email_privat = '';
$qry_privmail = "
SELECT kontakt
FROM public.tbl_kontakt
WHERE zustellung = TRUE
AND kontakttyp = 'email'
AND person_id=". $db->db_add_param($row->pers_id). "
ORDER BY insertamum DESC
LIMIT 1;
";
if ($privmail_result = $db->db_query($qry_privmail))
{
if($db->db_num_rows($privmail_result) == 1)
{
if ($row_privmail = $db->db_fetch_object($privmail_result))
{
$email_privat = $row_privmail->kontakt;
}
}
}
if($row->gebdatum<'1920-01-01' OR $row->gebdatum==null OR $row->gebdatum=='')
{
$error_log.=(!empty($error_log)?', ':'')."Geburtsdatum ('".$row->gebdatum."')";
@@ -1263,7 +1286,9 @@ function GenerateXMLStudentBlock($row)
$datei .= "
<SVNR>" . $row->svnr . "</SVNR>";
}
if ($row->ersatzkennzeichen != '')
// Ersatzkennzeichen nur inkludieren wenn svnr nicht gesetzt
if ($row->ersatzkennzeichen != '' && $row->svnr == null)
{
$datei .= "
<ErsKz>" . $row->ersatzkennzeichen . "</ErsKz>";
@@ -1296,11 +1321,16 @@ function GenerateXMLStudentBlock($row)
";
}
if ($email_privat != '')
{
$datei .= "
<eMailAdresse>" . $email_privat . "</eMailAdresse>";
}
if ($email != '')
{
$datei .= "
<eMailAdresse>" . $email . "</eMailAdresse>
";
<eMailAdresseBE>" . $email . "</eMailAdresseBE>";
}
if(!$ausserordentlich)
@@ -1531,12 +1561,12 @@ function GenerateXMLStudentBlock($row)
if ($aktstatus != 'Incoming' && $rowio->ects_erworben != '')
{
$datei.="
<ECTSerworben>".$rowio->ects_erworben."</ECTSerworben>";
<ECTSerworben>".round($rowio->ects_erworben)."</ECTSerworben>";
}
if ($aktstatus != 'Incoming' && $rowio->ects_angerechnet != '')
{
$datei.="
<ECTSangerechnet>".$rowio->ects_angerechnet."</ECTSangerechnet>";
<ECTSangerechnet>".round($rowio->ects_angerechnet)."</ECTSangerechnet>";
}
foreach ($aufenthaltfoerderung_code_arr as $aufenthaltfoerderung_code)
{
+1 -1
View File
@@ -149,7 +149,7 @@ $datum_obj = new datum();
{
echo '<span class="ok">Daten erfolgreich gespeichert</span>';
echo "<script type='text/javascript'>\n";
echo " parent.uebersicht_service.location.href='service_uebersicht.php?oe_kurzbz=$oe_kurzbz';";
//echo " parent.uebersicht_service.location.href='service_uebersicht.php?oe_kurzbz=$oe_kurzbz';";
echo "</script>\n";
$action='update';
$service_id = $service->service_id;
+5 -3
View File
@@ -51,9 +51,9 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
{
$("#myTable").tablesorter(
{
sortList: [[3,0],[2,0]],
widgets: [\'zebra\'],
headers: {8:{sorter:false}}
sortList: [[2,0]],
widgets: [\'zebra\',\'filter\', \'stickyHeaders\'],
headers: {9:{sorter:false,filter: false}}
});
}
);
@@ -127,6 +127,7 @@ echo '<table class="tablesorter" id="myTable">
<th>Beschreibung</th>
<th>Organisationseinheit</th>
<th>Kategorie</th>
<th>Content ID</th>
<th>Design</th>
<th>Betrieb</th>
<th>Operativ</th>
@@ -144,6 +145,7 @@ foreach($service->result as $row)
echo '<td>',$row->oe_kurzbz,'</td>';
$title = (isset($servicekategorie_arr[$row->servicekategorie_kurzbz])?$servicekategorie_arr[$row->servicekategorie_kurzbz]:'');
echo '<td><span title="'.$service->convert_html_chars($title).'">',$row->servicekategorie_kurzbz,'</span></td>';
echo '<td>',$row->content_id,'</td>';
echo '<td>',$row->design_uid,'</td>';
echo '<td>',$row->betrieb_uid,'</td>';
echo '<td>',$row->operativ_uid,'</td>';
+2 -2
View File
@@ -223,7 +223,7 @@ EOT;
</tr>
<tr valign="top">
<td rowspan="3">SQL</td>
<td rowspan="3"><textarea name="sql" cols="60" rows="5"><?php echo $statistik->sql ?></textarea></td>
<td rowspan="3"><textarea name="sql" cols="60" rows="5" style="width: 45vw; height: 100vh"><?php echo $statistik->sql ?></textarea></td>
<td></td>
<tr valign="top">
<td></td>
@@ -234,7 +234,7 @@ EOT;
<tr valign="top">
<td></td>
<td>Preferences</td>
<td><textarea name="preferences" cols="60" rows="5"><?php echo $statistik->preferences ?></textarea></td>
<td><textarea name="preferences" cols="60" rows="5" style="width: 40vw; height: 100vh"><?php echo $statistik->preferences ?></textarea></td>
<td></td>
<td></td>
<td></td>