mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-23 23:19:28 +00:00
If Prestudent is freigegeben for RT and has already a Bewerber with reihungstestangetreten = true, a new Bewerber for the prestudent is created, reihungstestangetreten and teilgenommen are set to true
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))
|
||||
{
|
||||
@@ -554,8 +557,68 @@ 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);
|
||||
|
||||
$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
|
||||
{
|
||||
$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);
|
||||
}
|
||||
|
||||
@@ -213,4 +213,23 @@ 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)
|
||||
{
|
||||
$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
|
||||
WHERE person_id = ?
|
||||
AND studiensemester_kurzbz = ?
|
||||
AND status_kurzbz = 'Bewerber'
|
||||
AND reihungstestangetreten";
|
||||
|
||||
return $this->execQuery($qry, array($person_id, $studiensemester_kurzbz));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user