diff --git a/application/controllers/system/infocenter/InfocenterDetails.php b/application/controllers/system/infocenter/InfocenterDetails.php
index f65efea77..390885207 100644
--- a/application/controllers/system/infocenter/InfocenterDetails.php
+++ b/application/controllers/system/infocenter/InfocenterDetails.php
@@ -2,8 +2,15 @@
if (! defined("BASEPATH")) exit("No direct script access allowed");
+/**
+ * Class InfocenterDetails
+ * shows aufnahme-related data for a person and its prestudents, enables document and zgv checks,
+ * displays and saves Notizen for a person, logs aufnahme-related actions for a person
+ */
class InfocenterDetails extends VileSci_Controller
{
+ //app name for logging
+ const APP = 'aufnahme';
/**
* constructor
@@ -11,20 +18,13 @@ class InfocenterDetails extends VileSci_Controller
public function __construct()
{
parent::__construct();
- // Load models
+
$this->load->model('person/person_model', 'PersonModel');
- $this->load->model('person/kontakt_model', 'KontaktModel');
- $this->load->model('person/adresse_model', 'AdresseModel');
$this->load->model('person/notiz_model', 'NotizModel');
- $this->load->model('person/notizzuordnung_model', 'NotizzuordnungModel');
$this->load->model('crm/prestudent_model', 'PrestudentModel');
$this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
$this->load->model('crm/akte_model', 'AkteModel');
$this->load->model('crm/statusgrund_model', 'StatusgrundModel');
- $this->load->model('codex/nation_model', 'NationModel');
- $this->load->model('codex/zgv_model', 'ZgvModel');
- $this->load->model('codex/zgvmaster_model', 'ZgvmasterModel');
- $this->load->model('organisation/studiengang_model', 'StudiengangModel');
$this->load->library('DmsLib');
$this->load->library('WidgetLib');
@@ -33,53 +33,27 @@ class InfocenterDetails extends VileSci_Controller
$this->load->helper('fhcauth');
$this->load->helper('url');
- $this->app = 'aufnahme';
$this->uid = getAuthUID();
if(!$this->uid)
show_error('user authentification failed');
}
- public function index()
- {
- //TODO error page
- }
-
+ /**
+ * loads all necessary Person data: Stammdaten (name, svnr, contact, ...), Dokumente, Logs and Notizen
+ * @param $person_id
+ * @return array
+ */
private function __loadPersonData($person_id)
{
- $person = $this->PersonModel->load($person_id);
+ $stammdaten = $this->PersonModel->getPersonStammdaten($person_id);
- if ($person->error)
+ if ($stammdaten->error)
{
- show_error($person->retval);
+ show_error($stammdaten->retval);
}
- $staatsbuergerschaft = $this->NationModel->load($person->retval[0]->staatsbuergerschaft);
- if ($staatsbuergerschaft->error)
- {
- show_error($staatsbuergerschaft->retval);
- }
-
- $geburtsnation = $this->NationModel->load($person->retval[0]->geburtsnation);
- if ($geburtsnation->error)
- {
- show_error($geburtsnation->retval);
- }
-
- $this->KontaktModel->addDistinct();
- $this->KontaktModel->addSelect('kontakttyp, kontakt');
- $kontakte = $this->KontaktModel->loadWhere(array('person_id' => $person_id));
-
- if ($kontakte->error)
- {
- show_error($kontakte->retval);
- }
-
- $adresse = $this->AdresseModel->loadWhere(array('person_id' => $person_id));
-
- if ($adresse->error)
- {
- show_error($adresse->retval);
- }
+ if(!isset($stammdaten->retval))
+ return null;
$dokumente = $this->AkteModel->loadWhere(array('person_id' => $person_id));
@@ -88,41 +62,30 @@ class InfocenterDetails extends VileSci_Controller
show_error($dokumente->retval);
}
- $logs = $this->personloglib->getLogs($person_id, $this->app);
+ $logs = $this->personloglib->getLogs($person_id, $this::APP);
- foreach($logs as $log)
- $log->logdata = json_decode($log->logdata);
+ $notizen = $this->NotizModel->getNotiz($person_id);
- $this->NotizzuordnungModel->addSelect('notiz_id');
- $notizzuordnung = $this->NotizzuordnungModel->loadWhere(array('person_id' => $person_id));
-
- if ($notizzuordnung->error)
+ if ($notizen->error)
{
- show_error($notizzuordnung->retval);
- }
-
- $notizen = array();
-
- foreach ($notizzuordnung->retval as $notiz_id)
- {
- $notiz = $this->NotizModel->load($notiz_id->notiz_id);
- $notizen[] = $notiz->retval[0];
+ show_error($notizen->retval);
}
$data = array (
- 'person' => $person->retval[0],
- 'staatsbuergerschaft' => $staatsbuergerschaft->retval[0],
- 'geburtsnation' => $geburtsnation->retval[0],
- 'kontakte' => $kontakte->retval,
- 'adresse' => isset($adresse->retval[0]) ? $adresse->retval[0] : null,
+ 'stammdaten' => $stammdaten->retval,
'dokumente' => $dokumente->retval,
'logs' => $logs,
- 'notizen' => $notizen
+ 'notizen' => $notizen->retval
);
return $data;
}
+ /**
+ * loads all necessary Prestudent data: Zgv data, Statusgruende
+ * @param $person_id
+ * @return array
+ */
private function __loadPrestudentData($person_id)
{
$zgvpruefungen = [];
@@ -136,117 +99,14 @@ class InfocenterDetails extends VileSci_Controller
foreach ($prestudenten->retval as $prestudent)
{
- $zgvpruefung = new stdClass();
- $zgvpruefung->prestudent_id = $prestudent->prestudent_id;
+ $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent->prestudent_id);
- //Prestudentstatus
- $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent->prestudent_id);
-
- if ($lastStatus->error)
+ if ($prestudent->error)
{
- show_error($lastStatus->retval);
+ show_error($prestudent->retval);
}
- $zgvpruefung->prestudentstatus = $lastStatus->retval[0];
-
- // Studiengang
- $this->StudiengangModel->addSelect('kurzbzlang, bezeichnung, typ');//TODO need bezeichnung?
- $studiengang = $this->StudiengangModel->load($prestudent->studiengang_kz);
-
- if ($studiengang->error)
- {
- show_error($studiengang->retval);
- }
-
- $zgvpruefung->studiengang = $studiengang->retval[0]->kurzbzlang;
- $zgvpruefung->studiengangtyp = $studiengang->retval[0]->typ;
-
- // Zgv
- if (isset($prestudent->zgv_code))
- {
- $this->ZgvModel->addSelect('zgv_code, zgv_bez');
- $zgv = $this->ZgvModel->load($prestudent->zgv_code);
-
- if ($zgv->error)
- {
- show_error($zgv->retval);
- }
-
- $zgvpruefung->zgv_code = $zgv->retval[0]->zgv_code;
- $zgvpruefung->zgv_bez = $zgv->retval[0]->zgv_bez;
- }
- else
- {
- $zgvpruefung->zgv_code = null;
- $zgvpruefung->zgv_bez = null;
- }
- $zgvpruefung->zgvort = $prestudent->zgvort;
- $zgvpruefung->zgvdatum = $prestudent->zgvdatum;
-
- // Zgv Nation
- if (isset($prestudent->zgvnation))
- {
- $this->NationModel->addSelect('nation_code, kurztext');
- $zgvnation = $this->NationModel->load($prestudent->zgvnation);
-
- if ($zgvnation->error)
- {
- show_error($zgvnation->retval);
- }
-
- $zgvpruefung->zgvnation_code = $zgvnation->retval[0]->nation_code;
- $zgvpruefung->zgvnation_bez = $zgvnation->retval[0]->kurztext;
- }
- else
- {
- $zgvnation = null;
- $zgvpruefung->zgvnation_code = null;
- $zgvpruefung->zgvnation_bez = null;
- }
-
- // Zgv Master
- if (isset($prestudent->zgvmas_code))
- {
- $this->ZgvmasterModel->addSelect('zgvmas_code, zgvmas_bez');
- $zgvmas = $this->ZgvmasterModel->load($prestudent->zgvmas_code);
-
- if ($zgvmas->error)
- {
- show_error($zgvmas->retval);
- }
- $zgvpruefung->zgvmas_code = $zgvmas->retval[0]->zgvmas_code;
- $zgvpruefung->zgvmas_bez = $zgvmas->retval[0]->zgvmas_bez;
- }
- else
- {
- $zgvpruefung->zgvmas_code = null;
- $zgvpruefung->zgvmas_bez = null;
- }
- $zgvpruefung->zgvmaort = $prestudent->zgvmaort;
- $zgvpruefung->zgvmadatum = $prestudent->zgvmadatum;
-
- // Zgv Master Nation
- if (isset($prestudent->zgvmanation))
- {
- $this->NationModel->addSelect('nation_code, kurztext');
- $zgvmanation = $this->NationModel->load($prestudent->zgvmanation);
-
- if ($zgvmanation->error)
- {
- show_error($zgvmanation->retval);
- }
-
- $zgvpruefung->zgvmanation_code = $zgvmanation->retval[0]->nation_code;
- $zgvpruefung->zgvmanation_bez = $zgvmanation->retval[0]->kurztext;
- }
- else
- {
- $zgvmanation = null;
- $zgvpruefung->zgvmanation_code = null;
- $zgvpruefung->zgvmanation_bez = null;
- }
-
- $zgvpruefungen[] = $zgvpruefung;
+ $zgvpruefungen[] = $prestudent->retval[0];
}
//TODO replace with widget
@@ -260,19 +120,33 @@ class InfocenterDetails extends VileSci_Controller
return $data;
}
+ /**
+ * initialization function, gets person and prestudent data and loads the view with the data
+ * @param $person_id
+ */
public function showDetails($person_id)
{
+ if(!is_numeric($person_id))
+ show_error('person id is not numeric!');
$persondata = $this->__loadPersonData($person_id);
+ if(!isset($persondata))
+ show_error('person does not exist!');
$prestudentdata = $this->__loadPrestudentData($person_id);
$this->load->view('system/infocenter/infocenterDetails.php', array_merge($persondata, $prestudentdata));
}
+ /**
+ * saves if a document has been formal geprueft. saves current timestamp if checked as geprueft, or null if not.
+ */
public function saveFormalGeprueft()
{
$akte_id = $this->input->get('akte_id');
$formalgeprueft = $this->input->get('formal_geprueft');
$person_id = $this->input->get('person_id');
+ if(!isset($akte_id) || !isset($formalgeprueft) || !isset($person_id))
+ show_error('Parameters not set!');
+
$akte = $this->AkteModel->load($akte_id);
if ($akte->error)
@@ -280,23 +154,28 @@ class InfocenterDetails extends VileSci_Controller
show_error($akte->retval);
}
- $timestamp = (isset($formalgeprueft) && $formalgeprueft === 'true')? date('Y-m-d H:i:s') : null;
- $this->AkteModel->update($akte_id, array('formal_geprueft_amum' => $timestamp));
+ $timestamp = ($formalgeprueft === 'true') ? date('Y-m-d H:i:s') : null;
+ $result = $this->AkteModel->update($akte_id, array('formal_geprueft_amum' => $timestamp));
+
+ if ($result->error)
+ {
+ show_error($result->retval);
+ }
//write person log
- $this->personloglib->log($person_id, 'Action', array('name' => 'Dokument formal geprüft', 'message' => 'Dokument'.$akte->titel.' formal geprüft, gesetzt auf '.(is_null($timestamp) ? 'NULL' : $timestamp), 'success' => 'true'), $this->app, null, $this->uid);
-
- redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
+ $this->personloglib->log($person_id, 'Action', array('name' => 'Dokument formal geprüft', 'message' => 'Dokument '.$akte->titel.' formal geprüft, gesetzt auf '.(is_null($timestamp) ? 'NULL' : $timestamp), 'success' => 'true'), $this::APP, null, $this->uid);
+ //redirect to start page
+ redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#DokPruef');
}
+ /**
+ * saves a zgv for a prestudent. includes Ort, Datum, Nation for bachelor and master.
+ * @param $prestudent_id
+ */
public function saveZgvPruefung($prestudent_id)
{
- // prestudentdata
- $studiensemester = $this->input->post('studiensemester') === 'null' ? null : $this->input->post('studiensemester');
- $ausbildungssemester = $this->input->post('ausbildungssemester');
-
// zgvdata
- $zgv_code = $this->input->post('zgv') === 'null' ? null : $this->input->post('zgv');
+ $zgv_code = $this->input->post('zgv') === 'null' ? null : $this->input->post('zgv');//check for string null, in case dropdown changed to default value
$zgvort = $this->input->post('zgvort');
$zgvdatum = $this->input->post('zgvdatum');
$zgvdatum = empty($zgvdatum) ? null : date_format(date_create($zgvdatum), 'Y-m-d');
@@ -309,20 +188,6 @@ class InfocenterDetails extends VileSci_Controller
$zgvmadatum = empty($zgvmadatum) ? null : date_format(date_create($zgvmadatum), 'Y-m-d');
$zgvmanation_code = $this->input->post('zgvmanation') === 'null' ? null : $this->input->post('zgvmanation');
- $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
-
- if ($lastStatus->error)
- {
- show_error($lastStatus->retval);
- }
-
- $result = $this->PrestudentstatusModel->update(array('prestudent_id' => $prestudent_id, 'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz, 'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester), array('studiensemester_kurzbz' => $studiensemester, 'ausbildungssemester' => $ausbildungssemester));
-
- if ($result->error)
- {
- show_error($result->retval);
- }
-
$result = $this->PrestudentModel->update($prestudent_id, array('zgv_code' => $zgv_code, 'zgvort' => $zgvort, 'zgvdatum' => $zgvdatum, 'zgvnation' => $zgvnation_code,
'zgvmas_code' => $zgvmas_code, 'zgvmaort' => $zgvmaort, 'zgvmadatum' => $zgvmadatum, 'zgvmanation' => $zgvmanation_code));
@@ -331,15 +196,22 @@ class InfocenterDetails extends VileSci_Controller
show_error($result->retval);
}
+ //get extended Prestudent data for logging
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
- $this->personloglib->log($logdata['person_id'], 'Action', array('name' => 'Zgv gespeichert', 'message' => 'Zgv für Studiengang '.$logdata['studiengang_kurzbz'].' wurde gespeichert ', 'success' => 'true'), $this->app, null, $this->uid);
+ $this->personloglib->log($logdata['person_id'], 'Action', array('name' => 'Zgv gespeichert', 'message' => 'Zgv für Studiengang '.$logdata['studiengang_kurzbz'].' wurde gespeichert', 'success' => 'true'), $this::APP, null, $this->uid);
- $this->__redirectToStart($prestudent_id);
+ $this->__redirectToStart($prestudent_id, 'ZgvPruef');
}
+ /**
+ * saves Absage for Prestudent including the reason for the Absage (statusgrund).
+ * inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status.
+ * @param $prestudent_id
+ */
public function saveAbsage($prestudent_id)
{
+ //TODO email messaging
$statusgrund = $this->input->post('statusgrund');
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -358,11 +230,16 @@ class InfocenterDetails extends VileSci_Controller
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
- $this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent abgewiesen', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' abgewiesen', 'success' => 'true'), $this->app, null, $this->uid);
+ $this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent abgewiesen', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' abgewiesen', 'success' => 'true'), $this::APP, null, $this->uid);
- $this->__redirectToStart($prestudent_id);
+ $this->__redirectToStart($prestudent_id, 'ZgvPruef');
}
+ /**
+ * saves Freigabe of a Prestudent to the Studiengang.
+ * updates bestaetigtam and bestaetigtvon fields of the last status
+ * @param $prestudent_id
+ */
public function saveFreigabe($prestudent_id)
{
$lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
@@ -382,11 +259,15 @@ class InfocenterDetails extends VileSci_Controller
$logdata = $this->__getPersonAndStudiengangFromPrestudent($prestudent_id);
- $this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent freigegeben', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' freigegeben', 'success' => 'true'), $this->app, null, $this->uid);
+ $this->personloglib->log($logdata['person_id'], 'Processstate', array('name' => 'Interessent freigegeben', 'message' => 'Interessent wurde für Studiengang '.$logdata['studiengang_kurzbz'].' freigegeben', 'success' => 'true'), $this::APP, null, $this->uid);
- $this->__redirectToStart($prestudent_id);
+ $this->__redirectToStart($prestudent_id, 'ZgvPruef');
}
+ /**
+ * saves a new Notiz for a person
+ * @param $person_id
+ */
public function saveNotiz($person_id)
{
$titel = $this->input->post('notiztitel');
@@ -395,11 +276,15 @@ class InfocenterDetails extends VileSci_Controller
$this->NotizModel->addNotizForPerson($person_id, $titel, $text, $erledigt, $this->uid);
- $this->personloglib->log($person_id, 'Action', array('name' => 'Notiz hinzugefügt', 'message' => 'Notiz mit Titel '.$titel.' wurde hinzugefügt', 'success' => 'true'), $this->app, null, $this->uid);
+ $this->personloglib->log($person_id, 'Action', array('name' => 'Notiz hinzugefügt', 'message' => 'Notiz mit Titel '.$titel.' wurde hinzugefügt', 'success' => 'true'), $this::APP, null, $this->uid);
- redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
+ redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#NotizAkt');
}
+ /**
+ * Outputs content of an Akte, sends appropriate headers (so the document can be downloaded)
+ * @param $akte_id
+ */
public function outputAkteContent($akte_id)
{
$akte = $this->AkteModel->load($akte_id);
@@ -416,22 +301,34 @@ class InfocenterDetails extends VileSci_Controller
show_error($aktecontent->retval);
}
- header("Content-type: ".$akte->retval[0]->mimetype);
- header('Content-Disposition: attachment; filename="'.$akte->retval[0]->titel.'"');
- echo $aktecontent->retval;
+ $this->output
+ ->set_status_header(200)
+ ->set_content_type($akte->retval[0]->mimetype, 'utf-8')
+ ->set_header('Content-Disposition: attachment; filename="'.$akte->retval[0]->titel.'"')
+ ->set_output($aktecontent->retval)
+ ->_display();
}
- private function __redirectToStart($prestudent_id)
+ /**
+ * helper function for redirecting to initial page for person from a prestudent-specific page
+ * @param $prestudent_id
+ * @param $section optional section of the page to go to
+ */
+ private function __redirectToStart($prestudent_id, $section = '')
{
$this->PrestudentModel->addSelect('person_id');
$person_id = $this->PrestudentModel->load($prestudent_id)->retval[0]->person_id;
- redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id);
+ redirect('/system/infocenter/InfocenterDetails/showDetails/'.$person_id.'#'.$section);
}
+ /**
+ * helper function retrieves personid and studiengang kurzbz from a prestudent id
+ * @param $prestudent_id
+ * @return array
+ */
private function __getPersonAndStudiengangFromPrestudent($prestudent_id)
{
- $this->PrestudentModel->addSelect('person_id, studiengang_kz');
- $prestudent = $this->PrestudentModel->load($prestudent_id);
+ $prestudent = $this->PrestudentModel->getPrestudentWithZgv($prestudent_id);
if ($prestudent->error)
{
@@ -439,16 +336,7 @@ class InfocenterDetails extends VileSci_Controller
}
$person_id = $prestudent->retval[0]->person_id;
-
- $this->StudiengangModel->addSelect('kurzbzlang');//TODO need bezeichnung?
- $studiengang = $this->StudiengangModel->load($prestudent->retval[0]->studiengang_kz);
-
- if ($studiengang->error)
- {
- show_error($studiengang->retval);
- }
-
- $studiengang_kurzbz = $studiengang->retval[0]->kurzbzlang;
+ $studiengang_kurzbz = $prestudent->retval[0]->studiengang;
return array('person_id' => $person_id, 'studiengang_kurzbz' => $studiengang_kurzbz);
}
diff --git a/application/libraries/PersonLogLib.php b/application/libraries/PersonLogLib.php
index 34bde6145..6b63ba472 100644
--- a/application/libraries/PersonLogLib.php
+++ b/application/libraries/PersonLogLib.php
@@ -46,7 +46,8 @@ class PersonLogLib
}
/**
- * Gets Logs for a Person, filtered by Parameters
+ * Gets Logs for a Person, filtered by parameters.
+ * Requirements for retrieving log: name is set
* @param int $person_id ID of the Person.
* @param string $app Name of the App.
* @param string $oe_kurzbz Organisations Unit.
@@ -55,8 +56,23 @@ class PersonLogLib
public function getLogs($person_id, $app = null, $oe_kurzbz = null)
{
$result = $this->ci->PersonLogModel->filterLog($person_id, $app, $oe_kurzbz);
+
if (isSuccess($result))
- return $result->retval;
+ {
+ $decoded_logs = array();
+ //decode logs
+ foreach ($result->retval as $log)
+ {
+ $log->logdata = json_decode($log->logdata);
+ //requirement - logname not null
+ if (isset($log->logdata->name))
+ {
+ $decoded_logs[] = $log;
+ }
+ }
+
+ return $decoded_logs;
+ }
else
show_error($result->retval);
}
diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php
index 2919036e9..99e5d4613 100644
--- a/application/models/crm/Prestudent_model.php
+++ b/application/models/crm/Prestudent_model.php
@@ -192,4 +192,38 @@ class Prestudent_model extends DB_Model
return $this->execQuery(sprintf($query, is_array($prestudent_id) ? 'IN' : '='), array($prestudent_id));
}
+
+
+ /**
+ * gets extended zgv data (with bezeichnung) for a prestudent
+ * includes last status, Studiengang, zgv, zgv master
+ * @param $prestudent_id
+ */
+ public function getPrestudentWithZgv($prestudent_id)
+ {
+ $this->addSelect('tbl_prestudent.*, tbl_studiengang.kurzbzlang as studiengang, 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,
+ tbl_zgvmaster.zgvmas_code, tbl_zgvmaster.zgvmas_bez, tbl_prestudent.zgvmaort, tbl_prestudent.zgvmadatum, tbl_prestudent.zgvmanation as zgvmanation_code');
+ $this->addJoin('public.tbl_studiengang', 'studiengang_kz', 'LEFT');
+ $this->addJoin('bis.tbl_zgv', 'zgv_code', 'LEFT');
+ $this->addJoin('bis.tbl_zgvmaster', 'zgvmas_code', 'LEFT');
+
+ $prestudent = $this->load($prestudent_id);
+ if($prestudent->error)
+ return error($prestudent->retval);
+
+ //Prestudentstatus
+ $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel');
+ $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id);
+
+ if ($lastStatus->error)
+ {
+ return error($lastStatus->retval);
+ }
+
+ $prestudent->retval[0]->prestudentstatus = $lastStatus->retval[0];
+
+ return success($prestudent->retval);
+ }
+
}
diff --git a/application/models/person/Notiz_model.php b/application/models/person/Notiz_model.php
index 37581def1..3ec142ca4 100644
--- a/application/models/person/Notiz_model.php
+++ b/application/models/person/Notiz_model.php
@@ -131,5 +131,18 @@ class Notiz_model extends DB_Model
return $result;
}
+
+ /**
+ * gets all Notizen for a person
+ * @param $person_id
+ */
+ public function getNotiz($person_id)
+ {
+ // 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));
+ }
// ------------------------------------------------------------------------------------------------------
-}
\ No newline at end of file
+
+}
diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php
index 770be0e14..caf746b94 100644
--- a/application/models/person/Person_model.php
+++ b/application/models/person/Person_model.php
@@ -152,4 +152,46 @@ class Person_model extends DB_Model
return $result;
}
+
+ /**
+ * gets Stammdaten for a person, including contactdata in textform from other tables
+ * nation, kontakt, adresse
+ * @param $person_id
+ * @return array
+ */
+ public function getPersonStammdaten($person_id)
+ {
+ $this->addSelect('tbl_person.*, s.kurztext as staatsbuergerschaft, g.kurztext as geburtsnation');
+ $this->addJoin('bis.tbl_nation s', 'tbl_person.staatsbuergerschaft = s.nation_code', 'LEFT');
+ $this->addJoin('bis.tbl_nation g', 'tbl_person.geburtsnation = g.nation_code', 'LEFT');
+
+ $person = $this->load($person_id);
+
+ if($person->error)
+ return error($person->retval);
+
+ //return null if not found
+ if(count($person->retval) < 1)
+ return success(null);
+
+ $this->load->model('person/kontakt_model', 'KontaktModel');
+ $this->load->model('person/adresse_model', 'AdresseModel');
+
+ $this->KontaktModel->addDistinct();
+ $this->KontaktModel->addSelect('kontakttyp, anmerkung, kontakt, zustellung');
+ $this->KontaktModel->addOrder('kontakttyp');
+ $kontakte = $this->KontaktModel->loadWhere(array('person_id' => $person_id));
+ if($kontakte->error)
+ return error($kontakte->retval);
+
+ $adressen = $this->AdresseModel->loadWhere(array('person_id' => $person_id));
+ if($adressen->error)
+ return error($adressen->retval);
+
+ $stammdaten = $person->retval[0];
+ $stammdaten->kontakte = $kontakte->retval;
+ $stammdaten->adressen = $adressen->retval;
+
+ return success($stammdaten);
+ }
}
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php
index b663094c7..be9fffea3 100644
--- a/application/views/system/infocenter/infocenterDetails.php
+++ b/application/views/system/infocenter/infocenterDetails.php
@@ -1,269 +1,499 @@
load->view('templates/header', array('title' => 'InfocenterDetails', 'datepicker' => true, 'datepickerclass' => 'dateinput'/*, 'tablesort' => true, 'tableid' => 't1'*/));
+$this->load->view('templates/FHC-Header', array('title' => 'InfocenterDetails', 'jquery3' => true, 'jqueryui' => true, 'bootstrap' => true, 'fontawesome' => true, 'datatables' => true, 'customCSSs' => 'vendor/BlackrockDigital/startbootstrap-sb-admin-2/dist/css/sb-admin-2.min.css'/*, 'datepickerclass' => 'dateinput'*/));
?>
-Infocenter - Person Details
-
-
-
-
+
+
+
+
+
+ | Kontakte |
+
+
+ | Typ |
+ Kontakt |
+ Zustellung |
+ Anmerkung |
+
+
+
+ kontakte as $kontakt): ?>
- widgetlib->widget(
- 'Statusgrund_widget',
- array(),
- array('name' => 'absage', 'id' => 'absage')
- ); */
- //Prestudenten cannot be abgewiesen or freigegeben if already done
- if(!isset($zgvpruefung->prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz != 'Abgewiesener') :
- ?>
-
-
-
-
-
-
-
-
- | Datum |
- Aktivität |
- User |
-
-
-
-
- | zeitpunkt), 'd.m.Y H:i:s') ?> |
- logdata->name ?> |
- insertvon ?> |
-
-
-
-
+
+ | kontakttyp); ?> |
+
+ kontakttyp === 'email'): ?>
+
+ kontakt;
+ if ($kontakt->kontakttyp === 'email'):
+ ?>
+
+
+ |
+ zustellung === true ? 'X' : ''; ?> |
+ anmerkung; ?> |
+
+
+ adressen as $adresse): ?>
+
+ |
+ Adresse
+ |
+
+ strasse.', '.$adresse->plz.' '.$adresse->ort : '' ?>
+ |
+
+ zustelladresse === true ? 'X' : '' ?>
+ |
+
+ heimatadresse === true ? 'Heimatadresse' : '').($adresse->heimatadresse === true && $adresse->rechnungsadresse === true ? ', ' : '').($adresse->rechnungsadresse === true ? 'Rechnungsadresse' : ''); ?>
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- | Datum |
- Notiz |
- User |
-
-
+
+ Dokumentenprüfung
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
- | insertamum), 'd.m.Y H:i:s') ?> |
- titel ?> |
- verfasser_uid ?> |
-
-
-
-
-
+
+
+ Studiengang studiengang ?>
+
+
+
-
+ prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz != 'Abgewiesener') :
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Notizen & Aktivitäten
+
+
+
+
+
+
+ | Datum |
+ Notiz |
+ User |
+
+
+
+
+
+ | insertamum), 'd.m.Y H:i:s') ?> |
+ titel ?> |
+ verfasser_uid ?> |
+
+
+
+
+
+
+
+
+ | Datum |
+ Aktivität |
+ User |
+
+
+
+
+ | zeitpunkt), 'd.m.Y H:i:s') ?> |
+ logdata->name) ? $log->logdata->name : '' ?> |
+ insertvon ?> |
+
+
+
+
+
+
+
+
+
+
+