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

-
- Stammdaten - - - - - - - +
+
+
+ +
+
+
+
+
+
+

Stammdaten

+
+ +
+
Vorname: vorname ?>
Nachname: nachname ?>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Vornamevorname ?>
Nachname + nachname ?>
Geburtsdatum + gebdatum), 'd.m.Y') ?>
Sozialversicherungsnr + svnr ?>
Staatsbürgerschaft + staatsbuergerschaft ?>
Geschlecht + geschlecht ?>
Geburtsnation + geburtsnation ?>
Geburtsortgebort ?>
+ - - Geburtsdatum: gebdatum), 'd.m.Y') ?> - - - Sozialversicherungsnr: svnr ?> - - - Staatsbürgerschaft: kurztext ?> - - - Geschlecht: geschlecht ?> - - - Geburtsnation: kurztext ?> - - - Geburtsort: gebort ?> - - - Kontaktdaten - - - - kontakttyp).': '; - if ($kontakt->kontakttyp == 'email'): - ?> - - kontakt; - if ($kontakt->kontakttyp == 'email'): - ?> - - - - - - - - Adresse: strasse.", ".$adresse->plz." ".$adresse->ort : "" ?> - - - -
-
- Dokumentenprüfung - - - - - - - - - formal_geprueft_amum)) ? "checked" : ""; - ?> - - - - - - - - -
NameTypUploaddatumformal geprüft
titel ?> - dokument_kurzbz ?>erstelltam), 'd.m.Y') ?> - - onclick="onFormalGeprueftChange(this.checked, akte_id ?>, person_id ?>)"/> - formal_geprueft_amum; - ?> -
-
- -
-
- ZGV Prüfung - Studiengang studiengang ?> - - - - - - - - - - - - - - studiengangtyp === 'm') :?> - - - - - - - - - - - - - - - - -
- - prestudentstatus->status_kurzbz?> - - - prestudentstatus->bestaetigtam) ? "ja" : "nein" ?> - - - widgetlib->widget( - 'Studiensemester_widget', - array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->prestudentstatus->studiensemester_kurzbz), - array('name' => 'studiensemester', 'id' => 'studiensemester') - ); ?> - - - prestudentstatus->ausbildungssemester ?> -
- - widgetlib->widget( - 'Zgv_widget', - array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code), - array('name' => 'zgv', 'id' => 'zgv') - ); ?> - - - - - - zgvdatum), 'd.m.Y') ?>" - name="zgvdatum"> - - - widgetlib->widget( - 'Nation_widget', - array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code), - array('name' => 'zgvnation', 'id' => 'zgvnation') - ); ?> -
- - widgetlib->widget( - 'Zgvmaster_widget', - array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code), - array('name' => 'zgvmas', 'id' => 'zgvmas') - ); ?> - - - - - - zgvmadatum), 'd.m.Y') ?>" - name="zgvmadatum"> - - - widgetlib->widget( - 'Nation_widget', - array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code), - array('name' => 'zgvmanation', 'id' => 'zgvmanation') - ); ?> -
- -
-
-
+ +
+ + + + + + + + + + + + + + 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') : - ?> - - - - - - - - - - -
Kontakte
TypKontaktZustellungAnmerkung
- - - - - - - - - - - - - - -
DatumAktivitätUser
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' : ''); ?> + + + + + +
+ + + + + +
+
+
+
- - - - - - - + +

Dokumentenprüfung

+
+
+
DatumNotizUser
+ + + + + + + + + + formal_geprueft_amum) ? "checked" : ""; + ?> + + + + + + + + + + +
NameTypUploaddatumformal geprüftnachzureichennachgereicht am
+ titel) ? $dokument->bezeichnung : $dokument->titel ?> + dokument_kurzbz ?>erstelltam), 'd.m.Y') ?> + /> + formal_geprueft_amum) ? date_format(date_create($dokument->formal_geprueft_amum), 'd.m.Y') : ''; ?> + + nachgereicht === true ? 'X' : ''; ?> + + nachgereicht_am) ? date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; ?> +
+
+
+
+ + +
+
+
+
+
+
+ +

ZGV-Prüfung

