zgv ueberpruefung hinzugefuegt

This commit is contained in:
ma0048
2021-04-20 13:51:41 +02:00
parent e791e3267f
commit bc7e3c5cc5
13 changed files with 602 additions and 332 deletions
@@ -15,10 +15,13 @@ class InfoCenter extends Auth_Controller
const ZGVPRUEFUNG_MAIL_VORLAGE = 'InfocenterMailZgvUeberpruefung';
const INFOCENTER_URI = 'system/infocenter/InfoCenter'; // URL prefix for this controller
const ZGV_UEBERPRUEFUNG_URI = 'system/infocenter/ZGVUeberpruefung';
const INDEX_PAGE = 'index';
const FREIGEGEBEN_PAGE = 'freigegeben';
const REIHUNGSTESTABSOLVIERT_PAGE = 'reihungstestAbsolviert';
const SHOW_DETAILS_PAGE = 'showDetails';
const SHOW_ZGV_DETAILS_PAGE = 'showZGVDetails';
const ZGV_UBERPRUEFUNG_PAGE = 'ZGVUeberpruefung';
const NAVIGATION_PAGE = 'navigation_page';
const ORIGIN_PAGE = 'origin_page';
@@ -64,6 +67,18 @@ class InfoCenter extends Auth_Controller
'name' => 'Note updated',
'message' => 'Note with title %s was updated',
'success' => null
),
'updatezgv' => array(
'logtype' => 'Action',
'name' => 'ZGV pruefung updated',
'message' => 'ZGV with the ID %s was updated to %s',
'success' => null
),
'newzgv' => array(
'logtype' => 'Action',
'name' => 'ZGV pruefung added',
'message' => 'ZGV with the ID %s was added',
'success' => null
)
);
@@ -86,7 +101,7 @@ class InfoCenter extends Auth_Controller
'freigegeben' => 'infocenter:r',
'reihungstestAbsolviert' => 'infocenter:r',
'showDetails' => 'infocenter:r',
'showZGVDetails' => 'infocenter:r',
'showZGVDetails' => 'lehre/zgvpruefung:r',
'unlockPerson' => 'infocenter:rw',
'saveFormalGeprueft' => 'infocenter:rw',
'getPrestudentData' => 'infocenter:r',
@@ -95,7 +110,7 @@ class InfoCenter extends Auth_Controller
'saveBewPriorisierung' => 'infocenter:rw',
'saveZgvPruefung' => 'infocenter:rw',
'zgvRueckfragen' => 'infocenter:rw',
'zgvStatusUpdate' => 'infocenter:rw',
'zgvStatusUpdate' => 'lehre/zgvpruefung:rw',
'saveAbsage' => 'infocenter:rw',
'saveFreigabe' => 'infocenter:rw',
'getNotiz' => 'infocenter:r',
@@ -190,6 +205,8 @@ class InfoCenter extends Auth_Controller
*/
public function showZGVDetails()
{
$this->_setNavigationMenuShowDetails(self::SHOW_ZGV_DETAILS_PAGE);
$prestudent_id = $this->input->get('prestudent_id');
if (!is_numeric($prestudent_id))
@@ -203,38 +220,26 @@ class InfoCenter extends Auth_Controller
if (!hasData($prestudentexists))
show_error('Prestudent does not exist!');
$zgvExist = $this->ZGVPruefungModel->loadWhere(array('prestudent_id' => $prestudent_id));
$zgv = $this->ZGVPruefungStatusModel->getZgvStatusByPrestudent($prestudent_id);
if (isError($zgvExist))
show_error(getError($zgvExist));
if (isError($zgv))
show_error(getError($zgv));
if (!hasData($zgvExist))
show_error('ZGV does not exist!');
$this->ZGVPruefungStatusModel->addOrder('datum', 'DESC');
$this->ZGVPruefungStatusModel->addLimit(1);
$statusZGV = $this->ZGVPruefungStatusModel->loadWhere(array('zgvpruefung_id' => $zgvExist->retval[0]->zgvpruefung_id));
if (isError($statusZGV))
show_error(getError($statusZGV));
if (!hasData($statusZGV))
if (!hasData($zgv))
show_error('ZGV has no status.');
$statusZGV = array('status' => $statusZGV->retval[0]->status);
$origin_page = $this->input->get(self::ORIGIN_PAGE);
$persondata = $this->_loadPersonData($prestudentexists->retval[0]->person_id);
$persondata = $this->_loadPersonData(getData($prestudentexists)[0]->person_id);
$prestudent_id = array('prestudent_id' => $prestudent_id);
$status = array('status' => getData($zgv)[0]->status);
$data = array_merge(
$persondata,
$prestudent_id,
$statusZGV
$status
);
$origin_page = $this->input->get(self::ORIGIN_PAGE);
$data[self::FHC_CONTROLLER_ID] = $this->getControllerId();
$data[self::ORIGIN_PAGE] = $origin_page;
$data[self::PREV_FILTER_ID] = $this->input->get(self::PREV_FILTER_ID);
@@ -521,30 +526,27 @@ class InfoCenter extends Auth_Controller
$person_id = $this->input->post('person_id');
$status = $this->input->post('status');
if (isEmptyString($prestudent_id) && isEmptyString($person_id) && isEmptyString($status))
return $this->outputJsonError('Some data is missing');
if (isEmptyString($prestudent_id) || isEmptyString($person_id) || isEmptyString($status))
$this->terminateWithJsonError('Some data is missing');
$zgv = $this->ZGVPruefungModel->loadWhere(array('prestudent_id' => $prestudent_id));
$personInfos = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
if (!hasData($personInfos))
$this->terminateWithJsonError('Person id nicht gefunden');
$personInfos = getData($personInfos);
$zgv = $this->ZGVPruefungStatusModel->getZgvStatusByPrestudent($prestudent_id);
if (!hasData($zgv))
return $this->outputJsonError('ZGV nicht gefunden');
$this->terminateWithJsonError('ZGV-Status nicht gefunden');
$zgv = getData($zgv);
$this->ZGVPruefungStatusModel->addOrder('datum', 'DESC');
$this->ZGVPruefungStatusModel->addLimit(1);
$statusZGV = $this->ZGVPruefungStatusModel->loadWhere(array('zgvpruefung_id' => $zgv[0]->zgvpruefung_id));
if (!hasData($statusZGV))
return $this->outputJsonError('ZGV-Status nicht gefunden');
$statusZGV = getData($statusZGV);
if ($statusZGV[0]->status === 'rejected' && $status === 'rejected')
return $this->outputJsonError('Bereits abgelehnt worden');
elseif ($statusZGV[0]->status === 'accepted' && $status === 'accepted')
return $this->outputJsonError('Bereits akzeptiert worden');
if ($zgv[0]->status === 'rejected' && $status === 'rejected')
$this->terminateWithJsonError('Bereits abgelehnt worden');
elseif ($zgv[0]->status === 'accepted' && $status === 'accepted')
$this->terminateWithJsonError('Bereits akzeptiert worden');
$insert = $this->ZGVPruefungStatusModel->insert(
array(
@@ -561,16 +563,23 @@ class InfoCenter extends Auth_Controller
)
);
if (isError($insert) && isError($update))
return $this->outputJsonError('Fehler beim Speichern');
if (isError($insert) || isError($update))
$this->terminateWithJsonError('Fehler beim Speichern');
$personInfos = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$allZgvs = $this->ZGVPruefungStatusModel->getOpenZgvByPerson($personInfos->person_id, array('pruefung_stg'));
$openZgv = false;
if (hasData($allZgvs))
$openZgv = true;
$this->_log($person_id, 'updatezgv', array($zgv[0]->zgvpruefung_id, $status));
$this->outputJsonSuccess(
array
(
'msg' => 'Erfolgreich gespeichert',
'person_id' => $personInfos['person_id']
'person_id' => $personInfos->person_id,
'openZgv' => $openZgv
)
);
@@ -585,28 +594,19 @@ class InfoCenter extends Auth_Controller
$prestudent_id = $this->input->post('prestudent_id');
$person_id = $this->input->post('person_id');
if (isEmptyString($prestudent_id) && isEmptyString($person_id))
return $this->outputJsonError('Prestudentid OR/AND Personid missing');
if (isEmptyString($prestudent_id) || isEmptyString($person_id))
$this->terminateWithJsonError('Prestudentid OR/AND Personid missing');
$zgv = $this->ZGVPruefungModel->loadWhere(array('prestudent_id' => $prestudent_id));
$sg = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$mail = $sg['studiengang_mail'];
$zgv = $this->ZGVPruefungStatusModel->getZgvStatusByPrestudent($prestudent_id);
$data = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
$mail = $data['studiengang_mail'];
if (hasData($zgv))
{
$zgv = getData($zgv);
$this->ZGVPruefungStatusModel->addOrder('datum', 'DESC');
$this->ZGVPruefungStatusModel->addLimit(1);
$statusZGV = $this->ZGVPruefungStatusModel->loadWhere(array('zgvpruefung_id' => $zgv[0]->zgvpruefung_id));
if (!hasData($statusZGV))
return $this->outputJsonError('ZGV-Status nicht gefunden');
$statusZGV = getData($statusZGV);
if ($statusZGV[0]->status === 'pruefung_stg')
return $this->outputJsonError('Bereits in Prüfung');
if ($zgv[0]->status === 'pruefung_stg')
$this->terminateWithJsonError('Bereits in Prüfung');
$insert = $this->ZGVPruefungStatusModel->insert(
array(
@@ -615,7 +615,7 @@ class InfoCenter extends Auth_Controller
)
);
$update = $this->ZGVPruefungModel->update(
$this->ZGVPruefungModel->update(
$zgv[0]->zgvpruefung_id,
array(
'updateamum' => date('Y-m-d H:i:s'),
@@ -623,11 +623,12 @@ class InfoCenter extends Auth_Controller
)
);
if (isSuccess($insert) && isSuccess($update))
$this->sendZgvMail($mail);
elseif (isError($insert) && isError($update))
return $this->outputJsonError('Fehler beim Speichern');
$this->_log($person_id, 'updatezgv', array($zgv[0]->zgvpruefung_id, 'pruefung_stg'));
if (isSuccess($insert))
$this->sendZgvMail($mail);
elseif (isError($insert))
$this->terminateWithJsonError('Fehler beim Speichern');
}else
{
$insert = $this->ZGVPruefungModel->insert(
@@ -648,18 +649,25 @@ class InfoCenter extends Auth_Controller
)
);
$this->_log($person_id, 'newzgv', array($zgvpruefung_id));
if (isSuccess($result))
$this->sendZgvMail($mail);
elseif (isError($result))
return $this->outputJsonError('Fehler beim Speichern');
$this->terminateWithJsonError('Fehler beim Speichern');
}
}
$hold = false;
if ($this->personloglib->getOnHoldDate($person_id) !== null)
$hold = true;
$this->outputJsonSuccess(
array
(
'msg' => 'Erfolgreich gespeichert',
'person_id' => $sg['person_id']
'person_id' => $data['person_id'],
'hold' => $hold
)
);
}
@@ -1293,9 +1301,9 @@ class InfoCenter extends Auth_Controller
/**
* Define the navigation menu for the showDetails page
*/
private function _setNavigationMenuShowDetails()
private function _setNavigationMenuShowDetails($page = self::SHOW_DETAILS_PAGE)
{
$this->load->library('NavigationLib', array(self::NAVIGATION_PAGE => self::INFOCENTER_URI.'/'.self::SHOW_DETAILS_PAGE));
$this->load->library('NavigationLib', array(self::NAVIGATION_PAGE => self::INFOCENTER_URI.'/'.$page));
$origin_page = $this->input->get(self::ORIGIN_PAGE);
@@ -1308,6 +1316,8 @@ class InfoCenter extends Auth_Controller
{
$link = site_url(self::INFOCENTER_URI.'/'.self::REIHUNGSTESTABSOLVIERT_PAGE);
}
if ($origin_page === self::ZGV_UBERPRUEFUNG_PAGE)
$link = site_url(self::ZGV_UEBERPRUEFUNG_URI);
$prevFilterId = $this->input->get(self::PREV_FILTER_ID);
if (isset($prevFilterId))
@@ -1457,7 +1467,7 @@ class InfoCenter extends Auth_Controller
* @param $person_id
* @return array
*/
private function _loadPersonData($person_id)
public function _loadPersonData($person_id)
{
$locked = $this->PersonLockModel->checkIfLocked($person_id, self::APP);
@@ -1,9 +1,9 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class ZGVUeberpruefung extends Auth_Controller
{
private $_uid; // uid of the logged user
/**
* Constructor
*/
@@ -13,21 +13,43 @@ class ZGVUeberpruefung extends Auth_Controller
parent::__construct(
array(
'index' => 'lehre/zgvpruefung:r',
'getZgvStatusByPrestudent' => 'lehre/zgvpruefung:r'
)
);
$this->load->model('crm/ZGVPruefungStatus_model', 'ZGVPruefungStatusModel');
$this->load->model('crm/ZGVPruefung_model', 'ZGVPruefungModel');
$this->load->library('WidgetLib');
$this->setControllerId(); // sets the controller id
$this->setControllerId();
$this->loadPhrases(
array(
'infocenter'
)
);
}
public function index()
{
$this->load->view('system/infocenter/infocenterZgvUeberpruefung.php');
}
try{
$this->load->view('system/infocenter/infocenterZgvUeberpruefung.php');
}catch(Exception $e)
{
var_dump($e);
}
public function getZgvStatusByPrestudent()
{
$prestudent_id = $this->input->get('prestudent_id');
$zgvExist = $this->ZGVPruefungModel->loadWhere(array('prestudent_id' => $prestudent_id));
if (!hasData($zgvExist))
$this->terminateWithJsonError('no ZGV exist');
$status = $this->ZGVPruefungStatusModel->getZgvStatus(getData($zgvExist)[0]->zgvpruefung_id);
if (!hasData($status))
$this->terminateWithJsonError('No status');
$status = getData($status)[0]->status;
$this->outputJsonSuccess($status);
}
}
@@ -14,4 +14,37 @@ class ZGVPruefungStatus_model extends DB_Model
$this->hasSequence = true;
}
public function getZgvStatus($zgvpruefung_id)
{
$this->addOrder('datum', 'DESC');
$this->addLimit(1);
return $this->loadWhere(array('zgvpruefung_id' => $zgvpruefung_id));
}
public function getZgvStatusByPrestudent($prestudent_id)
{
$this->addJoin('public.tbl_zgvpruefung', 'zgvpruefung_id');
$this->addOrder($this->dbTable . '.datum', 'DESC');
$this->addLimit(1);
return $this->loadWhere(array('prestudent_id' => $prestudent_id));
}
public function getOpenZgvByPerson($person_id, $status)
{
$query = 'SELECT status.zgvpruefung_id, status.datum, status.status
FROM public.tbl_zgvpruefungstatus_status status
INNER JOIN
(
SELECT zgvpruefung_id, max(datum) as MaxDate
FROM public.tbl_zgvpruefungstatus_status
GROUP BY zgvpruefung_id
) sub ON status.zgvpruefung_id = sub.zgvpruefung_id AND status.datum = sub.MaxDate
JOIN public.tbl_zgvpruefung ON status.zgvpruefung_id = public.tbl_zgvpruefung.zgvpruefung_id
JOIN public.tbl_prestudent USING (prestudent_id)
WHERE person_id = ?
AND status.status IN ?';
return $this->execQuery($query, array($person_id, $status));
}
}
@@ -213,7 +213,24 @@
WHERE ps.person_id = p.person_id
ORDER BY ps.zgvnation DESC NULLS LAST, ps.prestudent_id DESC
LIMIT 1
) AS "ZGVNation"
) AS "ZGVNation",
(
SELECT tbl_organisationseinheit.bezeichnung
FROM public.tbl_benutzerfunktion
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE (tbl_benutzerfunktion.datum_von IS NULL OR tbl_benutzerfunktion.datum_von <= now())
AND (tbl_benutzerfunktion.datum_bis IS NULL OR tbl_benutzerfunktion.datum_bis >= now())
AND tbl_benutzerfunktion.uid = (
SELECT l.insertvon
FROM system.tbl_log l
WHERE l.taetigkeit_kurzbz IN ('.$TAETIGKEIT_KURZBZ.')
AND l.logdata->>\'name\' NOT IN ('.$LOGDATA_NAME.')
AND l.person_id = p.person_id
ORDER BY l.zeitpunkt DESC
LIMIT 1
)
LIMIT 1
) AS "InfoCenterMitarbeiter"
FROM public.tbl_person p
LEFT JOIN (
SELECT tpl.person_id,
@@ -298,7 +315,8 @@
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'gesendet').')',
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'nichtGesendet').')',
ucfirst($this->p->t('lehre', 'studiengang')).' ('.$this->p->t('global', 'aktiv').')',
'ZGV Nation'
'ZGV Nation',
'InfoCenter Mitarbeiter'
),
'formatRow' => function($datasetRaw) {
@@ -380,6 +398,15 @@
$datasetRaw->{'ZGVNation'} = '-';
}
if ($datasetRaw->{'InfoCenterMitarbeiter'} === 'InfoCenter')
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Ja';
}
else
{
$datasetRaw->{'InfoCenterMitarbeiter'} = 'Nein';
}
return $datasetRaw;
},
'markRow' => function($datasetRaw) {
@@ -25,7 +25,8 @@
'public/js/bootstrapper.js',
'public/js/tablesort/tablesort.js',
'public/js/infocenter/messageList.js',
'public/js/infocenter/infocenterDetails.js'
'public/js/infocenter/infocenterDetails.js',
'public/js/infocenter/zgvUeberpruefung.js'
),
'phrases' => array(
'infocenter' => array(
@@ -43,7 +44,11 @@
'nichtsZumEntfernen',
'fehlerBeimEntfernen',
'rueckstelldatumUeberschritten',
'parkenZurueckstellenInfo'
'parkenZurueckstellenInfo',
'zgvInPruefung',
'zgvErfuellt',
'zgvNichtErfuellt',
'zgvErfuelltPruefung'
),
'ui' => array(
'gespeichert',
@@ -25,7 +25,8 @@
'public/js/bootstrapper.js',
'public/js/tablesort/tablesort.js',
'public/js/infocenter/messageList.js',
'public/js/infocenter/infocenterDetails.js'
'public/js/infocenter/infocenterDetails.js',
'public/js/infocenter/zgvUeberpruefung.js'
),
'phrases' => array(
'infocenter' => array(
@@ -34,8 +35,9 @@
'nichtsZumEntfernen',
'fehlerBeimEntfernen',
'zgvInPruefung',
'zgvAkzeptiert',
'zgvAbgelehnt'
'zgvErfuellt',
'zgvNichtErfuellt',
'zgvErfuelltPruefung'
),
'ui' => array(
'gespeichert',
@@ -116,36 +118,66 @@
<?php $this->load->view('system/infocenter/dokpruefung.php', array('formalReadonly' => true)); ?>
</div> <!-- ./panel-body -->
<div class="panel-body">
<div class="panel-body zgvBearbeitungButtons" id="zgvBearbeitungButtons_<?php echo $prestudent_id ?>">
<button type="button" class="btn btn-default zgvAkzeptieren" id="zgvAkzeptieren_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvAkzeptieren') ?>
<?php echo $this->p->t('infocenter', 'zgvErfuellt') ?>
</button>
<button type="button" class="btn btn-default zgvAblehnen" id="zgvAblehnen_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvAblehnen') ?>
<?php echo $this->p->t('infocenter', 'zgvNichtErfuellt') ?>
</button>
<span id="zgvStatusText">
<?php
switch ($status)
{
case 'pruefung_stg' :
echo $this->p->t('infocenter', 'zgvInPruefung');
break;
case 'accepted' :
echo $this->p->t('infocenter', 'zgvAkzeptiert');
break;
case 'rejected' :
echo $this->p->t('infocenter', 'zgvAbgelehnt');
break;
}
?>
<button type="button" class="btn btn-default zgvAkzeptierenPruefung" id="zgvAkzeptierenPruefung_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'zgvErfuelltPruefung') ?>
</button>
<span class="zgvStatusText_" id="zgvStatusText_<?php echo $prestudent_id ?>">
</span>
</input>
</div>
</div> <!-- ./panel -->
</div> <!-- ./column -->
</div> <!-- ./row -->
</section>
<section>
<div class="modal fade notizModal" id="notizModal_<?php echo $prestudent_id ?>" tabindex="-1"
role="dialog"
aria-labelledby="notizModalLabel"
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="notizModalLabel">
<?php echo $this->p->t('infocenter', 'notizHinzufuegen') ?>
<span id="notizModalStgr_<?php echo $prestudent_id ?>"></span>
</h4>
</div>
<div class="modal-body">
<input type="hidden" id="inputStatus_<?php echo $prestudent_id ?>">
<div class="form-group">
<label for="inputNotizTitelModal"><?php echo ucfirst($this->p->t('global', 'titel')) . ':' ?></label>
<input id="inputNotizTitelModal" required type="text" class="form-control"/>
</div>
<div class="form-group">
<label for="inputNotizTextModal"><?php echo ucfirst($this->p->t('global', 'text')) . ':' ?></label>
<textarea id="inputNotizTextModal" required class="form-control" rows="3" cols="32"></textarea>
</div>
</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-default saveZgvNotiz" id="saveZgvNotiz_<?php echo $prestudent_id ?>">
<?php echo $this->p->t('ui', 'speichern') ?>
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal-fade -->
</section>
<section>
<div class="row">
<div class="col-lg-12">
@@ -4,7 +4,6 @@ $APP = '\'infocenter\'';
$INTERESSENT_STATUS = '\'Interessent\'';
$TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\'';
$LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'New application\'';
$STATUS = '\'pruefung_stg\'';
$uid = get_uid();
$rechte = new benutzerberechtigung();
@@ -17,14 +16,14 @@ $query = '
ps.prestudent_id AS "PreStudentID",
p.vorname AS "Vorname",
p.nachname AS "Nachname",
sg.kurzbzlang AS "Studiengang"
sg.kurzbzlang AS "Studiengang",
zgvstatus.status as "Status"
FROM public.tbl_zgvpruefungstatus_status zgvstatus
JOIN public.tbl_zgvpruefung zgv USING (zgvpruefung_id)
JOIN public.tbl_prestudent ps USING (prestudent_id)
JOIN public.tbl_person p USING(person_id)
JOIN public.tbl_studiengang sg USING(studiengang_kz)
WHERE zgvstatus.status = ' . $STATUS . '
AND oe_kurzbz IN ('. $oeKurz .')
WHERE oe_kurzbz IN ('. $oeKurz .')
AND zgvstatus.datum IN (
SELECT MAX(zgvstatus.datum)
FROM public.tbl_zgvpruefungstatus_status zgvstatus GROUP BY zgvstatus.zgvpruefung_id)
@@ -50,11 +49,24 @@ $filterWidgetArray = array(
'<a href="%s?prestudent_id=%s&origin_page=%s&fhc_controller_id=%s&prev_filter_id=%s">Details</a>',
site_url('system/infocenter/InfoCenter/showZGVDetails'),
$datasetRaw->{'PreStudentID'},
'zgvUeberpruefung',
'ZGVUeberpruefung',
(isset($_GET['fhc_controller_id']) ? $_GET['fhc_controller_id'] : ''),
(isset($_GET['filter_id']) ? $_GET['filter_id'] : '')
);
switch ($datasetRaw->{'Status'})
{
case 'accepted' :
$datasetRaw->{'Status'} = $this->p->t('infocenter', 'zgvErfuellt');
break;
case 'rejected' :
$datasetRaw->{'Status'} = $this->p->t('infocenter', 'zgvNichtErfuellt');
break;
case 'accepted_pruefung' :
$datasetRaw->{'Status'} = $this->p->t('infocenter', 'zgvErfuelltPruefung');
break;
}
return $datasetRaw;
},
);
@@ -311,31 +311,14 @@
</form>
<?php if (!$infoonly): ?>
<div class="row">
<div class="col-xs-8 text-left">
<div class="col-xs-8 text-left zgvBearbeitungButtons" id="zgvBearbeitungButtons_<?php echo $zgvpruefung->prestudent_id ?>">
<button type="button" class="btn btn-default zgvUebernehmen" id="zgvUebernehmen_<?php echo $zgvpruefung->prestudent_id ?>">
<?php echo $this->p->t('infocenter', 'letzteZgvUebernehmen') ?>
</button>
<button type="button" class="btn btn-default zgvRueckfragen" id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>">
<button class="btn btn-default zgvRueckfragen" id="zgvRueckfragen_<?php echo $zgvpruefung->prestudent_id ?>" <?php (!(isset($zgvpruefung->statusZGV))) ?: print_r('disabled')?>>
<?php echo $this->p->t('infocenter', 'zgvRueckfragen') ?>
</button>
<span id="zgvStatusText">
<?php
if (isset($zgvpruefung->statusZGV))
{
switch ($zgvpruefung->statusZGV)
{
case 'pruefung_stg' :
echo $this->p->t('infocenter', 'zgvInPruefung');
break;
case 'accepted' :
echo $this->p->t('infocenter', 'zgvAkzeptiert');
break;
case 'rejected' :
echo $this->p->t('infocenter', 'zgvAbgelehnt');
break;
}
}
?>
<span class="zgvStatusText" id="zgvStatusText_<?php echo $zgvpruefung->prestudent_id ?>">
</span>
</div>
<div class="col-xs-4 text-right">
+6 -97
View File
@@ -221,70 +221,6 @@ var InfocenterDetails = {
}
);
},
zgvRueckfragen: function(data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/zgvRueckfragen',
data,
{
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
var response = FHC_AjaxClient.getData(data);
var date = new Date();
date.setDate(date.getDate() + 14);
var dd = date.getDate();
var mm = date.getMonth() + 1;
var y = date.getFullYear();
var formatedDate = mm + '/'+ dd + '/'+ y;
InfocenterDetails.setPersonOnHold(response.person_id, formatedDate);
$('#zgvStatusText').text(FHC_PhrasesLib.t('infocenter', 'zgvInPruefung'));
InfocenterDetails._refreshZgv();
FHC_DialogLib.alertSuccess(response.msg);
} else if(FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
},
errorCallback: function(jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError((jqXHR.responseText));
}
}
);
},
zgvStatusUpdate: function(data)
{
var status = data.status;
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/zgvStatusUpdate',
data,
{
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
var response = FHC_AjaxClient.getData(data)
FHC_DialogLib.alertSuccess(response.msg);
InfocenterDetails.removePersonOnHold(response.person_id);
if (status === 'rejected')
var p = 'zgvAbgelehnt'
else if (status === 'accepted')
var p = 'zgvAkzeptiert';
$('#zgvStatusText').text(FHC_PhrasesLib.t('infocenter', p));
} else if (FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
},
errorCallback: function(jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError((jqXHR.responseText));
}
}
);
},
saveZgv: function(data)
{
@@ -405,8 +341,9 @@ var InfocenterDetails = {
}
);
},
saveNotiz: function(personid, data)
saveNotiz: function(personid, data, callback)
{
var callbackValue = data;
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/saveNotiz/' + encodeURIComponent(personid),
data,
@@ -416,6 +353,8 @@ var InfocenterDetails = {
{
InfocenterDetails._refreshNotizen();
InfocenterDetails._refreshLog();
if ($.isFunction(callback))
callback(callbackValue);
}
else
{
@@ -811,38 +750,8 @@ var InfocenterDetails = {
InfocenterDetails.zgvUebernehmen(personid, prestudentid, btn);
});
$('.zgvRueckfragen').click(function ()
{
//var btn = $(this);
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
//$('#zgvUebernehmenNotice').remove();
var data = {
'person_id' : personid,
'prestudent_id' : prestudentid
}
InfocenterDetails.zgvRueckfragen(data);
});
$('.zgvAkzeptieren').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
'person_id' : personid,
'prestudent_id' : prestudentid,
'status' : 'accepted'
}
InfocenterDetails.zgvStatusUpdate(data);
});
$('.zgvAblehnen').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
'person_id' : personid,
'prestudent_id' : prestudentid,
'status' : 'rejected'
}
InfocenterDetails.zgvStatusUpdate(data);
$('.notizModal').on('hidden.bs.modal', function () {
$(':input', this).val('');
});
//zgv speichern
+189
View File
@@ -0,0 +1,189 @@
$(document).ready(function ()
{
var personid = $("#hiddenpersonid").val();
if ($('#zgvpruefungen').length)
{
$('#zgvpruefungen .zgvRueckfragen').each(function() {
if($(this).is(':disabled')) {
zgvUeberpruefung.checkStatus(InfocenterDetails._getPrestudentIdFromElementId($(this).attr('id')));
}
});
} else
{
zgvUeberpruefung.checkStatus();
}
$('.zgvRueckfragen').click(function ()
{
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
'person_id' : personid,
'prestudent_id' : prestudentid
}
zgvUeberpruefung.zgvRueckfragen(data);
});
$('.zgvAkzeptieren').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
var data = {
'person_id' : personid,
'prestudent_id' : prestudentid,
'status' : 'accepted'
}
zgvUeberpruefung.zgvStatusUpdate(data);
});
$('.zgvAblehnen').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
$('#inputStatus_' + prestudentid).val('rejected');
$('#notizModal_' + prestudentid).modal('show');
});
$('.zgvAkzeptierenPruefung').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
$('#inputStatus_' + prestudentid).val('accepted_pruefung');
$('#notizModal_' + prestudentid).modal('show');
});
$('.saveZgvNotiz').click(function (){
var prestudentid = InfocenterDetails._getPrestudentIdFromElementId(this.id);
if ($('#inputNotizTitelModal').val() === '' || $('#inputNotizTextModal').val() === '')
return FHC_DialogLib.alertWarning('Please fill out all fields');
var data = {
'person_id' : personid,
'notiztitel' : $('#inputNotizTitelModal').val(),
'notiz' : $('#inputNotizTextModal').val(),
'prestudent_id' : prestudentid,
'status' : $('#inputStatus_' + prestudentid).val()
}
InfocenterDetails.saveNotiz(personid, data, zgvUeberpruefung.zgvStatusUpdate);
$('#notizModal_' + prestudentid).modal('hide');
});
});
var zgvUeberpruefung = {
checkStatus: function(prestudent_id)
{
if (prestudent_id === undefined)
prestudent_id = zgvUeberpruefung.getPrestudentId();
FHC_AjaxClient.ajaxCallGet(
"system/infocenter/ZGVUeberpruefung/getZgvStatusByPrestudent",
{
prestudent_id : prestudent_id
},
{
successCallback: function(data, textStatus, jqXHR) {
if (FHC_AjaxClient.hasData(data))
{
$('#zgvBearbeitungButtons_' + prestudent_id +' button').each(function() {
$(this).attr('disabled', false);
});
var status = FHC_AjaxClient.getData(data);
switch (status)
{
case 'rejected' :
$('#zgvAblehnen_' + prestudent_id).attr('disabled', true);
$('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvNichtErfuellt'));
break;
case 'accepted' :
$('#zgvAkzeptieren_' + prestudent_id).attr('disabled', true);
$('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvErfuellt'));
break;
case 'accepted_pruefung' :
$('#zgvAkzeptierenPruefung_' + prestudent_id).attr('disabled', true);
$('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvErfuelltPruefung'));
break;
case 'pruefung_stg' :
$('#zgvRueckfragen_' + prestudent_id).attr('disabled', true);
$('#zgvStatusText_' + prestudent_id).text(FHC_PhrasesLib.t('infocenter', 'zgvInPruefung'));
break;
}
}
},
errorCallback: function(data, textStatus, errorThrown)
{
FHC_DialogLib.alertError(data);
},
veilTimeout: 0
}
);
},
zgvRueckfragen: function(data)
{
var prestudent_id = data.prestudent_id;
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/zgvRueckfragen',
data,
{
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
zgvUeberpruefung.checkStatus(prestudent_id);
var response = FHC_AjaxClient.getData(data);
if (response.hold === false)
{
var datum = new Date();
datum.setDate(datum.getDate() + 14);
var formatedDate = $.datepicker.formatDate("mm/dd/yy", datum);
InfocenterDetails.setPersonOnHold(response.person_id, formatedDate);
}
FHC_DialogLib.alertSuccess(response.msg);
} else if(FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
},
errorCallback: function(jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError((jqXHR.responseText));
}
}
);
},
zgvStatusUpdate: function(data)
{
FHC_AjaxClient.ajaxCallPost(
CALLED_PATH + '/zgvStatusUpdate',
data,
{
successCallback: function(data, textStatus, jqXHR)
{
if (FHC_AjaxClient.hasData(data))
{
zgvUeberpruefung.checkStatus();
var response = FHC_AjaxClient.getData(data)
if (response.openZgv === false)
InfocenterDetails.removePersonOnHold(response.person_id);
FHC_DialogLib.alertSuccess(response.msg);
} else if (FHC_AjaxClient.isError(data))
FHC_DialogLib.alertError(FHC_AjaxClient.getError(data));
},
errorCallback: function(jqXHR, textStatus, errorThrown)
{
FHC_DialogLib.alertError((jqXHR.responseText));
}
}
);
},
getPrestudentId: function()
{
var id = $('.zgvBearbeitungButtons .zgvAkzeptierenPruefung').attr('id');
return InfocenterDetails._getPrestudentIdFromElementId(id);
}
}
+1
View File
@@ -4715,6 +4715,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus LIMIT 1
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('pruefung_stg', 'Wird vom Studiengang geprüft');
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('rejected', 'Vom Studiengang abgelehnt');
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted', 'Vom Studiengang akzeptiert');
INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted_pruefung', 'Vom Studiengang akzeptiert mit Prüfung');
GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus TO vilesci;
GRANT SELECT ON public.tbl_zgvpruefungstatus TO web;
+51 -4
View File
@@ -404,11 +404,58 @@ $filters = array(
array(
'app' => 'infocenter',
'dataset_name' => 'zgvUeberpruefung',
'filter_kurzbz' => 'zgvUeberpruefung',
'description' => '{ZGV Übersicht}',
'sort' => 4,
'filter_kurzbz' => 'zgvOffen',
'description' => '{ZGV Überprüfung}',
'sort' => 1,
'default_filter' => true,
'filter' => '
{
"name": "Zgv Überprüfung",
"columns": [
{"name": "PreStudentID"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Studiengang"}
],
"filters": [
{
"name": "Status",
"condition": "stg",
"operation": "contains"
}
]
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'infocenter',
'dataset_name' => 'zgvUeberpruefung',
'filter_kurzbz' => 'zgvRest',
'description' => '{ZGV abgeschlossen}',
'sort' => 2,
'default_filter' => true,
'filter' => '
{
"name": "Zgv abgeschlossen",
"columns": [
{"name": "PreStudentID"},
{"name": "Vorname"},
{"name": "Nachname"},
{"name": "Studiengang"},
{"name": "Status"}
],
"filters": [
{
"name": "Status",
"condition": "stg",
"operation": "ncontains"
}
]
}
',
'oe_kurzbz' => null,
),
array(
'app' => 'budget',
'dataset_name' => 'budgetoverview',
+98 -98
View File
@@ -88,6 +88,26 @@ $phrases = array(
)
)
),
array(
'app' => 'core',
'category' => 'global',
'phrase' => 'text',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Text',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'text',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'core',
'category' => 'global',
@@ -3006,66 +3026,86 @@ $phrases = array(
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvRueckfragen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ZGV Prüfung beantragen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'apply for a ZGV examination',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvAkzeptieren',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokumente akzeptieren',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'accept documents',
'description' => '',
'insertvon' => 'system'
)
)
),
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvRueckfragen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ZGV Prüfung beantragen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'apply for a ZGV examination',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvAblehnen',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokumente ablehnen',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'reject documents',
'description' => '',
'insertvon' => 'system'
)
)
),
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvErfuellt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ZGV erfüllt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ZGV fulfilled',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvNichtErfuellt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ZGV nicht erfüllt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ZGV unfulfilled',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvErfuelltPruefung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'ZGV erfüllt mit Prüfung',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'ZGV fulfilled with exam',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
@@ -3086,46 +3126,6 @@ $phrases = array(
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvAkzeptiert',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokumente akzeptiert',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'accepted documents',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',
'phrase' => 'zgvAbgelehnt',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Dokumente abgelehnt',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'rejected documents',
'description' => '',
'insertvon' => 'system'
)
)
),
array(
'app' => 'infocenter',
'category' => 'infocenter',