Merge Branche Cristina

This commit is contained in:
ma0068
2021-09-02 11:35:17 +02:00
104 changed files with 4228 additions and 1365 deletions
+1 -1
View File
@@ -56,7 +56,7 @@
]
},
"devDependencies": {
"grunt": "^0.4.5",
"grunt": "^1.3.0",
"grunt-cli": "~0.1.13",
"grunt-contrib-clean": "^0.7.0",
"grunt-contrib-concat": "^0.5.1",
+1 -1
View File
@@ -1,5 +1,5 @@
# FH-Complete
* [FH-Complete Homepage](https://www.fhcomplete.org)
* [Wiki](https://wiki.fhcomplete.org/)
* [Wiki](https://wiki.fhcomplete.info/)
* [Changelog](CHANGELOG.md)
@@ -383,8 +383,8 @@ class LehrauftragJob extends JOB_Controller
} // Else if UID exists
else
{
// Search if studiensemester exists
$ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr, 'studiensemester_kurzbz'));
// Search if studiensemester exists inside the existing UID array
$ss_index = array_search($data['studiensemester_kurzbz'], array_column($mail_data_arr[$uid_index], 'studiensemester_kurzbz'));
// If studiensemester is new, add studiensemester to existing UID
if ($ss_index === false)
@@ -394,13 +394,6 @@ class LehrauftragJob extends JOB_Controller
$data[$i]
);
}
// Else if studiensemester exists
else
{
// Add corresponding data to existing studiensemester of UID
$mail_data_arr[$uid_index]['studiensemester_kurbz'][] = $data[$i];
}
}
}
}
@@ -220,7 +220,7 @@ class Pruefungsprotokoll extends Auth_Controller
$nullfields = array('uhrzeit', 'endezeit', 'abschlussbeurteilung_kurzbz', 'protokoll');
foreach ($data as $idx => $item)
{
if (in_array($idx, $nullfields) & $item === '')
if (in_array($idx, $nullfields) && $item === '')
$data[$idx] = null;
}
@@ -270,7 +270,6 @@ class Lehrauftrag extends Auth_Controller
private function _sendMail($lehrvertrag_data_arr)
{
// Cluster data of new lehrvertraege as needed to send mail
$lehrvertrag_data_arr = $this->_cluster_newVertragData($lehrvertrag_data_arr);
foreach ($lehrvertrag_data_arr as $lehrvertrag_data)
{
@@ -70,6 +70,7 @@ class InfoCenter extends Auth_Controller
const INTERESSENTSTATUS = 'Interessent';
const ABGEWIESENERSTATUS = 'Abgewiesener';
const BEWERBERSTATUS = 'Bewerber';
const WARTENDER = 'Wartender';
// Statusgruende for which no Studiengangsfreigabemessage should be sent
private $_statusgruendeNoStgFreigabeMessage = array('FIT Programm', 'FIT program', 'FIT programme');
@@ -108,7 +109,9 @@ class InfoCenter extends Auth_Controller
'setOnHold' => 'infocenter:rw',
'removeOnHold' => 'infocenter:rw',
'getStudienjahrEnd' => 'infocenter:r',
'setNavigationMenuArrayJson' => 'infocenter:r'
'setNavigationMenuArrayJson' => 'infocenter:r',
'getAbsageData' => 'infocenter:r',
'saveAbsageForAll' => 'infocenter:rw'
)
);
@@ -433,11 +436,14 @@ class InfoCenter extends Auth_Controller
* Saves Absage for Prestudent including the reason for the Absage (statusgrund).
* inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
*/
public function saveAbsage()
public function saveAbsage($prestudent_id = null, $statusgrund = null)
{
$json = null;
$prestudent_id = $this->input->post('prestudent_id');
$statusgrund = $this->input->post('statusgrund');
if (is_null($prestudent_id))
$prestudent_id = $this->input->post('prestudent_id');
if (is_null($statusgrund))
$statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -446,8 +452,10 @@ class InfoCenter extends Auth_Controller
if (hasData($lastStatus) && hasData($statusgrresult))
{
//check if still Interessent and not freigegeben yet
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS && !isset($lastStatus->retval[0]->bestaetigtam))
//check if still Interessent
if ($lastStatus->retval[0]->status_kurzbz === self::INTERESSENTSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::BEWERBERSTATUS
|| $lastStatus->retval[0]->status_kurzbz === self::WARTENDER)
{
$result = $this->PrestudentstatusModel->insert(
array(
@@ -1358,6 +1366,8 @@ class InfoCenter extends Auth_Controller
|| isset($zgvpruefung->prestudentstatus->bestaetigtam)
|| $zgvpruefung->prestudentstatus->status_kurzbz != self::INTERESSENTSTATUS;
$zgvpruefung->abgewiesener = $zgvpruefung->prestudentstatus->status_kurzbz === self::ABGEWIESENERSTATUS;
//wether prestudent was freigegeben for RT/Stg
$zgvpruefung->isRtFreigegeben = false;
$zgvpruefung->isStgFreigegeben = false;
@@ -1427,8 +1437,8 @@ class InfoCenter extends Auth_Controller
$this->_sortPrestudents($zgvpruefungen);
$abwstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::ABGEWIESENERSTATUS))->retval;
$intstatusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => self::INTERESSENTSTATUS))->retval;
$abwstatusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$intstatusgruende = $this->StatusgrundModel->getStatus(self::INTERESSENTSTATUS)->retval;
$data = array (
'zgvpruefungen' => $zgvpruefungen,
@@ -1687,4 +1697,45 @@ class InfoCenter extends Auth_Controller
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail');
}
}
public function getAbsageData()
{
$this->load->model('organisation/Studiengang_model', 'StudiengangModel');
$statusgruende = $this->StatusgrundModel->getStatus(self::ABGEWIESENERSTATUS, true)->retval;
$studienSemester = $this->variablelib->getVar('infocenter_studiensemester');
$studiengaenge = $this->StudiengangModel->getStudiengaengeWithOrgForm(['b', 'm'], $studienSemester);
$data = array (
'statusgruende' => $statusgruende,
'studiengaenge' => $studiengaenge->retval
);
$this->outputJsonSuccess($data);
}
public function saveAbsageForAll()
{
$statusgrund = $this->input->post('statusgrund');
$studiengang = $this->input->post('studiengang');
$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.");
foreach($personen as $person)
{
$prestudent = $this->PrestudentModel->getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester);
if(!hasData($prestudent))
continue;
$prestudentData = getData($prestudent);
$this->saveAbsage($prestudentData[0]->prestudent_id, $statusgrund);
}
$this->outputJsonSuccess("Success");
}
}
+4 -2
View File
@@ -167,7 +167,7 @@ class LDAPLib
}
// LDAP connection
$ldapConnection = @ldap_connect($ldapConfigs[self::SERVER], $ldapConfigs[self::PORT]);
$ldapConnection = @ldap_connect($ldapConfigs[self::SERVER].':'.$ldapConfigs[self::PORT]);
if ($ldapConnection) // if success
{
// Sets the LDAP protocol version
@@ -220,7 +220,9 @@ class LDAPLib
}
else // Connection error
{
return error(ldap_error($ldapConnection));
return error(
'An error occurred while connecting to the LDAP server: '.$ldapConfigs[self::SERVER].':'.$ldapConfigs[self::PORT]
);
}
}
}
+2 -2
View File
@@ -612,9 +612,9 @@ class Messages_model extends CI_Model
if (!isEmptyString($vorlage_kurzbz))
{
$this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel');
$this->VorlagestudiengangModel->addOrder('version','DESC');
$this->VorlagestudiengangModel->addOrder('version', 'DESC');
$getVorlage = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz));
$getVorlage = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz, 'aktiv' => true));
}
return $getVorlage;
@@ -581,4 +581,19 @@ class Prestudent_model extends DB_Model
return $this->execQuery($query, array($person_id));
}
public function getPrestudentByStudiengangAndPerson($studiengang, $person, $studienSemester)
{
$query = "SELECT ps.prestudent_id
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE ps.person_id = ?
AND UPPER((sg.typ || sg.kurzbz) || ':' || sp.orgform_kurzbz) = ?
AND pss.studiensemester_kurzbz = ?
";
return $this->execQuery($query, array($person, $studiengang, $studienSemester));
}
}
@@ -11,4 +11,18 @@ class Statusgrund_model extends DB_Model
$this->dbTable = "public.tbl_status_grund";
$this->pk = "statusgrund_id";
}
public function getStatus($status_kurzbz = null, $aktiv = null)
{
$this->addOrder('bezeichnung_mehrsprachig');
$where = array();
if (!is_null($status_kurzbz))
$where['status_kurzbz'] = $status_kurzbz;
if (!is_null($aktiv))
$where['aktiv'] = $aktiv;
$status = $this->loadWhere($where);
return success($status->retval);
}
}
@@ -41,4 +41,23 @@ class Projektbetreuer_model extends DB_Model
return error ('Incorrect parameter type');
}
}
/**
* Get Projektbetreuer data by authentification token
* @param $zugangstoken
* @return object
*/
public function getBetreuerByToken($zugangstoken)
{
$qry = '
SELECT tbl_projektbetreuer.person_id, tbl_projektbetreuer.projektarbeit_id, student_uid
FROM lehre.tbl_projektbetreuer
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
WHERE zugangstoken = ? AND zugangstoken_gueltigbis >= NOW()
ORDER BY tbl_projektbetreuer.insertamum DESC, projektarbeit_id DESC
LIMIT 1
';
return $this->execQuery($qry, array($zugangstoken));
}
}
@@ -481,4 +481,18 @@ class Studiengang_model extends DB_Model
return $this->loadWhere($condition);
}
public function getStudiengaengeWithOrgForm($typ, $semester)
{
$query = "SELECT DISTINCT (UPPER(sg.typ || sg.kurzbz || ':' || sp.orgform_kurzbz)) AS Studiengang
FROM public.tbl_studiengang sg
JOIN lehre.tbl_studienordnung USING (studiengang_kz)
JOIN lehre.tbl_studienplan sp USING (studienordnung_id)
JOIN lehre.tbl_studienplan_semester spsem USING (studienplan_id)
WHERE sp.aktiv = TRUE AND sg.aktiv = TRUE AND sg.typ IN ?
AND spsem.studiensemester_kurzbz = ?
ORDER BY Studiengang";
return $this->execQuery($query, array($typ, $semester));
}
}
@@ -13,6 +13,11 @@ class Benutzer_model extends DB_Model
$this->hasSequence = false;
}
/**
* Gets active Benutzer from person_id
* @param $person_id
* @return object
*/
public function getFromPersonId($person_id)
{
return $this->loadWhere(array('person_id' => $person_id, 'aktiv' => true));
@@ -189,7 +189,7 @@ $this->load->view(
<div class="col-xs-4 col-md-offset-0 col-md-4">
<div class="input-group">
<input id="username" type="hidden" autocomplete="username" value=""><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="username" autocomplete="username" style="position: absolute; opacity: 0;"><!-- this is to prevent Chrome autofilling a random input field with the username-->
<input id="password" type="password" autocomplete="new-password" class="form-control" placeholder="CIS-<?php echo ucfirst($this->p->t('password', 'password')); ?>">
<span class="input-group-btn">
<button id="accept-lehrauftraege" class="btn btn-primary pull-right"><?php echo ucfirst($this->p->t('global', 'lehrauftraegeAnnehmen')); ?></button>
@@ -32,7 +32,7 @@ SELECT
erteilt,
akzeptiert,
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -48,7 +48,7 @@ SELECT
)
) AS "bestellt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -64,7 +64,7 @@ SELECT
)
) AS "erteilt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -241,7 +241,7 @@ FROM
\'Betreuung\' AS "typ",
(betreuerart_kurzbz || \' \' ||
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
PUBLIC.tbl_person
JOIN PUBLIC.tbl_benutzer USING (person_id)
@@ -34,7 +34,7 @@ SELECT
erteilt,
akzeptiert,
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -50,7 +50,7 @@ SELECT
)
) AS "bestellt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -66,7 +66,7 @@ SELECT
)
) AS "erteilt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -128,7 +128,7 @@ FROM
(
SELECT
/* lehrauftraege also planned with dummies, therefore personalnummer is needed */
ma.personalnummer,
(ma.personalnummer::text),
lema.lehreinheit_id,
lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung",
@@ -240,7 +240,7 @@ FROM
pa.lehreinheit_id,
lv.lehrveranstaltung_id,
lv.bezeichnung AS "lv_bezeichnung",
pa.projektarbeit_id AS "projektarbeit_id",
(pa.projektarbeit_id::text) AS "projektarbeit_id",
le.studiensemester_kurzbz,
stg.studiengang_kz,
upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",
@@ -249,7 +249,7 @@ FROM
\'Betreuung\' AS "typ",
(betreuerart_kurzbz || \' \' ||
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
PUBLIC.tbl_person
JOIN PUBLIC.tbl_benutzer USING (person_id)
@@ -268,7 +268,7 @@ FROM
ELSE (oe.organisationseinheittyp_kurzbz ||
\' \' || oe.bezeichnung)
END AS "lv_oe_kurzbz",
(nachname || \' \' || vorname) AS "lektor",
(vorname || \' \' || nachname) AS "lektor",
TRUNC(pb.stunden, 1) AS "stunden",
TRUNC((pb.stunden * pb.stundensatz), 2) AS "betrag",
vertrag_id,
@@ -14,7 +14,7 @@ $query = '
datum AS "storniert",
(
SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -65,7 +65,7 @@ SELECT
erteilt,
akzeptiert,
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -81,7 +81,7 @@ SELECT
)
) AS "bestellt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -97,7 +97,7 @@ SELECT
)
) AS "erteilt_von",
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
public.tbl_person
JOIN public.tbl_benutzer benutzer USING (person_id)
@@ -281,7 +281,7 @@ FROM
\'Betreuung\' AS "typ",
(betreuerart_kurzbz || \' \' ||
(SELECT
vorname || \' \' || nachname
nachname || \' \' || vorname
FROM
PUBLIC.tbl_person
JOIN PUBLIC.tbl_benutzer USING (person_id)
@@ -48,6 +48,8 @@
name="period" value="today"><?php echo $this->p->t('ui','heute'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'lastWeek' ? 'active' : ''?>"
name="period" value="lastWeek"><?php echo $this->p->t('ui','letzteWoche'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'upcoming' ? 'active' : ''?>"
name="period" value="upcoming"><?php echo $this->p->t('ui','zukuenftige'); ?></button>
<button type="submit" class="btn btn-default <?php echo $period == 'all' ? 'active' : ''?>"
name="period" value="all"><?php echo $this->p->t('ui','alle'); ?></button>
</div>
@@ -19,9 +19,10 @@ FROM
WHERE
vorsitz='".$UID."'
AND (
'". $PERIOD. "' = 'today' AND datum = NOW()::date OR
'". $PERIOD. "' = 'lastWeek' AND datum = (NOW() - interval '1 week')::date OR
'". $PERIOD. "' = 'all' AND datum >= '2020-05-27'
('". $PERIOD. "' = 'today' AND datum = NOW()::date) OR
('". $PERIOD. "' = 'lastWeek' AND datum >= (NOW() - interval '1 week')::date AND datum < NOW()::date) OR
('". $PERIOD. "' = 'upcoming' AND datum > NOW()::date) OR
('". $PERIOD. "' = 'all' AND datum >= '2020-05-27')
)
ORDER BY datum, nachname, vorname
";
@@ -0,0 +1,35 @@
<div class="modal fade absageModalForAll"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsageForAll">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterFreigegebenData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -114,6 +114,12 @@
sg.studiengang_kz in('.$ADDITIONAL_STG.')
)
AND pss.studiensemester_kurzbz = '.$STUDIENSEMESTER.'
AND NOT EXISTS (
SELECT 1
FROM tbl_prestudentstatus spss
WHERE spss.prestudent_id = ps.prestudent_id
AND spss.status_kurzbz = '.$REJECTED_STATUS.'
)
LIMIT 1
) AS "StgAbgeschickt",
(
@@ -13,6 +13,7 @@
'ajaxlib' => true,
'filterwidget' => true,
'navigationwidget' => true,
'dialoglib' => true,
'phrases' => array(
'person' => array('vorname', 'nachname'),
'global' => array('mailAnXversandt'),
@@ -40,6 +41,7 @@
</div>
<div>
<?php $this->load->view('system/infocenter/infocenterReihungstestAbsolviertData.php'); ?>
<?php $this->load->view('system/infocenter/absageModal.php'); ?>
</div>
</div>
</div>
@@ -83,10 +83,11 @@
LIMIT 1
) AS "AnzahlAbgeschickt",
(
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sg.orgform_kurzbz)), \', \')
SELECT ARRAY_TO_STRING(ARRAY_AGG(DISTINCT UPPER(sg.typ || sg.kurzbz || \':\' || sp.orgform_kurzbz)), \', \')
FROM public.tbl_prestudentstatus pss
JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
JOIN lehre.tbl_studienplan sp USING(studienplan_id)
WHERE pss.status_kurzbz = '.$INTERESSENT_STATUS.'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
@@ -344,7 +344,7 @@
<?php
//Prestudenten cannot be abgewiesen or freigegeben if already done
if (!$infoonly) :
if (!$infoonly || (isset($zgvpruefung->prestudentstatus->status_kurzbz) && in_array($zgvpruefung->prestudentstatus->status_kurzbz, ['Bewerber', 'Wartender']))) :
?>
<div class="panel-footer solidtop">
<div class="row">
@@ -368,130 +368,97 @@
</button>
</span>
</div>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</div>
</div><!-- /.column-absage -->
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
<?php
$disabled = $disabledStg = $disabledTxt = $disabledStgTxt = '';
if (isEmptyString($zgvpruefung->prestudentstatus->bewerbung_abgeschicktamum))
{
$disabled = $disabledStg = 'disabled';
$disabledTxt = $disabledStgTxt = $this->p->t('infocenter', 'bewerbungMussAbgeschickt');
}
if ($studiengangtyp !== 'b')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
if ($studiengangtyp !== 'b')
{
$disabled = 'disabled';
$disabledTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
}
// FIT-Lehrgänge: exceptions, can be freigegeben in Infocenter
if (!in_array($studiengang_kz, $fit_programme_studiengaenge))
{
$disabledStg = 'disabled';
$disabledStgTxt = $this->p->t('infocenter', 'nurBachelorFreigeben');
}
?>
<div class="col-lg-8 text-right">
<div class="form-inline">
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="frgstatusgrund"
class="d-inline float-right"
<?php echo $disabledStg ?>
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
</option>
<?php foreach ($intstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
}
if (!$infoonly) :
?>
<div class="col-lg-8 text-right">
<div class="form-inline">
<div class="input-group frgstatusgrselect" id="frgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="frgstatusgrund"
class="d-inline float-right"
<?php echo $disabledStg ?>
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('ui', 'freigabeart')) . '...' ?>
</option>
<?php foreach ($intstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button class="btn btn-default freigabebtnstg" <?php echo $disabledStg ?> id="freigabebtnstg_<?php echo $zgvpruefung->prestudent_id ?>"
data-toggle="tooltip" title="<?php echo $disabledStgTxt ?>">
<?php echo $this->p->t('ui', 'freigabeAnStudiengang') ?>
</button>
</span>
</div>
<div class="input-group" id="igrfrgbtn">
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
</button>
</span>
</div>
<div class="input-group" id="igrfrgbtn">
<button type="button" id="freigabebtn_<?php echo $zgvpruefung->prestudent_id ?>" class="btn btn-default freigabebtn" <?php echo $disabled ?>
data-toggle="tooltip" title="<?php echo $disabledTxt ?>">
<?php echo $this->p->t('ui', 'freigabeZumReihungstest') ?>
</button>
</div>
</div>
</div>
</div>
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
</h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="button"
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
<button type="button"
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
<div class="modal fade freigabeModal" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal"
aria-hidden="true">&times;
</button>
<h4 class="modal-title"
id="freigabeModalLabel">
<?php echo $this->p->t('infocenter', 'freigabeBestaetigen') ?>
<span id="freigabeModalStgr_<?php echo $zgvpruefung->prestudent_id ?>"></span>
</h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'interessentFreigebenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal"><?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button type="button"
class="btn btn-primary saveFreigabe" id="saveFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
<button type="button"
class="btn btn-primary saveStgFreigabe" id="saveStgFreigabe_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentFreigeben') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
<?php endif; ?>
</div><!-- /.row -->
</div><!-- /.panel-footer -->
<?php elseif (isset($zgvpruefung->prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?>
@@ -508,9 +475,69 @@
</label>
</div>
</div><!-- /.row -->
<div class="row">
<div class="col-lg-4 text-left">
<div class="input-group" id="absgstatusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="absgstatusgrund"
class="d-inline float-right"
required>
<option value="null"
selected="selected"><?php echo ucfirst($this->p->t('infocenter', 'absagegrund')) . '...' ?>
</option>
<?php foreach ($abwstatusgruende as $statusgrund): ?>
<option value="<?php echo $statusgrund->statusgrund_id ?>"><?php echo $statusgrund->bezeichnung_mehrsprachig[0] ?></option>
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button type="button"
class="btn btn-default absageBtn" id="absagebtn_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('ui', 'absagen') ?>
</button>
</span>
</div>
</div>
</div>
</div><!-- /.panel-footer -->
<?php endif; //end if infoonly
?>
<?php
endif;
?>
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-hidden="true">
&times;
</button>
<h4 class="modal-title"
id="absageModalLabel"><?php echo $this->p->t('infocenter', 'absageBestaetigen') ?></h4>
</div>
<div class="modal-body">
<?php echo $this->p->t('infocenter', 'absageBestaetigenTxt') ?>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
data-dismiss="modal">
<?php echo $this->p->t('ui', 'abbrechen') ?>
</button>
<button class="btn btn-primary saveAbsage" id="saveAbsage_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'interessentAbweisen') ?>
</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
</div><!-- /.div collapse -->
</div><!-- /.panel -->
<?php
+1 -1
View File
@@ -25,7 +25,7 @@
</tr>
<tr style="height:10%;" >
<td align="center" valign="bottom">
<div style="color:grey">Powered by <a href="http://www.fhcomplete.org" target="blank">FH Complete</a></div>
<div style="color:grey">Powered by <a href="http://www.fhcomplete.info" target="blank">FH Complete</a></div>
<br><br>
</td>
</tr>
+1 -1
View File
@@ -69,7 +69,7 @@ if(isset($_GET['login']))
</tr>
<tr style="height:10%;" >
<td align="center" valign="bottom">
<div style="color:grey">Powered by <a href="http://www.fhcomplete.org" target="blank">FH Complete</a></div>
<div style="color:grey">Powered by <a href="http://www.fhcomplete.info" target="blank">FH Complete</a></div>
<br><br>
</td>
</tr>
+208 -9
View File
@@ -35,6 +35,8 @@ require_once('../../../include/datum.class.php');
require_once('../../../include/mail.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/projektarbeit.class.php');
require_once('../../../include/projektbetreuer.class.php');
require_once('../../../include/sancho.inc.php');
if (!$db = new basis_db())
$db=false;
@@ -116,6 +118,68 @@ if($projektarbeit_id==-1)
if(!$projektarbeit_obj->load($projektarbeit_id))
die('Fehler beim Laden der Projektarbeit');
$titel = $projektarbeit_obj->titel;
$student_uid = $projektarbeit_obj->student_uid;
// paarbeit sollte nur ab SS2021 online bewertet werden
$qry_sem="SELECT 1
FROM lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date
LIMIT 1";
$result_sem=$db->db_query($qry_sem);
$num_rows_sem = $db->db_num_rows($result_sem);
if($num_rows_sem < 0)
{
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."</font><br>&nbsp;";
}
// Zweitbegutachter holen
if($betreuerart=="Erstbegutachter")
{
$projektbetreuer = new projektbetreuer();
$alleBegutachter = $projektbetreuer->getProjektbetreuer($projektarbeit_id);
if ($alleBegutachter)
{
$alleBegutachterResults = $projektbetreuer->result;
foreach ($alleBegutachterResults as $begutachter)
{
if ($begutachter->betreuerart_kurzbz == "Erstbegutachter")
{
$erstbetreuer_id = $begutachter->person_id;
$zweitbegutachter = $projektbetreuer->getZweitbegutachterWithToken($erstbetreuer_id, $projektarbeit_id, $student_uid);
break;
}
}
// Mail mit Token an Zweitbegutachter senden
if ($zweitbegutachter && $num_rows_sem >= 1 && isset($_GET['zweitbegutachtertoken']))
{
$qry_std="SELECT * FROM campus.vw_benutzer where uid=".$db->db_add_param($uid);
if(!$result_std=$db->db_query($qry_std))
{
echo "<font color=\"#FF0000\">Student konnte nicht gefunden werden!</font><br>&nbsp;";
}
else
{
$row_std=@$db->db_fetch_object($result_std);
$mailres = sendZweitbegutachterMail($zweitbegutachter, $erstbetreuer_id, $row_std);
if ($mailres)
{
echo "<br><span style='color: green; '>".$p->t('abgabetool/zweitbegutachterMailGesendet', $zweitbegutachter->email)."</span><br>&nbsp;";
}
else
{
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerMailZweitBegutachter')." Mail: ".$zweitbegutachter->email."</font><br>&nbsp;";
}
}
}
}
}
echo '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
@@ -124,6 +188,39 @@ echo '
<title>'.$p->t('abgabetool/abgabetool').'</title>
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style>
#beurteilungheadertable td {
height: 30px;
overflow: hidden;
}
#beurteilungheadertable form {
margin: 0;
}
/* Bild statt submit button, styling entfernen*/
button[name="zweitbegutachtertoken"] {
background: none;
color: inherit;
border: none;
font: inherit;
cursor: pointer;
outline: inherit;
}
#zweitbetrmailicon {
top: 4px;
height: 18px;
width: 18px;
position: relative;
}
#tokenmailicon {
top: 2px;
height: 15px;
width: 15px;
position: relative;
}
</style>
<script language="Javascript">
function confdel()
@@ -356,25 +453,73 @@ while ($result_nam && $row_nam=$db->db_fetch_object($result_nam))
{
$studentenname=$row_nam->studnam;
}
$htmlstr .= "<table width=100%>\n";
$htmlstr .= "<table id='beurteilungheadertable' width=100%>\n";
$htmlstr .= "<tr><td style='font-size:16px'>".$p->t('abgabetool/student').": <b>".$db->convert_html_chars($studentenname)."</b></td>";
$htmlstr .= "<td width=10% align=center><form action='../../../include/".EXT_FKT_PATH."/abgabe_lektor_benotung.php' title='Benotungsformular' target='_blank' method='GET'>";
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='".$projektarbeit_id."'>\n";
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
$htmlstr .= "<input type='submit' name='note' value='".$p->t('abgabetool/benoten')."'></form></td>";
$htmlstr .= "<td width=10% align=center>";
if ($num_rows_sem >= 1)
{
$htmlstr .= "<form action='../../../index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung' title='Benotungsformular' target='_blank' method='GET'>";
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='".$projektarbeit_id."'>\n";
$htmlstr .= "<input type='hidden' name='uid' value='".$uid."'>\n";
$htmlstr .= "<input type='submit' name='note' value='".$p->t('abgabetool/benoten')."'></form>";
}
else
{
$htmlstr .= "<form action='javascript:void(0);'>";
$htmlstr .= "<input type='submit' value='".$p->t('abgabetool/benoten')."' title='".$p->t('abgabetool/aeltereParbeitBenoten')."'
alt='".$p->t('abgabetool/aeltereParbeitBenoten')."' disabled>";
$htmlstr .= "</form>";
}
$htmlstr .= "</td>";
if($betreuerart!="Zweitbegutachter")
{
$htmlstr .= "<td width=10% align=center><form action='https://www1.ephorus.com/' title='ephorus' target='_blank' method='GET'>";
$htmlstr .= "<input type='submit' name='ephorus' value='".$p->t('abgabetool/plagiatspruefung')."'></form></td></tr>";
$htmlstr .= "<td width=10% align=center><form action='https://technikum-wien.turnitin.com/sso/sp/redwood/saml/5IyfmBr2OcSIaWQTKlFCGj/start' title='plagiatsprüfung' target='_blank' method='GET'>";
$htmlstr .= "<input type='submit' name='ephorus' value='".$p->t('abgabetool/plagiatspruefung')."'></form></td>";
$htmlstr .= "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
$htmlstr .= "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>\n";
}
else
{
$htmlstr .= "<td>&nbsp;</td></tr>";
}
$htmlstr .= "<tr><td style='font-size:16px'>Titel: <b>".$db->convert_html_chars($titel)."<b></td><td></td><td valign=\"right\"><a href='abgabe_student_frameset.php?uid=$uid' target='_blank'>".$p->t('abgabetool/studentenansicht')."</a></td>";
$htmlstr .= "<tr><td style='font-size:16px'>" . $p->t('abgabetool/titel') . ": <b>".$db->convert_html_chars($titel)."<b></td><td></td><td valign=\"right\"><a href='abgabe_student_frameset.php?uid=$uid' target='_blank'>".$p->t('abgabetool/studentenansicht')."</a></td>";
$htmlstr .= "</tr>\n";
if (isset($zweitbegutachter) && $zweitbegutachter) // wenn es Zweitbegutachter gibt
{
// Zweitbegutachter anzeigen
$htmlstr .= "<tr>\n";
$htmlstr .= "<td style='font-size:16px'>" . $p->t('abgabetool/zweitBegutachter') . ": <b>" . $zweitbegutachter->voller_name . "</b>";
// keine Mail -> Fehler anzeigen
if (!isset($zweitbegutachter->email))
$htmlstr .= "&nbsp;&nbsp;<img src='../../../skin/images/exclamation.png' title='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "' alt='" . $p->t('abgabetool/zweitBegutachterEmailFehlt') . "'/>";
// Token senden button wenn Zweitbegutachter extern ist und Projektarbeit nicht für altes Semester ist
if (isset($zweitbegutachter->email) && !isset($zweitbegutachter->uid) && $num_rows_sem >= 1)
{
$htmlstr .= "<form action='" . htmlspecialchars($_SERVER['PHP_SELF']) . "' method='GET' style='display: inline'>\n";
$htmlstr .= "<input type='hidden' name='uid' value='" . $student_uid . "'>";
$htmlstr .= "<input type='hidden' name='projektarbeit_id' value='" . $projektarbeit_id . "'>";
$htmlstr .= "<input type='hidden' name='betreuerart' value='" . $betreuerart . "'>";
$htmlstr .= "&nbsp;<a href='mailto:".$zweitbegutachter->email."'><img id='zweitbetrmailicon' src='../../../skin/images/email.png'
title='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "' alt='" . $p->t('abgabetool/zweitbetreuerMailSenden', $zweitbegutachter->email) . "'/></a>\n";
$htmlstr .= "&nbsp;<button type='submit' name='zweitbegutachtertoken' title='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'>
<img id='tokenmailicon' src='../../../skin/images/repeat.png' alt='" . $p->t('abgabetool/zweitbetreuerTokenMailSenden') . "'/></button>\n";
$htmlstr .= "</form>";
}
$htmlstr .= "</td>\n";
$htmlstr .= "<td></td>\n";
$htmlstr .= "<td></td>\n";
$htmlstr .= "</tr>\n";
}
$htmlstr .= "</table>\n";
$htmlstr .= "<table style='width: 100%'><tr>";
$htmlstr .= "<td><br><b>".$p->t('abgabetool/abgabetermine').":</b></td>\n";
$htmlstr .= "</tr>\n";
$htmlstr .= "</table>\n";
$htmlstr .= "<br><b>".$p->t('abgabetool/abgabetermine').":</b>\n";
$htmlstr .= "<table class='detail' style='padding-top:10px;' >\n";
$htmlstr .= "<tr></tr>\n";
$htmlstr .= "<tr>
@@ -543,4 +688,58 @@ $htmlstr .= "</form>\n";
$htmlstr .= "</table>\n";
$htmlstr .= "</body></html>\n";
echo $htmlstr;
/**
* Mail zum Zweitbegutachter mit Info dass Projektarbeit zur Bewertung bereit ist, inklusive Zugangstoken wenn nötig.
* @param object $zweitbegutachter
* @param $int erstbegutachter_person_id
* @param object $student
* @return bool|projektbetreuer|void|null
*/
function sendZweitbegutachterMail($zweitbegutachter, $erstbegutachter_person_id, $student)
{
if (!isset($zweitbegutachter->email) || $zweitbegutachter->email == '')
return false;
// send Mail to 2. Begutachter
$projektbetreuer = new projektbetreuer();
$projektbetreuer->generateZweitbegutachterToken($zweitbegutachter->person_id, $zweitbegutachter->projektarbeit_id);
if (!$projektbetreuer)
return $projektbetreuer;
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($erstbegutachter_person_id, $zweitbegutachter->projektarbeit_id, $student->uid);
if ($zweitbetr)
{
$intern = isset($zweitbetr->uid);
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung";
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$zweitbegutachter->projektarbeit_id."&uid=".$student->uid;
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
$maildata = array();
$maildata['geehrt'] = "geehrte".($zweitbegutachter->anrede=="Herr"?"r":"");
$maildata['anrede'] = $zweitbegutachter->anrede;
$maildata['betreuer_voller_name'] = $zweitbegutachter->voller_name;
$maildata['student_anrede'] = $student->anrede;
$maildata['student_voller_name'] = trim($student->titelpre." ".$student->vorname." ".$student->nachname." ".$student->titelpost);
$maildata['abgabetyp'] = isset($zweitbetr->abgabedatum) ? 'Endabgabe' : 'Abgabe';
$maildata['parbeituebersichtlink'] = $intern ? "<p><a href='".APP_ROOT."cis/private/lehre/abgabe_lektor_frameset.html'>Zur Projektarbeitsübersicht</a></p>" : "";
$maildata['bewertunglink'] = "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>";
$maildata['token'] = isset($zweitbetr->zugangstoken) && !$intern ? "<p>Zugangstoken: ".$zweitbetr->zugangstoken."</p>" : "";
return sendSanchoMail(
'ParbeitsbeurteilungEndupload',
$maildata,
$zweitbetr->email,
"Masterarbeitsbetreuung",
'sancho_header_min_bw.jpg',
'sancho_footer_min_bw.jpg'
);
}
return false;
}
?>
+33 -9
View File
@@ -99,7 +99,11 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb
(SELECT betreuerart_kurzbz FROM lehre.tbl_projektbetreuer WHERE projektarbeit_id=tbl_projektarbeit.projektarbeit_id
AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_betreuerart_kurzbz,
tbl_projektbetreuer.person_id AS betreuer_person_id,
tbl_projekttyp.bezeichnung AS prjbez, *
tbl_projekttyp.bezeichnung AS prjbez, *,
lehre.tbl_projektbetreuer.note as note,
public.tbl_benutzer.aktiv as aktiv,
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuer_person_id = tbl_projektbetreuer.person_id) AS babgeschickt,
(SELECT abgeschicktvon FROM extension.tbl_projektarbeitsbeurteilung WHERE projektarbeit_id = tbl_projektarbeit.projektarbeit_id AND betreuerart_kurzbz IN ('Zweitbetreuer', 'Zweitbegutachter') LIMIT 1) AS zweitbetreuer_abgeschickt
FROM lehre.tbl_projektarbeit
LEFT JOIN lehre.tbl_projektbetreuer USING(projektarbeit_id)
LEFT JOIN public.tbl_benutzer ON(uid=student_uid)
@@ -114,8 +118,6 @@ $sql_query = "SELECT (SELECT nachname FROM public.tbl_person WHERE person_id=tb
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbetreuer'
OR tbl_projektbetreuer.betreuerart_kurzbz='Erstbegutachter')
AND tbl_projektarbeit.student_uid=".$db->db_add_param($uid)."
AND public.tbl_benutzer.aktiv
AND lehre.tbl_projektarbeit.note IS NULL
ORDER BY studiensemester_kurzbz desc, tbl_lehrveranstaltung.kurzbz";
//AND tbl_projektarbeit.student_uid='$getuid' 'ie07m102';
@@ -155,7 +157,29 @@ else
($row->btitelpost!=''?$htmlstr1 .= ' '.$row->btitelpost:$htmlstr1 .= '');
$htmlstr1 .= $zweitbetreuer;
$htmlstr .= " <tr>\n"; //class='liste".($i%2)."'
$htmlstr .= " <td><a href='abgabe_student_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&bid=".$row->betreuer_person_id."' target='as_detail' title='Details anzeigen'>".$p->t('abgabetool/upload')."</a></td>\n";
if (is_null($row->note) && $row->aktiv === 't')
$htmlstr .= " <td><a href='abgabe_student_details.php?uid=".$row->uid."&projektarbeit_id=".$row->projektarbeit_id."&bid=".$row->betreuer_person_id."' target='as_detail' title='Details anzeigen'>".$p->t('abgabetool/upload')."</a></td>\n";
elseif (!is_null($row->babgeschickt) || !is_null($row->zweitbetreuer_abgeschickt))
{
$htmlstr .= "<td>";
if (!is_null($row->babgeschickt))
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->betreuer_person_id ."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungErstDownload')."</a>";
if (!is_null($row->babgeschickt) && !is_null($row->zweitbetreuer_abgeschickt))
$htmlstr .= "/";
if (!is_null($row->zweitbetreuer_abgeschickt))
$htmlstr .= "<a href='../pdfExport.php?xml=projektarbeitsbeurteilung.xml.php&xsl=Projektbeurteilung&betreuerart_kurzbz=" . $row->zweitbetreuer_betreuerart_kurzbz . "&projektarbeit_id=" . $row->projektarbeit_id . "&person_id=" . $row->zweitbetreuer_person_id."' title='".$p->t('abgabetool/projektbeurteilungDownload')."'>".$p->t('abgabetool/projektbeurteilungZweitDownload')."</a>";
$htmlstr .= "</td>";
} else
{
$htmlstr .= "<td></td>";
}
$htmlstr .= " <td>".$row->studiensemester_kurzbz."</td>\n";
$htmlstr .= " <td>".strtoupper($row->typ.$row->kurzbz)."</td>\n";
$htmlstr .= " <td align= center>";
@@ -192,11 +216,11 @@ echo '
<title>Abgabesystem_Studentensicht</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<script language="JavaScript" type="text/javascript">
+94 -6
View File
@@ -34,6 +34,8 @@ require_once('../../../include/mail.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/projektarbeit.class.php');
require_once('../../../include/projektbetreuer.class.php');
require_once('../../../include/sancho.inc.php');
$anzeigesprache = getSprache();
$p = new phrasen($anzeigesprache);
@@ -324,7 +326,6 @@ if($command=="update" && $error!=true)
{
if($row_zd=@$db->db_fetch_object($result_zd))
{
$htmlstr = "<div>".$p->t('abgabetool/betreuer').": <b>".$db->convert_html_chars($betreuer)."</b><br>".$p->t('abgabetool/titel').": <b>".$db->convert_html_chars($titel)."<b><br><br></div>\n";
$htmlstr .= "<table class='detail' style='padding-top:10px;'>\n";
$htmlstr .= "<tr></tr>\n";
@@ -397,7 +398,7 @@ if($command=="update" && $error!=true)
echo $p->t('global/dateiNichtErfolgreichHochgeladen');
}
}
//E-Mail an 1.Begutachter
//E-Mail an 1.Begutachter und 2.Begutachter senden
if($bid!='' && $bid!=NULL)
{
$qry_betr="SELECT distinct trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as first,
@@ -422,15 +423,102 @@ if($command=="update" && $error!=true)
}
else
{
// paarbeit sollte nur ab SS2021 online bewertet werden
$qry_sem="SELECT 1
FROM lehre.tbl_projektarbeit
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
WHERE projektarbeit_id=".$db->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND tbl_studiensemester.start::date >= (SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz = 'SS2021')::date
LIMIT 1";
$result_sem=$db->db_query($qry_sem);
$num_rows_sem = $db->db_num_rows($result_sem);
if($num_rows_sem < 0)
{
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerAktualitaetProjektarbeit')."</font><br>&nbsp;";
}
$row_std=$db->db_fetch_object($result_std);
$mail = new mail($row_betr->mitarbeiter_uid."@".DOMAIN, "no-reply@".DOMAIN, "Bachelor-/Masterarbeitsbetreuung",
"Sehr geehrte".($row_betr->anrede=="Herr"?"r":"")." ".$row_betr->anrede." ".$row_betr->first."!\n\n".($row_std->anrede)." ".trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost)." hat eine Abgabe vorgenommen.\n\n--------------------------------------------------------------------------\nDies ist ein vom Bachelor-/Masterarbeitsabgabesystem generiertes Info-Mail\nCis->Mein CIS->Projektarbeiten->Bachelor- und Masterarbeitsabgabe\n--------------------------------------------------------------------------");
$mail->setReplyTo($user."@".DOMAIN);
if(!$mail->send())
// 1. Begutachter mail ohne Token
$mail_baselink = APP_ROOT."index.ci.php/extensions/FHC-Core-Projektarbeitsbeurteilung/Projektarbeitsbeurteilung";
$mail_fulllink = "$mail_baselink?projektarbeit_id=".$projektarbeit_id."&uid=".$row_std->uid;
$abgabetyp = $paabgabetyp_kurzbz == 'end' ? 'Endabgabe' : 'Zwischenabgabe';
$maildata = array();
$maildata['geehrt'] = "geehrte".($row_betr->anrede=="Herr"?"r":"");
$maildata['anrede'] = $row_betr->anrede;
$maildata['betreuer_voller_name'] = $row_betr->first;
$maildata['student_anrede'] = $row_std->anrede;
$maildata['student_voller_name'] = trim($row_std->titelpre." ".$row_std->vorname." ".$row_std->nachname." ".$row_std->titelpost);
$maildata['abgabetyp'] = $abgabetyp;
$maildata['parbeituebersichtlink'] = "<p><a href='".APP_ROOT."cis/private/lehre/abgabe_lektor_frameset.html'>Zur Projektarbeitsübersicht</a></p>";
$maildata['bewertunglink'] = $num_rows_sem >= 1 && $paabgabetyp_kurzbz == 'end' ? "<p><a href='$mail_fulllink'>Zur Beurteilung der Arbeit</a></p>" : "";
$maildata['token'] = "";
$mailres = sendSanchoMail(
'ParbeitsbeurteilungEndupload',
$maildata,
$row_betr->mitarbeiter_uid."@".DOMAIN,
"Bachelor-/Masterarbeitsbetreuung",
'sancho_header_min_bw.jpg',
'sancho_footer_min_bw.jpg',
$user."@".DOMAIN);
if(!$mailres)
{
echo "<font color=\"#FF0000\">".$p->t('abgabetool/fehlerMailBegutachter')."</font><br>&nbsp;";
}
// 2. Begutachter mail, wenn Endabgabe, mit Token wenn extern
if ($paabgabetyp_kurzbz == 'end')
{
$projektbetreuer = new projektbetreuer();
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid);
if ($zweitbetr)
{
$tokenGenRes = $projektbetreuer->generateZweitbegutachterToken($zweitbetr->person_id, $projektarbeit_id);
if (!$tokenGenRes)
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br>&nbsp;";
$zweitbetr = $projektbetreuer->getZweitbegutachterWithToken($bid, $projektarbeit_id, $row_std->uid);
if (!$zweitbetr)
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br>&nbsp;";
$intern = isset($zweitbetr->uid);
$mail_link = $intern ? $mail_fulllink : $mail_baselink;
$zweitbetmaildata = array();
$zweitbetmaildata['geehrt'] = "geehrte" . ($zweitbetr->anrede == "Herr" ? "r" : "");
$zweitbetmaildata['anrede'] = $zweitbetr->anrede;
$zweitbetmaildata['betreuer_voller_name'] = $zweitbetr->voller_name;
$zweitbetmaildata['student_anrede'] = $maildata['student_anrede'];
$zweitbetmaildata['student_voller_name'] = $maildata['student_voller_name'];
$zweitbetmaildata['abgabetyp'] = $abgabetyp;
$zweitbetmaildata['parbeituebersichtlink'] = $intern ? $maildata['parbeituebersichtlink'] : "";
$zweitbetmaildata['bewertunglink'] = $num_rows_sem >= 1 ? "<p><a href='$mail_link'>Zur Beurteilung der Arbeit</a></p>" : "";
$zweitbetmaildata['token'] = $num_rows_sem >= 1 && isset($zweitbetr->zugangstoken) && !$intern ? "<p>Zugangstoken: " . $zweitbetr->zugangstoken . "</p>" : "";
$mailres = sendSanchoMail(
'ParbeitsbeurteilungEndupload',
$zweitbetmaildata,
$zweitbetr->email,
"Masterarbeitsbetreuung",
'sancho_header_min_bw.jpg',
'sancho_footer_min_bw.jpg',
$user . "@" . DOMAIN
);
if (!$mailres)
{
echo "<font color=\"#FF0000\">" . $p->t('abgabetool/fehlerMailZweitBegutachter') . "</font><br>&nbsp;";
}
}
}
}
}
else
@@ -12,10 +12,13 @@
* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
*
* Authors:
* Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Manuela Thamer <manuela.thamer@technikum-wien.at>
*/
require_once ('../../../../config/cis.config.inc.php');
require_once ('../../../../config/global.config.inc.php');
@@ -306,6 +309,8 @@ foreach ($noten_obj->result as $row)
{
if(typeof(typ)=='undefined')
typ = 'Termin2';
var nn = document.getElementById(uid+"_nn").innerHTML;
var vn = document.getElementById(uid+"_vn").innerHTML;
var str = " <form name='nachpruefung_form'> <table style='width: 95%'>";
str += "<tr><td colspan='2' align='right'><a href='#' onclick='closeDiv();'>X</a></td></tr>";
@@ -314,7 +319,7 @@ foreach ($noten_obj->result as $row)
anlegendiv.style.top = y+"px";
var x = getOffset('x'); x = x+300;
anlegendiv.style.left = x+"px";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+uid+":</b></td></tr>";
str += "<tr><td colspan='2'><b><?php echo $p->t('benotungstool/pruefungAnlegenFuer');?> "+nn+" "+vn+":</b></td></tr>";
str += "<tr><td><?php echo $p->t('global/datum');?>:</td>";
str += "<td><input type='hidden' name='uid' value='"+uid+"'>";
str += "<input type='hidden' name='le_id' value='"+lehreinheit_id+"'>";
@@ -1166,8 +1171,8 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
$htmlstring .= '<tr class="liste' . ($i % 2) . '">
<td><a href="mailto:' . $uid . '@' . DOMAIN . '"><img src="../../../../skin/images/button_mail.gif"></a></td>
<td>' . $db->convert_html_chars($uid) . '</td>
<td>' . $db->convert_html_chars($data['nachname']) . '</td>
<td>' . $db->convert_html_chars($data['vorname']) . '</td>';
<td id= '. $uid. "_nn". '>' . $db->convert_html_chars($data['nachname']) . '</td>
<td id= '. $uid. "_vn". '>' . $db->convert_html_chars($data['vorname']) . '</td>';
// Bereits eingetragene Note ermitteln
if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem))
+40 -3
View File
@@ -39,6 +39,7 @@ require_once('../../include/prestudent.class.php');
require_once('../../include/dokument_export.class.php');
require_once('../../include/person.class.php');
require_once('../../include/webservicelog.class.php');
require_once('../../include/projektarbeit.class.php');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -120,7 +121,7 @@ $params = 'xmlformat=xml';
//Admins duerfen Dokumente anderer Personen drucken
if ($rechte->isBerechtigt('admin'))
$user = $_GET['uid'];
$user = isset($_GET['uid']) ? $_GET['uid'] : $user;
$params .= '&uid='.$user;
if (isset($_GET['person_id']))
@@ -139,6 +140,11 @@ if (isset($_GET['all']))
$params .= '&all=1';
if (isset($_GET['xsl_oe_kurzbz']))
$params .= '&xsl_oe_kurzbz='. $_GET['xsl_oe_kurzbz'];
if (isset($_GET['projektarbeit_id']))
$params .= '&projektarbeit_id='. $_GET['projektarbeit_id'];
if (isset($_GET['betreuerart_kurzbz']))
$params .= '&betreuerart_kurzbz='. $_GET['betreuerart_kurzbz'];
// Logeintrag bei Download von Zahlungsbestaetigungen
if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung')
@@ -150,7 +156,7 @@ if (isset($_GET['xsl']) && $_GET['xsl'] == 'Zahlung')
$log->request_id = isset($_GET['buchungsnummern']) && !empty($_GET['buchungsnummern']) ? $_GET['buchungsnummern'] : NULL;
$log->beschreibung = 'Zahlungsbestaetigungsdownload';
$log->request_data = $requestdata;
$log->execute_user = $user;
$log->execute_user = get_uid();
$log->save(true);
}
@@ -183,9 +189,40 @@ if (isset($_GET['output']) && $_GET['output'] != 'pdf')
else
$output = 'pdf';
if (isset($_GET['xsl']) && ($_GET['xsl'] === 'Projektbeurteilung'))
{
if (!isset($_GET['betreuerart_kurzbz']) || !isset($_GET['person_id']) || !isset($_GET['projektarbeit_id']))
die('Fehlerhafte Parameteruebergabe');
$projektarbeit = new projektarbeit();
$projektarbeit->load($_GET['projektarbeit_id']);
$betreuer = new person();
$betreuer->getPersonFromBenutzer($user);
//Überprüft ob es der Betreuer oder der Student ist
if ($betreuer->person_id !== $_GET['person_id'] && $projektarbeit->student_uid !== $user && !$rechte->isBerechtigt('assistenz'))
die("<html><body><h3>Sie haben keine Berechtigung für diese Aktion.</h3></body></html>");
switch ($_GET['betreuerart_kurzbz'])
{
case 'Begutachter' :
$xsl = 'ProjektBeurteilungBA';
break;
case 'Erstbegutachter' :
$xsl = 'ProjektBeurteilungMAErst';
break;
case 'Zweitbegutachter' :
$xsl = 'ProjektBeurteilungMAZweit';
break;
}
$allowed = true;
}
$konto = new konto();
if (((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin'))
if ((((isset($_GET["uid"]) && $user == $_GET["uid"])) || $rechte->isBerechtigt('admin')) || (isset($allowed) && $allowed === true))
{
$buchungstypen = array();
if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN"))
+17
View File
@@ -44,6 +44,7 @@ require_once('../../../include/addon.class.php');
require_once('../../../include/gruppe.class.php');
require_once('../../../include/adresse.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/bisverwendung.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
@@ -271,6 +272,22 @@ if (!$ansicht)
}
if (!$ansicht)
{
if ($is_employee)
{
$verwendung = new bisverwendung();
if($verwendung->getLastVerwendung($uid))
{
if (!$verwendung->hauptberuflich)
{
echo 'Hauptberuf: '. $verwendung->hauptberuf;
}
}
echo "<br><br>";
}
}
if (!$ansicht)
{
$adresse = new adresse();
+1 -1
View File
@@ -217,7 +217,7 @@ if ($num_rows > 0)
&& CIS_LV_LEKTORINNENZUTEILUNG_VERTRAGSPRUEFUNG_VON != '')
{
$vertrag = new vertrag();
if (!$vertrag->isVertragErteiltLE($row->lehreinheit_id, $stdsem, $user))
if (!$vertrag->isVertragErteiltLE($row->lehreinheit_id, $stdsem, $uid))
{
continue;
}
+71 -41
View File
@@ -18,6 +18,7 @@
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>,
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Manuela Thamer <manuela.thamer@technikum-wien.at>
*/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/functions.inc.php');
@@ -28,6 +29,13 @@ require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/addon.class.php');
require_once('../../../include/mail.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/globals.inc.php');
require_once('../../../include/sprache.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
@@ -43,16 +51,16 @@ else
{
//Bis August das aktuelle Jahr anzeigen
//Ab September das naechste
if(date('m')<9)
if (date('m') < 9)
$year = date('Y');
else
$year = date('Y')+1;
$year = date('Y') + 1;
}
if(isset($_GET['uid']))
$uid=$_GET['uid'];
if (isset($_GET['uid']))
$uid = $_GET['uid'];
else
$uid='';
$uid = '';
$datum_obj = new datum();
@@ -98,50 +106,74 @@ echo '
$mitarbeiter = new mitarbeiter();
$mitarbeiter->getUntergebene($user);
if(count($mitarbeiter->untergebene)==0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
if (count($mitarbeiter->untergebene) == 0 && !$rechte->isBerechtigt('admin') && !$rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
die('Es sind Ihnen keine Mitarbeiter zugeteilt für die sie den Urlaub freigeben dürfen');
$untergebene = '';
foreach ($mitarbeiter->untergebene as $row)
{
if($untergebene!='')
$untergebene.=',';
if ($untergebene != '')
$untergebene .= ',';
$untergebene .= $db->db_add_param($row);
}
if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid'))
{
if($untergebene!='')
$untergebene.=',';
if ($untergebene != '')
$untergebene .= ',';
$untergebene .= $db->db_add_param($uid);
}
$qry = "SELECT * FROM public.tbl_person JOIN public.tbl_benutzer USING(person_id) WHERE uid in($untergebene)";
$mitarbeiter = array();
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$mitarbeiter[$row->uid]['vorname']=$row->vorname;
$mitarbeiter[$row->uid]['nachname']=$row->nachname;
$mitarbeiter[$row->uid]['titelpre']=$row->titelpre;
$mitarbeiter[$row->uid]['titelpost']=$row->titelpost;
$mitarbeiter[$row->uid]['vorname'] = $row->vorname;
$mitarbeiter[$row->uid]['nachname'] = $row->nachname;
$mitarbeiter[$row->uid]['titelpre'] = $row->titelpre;
$mitarbeiter[$row->uid]['titelpost'] = $row->titelpost;
}
}
if($uid!='' && !isset($mitarbeiter[$uid]) && $uid!=$user && !$rechte->isBerechtigt('admin'))
if ($uid != '' && !isset($mitarbeiter[$uid]) && $uid != $user && !$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diesen Mitarbeiter');
//Freigeben eines Urlaubes
if(isset($_GET['action']) && $_GET['action']=='freigabe')
if (isset($_GET['action']) && $_GET['action'] == 'freigabe')
{
$zeitsperre = new zeitsperre();
if($zeitsperre->load($_GET['id']))
if ($zeitsperre->load($_GET['id']))
{
if(isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
if (isset($mitarbeiter[$zeitsperre->mitarbeiter_uid]))
{
$zeitsperre->freigabeamum = date('Y-m-d H:i:s');
$zeitsperre->freigabevon = $user;
if(!$zeitsperre->save(false))
if (!$zeitsperre->save(false))
{
echo "<b>Fehler bei der Freigabe: $zeitsperre->errormsg</b>";
}
//Bestätigungsmail an Mitarbeiter*in
$to = $zeitsperre->mitarbeiter_uid. '@'.DOMAIN;
$person = new person();
$fullNameVG = $person->getFullNameFromBenutzer($user);
$fullNameMA = $person->getFullNameFromBenutzer($zeitsperre->mitarbeiter_uid);
$from = 'noreply@'.DOMAIN;
$subject = $p->t('urlaubstool/urlaubsfreigabe'). date("d.m.Y", strtotime($zeitsperre->vondatum)). " ".
$p->t('urlaubstool/bis'). " ". date("d.m.Y", strtotime($zeitsperre->bisdatum));
$text = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n";
$text .= $p->t('urlaubstool/urlaubVon')." ".date("d.m.Y", strtotime($zeitsperre->vondatum))." ".
$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($zeitsperre->bisdatum));
$text .= $p->t('urlaubstool/urlaubBis', array($fullNameVG));
$text .= "\n". "\n". $p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen');
$text .= "\n". APP_ROOT. 'cis/private/profile/urlaubstool.php';
$mail = new mail($to, $from, $subject, $text);
if ($mail->send())
{
echo "<span style='color:green;'>".$p->t('urlaubstool/bestaetigungsmailWurdeVersandt', array($fullNameMA))."</span>";
}
}
else
{
@@ -152,40 +184,38 @@ if(isset($_GET['action']) && $_GET['action']=='freigabe')
{
echo '<b>Die Zeitsperre konnte nicht geladen werden</b>';
}
}
//Monat zeichenen
//Monat zeichnen
function draw_monat($monat)
{
global $untergebene, $mitarbeiter, $year, $datum_obj, $uid;
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
if (!$db = new basis_db())
die('Fehler beim Oeffnen der Datenbankverbindung');
echo '<td style="border: 1px solid black; height:100px; width: 30%" valign="top">';
echo '<center><b>';
echo date('F',mktime(0,0,0,$monat,1,date('Y')));
echo " ".($monat>8?$year-1:$year);
echo date('F', mktime(0,0,0,$monat,1,date('Y')));
echo " ".($monat > 8?$year-1:$year);
echo '</b></center>';
//Alle Anzeigen bei denen das von- oder bisdatum in dieses monat fallen
$qry = "SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub'
AND
(
(date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat>8?$year-1:$year)."')
(date_part('month', vondatum)='$monat' AND date_part('year', vondatum)='".($monat > 8?$year - 1:$year)."')
OR
(date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat>8?$year-1:$year)."')
(date_part('month', bisdatum)='$monat' AND date_part('year', bisdatum)='".($monat > 8?$year - 1:$year)."')
)";
if($uid=='')
$qry.=" AND mitarbeiter_uid in($untergebene)";
if($uid == '')
$qry.= " AND mitarbeiter_uid in($untergebene)";
else
$qry.=" AND mitarbeiter_uid=".$db->db_add_param($uid);
$qry.= " AND mitarbeiter_uid=". $db->db_add_param($uid);
$qry.="ORDER BY vondatum, mitarbeiter_uid";
if($result = $db->db_query($qry))
if ($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
while ($row = $db->db_fetch_object($result))
{
$vertretung = new benutzer($row->vertretung_uid);
$freigabe='';
@@ -207,7 +237,7 @@ function draw_monat($monat)
}
//Jahr mit Pfeilen zum blaettern anzeigen
if($uid!='')
if ($uid!='')
{
echo '<table width="100%"><tr><td style="width:33%">';
echo "<a href='".$_SERVER['PHP_SELF']."?year=$year' class='Item'>Alle Mitarbeiter anzeigen</a><br></td>";
@@ -232,16 +262,16 @@ echo '<br>';
//Tabelle mit den Monaten ausgeben
echo '<table cellspacing=0 width="100%" style="border: 1px solid black;"><tr>';
$monat=9;
for($i=0;$i<12;$i++)
for($i = 0;$i < 12;$i++)
{
if($i%3==0)
if ($i%3 == 0)
{
echo '</tr><tr>';
}
draw_monat($monat);
$monat++;
if($monat>12)
$monat=1;
if ($monat > 12)
$monat = 1;
}
echo '</tr></table>
+21 -5
View File
@@ -464,7 +464,6 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
{
if($hgfarbe[$i]!='#FFFC7F' && $hgfarbe[$i]!='#bbb' && $hgfarbe[$i]!='#CDDDEE')
{
$hgfarbe[$i]='#E9ECEE';
$datensatz[$i]=0;
$freigabevon[$i]=$row->freigabevon;
@@ -761,11 +760,25 @@ for ($i=0;$i<6;$i++)
echo "\n";
if(strlen(stristr($tage[$j+7*$i],"."))>0)
{
echo '<td align="center" valign="center" style="font-size:16px; color:grey; background-color: '.$hgfarbe[$j+7*$i].'">';
if($j%6==0 || $j==7)
{
echo '<td align="center" valign="center" style="font-size:16px; color:grey; background-color:#A5AFB6">';
}
else
{
echo '<td align="center" valign="center" style="font-size:16px; color:grey; background-color: ' . $hgfarbe[$j + 7 * $i] . '">';
}
}
else
{
echo '<td align="center" valign="center" style="background-color: '.$hgfarbe[$j+7*$i].'">';
if($j%6==0 || $j==7)
{
echo '<td align="center" valign="center" style="font-size:; color:; background-color:#A5AFB6">';
}
else
{
echo '<td align="center" valign="center" style="background-color: ' . $hgfarbe[$j + 7 * $i] . '">';
}
}
if($tage[$j+7*$i]!='')
{
@@ -781,11 +794,14 @@ for ($i=0;$i<6;$i++)
echo '<b>'.$tage[$j+7*$i].'</b><br>';
if(strlen(stristr($tage[$j+7*$i],"."))>0)
{
echo '<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, substr($tage[$j+7*$i],3,2) , substr($tage[$j+7*$i],0,2), substr($tage[$j+7*$i],6,4))).'"></td>';
echo '<input type="checkbox" name="wtag[]"
value="'.date("Y-m-d",mktime(0, 0, 0, substr($tage[$j+7*$i],3,2) , substr($tage[$j+7*$i],0,2), substr($tage[$j+7*$i],6,4))).'"
id="'.date("d.m.Y",mktime(0, 0, 0, substr($tage[$j+7*$i],3,2) , substr($tage[$j+7*$i],0,2), substr($tage[$j+7*$i],6,4))).'"></td>';
}
else
{
echo '<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"></td>';
echo '<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"
id="'.date("d.m.Y",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"></td>';
}
}
else
+27 -7
View File
@@ -112,13 +112,14 @@ foreach($addon_obj->result as $addon)
// Wenn Seite fertig geladen ist Addons aufrufen
echo '
<script>
let holiDays =[];
$( document ).ready(function()
{
if(typeof addon !== \'undefined\')
{
for(i in addon)
{
addon[i].init("cis/private/profile/urlaubstool.php", {uid:\''.$uid.'\'});
addon[i].init("cis/private/profile/zeitsperre_resturlaub.php", {uid:\''.$uid.'\', holiDays: holiDays});
}
}
@@ -126,6 +127,7 @@ $( document ).ready(function()
changeMonth: true,
changeYear: true,
dateFormat: "dd.mm.yy",
beforeShowDay: setHoliDays
});
$( ".timepicker" ).timepicker({
@@ -137,13 +139,31 @@ $( document ).ready(function()
});
});
</script>';
?>
<style>
.dd_breit
{
width:460px;
// set holidays function which is configured in beforeShowDay
function setHoliDays(date) {
for (i = 0; i < holiDays.length; i++) {
if (date.getFullYear() == holiDays[i][0]
&& date.getMonth() == holiDays[i][1] - 1
&& date.getDate() == holiDays[i][2]) {
return [true, "holiday", ""];
}
}
return [true, ""];
}
</script>';
?>
<style type="text/css">
.dd_breit
{
width:460px;
}
.ui-datepicker td.holiday a, .ui-datepicker td.holiday a:hover
{
background: none #FFEBAF;
border: 1px solid #BF5A0C;
}
</style>
<script language="Javascript">
function conf_del()
+8 -8
View File
@@ -91,20 +91,20 @@ if($aktion!='zip')
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<link rel="stylesheet" href="../../../skin/tablesort.css" type="text/css"/>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<script type="text/javascript" src="../../../vendor/jquery/jqueryV1/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="../../../vendor/christianbach/tablesorter/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="../../../vendor/components/jqueryui/jquery-ui.min.js"></script>
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>
<script type="text/javascript" src="../../../vendor/jquery/sizzle/sizzle.js"></script>
<script src="../../../vendor/components/jqueryui/jquery-ui.min.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="../../../skin/jquery-ui-1.9.2.custom.min.css">
<link rel="stylesheet" href="../../../include/js/tablesort/table.css" type="text/css">
<script type="text/javascript" src="../../../include/js/jquery.ui.datepicker.translation.js"></script>';
include('../../../include/meta/jquery.php');
include('../../../include/meta/jquery-tablesorter.php');
echo '
<script language="JavaScript" type="text/javascript">
$(document).ready(function()
{
$("#t1").tablesorter(
{
sortList: [[5,0]],
widgets: ["zebra"]
widgets: ["zebra"],
headers: {1: { sorter: "shortDate", dateFormat: "ddmmyyyy" }}
});
});
</script>
+2 -2
View File
@@ -1403,7 +1403,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
echo '<tr><td nowrap>'.$p->t("zeitaufzeichnung/organisationseinheiten").'</td>
<td colspan="3"><SELECT '.$oestyle.' name="oe_kurzbz_1">';
$oe = new organisationseinheit();
$oe->getFrequent($user,'180','3',true);
$oe->getFrequent($user,'180','3',true, array('oezuordnung', 'fachzuordnung', 'kstzuordnung'));
$trennlinie = true;
echo '<option value="">-- '.$p->t("zeitaufzeichnung/keineAuswahl").' --</option>';
@@ -1817,7 +1817,7 @@ if ($projekt->getProjekteMitarbeiter($user, true))
$langindex = 1;
else
$langindex = 2;
echo '<b>'.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').'</b> <span id="tag_'.$datum->formatDatum($tag,'d_m_Y').'">'.$zeitsperre_text.'</span>'.$pausefehlt_str;
echo '<span style="display: inline-block; width: 130px;"><b>'.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').'</b></span><span id="tag_'.$datum->formatDatum($tag,'d_m_Y').'">'.$zeitsperre_text.'</span>'.$pausefehlt_str;
if ($ersumme != '00:00')
$erstr = ' (+ '.$ersumme.' ER)';
else
@@ -90,6 +90,7 @@ $ztauf->getListeUserFromTo($uid, $year.'-'.$month.'-01', $year.'-'.$month.'-'.$d
$projektlines = array();
$dayStart = $dayEnd = '';
$projektnames = $projektphasenames = $tosubtract = $allpauseranges = array();
$projektTiteles = array();
$activitiesToSubtract = ['Pause', 'LehreExtern', 'Arztbesuch', 'Behoerde'];//aktivitaetstypen which should be subtracted fromworktime
$ztaufdata = $ztauf->result;
$totalmonthsum = 0.00;
@@ -281,7 +282,15 @@ for ($i = 0; $i < count($ztaufdata); $i++)
//add new projekt to array with unique projekt names
if (!in_array($ztaufrow->projekt_kurzbz, $projektnames))
{
$projektnames[] = $ztaufrow->projekt_kurzbz;
$pt = new projekt();
$pt->load($ztaufrow->projekt_kurzbz);
if(!empty($pt->titel))
$projektTiteles[convertProblemChars($ztaufrow->projekt_kurzbz)] = convertProblemChars($pt->titel);
else
$projektTiteles[convertProblemChars($ztaufrow->projekt_kurzbz)] = 'kein Titel';
}
}
}
@@ -557,10 +566,21 @@ if ($nrProjects < 1)//no projekts - merge all cells and write notice
foreach ($projektnames as $projektname)
{
//Creating a worksheet
$worksheet =& $workbook->addWorksheet($projektname);
$worksheet->setInputEncoding('utf-8');
$titel = $projektTiteles[convertProblemChars($projektname)];
if ((strlen($titel)+strlen($projektname)) > 31)
{
$maxLength = 31;
$maxLength = ($maxLength - 3 - strlen($projektname));
$titel = substr($titel, 0, $maxLength);
$titel.='...';
}
//Creating a worksheet
$worksheet =& $workbook->addWorksheet(convertProblemChars($projektname).' ('.$titel.')');
$worksheet->setInputEncoding('utf-8');
$titel = $projektTiteles[convertProblemChars($projektname)];
//general options
$worksheet->setLandscape();
$worksheet->hideGridlines();
@@ -686,7 +706,7 @@ foreach ($projektnames as $projektname)
$worksheet->write($zeile, $spalte + 1 + $i, '', $format_bold_centered_toprightline);
$worksheet->setMerge($zeile, $spalte, $zeile, $spalte + 1 + $phasenameslength);
$worksheet->write($zeile, $spalte, $projektname, $format_bold_centered_toprightline);
$worksheet->write($zeile, $spalte, $projektname.' ('.$titel.')', $format_bold_centered_toprightline);
for ($i = 0; $i < $phasenameslength; $i++)
$worksheet->write($zeile + 1, $spalte + 1 + $i, $phasenames[$i], $format_bold_centered_bottomline);
+2 -1
View File
@@ -79,12 +79,13 @@ if($doc->isLocked($id))
$dokumente_arr[] .= $row->dokument_kurzbz;
// An der FHTW wird das vorläufige ZGV Dokument verlangt und kann somit auch heruntergeladen werden
// Auch der Inivtation Letter kann von BewerberInnen heruntergeladen werden
// Auch der Invitation Letter und die Zeitbestätigung können von BewerberInnen heruntergeladen werden
if (CAMPUS_NAME == 'FH Technikum Wien')
{
$dokumente_arr[] .= 'ZgvBaPre';
$dokumente_arr[] .= 'ZgvMaPre';
$dokumente_arr[] .= 'InvitLet';
$dokumente_arr[] .= 'ZeitBest';
}
if ($person_id!=$akte_person || !in_array($akte_dokument_kurzbz, $dokumente_arr))
die('Sie haben keinen Zugriff auf dieses Dokument');
+23 -21
View File
@@ -19,7 +19,7 @@
*/
/**
* Dieses File enthaelt Hilfsklassen zur Anzeige des CMS-Menues
*
*
* mit drawSubmenu($id) wird das enstprechende Menue gezeichnet.
*/
require_once(dirname(__FILE__).'/../include/functions.inc.php');
@@ -30,13 +30,14 @@ $params = array();
foreach($_REQUEST as $key=>$value)
$params[$key]=$value;
$user = null;
//Parameter fuer Include Addons
$includeparams = array();
$contentobjects=array();
$chldsobject = array();
/**
* Zeichnet einen Menueeintrag aus dem CMS System
*
*
* @param $content_id
*/
function drawSubmenu($content_id)
@@ -47,16 +48,16 @@ function drawSubmenu($content_id)
global $contentobjects;
$content = new content();
$sprache = getSprache();
// Daten Laden
// Alle Kindelemente des Contents holen
$ids = $content->getAllChilds($content_id);
// Alle vorkommenden Contenteintraege laden
// Alle vorkommenden Contenteintraege laden
$content->loadArray($ids, $sprache, true);
$contentobjects = $content->result;
// Baumstruktur laden
$childsobject = $content->getChildArray($content_id);
@@ -91,7 +92,7 @@ function drawSubmenu1($content_id)
drawEntry($contentobj);
}
}
}
}
@@ -101,12 +102,13 @@ function drawSubmenu1($content_id)
*/
function drawEntry($item)
{
global $childsobject;
global $childsobject, $user;
//pruefen ob der Content eine Berechtigung erfordert
if($item->locked)
{
$user = get_uid();
if(is_null($user))
$user = get_uid();
$content = new content();
//wenn der User nicht berechtigt ist, dann wird der Eintrag nicht angezeigt
if(!$content->berechtigt($item->content_id, $user))
@@ -139,7 +141,7 @@ function drawEntry($item)
Redirect($item);
else
DrawLink(APP_ROOT.'cms/content.php?content_id='.$item->content_id,'content',$item->titel);
echo "</li>";
}
}
@@ -155,7 +157,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
{
if($target=='')
$target='content';
if($open)
$class='class="selected"';
else
@@ -167,7 +169,7 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
* Redirects sind Links Seiten ausserhalb des CMS
* die URL kann Variablen enthalten. Diese werden hier ersetzt.
* Danach wird der Link angezeigt.
*
*
* @param $content_id ContentID des Redirects
* @param $name Anzeigename des Links
* @param $content_id_Submenu ID des Submenues das geoeffnet werden soll (optional)
@@ -175,42 +177,42 @@ function DrawLink($link, $target, $name, $content_id=null, $open=null)
function Redirect($content, $content_id_Submenu=null)
{
global $sprache, $params;
$xml = new DOMDocument();
if($content->content!='')
{
$xml->loadXML($content->content);
}
if($xml->getElementsByTagName('url')->item(0))
$url = $xml->getElementsByTagName('url')->item(0)->nodeValue;
else
$url='';
//Variablen Ersetzen
foreach($params as $key=>$value)
{
$url = str_replace('$'.$key,addslashes($value),$url);
}
if($xml->getElementsByTagName('target')->item(0))
$target = $xml->getElementsByTagName('target')->item(0)->nodeValue;
else
$target='';
DrawLink($url, $target, $content->titel, $content_id_Submenu, $content->menu_open);
}
/**
* Bei Content mit Include Templates wird
* Bei Content mit Include Templates wird
* das entsprechende Menu-Addon geladen und inkludiert
*
*
* @param $content_id
*/
function IncludeMenuAddon($content)
{
global $sprache, $includeparams;
$xml = new DOMDocument();
if($content->content!='')
{
@@ -223,6 +225,6 @@ function IncludeMenuAddon($content)
if($url!='')
{
$includeparams['content']=$content;
include(dirname(__FILE__).'/menu/'.$url);
include(dirname(__FILE__).'/menu/'.$url);
}
}
Generated
+9 -9
View File
@@ -681,12 +681,12 @@
"version": "0.9.1",
"source": {
"type": "git",
"url": "https://github.com/njh/easyrdf.git",
"url": "https://github.com/easyrdf/easyrdf.git",
"reference": "acd09dfe0555fbcfa254291e433c45fdd4652566"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566",
"url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566",
"reference": "acd09dfe0555fbcfa254291e433c45fdd4652566",
"shasum": ""
},
@@ -796,6 +796,7 @@
"faker",
"fixtures"
],
"abandoned": true,
"time": "2019-12-12 13:22:17"
},
{
@@ -1321,16 +1322,16 @@
},
{
"name": "phpseclib/phpseclib",
"version": "2.0.23",
"version": "2.0.31",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099"
"reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/c78eb5058d5bb1a183133c36d4ba5b6675dfa099",
"reference": "c78eb5058d5bb1a183133c36d4ba5b6675dfa099",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/233a920cb38636a43b18d428f9a8db1f0a1a08f4",
"reference": "233a920cb38636a43b18d428f9a8db1f0a1a08f4",
"shasum": ""
},
"require": {
@@ -1338,8 +1339,7 @@
},
"require-dev": {
"phing/phing": "~2.7",
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
"sami/sami": "~2.0",
"phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4",
"squizlabs/php_codesniffer": "~2.0"
},
"suggest": {
@@ -1409,7 +1409,7 @@
"x.509",
"x509"
],
"time": "2019-09-17 03:41:22"
"time": "2021-04-06 13:56:45"
},
{
"name": "rmariuzzo/jquery-checkboxes",
+1 -1
View File
@@ -95,7 +95,7 @@ foreach($addon_obj->result as $addon)
<command id="menu-prefs-stpltable-stundenplan:command" oncommand="stpltableChange('stundenplan');"/>
<command id="menu-prefs-stpltable-stundenplandev:command" oncommand="stpltableChange('stundenplandev');"/>
<command id="menu-prefs-kontofilterstg:command" oncommand="EinstellungenKontoFilterStgChange();"/>
<command id="menu-prefs-number_displayed_past_studiensemester:command" oncommand="variableChangeValue('number_displayed_past_studiensemester');"/>
<command id="menu-prefs-number_displayed_past_studiensemester:command" oncommand="variableChangeValueIfNumber('number_displayed_past_studiensemester');"/>
<command id="menu-statistic-lehrauftraege:command" oncommand="StatistikPrintLehrauftraege();"/>
<command id="menu-statistic-lvplanung:command" oncommand="StatistikPrintLVPlanung();"/>
<command id="menu-statistic-lvplanungexcel:command" oncommand="StatistikPrintLVPlanungExcel();"/>
+21 -1
View File
@@ -1539,7 +1539,7 @@ function OpenAboutDialog()
// ****
function OpenManual()
{
window.open('https://wiki.fhcomplete.org/doku.php?','_blank');
window.open('https://wiki.fhcomplete.info/','_blank');
}
// ****
@@ -2099,6 +2099,26 @@ function variableChangeValue(variable)
}
}
// ****
// * Aendert eines Variablenwert nach Überprüfung der Eingabe auf gültigen Wert (kleiner 100)
// ****
function variableChangeValueIfNumber(variable)
{
var variablevalue = getvariable(variable);
if(variablevalue = prompt('Bitte geben Sie den neuen Wert fuer '+variable+' ein', variablevalue))
{
if ((typeof(parseInt(variablevalue)) === 'number' && variablevalue < 100 ))
{
variableChange(variable, '', variablevalue);
}
else
{
alert(variablevalue + ' ist keine gültige Eingabe! Bitte eine Zahl eingeben!');
}
}
}
// ****
// * Sendet einen Request zum Aendern einer Variable
// ****
@@ -481,9 +481,9 @@ $p = new phrasen($sprache);
<textbox id="lehrveranstaltung-lehreinheitmitarbeiter-textbox-anmerkung" disabled="true" maxlength="255" width="300" oninput="LeMitarbeiterValueChanged();"/>
</row>
<row>
<label id="lehrveranstaltung-lehreinheitmitarbeiter-label-semesterstunden" control="lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden" value="Semesterstunden: "/>
<label id="lehrveranstaltung-lehreinheitmitarbeiter-label-semesterstunden" control="lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden" value="Lehrauftragsstunden (LAS): "/>
<textbox id="lehrveranstaltung-lehreinheitmitarbeiter-textbox-semesterstunden" disabled="true" maxlength="6" flex="1" oninput="LeMitarbeiterValueChanged();LeMitarbeiterGesamtkosten(); if(parseInt(this.value)) document.getElementById('lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden').value= parseInt(this.value)"/>
<label control="lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden" value="Planstunden: "/>
<label control="lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden" tooltiptext="LVPLS" value="LV-Plan Stunden: "/>
<textbox id="lehrveranstaltung-lehreinheitmitarbeiter-textbox-planstunden" disabled="true" maxlength="3" flex="1" oninput="LeMitarbeiterValueChanged();"/>
</row>
<row>
@@ -59,7 +59,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/lvplanung/lehrveranstaltungnotenov
</popupset>
<toolbox>
<toolbar id="lehrveranstaltung-nav-toolbar">
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neue Lehreinheit" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-neu" label="Neuer LV-Teil" oncommand="LeNeu();" disabled="true" image="../skin/images/NeuDokument.png" tooltiptext="Neue Lehreinheit anlegen" />
<toolbarbutton id="lehrveranstaltung-toolbar-del" label="Loeschen" oncommand="LeDelete();" disabled="true" image="../skin/images/DeleteIcon.png" tooltiptext="Lehreinheiten löschen"/>
<toolbarbutton id="lehrveranstaltung-toolbar-refresh" label="Aktualisieren" oncommand="LvTreeRefresh()" disabled="false" image="../skin/images/refresh.png" tooltiptext="Liste neu laden"/>
<toolbarbutton id="lehrveranstaltung-toolbar-lehrauftrag" label="Lehrauftrag" oncommand="LvCreateLehrauftrag()" disabled="false" image="../skin/images/person.gif" tooltiptext="Lehrauftrag ausdrucken" hidden="true"/>
+14 -1
View File
@@ -174,7 +174,20 @@ if(!$error)
elseif($_POST['zeitaufzeichnungspflichtig']=='false')
$verwendung->zeitaufzeichnungspflichtig = false;
else
$verwendung->zeitaufzeichnungspflichtig = '';
$verwendung->azgrelevant = '';
if($_POST['azgrelevant']=='true')
$verwendung->azgrelevant = true;
elseif($_POST['azgrelevant']=='false')
$verwendung->azgrelevant = false;
else
$verwendung->azgrelevant = '';
if($_POST['homeoffice']=='true')
$verwendung->homeoffice = true;
elseif($_POST['homeoffice']=='false')
$verwendung->homeoffice = false;
else
$verwendung->homeoffice = '';
if($verwendung->save())
{
@@ -1233,6 +1233,8 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
dv_art = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-dv_art').value;
inkludierte_lehre = dialog.getElementById('mitarbeiter-verwendung-detail-textbox-inkludierte_lehre').value;
zeitaufzeichnungspflichtig = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked;
azgrelevant = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked;
homeoffice = dialog.getElementById('mitarbeiter-verwendung-detail-checkbox-homeoffice').checked;
if(verwendung_code=='1')
{
@@ -1291,6 +1293,8 @@ function MitarbeiterVerwendungSpeichern(dialog, bisverwendung_id, mitarbeiter_ui
req.add('dv_art', dv_art);
req.add('inkludierte_lehre', inkludierte_lehre);
req.add('zeitaufzeichnungspflichtig', zeitaufzeichnungspflichtig);
req.add('azgrelevant', azgrelevant);
req.add('homeoffice', homeoffice);
var response = req.executePOST();
@@ -70,6 +70,8 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
dv_art = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#dv_art" ));
inkludierte_lehre = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#inkludierte_lehre" ));
zeitaufzeichnungspflichtig = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zeitaufzeichnungspflichtig" ));
azgrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#azgrelevant" ));
homeoffice = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#homeoffice" ));
}
else
{
@@ -87,7 +89,8 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
var predicateNS = "http://www.technikum-wien.at/mitarbeiter/rdf";
fixangestellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#fixangestellt" ));
azgrelevant = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#azgrelevant" ));
homeoffice = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#homeoffice" ));
//neuer Datensatz wird angelegt
MitarbeiterVerwendungDetailNeu='true';
@@ -112,6 +115,23 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
{
zeitaufzeichnungspflichtig='Nein';
}
if (!azgrelevant)
{
azgrelevant='Nein';
}
else
{
azgrelevant='Ja';
}
if (!homeoffice)
{
homeoffice='Nein';
}
else
{
homeoffice='Ja';
}
}
document.getElementById('mitarbeiter-verwendung-detail-menulist-beschart1').value=ba1code;
@@ -138,7 +158,15 @@ function MitarbeiterVerwendungInit(mitarbeiter_uid, bisverwendung_id)
document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=true;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig').checked=false;
if(azgrelevant=='Nein')
document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=false;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-azgrelevant').checked=true;
if(homeoffice=='Nein')
document.getElementById('mitarbeiter-verwendung-detail-checkbox-homeoffice').checked=false;
else
document.getElementById('mitarbeiter-verwendung-detail-checkbox-homeoffice').checked=true;
MitarbeiterVerwendungDetailToggleHauptberuf();
MitarbeiterVerwendungVerwendungChange();
}
@@ -167,6 +167,14 @@ echo '<?xml-stylesheet href="'.APP_ROOT.'content/datepicker/datepicker.css" type
<label value="Zeitaufzeichnungspflichtig" control="mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig"/>
<checkbox id="mitarbeiter-verwendung-detail-checkbox-zeitaufzeichnungspflichtig"/>
</row>
<row>
<label value="AZG-relevant" control="mitarbeiter-verwendung-detail-checkbox-azgrelevant"/>
<checkbox id="mitarbeiter-verwendung-detail-checkbox-azgrelevant"/>
</row>
<row>
<label value="Homeoffice" control="mitarbeiter-verwendung-detail-checkbox-homeoffice"/>
<checkbox id="mitarbeiter-verwendung-detail-checkbox-homeoffice"/>
</row>
<row>
<spacer />
<hbox>
+1 -1
View File
@@ -252,7 +252,7 @@ else
array('uid', 'stg_kz', 'person_id', 'id', 'prestudent_id', 'buchungsnummern', 'ss', 'abschlusspruefung_id',
'typ', 'all', 'preoutgoing_id', 'lvid', 'projekt_kurzbz', 'von', 'bis', 'stundevon', 'stundebis',
'sem', 'lehreinheit', 'mitarbeiter_uid', 'studienordnung_id', 'fixangestellt', 'standort',
'abrechnungsmonat', 'form')
'abrechnungsmonat', 'form', 'projektarbeit_id', 'betreuerart_kurzbz')
)
)
{
+3 -3
View File
@@ -107,9 +107,9 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"
<vbox id="vbox-main">
<tabbox id="tabbox-main" flex="3" orient="vertical">
<tabs id="tabs-planner-main" orient="horizontal">
<tab id="tab-projekte" label="Projekte" />
<tab id="tab-projekte" label="Projekte" selected="true" />
<tab id="tab-projektphase" label="Phasen" />
<tab id="tab-projekttask" label="Tasks" selected="true" />
<tab id="tab-projekttask" label="Tasks"/>
<tab id="tab-dokumente" label="Dokumente" />
<tab id="tab-ressourceauslastung" label="Ressourcen" />
<tab id="tab-bestellung" label="Bestellungen" />
@@ -176,7 +176,7 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/ressource.overlay.xul.php"
<treechildren>
<treeitem uri="rdf:*">
<treerow>
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#bezeichnung"/>
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#rdf_description"/>
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#typ"/>
<treecell label="rdf:http://www.technikum-wien.at/ressource/rdf#ressource_id"/>
+69 -68
View File
@@ -6,76 +6,77 @@ require_once('../../include/functions.inc.php');
function updateProjektRessource()
{
if(projekt_ressource_id!='')
if(projekt_ressource_id!='')
{
aufwand = document.getElementById("textbox-ressource-aufwand").value;
if (document.getElementById("leitung").selected)
funktion_kurzbz = 'Leitung';
else
funktion_kurzbz = 'Mitarbeiter';
try
{
var soapBody = new SOAPObject("saveProjektRessource");
var projektRessource = new SOAPObject("projektRessource");
projektRessource.appendChild(new SOAPObject("projekt_ressource_id")).val(projekt_ressource_id);
if(projekt_kurzbz != '')
{
projektRessource.appendChild(new SOAPObject("projektphase_id")).val('');
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz);
var res_binding = window.opener.document.getElementById('box-projekt-ressourcen');
}
else if(projektphase_id != '')
{
projektRessource.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id);
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val('');
var res_binding = window.opener.document.getElementById('box-projekt-ressource-phase');
}
projektRessource.appendChild(new SOAPObject("ressource_id")).val(ressource_id);
projektRessource.appendChild(new SOAPObject("funktion_kurzbz")).val(funktion_kurzbz);
projektRessource.appendChild(new SOAPObject("beschreibung")).val(beschreibung);
projektRessource.appendChild(new SOAPObject("aufwand")).val(aufwand);
soapBody.appendChild(projektRessource);
var sr = new SOAPRequest("saveProjektRessource",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/ressource_projekt.soap.php?"+gettimestamp();
function mycallb(obj, projekt_kurzbz, projektphase_id)
{
var ressourcebinding=obj;
var projekt = projekt_kurzbz;
var phase = projektphase_id;
this.invoke=function (respObj)
{
try
{
var id = respObj.Body[0].saveProjektRessourceResponse[0].message[0].Text;
}
catch(e)
{
var fehler = respObj.Body[0].Fault[0].faultstring[0].Text;
alert('Fehler: '+fehler);
return;
}
// Ressourcen Tree aktualisieren
ressourcebinding.LoadRessourceTree(projekt, phase);
aufwand = document.getElementById("textbox-ressource-aufwand").value;
if (document.getElementById("leitung").selected)
funktion_kurzbz = 'Leitung';
else
funktion_kurzbz = 'Mitarbeiter';
try
{
var soapBody = new SOAPObject("saveProjektRessource");
var projektRessource = new SOAPObject("projektRessource");
projektRessource.appendChild(new SOAPObject("projekt_ressource_id")).val(projekt_ressource_id);
if(projekt_kurzbz != '')
{
projektRessource.appendChild(new SOAPObject("projektphase_id")).val('');
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val(projekt_kurzbz);
}
else if(projektphase_id != '')
{
projektRessource.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id);
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val('');
}
projektRessource.appendChild(new SOAPObject("ressource_id")).val(ressource_id);
projektRessource.appendChild(new SOAPObject("funktion_kurzbz")).val(funktion_kurzbz);
projektRessource.appendChild(new SOAPObject("beschreibung")).val(beschreibung);
projektRessource.appendChild(new SOAPObject("aufwand")).val(aufwand);
soapBody.appendChild(projektRessource);
var sr = new SOAPRequest("saveProjektRessource",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/ressource_projekt.soap.php?"+gettimestamp();
function mycallb(obj)
{
var me=obj;
this.invoke=function (respObj)
{
try
{
var id = respObj.Body[0].saveProjektRessourceResponse[0].message[0].Text;
}
catch(e)
{
var fehler = respObj.Body[0].Fault[0].faultstring[0].Text;
alert('Fehler: '+fehler);
return;
}
me.RefreshRessource();
}
}
var cb=new mycallb(this);
//SOAPClient.SendRequest(sr,cb.invoke);
SOAPClient.SendRequest(sr);
}
catch(e)
{
debug("Ressource load failed with exception: "+e);
}
// Popup schließen
window.close();
}
//window.opener.location.reload(false);
window.close();
}
// Callback fuer aktualisierung des Trees nach dem Speichern
var cb=new mycallb(res_binding, projekt_kurzbz, projektphase_id);
SOAPClient.SendRequest(sr,cb.invoke);
}
catch(e)
{
debug("Ressource load failed with exception: "+e);
}
}
}
+51 -51
View File
@@ -25,7 +25,7 @@ require_once('../../config/vilesci.config.inc.php');
var TaskSelectID=null; //ID des Task Eintrages der nach dem Refresh markiert werden soll
var filterErledigt; //Tasks filtern
var currentProjektPhaseID;
var currentProjektPhaseID;
// ********** Observer und Listener ************* //
// ****
@@ -81,13 +81,13 @@ function LoadTasks(projekt_phase_id, filter)
{
// wenn phase übergeben wurde -> setzte globale variable
if(projekt_phase_id != null && projekt_phase_id != '' && typeof optional && "undefined")
currentProjektPhaseID = projekt_phase_id;
currentProjektPhaseID = projekt_phase_id;
// wenn filter übergeben wurde -> setze globale variable
if(filter != null && filter != '' && typeof filter != "undefined")
filterErledigt = filter;
url = "<?php echo APP_ROOT; ?>rdf/projekttask.rdf.php?projektphase_id="+currentProjektPhaseID+"&"+gettimestamp();
url = "<?php echo APP_ROOT; ?>rdf/projekttask.rdf.php?projektphase_id="+currentProjektPhaseID+"&"+gettimestamp();
// überprüfe ob filter gesetzt ist
if(filterErledigt != null)
@@ -100,7 +100,7 @@ function LoadTasks(projekt_phase_id, filter)
{
treeTask.database.RemoveDataSource(oldDatasources.getNext());
}
try
{
datasourceTreeTask.removeXMLSinkObserver(TaskTreeSinkObserver);
@@ -108,7 +108,7 @@ function LoadTasks(projekt_phase_id, filter)
}
catch(e)
{}
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
datasourceTreeTask = rdfService.GetDataSource(url);
datasourceTreeTask.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
@@ -116,7 +116,7 @@ function LoadTasks(projekt_phase_id, filter)
treeTask.database.AddDataSource(datasourceTreeTask);
datasourceTreeTask.addXMLSinkObserver(TaskTreeSinkObserver);
treeTask.builder.addListener(TaskTreeListener);
}
catch(e)
{
@@ -153,7 +153,7 @@ function RessourceTaskLoad(menulist, id)
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
menulist.builder.rebuild();
}
@@ -167,7 +167,7 @@ function TaskTreeRefresh()
//markierte Lehreinheit global speichern damit diese LE nach dem
//refresh wieder markiert werden kann.
var tree = document.getElementById('projekttask-tree');
try
{
TaskSelectID = getTreeCellText(tree, "projekttask-treecol-projekttask_id", tree.currentIndex);
@@ -187,7 +187,7 @@ function TaskNeu()
var tasktree=document.getElementById('projekttask-tree');
tasktree.view.selection.clearSelection();
tree = document.getElementById('tree-projektmenue');
//Projektphase_id holen
var projektphase_id = getTreeCellText(tree, "treecol-projektmenue-projekt_phase_id", tree.currentIndex);
@@ -199,12 +199,12 @@ function TaskNeu()
//Details zuruecksetzen
TaskDetailReset();
TaskDisableFields(false);
document.getElementById('textbox-projekttaskdetail-projektphase_id').value=projektphase_id;
document.getElementById('caption-projekttask-detail').label='Neuer Task';
//Detail Tab auswaehlen
document.getElementById('projekttask-tabs').selectedItem=document.getElementById('projekttask-tab-detail');
document.getElementById('projekttask-tabs').selectedItem=document.getElementById('projekttask-tab-detail');
}
// ****
// * Selectiert die Lektorzuordnung nachdem der Tree
@@ -222,7 +222,7 @@ function TaskTreeSelectTask()
{
//id der row holen
id = getTreeCellText(tree, "projekttask-treecol-projekttask_id", i);
//wenn dies die zu selektierende Zeile
if(TaskSelectID==id)
{
@@ -264,7 +264,7 @@ function TaskDelete()
var soapBody = new SOAPObject("deleteProjekttask");
soapBody.appendChild(new SOAPObject("projekttask_id")).val(id);
var sr = new SOAPRequest("deleteProjekttask",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_deleteProjekttask);
}
@@ -285,7 +285,7 @@ function clb_deleteProjekttask(respObj)
return;
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
TaskSelectID='';
datasourceTreeTask.Refresh(false); //non blocking
SetStatusBarText('Eintrag wurde entfernt');
@@ -332,7 +332,7 @@ function showProjekttaskParsedown()
//Werte holen
projekttask_id = document.getElementById('textbox-projekttaskdetail-projekttask_id').value;
if(!isNaN(projekttask_id) && projekttask_id != '')
{
window.open("projekt/parsedown.php?projekttask_id="+projekttask_id,"Projekttask"+projekttask_id);
@@ -355,15 +355,15 @@ function saveProjekttaskDetail()
aufwand = document.getElementById('textbox-projekttask-detail-aufwand').value;
mantis_id = document.getElementById('textbox-projekttask-detail-mantis_id').value;
scrumsprint_id = document.getElementById('textbox-projekttask-detail-scrumsprint_id').value;
ressource_id = MenulistGetSelectedValue('textbox-projekttask-detail-ressource');
ressource_id = MenulistGetSelectedValue('textbox-projekttask-detail-ressource');
ende = document.getElementById('textbox-projekttask-detail-ende').iso;
if(!isNaN(projektphase_id) && projektphase_id != '')
{
var soapBody = new SOAPObject("saveProjekttask");
//soapBody.appendChild(new SOAPObject("username")).val('joe');
//soapBody.appendChild(new SOAPObject("passwort")).val('waschl');
var task = new SOAPObject("task");
task.appendChild(new SOAPObject("projekttask_id")).val(projekttask_id);
task.appendChild(new SOAPObject("projektphase_id")).val(projektphase_id);
@@ -376,9 +376,9 @@ function saveProjekttaskDetail()
task.appendChild(new SOAPObject("ressource_id")).val(ressource_id);
task.appendChild(new SOAPObject("ende")).val(ende);
soapBody.appendChild(task);
var sr = new SOAPRequest("saveProjekttask",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_saveProjekttask);
}else
@@ -402,7 +402,7 @@ function clb_saveProjekttask(respObj)
}
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
document.getElementById('textbox-projekttaskdetail-projekttask_id').value=id;
TaskSelectID=id;
datasourceTreeTask.Refresh(false); //non blocking
SetStatusBarText('Daten wurden gespeichert');
@@ -415,7 +415,7 @@ function clb_saveProjekttask(respObj)
// ****
function onselectProjekttask()
{
// Trick 17 (sonst gibt's ein Permission denied)
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var tree = document.getElementById('projekttask-tree');
@@ -445,12 +445,12 @@ function onselectProjekttask()
alert(e);
return false;
}
var req = new phpRequest('../rdf/projekttask.rdf.php','','');
req.add('projekttask_id',id);
var response = req.execute();
// Datasource holen
var dsource=parseRDFString(response, 'http://www.technikum-wien.at/projekttask/alle-projekttasks');
@@ -472,7 +472,7 @@ function onselectProjekttask()
var scrumsprint_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#scrumsprint_id" ));
var ressource_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ressource_id" ));
var ende=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#ende" ));
//Daten den Feldern zuweisen
var menulist = document.getElementById('textbox-projekttask-detail-ressource');
RessourceTaskLoad(menulist, projektphase_id);
@@ -486,17 +486,17 @@ function onselectProjekttask()
document.getElementById('textbox-projekttask-detail-scrumsprint_id').value=scrumsprint_id;
MenulistSelectItemOnValue('textbox-projekttask-detail-ressource', ressource_id);
//document.getElementById('textbox-projekttask-detail-ressource').value=ressource_id;
//Notizen zu eines Tasks Laden
notiz = document.getElementById('box-projekttask-notizen');
notiz.LoadNotizTree('','',projekttask_id,'','','','', '','');
//Mantis Tab reset
document.getElementById('textbox-projekttask-mantis-issue_summary').value=bezeichnung;
document.getElementById('textbox-projekttask-mantis-issue_description').value=beschreibung;
//document.getElementById('textbox-projekttask-mantis-issue_project_id').value='1';
//document.getElementById('textbox-projekttask-mantis-issue_category').value='General';
document.getElementById('textbox-projekttask-mantis-mantis_id').value='';
document.getElementById('textbox-projekttask-mantis-issue_view_state_id').value='';
document.getElementById('textbox-projekttask-mantis-issue_view_state_name').value='';
@@ -525,9 +525,9 @@ function onselectProjekttask()
document.getElementById('textbox-projekttask-mantis-issue_due_date').value='';
document.getElementById('textbox-projekttask-mantis-issue_steps_to_reproduce').value='';
document.getElementById('textbox-projekttask-mantis-issue_additional_information').value='';
//Mantis
if (mantis_id!='')
if (false && mantis_id!='')
{
var req = new phpRequest('../rdf/mantis.rdf.php','','');
req.add('issue_id',mantis_id);
@@ -539,7 +539,7 @@ function onselectProjekttask()
getService(Components.interfaces.nsIRDFService);
subject = rdfService.GetResource("http://www.technikum-wien.at/mantis/" + mantis_id);
predicateNS = "http://www.technikum-wien.at/mantis/rdf";
//Daten holen
var issue_id = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_id" ));
var issue_summary=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_summary" ));
@@ -571,12 +571,12 @@ function onselectProjekttask()
var issue_tags_name=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_tags_name" ));
var issue_resolution_id=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_resolution_id" ));
var issue_resolution_name=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_resolution_name" ));
var issue_due_date=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_due_date" ));
var issue_due_date=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_due_date" ));
var issue_steps_to_reproduce=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_steps_to_reproduce" ));
var issue_additional_information=getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#issue_additional_information" ));
ProjekttaskLoadCategories(issue_project_id);
//Daten den Feldern zuweisen
document.getElementById('textbox-projekttask-mantis-mantis_id').value=mantis_id;
document.getElementById('textbox-projekttask-mantis-issue_summary').value=issue_summary;
@@ -610,18 +610,18 @@ function onselectProjekttask()
document.getElementById('textbox-projekttask-mantis-issue_due_date').value=issue_due_date;
document.getElementById('textbox-projekttask-mantis-issue_steps_to_reproduce').value=issue_steps_to_reproduce;
document.getElementById('textbox-projekttask-mantis-issue_additional_information').value=issue_additional_information;
document.getElementById('textbox-projekttask-mantis-issue_tags').value=issue_tags_name;
document.getElementById('textbox-projekttask-mantis-issue_tags').value=issue_tags_name;
}
}
// ****
// * Beim Aendern des Mantis Projekts werden die zugehoerigen
// * Beim Aendern des Mantis Projekts werden die zugehoerigen
// * Kategorien geladen
// ****
function ProjekttaskMantisProjektChange()
{
project_id=document.getElementById('menulist-projekttask-mantis-issue_project_id').value;
if(project_id!='')
ProjekttaskLoadCategories(project_id);
}
@@ -645,10 +645,10 @@ function ProjekttaskLoadCategories(project_id)
}
//Refresh damit die entfernten DS auch wirklich entfernt werden
menulist.builder.rebuild();
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
var datasource = rdfService.GetDataSourceBlocking(url);
datasource.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource);
datasource.QueryInterface(Components.interfaces.nsIRDFXMLSink);
menulist.database.AddDataSource(datasource);
@@ -696,7 +696,7 @@ function saveProjekttaskMantis()
var issue_steps_to_reproduce=document.getElementById('textbox-projekttask-mantis-issue_steps_to_reproduce').value;
var issue_additional_information=document.getElementById('textbox-projekttask-mantis-issue_additional_information').value;
var issue_tags = document.getElementById('textbox-projekttask-mantis-issue_tags').value;
var soapBody = new SOAPObject("saveMantis");
soapBody.appendChild(new SOAPObject("projekttask_id")).val(projekttask_id);
soapBody.appendChild(new SOAPObject("mantis_id")).val(mantis_id);
@@ -731,25 +731,25 @@ function saveProjekttaskMantis()
soapBody.appendChild(new SOAPObject("issue_due_date")).val(issue_due_date);
soapBody.appendChild(new SOAPObject("issue_steps_to_reproduce")).val(issue_steps_to_reproduce);
soapBody.appendChild(new SOAPObject("issue_additional_information")).val(issue_additional_information);
var sr = new SOAPRequest("saveMantis",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_saveProjekttaskMantis);
// Tags speichern
if(mantis_id != '')
{
var soapBody = new SOAPObject("saveTagsForIssue");
soapBody.appendChild(new SOAPObject("mantis_id")).val(mantis_id);
soapBody.appendChild(new SOAPObject("issue_tags")).val(issue_tags);
soapBody.appendChild(new SOAPObject("issue_tags")).val(issue_tags);
var sr = new SOAPRequest("saveTagsForIssue",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr, clb_saveProjekttaskMantis);
}
}
// ****
@@ -779,7 +779,7 @@ function ProjekttaskUpdateErledigt(event)
var col = new Object();
var childElt = new Object();
//Tree holen
var tree = event.currentTarget;
var tree = event.currentTarget;
//Treecol ermitteln in die geklickt wurde
tree.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, childElt);
//abbrechen wenn auf Header oder Scrollbar geklickt wurde
@@ -798,7 +798,7 @@ function ProjekttaskUpdateErledigt(event)
newval='false';
else
newval='true';
var soapBody = new SOAPObject("setErledigt");
//soapBody.appendChild(new SOAPObject("username")).val('joe');
//soapBody.appendChild(new SOAPObject("passwort")).val('waschl');
@@ -807,8 +807,8 @@ function ProjekttaskUpdateErledigt(event)
var sr = new SOAPRequest("setErledigt",soapBody);
SOAPClient.Proxy="<?php echo APP_ROOT;?>soap/projekttask.soap.php?"+gettimestamp();
SOAPClient.SendRequest(sr,function (respObj)
SOAPClient.SendRequest(sr,function (respObj)
{
try
{
+3 -3
View File
@@ -29,7 +29,7 @@ require_once('../../config/vilesci.config.inc.php');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/projekttaskdetail.overlay.xul.php"?>';
echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/mantisdetail.overlay.xul.php"?>';
?>
<overlay id="ProjekttaskOverlay"
xmlns:html="http://www.w3.org/1999/xhtml"
@@ -154,12 +154,12 @@ echo '<?xul-overlay href="'.APP_ROOT.'content/projekt/mantisdetail.overlay.xul.p
<tabbox id="projekttask-tabbox" flex="3" orient="vertical">
<tabs orient="horizontal" id="projekttask-tabs">
<tab id="projekttask-tab-detail" label="Details" />
<tab id="projekttask-tab-mantis" label="Mantis" />
<tab id="projekttask-tab-notizen" label="Notizen" />
</tabs>
<tabpanels id="projekttask-tabpanels-main" flex="1">
<vbox id="box-projekttask-detail" />
<vbox id="box-projekttask-mantis" />
<box class="Notiz" id="box-projekttask-notizen"/>
</tabpanels>
</tabbox>
+2 -2
View File
@@ -64,7 +64,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<toolbarbutton id="toolbarbutton-ressource-projekt-drucken" label="Drucken" oncommand="foo = window.open('<?php echo APP_ROOT; ?>content/projekt/ressourcenauslastung.php?typ=projekt');foo.print();" image="../skin/images/drucken.png" tooltiptext="Drucken"/>
</toolbar>
</toolbox>
<iframe id="iframe-ressource-projekt" flex="5" src="<?php echo APP_ROOT; ?>content/projekt/ressourcenauslastung.php?typ=projekt" />
<iframe id="iframe-ressource-projekt" flex="5" src="<?php echo APP_ROOT; ?>content/projekt/ressourcenauslastung.php?empty" />
</vbox>
<vbox>
<toolbox>
@@ -89,4 +89,4 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
</tabpanels>
</tabbox>
</vbox>
</overlay>
</overlay>
+6 -2
View File
@@ -259,16 +259,19 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
]]>
</body>
</method>
<method name="DeleteRessource">
<method name="DeleteRessource">
<parameter name="ressource_id"/>
<body>
<body>
<![CDATA[
//debug('Refresh Notiz');
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
try
{
var col = tree.columns.getColumnFor(document.getAnonymousElementByAttribute(this ,'anonid', 'treecol-ressource-projekt_ressource_id'));
var projekt_ressource_id = tree.view.getCellText(tree.currentIndex, col);
var projekt_kurzbz = this.getAttribute('projekt_kurzbz');
var projektphase_id = this.getAttribute('projektphase_id');
//var projekt_ressource_id = this.getAttribute('projekt_ressource_id');
var soapBody = new SOAPObject("deleteProjektRessource");
//soapBody.appendChild(new SOAPObject("username")).val('joe');
@@ -286,6 +289,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
projektRessource.appendChild(new SOAPObject("projekt_kurzbz")).val('');
}
projektRessource.appendChild(new SOAPObject("ressource_id")).val(ressource_id);
projektRessource.appendChild(new SOAPObject("projekt_ressource_id")).val(projekt_ressource_id);
soapBody.appendChild(projektRessource);
var sr = new SOAPRequest("deleteProjektRessource",soapBody);
+12 -5
View File
@@ -34,7 +34,12 @@ $datum = date('Y-m-d',$timestamp);
$endetimestamp = jump_week($timestamp,$showweeks);
$endedatum = date('Y-m-d',$endetimestamp);
if(isset($_GET['projekt_kurzbz']) && $_GET['projekt_kurzbz']!='')
if(isset($_GET['empty']))
{
echo '<br><br><br>';
exit;
}
elseif(isset($_GET['projekt_kurzbz']) && $_GET['projekt_kurzbz']!='')
{
$projekt_kurzbz=$_GET['projekt_kurzbz'];
}
@@ -60,9 +65,10 @@ else
$anzahl_warnung = 6;
}
foreach($ressource->result as $row)
{
$ressource_arr[]=$row->bezeichnung;
}
$ressource_arr = array_unique($ressource_arr);
@@ -117,7 +123,7 @@ foreach($ressource_arr as $bezeichnung)
$beistrich=false;
$start = $datum_obj->mktime_fromdate($row->start);
$ende = $datum_obj->mktime_fromdate($row->ende);
if($row->bezeichnung == $bezeichnung
if($row->bezeichnung == $bezeichnung
&& ($row->start=='' || $start<=$timestamp_kw)
&& ($row->ende=='' || $ende>=$timestamp_kw)
)
@@ -156,10 +162,10 @@ foreach($ressource_arr as $bezeichnung)
if($beistrich)
$title.=', ';
}
}
$title = mb_substr($title,0,-1);
$htmlrow.='<td title="'.$title.'" align="center">';
if($anzahl>=$anzahl_warnung)
$htmlrow.='<span class="warning">'.$anzahl.($typ!='projekt'?'/'.$aufwandssumme:'').'</span>';
@@ -173,6 +179,7 @@ foreach($ressource_arr as $bezeichnung)
ob_flush();
}
echo ' </table>';
echo '
</body>
</html>';
+24 -1
View File
@@ -365,7 +365,6 @@ if(!$error)
$error = true;
$errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang';
}
//Studentendaten speichern
if(!$error)
{
@@ -377,7 +376,15 @@ if(!$error)
$errormsg = 'Fehler beim Laden:'.$student->errormsg;
$error = true;
}
$datum = new datum();
$gebdatum = $_POST['geburtsdatum'];
if($gebdatum!='' && !$datum->checkDatum($gebdatum))
{
$return = false;
$errormsg = 'Geburtsdatum ist nicht korrekt.';
$error = true;
}
if(!$error)
{
$student->uid = $_POST['uid'];
@@ -2296,8 +2303,12 @@ if(!$error)
{
$dokumente = explode(';',$_POST['dokumente']);
$errormsg = '';
$sonst = 0;
foreach ($dokumente as $dokument_kurzbz)
{
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
continue;
if($dokument_kurzbz!='')
{
$dok = new dokument();
@@ -2308,6 +2319,8 @@ if(!$error)
$dok->insertamum = date('Y-m-d H:i:s');
$dok->insertvon = $user;
$dok->new = true;
if ($dokument_kurzbz === 'Sonst')
$sonst++;
if(!$dok->save())
{
@@ -2501,8 +2514,13 @@ if(!$error)
{
$dokumente = explode(';',$_POST['dokumente']);
$errormsg = '';
$sonst = 0;
foreach ($dokumente as $dokument_kurzbz)
{
if ($dokument_kurzbz === 'Sonst' && $sonst !== 0)
continue;
if($dokument_kurzbz!='')
{
$dok = new dokument();
@@ -2514,6 +2532,11 @@ if(!$error)
{
$errormsg .= "Fehler bei $dokument_kurzbz: $dok->errormsg\n";
}
else
{
if ($dokument_kurzbz === 'Sonst')
$sonst++;
}
}
else
{
+1 -1
View File
@@ -151,7 +151,7 @@ echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>';
<template>
<menupopup>
<menuitem value="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#mobilitaetsprogramm_code"
label="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#kurzbz"
label="rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#kurzbz - rdf:http://www.technikum-wien.at/mobilitaetsprogramm/rdf#beschreibung"
uri="rdf:*"/>
</menupopup>
</template>
+13 -1
View File
@@ -892,7 +892,13 @@ function StudentProjektbetreuerAuswahl()
document.getElementById('student-projektbetreuer-checkbox-neu').checked=false;
var gesamtkosten = StudentProjektbetreuerGesamtkosten();
if (document.getElementById('student-projektbetreuer-button-beurteilung'))
{
checkBeurteilung();
}
// Wenn Vertragsdetails angezeigt werden
if (projektarbeit_vertragsdetails_anzeigen) {
//Reset attributes
@@ -1122,6 +1128,12 @@ function StudentProjektbetreuerDetailDisableFields(val)
document.getElementById('student-projektbetreuer-button-speichern').disabled=val;
document.getElementById('student-projektbetreuer-button-neueperson').disabled=val;
document.getElementById('student-projektbetreuer-button-kontaktdaten').disabled=val;
if (document.getElementById('student-projektbetreuer-button-beurteilung') && val === true)
{
document.getElementById('student-projektbetreuer-button-beurteilung').disabled=val;
document.getElementById('student-projektbetreuer-span-beurteilung').setAttribute("value", '');
}
}
// ****
@@ -520,7 +520,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
</groupbox>
<!-- Vertragsdetails: Anzeige wird ueber config Eintrag bestimmt -->
<vbox>
<vbox id="student-projektbetreuer-vbox">
<groupbox id="student-projektbetreuer-groupbox-vertragsdetails" hidden="<?php echo $is_hidden ?>">
<caption label="Vertragsdetails" />
<grid style="overflow:auto; padding:10px;" flex="1">
@@ -529,7 +529,7 @@ $is_hidden = (!defined('FAS_STUDIERENDE_PROJEKTARBEIT_VERTRAGSDETAILS_ANZEIGEN')
<column flex="1"/>
<column flex="1"/>
</columns>
<rows>
<rows >
<label id="student-projektbetreuer-label-vertrag_id" hidden="true" value=""/>
<row>
<label value="Vertragsstatus:"/>
+1 -1
View File
@@ -473,7 +473,7 @@ function SyncLVPlan()
// ****
function OpenManualTempus()
{
window.open('https://wiki.fhcomplete.org/doku.php?id=tempus:allgemeines','Manual');
window.open('https://wiki.fhcomplete.info/doku.php?id=tempus:allgemeines','Manual');
}
// ****
+24 -5
View File
@@ -148,17 +148,37 @@ class datum
}
/**
* Prueft ob das Datum im Format dd.mm.YYYY oder YYYY-mm-dd ist
* @return true wenn ok, false wenn falsches Format
* Prueft ob das Datum im Format dd.mm.YYYY oder YYYY-mm-dd ist UND ob es sich um ein gültiges Datum handelt
* @return true wenn ok, false wenn falsches Format und/oder nicht gültig
*/
public function checkDatum($datum)
{
if(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})$",$datum) || mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$",$datum))
return true;
//Format dd.mm.yyyy
if(mb_ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})$", $datum))
{
$year = substr($datum, 6, 4);
$month = substr($datum, 3, 2);
$day = substr($datum, 0, 2);
}
//Format yyyy-mm-dd
elseif(mb_ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})$", $datum))
{
$year = substr($datum, 0, 4);
$month = substr($datum, 5, 2);
$day = substr($datum, 8, 2);
}
else
{
return false;
}
return checkdate($month, $day, $year);
}
/**
* Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen)
* @param $datum1
@@ -395,6 +415,5 @@ class datum
{
return intval(substr($timestring, 0, 2)) + intval(substr($timestring, 3, 2)) / 60;
}
}
?>
+53
View File
@@ -1121,4 +1121,57 @@ function setLeadingZero($number, $length = 2)
return str_pad($number, $length, "0", STR_PAD_LEFT);
}
}
/**
* Generates a new token for diffent use cases. Default token length is 64
* - Reading messages
* - Forgotten password
* - etc
* Returns null on failure
*/
function generateUniqueToken($length = 64)
{
$token = null;
$firstGeneratedToken = null;
// For PHP 7 you can use random_bytes()
if (function_exists('random_bytes'))
{
try
{
$firstGeneratedToken = random_bytes($length); // try to generates cryptographically secure pseudo-random bytes...
}
catch (Exception $e) { $firstGeneratedToken = null; } // if fails $firstGeneratedToken is set to null
}
// For PHP >= 5.3 and < 7 and openssl is available
elseif (function_exists('openssl_random_pseudo_bytes'))
{
$firstGeneratedToken = openssl_random_pseudo_bytes($length, $strong);
// If the token generation ended with errors OR the generated token is NOT strong enough
if ($firstGeneratedToken == false || $strong == false) $firstGeneratedToken = null; // $firstGeneratedToken is set to null
}
if ($firstGeneratedToken != null) // If everything was fine
{
// base64 is about 33% longer, so we need to truncate the result
$token = strtr(substr(base64_encode($firstGeneratedToken), 0, $length), '+/=', '-_,');
}
// Fallback to mt_rand if:
// php < 5.3
// OR no openssl is available
// OR openssl_random_pseudo_bytes used an algorithm that is cryptographically NOT strong
// OR one of the previous methods failed
if ($token == null)
{
$token = ''; // set $token as an empty string
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+';
$charactersLength = strlen($characters) - 1;
// Select some random characters
for ($i = 0; $i < $length; $i++) $token .= $characters[mt_rand(0, $charactersLength)];
}
return $token;
}
?>
+2 -2
View File
@@ -139,7 +139,7 @@ class gemeinde extends basis_db
if($this->db_query($qry))
{
//naechste ID aus der Sequence holen
$qry="SELECT currval('tbl_gemeinde_gemeinde_id_seq') as id;";
$qry="SELECT currval('bis.tbl_gemeinde_gemeinde_id_seq') as id;";
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -219,4 +219,4 @@ class gemeinde extends basis_db
return true;
}
}
?>
?>
+619 -618
View File
File diff suppressed because it is too large Load Diff
+44 -28
View File
@@ -691,10 +691,11 @@ class organisationseinheit extends basis_db
*
* @param string $user uid
* @param integer $zeitraum Anzahl Tage in die Vergangenheit, die fuer das Auftreten der OE beruecksichtigt werden sollen
* @param integer $anzahl_ereignisse default: 3 Wie oft soll diese OE mindestens in $zeitraum vorkommen, um beruecksichtigt zu werden
* @param string $anzahl_ereignisse default: 3 Wie oft soll diese OE mindestens in $zeitraum vorkommen, um beruecksichtigt zu werden
* @param boolean $aktiv
* @param array $funktion_zuordnungen Einschränkung nach zugeordneten Funktionen (Gültigkeitszeitraum heute - 1 Monat 1 Tag nach Gültigkeitsende)
*/
public function getFrequent($user, $zeitraum=null, $anzahl_ereignisse='3', $aktiv=null)
public function getFrequent($user, $zeitraum=null, $anzahl_ereignisse='3', $aktiv=null, $funktion_zuordnungen=array())
{
if(!is_numeric($anzahl_ereignisse))
{
@@ -707,36 +708,51 @@ class organisationseinheit extends basis_db
else
$zeit = "";
$qry = "SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
organisationseinheittyp_kurzbz,
aktiv,
lehre,
count(tbl_zeitaufzeichnung.zeitaufzeichnung_id)
FROM campus.tbl_zeitaufzeichnung
JOIN public.tbl_organisationseinheit ON(oe_kurzbz IN (oe_kurzbz_1,oe_kurzbz_2))
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
GROUP BY tbl_organisationseinheit.oe_kurzbz HAVING COUNT(*) > $anzahl_ereignisse
UNION
SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
organisationseinheittyp_kurzbz,
aktiv,
lehre,
'0'
FROM public.tbl_organisationseinheit";
$qry = "SELECT * FROM (
SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
organisationseinheittyp_kurzbz,
aktiv,
lehre,
count(tbl_zeitaufzeichnung.zeitaufzeichnung_id)
FROM campus.tbl_zeitaufzeichnung
JOIN public.tbl_organisationseinheit ON(oe_kurzbz IN (oe_kurzbz_1,oe_kurzbz_2))
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
$zeit
GROUP BY tbl_organisationseinheit.oe_kurzbz HAVING COUNT(*) > $anzahl_ereignisse
UNION
SELECT
oe_kurzbz,
oe_parent_kurzbz,
bezeichnung,
organisationseinheittyp_kurzbz,
aktiv,
lehre,
'0'
FROM public.tbl_organisationseinheit";
if(!is_null($aktiv))
$qry.=" WHERE aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
$qry .=" ORDER BY count DESC,bezeichnung,oe_kurzbz";
$qry .=") oes";
if (isset($funktion_zuordnungen) && is_array($funktion_zuordnungen) && count($funktion_zuordnungen) > 0)
{
$qry .= " WHERE EXISTS (
SELECT 1 FROM public.tbl_benutzerfunktion
WHERE uid = ".$this->db_add_param($user)."
AND funktion_kurzbz IN (".$this->db_implode4SQL($funktion_zuordnungen).")
AND oe_kurzbz = oes.oe_kurzbz
AND (datum_von <= now() OR datum_von IS NULL)
AND (datum_bis + interval '1 month 1 day' >= now() OR datum_bis IS NULL)
)";
}
$qry .= " ORDER BY count DESC,bezeichnung,oe_kurzbz";
if($this->db_query($qry))
{
+3 -1
View File
@@ -81,7 +81,9 @@ class organisationsform extends basis_db
$this->errormsg ="Fehler bei der Abfrage aufgetreten";
return false;
}
}
return true;
}
/**
*
+126 -3
View File
@@ -335,7 +335,7 @@ class projektbetreuer extends basis_db
}
/**
* Retrieves all projektarbeiten by person (only with stundensatz > 0)
* Retrieves all projektarbeiten by person
* @param $person_id
* @return boolean If succeeded true and result-array with objects of each projektarbeit of the person.
*/
@@ -349,8 +349,6 @@ class projektbetreuer extends basis_db
FROM
lehre.tbl_projektbetreuer
WHERE
(stundensatz IS NOT NULL) AND (stundensatz > 0)
AND
person_id =' . $this->db_add_param($person_id, FHC_INTEGER);
if ($this->db_query($qry))
@@ -391,5 +389,130 @@ class projektbetreuer extends basis_db
return false;
}
}
/**
* Holt Zweitbegutachter einer Projektarbeit mit Mail.
* @param $erstbegutachter_person_id int person_id des Erstbegutachters
* @param $projektarbeit_id int
* @param $student_uid string uid des Studenten der Arbeit abgibt
* @return object | bool
*/
public function getZweitbegutachterWithToken($erstbegutachter_person_id, $projektarbeit_id, $student_uid)
{
$qry_betr="SELECT betr.person_id, betr.projektarbeit_id, pers.anrede, betr.zugangstoken, betr.zugangstoken_gueltigbis, tbl_benutzer.uid, kontakt,
trim(COALESCE(titelpre,'')||' '||COALESCE(vorname,'')||' '||COALESCE(nachname,'')||' '||COALESCE(titelpost,'')) as voller_name,
CASE WHEN tbl_benutzer.uid IS NULL THEN kontakt ELSE tbl_benutzer.uid || '@".DOMAIN."' END AS email, abg.abgabedatum
FROM lehre.tbl_projektbetreuer betr
JOIN lehre.tbl_projektarbeit parb ON betr.projektarbeit_id = parb.projektarbeit_id
JOIN public.tbl_person pers ON betr.person_id = pers.person_id
LEFT JOIN public.tbl_kontakt ON pers.person_id = tbl_kontakt.person_id AND kontakttyp = 'email' AND zustellung = true
LEFT JOIN public.tbl_benutzer ON pers.person_id = tbl_benutzer.person_id
LEFT JOIN campus.tbl_paabgabe abg ON betr.projektarbeit_id = abg.projektarbeit_id AND abg.paabgabetyp_kurzbz = 'end'
WHERE betr.betreuerart_kurzbz = 'Zweitbegutachter'
AND betr.projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND parb.student_uid = ".$this->db_add_param($student_uid)."
AND EXISTS (
SELECT 1 FROM lehre.tbl_projektbetreuer
WHERE person_id = ".$this->db_add_param($erstbegutachter_person_id, FHC_INTEGER)."
AND betreuerart_kurzbz = 'Erstbegutachter'
AND projektarbeit_id = betr.projektarbeit_id
)
AND (tbl_benutzer.aktiv OR tbl_benutzer.aktiv IS NULL)
ORDER BY betr.insertamum DESC
LIMIT 1";
if ($betr=$this->db_query($qry_betr))
{
$row_betr = $this->db_fetch_object($betr);
if ($row_betr)
return $row_betr;
else
return false;
}
else
{
return false;
}
}
/**
* Generiert Token für externen Zweitbetreuer wenn noch kein Token vorhanden ist.
* @param int $zweitbegutachter_person_id
* @param int $projektarbeit_id
* @return bool true wenn erfolgreich (generiert oder bereits vorhanden), false wenn fehlgeschlagen
*/
public function generateZweitbegutachterToken($zweitbegutachter_person_id, $projektarbeit_id)
{
// if externer Betreuer and no valid token, generate
$betreuerUidQry = "SELECT uid, zugangstoken, zugangstoken_gueltigbis, tbl_projektbetreuer.person_id
FROM lehre.tbl_projektbetreuer
JOIN public.tbl_person USING(person_id)
LEFT JOIN public.tbl_benutzer USING(person_id)
WHERE projektarbeit_id = ".$this->db_add_param($projektarbeit_id, FHC_INTEGER)."
AND tbl_projektbetreuer.person_id = ".$this->db_add_param($zweitbegutachter_person_id, FHC_INTEGER)."
AND betreuerart_kurzbz = 'Zweitbegutachter'
LIMIT 1";
if ($betreueruidres = $this->db_query($betreuerUidQry))
{
$row_betr = $this->db_fetch_object($betreueruidres);
if ($row_betr)
{
if (!isset($row_betr->uid)
&& (!isset($row_betr->zugangstoken) || $row_betr->zugangstoken_gueltigbis < date('Y-m-d')))
{
$tokenanzahl = 1;
while ($tokenanzahl > 0)
{
//generate random string
$token = generateUniqueToken(16);
if (!$token)
return false;
$qry_tokencheck = "SELECT count(*) AS anzahl
FROM lehre.tbl_projektbetreuer
WHERE zugangstoken = " . $this->db_add_param($token);
if ($tokencount = $this->db_query($qry_tokencheck))
{
$row_tokencount = $this->db_fetch_object($tokencount);
$tokenanzahl = (int)$row_tokencount->anzahl;
}
else
{
return false;
}
}
$qry_upd = "UPDATE lehre.tbl_projektbetreuer SET
zugangstoken = " . $this->db_add_param($token) . ",
zugangstoken_gueltigbis = CURRENT_DATE + interval '1 year'
WHERE projektarbeit_id = " . $this->db_add_param($projektarbeit_id, FHC_INTEGER) . "
AND person_id = " . $this->db_add_param($row_betr->person_id, FHC_INTEGER) . "
AND betreuerart_kurzbz = 'Zweitbegutachter'";
if ($this->db_query($qry_upd))
{
return true;
}
else
{
return false;
}
}
else
return true; // not generated because intern or already exists
}
else
return false;// not found
}
else
return false; // query error
}
}
?>
+83 -11
View File
@@ -86,7 +86,7 @@ class ressource extends basis_db
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->updatevon = $row->updatevon;
$this->funktion_kurzbz = $row->funktion_kurzbz;
return true;
}
@@ -130,7 +130,7 @@ class ressource extends basis_db
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->updatevon = $row->updatevon;
$this->result[] = $obj;
}
//var_dump($this->result);
@@ -174,7 +174,7 @@ class ressource extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->aufwand = $row->aufwand;
$obj->aufwand = $row->aufwand;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->projekt_ressource_id= $row->projekt_ressource_id;
@@ -189,8 +189,8 @@ class ressource extends basis_db
return false;
}
}
/**
*
* Lädt die Projektressource
@@ -203,15 +203,15 @@ class ressource extends basis_db
$this->result=array();
if($this->db_query($qry))
{
{
if($row = $this->db_fetch_object())
{
$this->ressource_id = $row->ressource_id;
$this->beschreibung = $row->beschreibung;
$this->aufwand = $row->aufwand;
$this->aufwand = $row->aufwand;
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->projekt_ressource_id= $row->projekt_ressource_id;
$this->projekt_kurzbz = $row->projekt_kurzbz;
$this->projekt_ressource_id= $row->projekt_ressource_id;
$this->projekt_kurzbz = $row->projekt_kurzbz;
$this->projektphase_id = $row->projektphase_id;
return true;
}
@@ -223,7 +223,7 @@ class ressource extends basis_db
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
/**
*
@@ -256,7 +256,7 @@ class ressource extends basis_db
$obj->insertvon = $row->insertvon;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
$obj->aufwand = $row->aufwand;
$obj->aufwand = $row->aufwand;
$obj->funktion_kurzbz = $row->funktion_kurzbz;
$obj->projekt_ressource_id = $row->projekt_ressource_id;
$this->result[] = $obj;
@@ -688,5 +688,77 @@ class ressource extends basis_db
return false;
}
}
/**
* Löscht eine Ressource zu Projekt Zuordnung
* @param type $ressource_id
* @param type $projekt_kurzbz
* @return boolean
*/
public function deleteFromProjektWithProjektRessourceId($ressource_id, $projekt_kurzbz, $project_ressource_id)
{
if($ressource_id == '' || !is_numeric($ressource_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
/*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
*/
$qry="
DELETE FROM fue.tbl_projekt_ressource pr
USING fue.tbl_ressource r
WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). "
AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). "
AND pr.projekt_kurzbz=".$this->db_add_param($projekt_kurzbz, FHC_STRING, false).';';
if($this->db_query($qry))
{
return true;
}
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
/**
* Löscht eine Ressource zu Phase Zuordnung
* @param type $ressource_id
* @param type $projekt_kurzbz
* @return boolean
*/
public function deleteFromPhaseWithProjektRessourceId($ressource_id, $projektphase_id, $project_ressource_id)
{
if($ressource_id == '' || !is_numeric($ressource_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
if($projektphase_id == '' || !is_numeric($projektphase_id))
{
$this->errormsg = 'Ressource Id ist keine gültige Zahl';
return false;
}
/*$qry="DELETE FROM fue.tbl_projekt_ressource WHERE ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false)."
AND projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
*/
$qry="
DELETE FROM fue.tbl_projekt_ressource pr
USING fue.tbl_ressource r
WHERE r.ressource_id =".$this->db_add_param($ressource_id, FHC_INTEGER, false). "
AND pr.projekt_ressource_id=".$this->db_add_param($project_ressource_id, FHC_INTEGER, false). "
AND pr.projektphase_id=".$this->db_add_param($projektphase_id, FHC_INTEGER, false).';';
if($this->db_query($qry))
return true;
else
{
$this->errormsg = 'Fehler beim Löschen der Daten';
return false;
}
}
}
?>
+16 -4
View File
@@ -23,6 +23,7 @@ require_once(dirname(__FILE__).'/mail.class.php');
require_once(dirname(__FILE__).'/vorlage.class.php');
const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
const DEFAULT_SANCHO_FOOTER_IMG = 'sancho_footer_DEFAULT.jpg';
/**
* Send single Mail with Sancho Design and Layout.
@@ -31,14 +32,17 @@ const DEFAULT_SANCHO_HEADER_IMG = 'sancho_header_DEFAULT.jpg';
* to be replaced in the content template.
* @param string $to Email-adress.
* @param string $subject Subject of mail.
* @param string $headerImg Filename of the specific Sancho header image.
* @return boolean True, if succeeded.
* @param string $headerImg Filename of the specific Sancho header image.
* @param string $footerImg
* @param string $replyTo default Email-adress for reply.
* @param string | array $cc
* @return boolean True, if succeeded.
*/
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG)
function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerImg = DEFAULT_SANCHO_HEADER_IMG, $footerImg = DEFAULT_SANCHO_FOOTER_IMG, $replyTo = '', $cc = '')
{
$from = 'sancho@'. DOMAIN;
$sanchoHeader_img = dirname(__FILE__). '/../skin/images/sancho/'. $headerImg;
$sanchoFooter_img = dirname(__FILE__). '/../skin/images/sancho/sancho_footer.jpg';
$sanchoFooter_img = dirname(__FILE__). '/../skin/images/sancho/'. $footerImg;
// Set unique content id for embedding header and footer image
$cid_header = uniqid();
@@ -63,7 +67,15 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm
// * embed the images
$mail->addEmbeddedImage($sanchoHeader_img, 'image/jpg', '', $cid_header);
$mail->addEmbeddedImage($sanchoFooter_img, 'image/jpg', '', $cid_footer);
// * Set reply-to
if (isset($replyTo) && $replyTo != '')
$mail->setReplyTo($replyTo);
// * Set cc
if (isset($cc) && $cc != '')
$mail->setCCRecievers($cc);
// * embed the html content
$mail->setHTMLContent($body);
+12 -1
View File
@@ -1,5 +1,6 @@
<?php
$this->phrasen['abgabetool/abgabetool']='Abgabetool';
$this->phrasen['abgabetool/aeltereParbeitBenoten']='Projektarbeit für älteres Semester, bitte Word-Formular zur Benotung verwenden!';
$this->phrasen['abgabetool/typ']='Typ';
$this->phrasen['abgabetool/titel']='Titel';
$this->phrasen['abgabetool/betreuerart']='Betreuerart';
@@ -61,8 +62,10 @@ $this->phrasen['abgabetool/fehlerTerminEintragen']='Die Termin konnte nicht eing
$this->phrasen['abgabetool/fehlerTerminLoeschen']='Fehler beim Löschen des Termins!';
$this->phrasen['abgabetool/keineBerechtigungStudentenansicht']='Sie haben keine Berechtigung zum Anzeigen der Studentenansicht';
$this->phrasen['abgabetool/dateneingabeUnvollstaendig']='Die Dateneingabe ist unvollständig';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Fehler beim Versenden des Mails an den (Erst-)Begutachter!';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Fehler beim Versenden des Mails an den Erstbegutachter!';
$this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Fehler beim Versenden des Mails an den Zweitbegutachter!';
$this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Betreuer nicht gefunden. Kein Mail verschickt!';
$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Fehler bei Ermittlung der Aktualit&auml;t der Projektarbeit';
$this->phrasen['abgabetool/keinPDF']='Upload ist keine pdf-Datei! Bitte wiederholen Sie den Fileupload.';
$this->phrasen['abgabetool/dateiZuGross']='Die Datei ist zu groß! Maximale Dateigröße 15 MB';
$this->phrasen['abgabetool/fehlerTerminVorbei']='Die Abgabefrist für diesen Termin ist bereits abgelaufen.';
@@ -78,4 +81,12 @@ Sollten Sie trotzdem die `Eidesstattliche Erklärung´ samt Unterschrift hochlad
$this->phrasen['abgabetool/gelesenUndAkzeptiert']='Gelesen und akzeptiert';
$this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Erklärung nicht akzeptiert';
$this->phrasen['abgabetool/downloadProjektarbeit']='Dokument herunterladen';
$this->phrasen['abgabetool/zweitBegutachter']='ZweitbegutachterIn';
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Zugangstoken an ZweitbegutachterIn noch einmal senden';
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail an ZweitbegutachterIn (%s) gesendet';
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Mail an ZweitbegutachterIn (%s) senden';
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='keine Zustellmail für Zweitbegutachter vorhanden!';
$this->phrasen['abgabetool/projektbeurteilungDownload']='Projektbeurteilung herunterladen';
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='Erst-/Begutachter';
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Zweitbegutachter';
?>
+7 -7
View File
@@ -11,11 +11,11 @@ $this->phrasen['dms_link/iconPDF']='46'; //PDF Icon
$this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungsanleitung Mailverteiler
$this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler
$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/learningAgreementErasmus']='85863'; //Learning Agreement Incomings Erasmus
$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus
$this->phrasen['dms_link/passwortpolicy']='57972'; //Passwortpolicy
$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus
$this->phrasen['dms_link/passwortpolicy']='57972'; //Passwortpolicy
// Content IDs (=Englisch)
$this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID)
@@ -32,8 +32,8 @@ $this->phrasen['dms_link/lvevaluierungStudierendeCMS']=''; //Beschreibung des Ab
$this->phrasen['dms_link/lvevaluierungMitarbeiterCMS']=''; //Beschreibung des Ablaufs der LVEvaluierung für Mitarbeiter
//Links auf externe Seiten
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.info/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
?>
+1 -1
View File
@@ -184,7 +184,7 @@
<!ENTITY menu-dokumente.accesskey "D">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.key "I">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.label "Inskriptionsbestätigung">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.label "Studienbestätigung">
<!ENTITY menu-dokumente-inskriptionsbestaetigung.accesskey "I">
<!ENTITY menu-dokumente-bewerberakt.key "B">
+1 -1
View File
@@ -5,7 +5,7 @@ $this->phrasen['tools/dokumente']='Dokumente';
$this->phrasen['tools/dokument']='Dokument';
$this->phrasen['tools/erstelldatum']='Erstelldatum';
$this->phrasen['tools/bestaetigungenZeugnisse']='Bestätigungen/Zeugnisse';
$this->phrasen['tools/inskriptionsbestaetigung']='Inskriptionsbestätigung';
$this->phrasen['tools/inskriptionsbestaetigung']='Studienbestätigung';
$this->phrasen['tools/studienbeitragFuerSSBezahlt']='Studienbeitrag für das %1$s bezahlt';
$this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='Studienbeitrag für das %1$s noch nicht bezahlt';
$this->phrasen['tools/studienerfolgsbestaetigung']='Studienerfolgsbestätigung';
+6
View File
@@ -40,4 +40,10 @@ $this->phrasen['urlaubstool/freigegebenerUrlaubGeloescht']='Bereits Freigegebene
$this->phrasen['urlaubstool/VorgesetzteInformiert']='Email wurde an %s versandt';
$this->phrasen['urlaubstool/konnteKeinInformationsemailVersendetWerden']='Es konnte kein Email versendet werden, da kein Vorgesetzter eingetragen ist!';
$this->phrasen['urlaubstool/xHatUrlaubGeloescht']='%s %s hat bereits freigegebenen Urlaub gelöscht';
$this->phrasen['urlaubstool/urlaubsfreigabe']='Freigabe Urlaub: ';
$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Bestätigungsmail an %s versandt';
$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von';
$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:';
?>
+12 -1
View File
@@ -1,5 +1,6 @@
<?php
$this->phrasen['abgabetool/abgabetool']='Submission tool';
$this->phrasen['abgabetool/aeltereParbeitBenoten']='Thesis handed in for older semester, please use word form for assessment!';
$this->phrasen['abgabetool/typ']='Type';
$this->phrasen['abgabetool/titel']='Title';
$this->phrasen['abgabetool/betreuerart']='Supervisor type';
@@ -60,8 +61,10 @@ $this->phrasen['abgabetool/fehlerTerminEintragen']='The deadline could not be en
$this->phrasen['abgabetool/fehlerTerminLoeschen']='Error deleting the deadline!';
$this->phrasen['abgabetool/keineBerechtigungStudentenansicht']='You are not allowed to view this Page';
$this->phrasen['abgabetool/dateneingabeUnvollstaendig']='Incomplete Data input';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Error sending E-Mail to Assessor!';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Error sending E-Mail to first Assessor!';
$this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Error sending E-Mail to second Assessor!';
$this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Assessor not found. No E-Mail sent!';
$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Error when checking if current thesis';
$this->phrasen['abgabetool/keinPDF']='Upload-File ist not a PDF! Please retry the Fileupload.';
$this->phrasen['abgabetool/dateiZuGross']='The File is too big! Maximum File size: 15 MB';
$this->phrasen['abgabetool/fehlerTerminVorbei']='The deadline for this upload has already expired.';
@@ -78,4 +81,12 @@ Sollten Sie trotzdem die `Eidesstattliche Erklärung´ samt Unterschrift hochlad
$this->phrasen['abgabetool/gelesenUndAkzeptiert']='Read and accepted';
$this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='Declaration not accepted';
$this->phrasen['abgabetool/downloadProjektarbeit']='Download File';
$this->phrasen['abgabetool/zweitBegutachter']='Second assessor';
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor';
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)';
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)';
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!';
$this->phrasen['abgabetool/projektbeurteilungDownload']='Thesis-Assessment download';
$this->phrasen['abgabetool/projektbeurteilungErstDownload']='First-/Assessor';
$this->phrasen['abgabetool/projektbeurteilungZweitDownload']='Second Assessor';
?>
+6 -6
View File
@@ -10,11 +10,11 @@ $this->phrasen['dms_link/moodleHandbuch24']='1426'; //Moodle Handbuch
$this->phrasen['dms_link/iconPDF']='46'; //PDF Icon
$this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungsanleitung Mailverteiler
$this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler
$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung
$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung
$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt
$this->phrasen['dms_link/learningAgreementErasmus']='85863'; //Learning Agreement Incomings Erasmus
$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus
$this->phrasen['dms_link/learningAgreement']='38866'; //Learning Agreement Incomings NICHT Erasmus
// Content IDs (=Deutsch)
$this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID)
@@ -27,8 +27,8 @@ $this->phrasen['dms_link/profilhilfe']=''; //Hilfe-Link aus dem Profil
$this->phrasen['dms_link/anleitungMailverteiler']='7578'; //Anleitung für die Benutzung der Mailverteiler und der Berechtigungsschlüssel
//Links auf externe Seiten
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.org/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.org/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
$this->phrasen['dms_link/dokuwikiGesamtnote']='https://wiki.fhcomplete.info/doku.php?id=cis:gesamtnote'; //Link ins Dokuwiki zur Anleitung Gesamtnote
$this->phrasen['dms_link/abgabetoolLektorHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer LektorInnen
$this->phrasen['dms_link/abgabetoolStudentHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_studierende'; //Abgabetool Handbuch fuer Studierende
$this->phrasen['dms_link/abgabetoolAssistenzHandbuch']='https://wiki.fhcomplete.info/doku.php?id=cis:abgabetool_fuer_lektoren'; //Abgabetool Handbuch fuer Assistenz
?>
+6
View File
@@ -36,4 +36,10 @@ $this->phrasen['urlaubstool/meineZeitsperren']='My Planned Absences';
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']='Sie können diesen unter folgender Adresse freigeben'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeansuchenUrlaub']='Freigabeansuchen Urlaub'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/freigabeFehlt']='Vacation has not been approved yet';
$this->phrasen['urlaubstool/urlaubsfreigabe']='Vacation approval: ';
$this->phrasen['urlaubstool/bestaetigungsmailWurdeVersandt']='Confirmation mail to %s sent';
$this->phrasen['urlaubstool/urlaubVon']='Ihr angefragter Urlaub von'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/urlaubBis']=' wurde von %s freigegeben.'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseEinsehen']='Sie können diesen unter folgender Adresse einsehen:'; //Nur übersetzen, wenn die eMail in der eingestellten Sprache versandt werden soll
?>
+9 -1
View File
@@ -1,5 +1,6 @@
<?php
$this->phrasen['abgabetool/abgabeLektorenbereich']='Consegna portale lettori';
$this->phrasen['abgabetool/aeltereParbeitBenoten']='Thesis handed in for older semester, please use word form for assessment!';
$this->phrasen['abgabetool/abgabeStudentenbereich']='consegna portale studente';
$this->phrasen['abgabetool/abgabetermine']='scadenze consegna';
$this->phrasen['abgabetool/abgabetool']='Strumenti di consegna';
@@ -28,10 +29,12 @@ $this->phrasen['abgabetool/englischeSchlagwoerter']='parole chiave inglesi';
$this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='dichiarazione non accettata';
$this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Impossibile trovare il relatore. Nessuna email spedita';
$this->phrasen['abgabetool/fehlerMail']='errore di spedizione della email!';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Errore di trasmissione della mail al (primo) esaminatore';
$this->phrasen['abgabetool/fehlerMailBegutachter']='Errore di trasmissione della mail al primo esaminatore';
$this->phrasen['abgabetool/fehlerMailZweitBegutachter']='Errore di trasmissione della mail al secondo esaminatore';
$this->phrasen['abgabetool/fehlerMailStudent']='errore di spedizione della mai agli studenti!';
$this->phrasen['abgabetool/fehlerTerminEintragen']='scadenza non è stata registrata!';
$this->phrasen['abgabetool/fehlerTerminLoeschen']='Errore in sede di cancellazione della scadenza!';
$this->phrasen['abgabetool/fehlerAktualitaetProjektarbeit']='Error when checking if current thesis';
$this->phrasen['abgabetool/fix']='fisso';
$this->phrasen['abgabetool/fixerAbgabetermin']='scadenza consegna inderogabile';
$this->phrasen['abgabetool/gelesenUndAkzeptiert']='Letto e accettato';
@@ -68,4 +71,9 @@ $this->phrasen['abgabetool/ueberschrift']='tesi bachelor / master';
$this->phrasen['abgabetool/upload']='Upload';
$this->phrasen['abgabetool/variablerAbgabetermin']='scadenza consegna variabile';
$this->phrasen['abgabetool/zweitbetreuerBei']='secondo relatore presso';
$this->phrasen['abgabetool/zweitBegutachter']='Second assessor';
$this->phrasen['abgabetool/zweitbetreuerTokenMailSenden']='Resend access token to second assessor';
$this->phrasen['abgabetool/zweitbetreuerMailSenden']='Send mail to second assessor (%s)';
$this->phrasen['abgabetool/zweitbegutachterMailGesendet']='Mail sent to second assessor (%s)';
$this->phrasen['abgabetool/zweitBegutachterEmailFehlt']='Second assessor has no delivery mail adress!';
?>
@@ -31,6 +31,20 @@ var InfocenterPersonDataset = {
var formHtml = '<form id="sendMsgsForm" method="post" action="'+ url +'" target="_blank"></form>';
$("#datasetActionsTop").before(formHtml);
var auswahlAbsageToggle =
'<a class="absageToggle">Erweiterte Einstellungen</a>';
var auswahlAbsage =
'<select class="form-control absgstatusgrund" style="width:auto; float:left;">' +
'<option value="null" selected="selected"> Absagegrund </option>' +
'</select>' +
'<select class="form-control auswahlAbsageStg" style="width:auto; float:left;">' +
'<option value="null" selected="selected"> Studiengang </option>' +
'</select>' +
'<button class="btn btn-default auswahlAbsageBtn" style="float:left"> Absage </button>';
InfocenterPersonDataset.getAbsageData();
var studienSemesterHtml = '<button class="btn btn-default btn-xs decStudiensemester">' +
'<i class="fa fa-chevron-left"></i>' +
'</button>&nbsp;' +
@@ -60,6 +74,14 @@ var InfocenterPersonDataset = {
"<div class='col-xs-12 text-center'>"+studienSemesterHtml+"</div>"+
"</div><div class='h-divider'></div><hr class='studiensemesterline'>");
$("#datasetActionsBottom").append(
"<div class='row'>"+
"<div class='col-xs-12'>"+auswahlAbsageToggle+"</div>"+
"<div class='col-xs-12' id='absagePunkte' style='display:none'>"+auswahlAbsage+"</div>"+
"</div>" +
"<div class='h-divider'></div>" +
"<hr class='studiensemesterline'>"
)
$("button.incStudiensemester").click(function() {
InfocenterPersonDataset.changeStudiensemesterUservar(1);
});
@@ -68,6 +90,29 @@ var InfocenterPersonDataset = {
InfocenterPersonDataset.changeStudiensemesterUservar(-1);
});
$('button.auswahlAbsageBtn').click(function()
{
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
if(idsel.length <= 0)
return FHC_DialogLib.alertInfo("Bitte wählen Sie die Personen aus.");
if($('.absgstatusgrund').val() === 'null' || $('.auswahlAbsageStg').val() === 'null')
return FHC_DialogLib.alertInfo("Bitte den Absagegrund und Studiengang auswählen.");
$(".absageModalForAll").modal("show");
});
$('#saveAbsageForAll').click(function()
{
InfocenterPersonDataset.saveAbsageForAll();
});
$('a.absageToggle').click(function()
{
$('#absagePunkte').toggle();
})
var personcount = 0;
FHC_AjaxClient.ajaxCallGet(
@@ -203,6 +248,75 @@ var InfocenterPersonDataset = {
);
},
saveAbsageForAll: function()
{
var idsel = $("#filterTableDataset input:checked[name=PersonId\\[\\]]");
var statusgrund = $('.absgstatusgrund').val();
var studiengang = $('.auswahlAbsageStg').val();
var personen = [];
for (var i = 0; i < idsel.length; i++)
{
personen.push($(idsel[i]).val());
}
FHC_AjaxClient.ajaxCallPost(
'system/infocenter/InfoCenter/saveAbsageForAll',
{
'statusgrund': statusgrund,
'studiengang': studiengang,
'personen' : personen
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
if (FHC_AjaxClient.hasData(data))
FHC_DialogLib.alertSuccess("Erfolgreich gespeichert.")
$(".absageModalForAll").modal("hide");
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(textStatus);
}
}
);
},
getAbsageData: function()
{
FHC_AjaxClient.ajaxCallGet(
'system/infocenter/InfoCenter/getAbsageData',
{},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
data = FHC_AjaxClient.getData(data);
$.each(data.statusgruende, function(key, value){
$('.absgstatusgrund').append($("<option/>", {
value: value.statusgrund_id,
text: value.bezeichnung_mehrsprachig[0]
}))
})
$.each(data.studiengaenge, function(key, value){
$('.auswahlAbsageStg').append($("<option/>", {
value: value.studiengang,
text: value.studiengang
}))
})
}
},
errorCallback: function(jqXHR, textStatus, errorThrown) {
FHC_DialogLib.alertError(textStatus);
}
}
);
},
/**
* initializes call to get the Studiensemester user variable
*/
+1
View File
@@ -389,6 +389,7 @@ foreach($prestudent_arr as $prest_id)
$studienplan->loadStudienplan($prestudent_orgform->studienplan_id);
echo "\t\t<studienplan_sprache>".$studienplan->sprache."</studienplan_sprache>\n";
echo "\t\t<studienplan_regelstudiendauer>".$studienplan->regelstudiendauer."</studienplan_regelstudiendauer>\n";
// check ob Quereinsteiger
$ausbildungssemester = ($prestudent_orgform->ausbildungssemester!='')?$prestudent_orgform->ausbildungssemester:'1';
+13 -1
View File
@@ -84,12 +84,22 @@ function draw_row($row)
$hauptberuflich = $row->hauptberuflich?'Ja':'Nein';
else
$hauptberuflich = '';
if(is_bool($row->zeitaufzeichnungspflichtig))
$zeitaufzeichnungspflichtig = $row->zeitaufzeichnungspflichtig?'Ja':'Nein';
else
$zeitaufzeichnungspflichtig = '';
if(is_bool($row->azgrelevant))
$azgrelevant = $row->azgrelevant?'Ja':'Nein';
else
$azgrelevant = '';
if(is_bool($row->homeoffice))
$homeoffice = $row->homeoffice?'Ja':'Nein';
else
$homeoffice = '';
echo '
<RDF:li>
<RDF:Description id="'.$row->bisverwendung_id.'" about="'.$rdf_url.'/'.$row->bisverwendung_id.'" >
@@ -119,6 +129,8 @@ function draw_row($row)
<VERWENDUNG:dv_art><![CDATA['.$row->dv_art.']]></VERWENDUNG:dv_art>
<VERWENDUNG:inkludierte_lehre><![CDATA['.$row->inkludierte_lehre.']]></VERWENDUNG:inkludierte_lehre>
<VERWENDUNG:zeitaufzeichnungspflichtig><![CDATA['.$zeitaufzeichnungspflichtig.']]></VERWENDUNG:zeitaufzeichnungspflichtig>
<VERWENDUNG:azgrelevant><![CDATA['.$azgrelevant.']]></VERWENDUNG:azgrelevant>
<VERWENDUNG:homeoffice><![CDATA['.$homeoffice.']]></VERWENDUNG:homeoffice>
</RDF:Description>
</RDF:li>
';
+44 -46
View File
@@ -275,29 +275,29 @@ function drawLehrauftrag($uid)
FROM
campus.vw_lehreinheit
JOIN lehre.tbl_lehreinheitmitarbeiter lema USING (lehreinheit_id, mitarbeiter_uid)
JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE
mitarbeiter_uid=".$db->db_add_param($uid)."
AND studiensemester_kurzbz=".$db->db_add_param($ss). "
AND lema.vertrag_id IS NOT NULL
AND vertragsstatus_kurzbz = 'akzeptiert'";
AND lema.vertrag_id IS NOT NULL
AND vertragsstatus_kurzbz = 'akzeptiert'";
if ($studiengang_kz != '') //$studiengang_kz!='0' &&
{
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
}
{
$qry .= " AND lv_studiengang_kz=".$db->db_add_param($studiengang_kz);
}
elseif (!empty($xsl_oe_kurzbz))
{
if ($xsl_oe_kurzbz == 'etw')
{
$qry .= " AND lv_studiengang_kz > 0";
}
{
if ($xsl_oe_kurzbz == 'etw')
{
$qry .= " AND lv_studiengang_kz > 0";
}
if ($xsl_oe_kurzbz == 'lehrgang')
{
$qry .= " AND lv_studiengang_kz <= 0";
}
}
if ($xsl_oe_kurzbz == 'lehrgang')
{
$qry .= " AND lv_studiengang_kz <= 0";
}
}
$qry .= " ORDER BY lv_orgform_kurzbz, lv_bezeichnung, lehreinheit_id";
$lv = array();
@@ -390,8 +390,8 @@ function drawLehrauftrag($uid)
$gesamtstunden = $gesamtstunden + $stunden;
}
}
$qry = 'SELECT
pa.projektarbeit_id,
$qry = 'SELECT
pa.projektarbeit_id,
pb.faktor,
pb.stunden,
pb.stundensatz,
@@ -401,37 +401,37 @@ function drawLehrauftrag($uid)
student.studiengang_kz,
projekttyp_kurzbz,
lv.oe_kurzbz,
vertragsstatus_kurzbz
vertragsstatus_kurzbz
FROM lehre.tbl_projektbetreuer pb
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
JOIN campus.vw_student student ON pa.student_uid = student.uid
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
JOIN lehre.tbl_projektarbeit pa USING (projektarbeit_id)
JOIN lehre.tbl_lehreinheit le USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv USING (lehrveranstaltung_id)
JOIN PUBLIC.tbl_organisationseinheit oe USING (oe_kurzbz)
JOIN public.tbl_benutzer benutzer ON pb.person_id = benutzer.person_id
JOIN campus.vw_student student ON pa.student_uid = student.uid
LEFT JOIN lehre.tbl_vertrag vertrag USING (vertrag_id)
LEFT JOIN lehre.tbl_vertrag_vertragsstatus vvst USING (vertrag_id)
WHERE pb.vertrag_id IS NOT NULL
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
AND benutzer.uid = '.$db->db_add_param($uid).'
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
AND vvst.vertragsstatus_kurzbz = \'akzeptiert\'
AND benutzer.uid = '.$db->db_add_param($uid).'
AND le.studiensemester_kurzbz = '.$db->db_add_param($ss);
if ($studiengang_kz != '')
{
$qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
}
elseif (!empty($xsl_oe_kurzbz))
{
if ($xsl_oe_kurzbz == 'etw')
{
$qry .= " AND lv.studiengang_kz > 0";
}
{
$qry .= " AND lv.studiengang_kz=".$db->db_add_param($studiengang_kz, FHC_INTEGER);
}
elseif (!empty($xsl_oe_kurzbz))
{
if ($xsl_oe_kurzbz == 'etw')
{
$qry .= " AND lv.studiengang_kz > 0";
}
if ($xsl_oe_kurzbz == 'lehrgang')
{
$qry .= " AND lv.studiengang_kz <= 0";
}
}
if ($xsl_oe_kurzbz == 'lehrgang')
{
$qry .= " AND lv.studiengang_kz <= 0";
}
}
if ($result = $db->db_query($qry))
{
@@ -471,8 +471,6 @@ function drawLehrauftrag($uid)
}
}
foreach ($lv as $lv_row)
{
$xml .= '
+5 -5
View File
@@ -19,7 +19,7 @@
*/
$projekt_kurzbz=(isset($_GET['projekt_kurzbz'])?$_GET['projekt_kurzbz']:null);
$projekt_phase=(isset($_GET['projekt_phase'])?$_GET['projekt_phase']:null);
$projekt_phase=(isset($_GET['projekt_phase'])?$_GET['projekt_phase']:null);
if($projekt_phase != null && (is_numeric($projekt_phase) == false ))
die('Ungültige ProjektphasenID');
@@ -81,7 +81,7 @@ $ressource = new ressource();
if($projekt_kurzbz!=null)
$ressource->getProjectRessourcen($projekt_kurzbz);
else if($projekt_phase!= null)
$ressource->getPhaseRessourcen($projekt_phase);
$ressource->getPhaseRessourcen($projekt_phase);
else
$ressource->getAllRessourcen();
@@ -171,7 +171,7 @@ function draw_ressource($ressource)
else
die('Fehler beim Laden der Mitarbeiter-daten');
$mitarbeiter.="\n\t\t\t<RDF:li resource=\"".$rdf_url.$ressource->ressource_id."\" />";
$mitarbeiter.="\n\t\t\t<RDF:li resource=\"".$rdf_url.$ressource->ressource_id.'/'.$ressource->projekt_ressource_id."\" />";
$typ ='Mitarbeiter';
}
// Ressource ist ein Student
@@ -229,7 +229,7 @@ function draw_ressource($ressource)
}
echo '
<RDF:Description about="'.$rdf_url.$ressource->ressource_id.'" >
<RDF:Description about="'.$rdf_url.$ressource->ressource_id.'/'.$ressource->projekt_ressource_id.'" >
<RESSOURCE:ressource_id><![CDATA['.$ressource->ressource_id.']]></RESSOURCE:ressource_id>
<RESSOURCE:bezeichnung><![CDATA['.$ressource->bezeichnung.']]></RESSOURCE:bezeichnung>
<RESSOURCE:typ><![CDATA['.$typ.']]></RESSOURCE:typ>
@@ -242,7 +242,7 @@ function draw_ressource($ressource)
<RESSOURCE:insertvon><![CDATA['.$ressource->insertvon.']]></RESSOURCE:insertvon>
<RESSOURCE:updateamum><![CDATA['.$ressource->updateamum.']]></RESSOURCE:updateamum>
<RESSOURCE:updatevon><![CDATA['.$ressource->updatevon.']]></RESSOURCE:updatevon>
<RESSOURCE:aufwand><![CDATA['.$ressource->aufwand.']]></RESSOURCE:aufwand>
<RESSOURCE:aufwand><![CDATA['.$ressource->aufwand.']]></RESSOURCE:aufwand>
<RESSOURCE:funktion_kurzbz><![CDATA['.$ressource->funktion_kurzbz.']]></RESSOURCE:funktion_kurzbz>
<RESSOURCE:projekt_ressource_id><![CDATA['.$ressource->projekt_ressource_id.']]></RESSOURCE:projekt_ressource_id>
<RESSOURCE:rdf_description><![CDATA['.$RdfDescription.']]></RESSOURCE:rdf_description>
+50 -36
View File
@@ -156,42 +156,8 @@ foreach($uid_arr as $uid)
echo "\t\t<ects_pro_semester><![CDATA[".($studienplan->regelstudiendauer!=0?$studienordnung->ects/$studienplan->regelstudiendauer:0)."]]></ects_pro_semester>";
echo "\t\t<aktuellesJahr><![CDATA[".date('Y')."]]></aktuellesJahr>";
echo "\t\t<ausbildungssemester_aktuell><![CDATA[".$prestudent->ausbildungssemester."]]></ausbildungssemester_aktuell>";
$studiensemester_aktuell = new studiensemester();
$studiensemester_aktuell->load($studiensemester);
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><![CDATA[".str_replace('.', ',', $oehbeitrag)."]]></oehbeitrag>";
// 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);
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><![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));
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:'';
$abbrecher = false;
switch($status_aktuell)
{
@@ -209,12 +175,60 @@ foreach($uid_arr as $uid)
break;
case 'Abbrecher':
$studierendenstatus_aktuell = 'AbbrecherIn';
$enddatum = date('d.m.Y',strtotime($prestudent->bestaetigtam));
$abbrecher = true;
break;
default:
$studierendenstatus_aktuell ='';
}
echo "\t\t<abbrecher><![CDATA[".($abbrecher?'true':'false')."]]></abbrecher>";
echo "\t\t<studierendenstatus_aktuell><![CDATA[".$studierendenstatus_aktuell."]]></studierendenstatus_aktuell>\n";
echo "\t\t<ausbildungssemester_aktuell><![CDATA[".$prestudent->ausbildungssemester."]]></ausbildungssemester_aktuell>";
$studiensemester_aktuell = new studiensemester();
$studiensemester_aktuell->load($studiensemester);
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><![CDATA[".str_replace('.', ',', $oehbeitrag)."]]></oehbeitrag>";
// 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);
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();
if($abbrecher)
$abschluss = $prestudent->studiensemester_kurzbz;
else
$abschluss = $studiensemester_abschluss->jump($prestudent->studiensemester_kurzbz, $studienplan->regelstudiendauer-$prestudent->ausbildungssemester);
$studiensemester_abschluss->load($abschluss);
echo "\t\t<voraussichtlichLetztesStudiensemester><![CDATA[".$studiensemester_abschluss->bezeichnung."]]></voraussichtlichLetztesStudiensemester>";
$studiensemester_endedatum = new studiensemester();
$studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1));
$status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:'';
$enddatum = date('d.m.Y',strtotime($studiensemester_abschluss->ende));
echo "\t\t<studiensemester_endedatum><![CDATA[".date('d.m.Y',strtotime($studiensemester_endedatum->ende))."]]></studiensemester_endedatum>";
if($abbrecher)
echo "\t\t<voraussichtlichLetztesStudiensemester_datum><![CDATA[".date('d.m.Y',strtotime($prestudent->datum))."]]></voraussichtlichLetztesStudiensemester_datum>";
else
echo "\t\t<voraussichtlichLetztesStudiensemester_datum><![CDATA[".$enddatum."]]></voraussichtlichLetztesStudiensemester_datum>";
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";
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

