From 66af9531b7962e744beaeddce9bd1acd34e16bcd Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 10 Oct 2023 16:06:48 +0200 Subject: [PATCH] =?UTF-8?q?Projektbetreuer=20kopieren,=20Data=20f=C3=BCr?= =?UTF-8?q?=20Mailarray=20erstellen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/jobs/ProjektarbeitJob.php | 157 +++++++++++++----- .../models/education/Projektarbeit_model.php | 14 +- 2 files changed, 127 insertions(+), 44 deletions(-) diff --git a/application/controllers/jobs/ProjektarbeitJob.php b/application/controllers/jobs/ProjektarbeitJob.php index b8a261855..050e3722d 100644 --- a/application/controllers/jobs/ProjektarbeitJob.php +++ b/application/controllers/jobs/ProjektarbeitJob.php @@ -31,10 +31,11 @@ class ProjektarbeitJob extends JOB_Controller $this->load->helper('hlp_sancho_helper'); //Load Models - $this->load->model('education/Betreuerart_model', 'BetreuerartModel'); + //$this->load->model('education/Betreuerart_model', 'BetreuerartModel'); $this->load->model('education/Projektarbeit_model', 'ProjektarbeitModel'); $this->load->model('education/Paabgabe_model', 'PaabgabeModel'); $this->load->model('education/Projektbetreuer_model', 'ProjektbetreuerModel'); + $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); //Load Library $this->load->library('VorlageLib'); @@ -42,6 +43,10 @@ class ProjektarbeitJob extends JOB_Controller public function handleMissedAbgaben() { + $mailArray = array(); + $countMissedAbgaben = 0; + $countTotal = 0; + $countMails = 0; $nl = "\n"; echo "----------------- Test Cronjob cis/cronjobs/handleMissedAbgabenBachelorMaster.php ------------------"; echo $nl; @@ -54,15 +59,16 @@ class ProjektarbeitJob extends JOB_Controller if(!hasData($result)) return $this->logInfo('End Job Projektarbeit Update: 0 Mails sent'); */ - if(isError($result)) + if (isError($result)) echo $nl . $result; - if(!hasData($result)) + if (!hasData($result)) { echo $nl . 'End Job Projektarbeit Update: 0 Mails sent'; - + return; + } $projektarbeiten = getData($result); - var_dump($projektarbeiten); + //var_dump($projektarbeiten); //note auf 7 setzen foreach ($projektarbeiten as $projekt) { @@ -78,22 +84,20 @@ class ProjektarbeitJob extends JOB_Controller if (isError($result)) echo "error: " . getError($result); else - echo $nl . " erfolgreiches update von projektarbeit_id " . $projekt->projektarbeit_id; + echo $nl . "------" . $nl . " erfolgreiches update von projektarbeit_id " . $projekt->projektarbeit_id . " :" . $projekt->titel; //copy Projektarbeit $result = $this->ProjektarbeitModel->load($projekt->projektarbeit_id); - if (isError($result)) - { + if (isError($result)) { echo "error: " . getError($result); continue; } - if(!hasData($result)) - { + if (!hasData($result)) { echo $nl . 'Keine Projektarbeit für projektarbeit_id ' . $projekt->projektarbeit_id . 'gefunden'; continue; } $projektarbeit = getData($result)[0]; - var_dump($projektarbeit); + //var_dump($projektarbeit); $result = $this->ProjektarbeitModel->insert([ 'projekttyp_kurzbz' => $projektarbeit->projekttyp_kurzbz, @@ -101,12 +105,62 @@ class ProjektarbeitJob extends JOB_Controller 'insertvon' => 'Projektjob', 'note' => NULL, 'lehreinheit_id' => $projektarbeit->lehreinheit_id, - 'student_uid' => $projektarbeit->student_uid - + 'student_uid' => $projektarbeit->student_uid, + 'firma_id' => $projektarbeit->firma_id, + 'punkte' => $projektarbeit->punkte, //TODO(manu) ebenfalls null? + 'beginn' => NULL, + 'ende' => NULL, + 'faktor' => $projektarbeit->faktor, + 'freigegeben' => $projektarbeit->freigegeben, + 'gesperrtbis' => $projektarbeit->gesperrtbis, + 'stundensatz' => $projektarbeit->stundensatz, + 'themenbereich' => $projektarbeit->themenbereich, + 'anmerkung' => $projektarbeit->anmerkung, + 'updateamum' => NULL, + 'updatevon' => NULL, + 'insertamum' => $projektarbeit->insertamum, //TODO(manu) besser aktueller timestamp? + 'ext_id' => $projektarbeit->ext_id, + 'gesamtstunden' => NULL, //TODO(manu) oder übernehmen? + 'titel_english' => $projektarbeit->titel_english, + 'sprache' => $projektarbeit->seitenanzahl, + 'abgabedatum' => $projektarbeit->abgabedatum, + 'kontrollschlagwoerter' => $projektarbeit->kontrollschlagwoerter, + 'schlagwoerter' => $projektarbeit->schlagwoerter, + 'schlagwoerter_en' => $projektarbeit->schlagwoerter_en, + 'abstract' => $projektarbeit->abstract, + 'abstract_en' => $projektarbeit->abstract_en, + 'final' => $projektarbeit->final, ]); if (isError($result)) echo "error: " . getError($result); + $result = $this->ProjektarbeitModel->loadWhere([ + 'student_uid' => $projektarbeit->student_uid, + 'insertvon' => 'Projektjob', + 'note' => NULL + ]); + if (isError($result)) + //$this->logError(getError($result)); + echo "error: " . getError($result); + elseif (!hasData($result)) { + echo $nl . 'Keine neu angelegte projektarbeit_id für StudentId' . $projektarbeit->student_uid . 'gefunden'; + } + else + { + $projektarbeit_copy = getData($result)[0]; + //var_dump($projektarbeit_copy); + $projekt_id_copy = $projektarbeit_copy->projektarbeit_id; + echo $nl . "Projektarbeit alt " . $projekt->projektarbeit_id . " Projektarbeit neu: " . $projekt_id_copy; + echo $nl . "Studiengang_kz" . $projekt->studiengang_kz; + + //Mail array + if (!isset ($mailArray[$projekt->studiengang_kz])) { + $mailArray[$projekt->studiengang_kz] = $countMissedAbgaben; + } + $mailArray[$projekt->studiengang_kz] = $mailArray[$projekt->studiengang_kz] + 1; + + + } //Betreuungen kopieren //get bestehende Betreuungen @@ -117,18 +171,39 @@ class ProjektarbeitJob extends JOB_Controller if (isError($result)) //$this->logError(getError($result)); echo "error: " . getError($result); - elseif (!hasData($result)) - { - echo $nl . 'Keine Projektarbeit für' . $projekt->projektarbeit_id . 'gefunden'; - } - else - { + elseif (!hasData($result)) { + echo $nl . 'Keine Betreuung für' . $projekt->projektarbeit_id . 'gefunden'; + } else { $betreuung = getData($result); - var_dump($betreuung); + //var_dump($betreuung); + + foreach ($betreuung as $bet) { + echo $nl . $bet->person_id . " P_ID ALT: " . $nl . $bet->projektarbeit_id . "P_ID NEU" . $projekt_id_copy . $nl . " Art: " . $bet->betreuerart_kurzbz; + $result = $this->ProjektbetreuerModel->insert([ + 'person_id' => $bet->person_id, + 'projektarbeit_id' => $projekt_id_copy, + 'note' => NULL, + 'faktor' => $bet->faktor, + 'name' => $bet->name, + 'punkte' => $bet->punkte, + 'stundensatz' => $bet->stundensatz, + 'updateamum' => $bet->updateamum, + //TODO insertamum, updateam, updatevon ? Projektjob und aktueller Timestamp + 'updatevon' => $bet->updatevon, + 'insertamum' => $bet->insertamum, + 'insertvon' => 'Projektjob', + 'ext_id' => $bet->ext_id, + 'betreuerart_kurzbz' => $bet->betreuerart_kurzbz, + 'stunden' => NULL, + 'vertrag_id' => NULL, //TODO oder besser vertrag_id + 'zugangstoken' => $bet->zugangstoken, + 'zugangstoken_gueltigbis' => $bet->zugangstoken_gueltigbis + ]); + if (isError($result)) + echo "error: " . getError($result); + else + echo $nl . "neue Betreuung für person_id " . $bet->person_id . ' und projektarbeit_id ' . $projekt_id_copy . ' angelegt'; - foreach($betreuung as $bet) - { - echo $nl . $bet->person_id . " " . $bet->projektarbeit_id . " Art: " . $bet->betreuerart_kurzbz; } //var_dump($projektarbeit_copy); @@ -136,33 +211,39 @@ class ProjektarbeitJob extends JOB_Controller //echo "Projektarbeit alt " . $projekt->projektarbeit_id . " Projektarbeit neu: " . $projekt_id_copy; } + } - $result = $this->ProjektarbeitModel->loadWhere([ - 'student_uid' => $projektarbeit->student_uid, - 'insertvon' => 'Projektjob', - 'note' => NULL + //Sancho Mail + var_dump($mailArray); + + + echo $nl . "Arraytest: " . $nl; + foreach ($mailArray as $key => $item){ + + $result = $this->StudiengangModel->loadWhere([ + 'studiengang_kz' => $key ]); if (isError($result)) //$this->logError(getError($result)); echo "error: " . getError($result); - elseif (!hasData($result)) - { - echo $nl . 'Keine neu angelegte projektarbeit_id für StudentId' . $projektarbeit->student_uid . 'gefunden'; + elseif (!hasData($result)) { + echo $nl . 'Kein Studiengang für' . $key . 'gefunden'; } else { - $projektarbeit_copy = getData($result)[0]; - //var_dump($projektarbeit_copy); - $projekt_id_copy = $projektarbeit_copy->projektarbeit_id; - echo $nl . "Projektarbeit alt " . $projekt->projektarbeit_id . " Projektarbeit neu: " . $projekt_id_copy; + $studiengang = current(getData($result)); + //var_dump($studiengang); + $email = $studiengang->email; + $countTotal = $countTotal + $item; + + echo $nl . "Mail an Studiengang " . $key . " , Anzahl missed PAs: " . $item . " email: " . $studiengang->email. $nl; + + $countMails++; } - - - - } + echo $nl . 'End Job Projektarbeit: ' . $countTotal . ' Missed Abgaben Total, ' . $countMails . ' verschickte Mails: ' . $nl; } diff --git a/application/models/education/Projektarbeit_model.php b/application/models/education/Projektarbeit_model.php index 39db79da1..aeb9e553e 100644 --- a/application/models/education/Projektarbeit_model.php +++ b/application/models/education/Projektarbeit_model.php @@ -79,8 +79,10 @@ class Projektarbeit_model extends DB_Model $allowedProjekttypes[] = 'Bachelor'; $allowedProjekttypes[] = 'Diplom'; - $now = new DateTime(); + $selectedStg = [331, 328]; + $now = new DateTime(); + $this->db->distinct(); $this->addSelect($this->dbTable.'.projektarbeit_id'); $this->addSelect($this->dbTable.'.titel'); $this->addSelect($this->dbTable.'.student_uid'); @@ -102,20 +104,20 @@ class Projektarbeit_model extends DB_Model //TODO(MANU) Config date $this->db->where('pa.datum >', '2022-09-01'); - //$this->db->where('pa.fixtermin', 'TRUE'); $this->db->where('pa.abgabedatum', NULL); //TODO(MANU) get date with NOW - $this->db->where('pa.datum < ', '2023-10-04'); + $this->db->where('pa.datum < ', '2023-10-10'); //TODO(MANU) check if note null: ausreichend? $this->db->where($this->dbTable. '.note', NULL); - $this->addLimit(1); + $this->db->where_in('sg.studiengang_kz', $selectedStg); + + //$this->addLimit(3); //for testing return $this->loadWhere([ - 'pa.fixtermin' => 'TRUE', - 'sg.studiengang_kz' => 328 + 'pa.fixtermin' => 'TRUE' ]); }