+
+
+
+ - - - insertamum), 'd.m.Y H:i:s') ?> - titel ?> - verfasser_uid ?> - - - - -
- -
- Titel: -
- Text: - -
+
+
+ Studiengang studiengang ?> +
+
+
+
+
+
+ + prestudentstatus->bestaetigtam) ? "ja" : "nein" ?> +
+
+
+
+ + prestudentstatus->status_kurzbz ?> +
+
+
+
+ + prestudentstatus->studiensemester_kurzbz ?> +
+
+
+
+ + prestudentstatus->ausbildungssemester ?> +
+
+
+
+
+
+ + widgetlib->widget( + 'Zgv_widget', + array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgv_code), + array('name' => 'zgv', 'id' => 'zgv', 'class' => 'form-control') + ); ?> +
+
+
+
+ + +
+
+
+
+ + zgvdatum), 'd.m.Y') ?>" + name="zgvdatum"> +
+
+
+
+ + widgetlib->widget( + 'Nation_widget', + array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvnation_code), + array('name' => 'zgvnation', 'id' => 'zgvnation') + ); ?> +
+
+
+ + studiengangtyp === 'm') : ?> +
+
+
+ widgetlib->widget( + 'Zgvmaster_widget', + array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmas_code), + array('name' => 'zgvmas', 'id' => 'zgvmas') + ); ?> +
+
+
+
+ +
+
+
+
+ zgvmadatum), 'd.m.Y') ?>" + name="zgvmadatum"> +
+
+
+
+ widgetlib->widget( + 'Nation_widget', + array(DropdownWidget::SELECTED_ELEMENT => $zgvpruefung->zgvmanation_code), + array('name' => 'zgvmanation', 'id' => 'zgvmanation') + ); ?> +
+
+
+ + +
+
+ +
+
+
- + prestudentstatus->bestaetigtam) && $zgvpruefung->prestudentstatus->status_kurzbz != 'Abgewiesener') : + ?> +
+
+
+
+
+ + +
+ + + + +
+
+
+ + +
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+

Notizen & Aktivitäten

+
+
+
+
+
+
+ +
+
+ +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + +
DatumNotizUser
insertamum), 'd.m.Y H:i:s') ?>titel ?>verfasser_uid ?>
+
+
+ + + + + + + + + + + + + + + +
DatumAktivitätUser
zeitpunkt), 'd.m.Y H:i:s') ?>logdata->name) ? $log->logdata->name : '' ?>insertvon ?>
+
+
+
+
+
+ + +load->view('templates/FHC-Footer'); ?> diff --git a/application/views/templates/FHC-Header.php b/application/views/templates/FHC-Header.php index f55048fdc..c2d88a6bb 100644 --- a/application/views/templates/FHC-Header.php +++ b/application/views/templates/FHC-Header.php @@ -11,8 +11,8 @@ $customJSs = isset($customJSs) ? $customJSs : null; $jquery3 = isset($jquery3) ? $jquery3 : false; $jqueryui = isset($jqueryui) ? $jqueryui : false; $bootstrap = isset($bootstrap) ? $bootstrap : false; -$fontawesome= isset($fontawesome) ? $fontawesome : false; -$datatables= isset($datatables) ? $datatables : false; +$fontawesome = isset($fontawesome) ? $fontawesome : false; +$datatables = isset($datatables) ? $datatables : false; $tablesorter = isset($tablesorter) ? $tablesorter : false; /** @@ -97,7 +97,6 @@ function _generateJSsInclude($JSs) // datatables CSS if ($datatables === true) { - _generateCSSsInclude('vendor/datatables/datatables/media/css/jquery.dataTables.min.css'); _generateCSSsInclude('vendor/datatables/datatables/media/css/dataTables.bootstrap.min.css'); } // Table sorter CSS @@ -122,7 +121,6 @@ function _generateJSsInclude($JSs) _generateJSsInclude('vendor/datatables/datatables/media/js/dataTables.bootstrap.min.js'); _generateJSsInclude('vendor/moment/moment/min/moment.min.js'); _generateJSsInclude('vendor/datatables/plugins/sorting/datetime-moment.js'); - } // Table sorter JS if ($tablesorter === true) _generateJSsInclude('vendor/christianbach/tablesorter/jquery.tablesorter.min.js'); diff --git a/application/widgets/Nation_widget.php b/application/widgets/Nation_widget.php index 2c20b8691..8337a92c1 100644 --- a/application/widgets/Nation_widget.php +++ b/application/widgets/Nation_widget.php @@ -13,8 +13,8 @@ class Nation_widget extends DropdownWidget $this->setElementsArray( $this->NationModel->load(), true, - 'Select a nation...', - 'No nation found' + 'Nation wählen...', + 'keine Nation gefunden' ); $this->loadDropDownView($widgetData); diff --git a/application/widgets/Zgv_widget.php b/application/widgets/Zgv_widget.php index 8858d3206..a2500a1e9 100644 --- a/application/widgets/Zgv_widget.php +++ b/application/widgets/Zgv_widget.php @@ -13,8 +13,8 @@ class Zgv_widget extends DropdownWidget $this->setElementsArray( $this->ZgvModel->load(), true, - 'Select a zgv...', - 'No zgv found' + 'Zgv wählen...', + 'keine Zgv gefunden' ); $this->loadDropDownView($widgetData); diff --git a/application/widgets/Zgvmaster_widget.php b/application/widgets/Zgvmaster_widget.php index 8ac331109..357a4273c 100644 --- a/application/widgets/Zgvmaster_widget.php +++ b/application/widgets/Zgvmaster_widget.php @@ -13,8 +13,8 @@ class Zgvmaster_widget extends DropdownWidget $this->setElementsArray( $this->ZgvmasterModel->load(), true, - 'Select a zgv...', - 'No zgv found' + 'Zgv wählen...', + 'keine Zgv gefunden' ); $this->loadDropDownView($widgetData);