manually triggering of updateTag

This commit is contained in:
ma0068
2026-04-28 16:24:30 +02:00
parent e856c8ad6b
commit 21eb95bb23
12 changed files with 158 additions and 104 deletions
+1 -1
View File
@@ -100,7 +100,7 @@ class Tag_Controller extends FHCAPI_Controller
$this->NotiztypModel->addSelect(
"typ_kurzbz as tag_typ_kurzbz,
array_to_json(bezeichnung_mehrsprachig::varchar[])->>". $language. " as bezeichnung,
array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung,
style,
beschreibung,
tag,
+103 -26
View File
@@ -39,15 +39,12 @@ class TagLib
// Libraries
$this->_ci->load->library('PermissionLib');
$this->_ci->load->library('PrestudentLib');
}
public function updateAutomatedTags($tag, $inputData)
{
/*
$inputData expected pattern
$params array expected pattern
[
[
'prestudent_id' => 123456,
@@ -64,6 +61,8 @@ class TagLib
$zeitraum = [];
$prestudentIds = [];
//TODO(Manu) check minimal input:
foreach ($inputData as $row) {
$pid = $row['prestudent_id'];
@@ -74,7 +73,6 @@ class TagLib
'bis' => $row['bis'] ?? null
];
}
$prestudentIds = array_unique($prestudentIds);
// ---------------------------------
@@ -239,11 +237,18 @@ class TagLib
]);
}
public function updateAutomatedTagsForPrestudent($tag, $prestudent_id)
public function updateAutomatedTagsForPrestudent_DEPR($tag, $prestudent_id)
{
$_ci = get_instance();
$_ci->addMeta(
'IN OLD FUNCTION updateTags', $tag
);
$return = null;
$notiz_id = null;
//von und bis auslesen
$this->_ci->NotizModel->addSelect('nz.notiz_id');
$this->_ci->NotizModel->addSelect('prestudent_id');
$this->_ci->NotizModel->addJoin('public.tbl_notizzuordnung nz', 'notiz_id');
@@ -275,6 +280,7 @@ class TagLib
$return = ['recycled' => $notiz_id];
}
else
{
//TODO(Manu) refactor for recycle, add
$resultInsertNotiz = $this->_ci->NotizModel->insert(array(
@@ -303,28 +309,96 @@ class TagLib
return success($return);
}
public function updateAutomatedTagsForPrestudent(array $params)
{
$return = null;
$notiz_id = null;
$von = $params['von'];
$bis = $params['bis'];
$tag = $params['kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->_ci->NotizModel->addSelect('nz.notiz_id');
$this->_ci->NotizModel->addSelect('prestudent_id');
$this->_ci->NotizModel->addJoin('public.tbl_notizzuordnung nz', 'notiz_id');
$resultAllTags = $this->_ci->NotizModel->loadWhere([
'typ' => $tag,
'prestudent_id' => $prestudent_id
]);
if(hasData($resultAllTags))
{
$notiz_id = $resultAllTags->retval[0]->notiz_id;
}
//RECYCLE
if ($notiz_id !== null)
{
//TODO(Manu) refactor for recycle, add
$resultUpdateNotiz = $this->_ci->NotizModel->update(
[
'notiz_id' => $notiz_id
],
array(
'updateamum' => date('Y-m-d H:i:s'),
'updatevon' => getAuthUID(),
));
if (isError($resultUpdateNotiz))
return error ('Error occurred update Result ' . $notiz_id);
$return = ['recycled' => $notiz_id];
}
else
{
$resultInsertNotiz = $this->_ci->NotizModel->insert(array(
'titel' => 'TAG',
'text' => 'AUTOMATED TAG',
'verfasser_uid' => getAuthUID(),
'erledigt' => false,
'insertamum' => date('Y-m-d H:i:s'),
'insertvon' => getAuthUID(),
'typ' => $tag,
'start' => $von,
'ende' => $bis
));
if (isError($resultInsertNotiz))
return error ('Error occurred insert Result ' . $prestudent_id);
$resultInsertZuordnung = $this->_ci->NotizzuordnungModel->insert(array(
'notiz_id' => $resultInsertNotiz->retval,
self::TYP_ZUORDNUNG => $prestudent_id
));
if (isError($resultInsertZuordnung))
return error ('Error occurred insert Zuordnung' . $prestudent_id);
$return = ['added' => $resultInsertNotiz->retval];
}
return success($return);
}
/*
* main function for rebuild Tags for single prestudent
* */
public function rebuildTagsForPrestudent($prestudent_id)
{
$automatedTagsRes = $this->_ci->NotiztypModel->loadWhere(array('automatisiert' => true, 'taglib IS NOT NULL' => null));
//echo $this->NotiztypModel->db->last_query();
$automatedTags = hasData($automatedTagsRes) ? getData($automatedTagsRes) : [];
$result = $this->_ci->StudiensemesterModel->getLastOrAktSemester();
if (isError($result))
return error ('Error occurred during retrieving studiensemester');
return error('Error occurred during retrieving studiensemester');
if (empty($result->retval) || !isset($result->retval[0])) {
return error('No studiensemester found');
}
$studiensemester_kurzbz = $result->retval[0]->studiensemester_kurzbz ?? null;
print_r($automatedTags);
$return = [];
foreach($automatedTags as $autoTag)
foreach ($automatedTags as $autoTag)
{
// getPath: must not be lost
$filePath = APPPATH . 'libraries/' . $autoTag->taglib . '.php'; // APPPATH = application/
@@ -338,37 +412,40 @@ class TagLib
// className without PATH (basename)
$className = basename($autoTag->taglib);
$kurz_bz = $autoTag->typ_kurzbz;
$obj = new $className();
$criteriaIsSet = $obj->isCriteriaSetFor([
'prestudent_id' => $prestudent_id,
'studiensemester_kurzbz' => $studiensemester_kurzbz
]);
//$return = $this->_ci->PrestudentstatusModel->db->last_query();
$kurz_bz = $autoTag->typ_kurzbz;
// $return[$kurz_bz] = $criteriaIsSet;
if($criteriaIsSet)
if (hasData($criteriaIsSet))
{
$result = $this->updateAutomatedTagsForPrestudent($kurz_bz, $prestudent_id);
$von = isset($criteriaIsSet->retval[0]->von) ? $criteriaIsSet->retval[0]->von : '';
$bis = isset($criteriaIsSet->retval[0]->bis) ? $criteriaIsSet->retval[0]->bis : '';
$params = [
'von' => $von,
'bis' => $bis,
'kurzbz' => $autoTag->typ_kurzbz,
'prestudent_id' => $prestudent_id
];
$result = $this->updateAutomatedTagsForPrestudent($params);
if (isError($result))
return error ('Error occurred during updateAutomatedTags' . $kurz_bz);
return error('Error occurred during updateAutomatedTags' . $kurz_bz);
else
$return[$kurz_bz] = $result;
return $result;
}
else {
else
{
$result = $this->checkForDelete($kurz_bz, $prestudent_id);
if($result != null)
if ($result != null)
$return[$kurz_bz] = $result;
}
}
return success($return);
}
public function checkForDelete($tag, $prestudent_id)
@@ -49,6 +49,7 @@ class CoreDoubleDegreeTagLib
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
@@ -57,18 +58,26 @@ class CoreDoubleDegreeTagLib
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->MobilitaetModel->addSelect('prestudent_id');
$this->ci->MobilitaetModel->addSelect('start as von');
$this->ci->MobilitaetModel->addSelect('ende as bis');
$this->ci->MobilitaetModel->addJoin('bis.tbl_gsprogramm', 'gsprogramm_id');
$this->ci->MobilitaetModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$result = $this->ci->MobilitaetModel->loadWhere(array(
'gsprogrammtyp_kurzbz' => 'Double',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
//array mit prestudent_id, von und bis
return $result;
}
else
return false;
return null;
}
}
+2 -2
View File
@@ -56,10 +56,10 @@ class CoreJgvTagLib
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -73,10 +73,10 @@ class CoreMissingZgvTagLib
));
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -55,67 +55,11 @@ class CoreOutgoingTagLib
$result = $this->ci->BisioModel->isPrestudentOutgoing($semester, $prestudent_id);
if (hasData($result)) {
return true;
} else
return false;
}
/* if(hasData($result))
{
return array(
$result
);
var_dump($result);
die();
$row = $result->data->retval[0] ?? null;
return [
'prestudent_id' => $row->prestudent_id, //trying to get property of non-object
'von' => $row->von, //trying to get property of non-object
'bis' => $row->bis //trying to get property of non-object
];
return current($result);//-> warum retvall = []
return getData($result); //-> warum retvall = []
$row = $result->data->retval[0] ?? null;
$row = $result->data->retval[0] ?? null;
return [
'prestudent_id' => $row->prestudent_id,
'von' => $row->von,
'bis' => $row->bis
];
}
else
return false;*/
//return $result;
/* if(hasData($result))
{
$data = $result->retval;
return $result;
return [
'prestudent_id' => $data->prestudent_id,
'von' => $data->von,
'bis' => $data->bis
];
}
else
return [
'prestudent_id' => $prestudent_id,
'von' => null,
'bis' => null
];*/
/* return (object) array(
'data' => $data
);*/
// return $data;
//}
} else
return null;
}
}
@@ -55,6 +55,12 @@ class CorePrewiederholerTagLib
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->PrestudentstatusModel->addSelect('prestudent_id');
$this->ci->PrestudentstatusModel->addSelect('start as von');
$this->ci->PrestudentstatusModel->addSelect('ende as bis');
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$result = $this->ci->PrestudentstatusModel->loadWhere(array(
'statusgrund_id' => 15,
'studiensemester_kurzbz' => $semester,
@@ -62,10 +68,10 @@ class CorePrewiederholerTagLib
));
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -57,7 +57,12 @@ class CoreStbErhoehtTagLib
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->KontoModel->addSelect('prestudent_id');
$this->ci->KontoModel->addSelect('start as von');
$this->ci->KontoModel->addSelect('ende as bis');
$this->ci->KontoModel->addJoin('public.tbl_prestudent', 'person_id');
$this->ci->KontoModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$result = $this->ci->KontoModel-> loadWhere(array(
'buchungstyp_kurzbz' => 'StudiengebuehrErhoeht',
'studiensemester_kurzbz' => $semester,
@@ -66,10 +71,10 @@ class CoreStbErhoehtTagLib
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -55,17 +55,23 @@ class CoreUnterbrecherTagLib
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->PrestudentstatusModel->addSelect('prestudent_id');
$this->ci->PrestudentstatusModel->addSelect('start as von');
$this->ci->PrestudentstatusModel->addSelect('ende as bis');
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$result = $this->ci->PrestudentstatusModel-> loadWhere(array(
'status_kurzbz' => 'Unterbrecher',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -47,6 +47,7 @@ class CoreWiederholerTagLib
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
@@ -55,16 +56,23 @@ class CoreWiederholerTagLib
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->PrestudentstatusModel->addSelect('prestudent_id');
$this->ci->PrestudentstatusModel->addSelect('start as von');
$this->ci->PrestudentstatusModel->addSelect('ende as bis');
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
$result = $this->ci->PrestudentstatusModel->loadWhere(array(
'statusgrund_id' => 16,
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
'prestudent_id' => $prestudent_id,
));
if(hasData($result))
{
return true;
return $result;
}
else
return false;
return null;
}
}
@@ -353,7 +353,7 @@ class Benutzerfunktion_model extends DB_Model
public function isJgv($semester, $prestudent_id)
{
$query = "
SELECT *
SELECT ps.prestudent_id, ss.start as von, ss.ende as bis
FROM public.tbl_benutzerfunktion bf
JOIN public.tbl_benutzer bn USING (uid)
JOIN public.tbl_prestudent ps USING (person_id)
-1
View File
@@ -3,7 +3,6 @@
export function idTagFormatter (id, tagData, tagComponent, typeId)
{
if (!id) return;
console.log(tagData);
const parsedTags = tagData.map(tag => ({
id: tag.notiz_id,