diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index f16c4472e..89f3a4857 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -356,55 +356,50 @@ class InfoCenter extends Auth_Controller * inserts Studiensemester and Ausbildungssemester for the new Absage of (chronologically) last status. * @param $prestudent_id */ - public function saveAbsage($prestudent_id) + public function saveAbsage() { + $json = null; + $prestudent_id = $this->input->post('prestudent_id'); $statusgrund = $this->input->post('statusgrund'); $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id); - if (isError($lastStatus)) + $this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig'); + $statusgrresult = $this->StatusgrundModel->load($statusgrund); + + if (hasData($lastStatus) && hasData($statusgrresult)) { - show_error($lastStatus->retval); - } - - //check if still Interessent and not freigegeben yet - if (count($lastStatus->retval) > 0 && $lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam)) - { - $result = $this->PrestudentstatusModel->insert( - array( - 'prestudent_id' => $prestudent_id, - 'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz, - 'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester, - 'datum' => date('Y-m-d'), - 'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz, - 'studienplan_id' => $lastStatus->retval[0]->studienplan_id, - 'status_kurzbz' => 'Abgewiesener', - 'statusgrund_id' => $statusgrund, - 'insertvon' => $this->_uid, - 'insertamum' => date('Y-m-d H:i:s') - ) - ); - - if (isError($result)) + //check if still Interessent and not freigegeben yet + if ($lastStatus->retval[0]->status_kurzbz === 'Interessent' && !isset($lastStatus->retval[0]->bestaetigtam)) { - show_error($result->retval); + $result = $this->PrestudentstatusModel->insert( + array( + 'prestudent_id' => $prestudent_id, + 'studiensemester_kurzbz' => $lastStatus->retval[0]->studiensemester_kurzbz, + 'ausbildungssemester' => $lastStatus->retval[0]->ausbildungssemester, + 'datum' => date('Y-m-d'), + 'orgform_kurzbz' => $lastStatus->retval[0]->orgform_kurzbz, + 'studienplan_id' => $lastStatus->retval[0]->studienplan_id, + 'status_kurzbz' => 'Abgewiesener', + 'statusgrund_id' => $statusgrund, + 'insertvon' => $this->_uid, + 'insertamum' => date('Y-m-d H:i:s') + ) + ); + + $json = $result; + if (isSuccess($result)) + { + $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); + + //statusgrund bezeichnung for logging + $statusgrund_bez = $statusgrresult->retval[0]->bezeichnung_mehrsprachig[1]; + + $this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez)); + } } - - $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); - - //statusgrund bezeichnung for logging - $this->StatusgrundModel->addSelect('bezeichnung_mehrsprachig'); - $result = $this->StatusgrundModel->load($statusgrund); - if (isError($result)) - { - show_error($result->retval); - } - - $statusgrund_bez = $result->retval[0]->bezeichnung_mehrsprachig[1]; - - $this->_log($logdata['person_id'], 'abgewiesen', array($prestudent_id, $logdata['studiengang_kurzbz'], $statusgrund_bez)); } - $this->_redirectToStart($prestudent_id, 'ZgvPruef'); + $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /** @@ -412,16 +407,18 @@ class InfoCenter extends Auth_Controller * updates bestaetigtam and bestaetigtvon fields of the last status * @param $prestudent_id */ - public function saveFreigabe($prestudent_id) + public function saveFreigabe() { + $json = null; + $prestudent_id = $this->input->post('prestudent_id'); + $lastStatus = $this->PrestudentstatusModel->getLastStatus($prestudent_id); - if (isError($lastStatus)) - { - show_error($lastStatus->retval); - } + $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); - if (count($lastStatus->retval) > 0) + $akteresult = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL)); + + if (hasData($lastStatus) && isSuccess($akteresult)) { $lastStatus = $lastStatus->retval[0]; @@ -443,45 +440,36 @@ class InfoCenter extends Auth_Controller ) ); - if (isError($result)) + $json = $result; + + if (isSuccess($result)) { - show_error($result->retval); + $this->load->model('crm/dokumentprestudent_model', 'DokumentprestudentModel'); + + //set documents which have been formal geprüft to accepted + $dokument_kurzbzs = array(); + + foreach ($akteresult->retval as $akte) + { + $dokument_kurzbzs[] = $akte->dokument_kurzbz; + } + + $acceptresult = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs); + + //returns null if no documents to accept + if ($acceptresult !== null && isError($acceptresult)) + { + $json->error = 2; + } + + $this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz'])); + + $this->_sendFreigabeMail($prestudent_id); } - - $this->load->model('crm/dokumentprestudent_model', 'DokumentprestudentModel'); - - $logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id); - - //set documents which have been formal geprüft to accepted - $result = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL)); - - if (isError($result)) - { - show_error($result->retval); - } - - $dokument_kurzbzs = array(); - - foreach ($result->retval as $akte) - { - $dokument_kurzbzs[] = $akte->dokument_kurzbz; - } - - $result = $this->DokumentprestudentModel->setAcceptedDocuments($prestudent_id, $dokument_kurzbzs); - - //returns null if no documents to accept - if ($result !== null && isError($result)) - { - show_error($result->retval); - } - - $this->_sendFreigabeMail($prestudent_id); - - $this->_log($logdata['person_id'], 'freigegeben', array($prestudent_id, $logdata['studiengang_kurzbz'])); } } - $this->_redirectToStart($prestudent_id, 'ZgvPruef'); + $this->output->set_content_type('application/json')->set_output(json_encode($json)); } /** @@ -1185,12 +1173,19 @@ class InfoCenter extends Auth_Controller return 1; } // 2: Status - if ($a->prestudentstatus->status_kurzbz !== $b->prestudentstatus->status_kurzbz) + if (isset($a->prestudentstatus->status_kurzbz) || isset($a->prestudentstatus->status_kurzbz)) { - if ($a->prestudentstatus->status_kurzbz === 'Interessent') + if (!isset($b->prestudentstatus->status_kurzbz)) return -1; - elseif ($b->prestudentstatus->status_kurzbz === 'Interessent') + elseif (!isset ($a->prestudentstatus->status_kurzbz)) return 1; + elseif ($a->prestudentstatus->status_kurzbz !== $b->prestudentstatus->status_kurzbz) + { + if ($a->prestudentstatus->status_kurzbz === 'Interessent') + return -1; + elseif ($b->prestudentstatus->status_kurzbz === 'Interessent') + return 1; + } } // 3: Priorisierung, Nulls last diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 5afa98efe..b7e54185e 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -225,6 +225,7 @@ class Prestudent_model extends DB_Model if (count($studienordnung->retval) > 0) { + $lastStatus->retval[0]->studiengangkurzbzlang = $studienordnung->retval[0]->studiengangkurzbzlang; $lastStatus->retval[0]->studiengangbezeichnung = $studienordnung->retval[0]->studiengangbezeichnung; $lastStatus->retval[0]->studiengangbezeichnung_englisch = $studienordnung->retval[0]->studiengangbezeichnung_englisch; } @@ -290,20 +291,20 @@ class Prestudent_model extends DB_Model } /** - * Returns a list with Bewerber (applicants) + * Returns a list with Bewerbungen (applications) * @param $person_id person who sent application(s) * @param string $studiensemester_kurzbz * @param bool $abgeschickt optional, wether application was filled out and sent * @param bool $bestaetigt optional, wether application was confirmed by infocenter * @return array with Bewerber */ - public function getBewerber($person_id, $studiensemester_kurzbz = null, $abgeschickt = null, $bestaetigt = null) + public function getBewerbungen($person_id, $studiensemester_kurzbz = null, $abgeschickt = null, $bestaetigt = null) { - $bewerber = array(); + $bewerbungen = array(); $prestudents = $this->loadWhere(array('person_id' => $person_id)); if (!hasData($prestudents)) - return $bewerber; + return $bewerbungen; $this->load->model('crm/prestudentstatus_model', 'PrestudentstatusModel'); @@ -333,11 +334,11 @@ class Prestudent_model extends DB_Model if ($bestaetigtcond && $abgeschicktcond) { $prestudent->lastStatus = $lastStatus; - $bewerber[] = $prestudent; + $bewerbungen[] = $prestudent; } } - return $bewerber; + return $bewerbungen; } /** @@ -360,7 +361,7 @@ class Prestudent_model extends DB_Model $person_id = $prestudent->retval[0]->person_id; - $bewerberarr = $this->getBewerber($person_id, $studiensemester); + $bewerberarr = $this->getBewerbungen($person_id, $studiensemester); //Prio can be added when prio is null and there is only one prestudent if (count($bewerberarr) === 1 && !isset($prestudent->retval[0]->priorisierung) && $change < 0) @@ -436,7 +437,7 @@ class Prestudent_model extends DB_Model $difftonext = PHP_INT_MAX; $neighbour = null; - $bewerberarr = $this->getBewerber($person_id, $studiensemester_kurzbz ); + $bewerberarr = $this->getBewerbungen($person_id, $studiensemester_kurzbz ); foreach ($bewerberarr as $bewerber) { diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index b4c30c2c5..9a8a0a35e 100755 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -15,7 +15,8 @@ 'navigationwidget' => true, 'customCSSs' => array( 'public/css/sbadmin2/admintemplate.css', - 'public/css/sbadmin2/tablesort_bootstrap.css' + 'public/css/sbadmin2/tablesort_bootstrap.css', + 'public/css/infocenter/infocenterDetails.css' ), 'customJSs' => array( 'public/js/bootstrapper.js', diff --git a/application/views/system/infocenter/zgvpruefungen.php b/application/views/system/infocenter/zgvpruefungen.php index e3e32483e..8640b70db 100644 --- a/application/views/system/infocenter/zgvpruefungen.php +++ b/application/views/system/infocenter/zgvpruefungen.php @@ -28,7 +28,7 @@ if (isEmptyString($studiensemester)): ?> -

