use single tagLibs for dynamisation

new tagLibs (doubleDegree, jgv, missingZgv, Outgoing, StudienbeitragErhoeht, Unterbrecher)
refactor tagJob rebuildAutomatedTags
This commit is contained in:
ma0068
2026-04-15 09:45:57 +02:00
parent ee6f28c06d
commit 1339077b57
13 changed files with 536 additions and 39 deletions
+22 -2
View File
@@ -163,8 +163,28 @@ class TagLib
$deleted[] = $value;
}
return success([$allTags, $toAdd, $toRecycle, $toDelete, $countRecyled, $retagged, $countAdded, $tagged, $countDeleted, $deleted]);
return success([
'input' => [
'tag' => $tag,
'prestudentIds' => $prestudentIds,
],
'summary' => [
'recycled' => $countRecyled,
'added' => $countAdded,
'deleted' => $countDeleted,
],
'details' => [
'existingTags' => $allTags,
'toAdd' => $toAdd,
'toRecycle' => $toRecycle,
'toDelete' => $toDelete,
],
'results' => [
'retaggedNotizIds' => $retagged,
'newTags' => $tagged,
'deletedNotizIds' => $deleted,
]
]);
}
public function updateAutomatedTagsForPrestudent($tag, $prestudent_id)
@@ -0,0 +1,67 @@
<?php
/**
* Description of dd_auto
*
* @author ma0068
*/
class CoreDoubleDegreeTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('codex/Mobilitaet_model', 'MobilitaetModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$this->ci->MobilitaetModel->addJoin('bis.tbl_gsprogramm', 'gsprogramm_id');
$result = $this->ci->MobilitaetModel-> loadWhere(array(
'gsprogrammtyp_kurzbz' => 'Double',
'studiensemester_kurzbz' => $semester
));
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->MobilitaetModel->addJoin('bis.tbl_gsprogramm', 'gsprogramm_id');
$result = $this->ci->MobilitaetModel->loadWhere(array(
'gsprogrammtyp_kurzbz' => 'Double',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -0,0 +1,60 @@
<?php
/**
* Description of jgv_auto (Jahrgangsvertretung)
*
* @author ma0068
*/
class CoreJgvTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$result = $this->ci->BenutzerfunktionModel->getPrestudentsOfJgv($semester);
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$result = $this->ci->BenutzerfunktionModel->isJgv($semester, $prestudent_id);
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -0,0 +1,76 @@
<?php
/**
* Description of zgv_auto
*
* @author ma0068
*/
class CoreMissingZgvTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('crm/Prestudent_model', 'PrestudentModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$this->ci->PrestudentModel->addJoin('public.tbl_prestudentstatus', 'prestudent_id');
$this->ci->PrestudentModel->addJoin('public.tbl_benutzer bn', 'person_id');
$this->ci->PrestudentModel->addJoin('public.tbl_studiengang', 'studiengang_kz');
$result = $this->ci->PrestudentModel-> loadWhere(array(
'bn.aktiv' => true, //check if necessary
'zgvdatum' => null,
'typ' => 'b',
'studiensemester_kurzbz' => $semester
));
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->PrestudentModel->addJoin('public.tbl_prestudentstatus', 'prestudent_id');
$this->ci->PrestudentModel->addJoin('public.tbl_benutzer bn', 'person_id');
$this->ci->PrestudentModel->addJoin('public.tbl_studiengang', 'studiengang_kz');
$result = $this->ci->PrestudentModel->loadWhere(array(
'bn.aktiv' => true, //check if necessary
'zgvdatum' => null,
'typ' => 'b',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -0,0 +1,59 @@
<?php
/**
* Description of out_auto
*
* @author ma0068
*/
class CoreOutgoingTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('codex/Bisio_model', 'BisioModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$result = $this->ci->BisioModel->getOutgoingsOfSemester($semester);
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$result = $this->ci->BisioModel->isPrestudentOutgoing($semester, $prestudent_id);
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -42,9 +42,7 @@ class CorePrewiederholerTagLib
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return (object) array(
'isSet' => false
);
return false;
}
$semester = $params['studiensemester_kurzbz'];
@@ -0,0 +1,68 @@
<?php
/**
* Description of dd_auto
*
* @author ma0068
*/
class CoreStudienbeitragErhoehtTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('crm/Konto_model', 'KontoModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$this->ci->KontoModel->addJoin('public.tbl_prestudent', 'person_id');
$result = $this->ci->KontoModel-> loadWhere(array(
'buchungstyp_kurzbz' => 'StudiengebuehrErhoeht',
'studiensemester_kurzbz' => $semester
));
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$this->ci->KontoModel->addJoin('public.tbl_prestudent', 'person_id');
$result = $this->ci->KontoModel-> loadWhere(array(
'buchungstyp_kurzbz' => 'StudiengebuehrErhoeht',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -0,0 +1,64 @@
<?php
/**
* Description of wiedereinstieg_auto
*
* @author ma0068
*/
class CoreUnterbrecherTagLib
{
protected $ci;
public function __construct()
{
$this->ci = get_instance();
$this->ci->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
}
public function getZuordnungIds(array $params)
{
if(!isset($params['studiensemester_kurzbz']))
{
return (object) array(
'prestudent_id' => []
);
}
$semester = $params['studiensemester_kurzbz'];
$result = $this->ci->PrestudentstatusModel-> loadWhere(array(
'status_kurzbz' => 'Unterbrecher',
'studiensemester_kurzbz' => $semester
));
$data = $result->retval;
$ids = array_map(function($item) {
return $item->prestudent_id;
}, $data);
return (object) array(
'prestudent_id' => $ids
);
}
public function isCriteriaSetFor(array $params)
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return false;
}
$semester = $params['studiensemester_kurzbz'];
$prestudent_id = $params['prestudent_id'];
$result = $this->ci->PrestudentstatusModel-> loadWhere(array(
'status_kurzbz' => 'Unterbrecher',
'studiensemester_kurzbz' => $semester,
'prestudent_id' => $prestudent_id
));
if(hasData($result))
{
return true;
}
else
return false;
}
}
@@ -42,9 +42,7 @@ class CoreWiederholerTagLib
{
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
{
return (object) array(
'isSet' => false
);
return false;
}
$semester = $params['studiensemester_kurzbz'];