Merge branch 'master' into signatur

This commit is contained in:
Andreas Österreicher
2018-02-27 08:19:55 +01:00
22 changed files with 886 additions and 585 deletions
@@ -69,7 +69,6 @@ class InfoCenter extends VileSci_Controller
// Loads libraries
$this->load->library('DmsLib');
$this->load->library('PersonLogLib');
$this->load->library('MailLib');
$this->load->library('WidgetLib');
$this->_setAuthUID(); // sets property uid
@@ -195,6 +194,26 @@ class InfoCenter extends VileSci_Controller
redirect(self::URL_PREFIX.'/showDetails/'.$person_id.'#DokPruef');
}
/**
* Gets prestudent that was last modified in json format, for ZGV übernehmen
* @param $person_id
*/
public function getLastPrestudentWithZgvJson($person_id)
{
$prestudent = $this->PrestudentModel->getLastPrestudent($person_id, true);
if (isError($prestudent))
{
show_error($prestudent->retval);
}
$jsonoutput = count($prestudent->retval) > 0 ? $prestudent->retval[0] : null;
$this->output
->set_content_type('application/json')
->set_output(json_encode($jsonoutput));
}
/**
* Saves a zgv for a prestudent. includes Ort, Datum, Nation for bachelor and master.
* @param $prestudent_id
@@ -226,7 +245,8 @@ class InfoCenter extends VileSci_Controller
'zgvmas_code' => $zgvmas_code,
'zgvmaort' => $zgvmaort,
'zgvmadatum' => $zgvmadatum,
'zgvmanation' => $zgvmanation_code
'zgvmanation' => $zgvmanation_code,
'updateamum' => date('Y-m-d H:i:s')
)
);
@@ -250,7 +270,6 @@ class InfoCenter extends VileSci_Controller
*/
public function saveAbsage($prestudent_id)
{
//TODO email messaging
$statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -336,6 +355,8 @@ class InfoCenter extends VileSci_Controller
show_error($result->retval);
}
$this->_sendFreigabeMail($prestudent_id);
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz']));
@@ -666,15 +687,18 @@ class InfoCenter extends VileSci_Controller
$zgvpruefungen[] = $zgvpruefung;
}
// Interessenten come first
usort($zgvpruefungen, function ($a, $b)
{
// Interessenten come first, otherwise by bewerbungsdatum desc, then by prestudent_id desc
usort($zgvpruefungen, function ($a, $b) {
$bewdatesort = strcmp($b->prestudentstatus->bewerbung_abgeschicktamum, $a->prestudentstatus->bewerbung_abgeschicktamum);
$defaultsort = $bewdatesort === 0 ? (int)$b->prestudent_id - (int)$a->prestudent_id : $bewdatesort;
if (!isset($a->prestudentstatus->status_kurzbz) || !isset($b->prestudentstatus->status_kurzbz))
return 0;
return $defaultsort;
elseif ($a->prestudentstatus->status_kurzbz === 'Interessent' && $b->prestudentstatus->status_kurzbz === 'Interessent')
{
//infoonly Interessenten come after new Interessenten
if ($a->infoonly)
if ($a->infoonly === $b->infoonly)
return $defaultsort;
elseif ($a->infoonly)
return 1;
elseif ($b->infoonly)
return -1;
@@ -684,7 +708,7 @@ class InfoCenter extends VileSci_Controller
elseif ($b->prestudentstatus->status_kurzbz === 'Interessent')
return 1;
else
return 0;
return $defaultsort;
});
$statusgruende = $this->StatusgrundModel->loadWhere(array('status_kurzbz' => 'Abgewiesener'))->retval;
@@ -755,9 +779,86 @@ class InfoCenter extends VileSci_Controller
$this->uid
);
}
/*
private function _sendFreigabeMail()
/**
* Sends infomail with prestudent and person data when Prestudent is freigegeben
* @param $prestudent_id
*/
private function _sendFreigabeMail($prestudent_id)
{
$this->maillib->send('alex@alex-ThinkCentre-M900', 'karpen_ko@hotmail.com', 'test', 'test');
}*/
//get data
$prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id)->retval[0];
$prestudentstatus = $prestudent->prestudentstatus;
$person_id = $prestudent->person_id;
$person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval;
//fill mail variables
$interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin';
$sprache = $prestudentstatus->sprachedetails->bezeichnung[0];
$orgform = $prestudentstatus->orgform != '' ? ' ('.$prestudentstatus->orgform.')' : '';
$geschlecht = $person->geschlecht == 'm' ? 'männlich' : 'weiblich';
$geburtsdatum = date('d.m.Y', strtotime($person->gebdatum));
$notizenBewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung')->retval;
$notizentext = '';
$lastElement = end($notizenBewerbung);
foreach ($notizenBewerbung as $notiz)
{
$notizentext .= $notiz->text;
if ($notiz != $lastElement)
$notizentext .= ' | ';
}
$mailadresse = '';
foreach ($person->kontakte as $kontakt)
{
if ($kontakt->kontakttyp === 'email')
{
$mailadresse = $kontakt->kontakt;
break;
}
}
$data = array
(
'interessentbez' => $interessentbez,
'studiengangbez' => $prestudent->studiengangbezeichnung,
'studiengangtypbez' => $prestudent->studiengangtyp_bez,
'orgform' => $orgform,
'studiensemester' => $prestudentstatus->studiensemester_kurzbz,
'sprache' => $sprache,
'geschlecht' => $geschlecht,
'vorname' => $person->vorname,
'nachname' => $person->nachname,
'gebdatum' => $geburtsdatum,
'mailadresse' => $mailadresse,
'prestudentid' => $prestudent_id,
'notizentext' => $notizentext
);
$this->load->library('parser');
$this->load->library('MailLib');
$this->load->library('LogLib');
//parse freigabe html email template, wordwrap wraps text so no display errors
$email = wordwrap($this->parser->parse('templates/mailtemplates/interessentFreigabe', $data, true), 70);
$subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' freigegeben';
$receiver = $prestudent->studiengangmail;
if (!empty($receiver))
{
//Freigabeinformationmail sent from default system mail to studiengang mail(s)
$sent = $this->maillib->send('', $receiver, $subject, $email);
if (!$sent)
$this->loglib->logError('Error when sending Freigabe mail');
}
else
{
$this->loglib->logError('Studiengang has no mail for sending Freigabe mail');
}
}
}
+1 -1
View File
@@ -640,7 +640,7 @@ class MessageLib
}
// Using a template for the plain text email body
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailHTML');
$vorlage = $this->ci->vorlagelib->loadVorlagetext('MessageMailTXT');
if(hasData($vorlage))
{
$altBody = $this->ci->parser->parse_string(
+31 -6
View File
@@ -201,10 +201,12 @@ class Prestudent_model extends DB_Model
*/
public function getPrestudentWithZgv($prestudent_id)
{
$this->addSelect('tbl_prestudent.*, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.bezeichnung as studiengangbezeichnung, tbl_studiengang.english as studiengangenglish, tbl_studiengang.typ as studiengangtyp,
tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvort, tbl_prestudent.zgvdatum, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez,
tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmaort, tbl_prestudent.zgvmadatum, tbl_prestudent.zgvmanation as zgvmanation_code, zgvmanat.kurztext as zgvmanation_kurzbez, zgvmanat.langtext as zgvmanation_bez, zgvmanat.engltext as zgvmanation_englbez');
$this->addSelect('tbl_prestudent.*, tbl_studiengang.studiengang_kz, tbl_studiengang.kurzbzlang as studiengang, tbl_studiengang.bezeichnung as studiengangbezeichnung, tbl_studiengang.english as studiengangenglish,
tbl_studiengang.email as studiengangmail, tbl_studiengang.typ as studiengangtyp, tbl_studiengangstyp.bezeichnung as studiengangtyp_bez,
tbl_zgv.zgv_code, tbl_zgv.zgv_bez, tbl_prestudent.zgvnation as zgvnation_code, zgvnat.kurztext as zgvnation_kurzbez, zgvnat.langtext as zgvnation_bez, zgvnat.engltext as zgvnation_englbez,
tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmanation as zgvmanation_code, zgvmanat.kurztext as zgvmanation_kurzbez, zgvmanat.langtext as zgvmanation_bez, zgvmanat.engltext as zgvmanation_englbez');
$this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
$this->addJoin('public.tbl_studiengangstyp', 'typ', 'LEFT');
$this->addJoin('bis.tbl_zgv', 'zgv_code', 'LEFT');
$this->addJoin('bis.tbl_zgvmaster', 'zgvmas_code', 'LEFT');
$this->addJoin('bis.tbl_nation zgvnat', 'zgvnation = zgvnat.nation_code', 'LEFT');
@@ -223,13 +225,13 @@ class Prestudent_model extends DB_Model
return error($lastStatus->retval);
}
if(count($lastStatus->retval) > 0)
if (count($lastStatus->retval) > 0)
{
$this->load->model('system/sprache_model', 'SpracheModel');
$language = $this->SpracheModel->load($lastStatus->retval[0]->sprache);
if($language->error)
if ($language->error)
return error($language->retval);
if(count($language->retval) > 0)
if (count($language->retval) > 0)
$lastStatus->retval[0]->sprachedetails = $language->retval[0];
$prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0];
}
@@ -237,4 +239,27 @@ class Prestudent_model extends DB_Model
return success($prestudent->retval);
}
/**
* gets the prestudent edited last.
* if no updateamum, sort by insertamum
* @param $person_id
* @param bool $withzgv if true, only prestudenten with zgv_code are taken
* @return array|null
*/
public function getLastPrestudent($person_id, $withzgv = false)
{
$qry = 'SELECT * FROM public.tbl_prestudent
WHERE person_id = ?
%s
ORDER BY updateamum DESC NULLS LAST, insertamum DESC NULLS LAST
LIMIT 1';
$zgvwhere = $withzgv === true ? 'AND zgv_code IS NOT NULL' : '';
$qry = sprintf($qry, $zgvwhere);
$parametersArray = array($person_id);
return $this->execQuery($qry, $parametersArray);
}
}
+13
View File
@@ -144,6 +144,19 @@ class Notiz_model extends DB_Model
return $this->loadWhere(array('person_id' => $person_id));
}
/**
* gets all Notizen for a person with a specific title
* @param $person_id
* @param $titel
*/
public function getNotizByTitel($person_id, $titel)
{
// Join with the table public.tbl_notizzuordnung using notiz_id
$this->addJoin('public.tbl_notizzuordnung', 'notiz_id');
return $this->loadWhere(array('person_id' => $person_id, 'titel' => $titel));
}
// ------------------------------------------------------------------------------------------------------
}
@@ -64,9 +64,23 @@
AND tbl_studiengang.typ in(\'b\')
LIMIT 1
) AS "AnzahlAbgeschickt",
array_to_string(
(
SELECT array_agg(tbl_studiengang.kurzbzlang)
FROM
public.tbl_prestudentstatus pss
INNER JOIN public.tbl_prestudent ps USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE pss.status_kurzbz = \'Interessent\'
AND pss.bewerbung_abgeschicktamum IS NOT NULL
AND ps.person_id = p.person_id
AND tbl_studiengang.typ in(\'b\')
LIMIT 1
),\',\'
) AS "StgAbgeschickt",
pl.zeitpunkt AS "LockDate"
FROM public.tbl_person p
LEFT JOIN (SELECT person_id, zeitpunkt FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
LEFT JOIN (SELECT person_id, zeitpunkt FROM system.tbl_person_lock WHERE app = \''.$APP.'\') pl USING(person_id)
WHERE
EXISTS(
SELECT 1
@@ -154,10 +168,8 @@
if ($datasetRaw->LockDate != '')
{
return true;
return FilterWidget::DEFAULT_MARK_ROW_CLASS;
}
return false;
}
);
@@ -36,6 +36,7 @@
?>
<div id="page-wrapper">
<div class="container-fluid">
<input type="hidden" id="hiddenpersonid" value="<?php echo $stammdaten->person_id ?>">
<div class="row<?php if($lockedbyother) echo ' alert-danger' ?>">
<div class="col-lg-8">
<h3 class="page-header">
@@ -76,7 +76,7 @@
echo $this->widgetlib->widget(
'Zgv_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code),
array('name' => 'zgv', 'id' => 'zgv')
array('name' => 'zgv', 'id' => 'zgv_'.$zgvpruefung->prestudent_id)
); ?>
</div>
</div>
@@ -89,7 +89,7 @@
?>
<input type="text" class="form-control"
value="<?php echo $zgvpruefung->zgvort ?>"
name="zgvort">
name="zgvort" id="zgvort_<?php echo $zgvpruefung->prestudent_id ?>">
<?php endif; ?>
</div>
</div>
@@ -103,7 +103,7 @@
<input type="text"
class="dateinput form-control"
value="<?php echo empty($zgvpruefung->zgvdatum) ? "" : date_format(date_create($zgvpruefung->zgvdatum), 'd.m.Y') ?>"
name="zgvdatum">
name="zgvdatum" id="zgvdatum_<?php echo $zgvpruefung->prestudent_id ?>">
<?php endif; ?>
</div>
</div>
@@ -116,7 +116,7 @@
echo $this->widgetlib->widget(
'Nation_widget',
array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code),
array('name' => 'zgvnation', 'id' => 'zgvnation')
array('name' => 'zgvnation', 'id' => 'zgvnation_'.$zgvpruefung->prestudent_id)
); ?>
</div>
</div>
@@ -183,7 +183,12 @@
<?php endif; ?>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-lg-12 text-right">
<div class="col-lg-6 text-left">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
Letzte ZGV &uuml;bernehmen
</button>
</div>
<div class="col-lg-6 text-right">
<button type="submit" class="btn btn-default">
Speichern
</button>
@@ -203,7 +208,7 @@
<div class="form-inline">
<form method="post"
action="../saveAbsage/<?php echo $zgvpruefung->prestudent_id ?>">
<div class="input-group" id="statusgrselect">
<div class="input-group" id="statusgrselect_<?php echo $zgvpruefung->prestudent_id ?>">
<select name="statusgrund"
class="d-inline float-right"
required>
@@ -216,15 +221,15 @@
<?php endforeach ?>
</select>
<span class="input-group-btn">
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal">
Absage
</button>
</span>
<button id="absageBtn" type="button"
class="btn btn-default"
data-toggle="modal"
data-target="#absageModal_<?php echo $zgvpruefung->prestudent_id ?>">
Absage
</button>
</span>
</div>
<div class="modal fade" id="absageModal"
<div class="modal fade absageModal" id="absageModal_<?php echo $zgvpruefung->prestudent_id ?>"
tabindex="-1"
role="dialog"
aria-labelledby="absageModalLabel"
@@ -280,12 +285,12 @@
<div>
<button type="button" class="btn btn-default"
data-toggle="modal"
data-target="#freigabeModal">
data-target="#freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>">
Freigabe an Studiengang
</button>
</div>
</div>
<div class="modal fade" id="freigabeModal" tabindex="-1"
<div class="modal fade" id="freigabeModal_<?php echo $zgvpruefung->prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="freigabeModalLabel"
aria-hidden="true">
@@ -0,0 +1,54 @@
<html>
<head>
<title>Interessentenfreigabe mail</title>
</head>
<body>
<div class="container">
{interessentbez} wurde freigegeben.
<br><br>
<table style="font-size:small">
<tbody>
<tr>
<td><b>Studiengang</b></td>
<td>{studiengangbez}&nbsp;{studiengangtypbez} {orgform} {sprache}</td>
</tr>
<tr>
<td><b>Studiensemester</b></td>
<td>{studiensemester}</td>
</tr>
<tr>
<td><b>Geschlecht</b></td>
<td>{geschlecht}</td>
</tr>
<tr>
<td><b>Vorname</b></td>
<td>{vorname}</td>
</tr>
<tr>
<td><b>Nachname</b></td>
<td>{nachname}</td>
</tr>
<tr>
<td><b>Geburtsdatum</b></td>
<td>{gebdatum}</td>
</tr>
<tr>
<td><b>E-Mail Adresse</b></td>
<td>{mailadresse}</td>
</tr>
<tr>
<td><b>Prestudent ID</b></td>
<td>{prestudentid}</td>
</tr>
<tr>
<td valign="top"><b>Anmerkungen zur Bewerbung</b></td>
<td>{notizentext}</td>
</tr>
</tbody>
</table>
<br>
Für mehr Details verwenden Sie die Personenansicht im FAS.
</div>
</body>
</html>
+1 -29
View File
@@ -14,7 +14,6 @@ class FilterWidget extends Widget
const ADDITIONAL_COLUMNS = 'additionalColumns';
const FORMAT_RAW = 'formatRaw';
const MARK_ROW = 'markRow';
const ALTERNATIVE_MARK_ROW_CLASS = 'alternativeMarkRowClass';
const CHECKBOXES = 'checkboxes';
const HIDE_HEADER = 'hideHeader';
const HIDE_SAVE = 'hideSave';
@@ -73,7 +72,6 @@ class FilterWidget extends Widget
private $additionalColumns;
private $formatRaw;
private $markRow;
private $alternativeMarkRowClass;
private $checkboxes;
private $columnsAliases;
private $filterName;
@@ -409,21 +407,9 @@ class FilterWidget extends Widget
if (is_object($datasetRaw))
{
$markRow = self::$FilterWidgetInstance->getMarkRow();
if ($markRow != null)
{
if ($markRow($datasetRaw) === true)
{
$alternativeMarkRowClass = self::$FilterWidgetInstance->getAlternativeMarkRowClass();
if ($alternativeMarkRowClass != null)
{
$class = $alternativeMarkRowClass;
}
else
{
$class = self::DEFAULT_MARK_ROW_CLASS;
}
}
$class = $markRow($datasetRaw);
}
}
@@ -483,14 +469,6 @@ class FilterWidget extends Widget
return $this->markRow;
}
/**
*
*/
protected function getAlternativeMarkRowClass()
{
return $this->alternativeMarkRowClass;
}
/**
*
*/
@@ -652,7 +630,6 @@ class FilterWidget extends Widget
$this->additionalColumns = null;
$this->formatRaw = null;
$this->markRow = null;
$this->alternativeMarkRowClass = null;
$this->checkboxes = null;
$this->hideHeader = false;
$this->hideSave = false;
@@ -723,11 +700,6 @@ class FilterWidget extends Widget
$this->markRow = $args[self::MARK_ROW];
}
if (isset($args[self::ALTERNATIVE_MARK_ROW_CLASS]) && $args[self::ALTERNATIVE_MARK_ROW_CLASS] != '')
{
$this->alternativeMarkRowClass = $args[self::ALTERNATIVE_MARK_ROW_CLASS];
}
if (isset($args[self::CHECKBOXES])
&& is_array($args[self::CHECKBOXES])
&& count($args[self::CHECKBOXES]) > 0)
+1
View File
@@ -230,6 +230,7 @@ echo '</td><td width="30%" valign="top">';
echo '
<b>'.($type=="student"?$p->t("profil/student"):$p->t('profil/mitarbeiter')).'</b><br><br>
'.$p->t('global/username').': '.$user->uid.'<br>
'.$p->t('global/anrede').': '.$user->anrede.'<br>
'.$p->t('global/titel').': '.$user->titelpre.' <br>';
if(!$ansicht)
+2 -1
View File
@@ -82,7 +82,6 @@ $searchItems = explode(' ',TRIM(str_replace(',', '', $search),'!.?'));
// Leerzeichen und Whitespaces entfernen
$searchItems = preg_replace("/\s/", '', $searchItems);
// Leere Strings aus Array entfernen
while ($array_key = array_search("", $searchItems))
unset ($searchItems[$array_key]);
@@ -139,6 +138,7 @@ function searchPerson($searchItems)
echo '<table class="tablesorter" id="personentable">
<thead>
<tr>
<th>',$p->t('global/anrede'),'</th>
<th>',$p->t('global/vorname'),'</th>
<th>',$p->t('global/nachname'),'</th>
<th>',$p->t('global/studiengang'),'</th>
@@ -161,6 +161,7 @@ function searchPerson($searchItems)
echo '<tr>';
//echo '<td>',$row->titelpre,'</td>';
echo '<td>',$row->anrede,'</td>';
echo '<td>',$row->vorname,'</td>';
echo '<td><a href="../profile/index.php?uid=',$row->uid,'" title="',$row->titelpre,' ',$row->vorname,' ',$row->nachname,' ',$row->titelpost,'">',$row->nachname,'</a>';
if($row->aktiv==false)
+512 -467
View File
File diff suppressed because it is too large Load Diff
@@ -28,6 +28,7 @@ header("Pragma: no-cache");
header("Content-type: application/vnd.mozilla.xul+xml");
require_once('../../config/vilesci.config.inc.php');
require_once('../../config/global.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
+2 -1
View File
@@ -304,7 +304,7 @@ class benutzer extends person
{
$qry = "SELECT * FROM (
SELECT
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv,
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
(SELECT UPPER
(tbl_studiengang.typ || tbl_studiengang.kurzbz)
FROM public.tbl_student
@@ -371,6 +371,7 @@ class benutzer extends person
$obj->lektor = $row->lektor;
$obj->fixangestellt = $row->fixangestellt;
$obj->aktiv = $this->db_parse_bool($row->aktiv);
$obj->anrede = $row->anrede;
$this->result[] = $obj;
}
+1
View File
@@ -826,6 +826,7 @@ class dokument extends basis_db
WHERE dokument_kurzbz = ".$this->db_add_param($dokument_kurzbz)."
AND person_id =".$this->db_add_param($person_id, FHC_INTEGER)."
AND tbl_prestudentstatus.status_kurzbz = 'Interessent'
AND get_rolle_prestudent (prestudent_id, NULL) NOT IN ('Abgewiesener','Abbrecher')
ORDER BY kuerzel";
+1 -1
View File
@@ -27,7 +27,7 @@ require_once(dirname(__FILE__).'/personlog.class.php');
// Auth: Benutzer des Webportals
/**
* DEPRECATED - Use Authentication Class
*/
*/
function get_uid()
{
$auth = new authentication();
+52 -5
View File
@@ -55,20 +55,67 @@ $(document).ready(
);
//prevent opening modal when Statusgrund not chosen
$("#absageModal").on('show.bs.modal', function (e)
$(".absageModal").on('show.bs.modal', function (e)
{
if ($("[name=statusgrund]").val() === "null")
var id = this.id.substr(this.id.indexOf("_") + 1);
var statusgrvalue = $("#statusgrselect_"+id+" select[name=statusgrund]").val();
if (statusgrvalue === "null")
{
$("#statusgrselect").addClass("has-error");
$("#statusgrselect_"+id).addClass("has-error");
return e.preventDefault();
}
}
);
$("[name=statusgrund]").change(function ()
//remove red mark when statusgrund is selected again
$("select[name=statusgrund]").change(
function ()
{
$("#statusgrselect").removeClass("has-error");
$(this).parent().removeClass("has-error");
}
);
//zgv uebernehmen ajax
if ($(".zgvUebernehmen"))
{
$(".zgvUebernehmen").click(function() {
var btn = $(this);
var personid = $("#hiddenpersonid").val();
var prestudentid = this.id.substr(this.id.indexOf("_") + 1);
$('#nearzgv').remove();
$.ajax({
type: "POST",
dataType: "json",
url: "../getLastPrestudentWithZgvJson/"+personid,
success: function(data, textStatus, jqXHR) {
if(data !== null)
{
var zgvcode = data.zgv_code !== null ? data.zgv_code : "null";
var zgvort = data.zgvort !== null ? data.zgvort : "";
var zgvdatum = data.zgvdatum;
var gerzgvdatum = "";
if(zgvdatum !== null)
{
zgvdatum = $.datepicker.parseDate("yy-mm-dd", data.zgvdatum);
gerzgvdatum = $.datepicker.formatDate("dd.mm.yy", zgvdatum);
}
var zgvnation = data.zgvnation !== null ? data.zgvnation : "null";
$("#zgv_" + prestudentid).val(zgvcode);
$("#zgvort_" + prestudentid).val(zgvort);
$("#zgvdatum_" + prestudentid).val(gerzgvdatum);
$("#zgvnation_" + prestudentid).val(zgvnation);
}
else
{
btn.after("&nbsp;&nbsp;<span id='nearzgv' class='text-warning'>keine ZGV vorhanden</span>");
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert(textStatus + " - " + errorThrown + " - " + jqXHR.responseText);
}
});
});
}
}
);
+15 -10
View File
@@ -1078,16 +1078,21 @@ class vertrag extends basis_db
*/
public function getFalscheBetraege($studiensemester_kurzbz)
{
$qry = "SELECT
tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id,
tbl_lehreinheitmitarbeiter.stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden
FROM
lehre.tbl_vertrag
JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
AND tbl_lehreinheitmitarbeiter.semesterstunden*tbl_lehreinheitmitarbeiter.stundensatz!=tbl_vertrag.betrag";
$qry = "SELECT * FROM
(
SELECT
tbl_vertrag.*, tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.lehreinheit_id,
COALESCE(tbl_lehreinheitmitarbeiter.stundensatz, 0) as stundensatz,
COALESCE(tbl_lehreinheitmitarbeiter.semesterstunden, 0) as semesterstunden
FROM
lehre.tbl_vertrag
JOIN lehre.tbl_lehreinheitmitarbeiter USING(vertrag_id)
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
)x
WHERE
x.semesterstunden * x.stundensatz != x.betrag";
if($result = $this->db_query($qry))
{
+1
View File
@@ -65,6 +65,7 @@ $this->phrasen['global/oder']='oder';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='Vorname';
$this->phrasen['global/nachname']='Nachname';
$this->phrasen['global/anrede']='Anrede';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
+1
View File
@@ -64,6 +64,7 @@ $this->phrasen['global/oder']='or';
$this->phrasen['global/username']='Username';
$this->phrasen['global/vorname']='First Name';
$this->phrasen['global/nachname']='Last Name';
$this->phrasen['global/anrede']='Title';
$this->phrasen['global/name']='Name';
$this->phrasen['global/uid']='UID';
$this->phrasen['global/postnomen']='Postnomen';
+31 -31
View File
@@ -88,7 +88,7 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
if(isset($_GET['ss']))
$studiensemester_kurzbz = $_GET['ss'];
else
$studiensemester_kurzbz = $semester_aktuell;
die('Studiensemester wurde nicht uebergeben');
//Daten holen
@@ -151,12 +151,12 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$bezeichnung = '';
$xml .= " <studiensemester>".$row->sembezeichnung."</studiensemester>";
$xml .= " <stsem>".$row->stsem."</stsem>";
$xml .= " <semester>".$row->semester."</semester>";
$xml .= " <semester_bezeichnung>".$bezeichnung."</semester_bezeichnung>";
$xml .= " <studiengang>".$row->bezeichnung."</studiengang>";
$xml .= " <studiengang_englisch>".$row->english."</studiengang_englisch>";
$xml .= " <studiensemester><![CDATA[".$row->sembezeichnung."]]></studiensemester>";
$xml .= " <stsem><![CDATA[".$row->stsem."]]></stsem>";
$xml .= " <semester><![CDATA[".$row->semester."]]></semester>";
$xml .= " <semester_bezeichnung><![CDATA[".$bezeichnung."]]></semester_bezeichnung>";
$xml .= " <studiengang><![CDATA[".$row->bezeichnung."]]></studiengang>";
$xml .= " <studiengang_englisch><![CDATA[".$row->english."]]></studiengang_englisch>";
if($row->typ=='b')
$bezeichnung='Bachelor';
elseif($row->typ=='m')
@@ -179,18 +179,18 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
else
$studiengang_kz = sprintf("%04s", abs($row->studiengang_kz));
$xml .= " <studiengang_art>".$bezeichnung."</studiengang_art>";
$xml .= " <studiengang_kz>".$studiengang_kz."</studiengang_kz>";
$xml .= "\n <anrede>".$row->anrede."</anrede>";
$xml .= "\n <vorname>".$row->vorname."</vorname>";
$xml .= " <nachname>".$row->nachname."</nachname>";
$xml .= " <name>".trim($row->titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:''))."</name>";
$xml .= " <studiengang_art><![CDATA[".$bezeichnung."]]></studiengang_art>";
$xml .= " <studiengang_kz><![CDATA[".$studiengang_kz."]]></studiengang_kz>";
$xml .= "\n <anrede><![CDATA[".$row->anrede."]]></anrede>";
$xml .= "\n <vorname><![CDATA[".$row->vorname."]]></vorname>";
$xml .= " <nachname><![CDATA[".$row->nachname."]]></nachname>";
$xml .= " <name><![CDATA[".trim($row->titelpre.' '.trim($row->vorname.' '.$row->vornamen).' '.$row->nachname.($row->titelpost!=''?', '.$row->titelpost:''))."]]></name>";
$gebdatum = date('d.m.Y',strtotime($row->gebdatum));
$xml .= " <gebdatum>".$gebdatum."</gebdatum>";
$xml .= " <matrikelnr>".trim($row->matrikelnr)."</matrikelnr>";
$xml .= " <studiengangsleiter>".$stgl."</studiengangsleiter>";
$xml .= " <gebdatum><![CDATA[".$gebdatum."]]></gebdatum>";
$xml .= " <matrikelnr><![CDATA[".trim($row->matrikelnr)."]]></matrikelnr>";
$xml .= " <studiengangsleiter><![CDATA[".$stgl."]]></studiengangsleiter>";
$datum_aktuell = date('d.m.Y');
$xml .= " <ort_datum>".$datum_aktuell."</ort_datum>";
$xml .= " <ort_datum><![CDATA[".$datum_aktuell."]]></ort_datum>";
$xml .= " <projektarbeit_note_anzeige>".($row->projektarbeit_note_anzeige=='t'?'true':'false')."</projektarbeit_note_anzeige>";
$qry_proj = "
@@ -239,10 +239,10 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
{
if($row_abschlusspruefung = $db->db_fetch_object($result_abschlusspruefung))
{
$xml .= " <abschlusspruefung_typ>".$row_abschlusspruefung->pruefungstyp_kurzbz."</abschlusspruefung_typ>";
$xml .= " <abschlusspruefung_datum>".$datum->formatDatum($row_abschlusspruefung->datum,'d.m.Y')."</abschlusspruefung_datum>";
$xml .= " <abschlusspruefung_note>".$row_abschlusspruefung->bezeichnung."</abschlusspruefung_note>";
$xml .= " <abschlusspruefung_note_english>".$row_abschlusspruefung->bezeichnung_english."</abschlusspruefung_note_english>";
$xml .= " <abschlusspruefung_typ><![CDATA[".$row_abschlusspruefung->pruefungstyp_kurzbz."]]></abschlusspruefung_typ>";
$xml .= " <abschlusspruefung_datum><![CDATA[".$datum->formatDatum($row_abschlusspruefung->datum,'d.m.Y')."]]></abschlusspruefung_datum>";
$xml .= " <abschlusspruefung_note><![CDATA[".$row_abschlusspruefung->bezeichnung."]]></abschlusspruefung_note>";
$xml .= " <abschlusspruefung_note_english><![CDATA[".$row_abschlusspruefung->bezeichnung_english."]]></abschlusspruefung_note_english>";
}
}
}
@@ -378,9 +378,9 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
$xml .= "\n <unterrichtsfach>";
$xml .= " <bezeichnung><![CDATA[".$bezeichnung."]]></bezeichnung>";
$xml .= " <bezeichnung_englisch><![CDATA[".$bezeichnung_englisch."]]></bezeichnung_englisch>";
$xml .= " <note>".$note2."</note>";
$xml .= " <sws>".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."</sws>";
$xml .= " <sws_lv>".($row->sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."</sws_lv>";
$xml .= " <note><![CDATA[".$note2."]]></note>";
$xml .= " <sws><![CDATA[".($row->semesterstunden==0?'':number_format(sprintf('%.1F',$row->semesterstunden/$wochen),1))."]]></sws>";
$xml .= " <sws_lv><![CDATA[".($row->sws==0?'':number_format(sprintf('%.1F',$row->sws),1))."]]></sws_lv>";
$ectspunkte='';
$anrechnung = new anrechnung();
@@ -407,19 +407,19 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml")
}
$ects_gesamt+=$ectspunkte;
$xml .= " <ects>".$ectspunkte."</ects>";
$xml .= " <lv_lehrform_kurzbz>".$row->lv_lehrform_kurzbz."</lv_lehrform_kurzbz>";
$xml .= " <ects><![CDATA[".$ectspunkte."]]></ects>";
$xml .= " <lv_lehrform_kurzbz><![CDATA[".$row->lv_lehrform_kurzbz."]]></lv_lehrform_kurzbz>";
if($auslandssemester)
{
$xml .= " <bisio_von>".date('d.m.Y', $datum->mktime_fromdate($bisio_von))."</bisio_von>";
$xml .= " <bisio_bis>".date('d.m.Y', $datum->mktime_fromdate($bisio_bis))."</bisio_bis>";
$xml .= " <bisio_ort>$bisio_ort</bisio_ort>";
$xml .= " <bisio_universitaet>$bisio_universitaet</bisio_universitaet>";
$xml .= " <bisio_von><![CDATA[".date('d.m.Y', $datum->mktime_fromdate($bisio_von))."]]></bisio_von>";
$xml .= " <bisio_bis><![CDATA[".date('d.m.Y', $datum->mktime_fromdate($bisio_bis))."]]></bisio_bis>";
$xml .= " <bisio_ort><![CDATA[$bisio_ort]]></bisio_ort>";
$xml .= " <bisio_universitaet><![CDATA[$bisio_universitaet]]></bisio_universitaet>";
}
$xml .= " </unterrichtsfach>";
}
}
$xml .= "<ects_gesamt>".$ects_gesamt."</ects_gesamt>";
$xml .= "<ects_gesamt><![CDATA[".$ects_gesamt."]]></ects_gesamt>";
$xml .= $xml_fussnote;
}
+14
View File
@@ -1449,6 +1449,20 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_person_lock LIMIT 1"))
echo ' system.tbl_person_lock hinzugefügt<br>';
}
// INSERT Berechtigungen fuer web User erteilen fuer tbl_msg_status
if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_msg_status' AND table_schema='public' AND grantee='web' AND privilege_type='INSERT'"))
{
if($db->db_num_rows($result)==0)
{
$qry = "GRANT SELECT, INSERT ON public.tbl_msg_status TO web;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_msg_status Berechtigungen: '.$db->db_last_error().'</strong><br>';
else
echo 'INSERT Rechte fuer public.tbl_msg_status fuer web user gesetzt ';
}
}
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo '<H2>Pruefe Tabellen und Attribute!</H2>';