diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php index 158ad8a22..e1f713e1e 100644 --- a/application/controllers/api/frontend/v1/stv/Status.php +++ b/application/controllers/api/frontend/v1/stv/Status.php @@ -436,7 +436,7 @@ class Status extends FHCAPI_Controller } break; -/* case Prestudentstatus_model::STATUS_BEWERBER: + case Prestudentstatus_model::STATUS_BEWERBER: { $this->load->library('PrestudentLib'); $result = $this->prestudentlib->setBewerber($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); @@ -449,68 +449,38 @@ class Status extends FHCAPI_Controller $this->terminateWithSuccess($prestudent_id); } - break;*/ - // case Prestudentstatus_model::STATUS_BEWERBER: - // { - // $this->load->library('PrestudentLib'); - // $result = $this->prestudentlib->setBewerber($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); + break; + case Prestudentstatus_model::STATUS_AUFGENOMMENER: + { + $this->load->library('PrestudentLib'); + $result = $this->prestudentlib->setAufgenommener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); - // if (isError($result)) - // { - // return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - // } - // else - // $this->terminateWithSuccess($prestudent_id); + if (isError($result)) + { + return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); + } + else + $this->terminateWithSuccess($prestudent_id); - // } - // break; - // case Prestudentstatus_model::STATUS_AUFGENOMMENER: //auch Student... - // { - // $this->load->library('PrestudentLib'); - // $result = $this->prestudentlib->setStudentFromInteressent($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); + } + break; + case Prestudentstatus_model::STATUS_ABGEWIESENER: + { + $this->load->library('PrestudentLib'); + $result = $this->prestudentlib->setAbgewiesener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); - // if (isError($result)) - // { - // return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - // } - // else - // $this->terminateWithSuccess($prestudent_id); + if (isError($result)) + { + return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); + } + else + $this->terminateWithSuccess($prestudent_id); - // } - // break; - // case Prestudentstatus_model::STATUS_AUFGENOMMENER: - // { - // $this->load->library('PrestudentLib'); - // $result = $this->prestudentlib->setAufgenommener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); - - // if (isError($result)) - // { - // return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - // } - // else - // $this->terminateWithSuccess($prestudent_id); - - // } - // break; - // case Prestudentstatus_model::STATUS_ABGEWIESENER: - // { - // $this->load->library('PrestudentLib'); - // $result = $this->prestudentlib->setAufgenommener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester); - - // if (isError($result)) - // { - // return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL); - // } - // else - // $this->terminateWithSuccess($prestudent_id); - - // } - // break; + } + break; default: { -/* if ($isStudent) { - return $this->terminateWithError("LehrverbandData needs no handling", self::ERROR_TYPE_GENERAL); - }*/ + $this->terminateWithError("Action not yet defined in Prestudentlib", self::ERROR_TYPE_GENERAL); $result = $this->PrestudentstatusModel->insert( [ 'prestudent_id' => $prestudent_id, diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php index 38ae487d3..09da501d3 100644 --- a/application/libraries/PrestudentLib.php +++ b/application/libraries/PrestudentLib.php @@ -523,27 +523,10 @@ class PrestudentLib public function setFirstStudent($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester, $statusgrund_id, $bestaetigtAm, $bestaetigtVon, $stg_kz, $uidStudent) { - $insertvon = getAuthUID(); - $result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); if (isError($result)) return $result; - $resultStatus = getData($result); - - //check if ausbildungssemester is last - $this->_ci->StudiengangModel->addJoin('public.tbl_prestudent p', 'studiengang_kz'); - $resultStg = $this->_ci->StudiengangModel->loadWhere(['p.prestudent_id' => $prestudent_id]); - if(isError($resultStg)) - return $resultStg; -/* if(!hasData($resultStg)) - return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_for_prestudent', [ - 'prestudent_id' => $prestudent_id - ]));*/ - - - $studiengang = current(getData($resultStg)) ?: null; - - $prestudent_status = ($resultStatus[0]); + $prestudent_status = current(getData($result)); if(!$prestudent_status) { return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [ @@ -552,15 +535,13 @@ class PrestudentLib ])); } -/* $result = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $prestudent_id]); + //check studiensemester_kurzbz is last + $studiensemester_kurzbz = $prestudent_status->studiensemester_kurzbz != $studiensemester_kurzbz ? + $prestudent_status->studiensemester_kurzbz : $studiensemester_kurzbz; - if (isError($result)) - return $result; - $result = getData($result); - if (!$result) - return error($this->_ci->p->t('studierendenantrag', 'error_no_student_for_prestudent', ['prestudent_id' => $prestudent_id])); - - $student = current($result);*/ + //check if ausbildungssemester is last + $ausbildungssemester = $prestudent_status->ausbildungssemester != $ausbildungssemester ? + $prestudent_status->ausbildungssemester : $ausbildungssemester; //Status updaten $result = $this->_ci->PrestudentstatusModel->insert([ @@ -570,7 +551,7 @@ class PrestudentLib 'ausbildungssemester' => $ausbildungssemester, 'statusgrund_id' => $statusgrund_id, 'datum' => date('c'), - 'insertvon' => $insertvon, + 'insertvon' => getAuthUID(), 'insertamum' => date('c'), 'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz, 'studienplan_id'=> $prestudent_status->studienplan_id, @@ -581,24 +562,6 @@ class PrestudentLib if (isError($result)) return $result; -/* $result = $this->_ci->StudentModel->checkIfUid($prestudent_id); - if (isError($result)) { - return $result; - } - $student_uid = $result->retval;*/ - - //load student -/* $result = $this->_ci->StudentModel->loadWhere( - array( - 'student_uid' => $uidStudent - ) - ); - if (isError($result)) - { - return $result; - } - - $studentData = current(getData($result) ? : []);*/ $verband = ''; $gruppe = ''; $studiengang_kz = $stg_kz; @@ -785,4 +748,104 @@ class PrestudentLib return success(); } + public function setBewerber($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester) + { + $resultLastStatus = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); + if (isError($resultLastStatus)) + return $resultLastStatus; + $resultLastStatus = getData($resultLastStatus); + + $prestudent_status = current($resultLastStatus); + + //check studiensemester_kurzbz: + $studiensemester_kurzbz = $prestudent_status->studiensemester_kurzbz != $studiensemester_kurzbz ? + $prestudent_status->studiensemester_kurzbz : $studiensemester_kurzbz; + + //Status updaten + $result = $this->_ci->PrestudentstatusModel->insert([ + 'prestudent_id' => $prestudent_id, + 'status_kurzbz' => Prestudentstatus_model::STATUS_BEWERBER, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'ausbildungssemester' => $ausbildungssemester, + 'datum' => date('c'), + 'insertvon' => getAuthUID(), + 'insertamum' => date('c'), + 'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz, + 'studienplan_id'=> $prestudent_status->studienplan_id, + 'bestaetigtvon' => getAuthUID(), + 'bestaetigtam' => date('c') + ]); + + if (isError($result)) + { + return $result; + } + else + return success(); + } + + public function setAufgenommener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester){ + + $resultLastStatus = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); + if (isError($resultLastStatus)) + return $resultLastStatus; + $resultLastStatus = getData($resultLastStatus); + + $prestudent_status = current($resultLastStatus); + + + //Status updaten + $result = $this->_ci->PrestudentstatusModel->insert([ + 'prestudent_id' => $prestudent_id, + 'status_kurzbz' => Prestudentstatus_model::STATUS_AUFGENOMMENER, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'ausbildungssemester' => $ausbildungssemester, + 'datum' => date('c'), + 'insertvon' => getAuthUID(), + 'insertamum' => date('c'), + 'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz, + 'studienplan_id'=> $prestudent_status->studienplan_id, + 'bestaetigtvon' => getAuthUID(), + 'bestaetigtam' => date('c') + ]); + + if (isError($result)) + { + return $result; + } + else + return success(); + } + + public function setAbgewiesener($prestudent_id, $studiensemester_kurzbz, $ausbildungssemester){ + + $resultLastStatus = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); + if (isError($resultLastStatus)) + return $resultLastStatus; + $resultLastStatus = getData($resultLastStatus); + + $prestudent_status = current($resultLastStatus); + + //Status updaten + $result = $this->_ci->PrestudentstatusModel->insert([ + 'prestudent_id' => $prestudent_id, + 'status_kurzbz' => Prestudentstatus_model::STATUS_ABGEWIESENER, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'ausbildungssemester' => $ausbildungssemester, + 'datum' => date('c'), + 'insertvon' => getAuthUID(), + 'insertamum' => date('c'), + 'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz, + 'studienplan_id'=> $prestudent_status->studienplan_id, + 'bestaetigtvon' => getAuthUID(), + 'bestaetigtam' => date('c') + ]); + + if (isError($result)) + { + return $result; + } + else + return success(); + } }