mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Merge branch 'feature-6079/Infocenter_Freigabe_nach_RT_Anmeldung'
This commit is contained in:
@@ -69,6 +69,7 @@ class InfoCenter extends Auth_Controller
|
||||
// Name of Interessentenstatus
|
||||
const INTERESSENTSTATUS = 'Interessent';
|
||||
const ABGEWIESENERSTATUS = 'Abgewiesener';
|
||||
const BEWERBERSTATUS = 'Bewerber';
|
||||
|
||||
// Statusgruende for which no Studiengangsfreigabemessage should be sent
|
||||
private $_statusgruendeNoStgFreigabeMessage = array('FIT Programm', 'FIT program', 'FIT programme');
|
||||
@@ -493,7 +494,9 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
$logdata = $this->_getPersonAndStudiengangFromPrestudent($prestudent_id);
|
||||
|
||||
$akteresult = $this->AkteModel->loadWhere(array('person_id' => $logdata['person_id'], 'formal_geprueft_amum !=' => NULL));
|
||||
$person_id = $logdata['person_id'];
|
||||
|
||||
$akteresult = $this->AkteModel->loadWhere(array('person_id' => $person_id, 'formal_geprueft_amum !=' => NULL));
|
||||
|
||||
if (hasData($lastStatus) && isSuccess($akteresult))
|
||||
{
|
||||
@@ -529,6 +532,8 @@ class InfoCenter extends Auth_Controller
|
||||
if (isSuccess($result))
|
||||
{
|
||||
$this->load->model('crm/Dokumentprestudent_model', 'DokumentprestudentModel');
|
||||
$json->retval['nonCriticalErrors'] = array();
|
||||
$json->retval['infoMessages'] = array();
|
||||
|
||||
//set documents which have been formal geprüft to accepted
|
||||
$dokument_kurzbzs = array();
|
||||
@@ -542,7 +547,7 @@ class InfoCenter extends Auth_Controller
|
||||
|
||||
// acceptresult returns null if no documents to accept
|
||||
if ($acceptresult !== null && isError($acceptresult))
|
||||
$json->retval['nonCriticalErrors'] = 'error when accepting documents in FAS';
|
||||
$json->retval['nonCriticalErrors'][] = 'error when accepting documents in FAS';
|
||||
|
||||
$logparams = array($prestudent_id, $logdata['studiengang_kurzbz'], '');
|
||||
|
||||
@@ -554,8 +559,69 @@ class InfoCenter extends Auth_Controller
|
||||
if (hasData($statusgrund_kurzbz))
|
||||
$logparams[2] = ', confirmation type '.$statusgrund_kurzbz->retval[0]->bezeichnung_mehrsprachig[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
// check if there is already a Bewerberstatus and Reihungsverfahren already absolviert
|
||||
$bewerber = $this->PersonModel->hasBewerber($person_id, $lastStatus->studiensemester_kurzbz, 'b');
|
||||
|
||||
$this->_log($logdata['person_id'], 'freigegeben', $logparams);
|
||||
if (hasData($bewerber))
|
||||
{
|
||||
$bewerbercnt = getData($bewerber);
|
||||
|
||||
if (is_numeric($bewerbercnt[0]->anzahl_bewerber) && $bewerbercnt[0]->anzahl_bewerber > 0)
|
||||
{
|
||||
// then insert Bewerberstatus and rt absolviert, teilgenommen for prestudent
|
||||
$bewerberresult = $this->PrestudentstatusModel->insert(
|
||||
array(
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'status_kurzbz' => self::BEWERBERSTATUS,
|
||||
'studiensemester_kurzbz' => $lastStatus->studiensemester_kurzbz,
|
||||
'ausbildungssemester' => $lastStatus->ausbildungssemester,
|
||||
'datum' => date('Y-m-d'),
|
||||
'orgform_kurzbz' => $lastStatus->orgform_kurzbz,
|
||||
'studienplan_id' => $lastStatus->studienplan_id,
|
||||
'insertvon' => $this->_uid,
|
||||
'insertamum' => date('Y-m-d H:i:s')
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($bewerberresult))
|
||||
$json->retval['nonCriticalErrors'][] = 'error when inserting Bewerberstatus';
|
||||
|
||||
$rtangetretenres = $this->PrestudentModel->update(
|
||||
$prestudent_id,
|
||||
array(
|
||||
'reihungstestangetreten' => true
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($rtangetretenres))
|
||||
{
|
||||
$json->retval['nonCriticalErrors'][] = 'error when setting reihungstestangetreten';
|
||||
}
|
||||
else
|
||||
{
|
||||
$json->retval['infoMessages'][] = $this->p->t('infocenter', 'rtPunkteEintragenInfo');
|
||||
$this->load->model('crm/RtPerson_model', 'RtPersonModel');
|
||||
|
||||
$rtteilgenommenres = $this->RtPersonModel->update(
|
||||
array(
|
||||
'person_id' => $person_id,
|
||||
'studienplan_id' => $lastStatus->studienplan_id
|
||||
),
|
||||
array(
|
||||
'teilgenommen' => true
|
||||
)
|
||||
);
|
||||
|
||||
if (isError($rtteilgenommenres))
|
||||
$json->retval['nonCriticalErrors'][] = 'error when setting reihungstest teilgenommen';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->_log($person_id, 'freigegeben', $logparams);
|
||||
|
||||
$this->_sendFreigabeMail($prestudent_id);
|
||||
}
|
||||
@@ -1496,7 +1562,7 @@ class InfoCenter extends Auth_Controller
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends infomail with prestudent and person data when Prestudent is freigegeben
|
||||
* Sends infomail to Studiengang with prestudent and person data when Prestudent is freigegeben
|
||||
* @param $prestudent_id
|
||||
*/
|
||||
private function _sendFreigabeMail($prestudent_id)
|
||||
|
||||
@@ -213,4 +213,39 @@ class Person_model extends DB_Model
|
||||
|
||||
return $this->loadWhere(array('uid' => $uid, 'content' => true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if a person has a Bewerberstatus and reihungstestangetreten = true
|
||||
* @param $person_id
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return array
|
||||
*/
|
||||
public function hasBewerber($person_id, $studiensemester_kurzbz, $studiengangtyp = null)
|
||||
{
|
||||
$parametersArray = array($person_id, $studiensemester_kurzbz);
|
||||
|
||||
$qry = "SELECT count(*) AS anzahl_bewerber FROM public.tbl_person
|
||||
JOIN public.tbl_prestudent USING (person_id)
|
||||
JOIN public.tbl_prestudentstatus ON tbl_prestudentstatus.prestudent_id = tbl_prestudent.prestudent_id";
|
||||
|
||||
if (isset($studiengangtyp))
|
||||
{
|
||||
$qry .= " JOIN lehre.tbl_studienplan USING(studienplan_id)
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
JOIN public.tbl_studiengang ON tbl_studienordnung.studiengang_kz = tbl_studiengang.studiengang_kz";
|
||||
}
|
||||
|
||||
$qry .= " WHERE person_id = ?
|
||||
AND studiensemester_kurzbz = ?
|
||||
AND tbl_prestudentstatus.status_kurzbz = 'Bewerber'
|
||||
AND reihungstestangetreten";
|
||||
|
||||
if (isset($studiengangtyp))
|
||||
{
|
||||
$parametersArray[] = $studiengangtyp;
|
||||
$qry .= " AND tbl_studiengang.typ = ?";
|
||||
}
|
||||
|
||||
return $this->execQuery($qry, $parametersArray);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,10 +284,13 @@ var InfocenterDetails = {
|
||||
{
|
||||
var freigabeResponseData = FHC_AjaxClient.getData(data);
|
||||
|
||||
if (freigabeResponseData.nonCriticalErrors && freigabeResponseData.nonCriticalErrors.length > 0
|
||||
&& typeof freigabeResponseData.nonCriticalErrors == "string")
|
||||
if (freigabeResponseData.nonCriticalErrors && freigabeResponseData.nonCriticalErrors.length > 0)
|
||||
{
|
||||
FHC_DialogLib.alertWarning(freigabeResponseData.nonCriticalErrors);
|
||||
FHC_DialogLib.alertWarning(freigabeResponseData.nonCriticalErrors.join(", "));
|
||||
}
|
||||
else if (freigabeResponseData.infoMessages && freigabeResponseData.infoMessages.length > 0)
|
||||
{
|
||||
FHC_DialogLib.alertInfo(freigabeResponseData.infoMessages.join(", "));
|
||||
}
|
||||
FHC_AjaxClient.showVeil();
|
||||
InfocenterDetails.initFrgMessageSend(freigabeData);
|
||||
|
||||
@@ -3610,6 +3610,30 @@ When on hold, the date is only a reminder.',
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'infocenter',
|
||||
'category' => 'infocenter',
|
||||
'phrase' => 'rtPunkteEintragenInfo',
|
||||
'insertvon' => 'system',
|
||||
'phrases' => array(
|
||||
array(
|
||||
'sprache' => 'German',
|
||||
'text' => 'Es existierte bereits ein Bewerberstatus und eine Reihungstestteilnahme.
|
||||
Deshalb wurde bei der Freigabe der Bewerberstatus automatisch hinzugefügt und der Bewerber als Reihungstestabsolvent markiert.
|
||||
Die Reihungstestpunkte müssen aber noch manuell eingetragen werden!',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
),
|
||||
array(
|
||||
'sprache' => 'English',
|
||||
'text' => 'An applicant status and a placement test participation already existed for this person.
|
||||
Thus, the applicant status was added automatically and the applicant was marked as placement test participant.
|
||||
However, the placement test result is yet to be entered manually!',
|
||||
'description' => '',
|
||||
'insertvon' => 'system'
|
||||
)
|
||||
)
|
||||
),
|
||||
array(
|
||||
'app' => 'core',
|
||||
'category' => 'password',
|
||||
|
||||
Reference in New Issue
Block a user