Projektbetreuer kopieren, Data für Mailarray erstellen

This commit is contained in:
ma0068
2023-10-10 16:06:48 +02:00
parent 182c6531fa
commit 66af9531b7
2 changed files with 127 additions and 44 deletions
+119 -38
View File
@@ -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;
}
@@ -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'
]);
}