mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
manually triggering of updateTag
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user