From 8e6b9b7e5f7c2d9982d005268c95b25c0c9d0e06 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 9 Sep 2022 10:12:09 +0200 Subject: [PATCH] prepare new Cronjob SponsionJob --- application/controllers/jobs/SponsionJob.php | 48 +++++++++++++++++++ .../education/Abschlusspruefung_model.php | 37 +++++++++----- 2 files changed, 74 insertions(+), 11 deletions(-) create mode 100644 application/controllers/jobs/SponsionJob.php diff --git a/application/controllers/jobs/SponsionJob.php b/application/controllers/jobs/SponsionJob.php new file mode 100644 index 000000000..93ac17cfb --- /dev/null +++ b/application/controllers/jobs/SponsionJob.php @@ -0,0 +1,48 @@ +load->model('education/Abschlusspruefung_model', 'AbschlusspruefungModel'); + + // Load libraries + $this->load->library('PermissionLib'); + + // Load helpers + $this->load->helper('hlp_sancho_helper'); + } + + public function insertDate() + { + + } + + //****************************************************************************************************************** +// PRIVATE FUNCTIONS +//****************************************************************************************************************** + +private function getAbsolventsWithSponsion() +{ + $mResult = $this->AbschlusspruefungModel->getAbsolventsWithSponsionDate(); + $absolventList = getData($mResult); + // $vorgesetzte = array(); + // $toSend = array(); +} + +} diff --git a/application/models/education/Abschlusspruefung_model.php b/application/models/education/Abschlusspruefung_model.php index 268e786cb..66e6b4554 100644 --- a/application/models/education/Abschlusspruefung_model.php +++ b/application/models/education/Abschlusspruefung_model.php @@ -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,22 @@ class Abschlusspruefung_model extends DB_Model } } } - + return success($abschlusspruefungdata); } + + public function getAbsolventsWithSponsionDate() + { + $qry = "SELECT ps.prestudent_id + FROM lehre.tbl_abschlusspruefung ap + JOIN public.tbl_student st USING (student_uid) + JOIN public.tbl_prestudent ps USING (prestudent_id) + JOIN public.tbl_prestudentstatus pstatus USING (prestudent_id) + WHERE ap.sponsion < now() + AND ap.sponsion >= '2022-07-01' --just for testing + AND ps.zgvmadatum is NULL + AND pstatus.status_kurzbz in ('Absolvent') + ORDER BY ap.Sponsion DESC"; + return $this->execQuery($qry); + } }