mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 02:12:17 +00:00
Merge branch 'master' into permissions
This commit is contained in:
@@ -11,4 +11,20 @@ class Konto_model extends DB_Model
|
||||
$this->dbTable = 'wawi.tbl_konto';
|
||||
$this->pk = 'konto_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all Konten connected for a Kostenstelle
|
||||
* @param $kostenstelle_id
|
||||
* @return array
|
||||
*/
|
||||
public function getKontenForKostenstelle($kostenstelle_id)
|
||||
{
|
||||
$this->addJoin('wawi.tbl_konto_kostenstelle', 'konto_id');
|
||||
$konten = $this->loadWhere(array('kostenstelle_id' => $kostenstelle_id));
|
||||
|
||||
if ($konten->error)
|
||||
return error($konten->retval);
|
||||
|
||||
return $konten;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,70 @@ class Kostenstelle_model extends DB_Model
|
||||
$this->dbTable = 'wawi.tbl_kostenstelle';
|
||||
$this->pk = 'kostenstelle_id';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all active Kostenstellen for a geschaeftsjahr, as determined by the geschaeftsjahrvon and bis fields
|
||||
* Gets Kostenstellen of current Geschaeftsjahr if Geschaeftsjahr not specified
|
||||
* Only the Kostenstellen for which a permission exists are returned!
|
||||
* @param $geschaeftsjahr
|
||||
* @return array|null
|
||||
*/
|
||||
public function getActiveKostenstellenForGeschaeftsjahr($geschaeftsjahr = null)
|
||||
{
|
||||
$this->load->model('organisation/geschaeftsjahr_model', 'GeschaeftsjahrModel');
|
||||
|
||||
if ($geschaeftsjahr === null)
|
||||
{
|
||||
$lgj = $this->GeschaeftsjahrModel->getCurrGeschaeftsjahr();
|
||||
|
||||
if ($lgj->error)
|
||||
return error($lgj->retval);
|
||||
|
||||
if (count($lgj->retval) < 1)
|
||||
return success(array());
|
||||
|
||||
$geschaeftsjahr = $lgj->retval[0]->geschaeftsjahr_kurzbz;
|
||||
}
|
||||
|
||||
$this->GeschaeftsjahrModel->addSelect('start, ende');
|
||||
$gj = $this->GeschaeftsjahrModel->load($geschaeftsjahr);
|
||||
|
||||
if ($gj->error)
|
||||
return error($gj->retval);
|
||||
|
||||
if (count($gj->retval) < 1)
|
||||
return success(array());
|
||||
|
||||
$gjstart = $gj->retval[0]->start;
|
||||
|
||||
$query = 'SELECT kostenstelle_id, kurzbz, wawi.tbl_kostenstelle.bezeichnung, wawi.tbl_kostenstelle.aktiv
|
||||
FROM wawi.tbl_kostenstelle
|
||||
LEFT JOIN public.tbl_geschaeftsjahr kgjvon on wawi.tbl_kostenstelle.geschaeftsjahrvon = kgjvon.geschaeftsjahr_kurzbz
|
||||
LEFT JOIN public.tbl_geschaeftsjahr kgjbis on wawi.tbl_kostenstelle.geschaeftsjahrbis = kgjbis.geschaeftsjahr_kurzbz
|
||||
WHERE
|
||||
(DATE ? >= kgjvon.start OR wawi.tbl_kostenstelle.geschaeftsjahrvon IS NULL)
|
||||
AND
|
||||
(DATE ? < kgjbis.ende OR wawi.tbl_kostenstelle.geschaeftsjahrbis IS NULL)
|
||||
ORDER BY wawi.tbl_kostenstelle.bezeichnung';
|
||||
|
||||
$kostenstellen = $this->execQuery($query, array($gjstart, $gjstart));
|
||||
|
||||
if ($kostenstellen->error)
|
||||
return error($kostenstellen->retval);
|
||||
|
||||
$this->load->library('PermissionLib');
|
||||
|
||||
$kostenstellenresult = array();
|
||||
|
||||
//filter kostenstellen, only kostenstellen for which berechtigt
|
||||
foreach ($kostenstellen->retval as $kostenstelle)
|
||||
{
|
||||
if ($this->permissionlib->isBerechtigt('extension/budget_verwaltung', 'suid', null, $kostenstelle->kostenstelle_id) === true)
|
||||
{
|
||||
$kostenstellenresult[] = $kostenstelle;
|
||||
}
|
||||
}
|
||||
|
||||
return success($kostenstellenresult);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,33 @@ class Geschaeftsjahr_model extends DB_Model
|
||||
$this->dbTable = 'public.tbl_geschaeftsjahr';
|
||||
$this->pk = 'geschaeftsjahr_kurzbz';
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets current Geschaeftsjahr, as determined by its start date
|
||||
* @return array|null
|
||||
*/
|
||||
public function getCurrGeschaeftsjahr()
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_geschaeftsjahr
|
||||
WHERE start <= now()
|
||||
AND ende >= now()';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets next Geschaeftsjahr, as determined by its start date
|
||||
* @return array|null
|
||||
*/
|
||||
public function getNextGeschaeftsjahr()
|
||||
{
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_geschaeftsjahr
|
||||
WHERE start > now()
|
||||
ORDER BY start
|
||||
LIMIT 1';
|
||||
|
||||
return $this->execQuery($query);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,10 +94,13 @@ class Person_model extends DB_Model
|
||||
{
|
||||
$this->addJoin('public.tbl_prestudent', 'person_id');
|
||||
|
||||
$this->addJoin('public.tbl_benutzer', 'person_id');
|
||||
|
||||
$result = $this->loadTree(
|
||||
'public.tbl_person',
|
||||
array(
|
||||
'public.tbl_prestudent'
|
||||
'public.tbl_prestudent',
|
||||
'public.tbl_benutzer'
|
||||
),
|
||||
'EXISTS (
|
||||
SELECT
|
||||
@@ -112,7 +115,8 @@ class Person_model extends DB_Model
|
||||
AND datum <= '.$this->escape($bis).'
|
||||
)',
|
||||
array(
|
||||
'prestudenten'
|
||||
'prestudenten',
|
||||
'benutzer'
|
||||
)
|
||||
);
|
||||
|
||||
@@ -192,4 +196,37 @@ class Person_model extends DB_Model
|
||||
|
||||
return $this->loadWhere(array('uid' => $uid));
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrives the language of the user by the UID
|
||||
* Gets all the persons related to the given UID and starting from the most recent person in DB
|
||||
* tries to find a valid language (!= null), if found is returned, otherwise is returned the
|
||||
* default global language of the system
|
||||
*/
|
||||
public function getLanguage($uid)
|
||||
{
|
||||
$language = DEFAULT_LANGUAGE;
|
||||
|
||||
$this->addJoin('public.tbl_benutzer', 'person_id');
|
||||
$this->addOrder('public.tbl_person.updateamum', 'DESC');
|
||||
$this->addOrder('public.tbl_person.insertvon', 'DESC');
|
||||
|
||||
$persons = $this->loadWhere(array('uid' => $uid));
|
||||
|
||||
if (hasData($persons))
|
||||
{
|
||||
for ($i = 0; $i < count($persons->retval); $i++)
|
||||
{
|
||||
$person = $persons->retval[$i];
|
||||
|
||||
if (!empty($person->sprache))
|
||||
{
|
||||
$language = $person->sprache;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $language;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ class Extensions_model extends DB_Model
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
parent::__construct('system');
|
||||
$this->dbTable = 'system.tbl_extensions';
|
||||
$this->pk = 'extension_id';
|
||||
}
|
||||
|
||||
@@ -54,4 +54,21 @@ class Phrase_model extends DB_Model
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads phrases using category(s) and language as keys
|
||||
* The retrived fields are category, phrase, orgeinheit_kurzbz, orgform_kurzbz and text
|
||||
* They are ordered by p.category, p.phrase, pt.orgeinheit_kurzbz DESC and pt.orgform_kurzbz DESC'
|
||||
*/
|
||||
public function getPhrasesByCategoryAndLanguage($categories, $language)
|
||||
{
|
||||
$query = 'SELECT p.category, p.phrase, pt.orgeinheit_kurzbz, pt.orgform_kurzbz, pt.text
|
||||
FROM system.tbl_phrase p
|
||||
INNER JOIN system.tbl_phrasentext pt USING(phrase_id)
|
||||
WHERE p.category IN ?
|
||||
AND pt.sprache = ?
|
||||
ORDER BY p.category, p.phrase, pt.orgeinheit_kurzbz DESC, pt.orgform_kurzbz DESC';
|
||||
|
||||
return $this->execQuery($query, array($categories, $language));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user