mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-10-12 15:04:04 +00:00
Merge remote-tracking branch 'origin/master' into feature-60873/GesamtnoteneingabeCis4
This commit is contained in:
@@ -17,60 +17,59 @@
|
||||
*/
|
||||
|
||||
if (!defined('BASEPATH'))
|
||||
exit('No direct script access allowed');
|
||||
exit('No direct script access allowed');
|
||||
|
||||
class OtherLvPlan extends FHCAPI_Controller
|
||||
{
|
||||
|
||||
/**
|
||||
* Object initialization
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct([
|
||||
'otherLvPlanViewData' => ['basis/other_lv_plan:r'],
|
||||
]);
|
||||
/**
|
||||
* Object initialization
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct([
|
||||
'otherLvPlanViewData' => ['basis/other_lv_plan:r'],
|
||||
]);
|
||||
|
||||
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
$this->load->model('ressource/mitarbeiter_model', 'MitarbeiterModel');
|
||||
$this->load->model('person/Benutzer_model', 'BenutzerModel');
|
||||
$this->load->library('ProfilLib');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Public methods
|
||||
|
||||
/**
|
||||
* retrieves viewData for other lv plan view
|
||||
* @access public
|
||||
* @param $uid the userID for which the other lv plan is being viewed
|
||||
*/
|
||||
public function otherLvPlanViewData($uid)
|
||||
{
|
||||
$isMitarbeiterResult = $this->MitarbeiterModel->isMitarbeiter($uid);
|
||||
$isMitarbeiter = getData($isMitarbeiterResult);
|
||||
$isStudent = !$isMitarbeiter;
|
||||
/**
|
||||
* retrieves viewData for other lv plan view
|
||||
* @access public
|
||||
* @param $uid the userID for which the other lv plan is being viewed
|
||||
*/
|
||||
public function otherLvPlanViewData($uid)
|
||||
{
|
||||
$isMitarbeiterResult = $this->MitarbeiterModel->isMitarbeiter($uid);
|
||||
$isMitarbeiter = getData($isMitarbeiterResult);
|
||||
$isStudent = !$isMitarbeiter;
|
||||
|
||||
$this->BenutzerModel->addSelect(["foto", "vorname", "nachname"]);
|
||||
$this->BenutzerModel->addJoin("tbl_person", "person_id");
|
||||
$personResult = $this->BenutzerModel->load([$uid]);
|
||||
$person = hasData($personResult) ? getData($personResult) : null;
|
||||
$resProfileData = $this->profillib->getView($uid);
|
||||
$profileData = hasData($resProfileData) ? getData($resProfileData) : null;
|
||||
|
||||
$viewData = [
|
||||
"user_data" => [
|
||||
"username" => $uid,
|
||||
"is_student" => $isStudent,
|
||||
"is_mitarbeiter" => $isMitarbeiter,
|
||||
"foto" => $person[0]->foto,
|
||||
"vorname" => $person[0]->vorname,
|
||||
"nachname" => $person[0]->nachname,
|
||||
],
|
||||
];
|
||||
$viewData = [
|
||||
"user_data" => [
|
||||
"username" => $uid,
|
||||
"is_student" => $isStudent,
|
||||
"is_mitarbeiter" => $isMitarbeiter,
|
||||
"foto" => $profileData->data->foto,
|
||||
"vorname" => $profileData->data->vorname,
|
||||
"nachname" => $profileData->data->nachname,
|
||||
],
|
||||
];
|
||||
|
||||
$this->terminateWithSuccess($viewData);
|
||||
}
|
||||
$this->terminateWithSuccess($viewData);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
// -----------------------------------------------------------------------------------------------------------------
|
||||
// Private methods
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -80,10 +80,12 @@ class StundenplanLib
|
||||
if (isError($semester_range))
|
||||
return $semester_range;
|
||||
$semester_range = getData($semester_range);
|
||||
$this->_ci->addMeta('semester_range', $semester_range);
|
||||
|
||||
$this->sortStudienSemester($semester_range);
|
||||
|
||||
$function_error = $this->applyLoadUeberSemesterHaelfte($semester_range);
|
||||
$this->_ci->addMeta('nach_apply_semester_range', $semester_range);
|
||||
if ($function_error)
|
||||
return $function_error;
|
||||
|
||||
@@ -784,7 +786,8 @@ class StundenplanLib
|
||||
$this->_ci->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
|
||||
|
||||
// gets all studiensemester from the student from start_date to end_date
|
||||
$semester_range = $this->_ci->StudiensemesterModel->getByDateRange($start_date, $end_date);
|
||||
//$semester_range = $this->_ci->StudiensemesterModel->getByDateRange($start_date, $end_date);
|
||||
$semester_range = $this->_ci->StudiensemesterModel->getContainingOrNearestByDateRange($start_date, $end_date);
|
||||
if (isError($semester_range))
|
||||
return $semester_range;
|
||||
|
||||
|
||||
@@ -229,6 +229,82 @@ class Studiensemester_model extends DB_Model
|
||||
return $this->execQuery($query, array($date,$date,$date,$date));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Studiensemester where the range dates are contained
|
||||
* or the nearest if date is not contained
|
||||
* @param $from
|
||||
* @param $to
|
||||
* @return array|null
|
||||
*/
|
||||
public function getContainingOrNearestByDateRange($from, $to)
|
||||
{
|
||||
if (date_format(date_create($from), 'Y-m-d') > (date_format(date_create($to), 'Y-m-d')))
|
||||
return success(array());
|
||||
|
||||
$query = <<<EOSQL
|
||||
WITH semester_interval_startdate AS (
|
||||
SELECT
|
||||
s.*
|
||||
FROM
|
||||
public.tbl_studiensemester s
|
||||
WHERE
|
||||
{$this->db->escape($from)}::date BETWEEN s.start AND s.ende
|
||||
ORDER BY
|
||||
s.start DESC
|
||||
LIMIT 1
|
||||
),
|
||||
semester_interval_enddate AS (
|
||||
SELECT
|
||||
s.*
|
||||
FROM
|
||||
public.tbl_studiensemester s
|
||||
WHERE
|
||||
{$this->db->escape($to)}::date BETWEEN s.start AND s.ende
|
||||
ORDER BY
|
||||
s.start DESC
|
||||
LIMIT 1
|
||||
),
|
||||
nearest_semester_interval_startdate AS (
|
||||
SELECT
|
||||
LEAST(ABS(s.start - {$this->db->escape($from)}::date), ABS(s.ende - {$this->db->escape($from)}::date)) AS mindiff,
|
||||
s.*
|
||||
FROM
|
||||
public.tbl_studiensemester s
|
||||
WHERE
|
||||
s.ende < {$this->db->escape($from)}::date
|
||||
ORDER BY
|
||||
1 ASC
|
||||
LIMIT 1
|
||||
),
|
||||
nearest_semester_interval_enddate AS (
|
||||
SELECT
|
||||
LEAST(ABS(s.start - {$this->db->escape($to)}::date), ABS(s.ende - {$this->db->escape($to)}::date)) AS mindiff,
|
||||
s.*
|
||||
FROM
|
||||
public.tbl_studiensemester s
|
||||
WHERE
|
||||
s.start > {$this->db->escape($to)}::date
|
||||
ORDER BY
|
||||
1 ASC
|
||||
LIMIT 1
|
||||
)
|
||||
SELECT
|
||||
COALESCE(
|
||||
(SELECT studiensemester_kurzbz FROM semester_interval_startdate),
|
||||
(SELECT studiensemester_kurzbz FROM nearest_semester_interval_startdate)
|
||||
) AS studiensemester_kurzbz
|
||||
UNION
|
||||
SELECT
|
||||
COALESCE(
|
||||
(SELECT studiensemester_kurzbz FROM semester_interval_enddate),
|
||||
(SELECT studiensemester_kurzbz FROM nearest_semester_interval_enddate)
|
||||
) AS studiensemester_kurzbz
|
||||
|
||||
EOSQL;
|
||||
|
||||
return $this->execReadonlyQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Studiensemester between two dates
|
||||
* @param $from
|
||||
|
||||
+5
-2
@@ -434,7 +434,10 @@ export default {
|
||||
}
|
||||
|
||||
if (!this.formData.akadgrad_id && this.arrAkadGrad.length > 0) {
|
||||
this.formData.akadgrad_id = this.arrAkadGrad[0].akadgrad_id;
|
||||
if(this.student.geschlecht == 'w')
|
||||
this.formData.akadgrad_id = this.arrAkadGrad[1].akadgrad_id;
|
||||
else
|
||||
this.formData.akadgrad_id = this.arrAkadGrad[0].akadgrad_id;
|
||||
}
|
||||
},
|
||||
printDocument(link) {
|
||||
@@ -718,7 +721,7 @@ export default {
|
||||
:key="grad.akadgrad_id"
|
||||
:value="grad.akadgrad_id"
|
||||
>
|
||||
{{grad.titel}}
|
||||
{{ grad.titel }} <span v-if="grad.geschlecht !== null"> ({{ grad.geschlecht }}) </span>
|
||||
</option>
|
||||
</form-input>
|
||||
<form-input
|
||||
|
||||
Reference in New Issue
Block a user