mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-22 17:32:18 +00:00
add variables from and to to show time of validity in backend
refactor function getZuordnungIds of all single tagLibs add description line for editing/showing modal tag
This commit is contained in:
@@ -142,14 +142,14 @@ $config['stv_prestudent_tags'] = [
|
||||
'finished_stg' => ['readonly' => false],
|
||||
'finished_kf' => ['readonly' => false],
|
||||
'inwork_kf' => ['readonly' => false],
|
||||
'dd_auto' => ['readonly' => true],
|
||||
'dd_auto' => ['readonly' => false],
|
||||
'wh_auto' => ['readonly' => true],
|
||||
'prewh_auto' => ['readonly' => true],
|
||||
'out_auto' => ['readonly' => true],
|
||||
'out_auto' => ['readonly' => false],
|
||||
'zgv_auto' => ['readonly' => true],
|
||||
'wiedereinstieg_auto' => ['readonly' => true],
|
||||
'stbtr_erh_auto' => ['readonly' => true],
|
||||
'beitr_befr_auto' => ['readonly' => true],
|
||||
'jgv_auto' => ['readonly' => true],
|
||||
'jgv_auto' => ['readonly' => false],
|
||||
'nachteilausgl_auto' => ['readonly' => true],
|
||||
];
|
||||
|
||||
@@ -37,56 +37,6 @@ class TagJob extends JOB_Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function pocTagLibs()
|
||||
{
|
||||
$automatedTagsRes = $this->NotiztypModel->loadWhere(array('automatisiert' => true, 'taglib IS NOT NULL' => null));
|
||||
//echo $this->NotiztypModel->db->last_query();
|
||||
$automatedTags = hasData($automatedTagsRes) ? getData($automatedTagsRes) : [];
|
||||
print_r($automatedTags);
|
||||
|
||||
foreach($automatedTags as $autoTag)
|
||||
{
|
||||
$taglib = strtolower(basename($autoTag->taglib));
|
||||
$this->load->library($autoTag->taglib);
|
||||
|
||||
$ids = $this->$taglib->getZuordnungIds(array('studiensemester_kurzbz' => self::SEMESTER));
|
||||
print_r($ids);
|
||||
}
|
||||
}
|
||||
|
||||
public function loadTagLibs()
|
||||
{
|
||||
$automatedTagsRes = $this->NotiztypModel->loadWhere(array('automatisiert' => true, 'taglib IS NOT NULL' => null));
|
||||
//echo $this->NotiztypModel->db->last_query();
|
||||
$automatedTags = hasData($automatedTagsRes) ? getData($automatedTagsRes) : [];
|
||||
print_r($automatedTags);
|
||||
|
||||
foreach($automatedTags as $autoTag)
|
||||
{
|
||||
// getPath: must not be lost
|
||||
$filePath = APPPATH . 'libraries/' . $autoTag->taglib . '.php'; // APPPATH = application/
|
||||
|
||||
if(file_exists($filePath)) {
|
||||
require_once($filePath);
|
||||
} else {
|
||||
echo "File not found: " . $filePath;
|
||||
continue;
|
||||
}
|
||||
|
||||
// className without PATH (basename)
|
||||
$className = basename($autoTag->taglib);
|
||||
|
||||
$obj = new $className();
|
||||
$ids = $obj->getZuordnungIds(['studiensemester_kurzbz' => self::SEMESTER]);
|
||||
|
||||
$kurz_bz = $autoTag->typ_kurzbz;
|
||||
|
||||
echo PHP_EOL . $className . ": ";
|
||||
echo PHP_EOL . $kurz_bz . ": ";
|
||||
print_r($ids);
|
||||
}
|
||||
}
|
||||
|
||||
public function rebuildAutomatedTags()
|
||||
{
|
||||
print_r( PHP_EOL . "Start Job rebuild" . PHP_EOL);
|
||||
@@ -112,11 +62,12 @@ class TagJob extends JOB_Controller
|
||||
$className = basename($autoTag->taglib);
|
||||
|
||||
$obj = new $className();
|
||||
$ids = $obj->getZuordnungIds(['studiensemester_kurzbz' => self::SEMESTER]);
|
||||
|
||||
$idsArray = $ids->prestudent_id;
|
||||
$outputArray = $obj->getZuordnungIds(['studiensemester_kurzbz' => self::SEMESTER]);
|
||||
$data = $outputArray->data;
|
||||
|
||||
$result = $this->taglib->updateAutomatedTags($kurz_bz, $data);
|
||||
|
||||
$result = $this->taglib->updateAutomatedTags($kurz_bz, $idsArray);
|
||||
$data = $result->retval;
|
||||
if (isError($result))
|
||||
return error ('Error occurred during updateAutomatedTags');
|
||||
@@ -132,70 +83,4 @@ class TagJob extends JOB_Controller
|
||||
print_r( PHP_EOL . "End Job rebuild" . PHP_EOL);
|
||||
|
||||
}
|
||||
|
||||
public function rebuildAutomatedTags_DEPR()
|
||||
{
|
||||
print_r( PHP_EOL . "Start Job rebuild" . PHP_EOL);
|
||||
$automaticTags = $this->config->item('stv_automatic_tags');
|
||||
print_r( implode( ", ", $automaticTags) . PHP_EOL);
|
||||
|
||||
//TODO(Manu) use a loop in library?
|
||||
if(in_array('wh_auto', $automaticTags))
|
||||
{
|
||||
$result = $this->PrestudentstatusModel-> loadWhere(array(
|
||||
'statusgrund_id' => 16,
|
||||
'studiensemester_kurzbz' => self::SEMESTER
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
}, $data);
|
||||
|
||||
|
||||
$result = $this->taglib->updateAutomatedTags('wh_auto', $ids);
|
||||
$data = $result->retval;
|
||||
if (isError($result))
|
||||
return error ('Error occurred during updateAutomatedTags');
|
||||
|
||||
print_r(PHP_EOL ."ALL TAGS 'wh_auto' " . count($data[0]) . " TO ADD " . count($data[1]) . " TO RECYLE: " . count($data[2]) . " TO DELETE: " . count($data[3]));
|
||||
|
||||
|
||||
print_r( PHP_EOL . "Count Recycled: ");
|
||||
print_r($data[4]);
|
||||
print_r( PHP_EOL . "Count Added: ");
|
||||
print_r($data[6]);
|
||||
print_r( PHP_EOL . "Count Deleted: ");
|
||||
print_r($data[8] . PHP_EOL);
|
||||
}
|
||||
|
||||
if(in_array('prewh_auto', $automaticTags))
|
||||
{
|
||||
$result = $this->PrestudentstatusModel->loadWhere(array(
|
||||
'statusgrund_id' => 15,
|
||||
'studiensemester_kurzbz' => self::SEMESTER
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function ($item) {
|
||||
return $item->prestudent_id;
|
||||
}, $data);
|
||||
|
||||
$result = $this->taglib->updateAutomatedTags('prewh_auto', $ids);
|
||||
if (isError($result))
|
||||
return error('Error occurred during updateAutomatedTags');
|
||||
|
||||
$data = $result->retval;
|
||||
|
||||
print_r(PHP_EOL . "ALL TAGS 'prewh_auto' " . count($data[0]) . " TO ADD " . count($data[1]) . " TO RECYLE: " . count($data[2]) . " TO DELETE: " . count($data[3]));
|
||||
|
||||
print_r(PHP_EOL . "Count Recycled: ");
|
||||
print_r($data[4]);
|
||||
print_r(PHP_EOL . "Count Added: ");
|
||||
print_r($data[6]);
|
||||
print_r(PHP_EOL . "Count Deleted: ");
|
||||
print_r($data[8] . PHP_EOL);
|
||||
}
|
||||
|
||||
print_r( PHP_EOL . "End Job rebuild" . PHP_EOL);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +76,9 @@ class Tag_Controller extends FHCAPI_Controller
|
||||
tbl_notiz.insertamum,
|
||||
tbl_notiz.updateamum,
|
||||
(verfasserperson.vorname || ' ' || verfasserperson.nachname || ' ' || '(' || verfasserbenutzer.uid || ')') as verfasser,
|
||||
(bearbeiterperson.vorname || ' ' || bearbeiterperson.nachname || ' ' || '(' || bearbeiterbenutzer.uid || ')') as bearbeiter
|
||||
(bearbeiterperson.vorname || ' ' || bearbeiterperson.nachname || ' ' || '(' || bearbeiterbenutzer.uid || ')') as bearbeiter,
|
||||
tbl_notiz.start,
|
||||
tbl_notiz.ende
|
||||
"
|
||||
);
|
||||
$this->NotizModel->addJoin('public.tbl_notiz_typ', 'public.tbl_notiz.typ = public.tbl_notiz_typ.typ_kurzbz');
|
||||
@@ -315,7 +317,9 @@ class Tag_Controller extends FHCAPI_Controller
|
||||
tbl_notiz.insertamum,
|
||||
tbl_notiz.updateamum,
|
||||
(verfasserperson.vorname || ' ' || verfasserperson.nachname || ' ' || '(' || verfasserbenutzer.uid || ')') as verfasser,
|
||||
(bearbeiterperson.vorname || ' ' || bearbeiterperson.nachname || ' ' || '(' || bearbeiterbenutzer.uid || ')') as bearbeiter
|
||||
(bearbeiterperson.vorname || ' ' || bearbeiterperson.nachname || ' ' || '(' || bearbeiterbenutzer.uid || ')') as bearbeiter,
|
||||
tbl_notiz.start,
|
||||
tbl_notiz.ende
|
||||
"
|
||||
);
|
||||
$this->NotizModel->addJoin('public.tbl_notiz_typ', 'public.tbl_notiz.typ = public.tbl_notiz_typ.typ_kurzbz');
|
||||
|
||||
+120
-128
@@ -48,18 +48,49 @@ class TagLib
|
||||
|
||||
}
|
||||
|
||||
public function updateAutomatedTags($tag, $prestudentIds)
|
||||
public function updateAutomatedTags($tag, $inputData)
|
||||
{
|
||||
/*
|
||||
$inputData expected pattern
|
||||
|
||||
[
|
||||
[
|
||||
'prestudent_id' => 123456,
|
||||
'von' => '2026-04-01',
|
||||
'bis' => '2026-06-30'
|
||||
],
|
||||
...
|
||||
]
|
||||
*/
|
||||
|
||||
// ---------------------------------
|
||||
// prepare input
|
||||
// ---------------------------------
|
||||
$zeitraum = [];
|
||||
$prestudentIds = [];
|
||||
|
||||
foreach ($inputData as $row) {
|
||||
$pid = $row['prestudent_id'];
|
||||
|
||||
$prestudentIds[] = $pid;
|
||||
|
||||
$zeitraum[$pid] = [
|
||||
'von' => $row['von'] ?? null,
|
||||
'bis' => $row['bis'] ?? null
|
||||
];
|
||||
}
|
||||
|
||||
$prestudentIds = array_unique($prestudentIds);
|
||||
|
||||
$toRecycle = [];
|
||||
$toAdd = [];
|
||||
$toDelete = [];
|
||||
// ---------------------------------
|
||||
// load existing tags
|
||||
// ---------------------------------
|
||||
$allTags = [];
|
||||
|
||||
$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
|
||||
]);
|
||||
@@ -72,117 +103,143 @@ class TagLib
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------
|
||||
// map the data
|
||||
// ---------------------------------
|
||||
$toRecycle = [];
|
||||
$toAdd = [];
|
||||
$toDelete = [];
|
||||
|
||||
foreach ($prestudentIds as $value)
|
||||
{
|
||||
if (isset($allTags[$value])) {
|
||||
// if already existing: recyceln: nothing to do
|
||||
$toRecycle[$value] = $allTags[$value] ;
|
||||
foreach ($prestudentIds as $pid) {
|
||||
if (isset($allTags[$pid])) {
|
||||
$toRecycle[$pid] = $allTags[$pid];
|
||||
} else {
|
||||
$toAdd[] = $value;
|
||||
$toAdd[] = $pid;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($allTags as $prestudent_id => $notiz_id) {
|
||||
if (!in_array($prestudent_id, $prestudentIds)) {
|
||||
$toDelete[$prestudent_id] = $notiz_id;
|
||||
foreach ($allTags as $pid => $notizId) {
|
||||
if (!in_array($pid, $prestudentIds)) {
|
||||
$toDelete[$pid] = $notizId;
|
||||
}
|
||||
}
|
||||
|
||||
//RECYCLE: Just insert new update Date
|
||||
$countRecyled = 0;
|
||||
// ---------------------------------
|
||||
// recycle (update existing)
|
||||
// ---------------------------------
|
||||
$countRecycled = 0;
|
||||
$retagged = [];
|
||||
foreach ($toRecycle as $value)
|
||||
{
|
||||
//TODO(Manu) refactor for recycle, add
|
||||
$resultUpdateNotiz = $this->_ci->NotizModel->update(
|
||||
|
||||
foreach ($toRecycle as $pid => $notizId) {
|
||||
|
||||
$result = $this->_ci->NotizModel->update(
|
||||
['notiz_id' => $notizId],
|
||||
[
|
||||
'notiz_id' => $value
|
||||
],
|
||||
array(
|
||||
'updateamum' => date('Y-m-d H:i:s'),
|
||||
'updatevon' => 'BatchJobTagUpdate',
|
||||
));
|
||||
'updateamum' => date('Y-m-d H:i:s'),
|
||||
'updatevon' => 'BatchJobTagUpdate',
|
||||
'start' => $zeitraum[$pid]['von'],
|
||||
'ende' => $zeitraum[$pid]['bis']
|
||||
]
|
||||
);
|
||||
|
||||
if (isError($resultUpdateNotiz))
|
||||
return error ('Error occurred update Result ' . $value);
|
||||
if (isError($result)) {
|
||||
return error('Error updating tag ' . $notizId);
|
||||
}
|
||||
|
||||
$countRecyled++;
|
||||
$retagged[] = $resultUpdateNotiz->retval;
|
||||
$countRecycled++;
|
||||
$retagged[] = $notizId;
|
||||
}
|
||||
|
||||
//ADD: Create new Tags
|
||||
// ---------------------------------
|
||||
// ADD
|
||||
// ---------------------------------
|
||||
$countAdded = 0;
|
||||
$tagged = [];
|
||||
foreach ($toAdd as $value)
|
||||
{
|
||||
//TODO(Manu) refactor for recycle, add
|
||||
$resultInsertNotiz = $this->_ci->NotizModel->insert(array(
|
||||
|
||||
foreach ($toAdd as $pid) {
|
||||
|
||||
$resultInsert = $this->_ci->NotizModel->insert([
|
||||
'titel' => 'TAG',
|
||||
'text' => 'AUTOMATED TAG',
|
||||
'verfasser_uid' => self::BATCHUSER, //has to be an uid
|
||||
'verfasser_uid' => self::BATCHUSER,
|
||||
'erledigt' => false,
|
||||
'insertamum' => date('Y-m-d H:i:s'),
|
||||
'insertvon' => 'BatchJobTagAdd',
|
||||
'typ' => $tag
|
||||
));
|
||||
'typ' => $tag,
|
||||
'start' => $zeitraum[$pid]['von'],
|
||||
'ende' => $zeitraum[$pid]['bis']
|
||||
]);
|
||||
|
||||
if (isError($resultInsertNotiz))
|
||||
return error ('Error occurred insert Result ' . $value);
|
||||
if (isError($resultInsert)) {
|
||||
return error('Error inserting tag for prestudent ' . $pid);
|
||||
}
|
||||
|
||||
$resultInsertZuordnung = $this->_ci->NotizzuordnungModel->insert(array(
|
||||
'notiz_id' => $resultInsertNotiz->retval,
|
||||
self::TYP_ZUORDNUNG => $value
|
||||
));
|
||||
$notizId = $resultInsert->retval;
|
||||
|
||||
if (isError($resultInsertZuordnung))
|
||||
return error ('Error occurred insert Zuordnung' . $value);
|
||||
$resultZuordnung = $this->_ci->NotizzuordnungModel->insert([
|
||||
'notiz_id' => $notizId,
|
||||
self::TYP_ZUORDNUNG => $pid
|
||||
]);
|
||||
|
||||
if (isError($resultZuordnung)) {
|
||||
return error('Error inserting relation for prestudent ' . $pid);
|
||||
}
|
||||
|
||||
$countAdded++;
|
||||
$tagged[$resultInsertNotiz->retval] = $value;
|
||||
$tagged[$notizId] = $pid;
|
||||
}
|
||||
|
||||
//DELETE OLD Tags, no more valid
|
||||
// ---------------------------------
|
||||
// delete
|
||||
// ---------------------------------
|
||||
$countDeleted = 0;
|
||||
$deleted = [];
|
||||
foreach ($toDelete as $value)
|
||||
{
|
||||
|
||||
foreach ($toDelete as $pid => $notizId) {
|
||||
|
||||
$result = $this->_ci->NotizzuordnungModel->delete([
|
||||
'notiz_id' => $value
|
||||
'notiz_id' => $notizId
|
||||
]);
|
||||
if (isError($result))
|
||||
return error ('Error occurred delete Notizzuordnung' . $notiz_id);
|
||||
|
||||
if (isError($result)) {
|
||||
return error('Error deleting relation ' . $notizId);
|
||||
}
|
||||
|
||||
$result = $this->_ci->NotizModel->delete([
|
||||
'notiz_id' => $notiz_id
|
||||
'notiz_id' => $notizId
|
||||
]);
|
||||
if (isError($result))
|
||||
return error ('Error occurred delete Notiz' . $notiz_id);
|
||||
|
||||
if (isError($result)) {
|
||||
return error('Error deleting note ' . $notizId);
|
||||
}
|
||||
|
||||
$countDeleted++;
|
||||
$deleted[] = $value;
|
||||
$deleted[] = $notizId;
|
||||
}
|
||||
|
||||
// ---------------------------------
|
||||
// return
|
||||
// ---------------------------------
|
||||
return success([
|
||||
'input' => [
|
||||
'tag' => $tag,
|
||||
'prestudentIds' => $prestudentIds,
|
||||
'prestudentIds' => $prestudentIds
|
||||
],
|
||||
'summary' => [
|
||||
'recycled' => $countRecyled,
|
||||
'recycled' => $countRecycled,
|
||||
'added' => $countAdded,
|
||||
'deleted' => $countDeleted,
|
||||
'deleted' => $countDeleted
|
||||
],
|
||||
'details' => [
|
||||
'existingTags' => $allTags,
|
||||
'toAdd' => $toAdd,
|
||||
'toRecycle' => $toRecycle,
|
||||
'toDelete' => $toDelete,
|
||||
'toDelete' => $toDelete
|
||||
],
|
||||
'results' => [
|
||||
'retaggedNotizIds' => $retagged,
|
||||
'newTags' => $tagged,
|
||||
'deletedNotizIds' => $deleted,
|
||||
'deletedNotizIds' => $deleted
|
||||
]
|
||||
]);
|
||||
}
|
||||
@@ -248,14 +305,11 @@ class TagLib
|
||||
|
||||
$return = ['added' => $resultInsertNotiz->retval];
|
||||
}
|
||||
|
||||
return success($return);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* main function for rebuild Tags for single prestudent
|
||||
* manually triggered
|
||||
* */
|
||||
public function rebuildTagsForPrestudent($prestudent_id)
|
||||
{
|
||||
@@ -285,11 +339,11 @@ class TagLib
|
||||
$criteriaIsSet = $obj->isCriteriaSetFor([
|
||||
'prestudent_id' => $prestudent_id,
|
||||
'studiensemester_kurzbz' => self::SEMESTER
|
||||
]);
|
||||
]);
|
||||
//$return = $this->_ci->PrestudentstatusModel->db->last_query();
|
||||
$kurz_bz = $autoTag->typ_kurzbz;
|
||||
|
||||
// $return[$kurz_bz] = $criteriaIsSet;
|
||||
// $return[$kurz_bz] = $criteriaIsSet;
|
||||
|
||||
if($criteriaIsSet)
|
||||
{
|
||||
@@ -313,32 +367,6 @@ class TagLib
|
||||
|
||||
}
|
||||
|
||||
public function rebuildTagsForPrestudentDEPR($prestudent_id)
|
||||
{
|
||||
$automaticTags = $this->_ci->config->item('stv_automatic_tags');
|
||||
$return = [];
|
||||
|
||||
foreach ($automaticTags as $tag)
|
||||
{
|
||||
if($this->isCriteriaSetFor($tag, $prestudent_id))
|
||||
{
|
||||
$result = $this->updateAutomatedTagsForPrestudent($tag, $prestudent_id);
|
||||
if (isError($result))
|
||||
return error ('Error occurred during updateAutomatedTags' . $tag);
|
||||
|
||||
else
|
||||
$return[$tag] = $result;
|
||||
}
|
||||
else {
|
||||
$result = $this->checkForDelete($tag, $prestudent_id);
|
||||
if($result != null)
|
||||
$return[$tag] = $result;
|
||||
}
|
||||
}
|
||||
return success($return);
|
||||
|
||||
}
|
||||
|
||||
public function checkForDelete($tag, $prestudent_id)
|
||||
{
|
||||
$return = null;
|
||||
@@ -378,40 +406,4 @@ class TagLib
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function isCriteriaSetFor_DEPR($tag, $prestudent_id)
|
||||
{
|
||||
//TODO(finish list)
|
||||
if($tag == 'wh_auto')
|
||||
{
|
||||
$result = $this->_ci->PrestudentstatusModel->loadWhere(array(
|
||||
'statusgrund_id' => 16,
|
||||
'studiensemester_kurzbz' => self::SEMESTER,
|
||||
'prestudent_id' => $prestudent_id
|
||||
));
|
||||
if(hasData($result))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
if($tag == 'prewh_auto')
|
||||
{
|
||||
$result = $this->_ci->PrestudentstatusModel->loadWhere(array(
|
||||
'statusgrund_id' => 15,
|
||||
'studiensemester_kurzbz' => self::SEMESTER,
|
||||
'prestudent_id' => $prestudent_id
|
||||
));
|
||||
if(hasData($result))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,17 +26,24 @@ class CoreDoubleDegreeTagLib
|
||||
$semester = $params['studiensemester_kurzbz'];
|
||||
|
||||
$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
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$doubledegree_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->start,
|
||||
'bis' => $item->ende
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $doubledegree_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,12 +28,17 @@ class CoreJgvTagLib
|
||||
$result = $this->ci->BenutzerfunktionModel->getPrestudentsOfJgv($semester);
|
||||
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$jgv_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->datum_von,
|
||||
'bis' => $item->datum_bis
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $jgv_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,13 +36,19 @@ class CoreMissingZgvTagLib
|
||||
));
|
||||
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$zgvmissing_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => null,
|
||||
'bis' => null
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $zgvmissing_data
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
public function isCriteriaSetFor(array $params)
|
||||
|
||||
@@ -28,19 +28,25 @@ class CoreOutgoingTagLib
|
||||
$result = $this->ci->BisioModel->getOutgoingsOfSemester($semester);
|
||||
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$outgoing_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->von,
|
||||
'bis' => $item->bis
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $outgoing_data
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function isCriteriaSetFor(array $params)
|
||||
{
|
||||
if(!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz']))
|
||||
{
|
||||
if (!isset($params['prestudent_id']) || !isset($params['studiensemester_kurzbz'])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -48,12 +54,68 @@ class CoreOutgoingTagLib
|
||||
$prestudent_id = $params['prestudent_id'];
|
||||
|
||||
$result = $this->ci->BisioModel->isPrestudentOutgoing($semester, $prestudent_id);
|
||||
if(hasData($result))
|
||||
{
|
||||
|
||||
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 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;
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,17 +24,24 @@ class CorePrewiederholerTagLib
|
||||
}
|
||||
|
||||
$semester = $params['studiensemester_kurzbz'];
|
||||
|
||||
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
|
||||
$result = $this->ci->PrestudentstatusModel-> loadWhere(array(
|
||||
'statusgrund_id' => 15,
|
||||
'studiensemester_kurzbz' => $semester
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$prewiederholer_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->start,
|
||||
'bis' => $item->ende
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $prewiederholer_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -26,17 +26,24 @@ class CoreStudienbeitragErhoehtTagLib
|
||||
$semester = $params['studiensemester_kurzbz'];
|
||||
|
||||
$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
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$konto_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->start,
|
||||
'bis' => $item->ende
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $konto_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,17 +24,24 @@ class CoreUnterbrecherTagLib
|
||||
}
|
||||
|
||||
$semester = $params['studiensemester_kurzbz'];
|
||||
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', '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;
|
||||
|
||||
$unterbrecher_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->start,
|
||||
'bis' => $item->ende
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $unterbrecher_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,17 +24,24 @@ class CoreWiederholerTagLib
|
||||
}
|
||||
|
||||
$semester = $params['studiensemester_kurzbz'];
|
||||
|
||||
$this->ci->PrestudentstatusModel->addJoin('public.tbl_studiensemester', 'studiensemester_kurzbz');
|
||||
$result = $this->ci->PrestudentstatusModel-> loadWhere(array(
|
||||
'statusgrund_id' => 16,
|
||||
'studiensemester_kurzbz' => $semester
|
||||
));
|
||||
$data = $result->retval;
|
||||
$ids = array_map(function($item) {
|
||||
return $item->prestudent_id;
|
||||
|
||||
$wiederholer_data = array_map(function($item) {
|
||||
return [
|
||||
'prestudent_id' => $item->prestudent_id,
|
||||
'von' => $item->start,
|
||||
'bis' => $item->ende
|
||||
];
|
||||
}, $data);
|
||||
|
||||
return (object) array(
|
||||
'prestudent_id' => $ids
|
||||
'data' => $wiederholer_data
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ class Bisio_model extends DB_Model
|
||||
public function getOutgoingsOfSemester($studiensemester_kurzbz)
|
||||
{
|
||||
$query = "
|
||||
SELECT DISTINCT ps.prestudent_id
|
||||
SELECT DISTINCT ps.prestudent_id, tbl_bisio.von, tbl_bisio.bis
|
||||
FROM bis.tbl_bisio
|
||||
JOIN public.tbl_student USING (student_uid)
|
||||
JOIN public.tbl_prestudent ps USING (prestudent_id)
|
||||
@@ -76,14 +76,14 @@ class Bisio_model extends DB_Model
|
||||
{
|
||||
$query = "
|
||||
SELECT
|
||||
*
|
||||
ps.prestudent_id, tbl_bisio.von, tbl_bisio.bis
|
||||
FROM bis.tbl_bisio
|
||||
JOIN public.tbl_student USING (student_uid)
|
||||
JOIN public.tbl_prestudent ps USING (prestudent_id)
|
||||
JOIN public.tbl_prestudentstatus pss ON (ps.prestudent_id = pss.prestudent_id)
|
||||
JOIN public.tbl_studiensemester ss ON (pss.studiensemester_kurzbz = ss.studiensemester_kurzbz)
|
||||
WHERE ss.studiensemester_kurzbz = ?
|
||||
AND pss.status_kurzbz = 'Student'
|
||||
--AND pss.status_kurzbz = 'Student'
|
||||
AND (
|
||||
tbl_bisio.von <= ss.ende
|
||||
AND (
|
||||
|
||||
@@ -323,7 +323,7 @@ class Benutzerfunktion_model extends DB_Model
|
||||
public function getPrestudentsOfJgv($semester)
|
||||
{
|
||||
$query = "
|
||||
SELECT DISTINCT ps.prestudent_id
|
||||
SELECT DISTINCT ps.prestudent_id, bf.datum_von, bf.datum_bis
|
||||
FROM public.tbl_benutzerfunktion bf
|
||||
JOIN public.tbl_benutzer bn USING (uid)
|
||||
JOIN public.tbl_prestudent ps USING (person_id)
|
||||
|
||||
@@ -45,7 +45,9 @@ export default {
|
||||
insertvon: "",
|
||||
updateamum: "",
|
||||
updatevon: "",
|
||||
response: ""
|
||||
response: "",
|
||||
start: "",
|
||||
ende: ""
|
||||
},
|
||||
mode: "create"
|
||||
};
|
||||
@@ -88,6 +90,10 @@ export default {
|
||||
this.tagData.bearbeiter = item.bearbeiter;
|
||||
this.tagData.verfasser = item.verfasser;
|
||||
this.tagData.readonly = item.readonly;
|
||||
//add for automated tags
|
||||
this.tagData.automatisiert = item.automatisiert;
|
||||
this.tagData.start = this.formatDateTimeDay(item.start);
|
||||
this.tagData.ende = this.formatDateTimeDay(item.ende);
|
||||
|
||||
if (item && item.notiz_id)
|
||||
{
|
||||
@@ -202,6 +208,14 @@ export default {
|
||||
second: "2-digit"
|
||||
});
|
||||
},
|
||||
formatDateTimeDay: (dateString) => {
|
||||
if (!dateString) return null;
|
||||
return new Date(dateString).toLocaleString('de-AT', {
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
});
|
||||
},
|
||||
async copy (){
|
||||
await navigator.clipboard.writeText(this.tagData.notiz);
|
||||
}
|
||||
@@ -259,6 +273,15 @@ export default {
|
||||
<span v-if="tagData.bearbeiter && tagData.insertamum !== tagData.updateamum">
|
||||
{{ $p.t('notiz', 'tag_bearbeiter', { 0: tagData.bearbeiter, 1: tagData.updateamum }) }}
|
||||
</span>
|
||||
<span v-if="tagData.start || tagData.ende" >
|
||||
gültig
|
||||
</span>
|
||||
<span v-if="tagData.start">
|
||||
von {{tagData.start}}
|
||||
</span>
|
||||
<span v-if="tagData.ende">
|
||||
bis {{tagData.ende}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -46,6 +46,7 @@ export function tagFormatter(cell, tagComponent)
|
||||
|
||||
const tagDef = mappedData.find(t => t.typ_kurzbz === tag.typ_kurzbz);
|
||||
|
||||
//todo: check trigger manually after creation of manual automatic tag
|
||||
if (!tagDef && tag.typ_kurzbz.includes("_auto") || tagDef?.automatisiert) {
|
||||
tagElement.className += " tag_auto";
|
||||
tagElement.innerHTML = "<i class='fa-solid fa-lock'></i> " + tag.beschreibung;
|
||||
|
||||
Reference in New Issue
Block a user