ohne Semester

+

p->t('global', 'ohne').' '.$this->p->t('lehre', 'studiensemester') ?>

@@ -44,8 +44,13 @@ ?> + changeup) && $zgvpruefung->changeup === true; + $changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true; + ?>
prestudentstatus->status_kurzbz) && $zgvpruefung->prestudentstatus->status_kurzbz === 'Interessent'): ?> + > prestudentstatus->bestaetigtam)): ?> @@ -57,16 +62,27 @@ prestudentstatus->bewerbungstermin) ? ' | ' . $this->p->t('infocenter', 'bewerbungsfrist') . ': ' . date_format(date_create($zgvpruefung->prestudentstatus->bewerbungstermin), 'd.m.Y') : ''); ?> changeup) && $zgvpruefung->changeup === true; - $changedown = isset($zgvpruefung->changedown) && $zgvpruefung->changedown === true; - echo ' | ' . ucfirst($this->p->t('infocenter', 'priorisierung')) . ': '; - echo isset($zgvpruefung->priorisierung) ? $zgvpruefung->priorisierung : $this->p->t('global', 'nichtvorhanden'); - if ($changeup): ?> - - - - - + echo ' | ' . ucfirst($this->p->t('infocenter', 'priorisierung')) . ': '; + echo isset($zgvpruefung->priorisierung) ? $zgvpruefung->priorisierung : $this->p->t('global', 'nichtvorhanden'); ?> + + + + + + + + + + +
@@ -268,69 +284,65 @@ //Prestudenten cannot be abgewiesen or freigegeben if already done if (!$infoonly) : ?> -