mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 07:52:16 +00:00
changes for not copied projektarbeiten and due to testing
This commit is contained in:
@@ -6,7 +6,7 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
* before this date projektarbeiten failed do upload in time will be ignored
|
||||
* @var string string formated as Date
|
||||
*/
|
||||
$config['projektarbeitjob_start'] = '2023-09-01';
|
||||
$config['projektarbeitjob_start'] = '2023-06-01';
|
||||
|
||||
/**
|
||||
* projektarbeiten bachelor will not be copied anymore after this amount of already existing
|
||||
|
||||
@@ -49,11 +49,13 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
$mailArray = array();
|
||||
$arrayStg = array();
|
||||
$countMissedAbgaben = 0;
|
||||
$countNotCopied = 0;
|
||||
$countTotal = 0;
|
||||
$countMails = 0;
|
||||
$projektarbeiten = [];
|
||||
|
||||
$this->logInfo('Start Job Projektarbeit');
|
||||
//print_r( PHP_EOL . "Start Job Projektarbeit" . PHP_EOL);
|
||||
|
||||
//get all Projektarbeiten not Uploaded in Time
|
||||
$resultNotUploaded = $this->ProjektarbeitModel->getAllProjektarbeitenNotUploadedInTime($startDate->format('c'));
|
||||
@@ -84,14 +86,15 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
|
||||
if (!hasData($resultNotUploaded) && !hasData($resultNegative
|
||||
|| $resultNotUploaded) == [] && $resultNegative == [])
|
||||
return $this->logInfo('End Job Projektarbeit Update: 0 Mails sent');
|
||||
return print_r('End Job Projektarbeit Update: 0 Mails sent');
|
||||
// return $this->logInfo('End Job Projektarbeit Update: 0 Mails sent');
|
||||
|
||||
if (is_array($projektarbeitenNotUploaded) && is_array($projektarbeitenNegative))
|
||||
{
|
||||
$projektarbeiten = array_merge($projektarbeitenNotUploaded, $projektarbeitenNegative);
|
||||
}
|
||||
|
||||
// (1) set mark to 5
|
||||
// (1) set mark to 7
|
||||
foreach ($projektarbeiten as $projekt)
|
||||
{
|
||||
$this->db->where('projektarbeit_id', $projekt->projektarbeit_id);
|
||||
@@ -101,7 +104,7 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
$result = $this->ProjektarbeitModel->update([
|
||||
'projektarbeit_id' => $projekt->projektarbeit_id
|
||||
], [
|
||||
'note' => 5
|
||||
'note' => 7
|
||||
]);
|
||||
if (isError($result))
|
||||
{
|
||||
@@ -109,13 +112,9 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/* else //log not necessary: always the case for negative marks
|
||||
{
|
||||
$this->logInfo('Note für Projektarbeit für projektarbeit_id ' . $projekt->projektarbeit_id . 'bereits vorhanden');
|
||||
}*/
|
||||
|
||||
// (2) copy Projektarbeit
|
||||
//no more copying if count bakk >= 6 or count_diplom >= 3
|
||||
|
||||
$end_of_copy_bachelor = $this->config->item('projektarbeitjob_finishCopy_bachelor') ? $this->config->item('projektarbeitjob_finishCopy_bachelor') : 6;
|
||||
$end_of_copy_master = $this->config->item('projektarbeitjob_finishCopy_diplom') ? $this->config->item('projektarbeitjob_finishCopy_diplom') : 3;
|
||||
|
||||
@@ -126,6 +125,31 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
);
|
||||
if ($maxCountReached)
|
||||
{
|
||||
$countNotCopied++;
|
||||
$result = $this->StudiengangModel->loadWhere([
|
||||
'studiengang_kz' => $projekt->studiengang_kz
|
||||
]);
|
||||
if (isError($result))
|
||||
{
|
||||
$this->logError(getError($result));
|
||||
}
|
||||
|
||||
if (!hasData($result))
|
||||
{
|
||||
//print_r('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
|
||||
|
||||
$this->logInfo('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
|
||||
}
|
||||
$studiengang = current(getData($result));
|
||||
$email = $studiengang->email;
|
||||
|
||||
$arrayStg[$projekt->studiengang_kz] = array(
|
||||
'countNotCopied' => $countNotCopied,
|
||||
'email' => $email,
|
||||
'countMissedAbgaben' => $countMissedAbgaben,
|
||||
);
|
||||
/* print_r("Max count of enduploads reached: " . $projekt->student_uid . ",id:" . $projekt->projektarbeit_id . " " . $projekt->studiengang_kz . PHP_EOL);
|
||||
print_r("Count of not copied: " . $countNotCopied . PHP_EOL);*/
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -137,6 +161,7 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
}
|
||||
if (!hasData($result2))
|
||||
{
|
||||
//print_r('No Projektarbeit found for projektarbeit_id ' . $projekt->projektarbeit_id);
|
||||
$this->logInfo('No Projektarbeit found for projektarbeit_id ' . $projekt->projektarbeit_id);
|
||||
continue;
|
||||
}
|
||||
@@ -190,6 +215,7 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
}
|
||||
elseif (!hasData($result))
|
||||
{
|
||||
//print_r('No projektarbeit_id for studentId ' . $projektarbeit->student_uid . ' found');
|
||||
$this->logInfo('No projektarbeit_id for studentId ' . $projektarbeit->student_uid . ' found');
|
||||
continue;
|
||||
}
|
||||
@@ -209,22 +235,24 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
$this->logError(getError($result));
|
||||
}
|
||||
|
||||
elseif (!hasData($result))
|
||||
if (!hasData($result))
|
||||
{
|
||||
//print_r('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
|
||||
|
||||
$this->logInfo('No Studiengang for studiengang_kz ' . $projekt->studiengang_kz . ' found');
|
||||
}
|
||||
else
|
||||
{
|
||||
$studiengang = current(getData($result));
|
||||
$email = $studiengang->email;
|
||||
$studiengang = current(getData($result));
|
||||
$email = $studiengang->email;
|
||||
|
||||
$arrayStg[$projekt->studiengang_kz] = array(
|
||||
'countMissedAbgaben' => $countMissedAbgaben,
|
||||
'email' => $email
|
||||
);
|
||||
}
|
||||
$arrayStg[$projekt->studiengang_kz] = array(
|
||||
'countMissedAbgaben' => $countMissedAbgaben++,
|
||||
'email' => $email,
|
||||
'countNotCopied' => $countNotCopied,
|
||||
);
|
||||
}
|
||||
else {
|
||||
$arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] = $countMissedAbgaben++;
|
||||
}
|
||||
$arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] = ($arrayStg[$projekt->studiengang_kz]['countMissedAbgaben'] + 1);
|
||||
|
||||
//Mailarray
|
||||
$reason = $projekt->reason ? $projekt->reason : null;
|
||||
@@ -251,6 +279,8 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
}
|
||||
elseif (!hasData($result))
|
||||
{
|
||||
//print_r('No Betreuung found for projektarbeit_id ' . $projekt->projektarbeit_id);
|
||||
|
||||
$this->logInfo('No Betreuung found for projektarbeit_id ' . $projekt->projektarbeit_id);
|
||||
}
|
||||
else
|
||||
@@ -309,7 +339,11 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
</thead>
|
||||
<tbody>";
|
||||
$email = $item['email'];
|
||||
|
||||
//TODO(Manu) Total counts
|
||||
//change to counts / STG or keep mailtext countfree
|
||||
$anzahlMissedAbgaben = $item['countMissedAbgaben'];
|
||||
$anzahlNichtKopierteProjektarbeiten = $item['countNotCopied'];
|
||||
|
||||
foreach ($mailArray as $m)
|
||||
{
|
||||
@@ -326,7 +360,8 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
|
||||
$betreff = 'Kopierte Projektarbeiten / Project Work(s) copied';
|
||||
$data = [
|
||||
'anzahlMissedAbgaben' => $anzahlMissedAbgaben,
|
||||
/* 'anzahlMissedAbgaben' => $anzahlMissedAbgaben,
|
||||
'anzahlNichtKopierteProjektarbeiten' => $anzahlNichtKopierteProjektarbeiten,*/
|
||||
'link' => APP_ROOT. '/vilesci/lehre/abgabe_assistenz_frameset.php?stg_kz=' . $stg_kz,
|
||||
'table' => $maildata
|
||||
];
|
||||
@@ -340,6 +375,9 @@ class ProjektarbeitJob extends JOB_Controller
|
||||
}
|
||||
}
|
||||
|
||||
/* print_r( PHP_EOL. $countTotal . ' projektarbeiten copied, ' . $countMails . ' sent mails.' . PHP_EOL);
|
||||
print_r('End Job Projektarbeit' . PHP_EOL);*/
|
||||
|
||||
$this->logInfo($countTotal . ' projektarbeiten copied, ' . $countMails . ' sent mails.');
|
||||
$this->logInfo('End Job Projektarbeit');
|
||||
}
|
||||
|
||||
@@ -109,16 +109,18 @@ class Projektarbeit_model extends DB_Model
|
||||
|
||||
$this->db->where($this->dbTable. '.note', null);
|
||||
|
||||
//TODO(Manu) remove comments for testdata sg.studiengang_kz
|
||||
$result = $this->loadWhere([
|
||||
'ben.aktiv' => 'true',
|
||||
'pa.fixtermin' => 'true',
|
||||
'pa.paabgabetyp_kurzbz' => 'end',
|
||||
'pa.abgabedatum' => null,
|
||||
'pa.datum < ' => $now->format('c'),
|
||||
/* 'sg.studiengang_kz' => 255*/
|
||||
]);
|
||||
|
||||
$query = $this->db->last_query();
|
||||
var_dump($query);
|
||||
if ($result)
|
||||
//Testausgaben
|
||||
/* if ($result)
|
||||
{
|
||||
echo "(UPDATE lehre.tbl_projektarbeit pa
|
||||
SET note = NULL
|
||||
@@ -133,7 +135,8 @@ class Projektarbeit_model extends DB_Model
|
||||
|
||||
echo ")\n";
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@@ -176,10 +179,12 @@ class Projektarbeit_model extends DB_Model
|
||||
$this->db->where('NOT EXISTS (SELECT 1 FROM lehre.tbl_projektarbeit AS sub WHERE sub.student_uid = lehre.tbl_projektarbeit.student_uid AND sub.note IN (1, 2, 3, 4))', null, false);
|
||||
|
||||
$this->db->where('ben.aktiv', true);
|
||||
//TODO(Manu) remove comments for Testdata 'sg.studiengang_kz' => 331
|
||||
$result = $this->loadWhere([
|
||||
'pa.fixtermin' => 'true',
|
||||
'pa.paabgabetyp_kurzbz' => 'end',
|
||||
'pa.datum < ' => $now->format('c'),
|
||||
/* 'sg.studiengang_kz' => 255*/
|
||||
]);
|
||||
|
||||
return $result;
|
||||
@@ -193,16 +198,20 @@ class Projektarbeit_model extends DB_Model
|
||||
*/
|
||||
public function checkifCountMaxProjektarbeiten($student_uid, $end_of_copy_bachelor, $end_of_copy_master)
|
||||
{
|
||||
|
||||
$qry = "SELECT COUNT(*), projekttyp_kurzbz
|
||||
FROM lehre.tbl_projektarbeit AS sub
|
||||
WHERE sub.student_uid = ?
|
||||
FROM lehre.tbl_projektarbeit
|
||||
WHERE student_uid = ?
|
||||
GROUP BY projekttyp_kurzbz";
|
||||
|
||||
$params = array($student_uid);
|
||||
|
||||
$result = $this->execQuery($qry, $params);
|
||||
|
||||
//TODO(Manu) wait for final logic or adaptions quality gates
|
||||
//meanwhile copying of all enduploads with fixed entries
|
||||
//counting after each step: example for testdata with student_uid where 1 project is copied before hitting limit
|
||||
// if($student_uid == "mr21m015")
|
||||
|
||||
if (!empty($result->retval))
|
||||
{
|
||||
foreach ($result->retval as $row)
|
||||
@@ -211,10 +220,16 @@ class Projektarbeit_model extends DB_Model
|
||||
$projekttyp = $row->projekttyp_kurzbz;
|
||||
|
||||
if ($projekttyp === 'Bachelor' && $count > $end_of_copy_bachelor)
|
||||
{
|
||||
//TODO(Manu) remove comments testdata
|
||||
//print_r(PHP_EOL . 'LIMIT REACHED Bakk: ' . $student_uid .' Anzahl Abgaben ' . $count . PHP_EOL);
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($projekttyp === 'Diplom' && $count > $end_of_copy_master)
|
||||
{
|
||||
//TODO(Manu) remove comments testdata
|
||||
//print_r(PHP_EOL . 'LIMIT REACHED Dipl: ' . $student_uid .' Anzahl Abgaben ' . $count . PHP_EOL);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user