mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
added collision checks on creation
This commit is contained in:
@@ -437,6 +437,8 @@ class KalenderLib
|
||||
}
|
||||
public function addKalenderEvent($start_date, $end_date, $lehreinheit_id, $ort_kurzbz)
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_start();
|
||||
|
||||
$kalenderresult = $this->_ci->KalenderModel->insert(
|
||||
array (
|
||||
'von' => $start_date,
|
||||
@@ -448,7 +450,7 @@ class KalenderLib
|
||||
)
|
||||
);
|
||||
|
||||
if(isSuccess($kalenderresult) && hasData($kalenderresult))
|
||||
if (isSuccess($kalenderresult) && hasData($kalenderresult))
|
||||
{
|
||||
$kalender_id = getData($kalenderresult);
|
||||
|
||||
@@ -459,13 +461,39 @@ class KalenderLib
|
||||
)
|
||||
);
|
||||
|
||||
if(isSuccess($kalenderlehreinheitresult) && !is_null($ort_kurzbz))
|
||||
if (isSuccess($kalenderlehreinheitresult) && !is_null($ort_kurzbz))
|
||||
{
|
||||
return $this->_addKalenderOrt($kalender_id, $ort_kurzbz);
|
||||
$ortresult = $this->_addKalenderOrt($kalender_id, $ort_kurzbz);
|
||||
if (isError($ortresult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $ortresult;
|
||||
}
|
||||
}
|
||||
|
||||
$entryResult = $this->_loadKalenderEntry($kalender_id);
|
||||
|
||||
if (isError($entryResult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $entryResult;
|
||||
}
|
||||
|
||||
$kalender_entry = getData($entryResult);
|
||||
|
||||
$errors = $this->_ci->collisionchecker->run($kalender_entry);
|
||||
|
||||
if (!empty($errors))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return error($errors);
|
||||
}
|
||||
|
||||
$this->_ci->KalenderModel->db->trans_complete();
|
||||
return $kalenderlehreinheitresult;
|
||||
}
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $kalenderresult;
|
||||
}
|
||||
|
||||
public function addReservierung($titel, $beschreibung, $ort_kurzbz, $start_date, $end_date, $teilnehmer, $specialFinalGroups, $specialGroups, $groups)
|
||||
@@ -485,7 +513,7 @@ class KalenderLib
|
||||
return error ('lvplan/bereitsReserviert');
|
||||
}
|
||||
|
||||
|
||||
$this->_ci->KalenderModel->db->trans_start();
|
||||
|
||||
$kalenderresult = $this->_ci->KalenderModel->insert(
|
||||
array (
|
||||
@@ -498,7 +526,7 @@ class KalenderLib
|
||||
)
|
||||
);
|
||||
|
||||
if(isSuccess($kalenderresult) && hasData($kalenderresult))
|
||||
if (isSuccess($kalenderresult) && hasData($kalenderresult))
|
||||
{
|
||||
$kalender_id = getData($kalenderresult);
|
||||
|
||||
@@ -512,12 +540,22 @@ class KalenderLib
|
||||
|
||||
foreach ($teilnehmer as $teil)
|
||||
{
|
||||
$this->_addTeilnehmerToEvent($kalender_id, $teil['uid'], $teil['rolle']);
|
||||
$teilnehmerresult = $this->_addTeilnehmerToEvent($kalender_id, $teil['uid'], $teil['rolle']);
|
||||
if (isError($teilnehmerresult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $teilnehmerresult;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($specialFinalGroups as $group)
|
||||
foreach ($specialFinalGroups as $group)
|
||||
{
|
||||
$this->_addFinalGroupToEvent($kalender_id, $group['gid'], !($group['lehrverband'] === 'false'), $group['gruppe_kurzbz'], $group['studiensemester_kurzbz'], $group['rolle']);
|
||||
$specialgroupresult = $this->_addFinalGroupToEvent($kalender_id, $group['gid'], !($group['lehrverband'] === 'false'), $group['gruppe_kurzbz'], $group['studiensemester_kurzbz'], $group['rolle']);
|
||||
if (isError($specialgroupresult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $specialgroupresult;
|
||||
}
|
||||
}
|
||||
|
||||
/* foreach ($specialGroups as $group)
|
||||
@@ -530,13 +568,38 @@ class KalenderLib
|
||||
$this->_addGroupToEvent($kalender_id, $group['stg_kz'], $group['semester'], $group['verband'], $group['gruppe'], $group['rolle']);
|
||||
}*/
|
||||
|
||||
if(isSuccess($kalendereventresult) && !is_null($ort_kurzbz))
|
||||
if (isSuccess($kalendereventresult) && !is_null($ort_kurzbz))
|
||||
{
|
||||
return $this->_addKalenderOrt($kalender_id, $ort_kurzbz);
|
||||
$ortresult = $this->_addKalenderOrt($kalender_id, $ort_kurzbz);
|
||||
if (isError($ortresult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $ortresult;
|
||||
}
|
||||
}
|
||||
|
||||
$entryResult = $this->_loadKalenderEntry($kalender_id);
|
||||
if (isError($entryResult))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $entryResult;
|
||||
}
|
||||
|
||||
$kalender_entry = getData($entryResult);
|
||||
$errors = $this->_ci->collisionchecker->run($kalender_entry);
|
||||
|
||||
if (!empty($errors))
|
||||
{
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return error($errors);
|
||||
}
|
||||
|
||||
$this->_ci->KalenderModel->db->trans_complete();
|
||||
return $kalendereventresult;
|
||||
}
|
||||
|
||||
$this->_ci->KalenderModel->db->trans_rollback();
|
||||
return $kalenderresult;
|
||||
}
|
||||
|
||||
private function _addTeilnehmerToEvent($kalender_id, $uid, $rolle)
|
||||
|
||||
@@ -132,7 +132,12 @@ export default {
|
||||
<span class="fw-semibold small w-50" v-tooltip="course.lehrfach_bez">{{ course.lehrfach }} {{ course.lehrform }}</span>
|
||||
<span class="fw-semibold small w-50" v-tooltip="course.raumtypalternativ">{{ course.raumtyp }}</span>
|
||||
</div>
|
||||
|
||||
|
||||
<!--TODO(david) entfernen, dient nur für das mappen mit der lvverwaltung-->
|
||||
<div class="d-flex gap-1">
|
||||
<span class="small w-50" v-tooltip="course.lehreinheit_id">{{ course.lehreinheit_id[0] }} </span>
|
||||
</div>
|
||||
|
||||
<div class="d-flex gap-1 text-muted">
|
||||
<div class="w-50 d-flex flex-column" v-tooltip="course.anmerkung">
|
||||
<span
|
||||
|
||||
Reference in New Issue
Block a user