+5 -3
View File
@@ -70,7 +70,7 @@ function saveProjektRessource($username, $passwort, $projektRessource)
$ressource->projekt_ressource_id=$projektRessource->projekt_ressource_id;
$ressource->projektphase_id=$projektRessource->projektphase_id;
$ressource->projekt_kurzbz=$projektRessource->projekt_kurzbz;
$ressource->ressource_id = $projektRessource->ressource_id;
$ressource->ressource_id = $projektRessource->ressource_id;
$ressource->funktion_kurzbz = $projektRessource->funktion_kurzbz;
$ressource->beschreibung = $projektRessource->beschreibung;
$ressource->aufwand = $projektRessource->aufwand;
@@ -105,7 +105,7 @@ function deleteProjektRessource($username, $passwort, $projektRessource)
if($projektRessource->projektphase_id != '')
{
// von Projektphase löschen
if($ressource->deleteFromPhase($projektRessource->ressource_id, $projektRessource->projektphase_id))
if($ressource->deleteFromPhaseWithProjektRessourceId($projektRessource->ressource_id, $projektRessource->projektphase_id, $projektRessource->projekt_ressource_id))
return "Erfolg";
else
return "Fehler beim Löschen";
@@ -113,8 +113,10 @@ function deleteProjektRessource($username, $passwort, $projektRessource)
}
else
{
// von Projekt löschen
if($ressource->deleteFromProjekt($projektRessource->ressource_id, $projektRessource->projekt_kurzbz))
//if($ressource->deleteFromProjekt($projektRessource->ressource_id, $projektRessource->projekt_kurzbz))
if($ressource->deleteFromProjektWithProjektRessourceId($projektRessource->ressource_id, $projektRessource->projekt_kurzbz, $projektRessource->projekt_ressource_id))
return "Erfolg";
else
return "Fehler beim Löschen";
+1 -1
View File
@@ -37,7 +37,7 @@ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:message name="DeleteProjektRessourceRequest">
<wsdl:part name="username" type="xsd:string" minOccurs="0"></wsdl:part>
<wsdl:part name="passwort" type="xsd:string" minOccurs="0"></wsdl:part>
<wsdl:part name="projektRessource" type="tns:projektRessource"></wsdl:part>
<wsdl:part name="projektRessource" type="xsd:projektRessource"></wsdl:part>
</wsdl:message>
<wsdl:message name="DeleteProjektRessourceResponse">
+1 -1
View File
@@ -54,7 +54,7 @@ $data = array
'rolle_kurzbz' => 'admin',
'berechtigung' => array
(
'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
'admin', 'assistenz', 'basis/addon', 'basis/ampel', 'basis/ampeluebersicht', 'basis/benutzer', 'basis/berechtigung', 'basis/betriebsmittel', 'basis/cms', 'basis/cms_review', 'basis/cms_sperrfreigabe', 'basis/cronjob', 'basis/dms', 'basis/fas', 'basis/ferien', 'basis/fhausweis','basis/firma', 'basis/infoscreen', 'basis/moodle', 'basis/moodle','basis/news', 'basis/notiz', 'basis/organisationseinheit', 'basis/ort', 'basis/orgform', 'basis/person', 'basis/planner', 'basis/service', 'basis/statistik', 'basis/studiengang', 'basis/tempus', 'basis/testtool', 'basis/variable', 'basis/vilesci', 'buchung/typen', 'buchung/mitarbeiter', 'inout/incoming', 'inout/outgoing', 'inout/uebersicht', 'lehre', 'lehre/abgabetool', 'lehre/freifach', 'lehre/lehrfach', 'lehre/lehrveranstaltung', 'lehre/lvplan', 'lehre/lvinfo', 'lehre/pruefungsanmeldungAdmin', 'lehre/pruefungsbeurteilung', 'lehre/pruefungsbeurteilungAdmin', 'lehre/pruefungsterminAdmin', 'lehre/pruefungsfenster', 'lehre/reihungstest', 'lehre/reservierung', 'lehre/studienordnung', 'lehre/studienordnungInaktiv', 'lehre/studienplan', 'lehre/vorrueckung', 'lv-plan', 'lv-plan/gruppenentfernen', 'lv-plan/lektorentfernen', 'mitarbeiter', 'mitarbeiter/bankdaten', 'mitarbeiter/personalnummer', 'mitarbeiter/stammdaten', 'mitarbeiter/urlaube', 'mitarbeiter/zeitsperre', 'mitarbeiter/zeitwuensche', 'news', 'planner', 'preinteressent', 'raumres', 'reihungstest', 'sdTools', 'soap/lv', 'soap/lvplan', 'soap/mitarbeiter', 'soap/ort', 'soap/pruefungsfenster', 'soap/student', 'soap/studienordnung', 'soap/benutzer', 'soap/buchungen', 'student/bankdaten', 'student/anrechnung', 'student/anwesenheit', 'student/dokumente', 'student/noten', 'system/phrase', 'system/vorlage', 'system/vorlagestudiengang', 'student/stammdaten', 'student/vorrueckung', 'system/developer', 'system/loginasuser', 'user', 'veranstaltung', 'vertrag/mitarbeiter', 'vertrag/typen', 'wawi/berichte', 'wawi/bestellung', 'wawi/bestellung_advanced', 'wawi/budget', 'wawi/delete_advanced', 'wawi/firma', 'wawi/freigabe', 'wawi/freigabe_advanced', 'wawi/inventar', 'wawi/konto', 'wawi/kostenstelle', 'wawi/rechnung', 'wawi/rechnung_freigeben', 'wawi/rechnung_transfer', 'wawi/storno'
)
)
);
+1
View File
@@ -171,6 +171,7 @@ $berechtigungen = array(
array('mitarbeiter/stammdaten','Stammdaten der Mitarbeiter'),
array('mitarbeiter/urlaube','Mit diesem Recht werden im CIS die Urlaube von allen Mitarbeiter sichtbar'),
array('mitarbeiter/zeitsperre','Zeitsperren- und Urlaubsverwaltung'),
array('mitarbeiter/zeitwuensche','Berechtigung um Zeitwünsche zu editieren'),
array('news','News eintragen'),
array('planner','Planner Verwaltung'),
array('preinteressent','Verwaltung der Preinteressenten'),
File diff suppressed because it is too large Load Diff
+35 -3
View File
@@ -463,7 +463,17 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Current Semester of Study</text:p>
<xsl:choose>
<xsl:when test = "abbrecher='true'">
<text:p text:style-name="P4">Semester resigned from Study</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Current Semester of Study</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P2">
@@ -482,7 +492,17 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Current Semester in Degree Program</text:p>
<xsl:choose>
<xsl:when test = "abbrecher='true'">
<text:p text:style-name="P4">Resignation Semester in Degree Program</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Current Semester in Degree Program</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P2">
@@ -516,6 +536,7 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:span></text:p>
</table:table-cell>
</table:table-row>
<xsl:if test="abbrecher='false'">
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Expected Final Semester of Study</text:p>
@@ -535,9 +556,20 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</text:span></text:p>
</table:table-cell>
</table:table-row>
</xsl:if>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Expected Date of Graduation</text:p>
<xsl:choose>
<xsl:when test="abbrecher='true'">
<text:p text:style-name="P4">Resignation Date</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Expected Date of Graduation</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P15"><xsl:value-of select="voraussichtlichLetztesStudiensemester_datum"/></text:p>
+36 -3
View File
@@ -426,7 +426,16 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Aktuelles Studiensemester</text:p>
<xsl:choose>
<xsl:when test = "abbrecher='true'">
<text:p text:style-name="P4">Abgemeldet im Studiensemester</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Aktuelles Studiensemester</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P2">
@@ -435,7 +444,17 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
</table:table-row>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Aktuelles Ausbildungssemester</text:p>
<xsl:choose>
<xsl:when test = "abbrecher='true'">
<text:p text:style-name="P4">Abgemeldet im Ausbildungssemester</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Aktuelles Ausbildungssemester</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P2">
@@ -451,6 +470,9 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:span text:style-name="T4"><xsl:value-of select="studierendenstatus_aktuell"/></text:span></text:p>
</table:table-cell>
</table:table-row>
<xsl:if test="abbrecher='false'">
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Voraussichtlich letztes Studiensemester</text:p>
@@ -460,9 +482,20 @@ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn
<text:span text:style-name="T4"><xsl:value-of select="voraussichtlichLetztesStudiensemester"/></text:span></text:p>
</table:table-cell>
</table:table-row>
</xsl:if>
<table:table-row table:style-name="Tabelle3.1">
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P4">Voraussichtliches Abschlussdatum</text:p>
<xsl:choose>
<xsl:when test="abbrecher='true'">
<text:p text:style-name="P4">Abgemeldet am</text:p>
</xsl:when>
<xsl:otherwise>
<text:p text:style-name="P4">Voraussichtliches Abschlussdatum</text:p>
</xsl:otherwise>
</xsl:choose>
</table:table-cell>
<table:table-cell table:style-name="Tabelle3.A1" office:value-type="string">
<text:p text:style-name="P15"><xsl:value-of select="voraussichtlichLetztesStudiensemester_datum"/></text:p>
+2 -2
View File
@@ -964,8 +964,8 @@ function _generateXML($person_arr)
$xml .= '<VerwendungsCode><![CDATA['. $verwendung->verwendung_code. ']]></VerwendungsCode>';
$xml .= '<BeschaeftigungsArt1><![CDATA['. $verwendung->ba1code. ']]></BeschaeftigungsArt1>';
$xml .= '<BeschaeftigungsArt2><![CDATA['. $verwendung->ba2code. ']]></BeschaeftigungsArt2>';
$xml .= '<BeschaeftigungsAusmassVZAE><![CDATA['. $verwendung->vzae. ']]></BeschaeftigungsAusmassVZAE>';
$xml .= '<BeschaeftigungsAusmassJVZAE><![CDATA['. $verwendung->jvzae. ']]></BeschaeftigungsAusmassJVZAE>';
$xml .= '<BeschaeftigungsAusmassVZAE><![CDATA['. number_format($verwendung->vzae,2,'.',''). ']]></BeschaeftigungsAusmassVZAE>';
$xml .= '<BeschaeftigungsAusmassJVZAE><![CDATA['. number_format($verwendung->jvzae,2,'.',''). ']]></BeschaeftigungsAusmassJVZAE>';
$xml .= '</Verwendung>';
}
+2 -1
View File
@@ -106,7 +106,8 @@ if(!isset($_GET['searchstr']))
$email=$row->uid.'@'.DOMAIN;
echo "<td nowrap><a href='mailto:$email'>$email</a></td>";
echo "<td nowrap class='button'><a href='personen_details.php?uid=".$row->uid."'>Edit</a></td>";
if($rechte->isBerechtigt('student/stammdaten', null, 's') || $rechte->isBerechtigt('mitarbeiter/stammdaten', null, 's'))
echo "<td nowrap class='button'><a href='personen_details.php?uid=".$row->uid."'>Edit</a></td>";
echo "<td nowrap class='button'>";
if ($row->lektor)
{

Some files were not shown because too many files have changed in this diff Show More