Compare commits

...

6 Commits

Author SHA1 Message Date
ma0068 f6224ff9ca Merge branch 'master' into feature-20813/BTSponsionsdatumFuerInterneZGVUebernehmen 2022-11-03 08:31:10 +01:00
ma0068 452cb2be66 Adaptierungen SQL 2022-10-07 11:35:02 +02:00
ma0068 aff272397c Adaptierungen SponsionJob 2022-10-07 08:34:11 +02:00
ma0068 2706a76b46 SponsionsJob: Umbau auf eine Abfrage 2022-09-28 09:30:23 +02:00
ma0068 11281c1e5f Cronjob: SponsionJob: Sponsionsdatum als ZGV-Datum übernehmen 2022-09-23 15:32:56 +02:00
ma0068 8e6b9b7e5f prepare new Cronjob SponsionJob 2022-09-09 10:12:09 +02:00
3 changed files with 134 additions and 11 deletions
@@ -0,0 +1,90 @@
<?php
/**
* FH-Complete
*
*
* Cronjobs to be run for inserting the date of Sponsion as Date ZGV
*/
// ------------------------------------------------------------------------
if (!defined('BASEPATH')) exit('No direct script access allowed');
class SponsionJob extends JOB_Controller
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct();
// Load models
$this->load->model('crm/Prestudent_model', 'PrestudentModel');
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
}
public function insertDate()
{
$countBewerbungen = 0;
$semester = $this->StudiensemesterModel->getAkt();
if (isSuccess($semester) && hasData($semester))
{
$semester = $semester->retval[0];
$semester = $semester->studiensemester_kurzbz;
}
else
{
$semester = '';
}
$nextSemester = $this->StudiensemesterModel->getNext();
if (isSuccess($nextSemester) && hasData($nextSemester))
{
$nextSemester = $nextSemester->retval[0];
$nextSemester = $nextSemester->studiensemester_kurzbz;
}
else
{
$nextSemester = '';
}
$this->logInfo('Start Sponsion Job');
$this->logInfo('Check Applications of Semester ' . $semester . ' and '. $nextSemester);
$allInteressenten = $this->PrestudentModel->getAllInteressentenWithMasterSponsion($semester, $nextSemester);
if (isSuccess($allInteressenten) && hasData($allInteressenten))
{
$allInteressenten = $allInteressenten->retval;
foreach($allInteressenten as $interessent)
{
// $this->AbschlusspruefungModel->insertDatumSponsionAsZgvmadatum($interessent->prestudent_id, $interessent->sponsion);
$updateArray = array(
'zgvmadatum' => $interessent->sponsion,
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => 'sponsionJob'
);
$prestresult = $this->PrestudentModel->update(
$interessent->prestudent_id,
$updateArray
);
if (isSuccess($prestresult))
{
$this->logInfo('ZGV Master Date for prestudent ID ' . $interessent->prestudent_id . ' was updated to ' . $interessent->sponsion);
}
else
{
$this->logError('Update for prestudent ID ' . $interessent->prestudent_id . ' to ' . $interessent->sponsion . ' failed');
}
$countBewerbungen++;
}
}
$this->logInfo('Count Total of inserted ZGV Master Dates: '. $countBewerbungen);
$this->logInfo('End Sponsion Job');
return true;
}
}
@@ -667,4 +667,37 @@ class Prestudent_model extends DB_Model
return $this->execQuery($query, array($prestudent_id));
}
/**
* get all Interessenten without ZGVmasdatum and with Sponsionsdate
* @param $semesterkurzbz1 und $semesterkurzbz2
* @return array all prestudents with sponsionsdate
*/
public function getAllInteressentenWithMasterSponsion($semesterkurzbz1, $semesterkurzbz2 = null)
{
return $this->execQuery(
'SELECT ps.prestudent_id, person_id, ap.sponsion
FROM
public.tbl_prestudent ps
JOIN public.tbl_prestudentstatus USING(prestudent_id)
JOIN public.tbl_person p USING (person_id)
JOIN public.tbl_prestudent ps2 USING (person_id)
JOIN public.tbl_student st ON (st.prestudent_id = ps2.prestudent_id)
JOIN lehre.tbl_abschlusspruefung ap USING (student_uid)
JOIN public.tbl_studiengang sg ON (sg.studiengang_kz = ps2.studiengang_kz)
WHERE
get_rolle_prestudent(ps.prestudent_id, null) = \'Interessent\'
AND ps.zgvmadatum is NULL
AND ps.prestudent_id <> ps2.prestudent_id
AND get_rolle_prestudent(ps2.prestudent_id, null) = \'Absolvent\'
AND ap.sponsion < NOW()
AND ap.abschlussbeurteilung_kurzbz in (\'bestanden\', \'gut\', \'ausgezeichnet\')
AND sg.typ != \'l\'
AND tbl_prestudentstatus.studiensemester_kurzbz in (?,?)',
array(
$semesterkurzbz1,
$semesterkurzbz2
)
);
}
}
@@ -28,10 +28,10 @@ class Abschlusspruefung_model extends DB_Model
$this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.pruefungstyp_kurzbz AS studiengangstyp, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende,
tbl_abschlusspruefung.freigabedatum, tbl_abschlusspruefung_antritt.bezeichnung AS pruefungsantritt_bezeichnung, tbl_abschlusspruefung_antritt.bezeichnung_english AS pruefungsantritt_bezeichnung_english, tbl_abschlusspruefung.protokoll,
studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr,
studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr,
vorsitzenderben.uid AS uid_vorsitz, vorsitzenderpers.vorname AS vorname_vorsitz, vorsitzenderpers.nachname AS nachname_vorsitz, vorsitzenderpers.titelpre AS titelpre_vorsitz, vorsitzenderpers.titelpost AS titelpost_vorsitz,
erstprueferpers.vorname AS vorname_erstpruefer, erstprueferpers.nachname AS nachname_erstpruefer, erstprueferpers.titelpre AS titelpre_erstpruefer, erstprueferpers.titelpost AS titelpost_erstpruefer,
zweitprueferpers.vorname AS vorname_zweitpruefer, zweitprueferpers.nachname AS nachname_zweitpruefer, zweitprueferpers.titelpre AS titelpre_zweitpruefer, zweitprueferpers.titelpost AS titelpost_zweitpruefer
erstprueferpers.vorname AS vorname_erstpruefer, erstprueferpers.nachname AS nachname_erstpruefer, erstprueferpers.titelpre AS titelpre_erstpruefer, erstprueferpers.titelpost AS titelpost_erstpruefer,
zweitprueferpers.vorname AS vorname_zweitpruefer, zweitprueferpers.nachname AS nachname_zweitpruefer, zweitprueferpers.titelpre AS titelpre_zweitpruefer, zweitprueferpers.titelpost AS titelpost_zweitpruefer
');
$this->addJoin('lehre.tbl_abschlusspruefung_antritt', 'pruefungsantritt_kurzbz', 'LEFT');
$this->addJoin('public.tbl_benutzer studentben', 'tbl_abschlusspruefung.student_uid = studentben.uid');
@@ -41,9 +41,9 @@ class Abschlusspruefung_model extends DB_Model
$this->addJoin('public.tbl_person vorsitzenderpers', 'vorsitzenderben.person_id = vorsitzenderpers.person_id', 'LEFT');
$this->addJoin('public.tbl_person erstprueferpers', 'pruefer1 = erstprueferpers.person_id', 'LEFT');
$this->addJoin('public.tbl_person zweitprueferpers', 'pruefer2 = zweitprueferpers.person_id', 'LEFT');
$abschlusspruefung = $this->load($abschlusspruefung_id);
if (isError($abschlusspruefung))
return $abschlusspruefung;
elseif (hasData($abschlusspruefung))
@@ -54,14 +54,14 @@ class Abschlusspruefung_model extends DB_Model
$student_uid = $abschlusspruefungdata->uid_student;
$this->StudentModel->addSelect('prestudent_id');
$prestudent_id = $this->StudentModel->load(array('student_uid' => $student_uid));
if (isError($prestudent_id))
return $prestudent_id;
elseif (hasData($prestudent_id))
{
//get Studiengangname from Studienplan and -ordnung
$studienordnung = $this->PrestudentstatusModel->getStudienordnungFromPrestudent(getData($prestudent_id)[0]->prestudent_id);
if (isError($studienordnung))
return $studienordnung;
elseif (hasData($studienordnung))
@@ -76,14 +76,14 @@ class Abschlusspruefung_model extends DB_Model
elseif (!hasData($studienordnung))
{
$this->resetQuery();
$this->load->model('crm/Student_model', 'StudentModel');
$this->addSelect('studiengang_kz, bezeichnung, english');
$this->addJoin('public.tbl_studiengang', 'studiengang_kz');
$result = $this->StudentModel->load(array(
'student_uid' => $student_uid)
);
if ($result = getData($result)[0])
{
$abschlusspruefungdata->studiengang_kz = $result->studiengang_kz;
@@ -91,7 +91,7 @@ class Abschlusspruefung_model extends DB_Model
$abschlusspruefungdata->studiengangbezeichnung_englisch = $result->english;
}
}
// get Abschlussarbeit
if (isset($abschlusspruefungdata->studiengang_kz) && !empty($abschlusspruefungdata->studiengang_kz))
{
@@ -110,7 +110,7 @@ class Abschlusspruefung_model extends DB_Model
}
}
}
return success($abschlusspruefungdata);
}
}